Soy Ingeniero

Como dice La Chancha en su tema Mañana no es muy tarde: no es que quiera hacer alarde de nada en particular, pero...

Me acabo de enterar que ¡soy Ingeniero!.

Imposible transmitir la euforia que siento en este post. Solamente agradecer a todos los que me han apoyado en estos años, en especial a mi familia, mi abuela y mi novia. Sin ellos no hubiera sido posible. ¡Los quiero mucho a todos!

Notiuy 20 Avant Premiere

Este post no va a ser muy extenso (ya habrán otros), simplemente quería comentarles que estoy trabajando en la nueva versión del sitio NotiUY, y que ya está en línea la primera beta en:

http://beta.notiuy.com

Ya saben que son bienvenidos todo tipo de comentarios y (ni que hablar) colaboraciones.

Por cualquier otra información dense una vuelta por el wiki.

Motorola Razr V3 En Uruguay

Hace un par de semanas se me rompió mi viejo y querido Nokia 8260 (QEPD), luego de 5 años de uso ininterrumpido (un solo cambio de batería), lo cual habla muy bien del aparto. Parece ser que el buen mozo era más popular de lo que yo pensaba (su foto ya ha salido en otros blogs que hasta ahora desconocía). Pero bueno, para ser honestos, el celular aún funciona, lo único que se le rompió fue el micrófono. Pero me he dado cuenta que resulta un tanto incómodo hablar por celular cuando los demás no te escuchan. Asi que me vi forzado a tomar una decisión urgente, porque hoy en día te podés quedar sin comer por unos días, pero sin celular... eso jamás!. Asi que se me presentó la siguiente disyuntiva: aprovechar la situación como escusa para comprarme un nuevo celular, o arreglar el micrófono del 8260 y dejarme de joder.

Opté por la primera opción. Pero eso fue solo el comienzo, luego tuve que decidir que comprarme. Todo un tema, pero la voy a hacer corta: me compré el Motorola RAZR V3. Lo compré aqui en Uruguay por U$S 260 (precio que considero razonable, para la zona). Tenía la posibilidad de traerme un celular de USA pero:

  • demoraba más en llegar y lo precisaba urgente
  • el tema de la garantía (en caso de problemas) es un embole
  • quería un celular que fuese popular en Uruguay para probar la futura versión WAP de NotiUY y, eventualmente, alguna aplicación Java que desarrolle.

También debo agradecer las recomendaciones personales de Enrique Place que sin duda influyeron mucho en la decisión. Por otro lado, de haberlo comprado en USA, seguramente me hubiera traído algún celular con Symbian.

Luego de usarlo por dos semanas, ¿qué puedo decir?. Estoy conforme con la compra. No voy a hacer un resúmen de sus características ni una reseña del mismo, pues ya hay demasiadas. La de Mobile Review está muy bien.

Trataré entonces de aportar algo de información nueva. En particular, como configurarlo para Internet en Uruguay. Yo tuve que averiguar como hacerlo por mi cuenta (porque en ANCEL no quisieron ayudarme) asi que dejo aquí la información con la esperanza de que le sea de utilidad a algún colega uruguayo de RAZR.

Veamos primero como funciona el tema: el único plan viable de conexión a Internet hoy en día (Setiembre, 2006) (por ANCEL) es la tarifa plana WAP que cuesta 70 pesos (U$S 3) por mes y funciona por GPRS. También es posible conectarse por CSD donde te cobran por el tiempo que estás conectado y cuyo costo es la tercera parte del minuto de voz, lo cual es un robo a mano armada (U$S 6 por hora en mi caso).

Asi que de momento estamos condenados a vivir con la mísera conexión WAP de ANCEL. Afortunadamente no todo es desgracia, ya que disponemos de un proxy HTTP para usar con navegadores HTML como el Opera Mini, una aplicación tan necesaria que no me hubiera comprado este celular si no fuera por ella.

La conexión WAP plana de Ancel tiene todos los puertos salientes cerrados (al menos yo no he encontrado ninguno abierto) y provee dos proxies (uno WAP y otro HTTP) que son la única conexión con el mundo exterior. Todas las aplicaciones que se comuniquen con Internet deben hacerlo a través de estos proxies, lo cual impide poder utilizar aplicaciones que requieran conexiones directas como clientes de MSN o clientes SSH.

La conexión a Internet del RAZR (como la de cualquier celular Motorola) se configura en las Sesiones Web. Alli definimos lo que serían las conexiones disponibles y luego, desde las aplicaciones (MMS, browser, correo, java, etc) se selecciona que conexión usar. Las aplicaciones Java aparentemente usan la conexión por defecto. En cambio, el correo y los MMS se pueden configurar para utilizar una conexión diferente.

