Antipatrones de SQL

Así lo describen en el sitio web

Bill Karwin ha ayudado a miles de personas a escribir mejor SQL y construir bases de datos relacionales más fuertes. Ahora él comparte su colección de antipatrones – los errores más comunes que ha identificado en esas miles de peticiones de ayuda.

El libro al que me refiero es “SQL Antipatterns: Avoiding the Pitfalls of Database Programming” y a mi juicio debería ser de lectura obligada para que todo desarrollador que toca bases de datos conozca lo que NO debe hacer. Al menos en mi experiencia, he visto estos antipatrones implementados demasiadas veces.

Estas slides algo viejas, de la MySQL Conference & Expo 2009, les darán una idea de lo que trata el texto:

Sql Antipatterns Strike Back from Karwin Software Solutions LLC

Trivia de enlaces en Linux: ls -l

En una charla de mate con un amigo dimos con las siguientes cuestiones, que pudimos dilucidar luego de pensar un buen rato (y sin salir a buscar en google o la wikipedia).

Dado el siguiente árbol y posterior listado de directorio:

.
├── bin
├── examples
├── pydasm
│   └── build
│       ├── lib.linux-x86_64-2.6
│       └── temp.linux-x86_64-2.6
└── rbdasm

mauro@stereo:/usr/local/src/libdasm-1.5$ ls -la
total 900
drwxr-xr-x 6 mauro mauro   4096 dic 15  2011 .
drwxrwsr-x 5 root  staff   4096 nov 29 12:04 ..
drwxr-xr-x 2 mauro mauro   4096 ene  9  2006 bin
drwxr-xr-x 2 mauro mauro   4096 dic 15  2011 examples
-rw-r--r-- 1 mauro mauro   5558 dic 27  2007 HISTORY.txt
-rw-r--r-- 1 mauro mauro 163894 dic 15  2011 libdasm.a
-rw-r--r-- 1 mauro mauro  31201 feb 14  2006 libdasm.c
-rw-r--r-- 1 mauro mauro    344 ene  9  2006 libdasm.def
-rw-r--r-- 1 mauro mauro  17199 feb 21  2006 libdasm.h
-rw-r--r-- 1 mauro mauro 162312 dic 15  2011 libdasm.o
-rwxr-xr-x 1 mauro mauro 161338 dic 15  2011 libdasm.so
-rw-r--r-- 1 mauro mauro    785 feb 21  2006 LIB.txt
-rw-r--r-- 1 mauro mauro    605 ene  9  2006 Makefile
-rw-r--r-- 1 mauro mauro    183 ene  9  2006 Makefile.msvc
-rw-r--r-- 1 mauro mauro 283110 feb 21  2006 opcode_tables.h
drwxr-xr-x 3 mauro mauro   4096 dic 15  2011 pydasm
drwxr-xr-x 2 mauro mauro   4096 ene 11  2006 rbdasm
-rw-r--r-- 1 mauro mauro  14460 feb 21  2006 README.txt
-rw-r--r-- 1 mauro mauro    161 ene  9  2006 TODO.txt

Con el único fin de molestarles, acá van unas preguntas:

  1. ¿Qué representan los números de la segunda columna del listado?
  2. ¿Podría un archivo tener un número mayor a 1?
  3. ¿Por qué las entradas . (punto), .. (punto-punto) y pydasm (entre otras) tienen distintos números?
  4. ¿Mediante qué llamada a sistema (función, no comando) puede obtenerse ese valor?
  5. ¿Cuál es el campo relevante en la estructura obtenida por la llamada del punto anterior?

Se los dejo como tarea y en quince días vemos que sale…

Esto pasó el fin de semana

Y gracias al usuario LeanHG en youtube lo podemos volver a vivir…

G3 – You really got me (The Kinks) [Luna Park 2012]

G3 – White Room (Cream) [Luna Park 2012]

G3 – Rockin’ in the Free World (Neil Young) [Luna Park 2012]

Joe Satriani – Flying in a blue dream [Luna Park 2012]

Efectivamente, Steve Morse (act. Deep Purple), John Petrucci (act. Dream Theater) y Joe Satriani (act. Chickenfoot) dieron gala en una nueva edición del G3 en Argentina, acompañados por Dave LaRue, Mike Keneally, Jeff Campitelli y Mike Mangini, entre otros.

Dejo varias reviews del show así se dan una idea: El Acople, Clarín, Rock & Pop, y la de Fabio, obviamente.

