MySQL: show table status mejorado

Desde la línea de comando ciertamente tenemos el control absoluto (siempre y cuando tengamos los privilegios) pero no siempre tenemos una visión general. En este caso cuando estamos logueados a una base de datos MySQL lo primero que solemos intentar averiguar es la lista de tablas y talvez la lista de funciones y procedimientos almacenados de una base de datos.

Este proceso suele ser doloroso por que en cuanto ejecutamos show table status; nos devuelve unas lineas que hasta da pereza interpretar. Lo que devuelve ese comando contiene varias columnas que vistas desde una herramienta visual como MySQL Workbench tienen mucho sentido, sin embargo desde la linea de comando no tanto. Pueden ver en la siguiente imagen como se ve un resultado en una ventana estándar de 80×25:

Para ver el detalle completo podemos agrandar la ventana y disminuir la fuente, pero suele tomar un poco de tiempo hacer eso, realmente es fastidioso.

Es por eso que hace mucho desarrollé un script para mostrar solo lo que necesito incluyendo a los procedimientos almacenados y funciones, recién esta semana que tengo  varias horas de ocio y puedo compartirla con ustedes.

El resultado de mi script es mucho mas comprensible:

Éste es código fuente del procedimiento almacenado:

DELIMITER $$

CREATE PROCEDURE `tools`.`sp_status`(dbname varchar(50))
BEGIN 

-- Obteniendo informacion de las tablas
SELECT
 TABLE_NAME as `Table Name`, 
 ENGINE as `Engine`,
 TABLE_ROWS as `Rows`,
 CONCAT(
    (FORMAT((DATA_LENGTH + INDEX_LENGTH) / POWER(1024,2),2))
    , ' Mb')
   as `Size`,
 TABLE_COLLATION as `Collation`
FROM information_schema.TABLES
WHERE TABLES.TABLE_SCHEMA = dbname; 

-- Obteniendo las funciones y procedimientos
SELECT ROUTINE_NAME as `Routine Name`, 
 ROUTINE_TYPE as `Type`,
 DATABASE_COLLATION as `Collation`
FROM information_schema.ROUTINES
WHERE ROUTINE_SCHEMA = dbname
ORDER BY ROUTINES.ROUTINE_TYPE, ROUTINES.ROUTINE_NAME;
END$$

Para invocarlo pueden escribir:

mysql> call tools.sp_status(database());

Notarán que he creado el procedimiento dentro de la base de datos tools, esto para que puedan llamarlo desde cualquier parte. Lamentablemente dentro de los procedimientos almacenados no es posible determinar la base de datos actual, es por eso que necesita de un parámetro con el nombre de la base de datos.

He publicado el procedimento en MySQL custom show table status

Espero que les sea de mucha utilidad (como a mi).

