A Django site.
Julio 3, 2011
» Para Nosotros La Libertad

Para nosotros la libertad

Era el título en español de una película de Rene Clair del año 1931, en esa época Internet ni siquiera era un proyecto. Hoy en día Internet es una realidad, que abarca todo nuestro planeta y el título de aquella película parece muy adecuado para hablar del tema que vamos a desarrollar.

Por: Fernando Da Rosa Morena
(Publicado originalmente en www.180.com.uy)

Recientemente, el 16 de mayo de 2011, fue presentado a la Asamblea General de las Naciones Unidas, el informe de Frank La Rue referido a Internet, La Rue es el Relator Especial de la ONU para la Promoción y Protección del Derecho a la Libertad de Opinión y de Expresión.

El informe analiza las principales tendencias y desafíos para el derecho de toda persona a buscar, recibir y difundir información e ideas de toda índole a través de Internet.

Especialmente subraya la naturaleza única y transformadora de Internet, no sólo para que las personas puedan ejercer su derecho a la libertad de opinión y de expresión, sino también para difundir los derechos humanos y promover el progreso de la sociedad en su conjunto.

El documento es claramente favorable a la existencia de Internet, textualmente plantea “Internet es uno de los instrumentos más poderosos del siglo XXI para aumentar la transparencia en el ejercicio del poder, acceder a la información y facilitar la participación activa de los ciudadanos en la construcción de sociedades democráticas”.

Si bien no deja de exponer también las tensiones que genera su existencia, principalmente en lugares donde la vigencia de la libertad de expresión está en entredicho, cita casos como el de China, donde se realiza un filtrado de contenidos y se han llegado a censurar términos clave como “democracia” y “derechos humanos” o Egipto donde se realizó un corte total de Internet con motivo de protestas, que evidentemente no son causadas por Internet sino que usan a Internet como medio de expresión.

También hace referencia a países como Turquía o Thailandia donde ya existen leyes que responsabilizan a los proveedores de servicios de Internet por lo expresado en los sitios web que albergan. También cuestiona el reciente procesamiento de dos ejecutivos de Google en Italia culpabilizados por un video alojado en Youtube del cual no fueron autores. La posición del informe es claramente contraria a culpabilizar a los proveedores de servicios, e inclusive recomienda que estos solo actúen sobre las cuentas de sus usuarios, cuando exista una orden judicial expresa con todas las garantías del debido proceso.

Por otra parte, pone de relieve el encarcelamiento de autores de blogs durante el 2010, principalmente en China con 72 encarcelados, Irán con 17 y Vietnam con 13. Un ejemplo de lo que está pasando en algunos países donde no se permite el ejercicio pleno de la libertad de expresión a través de Internet.

Otra tensión que genera Internet, por su capacidad de difundir contenidos masivamente, es la existente en torno a la defensa de la propiedad intelectual, el informe cuestiona los mecanismos creados en Francia y el Reino Unido, que han aprobado leyes muy similares, en 2009 y 2010 respectivamente, que pueden significar el corte de la conexión a los usuarios que violen los derechos de copyright, medida con la cual el informe discrepa por varios motivos, principalmente porque dejar a una persona sin libertad de expresión y acceso a la información es una medida que viola el artículo 19, párrafo 3, del Pacto Internacional de Derechos Civiles y Políticos y es totalmente desproporcionada con relación a la infracción cometida. Esa desproporción quedaría además puesta en evidencia, por la encuesta realizada por la British Broadcasting Corporation en marzo de 2010 en 26 países, según la cual la conexión a Internet es considerada un derecho humano básico por el 79% de los encuestados.

El Relator Especial subraya que no debe haber restricción al flujo de información a través de Internet salvo en pocos y excepcionales casos previstos por la legislación internacional sobre derechos humanos. La garantía plena del derecho a la libertad de expresión debe ser la norma y lo contrario la excepción y ese principio nunca debe ser invertido. El informe subraya algunos casos en que se podría aceptar la implementación de medidas de control y da varios ejemplos, entre ellos, la pornografía infantil, la instigación a cometer genocidio, la apología del odio racial o religioso que constituya incitación a la violencia, etc. Pero en todos esos casos, las medidas deberían aplicarse en el marco de la ley, respetando los convenios internacionales y con todas las garantías del debido proceso, el informe abunda en dichas garantías.

Otro tema de importancia, al que se refiere el informe, es la necesidad de brindar la conectividad, los medios y la educación necesaria para poder hacer uso de Internet y cita a algunos países que han trabajado en ese sentido con mención especial a Uruguay, en lo relativo al Plan CEIBAL.

Todo lo anterior es índice de que se avecinan fuertes cambios en lo relativo a los medios de comunicación como negocio. Ni qué hablar del negocio discográfico y editorial, Internet ha abierto perspectivas y generado una revolución en dicho ámbito. Los modelos de negocios deberán adaptarse al cambio.

Pero también debemos pensar que no todo en comunicación es negocio, justamente Frank La Rue en una entrevista brindada recientemente a IPS sostenía que:

“En América Latina nosotros cometimos un error histórico al permitir la sobrecomercialización de la comunicación. Es cierto que la comunicación comercial juega un papel importante, pero no lo debe ser todo. Para mí es importante que haya comunicación comercial, comunicación comunitaria y servicios públicos de comunicación, que haya una diversidad de elementos”.

Esa diversidad en nuestra región la está abriendo justamente, en buena medida, la red de redes, Internet. De ahí la importancia de defender la libertad en ese ámbito.

Enlace al informe completo de Frank La Rue.

Mayo 20, 2010

Leonardo Andrés Gallego
hombrepac
Leonardo Andrés Gallego trata sobre »
» Google libera VP8: la guerra del video en html5 continua

Cuando todos ya creí­an que la guerra por el próximo formato de video en la web (html5) estaba finalizada, se confirma el rumor y las trompetas vuelven a sonar. La batalla final por el estandar puede que este a la vuelta de la esquina.

Faith no more

Solo algunos tení­an la esperanza de que Google corrigiera su curso liberando VP8 luego de haber avalado H264 en su navegador Chrome, entre ellos estaba la FSF que desde el momento en que Google adquirio On2 (la empresa detrás de el codec VP8) publico una carta abierta incitando a la empresa a liberar su reciente adquisición “por una internet más abierta”.

Para los que no están al tanto, hay una guerra en curso por cual será el próximo formato estandar de facto del video para la web (de facto ya que resulta exclusivamente de la implementación practica).  Esta guerra tiene 2 facciones, en una de ellas se encuentran Microsoft y Apple, ambos apostando por el formato privativo H264 con propiedad intelectual –patentes– de parte del consorcio MPEG-LA y por el otro lado, Mozilla y Opera junto a toda la comunidad de Software Libre, que insisten en que Ogg Theora (+ Vorbis) es un digno rival en términos técnicos y ademas está libre de derecho de autor y patentes. A todo esto, Google si bien no se mantuvo neutral completamente, estuvo prácticamente al margen del tema, unicamente aceptando que soportarí­a h264 en Chrome.

Lo de Google no fue muy bien recibido por los que apoyaban a Ogg, sobretodo dado que esta empresa es la dueña del sitio de videos mas popular del mundo: YouTube. Pero sin embargo, todaví­a no habí­a un comunicado oficial al respecto, sin una posición definida, declaro que habrí­a compatibilidad  con h264 en su navegador y sitios (se podrí­a decir que estaban asegurando que sus servicios siguieran siendo compatibles con el 90% de los sistemas operativos de los usuarios).

Y eso no es to-to-todo amigos…