Creo haber viajado alguna vez

Algún alma caritativa me puede decir en qué parte del sitio web de la tarjeta SUBE está el bendito enlace a la pantalla de consulta de viajes?

Desde ya, muchas gracias!

Actualización: 10/09/2012: Por fin apareció el botón en la pantalla de gestión! Gracias SUBEros!

Capusotto para (casi) todos

Ingenuo de mí, queriendo escuchar algo de buena música en el retorno de Peter Capusotto y sus Videos, a través de la Internete

Como estaremos de complicados que hasta el logo del canal está en blanco y negro.

No, acá hay algo que definitivamente no anda bien.

Tres preguntas:

  • Será porque soy un sacrílego que se conecta por Fibertel? (aunque por Speedy tampoco anda)
  • Me tendría que haber conseguido un deco digital cuando estaban de moda, no?
  • Me perdí un buen programa?

Igual, no se compara con Casero y el viejo Cha Cha Cha. Juzguen ustedes mismos…

Que épocas aquellas… sniff…

Andá a la esquina a ver si llueve

Porque con Speedy no llego a espanol.weather.com (y por ello el widget de tiempo no funciona)…

¿Alguno me confirma si soy el único al que le pasa?

Graciasss

Settings de Trebuchet en MiniCM9

Hace unos días volví a utilizar el launcher Trebuchet en el celular; previamente estuve utilizando Apex Launcher, pero últimamente se está tornando algo lento para operar así que decidí retornar al original de CyanogenMod9.

Por motivos que desconozco, teniendo los dos lanzadores instalados no es posible acceder a las opciones de configuración de Trebuchet, no se si se mambea el menú o qué, pero no aparecen donde deberían aparecer. Para colmo, la búsqueda en Google me da la sensación que no soy el único al que le pasa (ver forum.cyanogenmod.com y forum.xda-developers.com).

En cualquier caso, es posible salir del paso iniciando la configuración desde una terminal, para ello vamos al Android Terminal Emulator, y ejecutamos:

am start com.cyanogenmod.trebuchet/.preference.Preferences

Logrando el resultado que puede verse aquí:

Por cierto, estaba buscando cómo tomar una captura de pantalla y no advertí que era tan sencillo como elegir la opción en el menú que aparece pulsando Power. Tonto de mí.

Software privativo: por qué es malo y por qué lo odio tanto

Ya hemos hablado aquí de mis sentimientos hacia el software cerrado, y particularmente de aquellos sentimientos que nos genera una empresa bien conocida. Normalmente cuando alguien me pregunta el porqué de la elección de tal sistema operativo para uso diario, uno suele traer a la memoria un montón de ventajas técnicas, seguramente sesgadas, y olvida los motivos por los cuales “hizo la conversión”. Hablando francamente, a muchos de los que venimos del lado oscuro, de algún momento a otro el bocho nos hizo un clic, después de haber renegado tanto con ello.

El tiempo me ha enseñado que evitar este tipo de software reduce en gran medida el estrés, algo más que beneficioso para la salud, pero sin embargo cada tanto caigo, o me cae, algún amigo con un problemilla en su máquina, y como todos sabemos eso es el dulce que nos mueve a los informáticos de corazón.

Esta vez la paciente fue una portátil con un Windows 7, un equipo razonable, un sistema operativo cuidado, con antivirus al día, pocas aplicaciones, ninguna de ellas trucha, uso esporádico, actualizado a la fecha. Bueno, casi hasta la fecha, porque precisamente las “Actualizaciones de Windows” se negaban a funcionar. ¿El error? Este:

En un castellano impecable: “Windows Update no puede buscar actualizaciones porque el servicio no se está ejecutando. Puede que tenga que reiniciar el equipo.”

Hasta ahora, solo un inconveniente menor. Vale decir que no había motivos para semejante advertencia: la semana anterior el sistema operativo se actualizó correctamente, el equipo andaba sin inconvenientes, no se instaló nada en el medio, se apagó correctamente, el chequeo con antivirus actualizado no encontró ninguna amenaza, y hoy muestra este mensaje. Lo que se dice, un error sacado de la galera.

Bueno, al menos nos da una punta por donde comenzar a investigar. Según el error, el servicio de Windows Update se encuentra detenido. ¡Elemental! Vamos al gestor de servicios y vemos que, efectivamente, el servicio Windows Update se encuentra…

Iniciado? Pero cómo, no era que…

