lunes, diciembre 17, 2012

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:


martes, diciembre 04, 2012

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...