Sin embargo, yo aún no estaba convencido de que h264 fuera a resultar el ganador en esta guerra… lo veia como la posibilidad mas posible (valga la redundancia), eso si, ya que Microsoft, Apple y Google estaban todos apuntando para el mismo lado, era prácticamente imposible que sucediera otra cosa. Y acá fue cuando salto Ubuntu (Canonical mas bien) y dijo que también estarí­a licenciando el codec h264 para sus distribuidores OEM. Un golpe durisimo al movimiento de Ogg. Estaba prácticamente  definido, h264 serí­a el formato estandar (de facto) de video para html5 y todos los que apoyamos los formatos abiertos estábamos com-pli-ca-di-si-mos. Como explicarle al usuario medio el problema de que h264 era un formato con licencia y regalí­as. Llevamos años intentando que la gente comprenda el problema con Flash y no hemos llegado muy lejos con eso. Al menos no en un paí­s con menos respeto por el software legal que por los polí­ticos (increí­ble, pero cierto!).

Estamos fritos, angelito! ¿O no?

Aparece la luz al final del tunel: Google libera bajo una licencia libre del tipo BSD el código de VP8, renombrandolo como WebM y creando un proyecto abierto, para que cualquiera pueda acceder a las especificaciones, completamente libre de patentes y cualquier tipo de “royalties“.

Acompañando el anuncio, obviamente estaban Mozilla y Opera. ¿Que pasa ahora? Tenemos 3 navegadores; Firefox, Opera y Chrome, que a partir de mañana seguramente ya tengan soporte para WebM en sus versiones de desarrollo (trunk o night builds), sumado a YouTube que ya tiene implementado un sector de prueba de html5 con webm, esto deberí­a acelerar un poco la adopción de este nuevo contrincante en la disputa por el estandar definitivo, tal vez, después de todo, la posibilidad de una web multimedia abierta no este tan lejos.

Mayo 5, 2010
» ¿Que tan rápido es Google Chrome? / How fast is Google Chrome?

Yo diría que bastante! Wow!

Octubre 6, 2009

Criado Indomable
Sebastian D. Criado
Criado Indomable trata sobre »
» 06_conexion_clandestina_3


Luego de la penosa experiencia para conectarnos en el aeropuerto de  Aeroparque y haber arribado al aeropuerto de Carrasco en Montevideo, pensabamos que nos encontraríamos con algo mucho mejor que lo que habíamos visto. Tanto no nos equivocamos.

De plano hay un área en la cual se puede encontrar conexión WiFi gratuita de la empresa TELMEX que se denomina “TELMEX Internet Free” :D . Había carteles en todo el aeropuerto. También existía otro servicio de pago con tarjetas, pero ese lo descartamos.

El problema volvió a ser el tema eléctrico. Aunque casi nos quisimos matar cuando nos dimos cuenta que el formato era solo de Enchufes en Carrascodos tipos. El Clase F y el Clase L :( . ¿A quién se le puede ocurrir poner ese tipo de enchufes en un aeropuerto? Pero bue, la pudimos salvar con los adaptadores que tenía en la mochila.

No sabíamos si iba a funcionar, pero al final, si lo hizo. Lo que no funcionaba donde estábamos con los enchufes era la conexión a internet (otra vez la decepción).

Vencernos, nunca, doblegarnos jamas. Seguimos buscando y encontramos un descuido en las instalaciones que nos sirvió de mucho. Un mostrador con una hermosa zapatilla al lado de una hilera de sillas muy bien ubicadas.
No la dejamos pasar.

Mediante la utilización de un extensible realizamos una conexión eléctrica que pusimos cómodamente entre nuestras sillas para así y mediante otro adaptador, contar con el preciado suministro eléctrico. (Hay que pensar que nos quedaban unas 5 horas de espera en esa zona y con WiFi y solo baterías no iba a alcanzar).

Dejo una muestra fotografica que tal vez nos origine tener que dar explicaciones a la vuelta :D

04_conexion_clandestina_carrasco

Conexión Clandestina

El cable pasando por abajo

Cable pasando por Abajo

Poener adaptador y dos compus on line

Poener adaptador y dos compus on line

» DSC03502


El primer día del viaje que me llevará a las Jornadas Regionales de Software Libre en Santiago de Chile me encontro esperando mi vuelo a Montevideo (no pregunten, es largo) y viendo como hacer para conseguí una conexión mientras esperaba mi vuelo.

Siempre pensé que era un estándar en los aeropuertos que existiera conexión Wi-Fi para los pasajeros, pero no, no es tan así,

4 metros para el enchufe

4 metros para el enchufe

por lo menos no en Aeroparque. Ni hablar de poder contar con un enchufe para poder conectar la notebook. Los genios de la arquitectura pusieron las sillas a !!! 4 metros !!! del enchufe que está en la pared. ¿Se supone acaso que uno tiene que traer una prolongación de varios metros para poder conectar?. Además, en un acto de poca inteligencia,solo pusieron 1 enchufe en lugar de 2 en cada boca. ¿Un arquitecto por aquí?.

Al principio solo se encontraron un par de Hot Sport muy mal protegidos con WEP (es increíble que la gente siga usando algo tan vulnerable) pero ni señales de un punto de conexión en el área de embarque.

Luego de dar unas vueltas y de preguntar a un bar, nos indicaron que “por ahora” existe un punto de acceso que es GRATIS pero solo por el hecho que lo están reparando (cualquier cosa que eso signifique). Así, pude conectarme luego de un tiempo dando vueltas con la amarga visión que la próxima vez que venga seguramente no tendré la posibilidad de hacerlo.

En resumidas cuentas. Aeroparque tiene uns sevicio para utilizar internet para los pasajeros el cual requiere pagar para poder usarlo. Pero, y esto es lo indignante, ni siquiera tienen la infraestructura para poder usar el servicio de una forma cómoda y en todo el aeropuerto. Ni siquiera existen enchufes ben puestos para poder pasar el tiempo antes de embarcar. Veremos que pasa en Carrasco. :D

Setiembre 14, 2009

Criado Indomable
Sebastian D. Criado
Criado Indomable trata sobre »
» LUGRo-Mesh: Nodo 19 up


El día Sábado pasado pudimos levantar un nuevo nodo en el centro de la ciudad de Rosario.

El nodo bautizado Wex todavía está en etapa de montado dado que falta ponerle una antena onmi que el dueño ha encargado. Se utilizo para montar el nodo un router NanoStation2 a unos 30 metros de altura.

Dada su direccionalidad el router Wex por el momento representa un buen punto para la zona Este de la ciudad pero será un punto muy importante de referencia al momento que se le pueda montar la onmi.

Nodo Wex

Nodo Wex

En el mapa se pude ver como se produce un excelente enlace con el nodo gus-bullet, llegando a porcentajes por encima del 90% en ambos sentidos.

También se puede ver que se han realizado enlaces con otro nodo más alejado, pero de forma muy marginal.

En estos días se estará montando otro nodo en el las inmediaciones el cual seguramente dependerá por su direccionalidad del nodo gus-bullet.

Aquí algunas fotos del nodo en su ubicación actual.

Nodo Wex contra sol

Nodo Wex contra sol

No se puede creer la cara de estos pibes

No se puede creer la cara de estos pibes

Perfil

Perfil

Setiembre 9, 2009

Leonardo Andrés Gallego
hombrepac
Leonardo Andrés Gallego trata sobre »
» Optimizando Firefox para la EeePC (netbook)

Estos son algunos tips para optimizar Firefox de manera que nos quede el mayor espacio disponible y ahorrar algunos recursos para la navegación. Vamos a ampliar el “screen real state” y evitar esos sitios que atoran la mini computadora.

Para empezar, vamos a configurar la barra de herramientas.
Así es como se ve por defecto:

Firefox Sin Optimizaciones

Firefox Sin Optimizaciones

Ahora, hacemos click derecho y destildamos “Barra de Marcadores”. Luego, click derecho nuevamente y elegimos “Personalizar”, allí tildamos “Utilizar Iconos pequeños”. Quedaría así:

Firefox Semi Optimizado

Firefox Semi Optimizado

Lo siguiente es instalar algunos addons (o extensiones) para Firefox. Todos estos addons son para la ultima version de Firefox disponible sobre plataformas Linux (en Arch Linux en este momento es la 3.5.2). Una vez instalados, quedaría así:

Firefox Optimizado para Netbooks

Firefox Optimizado para Netbooks

Como pueden observar en la ultima imagen, se llega a leer la primer linea del tercer párrafo del primer articulo, mientras que cuando comenzamos, solo veíamos el primer párrafo. Los sacrificios son mínimos y ampliamos notablemente el espacio de visualización, sin tener q pasar al modo pantalla completa (F11) que puede interferir con nuestro uso de otras aplicaciones, principalmente, el panel de tareas. En definitiva, es un buen metodo intermedio.

Hide Menu

Este es una extensión que nos permite ocultar la barra de menú (donde dice “Archivo”, “Editar”, etc.). Para verla, presionamos la tecla ALT. A veces puede ser un poco incomodo, pero con un poco de tiempo se le agarra la mano. 
Descargar aquí.

.

Hide Caption Titlebar Plus

Esta extensión va a ocultar el marco de la ventana de Firefox y maximizarlo. Dandole formato al estilo Google Chrome, lo que nos ahorra otros cuantos pixels verticales. descargar

Tab Mix Plus

Nos va a permitir manejar las pestañas de manera mucho mas eficiente. Permite cambiar el orden de apertura, asignar acciones a los clicks en la barra de pestañas, hacer el listado desplazable con la ruedita o multifila. descargar.

Delicious Bookmarks

Dado que la netbook es para un uso intensivo de Internet, y la Internet hoy dia se caracteriza por ser social, es natural que hagamos un uso de esto para la administración de nuestros marcadores/favoritos. Ideal para mantener nuestros favoritos accesibles desde cualquier lado, permite exportarlos por si tenemos miedo que se pierdan (tipo magnolia). descargar.

Flashblock

Esencial. Esta extensión va a permitir que visitemos sitios como Clarin y la netbook no se nos muera recalentada por la cantidad de porquería Flash que tiene la pagina. Clarin: Tu sitio apesta. Sabelo. Obviamente la extensión permite deshabilitar el bloqueo para un sitio, dominio o pagina. También permite deshabilitar el bloqueo completamente mediante un click y volver a habilitarlo con otro, algo extremadamente útil en algunas ocasiones. descargar.

Adblock Plus

Va a ahorrarnos recursos y evita que lo unico que veamos en la pagina sea publicidad. Una pantalla de 600 pixels de altura es suficientemente limitada como para estar invadida de publicidad. Otra herramienta basica para ayudarnos contra esos sitios con pocos escrupulos que llenan cuanto espacio tienen con cartelitos animados y otras atrosidades. Permite hacer una lista blanca de los sitios que queremos apoyar, para ver sus publicidades. descargar.

Agosto 3, 2009

Leonardo Andrés Gallego
hombrepac
Leonardo Andrés Gallego trata sobre »
» Launchpad se pasa al Software Libre y sienta un precedente para las aplicaciones SaaS.

Finalmente Launchpad, uno de los directorios de Software Libre mas grandes y utilizados, libera su propia aplicación bajo la licencia libre para servicios web (o software as a service – SaaS), la GNU Affero General Public License, versión 3 (AGPL v3.0).

Hace tiempo que muchos se preguntaban por que Ubuntu utilizaba Launchpad como plataforma de bugs y desarrollo cuando esta era una plataforma cerrada (incluyéndome). A su vez, muchos de los que hacían dicha critica, jamas pensaron o supieron que SourceForge también sufría de este problema (incluyéndome nuevamente). Canonical finalmente responde a esto liberando el código completo de dicha plataforma, algo que había anunciado que haría hace tiempo,  y ahora cumple.
Seguramente esta movida le cueste su buena cuota de mercado a SourceForge.net, quienes hicieron el camino inverso hace algunos años y otro tanto a GitHub que lleva menos de 2 años en la escena pero ha tenido una buena acogida por parte  de los desarrolladores. El 4to integrante de este selecto grupo de repositorios de aplicaciones es ni mas ni menos que Google Code, el cual como prácticamente todos los productos del gigante, ha sido muy bien recibido por sus buenas características, pero que sin embargo, sigue siendo una plataforma cerrada.

En fin, de los 4 repositorios de software libre mas grandes, solo uno incluye su backend en el trato. Yo sabría cual elegir :)