`

Ubuntu: gnome-settings-daemon ocupa el 100% del procesador!

Ubuntu linux logoEstoy muy contento de haber cambiado a Ubuntu desde hace años (gracias a Waltico por ayudarme a tomar la desicion), lo que puedo resaltar (para éste post) es que mi modesta Laptop se mantiene fria con menos del 30% del procesador usándose casi todo el tiempo (salvo excepciones como algunos procesos por lotes o juegos). Tengo 3Gb de memoria y – tambien- casi siempre hay el  60-80% disponibles.

Hay decenas de ventajas (y algunas desventajas) que puedo mencionar, pero… en este momento quiero chancar a Ubuntu y decir: ¿por qué diablos el proceso gnome-settings-daemon ocupa el 100% del procesador? esto ocurre muy eventualmente pero hoy se pasó ocurrio 3 veces desde la madrugada de hoy. Me doy cuenta cuando empieza a calentar el lado izquierdo de mi maquina y el ventilador empieza a sonar haciendo su trabajo.

Solución: No recuerdo donde lo leí pero lo descubrí por mi mismo accidentalmente… no es una solución en sí es solamente un aliciente para que pare de sufrir nuestro procesador, por que si intentan matar ese proceso, perderán muchas características y tendrán que reiniciar, esta es la solución:

  1. Abrir Sistema -> Preferencias -> Teclado
    (yo prefiero gnome-do -> escribir T, E y listo)
  2. Restablecer los valores predeterminados, cerrar y esperar a que ocurra el milagro.
  3. Si esto no funciona, volver a añadir el idioma del teclado adicional que tienen configurado.

Molesta tener que hacer esto incluso si es muy eventualmente, pero no todo es perfecto… a todo esto… Ubuntu 11.04 esta cerca, solo faltan unos dias, veamos que nos espera con la nueva version lo unico molestoso es la migracion, la ultima vez me fue muy bien hice un script para mudar todo y no perdí casi nada, con Ubuntu 11.04 voy a hacer lo mismo.

Una vista a MySQL Workbench 5.2 – SQL Editor

Workbench About DialogNota previa: Esta no es una review minuciosa, es mas bien un tibio comentario sobre mi experiencia de usuario en las ultimas semanas con la herramienta MySQL Workbench 5.2.31 sobre Ubuntu 10.10.

Mi trabajo con MySQL aun no ha llegado al nivel de complejidad que quisiera, ya que tambien trabajo con SQL Server,  es propicia la ocasión para compartiles mis apreciaciones, respecto al Editor SQL (que antes fue MySQL Query Browser).

Si bien estoy muy acostumbrado a la linea de comando, éste no me permite guardar/recuperar un historial de consultas o advertirme de algún «horror», incluso ahora prefiero la linea de comando por que me cuesta menos «clicks» y pulsaciones del teclado. Pero cuando las cosas se ponen serias, o mas complejas, una herramienta como Workbenck se hace completamente necesaria.

Puedo resaltar las siguientes características que me agradan (o no tanto) y paso a comentarlas:

Workbench history tabEl Historial de consultas.
Definitivamente el historial de consultas es muy útil cuando realizas decenas -hasta cientos- de consultas por día. Sobre todo si alguna vez se han preguntado ¿por qué se ha estropeado esta tabla?
El historial recuerda casi todo lo que uno ejecuta, pero no recuerda la hora de ejecución, característica que espero que agreguen pronto.

Workbenck SQL EditorComandos SQL listos!
Todos sabemos que el lenguaje SQL  es muy difícil de escribir, pero algunas veces se hace tedioso incluso para hacer un simple SELECT, en este caso Workbench tiene opciones muy útiles para estos casos. Al hacer click derecho en una tabla (en general cualquier objeto) aparecen opciones como «Copy to clipboard -> Update statement» y zaz.. en memoria tenemos ya el comando SQL para actualizar la tabla, y si esta en el Clipboard, mejor, por que  podemos llevarlo a nuestro editor preferido para seguir programando. Siendo modesto esa opción puede ahorrar 5 valiosos minutos a cualquier programador.

Workbench SQL Editor - Showing errors and hide codeResaltado de errores y ocultado de código SQL
Cuando escribimos segmentos grandes de código SQL sobre todo en consultas anidadas, con llamadas a funciones, etc., suele ser difícil encontrar un error de anidamiento o bueno.. un error en resumidas cuentas, MySQL Workbench tiene la característica de mostrar los «horrores» de nuestro código, pero no siempre acierta pero sirve de mucho.
Al ocultar un segmento de código fastidioso, para entender mejor una consulta, en MySQL Workbench no es tan cómodo por el simple hecho de que no tienes mayores indicadores del código ocultado mas que un símbolo [+] y la secuencia numérica de lineas, a esta característica deberían agregarle algo al final para saber que algo continua y no eliminarlo por accidente.

Otras características que puedo comentar:

  • Impresionante!, es la palabra que merece el gestor de base de datos MySQL 5.1 , escribí numerosos procedimientos/funciones y consultas muy complejas, que antes eran imposibles, pero ahora las escribo con toda confianza y lo mejor de todo es que es super veloz!
  • SQL safe mode: es un modo de conexión que evita hacer modificaciones a toda la tabla con una consulta, por a si a alguien no le ha pasado alguna vez: eliminar toda una tabla/base de datos por accidente, el comando muy sencillo pero peligroso.
  • Todo esta a corta distancia: Todos los elementos de nuestra base de datos estan disponibles en el panel lateral y los tabs de la parte inferior, aun que quita espacio no deja de ser util, deberían optimizar esas vistas para tener mas espacio.
  • Los tabs siempre son utiles, donde quiera que estén.

Lo que mo ne gusta:

  • Con los procedimientos almacenados y funciones Workbench abre en un editor undividual por cada procedimiento/funcion para ser modificado/creado y para guardarlo hay que gastar mas de dos clicks innecesariamente, los clicks no cuestan nada pero fastidian. En este caso prefiero abrirlos directamente desde el editor (como lo hago en SQL Server).
  • Termina el programa cuando uno utiliza algun plugin de texto como los que cambian a mayusculas las palabras reservadaas. Tambien suele terminar el programa abruptamente en condiciones que aun desconozco, en cuanto tenga esa información voy a enviar el reporte de bug.
  • No hay mas plugins, hubiera esperado al menos uno pero lamentablemente no hay mas plugings (la pagina esta en mantenimiento).
  • Tabs: Workbench devuelve automaticamente un tab por resultado, es incomodo revisar cada tab si esque estamos haciendo un seguimiento.
  • No hay una funcion para imprimir un mensaje directamente (como el comando print en SQL Server),  para simular algo asi se puede utilizar una consulta de seleccion que incluya la variable para mostrarla.
  • Algunas veces en el panel de resultados uno ve el simbolo de [blob] cuando espera un resultado de menos de 100 caracteres, esto si que molesta por que sucede cuando utilizas la funcion CONCAT(…), la cadena de resultado no es muy grande para que Workbench lo considere como BLOB.

Algunos lectores seguramente me van a increpar la comparacion con SQL Server, pero debo decirles que Workbench me parece mucho mas util (en este caso) que el editor de consultas del Enterprise Manager, pero aun hay cosas que deben madurar.

Download!
Pueden descargar Workbench directamente desde:

http://dev.mysql.com/downloads/workbench/

Update 5-mar: Acaban de lanzar MySQL Workbech 5.2.32 hace unas horas, lo he descargado e instalado pero persiste un error que he reportado como bug: http://bugs.mysql.com/bug.php?id=60354

 

Por que seremos tan caraduras?

Una breve historia sobre piratería de software en el Perú.

Un buen día, en la ciudad de Chachapoyas, me encontré con un turista francés, que por casualidades del destino, también se dedica a la informática.

Conversamos un rato sobre lo impresionante que le parece la piratería en el Perú, haciendo de abogado del diablo intenté justificar lo injustificable y tapar el sol con un dedo. Hablamos casi toda la tarde de ese y otros temas relacionados. Lo desagradable, al final de la conversación, es que me quedó un sabor amargo el hecho de que  seamos tan buenos piratas, o bueno… en realidad muchos de nosotros no poseemos habilidades para desbloquear/craquear un programa determinado, ese trabajo, que requiere un alto grado de conocimientos y preparación,  lo hacen verdaderos piratas en otros países, me refiero a que es tan fácil convivir con la piratería que nuestros visitantes se asombran, finalmente tuve que confesarle la dura realidad, que es probable que seamos tan caraduras que no nos importa por que no hay nadie que nos cuestiona por ello (salvo nuestros visitantes y algunos otros).

DVD Piratas

No había caído en la cuenta de que con suma facilidad uno puede conseguir un DVD con todo el software «garantizado» que pudiera necesitarse invirtiendo tan solo S/. 10.00 (~US$4) o un poco mas.

Esto me trae a la mente la vez en que presté un servicio muy breve a una oficina autorizada de una conocida empresa de telecomunicaciones,  de cuyo nombre no me quiero acordar Claro esta, el «trabajito» era solucionar  un problema con su red VPN, fue muy sencillo para mi no me tomó mas de 30 minutos ubicar el origen del problema. Pero no quisieron pagar mi precio (que no superaban las 2 cifras) por que les pareció excesivamente alto y que no entendían por que iban a pagar tanto por un servicio tan fácil de efectuar si la instalación de «Windows con todo» en sus maquinas les había costado S/. 10.00 por PC, ni hablar del servidor y otros.

No quise entrar en mas detalles y discutir el tema de que yo sabia que tornillo apretar y todo el rollo, me retiré del establecimiento ya que consideré que no valía la pena. Claro que perdí un par de horas que me dieron una lección:

Por que seremos tan cara duras?

  • Y no pagar las licencias que utilizamos? Sino podemos pagarlas entonces siempre tendremos la opción  utilizar software libre.
  • Por que el estado no toma cartas en el asunto?
  • Por que es tan difícil para la gente de a pie reconocer los derechos de autor.
  • Hay una larga de lista de porqués.

El software libre es una alternativa definitivamente, pero creo que el problema de fondo es otro… el problema es la forma en que hemos sido educados o han omitido algo en nuestra educación. Decir que somos aun un país pobre no justifica el robo, por que yo también produzco y vendo software y me tengo que cuidar de mis propios compatriotas incluso amigos cercanos.

Por mi parte no me gustaría ver que alguien venda un producto mio, que haya costado mucho sacrificio, por 10 soles.

Bueno, ahí lo dejo… para sus comentarios, este es un problema generalizado en toda latinoamérica y parece que de momento incontrolable.

Referencias:
ApunteseIdeas
Polvos Azules

Estoy de vuelta!

Estimados amigos,

No he publicado hace mucho tiempo, y esta es la segunda vez que abando mi blog. Presisamente por que tuve episodios muy tragicos en mi vida, en el tiempo pasado he dejado de compartirles muchas cosas. Hay cientos de comentarios pendientes, mas de 10mil de spam de todos los dias, etc, etc..

Este es mi primer post de mi nueva vida, que empezo hace unos meses con el nacimiento de Lucianita.

Un abrazo a todos y voy a darle mas tiempo a latindevelopers.com que tambien esta abandonado, en los proximos dias voy a renovar los scripts para:

  • Publicación de articulos.
  • Blogs de los miembros.
  • Noticias de sitios externos.
  • Cambio de la disposion del sitio.
  • Algunos otros scripts que voy a desempolvar.

Me despido hasta el proximo post!

Oracle compra a Sun: ¿Qué pasará con MySQL?

Después de mucho tiempo tengo que comentar un acontecimiento muy estremecedor: Oracle, la mayor compañía que provee software de bases de datos, se compró a Sun Microsystems. Y como sabemos Sun hace algún tiempo compró MySQL que es una amenaza a Oracle por que MySQL es el gestor de base de datos mas utilizado en el mundo (claro que no tiene las mismas prestaciones).

Los que conocen la base de datos Oracle saben que Java esta presente en todas partes, y creo que ahora estará mucho mas. ¿Pero que pasará con MySQL?

No quiero ser muy desalentador pero dentro de muy poco veremos artículos relacionados a «Consejos para migrar una base de datos MySQL a Oracle» o peor aun titulares como «Oracle decide dejar de lado a MySQL».

Hoy, el día de mi cumpleaños, se ensombreció con esta noticia ya que soy seguidor de MySQL casi desde sus inicios, lo he visto mejorar y crecer como base de datos hasta ser lo que es ahora: un gestor de base de datos respetable.

Debo decir finalmente que no estoy seguro de lo que va a suceder en los próximos días, pero creo que serán los últimos días del soporte de MySQL, la comunidad de software libre tendrá que reunir sus mejores elementos para que este proyecto siga.

Fuente de la noticia:
http://www.sun.com/third-party/global/oracle/index.jsp

Update:
Michael Widenius tambien ha estado preocupado por lo mismo y hace algun tiempo ha iniciado un pedido muldial para ayudar a MySQL, ha tenido exito y da las gracias por el apoyo:
Su mensaje: http://www.helpmysql.org/en/thanks

Los Tudela

Carlin: El melo-drama de los tudela

Esta caricatura es muy acertada!

Como es conocido ya por todos los peruanos ,que vemos muy seguido cada capitulo del drama del hijo que quiere recuperar, a como de lugar, la herencia que su propio padre le negó a tal punto de plantear una demanda judicial para declararlo muy viejo para poder manejar sus propiedades y negocios.

Al escuchar hablar al padre de los Tudela, se puede concluir que esta completamente lúcido, un poco acabado por la edad pero lucido.

Recientemente el padre de los Tudela escapó hacia Bolivia huyendo del infierno que debe ser el hecho de tener esos hijos. Finalmente lograron su cometido, seguramente han comprado por unos cuantos cientos de miles de soles (un cencillo para ellos) algun Juez que ha dictaminado que Tudela Hijo se debe hacer cargo de los bienes de su familia.

Con la justicia peruana cualquier cosa puede pasar, asi es que no sabemos cuales serán los episodios de esta novela.

Update: Giro Inesperado!

El patriarca de los Tudela asegura en un video que estuvo «secuestrado»
http://peru21.pe/noticia/299217/patriarca-tudela-asegura-video-que-estuvosecuestado

¿Primero las damas?

En el Peru el medio de transporte mas popular es la «combi», se trata de un Toyota Hiace acondicionado para llevar pasajeros (todos los que se pueda). Cada «combi» es particularmente peligrosa dependiendo del prontuariado del «chofer» (conductor) o del cobrador.

Asi se debería ver una «combi»:
Combi - Toyota Hiace

Pues bien, cuando uno quiere «tomar una combi» suele preferir los asientos de adelante para evitar la incomodidad de viajar en los otros mini-asientos. Pero el asiento medio (de la parte delantera) es especialemente incomodo, incluso mas que todos.

Cuando se presenta la oportunidad de viajar con tu compañera para que pudiera tomar su asiento, prefiero entrar primero y así ocupar el asiento del medio. Posiblemente cuando el resto de personas ven esta situación pensarán en lo descortez que he sido, pero no hago mas que sacrifircarme en utilizar el asiento mas incomodo que pudiera existir.

En esto se transforma una combi:

Combi Transformada

El Habla Culta

El Habla Culta - Martha Hildebrandt Alguna vez se preguntaron de donde proviene o como es que se originó el uso de bacán, bividí, chancletero, etc. Pues Martha Hildebrandt en su libro «El Habla Culta (o lo que debiera serlo)», reune una cantidad de neologismos, palabras y expresiones usadas en el habla culta familiar peruana.

Es un libro indispensable para cualquiera que este interesado en el uso del lenguaje del comun diario.

Explica el origen ó posible origen de palabras como bacán, paquetazo, cantinflada, de repente, y muchos otros.

El libro es una especie de enciclopedia de terminos que han sido adoptados en el «habla culta» de nuestros paises latinos. Recuerdo que en una entrevista con Arco Aurelio Denegri, Martha Hildebrandt dijo: «El uso es el amo del lenguaje» y éste libro no hace mas que corroborar dicha frase.

Update: El diario El Comercio ha adoptado los peruanismos documentados por Martha Hildebrandt en su sección el habla culta: http://elcomercio.pe/tag/134803/el-habla-culta

Definitivamente un muy buen libro. Valio la pena comprarlo.

Process Explorer ahora de Microsoft

Hace mucho tiempo utilizo la herramienta Process Explorer de Sysinternals.com, es un programa que visualiza todos los procesos que estan corriendo sobre Windows, uno puede detectar facilmente algun proceso extraño y aniquilarlo sin piedad.

Hoy me dí con la sorpresa que Microsoft se la habia comprado. ¿Sorpresa?

Process Explorer

La nueva direccion del pull de herramientas de Sysinternals es ahora:

http://www.microsoft.com/technet/sysinternals/

Esta noticia no me alegra ni me entristece, hoy en Internet uno puede estar utilizando alguna muy buena herramienta de libre uso y al dia siguiente sucede que le pertenece a una empresa Gigante, claro que el cambio no se nota (al principio) pero algunas transiciones lo dejan a uno sorprendido.

¿Qué comprarán ahora?