Configuración de acceso WAP

Para configurar el Motorola RAZR con Internet hay que agregar una conexión nueva (en Menú - Acceso Web - Sesiones Web) con los siguientes datos (las opciones que no se especifican dejarlas con el valor por defecto):

  • Nombre: Java Session
  • Página de inicio: http://yeswap.com
  • Tipo de servicio 1: WAP
  • Gateway IP 1: 200.40.246.2
  • Puerto 1: 9201
  • Tipo de servicio 1: HTTP
  • Gateway IP 2: 200.40.246.2
  • Puerto 1: 3128
  • APN GPRS: wap

La página de inicio puede ser cualquiera. YesWAP es un portal que agrupa un montón de páginas útiles, ordenadas por categorías. Los DNS no es necesario configurarlos ya que los proxies se encargan de resolver los dominios.

Pero eso no es todo. Para poder navegar la web en toda su plenitud (sin estar restringido a páginas WAP) hay que bajarse e instalar el Opera Mini siguiendo las instrucciones de esta página.

Configuración para acceder al mail

Para leer mail lo ideal sería usar POP3/IMAP, pero no es posible ya que ANCEL bloquea los puertos salientes y todas las conexiones deben hacerse a través de los proxies WAP/HTTP. Las alternativas que funcionan son:

  • usar la página WAP de tu proveedor de mail (si tiene). Gmail, Hotmail y Yahoo tienen. Adinet, no. Es importante recalcar que se debe usar Opera, ya que el navegador WAP propio del RAZR no anda bien con estos sitios. La aplicación Google Mobile tampoco funciona (ver explicación en la actualización, al final del artículo).
  • usar la interfaz WAP de mail2wap. Ventaja: poder acceder a cualquier cuenta POP3/IMAP. Desventaja: pérdida de privacidad
  • instalar wapreader en tu propio servidor. Ventaja: poder acceder a cuentas POP3/IMAP, conserva privacidad. Desventaja: tener que disponer de un servidor donde instalarlo
  • usar flurry que vendría a ser una especie de "proxy de mail" que recibe y almacena tus mensajes provisoriamente. Ventajas: dispone de una aplicación para acceder a los mails que es mucho más usable que una página wap. Desventajas: pérdida completa de privacidad, inserta publicidad en los mails enviados.

Configuración para chatear por MSN y Yahoo

Si dispones del plan de acceso WAP (tarifa plana, $70) es posible chatear en MSN y Yahoo utilizando la aplicación mig33 (gracias CyberPlant por el dato!). El procedimiento para configurar e instalar el mig33 es el siguiente:

  1. Ir con el celular a http://wap.mig33.com y cliquear la opción Download&Install (eso bajará e instalará el mig33)
  2. Entrar al mig33 yendo a Menu - Juego y aps.
  3. Cuando les pregunte que tipo de conexión quieren usar (TCP, HTTP o manual) elijan HTTP
  4. Registrarse ingresando un número de usuario, una clave y el númeor de celular (incluyendo el código del país). En el caso de Uruguay, si el número celular es 099 123456, deben ingresar: 59899123456
  5. . En otros países el número a ingresar es diferente. Si tienen duda pueden consultar llenando el formulario de esta página, indicando en que país viven y su número de celular, y preguntándo que número deben poner.
  6. A continuación les pedirá que activen la cuenta. Deben esperar que les llege un SMS con el código de activación, y luego ingresar dicho código apra activar la cuenta
  7. Luego de loguearse les preguntará si desean configurar alguna cuenta de MSN o Yahoo. Seleccionar que si e ingresar los datos de dicha cuenta (usuario y clave)

Configuración para enviar MMS

Finalmente, les dejo el procedimiento para configurar el servicio de mensajes multimedia (MMS). Vale mencionar que, para enviar y recibir MMS, no es necesario disponer del plan de acceso WAP. El costo actual (Octubre, 2006) de enviar un mensaje MMS es de 2 pesos uruguayos (U$S 0.08, el doble de un SMS) y es independiente del tamaño o el tipo de adjuntos que tenga el mensaje. Recibir un MMS no tiene costo.

Este procedimiento es para el Motorola RAZR pero debería ser muy similar para Motorola de la línea Vxxx.

  1. Ir a Menú - Acceso web - Sesiones web, seleccionar [Ingreso Nuevo] e ingresar los siguientes datos (las opciones que no se especifican dejarlas con el valor por defecto).
    • Nombre: MmsAncel
    • Página de inicio:
    • Tipo de servicio 1: WAP
    • Gateway IP 1: 200.40.246.2
    • Puerto 1: 9201
    • APN GPRS: mms
  2. Guardar la nueva configuración creada
  3. Ir a Menú - Mensajes
  4. Hacer clic en el botón de Menu e ir a Config de mensaje - Config de msj MMS
  5. Ir a Info de Servidor y seleccionarlo.
  6. Cliquear en el botón de Menú, seleccionar Nuevo y llenar con los siguientes datos:

Actualmente, en Uruguay, no es posible enviar MMS entre redes celulares diferentes (Ancel, Movistar, CTI). Esperemos que esto se arregle pronto porque la verdad que es muy incómodo no poder hacerlo.

Google Mobile

Actualización (8 Nov 2006)

Google acaba de sacar su cliente para celulares (Google Mobile). Sin embargo, éste no funciona en Uruguay (ni con RAZR ni con ningún celular) ya que se comunica a través del puerto 443 (https) que ANCEL tiene bloquado.

Algunos se preguntaran porque la web de Gmail sí funciona desde el Opera Mini cuando ésta también se comunica a través de https. La explicación es la siguiente: Si usaras un navegador web común y corriente (en el RAZR) tampoco andaría, pero usando el Opera Mini si funciona. ¿Por qué?. El Opera Mini es un browser Java pensado para correr sobre plataformas con CPU y memoria muy limitada (como es el caso del RAZR). Por lo tanto, lo que hace (para poder cargar y mostrar cualquier página HTML) es utilizar un proxy intermediario de Opera que se baja la página y te la envía a tu celular ya preprocesada (algo asi como "compilada para correr sobre el Opera Mini") para que tu celular la pueda mostrar con pocos recursos. De lo contrario, no tendría la capacidad suficiente como para procesar y mostrar el HTML. El Opera Mobile en cambio (disponible para Symbian) si tiene render HTML propio. Pero bueno, ¿que tiene que ver todo con el problema del Gmail Mobile?. Que el Gmail Mobile se comunica directamente al puerto 443 (https) mientras que el Opera mini hace pasar todo por el proxy de ellos, y para comunicarse con dicho proxy utiliza el puerto 80 (http) no que está bloqueado.

Y por eso es que Gmail funciona con Opera Mini pero no con el Gmail Mobile (al menos, por ahora).

Conectarse a Internet desde la laptop

Actualización (19 Jul 2007)

Si se están preguntando si es posible conectarse a Internet desde la laptop (a través del celular, claro) estarán felices de saber que asi es, incluso utilizando el plan de tarifa plana WAP. Yo lo hice siguiendo esta excelente guía, publicada en el foro de Macacos. Las instrucciones son para Mac. Para Windows seguro que también es posible, pero no tengo ninguna guía a mano y tampoco tengo como probarlo ya que (desde hace un tiempo ya, por suerte) no tengo ninguna máquina Windows a mi alcance. Si alguien encuentra (o publica) alguna guía sería bárbaro que lo mencionara en los comentarios, así luego agrego el link aquí para que la gente que lea el artículo pueda acceder rápidamente.

Con respecto a la conexión a Internet: funciona, aunque muy lento. También es posible (como dice el artículo) conectarse al MSN con el Adium, que es probablemente lo que más vayan a usar. dada la lentitud de la web. Ah, y páginas pesadas (como Gmail) directamente no funcionan. Imágenes grandes tampoco funcionan, porque son filtradas por el proxy de Ancel. En fin, no es que vayan a poder navegar mucho, pero el hecho de tener el MSN lo hace muy útil.

Osciloscopio Usb En Las Jefi 2006

El miércoles 13 de setiembre, a las 20:40, estaré dando una charla sobre el osciloscopio USB que diseñamos con mi colega Martín Szmulewicz, como proyecto de fin de carrera. La misma será dictada en el marco de las JEFI (Jornadas Estudiantiles de ORT). Hablaremos un poco sobre su diseño, el futuro del proyecto y la decisión de liberarlo como proyecto libre (tanto a nivel de hardware como software). Están todos invitados.

Además, vale mencionar que el acceso a las JEFI es de carácter libre. Pueden consultar el programa, hay varias charlas interesantes.

Acceso Amigable A Ldap

Hace tiempo vengo buscando una aplicación para acceder, de forma amigable, a una lista de contactos guardada en un directorio LDAP. Siempre me pareció ridículo que no hubiera una aplicación para acceder de forma sencilla y amigable a una base de contactos LDAP. ¿Cómo puede ser que, siendo tan bueno LDAP, aún no exista una forma sencilla de acceder a su contenido y poder modificarlo?. O sea, existen interfaces web (entre las cuales destaco el Turba) pero una interfaz web, por mas Web2.0 que sea, sigue siendo una interfaz web con todas las ineficiencias de uso que conlleva. La ventaja de una aplicación gráfica es aún claramente notoria ante una web (por algo la gente usa Thunderbird en lugar de webmail). Y hablando de Thunderbird, si bien su libreta de direcciones soporta LDAP, no soporta modificaciones lo cual tranca mucho a la hora de implantar un addressbook compartido. Aunque por suerte los desarrolladores de Thunderbird ya están al tanto del problema, aunque no han dicho cuando solucionarán el problema. Habrá que esperar...

Incluso estuve a punto de escribir una aplicación multiplataforma (usando Python, python-ldap y wxPython) para acceder a un directorio LDAP con posibilidad de modificar los contactos. Por diversas razones nunca la empecé y hoy en día, afortunadamente, alguien ya lo hizo. El resultado se llama Luma está escrito en Python (usando librerías QT). Además, es un proyecto más ambicioso que el mío, ya que posee una capa de plugins que permiten administrar amigablemente, no solo listas de contactos, sino usuarios/grupos, e incluso editar el directorio en forma cruda (en formato árbol). Desgraciadamente Luma tiene una gran traba y es que aún no corre en Windows. Los desarrolladores me dijeron que, antes de portarlo, piensan pasarlo a PyQt-4 lo cual, en mi opinión, es una trasgiversación de prioridades y, en definitiva, me deja en la misma posición que al principio.

Evolution sí soporta libretas de direcciones LDAP con acceso de escritura, pero no corre en Windows (bueno, sí corre pero muy mal).

Habrá que esperar entonces a que porten Luma para Windows o que implementen la escritura LDAP en la libreta de direcciones del Thunderbird, lo cual sería una mejor solución ya que siempre es bueno tener todo integrado dentro del cliente de correo.

Me parece que la falta de una aplicación de acceso amigable a LDAP es una de las grandes trabas que ha impedido una mayor adopción de openldap y tecnologías afines que, de no ser por esas carencias, su uso estaría mucho más popularizado ya que las libretas de direcciones compartidas es algo imprescindible hoy en día para las empresas y realmente no existen alternativas libres decentes.

Y ya que estoy con LDAP, debo mencionar que también me costó mucho encontrar una aplicación para administrar usuarios y grupos. En este caso no me importaba tanto que fuese web pero sí que fuese amigable, no como phpldapadmin que (si bien es muy bueno) está orientado a editar el directorio LDAP en formato crudo. Afortunadamente encontré LDAP Account Manager que, aunque es un poco básico, cumple los requisitos.

Freebsd Vs Linux Servidores

Desde hace un tiempo vengo usando FreeBSD en algunos servidores. Al principio me sentía un poco reacio a probarlo porque pensaba que el constante aumento en la calidad de las distribuciones Linux provocaría, tarde o temprano, la caída de FreeBSD y por lo tanto no justificaba invertir tiempo en estudiarlo. !Cuan equivocado estaba!. FreeBSD podrá tener sus defectos, pero está muy lejos de desaparecer. Sin ir más lejos, se está convirtiendo rápidamente en mi sistema favorito para servidores.

En este artículo comentaré algunas de las ventajas (y desventajas) que he encontrado en mi uso diario de FreeBSD, comparándolas siempre con sistemas Linux que vengo usando desde mucho antes (1998, según Linux counter). El análisis estará enfocado en el ámbito de servidores.

Antes de continuar, vale mencionar que nada reemplaza a Ubuntu en mi PC de escritorio, ya que Linux supera ampliamente a FreeBSD en cuanto a soporte de hardware se refiere (lo cual es algo muy importante en el mundo de los entornos gráficos). En contrapartida, FreeBSD (que tiene su propia lista oficial de hardware soportado) te da la seguridad de ser muy estable en hardware probado. Y esta seguridad (cómodamente ignorable en PCs de escritorio) es sumamente importante en servidores ya que alli lo primordial es la estabilidad y generalmente no se utiliza ningún hardware exótico (como cámaras de fotos, impresoras, escáners, etc).

Un mundo diferente...

Bueno, ni tanto. FreeBSD (que, a diferencia de GNU(is-not-unix)/Linux, sí es Unix :)) no tiene tantas diferencias con Linux como uno esperaría, al menos desde mi punto de vista. Generalmente, la tendencia es: mismos comandos, diferentes opciones. Por lo cual, ya tenemos medio camino recorrido y (gracias a las excelentes man pages) recorrer la segunda mitad es una pasada.

Por otro lado, hay un mito de que FreeBSD es más "complicado" de usar que Linux. No estoy de acuerdo. Me parece que ese mito fue inventado por la misma gente de FreeBSD para alejar a los "newbies" y mantener la comunidad más "saludable". "Vayan... aprendan con Linux y cuando esten listos vuelvan". Pero la realidad es que tanto FreeBSD como Linux tienen un grado similar de dificultad. Es más, estoy seguro de que un usuario FreeBSD (naturalmente acostumbrado a un sistema coherente y bien integrado) le costaría más aprender Linux que a la inversa, debido a que Linux tiene muchas particularidades y dista mucho de poseer la integración de FreeBSD.

Instalando software

Y si... debo comenzar hablando sobre los god-oh-mighty ports, a los cuales FreeBSD debe su gran popularidad. Los ports es el sistema de empaquetado que usa FreeBSD desde sus albores. Un port es básicamente un script con instrucciones para compilar una aplicación en el sistema FreeBSD, concretamente, un Makefile. Dependiendo de la aplicación que se trate, los ports pueden incluir parches necesarios para que la aplicación compile correctamente. Es importante notar que los ports no contienen la aplicación compilada, ni siquiera el código fuente de la misma. Estos son bajados del sitio oficial del autor (típicamente en un .tar.gz) y posteriormente compilados siguiendo las instrucciones indicadas por el script del port. En otras palabras, los ports solo proveen instrucciones de compilación y no el código de la aplicación. La idea está muy buena y es tremendamente escalable. Algunas distribuciones Linux (como Gentoo) ya la han adoptado (con su sistema portage) con gran éxito. Vale notar que los ports también ponen a disposición versiones binarias (compiladas) de los programas (conocidos como packages) aunque siempre es conveniente bajar y compilar los fuentes para estar seguros de tener la última versión (con parches de seguridad, etc).

Al principio uno se podría sentir un poco molesto por tener que compilar todo. Cuando menos, un sysadmin a cargo de varios servidores puede sentir que está desperdiciando electricidad y ciclos de CPU. Afortunadamente FreeBSD ya tiene previsto un mecanismo para bajar y compilar los ports en una máquina (de desarrollo) y luego distribuirlos al resto de las máquinas en forma binaria. Este mismo mecanismo también se puede aplicar para compilar y redistribuir (distintas versiones) del kernel.

De todas formas, opino que la bondad de los ports ya no es tan importante puesto que, si bien los repositorios de software fueron un dolor de cabeza hace unos años, cualquiera de las alternativas actuales (apt, yum, portage) están lo suficientemente maduras.

Sin embargo, vale la pena comentar sobre portaudit, un comando que sirve para averiguar si alguno de los ports instalados tiene alguna vulnerabilidad conocida. Portaudit se nutre de una base central de reportes de seguridad almacenada en un formato estándar (VuXML) y administrada por un equipo dedicado exclusivamente a la tarea. La importancia de que esta base sea única y estándar es evidente. Claro, siempre y cuando el equipo de seguridad haga las cosas bien. Que yo sepa, no hay quejas al respecto.

Espejado de discos

Un tema que resulta de vital importancia en el ámbito de servidores es el espejado de discos. Para sistemas de gran porte generalmente estos problemas se resuelven a nivel de hardware (comprando controladoras RAID) pero últimamente (con la popularización de las PCs para servidores) se ha hecho muy común el uso de RAID por software. En este aspecto, FreeBSD viene con geom, un sistema que nada tiene que envidiarle al Software-RAID de Linux.

Herramientas de usuario

Mucho se ha dicho sobre la ventaja de tener todo el sistema base integrado (FreeBSD), en contrapartida con tener el kernel y las herramientas de usuario ensambladas por terceros (Linux). En este punto no estoy convencido de que uno sea mejor que el otro, pero si sé que la consistencia y calidad de las man pages hace que la balanza se incline para el lado de FreeBSD.

Documentación

Aqui me saco el sombrero. La documentación de FreeBSD consta de dos joyitas que son: el handbook y las man pages. El handbook es de gran ayuda ya que es un compilado de toda la información necesaria para instalar y administrar el sistema, mientras que las man pages tienen la información concisa y los ejemplos apropiados para lograr las tareas. El día que que cai en cuenta de la buena calidad de la documentación fue cuando se me rompió el disco primario del servidor de casa. En otras ocasiones donde tuve problemas similares (usando Linux) he tenido que recurrir a un par de búsquedas en Google, por lo menos, para corroborar que estaba haciendo las cosas bien. Cuando me pasó con FreeBSD, la documentación era tan clara y la mecanismo tan evidente que pude restaurar el sistema solo leyendo las man pages.

Configuración y directorios

Otra característica destacable, consecuencia de ser un sistema bien diseñado y mejor integrado, es la coherencia mantenida en la estructura de directorios lo cual resulta extremadamente útil y evita un montón de tiempo muerto de Googleo, lectura de documentación, etc. De la misma forma, la simplicidad y coherencia en los archivos de configuración es algo que me ha caído muy simpático.

En cuanto a los scripts de inicialización, el sistema rc.d de FreeBSD me parece mucho más prolijo y mantenible que el uso de los abominables runlevels de Linux.

Jaulas

El comando jail permite correr cualquier aplicación (y sus procesos descendientes) en un entorno chroot, incluso aunque la aplicación no soporte chroot. En Linux ya hay software disponible para hacer esto pero, como siempre, cada distribución es una historia distinta. Y más para aplicaciones como éstas que requieren modificaciones del Kernel. Y ya que estamos hablando del Kernel, debo mencionar que es sustancialmente más sencillo recompilar el Kernel en FreeBSD que en Linux, lo cual puede ser consecuencia de que FreeBSD sea más orientado a la compilación (por los ports).

Desventajas

Muy pocas. Al principio extrañaba mucho shorewall pero, desde que conocí Packet Filter, cada vez menos lo extraño menos. También está el tema de los drivers para hardware específico pero no es algo que me haya afectado en absoluto en el ámbito de servidores.

Licencias

FreeBSD está liberado bajo la licencia BSD mientras que Linux bajo la GPLv2, ambas aceptadas por la OSI como licencias libres. La diferencia básica radica en que la licencia BSD no te obliga a divulgar el código fuente de los cambios y por lo tanto no asegura la preservación de las 4 libertades (postura con la cual difiero).

Pero la verdad es que este asunto de las licencias poco le cambia la vida a un sysadmin (siempre y cuando nos mantengamos en el terreno de las licencias libres, claro). En cambio, sí le ha cambiado la vida a empresas como Apple que, según cuenta la leyenda, optaron por desarrollar su Mac OS X a partir de FreeBSD (en lugar de Linux) debido a las restricciones de la GPL. Pero bueno, eso ya es otra historia...

Conclusión

FreeBSD es un sistema operativo más "prolijo", mejor organizado y que intuyo (aunque aún no me atrevería a afirmar) más robusto que Linux. Esto es gracias a que tiene un grupo reducido (y considerablemente selecto) de gente encargada de fiscalizar los cambios. Hasta aca no difiere mucho del funcionamiento de la mayoría de las distribuciones Linux. La razón a la cual le atribuyo su éxito es, por un lado a las correctas decisiones de diseño, y por otro a que (al estar bien integrado y no tener varias distribuciones) todos los desarrolladores están más o menos al tanto del funcionamiento de todo el sistema. Linux no podrá gozar de tales beneficios hasta que no se defina una distro como base (Debian o Gentoo serían mis candidatas actuales). Considerando la diversidad de distros disponible y los intereses (en muchos casos comerciales) asociadas a éstas, esto es algo muy díficil (sino imposible) de que suceda. Hasta no que dejen de aparecer distribuciones nuevas todos los días y los hackers concentren toda su energía en pulir y mejorar una distribución particular, esta situación no va a cambiar. Desconozco la solución a este problema y sé que, para muchos, esto ni siquiera es un problema, sino una ventaja. También sé de varios proyectos destinados exclusivamente a mejorar este situación, como el caso de FreeDesktop, señal de que no todo está perdido :).

En definitiva, la razón por la cual FreeBSD se conserva tan "prolijo" es que FreeBSD hay uno solo. En Linux, en cambio, hay un millón de distribuciones, cada una con sus particularidades y en muchas casos reimplementando cosas que ya existen en las otras (caso yum, apt). Ya sea por falta de coordinación, o por alegar carencias de las alternativas, las distros de Linux continúan día a día re-inventando la rueda. No me malinterpreten, estoy de acuerdo que es bueno tener alternativas pues nos da la libertad de elegir. Sin embargo, esa misma libertad/flexibilidad es la que impide que haya una mayor cohesión en el sistema y, en consecuencia, impone más dificultades a la hora de lidiar con problemas. En cierta medida, yo lo veo como una analogía entre los lenguajes de programación Python y Perl. En Perl (que en este caso sería Linux) la filosofía es tener muchas formas (diferentes) de hacer las cosas para que sea el programador quien opte por la de su preferencia y que asi, de cierta manera, el código tenga un "toque de arte" propio. Python, en cambio, opta por hacer hincapié en el hecho de tener una única forma oficial/aceptada/intuitiva de hacer las cosas de manera de preservar al máximo la coherencia en el código y asi promover la legibilidad de códigos ajenos. Yo, particularmente, me inclino por la filosofía Python.

Actualización: !Gracias a todos los barrapunteros por sus comentarios!. A raíz de ellos he decidido reemplazar el ícono original del artículo por uno más "neutral". Mi intención nunca fue la de iniciar un "flame war" sino simplemente contar mi experiencia personal con ambos sistemas operativos. Espero haber reflejado esa idea en el texto y reconozco que el ícono original no fue una decisión muy inteligente.

Dynamic Dns Updates With A Simple Php Script

This guide will show you how to setup a very simple, useful and straightforward dynamic DNS udpate system using only a small php script (and a nameserver, of course).

What is it?

This is a very simple approach into building a very simple dynamic update system, in a similar fashion to those provided by dyndns.org and similar sites.

Basically, what a client needs to do in order to update its IP is to fetch a webpage which, in this case, it would be;

http://dyn.domain.com/dns/update.php?host=client&pass=secret

It's a simple method because the client only has to fetch a web page to update its DNS IP address (client.dyn.domain.com in this case).

What is it not?

This is not a secure way to install a dynamic DNS update infrastructure. If you need that, take a look at the GnuDIP project.

Requirements

This requirement for this approach are quite basic indeed (that's why it's called "simple").

  • a DNS server, which resolves DNS requests for your dynamic zone (in this case, dyn.domain.com)
  • a HTTP server with PHP support (could be the same DNS server)

In this scenario the script would be run in the HTTP server which, in turn, will update the DNS zone (in the DNS server)

How it works

  1. the (dynamic IP) client makes a HTTP request to the HTTP server, eg: http://dyn.domain.com/dns/update.php?host=client&pass=secret
  2. the PHP script process the request, validates the user/password, and fires the DNS update request through the nsupdate utility
  3. the DNS server receives the update request from the HTTP server and performs the update into the DNS zone leaving the hostname (client.dyn.domain.com in this case) with the new IP address

Receipt

This is a receipt to setup the dynamic DNS update system, as specified above. I assume you have already registered the domain and created the zone in your named configuration (this is not a BIND nor a registrar guide).

Install and configure the PHP update script

Download the PHP script (by clicking on the link below), log into the HTTP server and install the PHP script into a public accesible location, ie. http://dyn.domain.com/dns/update.php.

For simplification purposes, the configuration options are located inside the same script. Those are:

  • $hosts - an array which contains the available hosts and their passwords
  • $zone - the DNS zone to hold the dynamic hosts
  • $dnsserver - the authorative server for the zone specified above (must allow updates from this host)

Configure the DNS server to allow updates

You must also configure the DNS server to allow update from the HTTP server (which could be the same machine). To do that you use the allow-update directive. The zone configuration (in your named.conf file) would be something like this:

zone "dyn.domain.com" { type master; file "dyn.domain.com"; allow-update { 127.0.0.1; }; };

In this case update requests will come from the same machine. If your HTTP server is located in another machine just replace 127.0.0.1 with its IP address.

For better security you should use key authentication. See man named.conf for more information.

Configure the clients

The only thing left to do is configure your clients to update the information by running wget (or a similar web fetch program) on the update. In order to do that, you have to add the following lines to your /etc/crontab file:

/5 * * * root wget -q -O /dev/null "http://dny.domain.com/dns/update.php?host=client&pass=secret"

If anything goes wrong during an update, the system will try again in five minutes. The PHP have protection so that it won't issue a DNS update if the IP hasn't changed. That would alleviate the load on the DNS server thus reducing the zone journaling file size.

Like any other guides on this site, this is a quick and dirty one. "A simple solution for a simple problem". So don't blame me if any of this things doesn't work for you. I only wanted to give you hand. If you have any problems write a comment and I'll do my best, but keep in mind that I'm not a full-time computer guide blogger.

Seguridad Publica Con Ayuda De Internet

Ayer estaba trabajando en mi oficina (la cual, casualmente, también es mi dormitorio) cuando escuché unos ladridos del perro y gritos del vecino de al lado.

Salí a ver que pasaba y resulta que había quedado el portón abierto y se había metido un reo en la casa (!!). El vecino se dió cuenta gracias a los ladridos del perro y procedió inmediatamente a desalojarlo a escobazos y puteadas.

Más allá de la sensación que me produjo el saber que compartí, por unos segundos, mi hogar con un extraño (cuyas intenciones no eran de las más impolutas) me puse a pensar en la terrible situación que atraviesa mi país en lo que refiere a la seguridad pública. Todo el mundo está al tanto de los problemas, y no es para menos ya que las leyes están del lado del criminal: si matas a alguien en tu casa por defenderte, vas preso!. Un hombre viola a una mujer y con pasar un par de años en la cárcel queda libre, y encima somos nosotros los que bancamos su estadía en la cárcel. Y a todo esto se le suma una deficiente labor por parte de la policía, muchas veces (¿mal?) justificada por las mismas leyes que "amparan" a los chorros.

