Dic 14, 2009 Links
Estoy sin mucho tiempo para escribir últimamente, pero cuando encuentro algo entretenido trato de compartirlo acá. Hoy, diagrama de la cultura geek (via I love charts)

Dic 8, 2009 Sin categoria
Interesante infografía del volumen de datos que se mueven en internet por día:

Created by OnlineEducation.net
Dic 6, 2009 Articulos, Links
Como sabrán esta semana Google anuncio que abrió un DNS server publico.

Las ventajas de usar los servicios de Google las conocemos: Son gratis (la mayoría), tienen un uptime decente y lo mas interesante: son rápidos. Pero, como con todo anuncio de una compañía grande, surgieron en internet un por de dudas:
- ¿Que información guarda Google sobre el uso que le de a su servidor de DNS?
- ¿Porque no ayudaron a un proyecto como OpenDNS en lugar de crear su propio proyecto.
- Google tiene control sobre tantas cosas ya (email, búsquedas, publicidad) que empieza a asustar un poco.
De hecho en sitios como cgisecurity salieron serias criticas, todas relacionadas con la cantidad que de información que le damos a Google, ya que esto les permite hacer un perfil sobre el uso que le damos a internet, aun en sitios que no tengan Google Adsense/Analytics.
La conclusión a la que llegaron algunos bloggers es que a Google le interesa que Internet sea mas rápida, ya que esto les permite imprimir mas banners y ganar mas plata.
Así que me decidí a investigar un poco que tan rápido es Google Public DNS.
Encontré varios artículos criticando la velocidad del servicio, diciendo que no era tan rápido. Pero no me convencían así que decidí hacer mis propias pruebas con nslookup y para mi sorpresa, al menos en mi ISP, Google Public DNS es 5 veces mas rápido que OpenDNS (el cual ya era el doble de mas rápido que mi ISP).
Después de usarlo un par de horas en mi desktop decidí pasar la red de mi casa a este servicio.
En mi caso es fácil, uso un router wifi Linksys WRT54GL que tengo flasheado con DD-WRT (un firmware opensource que me brinda opciones como conectarme a la VPN de la oficina) así que lo único que tuve que hacer fue ir a la opción de Commands, dentro del menú Administration, escribir el siguiente script:
echo “nameserver 8.8.8.8” > /tmp/resolv.dnsmasq
echo “nameserver 8.8.4.4” >> /tmp/resolv.dnsmasq
sleep 1
killall -HUP dnsmasq
Y clickear sobre “Save Firewall”.
Para no tener que reiniciar el router simplemente corrí esos comandos a traves de la interface SSH del mismo.
Conclusión: La velocidad se nota.
Dic 3, 2009 Links
Hace pocos días descubrí el blog de “Si Evita estuviera viva seria Linuxera”.
Es un blog sobre Linux y peronismo (?) que lleva varias explicaciones de distintos temas con algo de humor, parafraseando a un compañero de trabajo: Es como ver “Peter Capusotto y sus Videos” pero hablando de vim.
Hoy justo Evita esta presentando Python, acá un fragmento:
Es por eso que hoy les traemos la noticia que cambiará la manera de trabajar, el desarrollo está golpeando las puertas de la Patria y es tarea del movimiento obrero, abrir esa puerta para convertirlo en una realidad nacional. A partir de hoy, queridos compañeros, desde este mismo lugar, tendremos un curso de Python, el lenguaje de programación Justicialista, el que ejerce la tercera posición entre Java y .net, los dos males de estos tiempos.
Espero que les guste el blog. Yo me estoy divirtiendo leyendolo.
Dic 3, 2009 Articulos, Links
Yo tengo la costumbre de pensar así:
- Desktop: Linux (Gentoo, Fedora, Ubuntu o Arch)
- Server: Linux (Gentoo o Debian) o FreeBSD.
Pero este benchmark me lleno de sorpresas:

¿NetBSD con SMP mas rápido que el resto? Voy a tener que hacer algunas pruebas…
Dic 2, 2009 Articulos, Links
Hoy en el blog de Christopher Lenz salio un interesante esbozo de articulo sobre los namespaces y como la mayoría de los lenguajes de programación manejan mal ese concepto.
El ejemplo en C# es clarisimo:
using System;
using System.IO;
public class HelloWorld {
public static void Main(string[] args) {
Console.WriteLine("Hello, World!");
}
}
¿De donde sale Console? Y no queda en C#, hoy por hoy estoy trabajando mucho en C++:
#include <iostream>
int main()
{
std::cout << "Hola mundo!" << std::endl;
}
¿De donde sale std? Y lo que es peor, muchos include te pueden llenar a std de distintas cosas.
La parte que mas me gusto es del articulo es esta:
Resulta que los lenguajes en los que estoy actualmente interesado entienden esto (mas o menos) bien: Python, Erlang, Go, y (aunque no es un lenguaje) node.js.
+1 Python otra ves.
Nov 27, 2009 Articulos, Links
La documentación de Microsoft para desarrolladores es mala. Esta es la conclusión a la que llegue después de ver que en MSDN no sabían unicode.
Pero lo que mas gracia me causa de MSDN es cuando documentan pequeños workarounds para las limitaciones de sus productos. Este es un ejemplo: How To Obtain a Console Window Handle (HWND).
Un HWND se utiliza para acceder a propiedades de la ventana, el problema es que en viejas versiones de la API de Windows no había un método para listar las ventanas de una aplicación que retornara el HWND de estas, así que Microsoft surgió con este hack:
- Llame a GetConsoleTitle() para guardar el título de ventana de consola actual.
- Llame a SetConsoleTitle() para cambiar el título de la consola a un título único.
- Se actualizó Sleep(40) de llamada para garantizar el título de la ventana.
- Llamada a FindWindow (NULL, uniquetitle) para obtener el objeto HWND esta llamada devuelve el HWND–o NULL si no se pudo realizar la operación.
- Llamada SetConsoleTitle() con el valor se recupera del paso 1, para restaurar el título de ventana original.

¿Soy al único que le parece un hack horrible?
Otros momentos épicos de MSDN:
Nov 26, 2009 Links

Así es como me vengo a desayunar que los programadores que mas insultos escriben en su código fuente son los que programan en Perl. ¿Alguien puede culparlos?
Igual C viene cerca, es mas, hay un proyecto que se dedica a contar cuantas veces aparece la palabra “fuck” en cada una de las versiones del Kernel de Linux.

Completamente OT pero otro dato de color para el día: ¿Firefox se usa en mas países de los que hay en el planeta?
Nov 25, 2009 Articulos

¿Quien en su sano juicio llamaría a una función bugfix()? Solo en PHP, un lenguaje que ni siquiera sabe sumar.
Que pena que no se pueda linkear a contenido de Code Complete 2, ese libro es la mejor referencia sobre programación que existe.