Este hecho no es significativo únicamente en si mismo. Sino en el precedente que deja. Una de las áreas de mayor crecimiento en los últimos años es la de SaaS (o Software como Servicio), la cual hasta no hace mucho no poseía una licencia aceptada globalmente que le permitiera ser Software Libre, con la incorporación de la Affero por parte de GNU a su portafolio de licencias, esto cambio, y que una empresa como Canonical la utilice en un producto tan popular como Launchpad, implica que dicha licencia ya puede ser tomada en serio por otras corporaciones.

El concepto de que las plataformas de SaaS deben ser libres es uno muy difícil de comprender por el usuario medio. Generalmente se preguntan para que necesitan que el codigo de esa aplicación este disponible, sin darse cuenta que el concepto de SaaS sin plataformas abiertas, es la peor forma de perder el control sobre nuestra propia información. Como todo, es un tema de educación, y generalmente, educar en algo que a poca gente le interesa, es difícil y lleva tiempo.

Compartí este articulo: del.icio.us Meneame BarraPunto Facebook Digg Slashdot FSDaily Google Bookmarks Identi.ca LinkedIn StumbleUpon Twitter

Julio 8, 2009

Leonardo Andrés Gallego
hombrepac
Leonardo Andrés Gallego trata sobre »
» Firefox 3.5: 5 buenas y 5 malas

Buenas:

  • Notablemente más rápido para abrir paginas (especialmente paginas ajax-heavy)
  • Desplazarse por las pestañas es mucho mas rápido (con la ruedita y/o page-up/down)
  • La Awesome Bar es todavía más Awesome y más rápida.
  • Casi todas mis extensiones funcionaron en su ultima version
  • Consume bastante menos (contradictorio, eh?) memoria en el sistema

Malas:

  • Eso de poner el botón de “nueva pestaña” al final de la lista, haciendo su posición dinámica es malisimo. Me molesta en IE, me molesta en FF 3.5. Gracias a jebus q existe Tab Mix Plus.
  • Sigue siendo igual de feo (por defecto) bajo KDE.
  • Algunas extensiones no me funcionaron. (si, ya se q no es culpa de FF, pero…)
  • Todavía consume demasiada memoria. Vamos, era obvio que iba a quejarme de eso! Jamas va a consumir lo necesario para que no nos quejemos.
  • No hay ninguna “novedad” copada. Son todas mejoras sobre cosas existentes. Supongo que por eso es 3.5 y no 4.0 :)
Compartí este articulo: del.icio.us Meneame BarraPunto Facebook Digg Slashdot FSDaily Google Bookmarks Identi.ca LinkedIn StumbleUpon Twitter

Mayo 15, 2009
» Despliegue de aplicaciones web Rails con Puppet y Capistrano (parte I)

Hace algunas semanas me puse a investigar un poco sobre el despliegue de aplicaciones hechas con Ruby on Rails, ya que en mi laburo vamos a comenzar a desarrollar algunas apps en esta plataforma, y quería tener cocinado el tema de infraestructura antes que sea necesario ponerlas en producción.

Leyendo variados artículos en la blogósfera, he visto que una buena dupla como software “plataforma base de Rails” es el uso de Mongrel y Nginx, siendo el primero el servidor de aplicaciones y el último el frontend HTTP. Esta combinación nos permite instalar una aplicación web en un servidor de recursos no muy abundantes, y aún así servir a una buena cantidad de usuarios concurrentes. Obvio que no he hecho métricas propias, pero Internet está lleno de este tipo de análisis.

El problema entonces se divide en dos:

  • Instalar el software base necesario en los servidores
  • Realizar el despliegue (deploy) de la aplicación en si