Bueno, seguramente ha sido todo un malentendido, vamos a reiniciar el servicio e intentar de nuevo. Y procedemos a cumplir con la formalidad. De hecho, para hacerla completa y evitar cualquier interferencia casual vamos a reiniciar el ordenador para luego intentar bajar nuevamente las actualizaciones… así que, reboot de por medio…

Debe ser un problema temporal, probemos con otro reinicio, funcionará bien la próxima…

A esta altura la heurística del cerebro nos lleva de inmediato a preguntarnos: seremos los únicos a los que nos toca la nube con más rayos? no, no puede ser… y vamos como un disparo a consultarle en Google, repitiendo la frase como en la escuela primaria: “Windows Update no puede buscar actualizaciones porque el servicio no se está ejecutando.”. Google engulle nuestra consulta cual galletita de chocolate y nos devuelve foros, foros y más foros de gente que se desgarra las vestiduras por ese error. No somos los únicos, hay más como nosotros.

Y navegando por los foros, allí, iluminado por la luz de las estrellas, está el link con la solución, justo en el sitio de soporte de Microsoft. Un artículo titulado ¿Cómo se pueden restablecer los componentes de Windows Update? Ohhh! toda la inmensidad se reduce a ese cartel azul que dice “Microsoft Fix It”: un extraordinario plan que nuestra empresa de confianza pone a disposición de sus apreciados clientes… “Fix It”, tan sencillo como un botón mágico que nos salva del hastío, de la oscuridad, y de los dolores de cabeza.

Asi que sin perder un segundo, damos clic al botón “Ejecutar ahora”, y luego “Acepto”, “Siguiente”, “Siguiente”, “Siguiente”, viendo una tenue barra de progreso hasta encontrar, ¡al fin!, que nuestro problema “ha sido corregido”.

O no, no ha sido corregido. Sigue igual. Igual que antes. Ni se ha inmutado:

Bueno, seamos optimistas, quizás ese parche no era el adecuado, quizás haya otro que lo resuelva. Probemos con este que parece similar:

No che, tampoco funciona. El fix no fixea nada. Todo muy bonito y lleno de firuletes, pero a la hora de correr se queda en la gatera:

Siguiendo con la lectura doy con otro enlace que puede ser el santo grial de las Actualizaciones de Windows. Se titula “Herramienta de preparación para Windows 7 sistemas basados en x64 (KB947821)” y se describe como:

“Esta herramienta ha sido puesta a su disposición porque se ha detectado una incoherencia en el almacén de servicios de mantenimiento de Windows que podría impedir la correcta instalación de futuras actualizaciones, service packs y otro tipo de software.”

Tan explicativo como ya nos tienen acostumbrados: una “incoherencia en el almacén de servicios de mantenimientos”, ¡pero que obvio! ¡quién lo hubiera dicho! Tan solo hay que bajar un parche de apenas… 340 MB… 340 megabytes por un Windows Update que no funciona. Un parche que pesa tanto o más que el instalador de Windows 98 tiene que arreglarlo todo: este problema y los que vaya a tener dentro de un año. Un parche de 340 megabytes tiene que arreglar TODOS los problemas.

no? NO.

Me hace acordar a una frase de la tira ECOL: “Mierda, mierda en estado puro.”

¿Que nos queda? Un poco más de lectura nos lleva a este post en el sitio de preguntas y respuestas de Microsoft, una especie de Yahoo Answers donde MVPs y usuarios intercambian sus miserias con el sistema operativo de las ventanitas.

La primera respuesta nos dice todo: “You are seeing the effects of a hijackware infection. Only the format & clean install will resolve the problem.” Y te lo dice un MVP con un montón de medallas, eh!

Ahhh, si me dieran un billete por cada vez que escucho eso… Verán, en el gremio informático es materia de todos los días que chantas que arreglan computadoras le achaquen los problemas a los virus. Ojo, en un cierto porcentaje es así, pero buena parte de ellos -los que degradan el oficio- aprovechan la ignorancia del cliente y le cargan al código malicioso todo aquello que ellos mismos no pueden resolver. Les suena…

  • ¿Te anda lento el explorer? Ah, tenés un virus.
  • ¿No abre facebook? Huy, un virus.
  • ¿La impresora no toma las hojas? Zás, tenés un virus.
  • ¿Se tapó el desagüe de la pileta? Que crees, un virus seguro!