En fin, la cosa está jodida.

¿Pero qué se puede hacer para arreglar esto?. ¿Terminar con la droga?, ¿acabar con el hambre?, ¿invertir en educación?. ¡Seguro!, pero yo me refería a medidas menos utópicas. Que tal esto: poner a disposición un sitio web donde se pueda consultar los antecedentes de la gente. De esa forma, los delincuentes tendrían, cuando menos, una razón más para pensarlo dos veces. Ya que, en caso de delinquir, quedaría todo registrado para el acceso libre de quienquiera verlo.

De esa forma, por ejemplo, si una chica conoce a un chico en un bar puede consultar sus antecentes para decidir si seguir adelante bajo su propia responsabilidad. Incluso podría consultar esta información desde el mismo celular (con acceso WAP, claro :)). Al fin y al cabo me parece que la chica tiene el derecho a saber de antemano si va a involucrarse con un violador o un asesino.

Sin ir más lejos, ¿no es esta la función del Clearing?. La diferencia es que el Clearing guarda los antecedentes económicos en lugar de los penales (y encima te cobra por dártelos).

Mi propuesta es entonces la de crear un sitio web (de acceso libre) que permita consultar la base de datos de antecedentes de la policía.

De más está decir que la aplicación sobre la cual corra este sitio web debería ser software libre. Estoy seguro que en nuestro país hay mucha gente dispuesta a desarrollarla gratuitamente (¡joder!, yo mismo la haría con mucho gusto). O sea que encima el costo para el estado sería mínimo.

Además ya existen proyectos "similares", como el caso de comprasestatales.gub.uy (realizado por Enrique Place) cuyo objetivo es poner a disposición de la población toda la información sobre las licitaciones públicas.

Y es que de eso se trata en definitiva... de darle transparencia a los antecedentes penales para que luego sea la propia gente quien juzgue a la gente. "Seguridad a través de la transparencia", una política comúnmente aplicada en la filosofía del software libre y que ya ha demostrado tener un gran valor en otras áreas.

En fin, me parece que hoy en día disponemos de mucha tecnología que (siendo bien utilizada) puede servir para solucionar o aliviar algunos de los problemas que enfrenta nuestra sociedad.

No sé si algún país ya dispone de algún sistema similar pero, de cualquier forma, nunca viene mal ser los primeros ;)

Osciloscopio Usb Abierto

Desde hace un año estoy trabajando en un osciloscopio USB como proyecto de fin de carrera para obtener el título de Ingeniero en Electrónica. Hoy ese proyecto llegó a su fin. Y puedo decir felizmente que logramos un prototipo funcional.

El prototipo posee 2 canales de 8 bit y es capaz de capturar hasta 8 millones de muestras por segundo (MSPS) con la posibilidad de extenderlo fácilmente a 40 MSPS. Su diseño está basado en un microprocesador central y varios componentes (controlados por dicho procesador) para llevar a cabo la tarea de captura. El microprocesador pertenece a la popular familia de procesadores PIC de Microchip, en particular a la línea PIC18F que constan de un controlador USB incorporado.

Entre los componentes se encuentra un conversor analógico digital (para la digitalización de datos), una memoria SRAM (para usar de buffer) y contadores de 8-bit (para direccionar la memoria).

Además de la especificación y construcción del hardware, el proyecto contiene también el diseño e implementación del firmware (programa que corre en el PIC para controlar los componentes), software (interfaz gráfica que corre en la PC para controlar el osciloscopio) y el protocolo utilizado para comunicarse entre ellos.

La página del proyecto ya contiene toda la documentación final revisada para los que quieran leer, aprender o incluso extender el osciloscopio, puesto que todo el proyecto está liberado bajo licencias de libre distribución (concretamente, GPL y FDL).

Un amigo español ya se ha ofrecido para fabricar los PCB de la placa por lo que tengo plena confianza en que este proyecto puede ser adoptado y mejorado por algún hobbista. Soy consciente de que ello requiere una buena documentación y he puesto todo mi esfuerzo para que asi sea.

Sin ir más lejos, a mi me encantaría seguir trabajando en el proyecto pues su etapa actual es la más divertida, pero lo veo poco viable debido a la falta de tiempo, capital y herramientas de trabajo (irónicamente, un osciloscopio).

Bueno, si les interesa pueden seguir leyendo sobre el tema en la página del proyecto:

http://pablohoffman.com/oscusb/