En este artículo vamos a ver cómo hago yo para mantener el software base (mongrel, nginx, gemas, …) instalado y configurado en los servidores que correspondan. Esta tarea la hago con Puppet, una herramienta que en un artículo anterior he comentado que me permite administrar una gran cantidad de servidores sin tener que volverme un esclavo.A modo de preámbulo, les voy a contar que mis servidores son todos Debian Lenny (stable) y usamos Rails 2.3.x.

Como primera medida, vamos a definir en Puppet lo necesario para que Ruby y Rails estén instalados, ya que son el sistema operativo de nuestra aplicación web.

Para poder instalar Rails 2.3.x desde el instalador de gemas, tenemos primero que instalar rubygems y rubygems1.8, pero Debian Lenny no trae la versión 1.3.1 que es la necesaria, por lo tanto acá es el único lugar donde vamos a hacer un poco de trampa, y vamos a instalar el paquete que podemos bajar desde la versión experimental acá y acá.

¿Cómo instalar un paquete que no está en la distribución actual? Mi solución seguro no fue la mejor, pero anduvo! Lo que hago es vía Puppet envío el paquete al servidor en cuestión y después le digo que lo instale usando dpkg, de esta manera:

# Instalamos rubygems 1.3.1 desde paquetes de experimental, ya que Lenny no lo tiene
# La versión 1.3.1 es necesaria para rails 2.3.x

class rubygems {
    file {
        "/usr/src/rubygems1.8_1.3.1-1_all.deb":
            source => "puppet://puppet.marketingsur.com/files/packages/rubygems1.8_1.3.1-1_all.deb",
            owner => root,
            group => root,
            mode => 0644;
        "/usr/src/rubygems_1.3.1-1_all.deb":
            source => "puppet://puppet.marketingsur.com/files/packages/rubygems_1.3.1-1_all.deb",
            owner => root,
            group => root,
            mode => 0644;
    }

    package {
        "ruby1.8":
            ensure => installed;
        "ruby1.8-dev":
            ensure => installed;
        "make":
            ensure => installed;
        "rubygems1.8_1.3.1":
            source => "/usr/src/rubygems1.8_1.3.1-1_all.deb",
            provider => dpkg,
            ensure => installed,
            require => File["/usr/src/rubygems1.8_1.3.1-1_all.deb"];
        "rubygems_1.3.1":
            source => "/usr/src/rubygems_1.3.1-1_all.deb",
            provider => dpkg,
            ensure => installed,
            require => [ Package["ruby1.8"], Package["rubygems1.8_1.3.1"],
                         File["/usr/src/rubygems_1.3.1-1_all.deb"] ];
    }
}

Con esto ya puedo definir la clase que me va a mantener instalado rails desde gemas:

# Instalamos rails desde gems porque la versión Debian es muy vieja
class rails {

    include rubygems

    package {
        "rails":
            provider => gem,
            ensure => installed,
            require => Package["rubygems_1.3.1"];
    }
}

Nótese la libertad que Puppet no provee al mantenerse independiente del sistema de paquetes, mediante la palabra clave provider puedo decirle que instale paquetes desde otras fuentes, permitiendonos seguir tratando a ese recurso como un paquete abstracto.

Hasta aquí tenemos entonces el lenguaje ruby 1.8 instalado, y rails 2.3.x listo para ser usado.

Mongrel Cluster

Mongrel es una biblioteca Ruby que se usa para armar servidores web, está diseñada para tener buena performance sirviendo contenido dinámico, pero no estático… es por eso que lo último se lo dejamos a Nginx, como explico más abajo.

Volviendo a mongrel, la distribución Debian tiene un paquete llamado mongrel-cluster que nos deja todo bastante listo para usar, con scripts de inicio y apagado de los clusters, por lo que el trabajo adicional que hay que hacer es relativamente poco.

Primero armamos una clase para instalar el software y mantener funcionando el servicio:

class mongrel {
    include rails

    package {
        "mongrel-cluster":
            ensure => installed,
            require => Package["rails"];
    }

    service {
        "mongrel-cluster":
            ensure => running,
            enable => true,
            hasrestart => true,
            hasstatus => true,
            require => Package["mongrel-cluster"];
    }
}

Luego escribimos la definición que va a permitir dar vida a varios clusters mongrel:

define mongrel-cluster-app ( $ipaddr="127.0.0.1",
                             $appdir="",
                             $port=8000,
                             $servers=3) {
    $root = $appdir ? {
        "" => "/var/www/${name}",
        default => "${appdir}",
    }

    include mongrel

    file {
        "/etc/mongrel-cluster/sites-available/${name}.conf":
            owner => root,
            group => root,
            mode => 0644,
            content => template("mongrel/cluster-app.conf.erb"),
            require => Package["mongrel-cluster"],
            notify => Service["mongrel-cluster"];

        "/etc/mongrel-cluster/sites-enabled/${name}.conf":
            ensure => "/etc/mongrel-cluster/sites-available/${name}.conf",
            require => File["/etc/mongrel-cluster/sites-available/${name}.conf"],
            notify => Service["mongrel-cluster"];
    }
}

Esto configura el cluster mongrel en cuestión, activándolo y escribiendo el archivo de configuración a partir del siguiente simple template:

---
address: <%= ipaddr %>
log_file: log/mongrel.log
port: "<%= port %>"
cwd: <%= root %>/current
environment: production
pid_file: tmp/pids/mongrel.pid
servers: <%= servers %>

Con esto, tenemos el software mongrel-cluster instalado, y el cluster específico que va a ejecutar nuestra aplicación configurado y corriendo, listo para atender los requerimientos de los usuarios cuando le lleguen a través de nginx.

Nginx

Primero vamos a empezar con el webserver, el que se encarga de atender a los requests de los usuarios. Éste es un proyecto Ruso que está ganando popularidad por su gran velocidad y poco consumo de memoria. Mi anterior favorito era lighttpd, pero he tenido varios problemas de uso de memoria, y por lo que vi el proyecto está bastante frenado.

Del lado de Puppet, primero defino una clase que mantiene instalado y corriendo el servidor nginx, nada del otro mundo:

class nginx {
    package {
        "nginx":
            ensure => installed;
    }

    service {
        "nginx":
            ensure => running,
            enable => true,
            hasrestart => true,
            hasstatus => false,
            require => Package["nginx"];
    }
}

Luego, tengo una definición que me permite generar varias configuraciones de sitios basados en nginx y mongrel:

define nginx-railsapp ( $rootdir="",
                        $ipaddr="",
                        $port=80,
                        $mongrels=["127.0.0.1, 8000, 3"] ) {
    $root = $rootdir ? {
        "" => "/var/www/${name}",
        default => "${rootdir}",
    }
    $listen = $ipaddr ? {
        "" => "${port}",
        default => "${ipaddr}:${port}",
    }
    $upstream_name = "mongrel-${name}"

    include nginx

    file {
        "${root}":
            ensure => directory,
            owner => www-data,
            group => www-data,
            mode => 0755;
        "/etc/nginx/sites-available/${name}":
            content => template("nginx/railsapp.conf.erb"),
            owner => root,
            group => root,
            mode => 0644,
            require => Package["nginx"],
            notify => Service["nginx"];
        "/etc/nginx/sites-enabled/${name}":
            ensure => "/etc/nginx/sites-available/${name}",
            require => File["/etc/nginx/sites-available/${name}"],
            notify => Service["nginx"];
    }
}

Esta definición acepta 4 parámetros: el directorio raíz donde va a estar la app, la dirección IP en la que va a atender el webserver, su puerto, y las instancias mongrel que van a darle vida a la aplicación. Noten que por defecto todos los parámetros tienen un valor configurado, por lo que son opcionales.

Otro detalle a tener en cuenta es el parámetro mongrels, se puede ver que es una lista de strings, esa string define una tupla de 3 valores separados por coma, el primero corresponde al IP donde los mongrels atienden, el segundo es el puerto inicial, y el tercer valor la cantidad de instancias.

La receta configura un par de directorios y además el archivo de configuración de la aplicación, que obtiene a partir de un template (railsapp.conf.erb) que incluyo acá abajo:

###
# ATENCION: Archivo de configuración manejado por Puppet!
###

upstream <%= upstream_name %> {
    #fair;
<% mongrels.each do |mongrel| -%>
<% mongrel_ip, mongrel_port, mongrel_qty = mongrel.gsub(' ', '').split(',') -%>
<% mongrel_qty.to_i.times do |n| -%>
    server <%= mongrel_ip %>:<%= mongrel_port.to_i + n %>;
<% end -%>
<% end -%>
}

server {
    listen <%= listen %>;
    server_name <%= name %> www.<%= name %>;
    charset off;

    # this rewrites all the requests to the maintenance.html
    # page if it exists in the doc root. This is for capistrano’s
    # disable web task
    if (-f <%= root %>/system/maintenance.html) {
        rewrite ^(.*)$ /system/maintenance.html last;
        break;
    }

    location / {
        root <%= root %>/current;
        index index.html index.htm;
    }

    # / -> first search for local index.html then go to <%= upstream_name %>
    location ~ ^/$ {
        if (-f /index.html) {
            rewrite (.*) /index.html last;
        }
        proxy_pass http://<%= upstream_name %>;
    }

    # rails caching: searching first for $action.html local pages
    location / {
        if (!-f $request_filename.html) {
            proxy_pass http://<%= upstream_name %>;
        }
        rewrite (.*) $1.html last;
    }

    # serve static files directly
    location ~ .html {
        root <%= root %>/current/public;
    }

    location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov)$ {
        root <%= root %>/current/public;
    }

    # resend everything else to <%= upstream_name %>
    location / {
        proxy_pass  http://<%= upstream_name %>;
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
}

Éste es un archivo de configuración que encontré por ahi y que lo adapté al formato de templates de ERB. Básicamente lo que hace es servir todo lo que sea contenido estático, y para lo dinámico (la aplicación web en si) hace de proxy ruteando los requests a el o los clusters mongrel que hayamos definido. Esto nos permitiría tener varios servidores atendiendo a la aplicación web, para repartir la carga.

El toque final

Luego de definir todos estos recursos, no nos queda más que usarlos. Ésto lo podemos hacer con una clase que defina la aplicación en cuestión, de la siguiente manera:

# midominio.com Web App (proxy balancer + backend)
class midominio-webapp {
    include rails
    include mongrel

    $mongrel_ipaddr = "127.0.0.1"
    $mongrel_port = 8000
    $mongrel_servers = 5

    $needed_gems = ["gema1", "gema2", "gema3"]

    nginx-railsapp {
        "midominio.com":
            ipaddr => "1.2.3.4",
            mongrels => ["${mongrel_ipaddr}, ${mongrel_port}, ${mongrel_servers}"];
    }
    mongrel-cluster-app {
        "midominio.com":
            ipaddr => "${mongrel_ipaddr}",
            port => "${mongrel_port}",
            servers => "${mongrel_servers}";
    }

    package {
        $needed_gems:
            provider => gem,
            ensure => installed,
            require => Package["rails"];
    }
}

Luego esta clase la incluímos en el nodo que corresponda, y listo… al rato tenemos instalada la infraestructura para hostear nuestra aplicación web.

Espero se animen a usar Puppet si aún no lo han hecho. Su sintaxis no es de lo mas hermoso que puede existir, pero los beneficios que trae hacen ese tema algo insignificante.

En la segunda parte vamos a hablar de cómo automatizar la instalación de la aplicación en los servidores, usando Capistrano.

Mayo 13, 2009
» Cerrando la puerta a los crackers

cyber-criminal

No es noticia nueva que tener una computadora conectada a Internet la deja expuesta a una serie de riesgos de seguridad, y es por eso que los administradores de sistemas, normalmente tomamos una serie de medidas básicas preventivas para evitar un disgusto posterior.

Si bien mis servidores normalmente tienen un nivel de seguridad más que aceptable, los molestos bots de estas personas no dejan de intentar adivinar las claves de mis cuentas para poder acceder con privilegios de administrador a los servidores. Esto me causa un problema, pero no de seguridad, sino que me ocupan los recursos que tengo para otras cosas y a veces hasta producen enlentecimientos notables en los servidores virtuales mas pequeños.

Es por esto que me puse manos a la obra, a averiguar alguna manera de mantener a raya a estos muchachos, y lo que me encontré fue con un software pensado justamente para esto: fail2ban.

Este programa está ya listo para ser instalado y usado en mi distribución favorita (Debian GNU/Linux), y al instalarse comienza a chequear los accesos fallidos de conexión por SSH, dejando 6 intentos y prohibiendo el acceso por IP por 10 minutos. Para prohibir el acceso utiliza reglas de iptables, y su funcionamiento es en modo daemon, un pequeño programa queda corriendo (muy chiquito, sirve hasta en VPS de 256 MB de RAM) revisando los distintos archivos de registros de sistema.

Lo interesante además es que trae una serie de plantillas para poder chequear otros tipos de servicios como FTP, SMTP, Web, etc. todo esto mediante reglas de análisis y acciones acordes, que se pueden personalizar para un uso específico.

En resumen, una muy simpática herramienta para los administradores de sistemas GNU/Linux, fácil de instalar y poner a funcionar, y el beneficio es enorme.

¡Que la disfruten!

Febrero 22, 2009
» offline-gmail

Lo primero que se me pasó por la cabeza cuando me comrpé la notebook fue poder leer los mails estando en cualquier lado, por lo que recordé que hace un tiempo atrás, cuando la única computadora que tenía era la de escritorio, pasé por una situación similar: “Leer un mail desde el sitio web y cuando vuelva a mi casa tener ese mail como leído en mi cliente de correos y viceversa”, lo que no hace POP. Leyendo conocí IMAP, que lo que te permite es tener sincronizadas todas tus estaciones de trabajo con el servidor. Esto me permitía hacer lo que yo buscaba.

Lo primero que hice fue configurar KMail para este servicio que Gmail me brindaba, luego habilité la opción en Gmail y salió andando con fritas. Salvando que me demoró muchas horas en descargar todos los correos desde el servidor, y eso que no eran más que 600Mb. Luego el programa de KMail empezó a bugear de diversas formas en “no recuerdo qué”, pero se terminó tornando bastante molesto. Por lo tanto decidí probar con Thunderbird, pero nunca me terminó de convencer.

Ahora bien, pasaron alguno años desde este cometido y finalmente me compré la notebook, reviví la historia, investigué un poco más y terminé instalando offlineimap, un programita hecho en Python que te permite matener sincronizada la copia local con la del servidor y el cual funciona muy bien: nada que ver con KMail. Luego de instalarlo y configurarlo necesitaba algún lector de correos y finalmente me decidí por mutt ya que lo venía escuchando hace mucho tiempo atrás en la lista de PyAr y además había encontrado un script hecho en Python que usaba los contactos de Gmail para gestionar las direcciones :)

Después de tanto pelearme con el mutt, porque no entendía cuales eran las teclas rápidas, por tenerlo mitad en castellano mitad en inglés, por no acostumbrarme a sus funcionalidades, porque tiene un archivo de configuración extremadamente simple pero lleno de cosas customizables, por que estaba buenísimo y quería sacarle el máximo provecho pero nunca le dediqué el tiempo necesario y por un montón de cuestiones más lo terminé dejando de lado y usando muy de vez en cuando para leer algún que otro mail cuando estaba de viaje. Al final no le terminé dando el uso que pretendía, lo usaba sólo cuando tenía ganas y no cuando tenía que leer algo o tenía el tiempo libre para ponerme al día con los mails. La razón por la cual lo terminé dejando, si mal no recuerdo, fue porque nunca pude configurar el envió de correos de la forma que quería. Osea, que me cree una bandeja de salida y que los mande cuando uno se conecta a internet. Algo tan sencillo como eso, pero que nunca terminé de configurar.

Pasó y pasó el tiempo, hasta que veo que en Gmail anuncian que ahora hay una funcionabilidad nueva que se llama offline. ¿Qué es esto?, ni idea, veamos. Lo primero que me apareció fue un link que decía Offline en la esquina superior derecha al lado de “Sign out”:

offline-gmailPiqué ahí y me dice que necesita instalar Google Gears, pero cuando intento ir al sitio web de instalación me dice que mi navegador no está soportado y que si tengo GNU/Linux necesito instalar un par de librerías. Instalé todas las libs y me seguí diciendo lo mismo, asique usé google para buscar como era su instalación en GNU/Linux Debian :P . Si no me equivoco el primer link que apareció en la búsqueda que hice me tiró un .xpi o algo similar que se instaló sin ningún problema.

Volví a entrar a Gmail, piqué nuevamente en Offline, lo configuré como a mí me gustaba, se sincronizó (demoró unos 15 – 20 minutos) y… Cha chan! Cada vez que entro a Gmail estando desconectado de internet tengo mi bandeja de entrada, mis etiquetas, mis mails y todo lo demás que tengo cuando estoy conectado como si nada. Además agrega una carpeta llamada Outbox que es la bandeja de salida, a dónde van todos los mails que escribís estando offline y que luego mandará cuando estás conectado.

La verdad… Una joyita, estoy re contento con esta funcionabilidad de Gmail.


Febrero 17, 2009
» humitos

Frase que escucho al menos una vez a la semana de la boca del Flamante Ingeniero ( :) ) César, con quién tengo el gusto de trabajar todos los días en la misma oficina cara a cara. Bueno, esta vez me tocó usarla a mí, y ni más ni menos que para “no levantarme y usar las manos para prender una computadora que se encuentra en la otra pieza”

Hoy nos juntamos con Nico, después de algunas discusiones, a “estudiar”. La discusión venía porque siempre que nos juntamos a estudiar cosas diferentes ninguno de los dos termina estudiando eso y nos colgamos hablando y debatiendo sobre distintos conceptos y softwares que andan dando vueltas por ahí.

Como no podía ser de otra forma, ese momento existió, y nos pusimos a ver como era el tema de WakeOnLan: “Encender mediante la red” o me perdí esa clase de inglés, pero la idea está. La posta es que querés prender una computadora que no está al alcance de las manos, ni del pié ni tampoco llegás con el escobillón; lo cual resulta ser un garrón si estás acostado en la cama un día de invierno tapado hasta la nariz dejando un espacio para que salgan los ojos y poder ver la pantalla del monitor (sí, sí… bien nerd)

Esta es una propiedad de la BIOS y de la placa de red, por ende hay que habilitarla en… y si, la BIOS :) . El lugar dónde se encuentra esto depende de la placa madre, por lo que no voy a indicar en qué menú se encuentra, pero sí dónde está la respuesta: RTFM o más conocido como Read The Fucking Manual.

Una vez que tenemos esto habilitado, resta instalar un programa que genera un paquete mágico para que la máquina que queremos encender se prenda como por arte de mágia. El paquete en cuestión es ethwake y está en los repositorios de Debian, por lo que se instala mediante apt-get.

Echo este, habilitada la opción WakeOnLan en la pc que queremos encender, resta ejecutar este programa indicando cuál es la interfaz por la que llegamos a esa pc y cuál es la MAC de la misma. Vamos a un ejemplo:

# etherwake -i wlan0 00:61:13:dd:ff:c2

Le estoy indicando que vaya por la interfaz wifi y que la mac de la pc que quiero prender es 00:61:13:dd:ff:c2 (esta es una MAC inventada por mí). Si estamos dentro de una LAN esto funciona perfectirijillo, pero… ¿Qué pasa si lo queremos hacer OnWan?

Existe otro paquete llamado wakeonlan que permite indicarle el IP de la máquina de destino además de la MAC, entonces, si estoy conectado a internet, me conozco la MAC de mi pc y además sé cuál es el ip que tengo le puedo mandar un SMS :P diciendo que quiero que se prenda:

# wakeonlan -i humitos.homelinux.net 00:61:13:dd:ff:c2

Y… tarán… puedo ver por el espejo de mi casa como se está prendiendo la pc y entrar a mis datos compartidos que tengo con Apache, usar ssh y hacer lo que se me canta ahora que la pc está prendida. El único problema que tengo es que con Arnet tengo IP dinámica, osea, si se me corta la luz, la máquina queda apagada y el router se reinicia, pierdo el humitos.homelinux.net para acceder con un nombre, ya que el router no soporta dyndns ni nungún otro, esto lo hago mediante ddclient y para que esto funcione la pc tiene que estar prendida, pero ¡Oh casualidad! es justo lo que quiero hacer :P

Como nota, puedo decir que tuve que habilitar una cosa más. No sé porqué, si es mi máquina o en todas pasa lo mismo, pero como que al habilitar esta opción de la BIOS se habilita “por la mitad”, si algo que suena raro para quien ignora totalmente como funciona esto, osea: yo. El punto es que tuve que instalar otro paquete para hacerlo funcionar, este es: ethtool. El cual entre otras cosas sirve para terminar de habilitar esta opción.

# ethtool eth0
Settings for eth0:
[...]
Transceiver: external
Auto-negotiation: on
Supports Wake-on: g
Wake-on: d

Link detected: yes
[...]

Las líneas que están en negrita son las más importantes. La primera indica que la placa que tengo lo soporta y la segunda, que está desactivado. Entonces lo que tuve que hacer fue ejecutar:

# ethtool -s eth0 wol g

De esta forma activo esta opción. Luego cuando apague la máquina la voy a poder prender desde la red, pero por esas casualidades de la vida, esta configuración se pierde: ni idea porqué… Ignorancia pura! Pero la solución chancha y que me caracteriza, fue poner una directiva “up” cada vez que se levanta la eth0… ¡Chupate esa mandarina! :P


Febrero 2, 2009
» humitos

Han pasado tantas cosas desde la última vez que escribí algo en mi blog, que no me voy a poner a contar todas, sino que simplemente voy a comentar una de las últimas cosas que he hecho (y que por suerte funcionó :) ).

Hace una semana me compré un router Linksys WiFi  porque le estoy instalando la red a mi mamá en su casa de Paraná. El tema es que contrató el servicio de Arnet y necesita conectar dos PC’s a internet. Una se encuentra en la entrada de la casa y otra al fondo, dónde para llegar a esta hay que pasar varias paredes internas y externas (más gruesas y con cámara de aire) y además hay, de camino, un teléfono inalámbrico y un horno microondas (los que son considerados como obstáculos).

En fin, la cuestión es que como no quería cablear todo, debido a que mi vieja es quisquillosa con la estética de la casa, sugerí probar poniendo WiFi y ver si llegaba hasta el fondo de la casa. Lo propuse como dudándolo porque la verdad que no tengo ni idea cuánto se banca una conexión de WiFi en cuanto a la distancia.

El router lo compré hace una o dos semanas, y antes de llevarlo a la casa de mi mamá quería probarlo, asique lo saqué de la caja, enchufé el cable de red que trae al modem adsl y el transformador como corresponde. Prendió. Agarré la notebook (cosa que comentaré algún día en otro post) y yastá tenía WiFi funcionando joya, no tuve que hacer nada de nada.

Pasaron unos días y recordé que existía un Firmware libre que se les podía poner a los Linksys y que estaba bueno, o al menos tenía esos comentarios de este firmware, por lo que me puse manos a la obra. Leyendo por internet caí en el firmware dd-wrt, que al parecer es uno de los más conocidos (cuando fui a San Luis había un loco que tenía este firmware puesto en un NanoStation). Me fijé si era compatible con el router que me había comprado yo (Linksys WRT54Gv8) y efectivamente decía que funcionaba.

Seguí las instrucciones del wiki de la página oficial del firmware y la verdad que salió todo bien hasta cierto punto :S . Lo primero que hice fue llevar el router al trabajo ya que ahí hay UPS y quería asegurarme de que no se me corte la luz mientras estoy haciendo la transferencia del firmware, asique ni bien pude llevarlo me puse manos a la obra.

Cuando llegué, le comenté a Cristian (uno de los que labura conmigo) y de paso le pregunté si me daba una mano y apoyo emocional para llevar adelante semejante riesgo (el router me salió $212 y los podía perder en menos de 2 minutos :) ). Enchufamos todo en la UPS, rezamos 3 padres nuestros y nos pusimos manos a la obra. Luego de enchufar todo como corresponde, configuré la IP en mi máquina y agregué el Default Gateway como bien decían las instrucciones. Hice ping, andaba. Luego resetié el router y cuando volví a entrar con el Firefox a 192.168.1.1 me apareció un mensaje de actualización del firmware, que si mal no tengo entendido este es de Linksys todavía.

En este momento se le sube el workskiller que, para mí, lo que hace es eliminar el firmware original e instala un servidor FTP para poder luego pasarle el binario del firmware. A este programita hay que dejarlo trabajar por lo menos 2 minutos, aunque cuanto más tiempo se deja trabajar parece que es mejor.

Una vez que pasó este tiempo, me empecé a poner bastante nervioso, no sé porqué… Pero ya estaba entrando en estado de trance. Una vez que pasé este estado, intenté seguir leyendo las instrucciones y llevar adelante el flasheo del router. Por lo que primero me fijé si seguía vivo haciéndole un ping común y corriente a 192.168.1.1 y… Por suerte me contestaba. ¡Iupi!

Ahora venía el paso de copiar el binario por tftp (Trivial FTP) que es lo que me instaló el workskiller que corrí antes. El comando figura en la wiki del firmware, pero al correrlo me entero que no tengo ese programa, asique los nervios aumentan. Desconecto el cable UTP, enchufo el otro (del laburo, para poder tener internet), bajo el programa y por las dudas también el atftp que es otro cliente que recomienda la wiki para utilizar en caso de que el anterior falle.

Una vez descargado esto, desconecto los cables y conecto nuevamente, reconfiguro la red indicando cual es mi nuevo IP y toda la historieta esa que tuve que hacer en el primer paso del flasheo del router. Entonces, veo que sigo teniendo ping contra el router. Me pongo contento por un rato y vuelvo a probar ejecutar ese comando y… Me entero que no está soportado el método octet o no sé qué problema tenía con ese parámetro (la verdad en este momento no recuerdo, pero estaba recontra caliente/nervioso). Asique, pruebo el otro comando (atftp), y me da que no se puede conectar al host. ¿Qué hice? Me mandé a hacerlo a pata, osea, nada del otro mundo: en vez de poner todo el comando en una sóla línea, entré por tftp al router y los fui poniendo de a uno, pero el comando del modo no me lo tomaba, me daba un error. Asique me mandé a transferirlo igual haciendo “put bla bla” y… Lo transfirió.

Sigo leyendo el wiki, ahora ya un poco más tranquilo, y veo que dice que en el próximo minuto o minuto y medio debe reiniciar el router y bootear el nuevo firmware. ¿Ya está? ¿Así de fácil era? ¿Tanta preparación para esto? Y si, bueno… Esto por supuesto que no pasó, con la leche que tengo yo, era muy obvio que no iba a pasar esto, siempre dije que me tendría que haber dedicado a otra cosa. Bue, dejando estos comentarios de lado, me puse muy nervioso y Cristian que me hacía dos o tres comentarios sobre como seguir me hacían poner más nervioso, por suerte no lo demostraba e intentaba mantenerme tranquilo por fuera.

Hablando un toque más tranquilo con Cristian llegamos a la conclusión que quizás sea una buena idea quitarle la energía y que se reinicie, entonces podía llegar a levantar el nuevo firmware de forma correcta. ¡Qué iluso por Dios! Por supuesto que lo que pasó no fue esto ¿No? Sino que empezó a hacer luces muy extrañas, parpadeando muy muy rápido la luz en dónde tenía enchufado el UTP (puerto 1). Para este momento ya me importaba un corno el router, había sufrido lo suficiente como para ponerme mal y mi activo ya se había ido a la mierda (en este momento recordé que me había gastado más de $300 en el tapizado de un sillón, ya me importaba todo un pepino).

Volví a conectar todos los cables como corresponde para poder tener internet y seguí leyendo el wiki, busqué la página en la que hablaba de cómo recuperar el router de una Bad Flash :D . Era justo lo que necesitaba. Habla de un Hard Reset y luego de esto sobre un juego de luces interesantes, que indican el problema que puede llegar a tener el router de acuerdo a como parpadeaban las luces. La cuestión es que hice todo esto y estaba en el caso 1: la luz del puerto 1 parpadeaba por más de 2 minutos sin parar y nunca se prendían las otras luces y que si podía hacerle ping tendría que intentar mandarle por TFTP nuevamente y sino hacer un cable que se llama JTAG (ni idea esto). Como ping no podía hacerle, osea, hacerle si, pero el muy guacho no me contestaba. Empecé a leer que bosta era eso del JTAG, no cazé una y me dí por vencido al menos por ese día.

Pasaron algunos días y yo seguía leyendo como hacer para recuperarme de la paliza que me había dado el Linksys. Al final caí en el foro de dd-wrt y encontré que un loquito tenía un problema muy similar al mío. El vago es matt0401, había hecho los pasos y manteca. No pasó nada. Siguiendo el hilo veo que comenta que encontró la solución y que no la sabe, pero que tampoco le importa saberla, que no le interesa nada pero que estaba re contento que lo había recuperado.

Dicho y hecho, hice lo que decía él: copiar por tftp dos veces más el binario porque a la tercera le funcionó. Enseguida el router empezó a funcionar, se prendieron las luces correspondiente y estaba entrando con el Firefox al HOME del dd-wrt. ¡Done! Canté victoria como loco. De acá en adelante: todo joya. El driver se zarpa, tiene varias cosas que no tiene el original. Lamentablemente, como Linksys amarretea la RAM de este dispositivo tuvieron que sacar algunas cosas los muchachos, por eso esta es la versión micro del driver. Por ejemplo, no tengo SSH, pero sí TELNET.

Asique bueno, tengo un par de tardes para probar configuraciones medias locas antes de entregarle el router a mi pobre madre que casi se muere cuando le dije que estaba roto cuando se lo llevé. No entendía nada, me dijo que parecía que era nuevo, que qué le pasaba que estaba roto :D


Enero 31, 2009
» Oops! Error en Google

Parece que Google está probando o implementando su funcionalidad de Safe Browsing en los resultados de búsqueda, y quizás se le pasó un poquito la mano con lo estricto de su chequeo ;-)

google-oops

Diciembre 20, 2008
» Microsoft ofrece un parche de seguridad

Hoy debe ser un día que estoy en modo sensible, pues leyendo el artículo de El País Digital titulado “Microsoft ofrece un parche de seguridad”, no puedo dejar de pensar en cómo son las cosas en esta vida:

En un mundo mágico donde siempre es primavera, si una empresa de software te instala un software que pone en riesgo tu patrimonio, sería apuntada con el dedo, acusada de negligencia y reclamada su responsabilidad por sus usuarios, clientes y todos aquellos “Directores de Centros de Computos” que siempre dicen que prefieren tener empresas responsables… por “si pasa algo” tener a quién “hecharle la culpa”.

Por suerte en este mundo real donde vivimos, las cosas no son así, aquí las empresas de software son “salvadoras” y te “rescatan” de los males, en una “actitud pro-activa”, como lo demuestra el artículo que comento.

Tal vez lo más interesante son los comentarios de Jorge Cella, gerente de Iniciativa de Seguridad de Microsoft (ahi está! esa es la “iniciativa” que yo hablo….) cuando dice “no existe ningún ataque en América latina, la explotación de esta vulnerabilidad nació en China”

…por lo cual, yo no soy Chino, ni navego por sitios chinos, así que a mi ni me preocupa el tema…

fijate si tendré razón en estar tranquilo: “Cella, de Microsoft, destacó que la mayoría de los portales visitados incluían pornografía”, concluye el artículo,

por si acaso igual hubiera navegado por sitios chinos, eventualmente me hubiera pasado si andaba metido con pornografía….. y si sos pornógrafo ….. ta! jodete viejo!

El comunicado de Microsoft es contundente a este respecto: “Nuestra recomendación es siempre navegar por sitios que sean de su confianza o de fuentes conocidas.”

Fenómeno: El Emporio

Hace muchos años una prestigiosa empresa vendedora de alimentos de mi país (El Emporio de los Sandwiches) tuvo un problema con una mayonesa en mal estado que llegó al publico, produciendo distintos problemas de salud.

Recuerdo que inmediatamente aparecieron los responsables para enmendar el problema, aclarando muy enfáticamente los procesos de calidad de la empresa y el cuidado con el que se trabaja día a día para ofrecer un producto de calidad. El resultado: el público sigue reconociendo y prefiriendo al Emporio de los Sandwiches.

Si hubieran seguido una actitud como de empresa de software, podría haber mandado al frente al Gerente de Iniciativa de Calidad Alimentaria para decir que los sanwiches en mal estado se vendieron para una fiesta de gente de un barrio marginal, que seguramente organizó una orgía…

Complementando con una nota de prensa titulada: “Ofrece con cada caja de sandwiches un sobre de antiácido”

Y con un claro comunicado indicando: “Nuestra recomendación es hacer fiestas familiares, con personas conocidas y de su círculo más cercano”.

Diciembre 19, 2008
» Estrenando Wordpress 2.7 con novedades!

wordpress logo

Bien, luego de varios meses de no escribir, me siento en la obligación de al menos informar que este blog corre en la última versión disponible de wordpress: la 2.7

¿Mejoras con respecto a la anterior? Seguro debe haberlas, pero como no he sido usuario asiduo de la rama 2.5.x, a mi no me pregunten :-)

Lo que si, la interfaz está mejor organizada, da una sensación de tener todo a mano sin tener que scrollear mucho hacia abajo.

De paso, ya que andaba con ganas, cambié el tema por uno que soporte widgets, y le agregué el plugin que la gente de Sociable ha escrito para darle capacidades de FacebookConnect, lo que permite a los usuarios loguearse a mi blog con su cuenta de Facebook, y compartir contenidos del blog en esa red social.

Diciembre 17, 2008

Criado Indomable
Sebastian D. Criado
Criado Indomable trata sobre »
» Sumando nodos


nightwingHemos llegado a éste momento tan esperado.

Como todos conocen, hemos estado trabajando desde hace algunos meses en el grupo para poder tener una Red Comunitaria y Libre, en la ciudad de Rosario y alrededores, utilizando sólo Software Libre.

La Red LUGRo-Mesh, que se llama igual que el grupo, tiene un objetivo claro de hacer llegar a la gente de la manera más simple a la mayor fuente de información que existe actualmente: Internet. Al mismo tiempo que le permite hacer disponible sus propios servicios dentro de la red.

Creemos que se pueden ofrecer mecanismos para que todos puedan ingresar a esta red, al mismo tiempo que se estructura una Red Comunitaria dentro de la ciudad de Rosario que podrá aportar su propio contenido.

Una red requiere nodos. Y cuantos más nodos, mejor.

El beneficio de la tecnología Mesh es que permite una red dinámica y orgánica. La red se arma sin intervención alguna y se extiende con solo agregar nodos. Verdadero Plug And Play :D

Para esto desarrollamos el firmware Nightwing, que es el que permite utilizar ésta tecnología de redes inalámbricas utilizando Software Libre.

Necesitamos gente interesada en montar su nodo.

Ya estamos planificando el armado de la red.

A partir de ahora sería interesante ver quién quiere sumarse.
La discusión sobre la red y sobre quienes quieran formar parte de ellala tendremos en la lista de correos del grupo.

Tomamos nota y comenzamos a levantar una Red Libre y Comunitaria para la ciudad de Rosario y alrededores.

Noviembre 26, 2008
» La enseñanza de Anteldata

La empresa telefónica estatal (Antel), de la cual soy cliente me ha dado un “momento de enseñanza” muy interesante, que deseo dejar plasmado aquí para recordar en el futuro.

Siempre fui un tipo que pensó que poner su nombre y apellido en los contratos era algo beneficioso, que en cierta forma colaboraba a formar una “imágen de cliente” frente al proveedor y así es que todos los servicios que gozo con dicha empresa y sus colaterales están a mi nombre: cuatro líneas de telefonía fija (con Antel), cuatro líneas de telefonía celular (con Ancel), un servicio de acceso a Internet por celular GPRS (también con Ancel), tres servicios ADSL para conexión a Interent (con Anteldata) y un servicio de acceso telefónico Urupac (también con Anteldata).

Uno de los servicios telefónicos fijos es de una casa que hace dos meses está cerrada, lo que llevó a que la factura de servicio no fuera paga en fecha. Resultó que inmediatamente el bloquearon todas las llamadas salientes de todos los servicios de telefonía fija que están a mi nombre. Apenas noté el problema, llamé y me dijeron cuál era el servicio impago y ese mismo día quedo cancelada la deuda y al día la cuenta.

Parece razonable que ante la falta de pago de un cliente, la empresa tome alguna precaución para evitar brindar servicio a dicho cliente, evitando también seguir incrementando deuda. Esto lo entiendo.

Lo que me resultó interesante es Anteldata procedió al CORTE TOTAL DE TODOS MIS SERVICIOS ADSL, también en forma preventiva. Esto no lo entiendo. Antel, a quién se le debe, corta llamadas salientes, manteniendo el servicio en operación; Anteldata a quién no se le debe corta todos los servicios (cero conexión).

Como los sistemas de pago y corte-reconexión con asincrónicos, es decir vos pagás y algun día te conectan, todos mis servicios con Internet estuvieron bloqueados después de haber pago (porque pagué a medio día y lo cortaron en la tarde) y por cuatro días en total (hasta que en Anteldata se enteraron que pagé en Antel).

Así que fui por las oficinas de Anteldata a preguntar cuál era la ventaja de tener todos los servicios ADSL a mi nombre…. la funcionaria amablemente me respondío que no habían ventajas.

Esta semana estoy pasando un servicio a nombre de mi Sra, otro a nombre de una S.A, otro a nombre de la empresa unipersonal, otro a nombre de una S.R.L.

Gracias Anteldata por la enseñanza de que no importan clientes fieles.

Noviembre 24, 2008

Leonardo Andrés Gallego
hombrepac
Leonardo Andrés Gallego trata sobre »
» Google Maps: Argentina finalmente existe

Finalmente aparecieron las rutas, caminos y calles en los mapas de Google. Dejamos de ser parte de la isla desértica de Latinoamerica, esa conjunción de Bolivia, Paraguay y Argentina que rellena de amarillo, con algunos puntitos y bordeada de negro hacia el papel de países y ciudades…

Ahora podemos hacer zoom en el modo “mapa” y que sirva para algo. Me viene justo para terminar de planear el recorrido de las vacaciones. Aunque en 30 segundos de usarlo, ya encontre un problema: la función “desde … hasta”, no anda. No puede diagramarme ni el camino a La Plata desde Capital Federal… en fin. Por lo menos el ver las rutas me van a simplificar armarme algún tipo de recorrido.

Por lo que estuve chusmeando practicamente todas las ciudades importantes están completas… algunas ciudades pequeñas como Trelew, Madryn, Rawson y Esquel están tambien, pero por ejemplo; San Antonio Oeste, Las Grutas, Puerto Pirámides o El Bolson estan faltando.

Será cuestión de seguir esperando… mientras tanto, me dedicare a explotar la información que halla sobre Mendoza y alrededores!

Compartí este articulo: del.icio.us Meneame BarraPunto Facebook Digg Slashdot MisterWong