Fíjense que hemos llegado a exportar -o quizás lo hemos importado de ellos- el mismo vicio a los médicos cuando no saben el origen de una molestia:

  • Una mancha y picazón en el brazo? Ah, tenés un virus.
  • Dolor de estómago y malestar general? Que crees, un virus seguro!

Y así como nos dan una bayaspirina y nos mandan de vuelta al hogar, los técnicos chantas inmediatamente dan la solución infalible: reinstalar, reinstalar, reinstalar.

No es una solución que me convenza, y evidentemente tampoco le convence al usuario j15Gatz quien, en la segunda respuesta y con buen pensamiento crítico, da la posta: apunta a un blog, que no pertenece a Windows ni a MSDN, donde sí está la solución:

Tres pasos sencillos:

  1. detener el servicio de Windows Update,
  2. eliminar el contenido de la carpeta C:\Windows\SoftwareDistribution\
     
  3. volver a iniciar el servicio.

Listo. Sólo eso.

A esto se enfrenta, sin saberlo, quien utiliza aplicaciones de código cerrado:

  • no conoce la interacción entre componentes,
  • no puede saber la causa de los problemas,
  • el desarrollador le impide por todos los medios que efectúe un diagnóstico preciso -de hecho se lo prohíbe explícitamente-,
  • debe confiar en “soluciones mágicas” sin fundamento ni asidero alguno,
  • el soporte técnico es un pozo negro de tiempo y dinero desperdiciado,

Viendo el streaming de TN, sin navegador web

Lamentablemente no pude estar en Capital para el recital que diera Pedro Aznar recordando al eterno flaco Luis Alberto Spinetta, me tuve que conformar con intentar verlo por algún medio de comunicación, y considerando que en casa no está andando la TV por cable, suelo recurrir a ver los especiales rockeros de TN por la web.

Pero a mi juicio los reproductores basados en Flash son un atropello al navegante cuando existen muy buenos reproductores de video; tiene que haber una forma de ver el flujo de video en tiempo real, pasando por fuera del navegador.

Afortunadamente el usuario LeaN946 en el foro de TDT Latinoamérica nos brinda la respuesta adecuada: utilizando rtmpdump con algunos parámetros mágicos:

$ rtmpdump -r rtmp://stream.tn.com.ar/live/tn2 \
    -a live/tn2 -y tnlive3 \
    -W http://tn.com.ar/sites/all/themes/dozer/swf/cplayer/player.swf \
    -p http://tn.com.ar/envivo/especiales | cvlc -

o bien

$ rtmpdump -r rtmp://stream.tn.com.ar/live \
    -a live -y tnhd1 \
    -W http://tn.com.ar/sites/all/themes/dozer/swf/cplayer/player.swf \
    -p http://tn.com.ar/envivo/24hs | cvlc -

es posible arribar a esto:

El audio deja un poco que desear 🙁 pero la imagen no está mal, no?

FLISOL 2012 – Festival Latinoamericano de Instalación de Software Libre

Como ya viene siendo una sana costumbre, el Grupo de Usuarios de Software Libre de la Universidad Nacional de Luján está organizando la edición local de la 8va edición del Festival Latinoamericano de Instalación de Software Libre (FLISoL), el evento simultáneo de difusión de Software Libre más grande en Latinoamérica.

El FLISOL se realiza desde el año 2005 y su principal objetivo es promover el uso del software libre, dando a conocer al público en general su filosofía, alcances, avances y desarrollo. Para tal fin, las diversas comunidades locales de software libre (en cada país, en cada ciudad/localidad), organizan simultáneamente eventos en los que se instala, de manera gratuita y totalmente legal, software libre en las computadoras que llevan los asistentes. Además, en forma paralela, se ofrecen charlas, ponencias y talleres, sobre temáticas locales, nacionales y latinoamericanas en torno al Software Libre, en toda su gama de expresiones: artística, académica, empresarial y social.

El FLISOL 2012 se llevará a cabo el sábado 28 de abril. Por quinta? sexta? séptima? vez, el UNLUX organizara la actividad en la ciudad de Luján. La jornada está dirigida a todo público, sin importar el nivel de conocimientos técnicos que se posea, y comprenderá la instalación de software libre en los equipos que acerque el público, así como también habrá charlas de variado tenor.

Agendando…

Más Info en el sitio web del UNLUX y en www.installfest.info/FLISOL2012/Argentina/Lujan

Recuerden que además, el sábado siguiente -5 de Mayo- tenemos ¡PyDay en la UNLu!

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress