January 21, 2012

Alejandro Ríos P.

Parcela San Gerardo, Rainforest Alliance Certified

Me llena de orgullo poder decir que luego de 10 años de arduo trabajo y sacrificios, mis papás lograron transformar un lote de potrero de una hectárea, en una granja cafetera sostenible, certificada por The RainForest Alliance.

Esta certificación garantiza que la parcela sigue prácticas que hacen que sea económica, social y ambientalmente sostenible.

El café que producirá ahora la parcela será considerado como un café especial, tal como lo define la federación colombiana de cafeteros:

"Cafés Certificados, Amigables con el medio ambiente: Estos cafés son reconocidos por su relación respetando el medio ambiente y la biodiversidad. Buscan mantener el equilibrio entre la presencia humana y los recursos naturales por medio de prácticas amistosas de cultivo."

21 January, 2012 04:15PM by Alejandro Ríos Peña (noreply@blogger.com)

January 19, 2012

hackergotchi for Lisandro Damián Nicanor Pérez Meyer (noreply@blogger.com)

Lisandro Damián Nicanor Pérez Meyer

¿Que pasa si instalo todos los discos de Debian?

Hay algunos que quizás abran las ojos "como dos de oro" por ésta pregunta, pero no es la primera vez que la leo ni que me la hacen, así que vá la respuesta:

Si instalás todos los DVDs/CDs de Debian, vas a tener mucho espacio en disco rígido ocupado. Muy posiblemente, de gusto.

Tener todos los discos a mano sirve si no tenés una buena conexión a internet. Con eso sabés que la gran mayoría de las cosas las tenés disponibles en cualquier momento. Pero no instales todo, solo lo que vos necesites, aunque solo sea del primer medio. Dejá que apt se haga cargo del resto :-)

Si tenés un contraejemplo... sabés lo que estás haciendo y no necesitás que te lo explique =)

19 January, 2012 02:32AM by Lisandro Damián Nicanor Pérez Meyer (noreply@blogger.com)

January 15, 2012

hackergotchi for

Luciano Bello

Corriendo Debian en un server fanless

Debido a una reciente mudanza, he bajado unos servers que tenía corriendo en casa de mis padres. Sin embargo, en mi nuevo hogar estoy en proceso de generar una nueva DMZ, esta vez, sin ventiladores.

El primer paso de este proceso ocurrió en forma de weekend project y consiste en hacerme de un “servidor”. Las comillas hacen referencia a que no se trata de un gran server sino un procesador ARM de 200Mhz y 32MB de RAM, lo que es suficiente para que corra Debian y algunos otros servicios que pueden ser interesantes.

Los ingredientes

  • Un all-in-one LAN server que es la forma en que DealExtreme llama a unos dispositivos con chips de la familia str8132. Dado que vamos a instalar snake-os en ellos (en este caso se trata de la versión 1.3.2-20111019), es importante chequear la lista de compatibilidad. En particular me hice de un NS-K330 por 40 dólares.
  • Storage USB, puede ser en la forma de stick o como disco portable.
  • Un RS232 to TTL level converter, también conocido como cable para Nokia N1200/1208/1650/2630/2670. Es para conectarse por serie a la consola. No lo necesitamos ahora mismo, pero está bueno tenerlo a mano en caso de brickearlo, aunque es un procedimiento que no explicaré esta vez.

Instalación de Snake-OS

Es realmente sencillo. Lo primero es bajar snake-os, desde la sección de downloads de la web. Es importante que el archivo sea de la forma snakeos-<versión>-from-original.zip Instalar el que dice from-snake lleva definitivamente al brickearlo y recuperarlo puede ser complejo.
Desde la página de administración del dispositivo hay que subir el archivo snakeos-<versión>-from-original.bin contenido en el zip bajado. Confirmar el md5sum no está de más.

Acceso inicial

Los datos para acceder a la nueva interfaz con el browser:

http://192.168.0.240 (si es que no hay un DHCP en la red)
usuario: admin
contraseña: snake

Por SSH la contraseña de root la misma y, al cambiarla por la página de administración, se cambia en todos los accesos.

Post instalación

Incluso cuando Max opine que el uso de memoria virtual está rumbo a la extinción (lo cierto es que tal vez no es la mejor idea cuando el storage es de estado sólido como en los pendrives), activé el uso de SWAP desde el menú Service-Swapfile.

Si se quieren las mismas prestaciones que se tenían con el firmware original, hay que instalar unos paquetes adicionales. El sistema de paquetes que utiliza snake-os es opkg y tiene que ser primero activado desde Service-Opkg. Los paquetes pueden bajarse desde la página de download de snake-os y se instalan desde System-Packages. En particular, pueden ser interesantes (siempre pensando en los features originales):
Transmission: Es un cliente de BitTorrent, para dejar tus descargas corriendo. Es bastante mejor que el original.
miniDLNA: Es el server de streaming compatible con DLNA/UPnP-AV. Está un poco verde, pero se está trabajando en su mejora.

Corriendo Debian dentro

Las instrucciones están acá. Aunque esto es lo más obvio y necesario:

wget http://snake-os.googlecode.com/files/debian_chroot.tgz
tar -xvf debian_chroot.tgz
mount -o bind /proc /usb/sda1/debian/proc
mount -o bind /dev /usb/sda1/debian/dev
chroot /usb/sda1/debian/

Esta instalación base requiere unos 200MB. Tiene todo el potencial de un Debian (¡porque lo es!).
Claro que falta ajustar varios detalles, pero será la piedra inicial para el resto.

15 January, 2012 11:04PM by luciano

December 29, 2011

hackergotchi for

Norman García

Claro Nicaragua y su censura a sus clientes

Ya había tardado en escribir sobre esto, con tantas cosas por hacer, el blog no ha logrado convertirse en una prioridad y por eso olvido escribir :/

A veces cuesta pensar que en un país como Nicaragua podría existir censura a través de la Internet, siempre vemos esto como algo muy Oriente Medio y se nos olvida que también puede pasar acá, en la región centroamericana, y ya lo vivimos con el pueblo hondureño y el golpe de Estado al presidente Zelaya, la represión a través de la Internet fue vivida por muchas personas.

El 29 de noviembre pasado, un colectivo llamado “Claro que NO” decide publicar un blog como un medio donde los clientes insatisfechos con el servicio de Claro Nicaragua (empresa del grupo América Móvil, del millonario mexicano Carlitos Slim) puedan expresarse. Parece que a algunos trabajadores de CLARO Nicaragua esto no les gustó y procedieron a realizar la (para muchas personas) acción más descarada, irrespestuosa y atropelladora en contra de nosotros, los clientes de ellos, quienes mes a mes les pagamos.

A los pocos días de haber nacido este blog, la empresa en mención mandó a bloquear la dirección IP del servidor donde se aloja el blog y con esto lograron que las personas quienes tienen una conexión de Internet con CLARO no puedan visitar el sitio web.

No ha sido una vez la que yo personalmente me he quejado en twitter sobre este bloqueo y la única respuesta que he recibido por parte de ellos es “NO HEMOS BLOQUEADO NADA”.

El día 23 de diciembre el periodista Oliver Gómez se reune con Federico Michell, miembro del colectivo claro que no para reallizarle una entrevista, este mismo día, también se realiza una entrevista con la empresa CLARO Nicaragua y hasta esta fecha, los directivos de la empresa siguen sin reconocer el bloqueo hasta que un técnico hace una prueba en vivo al periodista y ya con la prueba frente a ellos, no tienen de otra que decir que si es cierto y por supuesto, aceptaron mel bloqueo hasta que se comunicaron con el Gerente General de Claro Nicaragua. Tristemente, todavía reconocen que hicieron el bloqueo ya que hay difamación en contra de ellos y calumnias.

Desde cuando un proveedor de Internet tiene potestad para cerrar descaradamente un sitio web? La Internet no supone ser libre? CLARO Nicaragua puede bloquear un sitio web donde sus clientes manifiestan sus descontentos? Los clientes de una empresa tienen todo el derecho de quejarse por un mal servicio prestado y la empresa proveedora de Internet no tienen ningún derecho de, a criterio propio, bloquear sitios web.

Pero cosas como estás no se leen en los medios de comunicación escrita como La Prensa, El Nuevo Diario, Confidencial, La Brújula, pues no se han atrevido a escribir un reportaje sobre esto. Sí, Confidencial y La Brújula publicaron algo, pero lo hicieron en secciones de reporte ciudadano y “libre expresión”, donde se quitan un peso de encima con la empresa CLARO al ser secciones del periódico escrita por sus lectores, pues no se atreven a hacer un reportaje periodístico de verdad. Igual los canales de televisión o radios, nadie se ha atrevido a hablar al respecto, por temor a perder el dineral que les da CLARO por publicidad.

Todos los medios de comunicación son expertos en poner en primera plana reportajes en contra del gobierno, pero ninguno se atreve a hablar de la censura impuesta por una mega empresa como CLARO, es triste ver como medios de comunicación que están “al servicio y la verdad de la justicia” se hacen los sordos cuando se les pregunta si piensan defender a la población y denunciar una censura. Igual los grupos juveniles que defienden la libertad de expresión que tenemos como ciudadanos, solo saben defender la libertad si es algo del gobierno, pero cuando es una empresa privada, lo olvidan.

Fue hasta el día miércoles 28 de diciembre, que el periodista Oliver Gómez publica un artículo sobre este caso en El Nuevo Diario, una labor increible e inesperada, no nos imaginabamos que esto iba a llegar a pasar. En dicho artículo, Azalia Salmerón, Gerente de Comunicación Corporativa de Claro, explicó que el bloqueo lo realizaron aduciendo que no toleran el libertinaje, WTF? somos sus clientes y si nos quejamos no es por difamar, es que no nos brindan un buen servicio. No es posible que nuestro proveedor tilde de difamaciones y calumnias las quejas nuestras.

Que dicen ustedes? felicitamos a Claro Nicaragua por darnos el “lujo” de expresarnos?


29 December, 2011 05:43AM by n0rman

December 12, 2011

Hello Debian Planet

I must confess, I thought only DD’s can be on the Debian Planet and a few days ago I read someone telling me that I must add my blog to the planet, so I went to the Planet wikipage and I saw that Planet Debian is for any active and directly involved participant in the Debian development community.

This is my first post on the Debian Planet. I’m member of the DC12 Local Team and I’ll try to post here updated information about DebConf12 organization, my experience in the Debian Community (I’m starting to collaborate with Spanish translations for the Debian Plubicity Team), and other Debian-related things as well.

Our next DebConf meeting is TBD on doodle, if you are interested to participate in the meeting, please go to doodle and select the dates you are available so we can decide when is going to be the next meeting.

Hope to see you next year in Managua!


12 December, 2011 05:57PM by n0rman

November 17, 2011

Alejandro Ríos P.

Diego Andrés Asenjo González (8 de Abril 1983 - 10 Noviembre 2011) Q.E.P.D

<style type="text/css">p { margin-bottom: 0.21cm; }</style>

Hoy quisiera escribir más una elegía para un hermano que ha partido lejos, que un obituario para un amigo fallecido. Aquel niño que vimos llegar con su inteligencia precoz a nuestra facultad y a nuestra vida, y que vimos convertirse en hombre junto a nosotros, para todos siempre seguiría siendo el mismo Dieguito de primer semestre.

De ascendencia española y payanesa, Diego Andrés empezó a marcar los corazones y las vidas de cuantos conocía, con su genio y carisma, desde que a temprana edad inició sus estudios en el Colegio Guillermo León Valencia, aquél en el que conoció a entrañables amistades como Andrés Larraín, y los primos de éste, Venus y Jhon William, todos de precoz inteligencia, adelantados en grado y en cualidades, pero ante todo unidos como haciendo parte de una misma gran familia.

No recuerdo exactamente cómo nos conocimos y empezamos a andar pa'rriba y pa'bajo, pero seguramente fue luego de tantas y memorables jornadas de estudio en primero y segundo semestre, cuando acudíamos a masear en bandada en la casa de Ana Cirstina Moya o de Angela Checa, o de Maryury Muñoz, o de Cecilia Velasco o de tantos otros buenos compañeros. El caso es que para tercer semestre ya se iba perfilando el carácter de cada uno de nosotros y finalmente terminamos segmentados en pequeños grupos, de los cuáles Diego parecía la intersección en muchos, por ser siempre tan abierto, y en otros la disyuntiva, por su carácter igualmente terco y obstinado.

Esta es la hora en que todavía me sorprende la forma como obtenía sus buenas notas. Llegábamos siempre sobre la hora del parcial donde estaba el grupo grande de estudio, generalmente Diego, Juan Manuel Coronado y yo, a tratar de resolver los problemas más representativos dentro de los que podían salir en el exámen. En vez de 200 integrales, hacíamos 10, y donde nosotros sacábamos 3.8, Diego sacaba 5. Tenía una letra inmunda y tomaba notas desordenadas, estaba metido en cuanto grupo había: consejo estudiantil, pulsos, grupo linux, olimpiadas de matemáticas, Interact, club de Inglés, red de datos, monitorías, en fin,.. y aún así le alcanzaba para sacar 5 en campos y obtener medias y completas matrículas de honor de segundo a quinto semestre, que todos saben son de los más bravos en la FIET.

Pero eso sí, nunca Diego fue un nerd pegado de los libros, al contrario, dormía hasta muy tarde de día, y en las noches tomaba largas caminatas por el centro de Popayán, a veces solo o a veces en compañía de algún amigo, le gustaba el tinto, la cerveza y fumar, veía muchos atardeceres, especialmente desde el morro, y cada vez que le daba la gana se iba de paseo, con los pesos que tuviera en el bolsillo y el mejor transporte que bien podían ser sus piernas o su bicicleta.

Era un bohemio, amante y estudioso de la literatura clásica y de la buena música, con el grupo de amigos del Museo Valencia llevamos a cabo incontables tertulias, a veces una película de cineclub, o ir a caminar hasta la casa de Lolita Collazos o de alguna de tantas otras amigas que Diego hacía a diario y que se quedaban para siempre. Era una época de estudio, de asombro, de juventud, de rebeldía, le doy muchas gracias a la vida haber podido pasar mis mejores años en Popayán, y haberlo hecho en su agradable compañía.

Fuimos tan unidos con Diego y Juancho, que incluso llevábamos un diario que escribíamos los tres, nos auto denominábamos "el triunvirato" o "los patos", y cuando salió el Club de la Pelea, llegamos a considerar que era posible que los otros dos fueran una invención de la mente de cada uno.

La vida nos cambió cuando llegamos a octavo semestre y conocimos Linux. Fuimos a un congreso de software libre en Manizales, subimos al Nevado del Ruiz, y volvimos con la convicción de que debíamos dedicar nuestra carrera a la libertad de la tecnología. Participamos en los inicios del grupo Linux, dimos lata y lata con el software libre, y luego todo pareció tomar sentido cuando se formó Parquesoft y junto a un grupo élite de grandes ingenieros decidimos crear nuestra propia empresa alrededor del mismo tema, un sueño utópico llamado Avatar.

Digo que la vida cambió, porque se acababan los años de universidad y rápidamente chocábamos contra la dura realidad de la vida profesional y empresarial. Al mismo tiempo, Diego tomaba distancia de nosotros, volviéndose cada vez más relajado y adoptando una postura hedonista que lo caracterizaría por los años venideros. Quisimos hacer una tesis que combinara todos nuestros intereses académicos y de la empresa, pero lo cierto es que la hicimos con toda la pereza del caso de quién no quiere dejar a un lado la buena vida del estudiante en Popayán, incluso alquilamos un cuarto en cercanías a la facultad para usarlo como base de operaciones de la tesis, pero donde también nos la pasábamos de relax con nuestros amigos y novias, viendo películas y escuchando música, al mejor estilo de fraternidad gringa.

Finalmente llegó el momento de que Avatar saliera de la ciudad blanca y se aventurara a Bogotá, pero Diego no estaba listo para irse de 'Popayancito', como le decía, y empezó una época estresante donde lastimosamente nuestros caracteres fuertes chocaron y nos alejamos tremendamente. La realidad de Avatar se alejaba del sueño utópico con el que habíamos empezado y Diego decidió hacerse a un lado para continuar por su cuenta en un trabajo más académico y relajado, en el que pudo continuar y entregarse definitivamente a su filosofía hedonista.

Tiempo después de terminar con su eterna novia de la universidad, Isabel, Diego empezó a estudiar historia y aprender alemán, y poco a poco fue naciendo en él la necesidad de salir de Popayán, pero no hacía Bogotá, sino hacía el viejo continente, aprovechando su nacionalidad española, prácticamente la única cosa que aceptó del padre que nunca estuvo, y aprovechando también de alguna forma la familia cercana que tenía en Alemania.

Poco sé ahora de los detalles de esta última etapa de mi amigo en Europa. Se cuadró con una chica alemana llamada Helen, con la que viajó por varios países de latinoamérica antes de radicarse en Madrid. Estuvo trabajando en una pequeña empresa del sector de telefonía móvil, paseando mucho y conociendo buenos amigos y eso sí, saliendo con un mundo de chicas de diversas nacionalidades Jajaja.... porque no sé cómo hacía o qué les decía pero levantaba resto con su pinta desparpajada, su narizota y su pelo enmarañado que enrollaba con los dedos cuando quería pensar o simplemente por costumbre.

Así como inesperada y prematuramente
, justo cuando acumulaba deseos de volver a radicarse en Colombia, descubrió que tenía un cáncer de los más agresivos en estado avanzado, y que en tan poco tiempo terminaría acabando con su vida, así mismo me gusta pensar que hubiera podido irse siendo atropellado en su bicicleta cuando recorría alguna carretera en la montaña, o que se pudo haber desvanecido y unido con La Fuerza en un éxtasis de sexo, dogas y rock n' roll, el caso es que es su vida la que recordaremos y no su forma de morir.

Espero que la familia de Diego, especialmente Maria Cristina, su madre, pueda tener fuerzas y la iluminación para soportar esta dura partida, que a todos nos duele profundamente. Pero en cierta forma, sé que a muchos nos alivia el hecho de que en 28 años Diego viviese más intensamente que mucha gente que llega a la vejez. Muy intenso, como aquella vez en que nos fuimos a dedo a la feria de Manizales, y luego de dormir en la calle en Chinchiná y de regresar medio trayecto caminando, Juancho nos tuvo que ayudar a rescatar desde Palmira, o como cuando nos dio dizque por subir hasta el volcán Puracé en bicicleta, y casi todo el camino tuvimos que empujar nuestros caballitos de acero loma arriba con la carpa y los morrales al hombro....pero de puros tercos subimos, y subimos varias veces al volcán, y es allí en su cráter donde iremos a dejar las cenizas de nuestro amigo, tal como fue su voluntad... y donde espero yo también yacer cuando llegue mi hora.


Adiós enano.

Alejandro Rios.

17 November, 2011 03:38PM by Alejandro Ríos Peña (noreply@blogger.com)

November 16, 2011

Fernando C Estrada

The Unarchiver cambia de nombre en Debian

El paquete en Debian correspondiente a la aplicación The Unarchiver (para la cual escribí un artículo hace poco) ha cambiado de nombre en Debian y ahora se llama unar, dicho cambio se debe a ciertas conversaciones  que se tuvieron con Dag Ågren (el desarrollador principal «upstream») en relación a la versión utilizada, y es por ello que en caso de que ya tengan instalado el paquete theunarchiver lo deben sustituir por el paquete unar:

apt-get --purge remove theunarchiver && apt-get install unar

Saludos ;-)

P.D. ¡Muchas gracias a Julián Moreno Patiño por la información!

16 November, 2011 05:16AM by Fernando C. Estrada

November 13, 2011

José Luis Redrejo

Servicio de conversión de documentos con OpenOffice

OpenOffice es mucho más que una suite de programas ofimáticos. Por debajo tiene una importante serie de librerías, aplicaciones y utilidades muy interesantes. Hace poco me vi en la necesidad de convertir automáticamente algunos documentos de formatos propietarios a formatos estándar. Las instrucciones para hacerlo son muy simples:

  • Asegurarse de tener instalado el paquete python-uno (apt-get install python-uno) , y openoffice, claro.
  • Arrancar el comando:
    • soffice -headless -accept="socket,port=8100;urp;"
  • Descargar este script: DocumentConverter.py
  • La instrucción para convertir cualquier documento es:
    • python DocumentConverter.py  midocumento.doc midocumentobueno.odt

Se puede convertir entre cualquier combinación de documentos, de xls a pdf, de rtf a odt, etc..

Más información (en perfecto inglés) aquí: PyODConverter

13 November, 2011 04:00PM by José L. Redrejo Rodríguez

October 03, 2011

Fernando C Estrada

Primera reunión de usuari@s de Debian en la Ciudad de México

El pasado sábado 24 de Septiembre se llevó a cabo una reunión de usuari@s de Debian con la inquietud principal de formar un grupo local de usuari@s de Debian en la Ciudad de México.

Aunque la reunión estaba planeada a las 5:30pm, debido a algunos problemas en la organización desafortunadamente esta nunca “comenzó formalmente”, y considerando que ya era tarde y posiblemente no se contaría con el espacio posteriormente alrededor de las 8:15pm algun@s interesad@s nos reunimos y comenzamos a charlar al respecto, teniendo como primer acuerdo que el Telmex Hub no es una opción adecuada para llevar a cabo futuros encuentros, al poco tiempo los empleados de Telmex Hub pidieron que nos retiraramos por lo que la charla siguió en la calle y por último nos movimos a un bar cercano.

Las conclusiones y acuerdos a las que se llegaron en la reunión fueron las siguientes:

  1. Organizar actividades presenciales entre personas que compartimos una misma región y que tenemos en común el interés por Debian nos puede beneficiar para aprender y compartir más sobre Debian organizando talleres, charlas, etc, además de beneficiar al proyecto Debian directamente al darle difusión y atraer más personas interesadas en colaborar.
  2. La creación del grupo local en la Ciudad de México es completamente informal, no existe una estructura organizacional y por el momento no se planea que vaya a haberla, se trata simplemente de personas que compartimos el interés por Debian además de una misma región en la que vivimos, por lo que cualquier persona es bienvenida a participar, organizar, proponer, colaborar, etc.
  3. El trabajo que se realice siempre irá enfocado a Debian y no a algo local, por lo que una de las funciones del grupo será encaminar y canalizar a las personas a colaborar directamente en Debian, una propuesta al respecto es invitar a las personas interesadas en colaborar a que envíen un correo a la lista indicando sus intereses, habilidades, ideas, etc., para que así podamos canalizarl@s a algún equipo de trabajo en Debian y su esfuerzo se vea reflejado directamente y no quede en algo local que no tenga el impacto buscado.
  4. Se planea tener reuniones mensuales organizando entre tod@s charlas, talleres, maratones de traducción, BSPs y cualquier otra actividad relacionada a Debian y que además ayude en su difusión. Debido a las ocupaciones de la mayoría las reuniones se planean hacer en fines de semana por lo que el siguiente paso es encontrar el lugar y acordar la fecha y hora para la próxima reunión. Cualquier oferta brindando un espacio para una próxima reunión será de gran ayuda y sumamente bienvenida.

Favor de enviar cualquier comentario, sugerencia, propuesta y demás a la lista de Debian México para poder mantener la temática y por supuesto darle seguimiento a la misma.

Saludos ;-)

P.D.1. Gracias Jonathan por los apuntes sobre la reunión y principalmente por la charla que brindaste sobre Debian.

P.D.2. Ofrezco disculpas por el retraso en la minuta de la reunión.

03 October, 2011 01:32PM by Fernando C. Estrada

September 28, 2011

Alejandro Ríos P.

MiniDebConf Colombia 2011

Este sábado 1 de octubre se realizará la cuarta edición de la conferencia Mini-Debconf Colombia, reunión de usuarios y desarrolladores del sistema operativo Debian GNU/Linux en Colombia.

Se realizarán varias charlas relámpago (10 minutos cada una) sobre el uso y desarrollo del sistema operativo Debian GNU/Linux, Firma de llaves GPG y posterior Debeta en el Cafe de Otraparte.

Lugar y Fecha

28 September, 2011 04:51PM by Alejandro Ríos Peña (noreply@blogger.com)

September 25, 2011

hackergotchi for Lisandro Damián Nicanor Pérez Meyer (noreply@blogger.com)

Lisandro Damián Nicanor Pérez Meyer

Desarrollador de Debian

Ésta madrugada recibí el mail que confirma la creación de mi cuenta en los servidores de Debian. En otras palabras ¡soy DD! Tengo una alegría enorme :)

Por supuesto, no llegué hasta acá sin el invalorable esfuerzo de otras personas. Mi seguramente incompleta lista de agradecimientos va a (en orden cronológico) Marga Manterola y la muchachada entera del LugFI, Ana Guerrero,  el equipo Qt-KDE, Hauke Rahm que fué mi AM, Telma, mi novia, que me conoció y aceptó como debianita con todo lo que eso implica y a un montón de gente mas que me acompaña desde hace años.

A todos ustedes muchas gracias. Espero poder seguir siendo útil en la tarea de lograr el mejor Sistema Operativo Universal.

25 September, 2011 02:18PM by Lisandro Damián Nicanor Pérez Meyer (noreply@blogger.com)

September 21, 2011

Fernando C Estrada

BOF: Grupo de usuari@s de Debian en la Ciudad de México

El próximo sábado se llevará a cabo una reunión entre usuari@s de Debian en la Ciudad de México, esto con la finalidad de convivir y tratar diversos temas como la propuesta de creación de un grupo local de usuari@s de Debian, la planeación de una Bug Squashing Party, ideas de colaboración, intercambio de llaves, etc. La cita es el próximo sábado 24 de Septiembre de 2011 en el Telmex Hub (Isabel la Católica #51 P.B., Colonia Centro, Delegación Cuauhtemoc.) a las 5:30pm.

Durante ese día se estará celebrando el «Día del Software Libre» por lo que se tienen varias charlas planeadas, entre ellas: «Debian, la participación en comunidad para la socialización del conocimiento» a las 4:00pm, así que consulta la agenda del evento, pasa la voz y ¡nos vemos el sábado!.

Saludos ;-)

P.D. ¿Ya te registraste a la lista de correo para la comunidad de usuari@s de Debian México?.

21 September, 2011 03:01AM by Fernando C. Estrada

September 18, 2011

The Unarchiver llegó a Debian

The Unarchiver es una herramienta de extracción de archivos que funciona con una muy amplia gama de formatos, entre sus principales características permite la extracción de archivos en formato RAR de forma libre, y ya que The Unarchiver llegó a Debian, por fin he podido hacer un:

aptitude -y purge unrar && aptitude -y install unar

Su uso es muy simple y se basa en dos comandos:

  • lsar    Lista el contenido de un archivo.    Ejemplo: lsar <archivo>.rar
  • unar    Extrae el contenido de un archivo.    Ejemplo: unar <archivo>.rar

Para mayor información: man lsar ó man unar.

Actualización 2011/11/15: Debido a algunas conversaciones con el desarrollador principal («upstream») se decidió renombrar el paquete en Debian por unar.

Saludos ;-)

P.D.1. ¡Muchas gracias Matt Kraai, Asias He y Julián Moreno Patiño por traer The Unarchiver a Debian!.

P.D.2. Lo ideal sería no recibir archivos en formato RAR, pero ya que hay quienes se empeñan en enviar archivos en este formato resulta muy útil contar con una opción libre para poder extraerlos.

18 September, 2011 05:55PM by Fernando C. Estrada

September 04, 2011

Eliminar correo no deseado de las listas de Debian en español

Considerando que el histórico de mensajes enviados a las listas de correo de Debian es un recurso de documentación muy valioso, me he dado a la tarea de crear una página en el wiki para la coordinación de reportes de correo no deseado en las listas de Debian en español.

Existe un botón para reportar mensajes como correo no deseado (spam) por cada mensaje en el archivo de las listas de correo, entre otras opciones para poder reportar un correo como spam, sin embargo se requieren varios reportes para que un mensaje se marque para la revisión y en su caso eliminación del archivo por parte de un Desarrollador Debian.

Con la finalidad de llevar a cabo la tarea de reportar los mensajes de correo no deseado en la forma más eficiente posible (y basado en el método utilizado por los equipos francés, italiano, entre otros), les hago una invitación para que apoyen con estos reportes de forma coordinada y logremos tener un histórico de mensajes libre de spam.

La forma de colaborar es eligiendo un mes que aún no cuente con cinco revisiones en el wiki, revisar el asunto de los mensajes dando clic en los que parezcan sospechosos, y reportar los mensajes de correo no deseado utilizando el botón de la parte superior derecha, por último hay que actualizar el wiki cambiando una estrella apagada por una iluminada e incluyendo su {nombre|iniciales|nick} en la revisión. Un ejemplo práctico del flujo se puede encontrar aquí gracias a Camaleón.

Para mayor información pueden consultar (en inglés) este wiki, consultar el wiki de las normas de las listas y/o preguntar directamente en la lista de usuarios.

Saludos ;-)

P.D. Si todo sale bien, este será mi ¡Primer post en Planeta Debian! :-)

04 September, 2011 08:10PM by Fernando C. Estrada

José Luis Redrejo

Las nuevas nubes y las empresas de hosting

Durante este verano, por un medio o por otro (principalmente a través de la inestimable lista de correo de web2py) me he enterado de varias “nubes” para alojamiento de proyectos web.

Todas estas nubes forman parte de una segunda generación: Te olvidas de las complicaciones que tiene hacer un deploy en sitios como Amazón, puesto que te dan todo listo. Evidentemente tienen restricciones que no tiene una máquina virtual en Amazón, pero te libran de la mayor parte de la parafernalia y te dan toda clase de servicios: desde distintos tipos de bases de datos a servidores no tradicionales como Node.js, ssh, o soporte de casi cualquier lenguaje de software libre disponible: js, java, php, python, perl….

Para los que hace un tiempo que dejamos php por parecernos imposible hacer una programación decente con él, y nunca nos ha convencido la monstruosidad que suponen las API de Java, Python se ha convertido en nuestra tabla de salvación, que con cosas como Django o Web2py nos permiten hacer con relativa facilidad aplicaciones serias y bien hechas. Sin embargo, el problema era encontrar un hosting que admitiera estos frameworks y tuviera un precio razonable para los que no buscamos hacer páginas web comerciales  con miles de visitas. Los hostings de bajo precio sólo admiten normalmente php.

Sin embargo, ahora no veo muy bien que salida pueden tener estos hostings de bajo precio si a precio cero ahora puedo tener disponible mucho más espacio web, capacidad de proceso y el uso de múltiples lenguajes de programación sin casi restricciones en los nuevos alojamientos en nube. O en no mucho tiempo se reciclan y eliminan algunas de sus restricciones o todos estos hostings que hay por menos de 100 € /año tienen sus días contados, por el simple hecho de que no merece la pena pagar por algo que otros me dan gratis, y con la posibilidad de escalar hasta “el infinito” si por casualidad mi aplicación se convirtiera en un éxito y me animara a pagar por su consumo de CPU y ancho de banda.

En resumen, para los que les pique la curiosidad aquí están los tres mejores sitios disponibles (a día de hoy y en mi limitado conocimiento:

  • Dotcloud: con dos servicios gratuitos por email con el que te des de alta, contando como servicio tanto www como una base de datos postgresql o mysql. Es decir, si tienes una aplicación que tire de estas bases de datos, consumes los dos servicios gratuitos disponibles. Tiene documentación para instalar fácilmente bases de datos entornos de programación completos de los más conocidos en el mundo del software libre: http://docs.dotcloud.com/services/roadmap/ . Como inconveniente está la necesidad de instalar una aplicación (libre, en Python) en el ordenador desde el que queramos enviar los archivos a Dotcloud. Esto puede ser un inconveniente para los habituados al ftp, pero una vez que se aprende a manejar tiene mucha más flexibilidad, potencia y posibilidades, permitiéndonos entre otras cosas hacer ssh al entorno donde está alojada nuestra aplicación.
  • Picloud, con 5 horas de CPU gratis. Luego es de pago, pero a unos precios muy bajos
  • FluxFlex, con 3 aplicaciones gratis , enlazado con github permite poner una aplicación en marcha en cuestión de unos pocos segundos. De momento tiene una pega importante con el tamaño máximo de archivo a subir mediante POST, que es de tan solo de 100 KB

04 September, 2011 03:55PM by José L. Redrejo Rodríguez

August 31, 2011

José Luis Rivas

Deck.js: Para hacer presentaciones con HTML+JS

Hoy navegando me topé con esta librería Javascript para hacer lo que llaman presentaciones modernas con HTML. Depende de jQuery y Modernizr para hacer la magia y está bajo una licencia dual MIT/GPL. Funciona en IE7+, Opera, Chrome, Firefox y Safari.

La librería en cuestión se llama Deck.js y pueden ver una demostración de sus resultados, incluye más temas y documentación para que tú mismo crees tus temas si manejas CSS+JS.

Pueden hacer un fork del código de Deck.js desde GitHub.

31 August, 2011 04:15AM by ghostbar

August 22, 2011

«Licencias para Desarrolladores en el mundo Open Source», la presentación en PDF

Para los que asistieron y para los que no a mi charla en el Día Debian 2011 de Barquisimeto, aquí les dejo mis láminas en formato PDF y fácilmente leíbles desde la web con Scribd.

Pronto estaré escribiendo más sobre el tema de la propiedad intelectual que poco se ha urgado en la comunidad hispana pero que sigue teniendo efectos sobre nuestras acciones.

22 August, 2011 01:48AM by ghostbar

August 19, 2011

Mañana 20 de Agosto, Día Debian Barquisimeto

Mañana se realizará el Día Debian en Barquisimeto, en el Decanato de Ciencias y Tecnología de la UCLA, donde estaré dando la charla «Licencias OpenSource para Desarrolladores», el cronograma completo del evento es el siguiente:

Sala 1:

  1. Routing en Debian Linux (Harold Luzardo) 8:30 am
  2. “¿Por que instalar Debian?” (Instalacion de Debian Squeeze) (Rafael Isturiz) 10am
  3. Android Primero Pasos (Gustavo Piciccini) 2:00pm
  4. Principios básicos en Python (Samuel Rojas) 3:00 pm

Sala 2:

  1. Virtualización de la A a la Z (Jesus Lara) 8:45am
  2. Licencias OpenSource para Desarrolladores (Jose Luis Rivas) 11:00am
  3. Juegos mas allá del código (Will Alvarez) 2pm
  4. Comunidades de Software Libre (Augusto Davila) 3:30pm

¡Los esperamos por allá!

19 August, 2011 05:17PM by ghostbar

July 28, 2011

Mario Izquierdo

Drivers de TDT (DVB) AverTV TwinStar 07ca:0825 en formato DKMS

Como veo que los artículos en los que he publicado los parches para el driver de este dispositivo TDT están teniendo seguimiento en este blog y harto de compilar a mano un montón de cosas en cada actualización del kernel ayer dediqué un ratillo a preparar un paquete más automático usando DKMS. DKMS  es un sistema que compila módulos del kernel en varios eventos (actualización del kernel, nuevo kernel, actualización de drivers, etc...) sin intervención del usuario. Muchos paquetes de Debian y Ubuntu lo usan (drivers de NVIDIA/ATI, VirtualBox, etc...) ¿Porqué no tenerlo para el driver AF9035? He dado de alta un  PPA en Launchpad ,  que contiene  el paquete fuente y el .deb generado  listo para instalar en cualquier distribución . El paquete sólo depende de dkms por lo que debería funcionar en i386/amd64 y desde versiones cuyo kernel sea 2.6.26 o superior (en el 3.0.0 de Debian Unstable funciona sin problemas) El paquete compila 6 módulos: af9033, dvb-core, dvb-usb-af9035, dvb-usb, mxl5007t, tua9001 que se instalan en /lib/modules/`uname -r`/updates/dkms por lo que tienen preferencia sobre los módulos instalados. Puede que rompa otros drivers de TDT pero normalmente no se suelen tener varios modelos funcionando a la vez. El paquete se ha generado partiendo del código fuente de dvb-usb-af9035, cabeceras y fuentes de la rama v4l e incluye el firmware  /lib/firmware/dvb-usb-af9035-01.fw  necesario.

28 July, 2011 12:28PM by mario

July 16, 2011

José Luis Rivas

¿Y por qué no puedo compartir a Google+ desde Google Reader?

Veo un artículo interesante en un feed que tengo por Google Reader y voy a compartir, me aparecen Twitter, Facebook y Tumblr, pero nada de Google+.

¿Y entonces? ¿A qué están jugando en Google? Lo vuelven adicto a algo y no le permiten compartir inmediatamente en su propia red social…

16 July, 2011 03:39AM by ghostbar

July 03, 2011

hackergotchi for Lisandro Damián Nicanor Pérez Meyer (noreply@blogger.com)

Lisandro Damián Nicanor Pérez Meyer

Una mandarina en Debian

Hace unos 16 dias (tarde me vengo a avivar.. ¿será porque lo compilé de fuentes?) Clementine, el reproductor de música multiplataforma insipirado en Amarok 1.4, está disponible en Debian.

El trabajo necesario para empaquetarlo fué mucho, y por eso agradezco a Thomas Pierson por eso :-)

Sugiero que no dejen de probarlo. Sabe mejor con una mandarina en mano ;-)

La imagen fué tomada de la Wikipedia.

03 July, 2011 05:53PM by Lisandro Damián Nicanor Pérez Meyer (noreply@blogger.com)

July 02, 2011

José Luis Rivas

“La GPL no tiene restricciones de copyright”

Eso es lo que unos intento de abogados han dicho en una respuesta ante la Corte Suprema de Mauritius/Mauricio. Un copy&paste de parte de lo que alegan:

5. Licenses of open-source software like “Linux” and “Asterisk” have no copyright restrictions which in effect puts no restrictions on their use or distribution. As a consequence, any work which is derived from the open source software as conceptualized, created, installed and managed, by the Applicant becomes the ownership of the Applicant.

6. In the light of the above, therefore, the applications, configuration files and features so developed by the Applicant are the sole property of the Applicant, make up the knowledge base of the Applicant, make the basis of its business operations, and are highly confident in nature. The applications, configurations and features have been built and acquired by the Applicant through important capital investments and manpower over a period of time.

Lo que no terminan de joder con el punto 5, lo terminan de joder definitivamente con el punto 6. Así que, para ellos, lo que se haga de manera derivada de software GPL termina siendo propiedad única y exclusiva de quien lo hizo, supuestamente eliminando la propiedad de los copyright-holders del software base.

Sólo queda recomendarle al demandante que se busque unos abogados que al menos sepan leer licencias.

02 July, 2011 05:32AM by ghostbar

June 13, 2011

hackergotchi for

René Mayorga

I think I can said that I’ll go to DebConf11

Well, I booked my plane tickets on March, but there was some $JOB related problems, since the company where I work is facing a merge(and I was pretty sure that I will finish being unemployed), so I was really sad that I’ll have to drop my plans and loose some money, but so far everything looks ok, I’m lucky  and the government  did not approve the merge and asked for more bureaucratic  documents, this give us one year more, so I can finally say that I’ll go to DebConf11 :)

This year I’m planning to came a bit early and stay at least two days on DebCamp, my work plan is to work on pkg-boinc’s long TODO list, I’m really happy since I missed DebConf10, long time without see some Debian friends faces :)

13 June, 2011 03:03PM by churro

May 28, 2011

hackergotchi for Lisandro Damián Nicanor Pérez Meyer (noreply@blogger.com)

Lisandro Damián Nicanor Pérez Meyer

KDE SC 4.6.3 en inestable

El equipo Debian Qt/KDE hizo disponible hoy la versión 4.6.3 de KDE SC. El salto desde testing sería entonces desde KDE SC 4.4.5.

Muchas gracias a los mantenedores por su esfuerzo :-)

28 May, 2011 12:10AM by Lisandro Damián Nicanor Pérez Meyer (noreply@blogger.com)

May 02, 2011

Qt 3 en busca de gente interesada en adoptarlo

Con KDE 3 casi ya no presente en inestable, el equipo Qt/KDE no está interesado en continuar manteniendo Qt3. Por ende, estamos buscando a gente interesada en adoptarlo.

Si te interesa que Qt 3 esté presente en Wheezy, éste es el momento de involucrarse. Por favor, leé este mail y respondé en la lista.

Y no, no es coincidencia que éste post se parezca a éste otro :-)

02 May, 2011 12:36AM by Lisandro Damián Nicanor Pérez Meyer (noreply@blogger.com)

April 22, 2011

Nacho Barrientos Arias

Finding equilibrium

Carlos shared a pretty cool link with me this morning. Codility is a platform to help recruiters and contractors to test developers before hiring them. Both the idea and the execution are beautiful. They’ve done a stunning job.

As part of my visit to the page I gave a try to the demo test. As it was funny to solve it, I’m sharing my solution here. The problem was quite easy. It reads like this:

Equilibrium index of a sequence is an index such that the sum of elements at lower indexes is equal to the sum of elements at higher indexes. For example, in a sequence A:

A[0]=-7 A[1]=1 A[2]=5 A[3]=2 A[4]=-4 A[5]=3 A[6]=0

3 is an equilibrium index, because:

A[0]+A[1]+A[2]=A[4]+A[5]+A[6]

6 is also an equilibrium index, because:

A[0]+A[1]+A[2]+A[3]+A[4]+A[5]=0

(sum of zero elements is zero) 7 is not an equilibrium index, because it is not a valid index of sequence A.

Assume the sum of zero elements is equal zero. Write a function int equi(int[] A); that given a sequence, returns its equilibrium index (any) or -1 if no equilibrium indexes exist. Assume that the sequence may be very long.

They gave me 30 minutes to design, code and test my solution. Here it is (tests omitted):

import operator
 
def equi(A):
  if A is None or len(A) == 0:
    return -1
  lsum = index = 0
  rsum = reduce(operator.add, A[1:], 0)
  while True:
    if lsum == rsum:
      return index
    index += 1
    if index == len(A):
      return -1
    else:
      lsum += A[index-1]
      rsum -= A[index]

It scores 100/100 and runs in linear time (that’s tricky because O(n2) algorithms will cause performance tests to fail) :)

22 April, 2011 12:41PM by Nacho Barrientos

March 29, 2011

Local public transportation in my pocket

I’ve lately spent some time developing a webapp for mobile devices to interact with some of the data published by the Gijón City Council. More specifically, data about local public land transportation schedule and live arrivals. The way they are presenting that information for mobile devices at the moment is very very heavy and slow, so I thought it may be useful to do something simpler for personal usage.

Basically, it is a simple web service that intensively caches data (to avoid stressing the data origin with many requests) and a fancy AJAX-powered frontend with some CSS with mobile browsers in mind (works flawlessly on Android’s browser and Mobile Safari). Additionally, if you add it as a bookmark to your iPhone’s home screen it behaves like a native application (you know, splash screen, custom icon, taskbar and so on).

I’m now working on client-side caching using HTML5 caching for offline usage. This way the application will boot way faster. It’s almost done, but it still needs some debugging.

I don’t intend to make it public for now. However, if you find it useful feel free to drop me a line. Beta testers are always welcome (but unfortunately won’t be rewarded).

This is how it looks like at the moment. The source will be released soon.

Update (23:26): Android screenshots provided by Javier Pozueco. Thanks buddy!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

29 March, 2011 12:08PM by Nacho Barrientos

March 24, 2011

Mario Izquierdo

Nuevo modelo Multiseat 8840

Hace unas semanas hemos comprado directamente el fabricante (Asia) un nuevo modelo de ZeroClient o también conocido como MultiPoint/MultiSeat: MWS8840 Afortunadamente el chipset es el mismo que el anterior MWS300 y funciona correctamente. Es más, con gran sorpresa veo que los vídeos de Youtube funcionan a pantalla completa . El dispositivo tiene una entrada USB (que se conecta al servidor de terminales)  una entrada de alimentación (5V - 3A), entrada de micro, salida de audio y 4 puertos frontales USB 2.0 (en dos de ellos se conecta el teclado y el ratón). Además este modelo trae una peana para colgarlo en la parte trasera de un monitor TFT o ponerlo en vertical. Aquí podeis ver unas cuantas fotos. El tamaño de la caja es de aproximadamente 10cm x 10cm          En breve lanzaremos desde Thinetic una completa y económica solución comercial con estos aparatos tan prometedores, y todo ello con Software Libre .

24 March, 2011 10:42PM by mario

Nacho Barrientos Arias

Search term completion using a search tree

Google search box completion

*lol*

Nowadays it’s very usual to find websites offering hints while you’re typing on a search box. Google is a pretty good example of it. But, how could it be implemented?

This feature could be implemented either in the client side or in the server side. If the word list is big (usually it is), it’s recommended to keep the lookup logic in the server side to save some bytes while transferring the page to the client and also to save some computing power using server-side caches (cool when you plan to serve many requests).

Either way, there should be a data structure somewhere containing the word list and an algorithm to do the lookup. The simplest approach may be to use a list to store the words and issue something like this when you want to get a list of hints for a given prefix:

filter(lambda x: x.startsWith(prefix), word_list)

That’s Python’s filter, but it works the same way the well-known Haskell’s first-order function filter does. It builds a new list with the elements of the original list (word_list) that match the predicate (the lambda function).

Although the results can (and should) be cached, the very first lookup (or when the cache expires) would be very inefficient because the entire list must be traversed and that operation will take linear time. Not bad, but when the size of the problem gets bigger (i.e. more and more words in the database) the lookup process may be too slow, especially whether you’re serving several users at the same time. If the list was sorted, the execution time could be improved a little bit by writing a more sophisticated algorithm, but let’s keep it that way for now.

Fortunately, there are better and faster ways to face the problem. If you don’t want to write code (usually the best choice) you may use some high-performance indexing engine such as Apache Lucene. But if you prefer the ‘do-it-yourself’ way (for learning purposes), a search tree (more specifically, a trie or a prefix tree) is a good approach.

I’ve poorly benchmarked both alternatives (the list and the tree) and as expected the tree is pretty quicker generating hints. What I did was to feed both data structures with the content of an American English word list holding ~640k words (debian package wamerican-insane).

So, assuming four is a reasonable minimum prefix length, I measured the time it would take to get a list of words prefixed by hous (yes, just one, remember I said this was a poor benchmark? ;). Unsurprisingly, it took around 230 times longer for the list alternative to generate the hints (438.96 ms vs 1.92 ms). Wow.

My implementation of the tree is as follows. The API is quite straightforward, the “hot” methods are put and get_hints. I’ve stripped off the test suite for space reasons.

Usage example:

>>> tree = HintSearchTree()
>>> tree.put("nacho")
>>> tree.put("nachos")
>>> tree.put("nachete")
>>> tree.get_hints("nach")
['nachete', 'nacho', 'nachos']
>>> tree.get_hints("nacho")
['nacho', 'nachos']
>>> tree.delete("nacho")
>>> tree.get_hints("nacho")
['nachos']
>>> tree.count_words()
2
>>> tree.get_hints("n")
['nachete', 'nachos']
>>> tree.is_indexed("nachete")
True
>>> tree.is_indexed("nach")
False
>>> tree.empty()
False
class HintSearchTreeNode(object):
class HintSearchTreeNode(object):
  def __init__(self, parent=None, terminal=False):
    self._children = {}
    self._terminal = terminal
    self._parent = parent
 
  @property
  def children(self):
    return self._children
 
  @property
  def terminal(self):
    return self._terminal
 
  @terminal.setter
  def terminal(self, value):
    self._terminal = value
 
  @property
  def parent(self):
    return self._parent
 
class HintSearchTree(object):
  def __init__(self):
    self._root = HintSearchTreeNode()
 
  def put(self, word):
    """Adds a word to the tree."""
    # TODO: Sanitize 'word'
    if len(word) &gt; 0:
      self._put(self._root, word)
 
  def count_words(self):
    """Retrieves the number of indexed words in the tree."""
    return self._count_words(self._root)
 
  def is_indexed(self, word):
    """Returns True if 'word' is indexed."""
    node = self._find(self._root, word)
    return node is not None and node.terminal is True
 
  def get_hints(self, prefix):
    """Returns a list of words prefixed by 'prefix'."""
    return self._match_prefix(self._root, prefix)
 
  def delete(self, word):
    """Deletes 'word' (if exists) from the tree."""
    terminal = self._find(self._root, word)
    if terminal is not None:
      terminal.terminal = False
      self._prune(terminal.parent, word)
 
  def empty(self):
    """Returns True if the tree contains no elements."""
    return len(self._root.children) == 0
 
  def _put(self, node, word, depth=0):
    next_node = node.children.get(word[depth])
    if next_node is None:
      next_node = HintSearchTreeNode(parent=node)
      node.children[word[depth]] = next_node
    if len(word)-1 == depth:
      next_node.terminal = True
    else:
      self._put(next_node, word, depth+1)
 
  def _count_words(self, node):
    words = 1 if node.terminal is True else 0
    for k in node.children:
      words += self._count_words(node.children[k])
    return words
 
  def _match_prefix(self, node, prefix):
    terminal = self._find(node, prefix)
    if terminal is not None:
      return self._harvest_node(terminal, prefix)
    else:
      return []
 
  def _harvest_node(self, node, prefix, path=""):
    hints = []
    if node.terminal is True:
      hints.append(prefix + path)
    for k in node.children:
      hints.extend(self._harvest_node(node.children[k], prefix, path+k))
    return hints
 
  def _find(self, node, word, depth=0):
    if depth == len(word):
      return node
    else:
      child = node.children.get(word[depth])
      if child is not None:
        return self._find(child, word, depth+1)
      else:
        return None
 
  def _prune(self, node, word):
    if self._count_words(node.children[word[-1]]) == 0:
      del node.children[word[-1]]
      if len(node.children) == 0 and node.parent is not None \
          and node.terminal is not True:
        self._prune(node.parent, word[:-1])

The code is released in the public domain.

24 March, 2011 11:31AM by Nacho Barrientos

March 20, 2011

hackergotchi for

Ana Beatriz Guerrero Lopez

Small applications missing in KDE 4

I have been working in the last weeks in the removal of the last pieces of KDE 3 from the Debian archive and I have found there are a lot of packages that is sad having to remove.

If you are looking for a good idea/excuse to learn and improve your KDE 4 / C++ /Qt4 skills, have to do a small application for school or you just feel like some useful coding, here is the list:

  • creox – real-time guitar effects
  • kbarcode – barcode and label printing application for KDE
  • kbiff – KDE mail notification utility
  • KKBSwitch – keyboard layout indicator for KDE (see this post also)
  • kmyfirewall – iptables based firewall configuration tool for KDE
  • kpogre – a graphical administrator tool for PostgreSQL
  • kredentials – KDE taskbar applet to update kerberos/AFS credentials
  • ksociograma – technical educational software to make sociograms
  • ktechlab – circuit simulator for microcontrollers and electronics
  • qalculate-kde – Powerful and easy to use desktop calculator – KDE version
  • score-reading-trainer – trainer for reading music notes

Note that I do not list here software whose port in KDE 4 is being developed although it is still not finished and therefore it is not packaged in Debian.

By the way, even if all those packages are being removed from Debian testing and unstable, they will remain in Squeeze, so you can keep using them or install it from there.

20 March, 2011 11:25PM by ana

March 01, 2011

José Luis Redrejo

Debian packages for web2py

Some time ago I discovered the easy of use of Python and I fell in love with it : it’s a very productive language, easy to understand, multiplatform, multipurpose and with a lot of documentation and  free code around to use and learn from.

Later, I discovered Django and felt more or less confortable with it. Then, about a year ago I found web2py and I fell in love again for exactly the same reasons I like Python. web2py is to web frameworks what Python is to languages: easy to read, multipurpose, jQuery integration, with free documentation, coding and checking the results of your code without leaving the web browser, lots of examples and free code to learn… much easier to understand than Django and (from not my only personal point of view) much more productive.

For some time, I’ve been using web2py starting it right from its sources. Now I’ve finished packaging it for Debian, so Debian and any of its derivatives (as Knoppix, Ubuntu, LinEx, etc.) can install it as a package.

I’ve just uploaded the packages and sources to the New Debian queue where they still have to pass the check of the ftpmasters to be (or not) accepted in the Debian repository. In the meantime, the packages are available at:

http://people.debian.org/~jredrejo/web2py/lenny/ for old releases with Python 2.5 as default python version.
http://people.debian.org/~jredrejo/web2py/squeeze/ for new releases with Python 2.6 or 2.7
Two packages are created:
  • python-gluon: with web2py libraries, needed to server web2py applications using Apache or other web werver
  • python-web2py: (depending on python-gluon) : with web2py rocket server and admin, welcome and example applications.
After installed, if a desktop environment (like KDE or Gnome) is used, web2py can be run from the menu Applications->Programming
This will launch a gui to start the server, and the applications will be stored in $HOME/web2py
If web2py is launched from a terminal, the application will be stored in the directory where it’s launched from (whenever write permissions are allowed, if not it will be done again at $HOME/web2py)
A README.Debian is also installed at /usr/share/doc/web2py-gluon/ with more details on running or installing web2py applications in Debian based distributions, including documentation and an example configuration file to use Apache instead of the built-in server.
You can watch and enjoy some of the web2py features at http://www.web2py.com/examples/default/videos . As an example, if you’re a lazy programmer, take a look at http://www.vimeo.com/16048970 to know how to build a web site with authentication, databases, logging, different layouts, etc. in less than 8 minutes ;)
PAA stampSupport the candidature
.
.
Off topic: I urge you all to read http://www.cenatic.es/swlppa/en and support personally or as a collective the Free and Open Source Software Community as a candidate for the Prince of Asturias Awards 2011 in the International Cooperation category
.

.

01 March, 2011 06:12PM by José L. Redrejo Rodríguez

February 24, 2011

Nacho Barrientos Arias

Some Perl to redirect HTTP requests

After almost a year without publishing a single post, it seems this week I’m going to beat all my records.

A week ago, I wanted to prank my brother for a while. Nothing sophisticated… just some Iptables rules, Tinyproxy and HTTP magic. To go ahead with my evil plans, I needed “something” able to redirect a HTTP request. Actually, there are several ways to do that: Apache redirects, Tornado, Netcat* and so on. These alternatives are fast, bulletproof and time-saving, but not fun.

As many of you probably know, I didn’t get a job yet. That necessary means that I’ve got plenty of free time to waste. So… what did I do? I wrote some Perl and today I’m publishing the source code just in case someone finds it useful somehow. Like the previous entry, it’s published in the public domain.

The script just collects connections, issues 301 back (Moved Permanently) and sets Location to the URI specified as a command line argument (option -u). It lacks some security checks (left as an exercise to the reader) but it does what it is supposed to do. You may likely spot some silly bugs as I haven’t spent much time reading it again. Reports are welcome!

For those wondering, the prank was a big success. I’m afraid I can’t spare any detail by now but it turns out my bro is still thinking that his computer has been cracked.

Example invocation:

$ perl redir.pl -p 7070 -v -t 3 -u http://31337.pl
2011/02/24 21:41:54 Listening on port 7070
2011/02/24 21:41:54 Redirecting HTTP requests to: ‘http://31337.pl’
2011/02/24 21:41:54 3 thread(s) working under the hood

And finally the source code:

use warnings;
use threads;
 
use Thread::Queue;
use POSIX;
 
use IO::Socket::INET;
use HTTP::Request;
use HTTP::Status qw(:constants status_message);
 
use Getopt::Long;
use DateTime::Format::HTTP;
use Data::Validate::URI qw(is_http_uri);
use Log::Log4perl qw(:easy);
 
use constant MAX_THREADS => 10;
use constant MAX_LEN_HEADERS_BUFFER => 8*1024;
use constant DEFAULT_REDIRECT_URI => "http://www.example.org";
use constant DEFAULT_PORT => 80;
use constant DEFAULT_POOL_SIZE => 3;
 
my $redir_uri = DEFAULT_REDIRECT_URI;
my $server_port = DEFAULT_PORT;
my $thread_pool_size = DEFAULT_POOL_SIZE;
my $verbose;
 
GetOptions('url=s' => \$redir_uri, 
           'port=i' => \$server_port,
           'threads=i' => \$thread_pool_size,
           'verbose'  => \$verbose) or exit -1;
 
die "Invalid redirect URI (e.g. http://www.example.org)\n" unless is_http_uri($redir_uri);
die "Invalid port (e.g. 8080)\n" unless 0 < $server_port && $server_port < 2**16;
die "Invalid pool size (should be in [1..".MAX_THREADS."])\n" 
            unless 0 < $thread_pool_size && $thread_pool_size <= MAX_THREADS;
 
Log::Log4perl->easy_init( level => $verbose? $DEBUG : $INFO );
 
my $pending = Thread::Queue->new(); 
 
my $lsock = IO::Socket::INET->new( LocalPort => $server_port,
                                   Proto => 'tcp',
                                   Listen => 1,
                                   Reuse => 1 ) or die "Couldn't bind listening socket ($!)\n"; 
 
INFO("Listening on port $server_port\n");
INFO("Redirecting HTTP requests to: '$redir_uri'\n");
 
my @workers = ();
for (1..$thread_pool_size) {
    if ($thread = threads->create("worker")) {
        push(@workers, $thread);
    }
}
 
DEBUG(sprintf("%d thread(s) working under the hood\n", $#workers+1));
 
# Set a tidy shutdown just in case an external agent SIG{INT,TERM}s the process
$SIG{'INT'} = $SIG{'TERM'} = sub {
    # Dirty hack. threads->kill() does not wake up the thread :(
    for (1..@workers) {
        $pending->enqueue(-1);
    }
    for (@workers) {
        DEBUG(sprintf("Worker %d terminated: %d clients served\n", $_->tid, $_->join())); 
    }
    close($lsock); 
    exit 0; 
};
 
while(1) {
    my $csock = $lsock->accept() or next;
    $pending->enqueue(POSIX::dup(fileno $csock));
    DEBUG(sprintf("New client enqueued: %s:%s\n", $csock->peerhost, $csock->peerport));
    close($csock);
}
 
sub worker {
    my $clients_served = 0;
    while(my $fd = $pending->dequeue) { # API promises thread safety :-)
        if ($fd == -1) {
            return $clients_served;
        }
 
        my $sock = IO::Socket::INET->new_from_fd($fd, "r+");
        DEBUG(sprintf("Dequeued client %s:%d by worker %d.\n", $sock->peerhost,
                            $sock->peerport, threads->tid()));
 
        my $buf = "";
        while(<$sock>) {
            # CAUTION: there isn't any self protection against very long lines
            last if /^\r\n$/;
            $buf .= $_;
            goto BYE if length $buf > MAX_LEN_HEADERS_BUFFER;
        }
 
        if (my $request = HTTP::Request->parse($buf)) {
            INFO(sprintf("[%s] %s {%s}\n", $request->method, $request->uri, $sock->peerhost));
        }
 
        printf $sock "HTTP/1.1 %d %s\r\n", 
            HTTP_MOVED_PERMANENTLY, status_message(HTTP_MOVED_PERMANENTLY);
        printf $sock "Date: %s\r\n", DateTime::Format::HTTP->format_datetime;
        print $sock "Location: $redir_uri\r\n";
        print $sock "Server: Simple HTTP Redirection/0.1 ($^O)\r\n";
        print $sock "Connection: close\r\n";
        print $sock "\r\n";
 
BYE:  
        $clients_served++;
        close($sock);
    }
}

(*) just an approach, may drop connections:

while [ 1 ]; 
 do echo -e "HTTP/1.1 301 Moved Permanently\r\nLocation: http://31337.pl\r\n\r\n" | nc -l 7070; 
done

24 February, 2011 09:55PM by Nacho Barrientos

February 23, 2011

Reverse Polish Notation Evaluation in Python

This introduction is followed by some Python code (function evaluate_postfix_expr) to evaluate expressions (only integers, but may be extended with ease) in Reverse Polish Notation (RPN). Some simple tests are also included in the bundle.

I agree it’s a little useless, but I thought it might be useful for someone (CS students maybe?). If you want to examine the stack in each iteration you only have to turn debugging on. That can be accomplished by changing logging.INFO to logging.DEBUG (line 7).

Copy, distribute or do whatever you want with it. It’s released in the public domain.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/usr/bin/env python
 
import logging
import re
import unittest
 
logging.basicConfig(level=logging.INFO)
 
operators_table = {'+': int.__add__, 
             '-': int.__sub__,
             '*': int.__mul__,
             '/': int.__div__,
             '^': int.__pow__}
 
class ExpressionError(Exception):
    def __init__(self, message):
        self._message = "Expression error: %s" % message
    def _get_message(self): 
        return self._message
    message = property(_get_message)
 
class TestEvaluation(unittest.TestCase):
    def test_correct(self):
        self.assertEqual(666, evaluate_postfix_expr("666"))
        self.assertEqual(2+3-6, evaluate_postfix_expr("2 3 + 6 -"))
        self.assertEqual(2*3+4, evaluate_postfix_expr("2 3 * 4 +"))
        self.assertEqual(2*(3+4), evaluate_postfix_expr("2 3 4 + *"))
        self.assertEqual(3**4, evaluate_postfix_expr("3   3  *     3  *      3 *"))
        self.assertEqual((7/2)**4, evaluate_postfix_expr("7 2 / 4 ^"))
        self.assertEqual((2**3)**4, evaluate_postfix_expr("2 3 ^ 4 ^"))
        self.assertEqual(5+((1+2)*4)-3, evaluate_postfix_expr("5 1 2 + 4 * 3 - +"))
 
    def test_malformed(self):
        self.assertRaises(ExpressionError, evaluate_postfix_expr, "+")
        self.assertRaises(ExpressionError, evaluate_postfix_expr, "2 +")
        self.assertRaises(ExpressionError, evaluate_postfix_expr, "+ 2 2")
        self.assertRaises(ExpressionError, evaluate_postfix_expr, "2 2")
        self.assertRaises(ExpressionError, evaluate_postfix_expr, "2 2 + -")
        self.assertRaises(ExpressionError, evaluate_postfix_expr, "a 2 -")
 
def evaluate_postfix_expr(expr):
    atoms = re.split(r"\s+", expr)
    stack = [] 
    for atom in atoms:
        if atom in ["+", "-", "*", "/", "^"]:
            try:
                op2 = stack.pop()
                op1 = stack.pop()
            except IndexError:
                raise ExpressionError("Too few operands (unbalanced)")
            logging.debug("Calculating %d %s %d" % (op1, atom, op2))
            atom = operators_table[atom](op1, op2)
        else:
            try:
                atom = int(atom)
            except ValueError:
                raise ExpressionError("Unable to parse '%s' as integer" % atom)
 
        try:
            stack.append(atom)
        except MemoryError:
            raise ExpressionError("Too long expression")
 
        logging.debug("Pushed element %d. Stack status: %s" % (atom, stack))
 
    if len(stack) == 1:
        return stack.pop()
    else:
        raise ExpressionError("Too many operands (unbalanced)")
 
if __name__ == "__main__":
    unittest.main()

23 February, 2011 12:03AM by Nacho Barrientos

February 19, 2011

Mario Izquierdo

Drivers de TDT (DVB) AverTV TwinStar 07ca:0825 para kernel 2.6.37

Esta es la continuación de otro  artículo de hace más o menos un año , en estos días en Debian unstable ha entrado una nueva versión del kernel (2.6.37) y las anteriores fuentes ya no compilan. Las nuevas instrucciones quedan así (el nuevo parche disponible  aquí ): 1.- Descargar nueva rama v4l: hg clone http://mercurial.intuxication.org/hg/s2-liplianin/ cd s2-liplianin zcat s2-liplianin-af9035-af9033.diff.gz | patch -p1 2.- Añadir al v4l/.config estas líneas: ############################### CONFIG_DVB_AF9033=m CONFIG_DVB_USB_AF9035=m CONFIG_MEDIA_TUNER_TUA9001=m ##############################   3.- Compilar make   4.- Instalar en un temporal make install DESTDIR=`pwd`/tmp 5.- Copiar al directorio de módulos del kernel sudo cp -ra tmp/lib/modules/$(uname -r)/kernel/drivers/media/ \             /lib/modules/$(uname -r)/updates/v4l sudo depmod -a 6.- Reiniciar y disfrutar (del hardware porque de la tele últimamente no mucho)   UPDATE . Para el kernel 2.6.38 nuevo parche:  aquí

19 February, 2011 03:18PM by mario

February 07, 2011

hackergotchi for

Ana Beatriz Guerrero Lopez

post and pre-release fun

The last weeks before a Debian release are usually boring with respect to working on new stuff since unstable is pretty much closed to development. Now that the release is finished, this fun is back \o/

I have been in an ‘upload frenzy’ since yesterday night and I have updated some packages in unstable: KOffice[1] and KOffice-l10n 2.3.1, yakuake, rsibreak and tintin++. Another of my packages, kid3, got magically updated itself in unstable before I had time to look at it, the magic of having active co-maintainers.

[1] Thanks for the gentle push to update this, Pino :)

I also emailed one of my upstream maintainers to ask him about the KDE 4 version of his application and he will likely make a release soon. One of the goals for wheezy is remove completely KDE 3 and Qt 3. If you are maintaining a KDE 3 or Qt 3 based application, we are about to start annoying you about this! See http://wiki.debian.org/kdelibs4c2aRemoval and http://wiki.debian.org/qt3-x11-freeRemoval

The last 2 weeks before the release I had some fun watching how the Squeeze release countdown banner I published at http://news.debian.net spread to a lot of websites, personal blogs, community sites, forums to news portals.
The traffic has been increasing little by little through the 2 weeks the banner has been online and currently is still moderately high, since people keeps retweeting the news item about the Debian release. While writing these lines, the banner has been served 449575 times to a total of 244975 unique IP addresses!

07 February, 2011 09:06PM by ana

February 03, 2011

Mario Izquierdo

Gestión de dispositivos extraíbles en MultiSeat

Hacía tiempo que programar me aburre (según que cosas claro) pero el fin de semana pasado me lo he vuelto a pasar como un niño escribiendo código.   Problema:   En la Consejería de Educación de la Comunidad de Madrid han empezado a usar un nuevo invento llamado Multiseat ( Microsoft lo llama Multipoint ) que consiste en unos pequeños aparatos que de una forma lógica vienen a ser un HUB USB que contiene una tarjeta de vídeo, una tarjeta de sonido, y 4 puertos USB, si conectamos varios (pongamos seis) en un equipo automáticamente multiplicamos los puestos disponibles en ese equipo (por USB conectamos un teclado y un ratón a cada Multiseat) (puedes  ver algún detalle más en la web de Thinetic Systems )   El cómo hicimos andar todo este montaje es otra historia que algún día contaré, pero lo que hoy nos centra es un pequeño problema, y es la gestión de los dispositivos de almacenamiento que se conectan a los puertos USB del Multiseat, para que todos lo entendamos, cuando conectamos una memoria USB se conecta físicamente al servidor (con un HUB USB por el medio) y teníamos que inventar una manera de que sólo pudiera verlo/usarlo el usuario sentado directamente en ese puesto. Ya os adelanto que en Microsoft aún no lo han conseguido (que yo sepa) .   Solución:   En los sistemas basados en Linux durante los últimos años se han venido usando distintas soluciones para el automontaje de discos extraibles (usbmount, HAL, DeviceKit), ahora estamos en la era de  UDisk . Es un software que se conecta al gestor de dispositivos del kernel (udev) mediante unas reglas (/lib/udev/rules.d/80-udisks.rules) y crea un bus de sistema (en dbus) donde expone todo lo que encuentra, así las aplicaciones que quieran gestionar un dispositivo sólo tienen que escuchar esos eventos.   UDisks permite inhibir el montaje (sigue reconociendo lo que enchufamos pero advierte en dbus que está inhibido y no realiza ninguna acción) por lo que no se montan los dispositivos automáticamente, a este inhibidor se le puede pasar un comando que cuando termine deje de inhibir... un ejemplo de uso práctico es el asistente de instalación gráfico que usa Ubuntu (ubiquity) y que inhibe el montaje de dispositivos (por razones obvias) durante la modificación de particiones y la instalación.   Nuestra primera aplicación a desarrollar es un demonio que se conecte al bus del sistema, escuche los dispositivos que se conectan y desconectan, leemos sus propiedades y a partir de ellas adivinamos (por el DEVPATH) en que puesto Multiseat se ha conectado para entonces montarlo con privilegios exclusivos para ese usuario y crearle un icono en el escritorio para que pueda desmontarlo. Este demonio decidí programarlo en python y lo bauticé como  multiseat-udisks.py  se ejecuta cuando (al arranque) encuentra los puestos MultiSeat (subcarpetas en /dev/usbseat)   Ya tenemos solucionado que los dispositivos de almacenamiento se automonten en su sitio y con sus permisos, ahora viene cuando el usuario quiere extraerlo, GNOME crea un icono en el escritorio con nuestro pendrive, realmente no es un archivo y con el inhibidor por el medio no lo va a crear por lo que modifiqué multiseat-udisks.py para que crease un lanzador *.desktop especial con la línea mágica « X-multiseat-desktop=x » siendo x el puesto donde esta montado (subcarpeta de /dev/usbseat ).   Para desmontar tenemos dos problemas, primero el usuario no es root y como el dispositivo no está en fstab no le va a dejar desmontarlo, y segundo ese icono del escritorio nos permite abrir el contenido del dispositivo de memoria pero no extraerlo de manera segura (sync && umount) lo primero que se me ocurrió es hacer una extensión para Nautilus (gestor de archivos de GNOME) para que cuando se haga click derecho sobre un archivo *.desktop busque la línea mágica y, si existe, añada una entrada a ese menú derecho del tipo « Desmontar dispositivo extraíble multiseat », cuando se pulse sobre esa opción se llama al proceso de desmontar. Esta extensión (también escrita en Python) la bauticé como  nautilus-umount-multiseat.py     Para el problema de los privilegios tuve que programar la tercera ficha de este puzle, una pequeña aplicación en C (instalada con bit SUID) y que eleva privilegios a root para llamar al comando de desmontaje  umount.multiseat.c . Muchas aplicaciones de montar y desmontar (instaladas en /sbin) van con el BIT SUID por lo que me parece una manera bastante estandar de hacerlo y más teniendo en cuenta que los usuarios que usan MultiSeat pueden estar en un LDAP.   Cuando la extensión de Nautilus detecta que el icono es de un dispositivo conectado a un Multiseat, llama a esta aplicación que eleva los privilegios a root (mediante setuid(0) ) y llama a multiseat-udisks.py con 2 argumentos, el primero es el dispositivo montado (ejemplo: /dev/sdc1 ) y el segundo que se genera dentro del programa C es el UID (identificador numérico del usuario que quiere desmontarlo). El script multiseat-udisks hace una serie de comprobaciones para que los parámetros sean correctos y que el usuario pueda desmontar ese dispositivo (que el punto de montaje le pertenezca) lo desmonta y limpia tanto la carpeta donde se ha montado como el icono del escritorio.   El sistema lo hemos probado en varias instalaciones y funciona a la perfección, más tarde convertí el código en paquete *.deb y a instalar en los centros...   El motivo por el que me he vuelto a divertir programando es que nadie había hecho algo del estilo y la documentación que podía buscar por internet solo se centraba en el uso de cada herramienta o API por separado por lo que el desarrollo ha sido desde cero hasta algo terminado y funcionando.   Siento el tostón técnico pero a algunos nos gusta contar nuestras frikadas

03 February, 2011 12:56PM by mario

February 01, 2011

hackergotchi for

Ana Beatriz Guerrero Lopez

Debian at the Google Code-in 2010-11

As you might know, Debian was one of the 20 organizations selected to participate in the first Google Code-in.

We got a moderate success since we started preparing the contest very late (I joined as mentor/admin the very first day of the contest!). Because of this, unlike other organizations, we did not manage to engage interested students from the very beginning of the Code-in. Since we did not have too many Debian tasks the first days, we did not attract many students, and thus did not have very many throughout the contest.

Given Debian tasks were mostly about improving and contributing to Debian, it was quite hard having tasks that did not require having a Debian installation and that made it difficult for many students to get involved. Also, until the last two weeks we did not have any translation task that could have attracted earlier students without too much confidence in their technical and English skills.

Nonetheless, Debian got 39 tasks done:

With about 30 students participating and at least one of the students has keep contributing to Debian after the contest!

The contest was sometimes stressful with several students wanting their tasks to be reviewed at the same time, and the date was problematic due to the winter (or summer!) holidays but still I am quite happy with the final result :D

Debian will be also participating again this year in the Google Summer of Code 2011. Join the soc-coordination mailing list and stay tunned if you want to participate as mentor or student.

01 February, 2011 10:55PM by ana

January 21, 2011

Alejandro Ríos P.

Seminario-Taller Desarrollo de Aplicaciones Móviles para equipos Samsung-Android

El pasado mes de diciembre asistí a este evento por invitación de mi amiga Ana Cristina Moya, que está haciendo un excelente trabajo articulando actores nacionales vinculados con el desarrollo de aplicaciones móviles.

El evento, organizado por Samsung y AndroidColombia, tuvo un nivel técnico muy bueno, y sobretodo aportó bastante a los asistentes con las experiencias de desarrollo y promoción de aplicaciones Android compartidas por las empresas Colombia Games, Kubo mobile Applications y MDE Plus.

Se finalizó además con un taller práctico, donde los asistentes pudimos hacer una aplicación Android de ejemplo y probarla sobre equipos reales Samsung, algunos de los cuales incluso aún no habían sido lanzados al mercado.

21 January, 2011 04:25PM by Alejandro Ríos Peña (noreply@blogger.com)

January 15, 2011

hackergotchi for

Miriam Ruiz

“La Ley del Código”, en Mundo Babel de Radio 3 (RNE)

Este sábado he tenido el placer de poder participar en el programa radiofónico Mundo Babel de Juan Pablo Silvestre, en Radio 3 de RNE con dos grandes personas a quienes admiro mucho: Javier de la Cueva (abogado, creador, luchador y gran amigo) y Pedro Martínez García (fiscal del tribunal superior de justicia de Madrid), bajo el título de “la ley del código”, y en el que también ha participado Ana Morente, en el que hemos estado hablando tranquilamente de cosas como WikiLeaks, hacktivismo, la Ley Sinde o los derechos en la red, acompañados de una música muy excelentemente escogida, y que me ha gustado mucho. El audio está ya disponible online, y se puede descargar desde este enlace.

<enclosure length="78135296" type="application/ogg" url="http://traffic.libsyn.com/podcastdreams/11-01-15MBLeyCodigoEdit.ogg">

15 January, 2011 07:03PM by Miry

January 09, 2011

hackergotchi for

Ana Beatriz Guerrero Lopez

KOffice 2.3.0 and future

It took a bit of time due to the holidays, but KOffice 2.3.0 is finally available from Debian experimental (give some hours to your mirror to sync!). If you are unstable user don’t be afraid to fetch it from experimental, it is there only because the Squeeze freeze. Squeeze will ship with KOffice 2.2.1, while not all the applications are so polished as it would be desirable, it clearly offers huge improvements over old KOffice 1.6.3.

I do not know if there will be a KOffice 2.3.1 upload but I know for sure the future is with Calligra :)

09 January, 2011 02:09PM by ana

December 22, 2010

hackergotchi for

Miriam Ruiz

La Cultura y los Derechos Humanos

Llevo hace tiempo queriendo hacer una entrada sobre el enfrentamiento entre dos derechos que a veces se ven como contrapuestos: El derecho a ganarse la vida con la creación artística y cultural, y el derecho de todas las personas a acceder y participar de la cultura. He decidido finalmente hacerlo, tras la victoria política de ayer, con la no aprobación en la comisión de economía del congreso de la Ley Sinde, y a raiz de una de las falacias que publica Eduardo Bautista en un boletín de la SGAE: “desde que en los rescoldos de la Revolución Francesa el insigne Beaumarchais consiguiera incluir entre los Derechos del Hombre el solemne reconocimiento de los Derechos de Autor, o lo que es lo mismo, el respeto a que solo el autor pueda decidir el futuro y destino de sus obras y de los rendimientos económicos que estas generen.”
 
Esta relación lógica es, además de falsa, absurda.
 
El Artículo 27 de la Declaración Universal de los Derechos Humanos, dice dos cosas:
  • Toda persona tiene derecho a tomar parte libremente en la vida cultural de la comunidad, a gozar de las artes y a participar en el progreso científico y en los beneficios que de él resulten.
  • Toda persona tiene derecho a la protección de los intereses morales y materiales que le correspondan por razón de las producciones científicas, literarias o artísticas de que sea autora.
Esto quiere decir que, evidentemente, cualquier persona tiene derecho a obtener beneficios de las creaciones científicas, literarias y artísticas que realice, o en las que contribuya, pero no a costa de limitar el acceso de otras personas a las mismas. Ninguno de los dos derechos es superior al otro, y no se dice en ninguna parte que el modelo económico que sustente esto deba de ser el de la restricción del acceso de las personas a estos contenidos. Más bien al revés.
 
Evidentemente el definir lo que es cultura, entretenimiento y arte no es algo obvio, pero tampoco se puede estar jugando a un doble juego. Si la ciudadanía está financiando el desarrollo de diversas producciones, como por ejemplo las cinematográficas, por considerarlas cultura, lo que nos hace coproductores de las mismas a todas las personas que pagamos impuestos, lo que no tiene ningún sentido es que esta consideración de dercho público no se mantenga para su uso y compartición. En última instancia, en mi opinión, habría que reelaborar la regulación de la cultura en la línea que realmente marcan los Derechos Humanos, y no intentar forzar una solución totalitarista para intentar hacer andar a un caballo muerto.

22 December, 2010 07:03PM by Miry

December 18, 2010

Alejandro Ríos P.

Re-estrenando Presario F700

Gracias a este video, hoy seguí el ejemplo de @jotamacz y me puse a desarmar mi HP/Compaq Presario F700 para limpiarlo y ver si podía quitarle un terrible y constante ruido como de motocicleta que tenía cada vez que lo prendía:

<iframe frameborder="0" height="344" src="http://www.youtube.com/embed/5DO6j-s9FWY?fs=1" width="425"></iframe>

Efectívamente lo desarmé, y el ventilador se encontraba completamente chamuscado. Afortunadamente tenía a la mano otro equipo de similares características que ya está dañado y del cuál he ido tomando repuestos como la pantalla de cristal líquido y la unidad de cd-rom.

Así es como lucía el ventilador/disipador quemado y el repuesto:



Luego de cambiarlo y reiniciar, tenía un computador muy limpio y silencioso de nuevo :)

18 December, 2010 09:15PM by Alejandro Ríos Peña (noreply@blogger.com)

November 08, 2010

José Luis Redrejo

Concurso de Google para estudiantes

Acaba de publicarse la noticia de que Debian ha sido aceptada para participar en el concurso Google Code-in

Es un concurso pensado para pre-universitarios, es decir para estudiantes de ciclos formativos, secundaria y bachillerato que tengan entre 13 y 18 años.

Las instrucciones de participación a través de Debian están descritas en http://wiki.debian.org/GoogleCodeIn2010

En resumen se trata de realizar colaboraciones relacionadas con Debian y el software libre,  mediante programación, documentación, traducciones, gestión de calidad, seguridad, etc.

Si algún profesor (con sus alumnos) o estudiante extremeño se anima a participar,  que no dude en ponerse en contacto conmigo a través de este blog si no tiene un desarrollador Debian de mentor.

El 22 de Noviembre se abre el plazo para concursar y termina el 10 de Enero.

¡¡Ánimo mis muchachos !!

08 November, 2010 06:16PM by José L. Redrejo Rodríguez

Mario Izquierdo

Flasheando Nexus One con CyanogenMod 6.1.0-rc1

Seguir los pasos escrupulosamente, no me responsabilizo de posibles daños en tu teléfono. Este proceso es para teléfonos nuevos, si has flasheado alguna ROM antes quizás te sobre algún paso.   Descargar herramientas necesarias Fastboot . Android SDK  (necesitamos el adb) ROM y Google APPS  (ACTUALMENTE update-cm-6.1.0-RC1-N1-signed.zip y gapps-hdpi-20101025-signed.zip) Radio en versión zip FRF50-radio-4_06_00_12_7.zip Recovery 1.8.0.1 recovery-RA-nexus-v1.8.0.1-aw.img   Descomprimimos el zip del fastboot y el SDK (copiar el binario adb de la carpeta tools) y arrancamos el teléfono en modo fastboot (power+trackball) Desde consola ejecutamos sudo ./fastboot devices (deberá salir un número de serie HTXXXXXXXX y luego la palabra fastboot) Desbloqueamos el terminal (con esto se pierde la garantía) sudo ./fastboot oem unlock En el teléfono aparece (muy bien explicado lo que estamos haciendo) pulsar Vol Up y después Power para desbloquear. Ahora volvemos a arrancar en modo fastboot (Power + Trackball) para instalar el recovery sudo ./fastboot flash recovery recovery-RA-nexus-v1.8.0.1-aw.img Dejamos que reinicie y volvemos a entrar a fastboot para pasar al BOOTLOADER->RECOVERY (Vol Down y Power) (Recovery se verá en verde) Ahora deberíamos ver algo parecido a GRUB con varios menus, tenemos que copiar en la SDCARD la nueva radio sudo ./adb devices (se tiene que ver nuestro teléfono) sudo ./adb push FRF50-radio-4_06_00_12_7.zip /sdcard/ sudo ./adb shell ls /sdcard/*zip (tenemos que ver el archivo que acabamos de copiar) Desde el teléfono con el trackball bajamos hasta la opción "Flash zip from sdcard", buscamos el zip del radio y pulsamos el trackball para actualizar el radio, cuando termine reiniciamos y volvemos al recovery siguiendo los mismos pasos del punto 6. Copiamos la ROM de Cyanogen y las Google APPS. sudo ./adb devices (deberíamos ver el teléfono) sudo ./adb push update-cm-6.1.0-RC1-N1-signed.zip /sdcard/ sudo ./adb push gapps-hdpi-20101025-signed.zip /sdcard/ sudo ./adb shell ls /sdcard/*zip (deben verse estos 2 archivos) Desde el teléfono vamos al menú "Flash zip from sdcard" e instalamos PRIMERO el zip update-cm-6.1.0-RC1-N1-signed.zip, cuando termine y sin reiniciar el otro gapps-hdpi-20101025-signed.zip. Antes de reiniciar hacemos wipe (volver a datos de fábrica) desde el menú del teléfono, Wipe -> Wipe data/factory reset, wipe cache, wipe dalvik-cache y reiniciamos. El primer arranque es un poco más largo de lo normal, podemos ver como se van configurando por primera vez las aplicaciones con este comando: sudo ./adb logcat

08 November, 2010 01:31PM by mario

October 03, 2010

hackergotchi for

Ana Beatriz Guerrero Lopez

Videos de la dudesconf 2010

Los videos de la dudesconf, (la mini-debconf española) están ya disponibles en http://dudesconf.org/2010/programa.html. Una vez más, me gustaría aprovechar estas líneas para darles las gracias a todo el mundo que trabajo para hacer la tercera edición de dudesconf posible.

Poco a poco, empieza a haber mucho material en español sobre Debian, como echaba en falta tener un sitio desde donde enlazarlo todo, he creado una página en el wiki de debian: http://wiki.debian.org/VideoTalks/Spanish. Si sabes de algún video, no dudes en añadirlo :)

Actualización: Hay problemas con los enlaces de los videos de las dudesconf, espero que en unos días estará arreglado.

03 October, 2010 03:18PM by ana

October 01, 2010

hackergotchi for

René Mayorga

Squeeze will have Boinc 6.10.58

Thanks to the efforts made by Steffen, and recently the great work from Daniel(Boinc’s Ubuntu maintainer, and now member of pkg-boinc team) Squeeze will have boinc 6.10.58 \o/.

If you are curious you can see all changes since 6.2.14(Current version on lenny) http://packages.debian.org/changelogs/pool/main/b/boinc/current/changelog

The main feature for this release is that now nvidia and ATI users can use their GPU with boinc(they need to download the non-free libs and apply some workarounds).

And if you read trough here, and you are a boinc user and want to help us, please send an email to pkg-boinc-devel@lists.alioth.debian.org, we need freshblood there :)

01 October, 2010 05:03PM by churro

September 23, 2010

27 years

Yes, 27 years(earth year) spinning around the sun(our sun).

Almost 11 years knowing about free software, and 10 years using Debian, and almost 4 years trying to work on Debian.

At least for me is a good time to say cheers!, holding a beer and keep trying to still be around for at least 27 years more :)

23 September, 2010 05:59AM by churro

August 02, 2010

José Luis Redrejo

Algunos ven las cosas claras con los libros y los portátiles

Me ha encantado la lectura de una entrevista con Juan González de la Cámara (Director  General   de GRAMMATA)

Y no sólo porque el tema de los libros electrónicos me encanta y soy un afortunado poseedor y “disfrutador” de uno de ellos.

En la entrevista hablan de los posibles modelos futuros, de la increible ceguera de las editoriales españolas (a las que les recomiendo sinceramente que se lean el libro de Enrique Dans, “Algo va a cambiar”, por su propio bien).

Sin embargo, lo mejor de la entrevista es la parte final dedicada al “mundillo” educativo. Voy a transcribir aquí directamente algunas líneas que merecen enmarcarlas. Por dos razones: porque expresan con toda rotundidad la pura verdad de lo que ocurre con los ordenadores en la administración pública, y porque además de criticar lo que se hace mal, propone una solución que, a mi entender, va en el camino correcto y al que, por supuesto, ninguna consejería de educación se va a apuntar. No vaya a ser que se le quejen las Santillana, Anaya y demás editoriales de turno, que parece que son las que mandan en la educación en nuestra querida España.

“Parece que la administración está más por regalar portátiles que acaban usándose para que los hermanos mayores liguen vía Facebook; o por repartir libros en papel que deben devolverse virgenes (sin subrayar) ya que son un prestamo”

“Para ello, ha decidido la generación de contenidos propios, que sean 100% conformes con los currículos aprobados oficialmente. Basandose en contenidos libres, un equipo de coordoinación pedagogica integrará la futura “Biblioteca Escolar Libre GRAMMATA”

Muchísimas gracias a los editores del blog http://mipapyreebookreader.blogspot.com/ por su entrevista. Ya tienen un seguidor más de sus rss….

02 August, 2010 08:58AM by José L. Redrejo Rodríguez

July 28, 2010

hackergotchi for Mauro Lizaur

Mauro Lizaur

Que hacer cuando estamos aburridos?

Un juego!
O casi.
Por lo general uno suele disfrutar de juegos del estilo GTA (S:A, para ser mas especifico) y sueña con hacer un juego la mitad de bueno que ese, donde perderia horas y horas encontrando el algoritmo perfecto y posteriormente horas y horas jugandolo. Pero al mismo tiempo al estar en el trabajo (cof cof) o aburrido en casa, tambien solemos jugar a esos simples juegos en Flash donde solamente hay que hacer clicks sin pensar demasiado, entonces me dije: Y por que no hago uno de estos pseudo-juegos-tontos?. Y asi fue como nacio next.
Un pseudo-juego-tonto donde simplemente tenemos que encontrar la palabra next (literalmente) y clickearla para que vuelva a aparecer en otra posicion y goto buscar_palabra_y_clickear hasta que se acabe el tiempo. Bien simple.
Con respecto a la estetica, le agregue la fuente p0t-noodles, un poco de javascript (con jQuery) y listo. Eso fue todo el trabajo.
O casi (parte 2). Si prestan atencion a los detalles (que no voy a nombrar para no perder la magia (?)), se encontraran con algunas sorpresas y algunos cheats que habilite a proposito. Como decia Obi Wan: Use the source! ;-)
Ahora si, basta de palabrerios y los dejo con el juego.

28 July, 2010 04:59AM

July 13, 2010

hackergotchi for

Luciano Bello

/home/duijvestijn

Tengo un nuevo huésped en mi departamento. Denle una cálida bienvenida al espíritu de Adrianus Johannes Wilhelmus Duijvestijn.

Muchísimas gracias a Bartu y a Rezlaj, quienes llevaron a cabo la sesión de espiritismo necesaria para hacer esto posible.

Todas las fotos están disponibles aquí. Si no tienes la menor idea de a qué se refiere esto, échale un ojo a la Wikipedia (solo en inglés) o a mi entrada anterior.

(this post is available in English too)

13 July, 2010 05:17PM by luciano

July 02, 2010

Carlos Galisteo

Yakuake + mouse

Hay pequeñas customizaciones que, aun siendo de lo más simple, te alegran un poco la vida.

Desde hace un tiempo vengo usando yakuake casi en exclusiva como emulador de terminal, y de las pocas pegas que tenía era que a veces es un poco molesto soltar el ratón para dar a F12 solo para ver si, por ejemplo, ha terminado algo que has dejado ejecutando.

En mi caso lo he solucionado añadiendo a ~/.xbindkeysrc:

"qdbus org.kde.yakuake /yakuake/window org.kde.yakuake.toggleWindowState"
b:9

Con eso (y añadiendo xbindkeys a ~/.bashrc o similar) puedo ocultar/mostrar yakuake con el botón lateral del mouse, que es bastante cómodo.

02 July, 2010 09:40AM by admin

June 29, 2010

Convocatoria reunión ADE

El próximo día 23 de julio a las 17:30, tendrá lugar una reunión de la
Asociación Debian España en las instalaciones de la Escuela Técnica Superior de
Ingenieros de Telecomunicación
de la Universidad Politécnica de Madrid.

El orden del día será el siguiente:
- Informe de estado de la Asociación (cuentas, infraestructuras y recursos)
- Renovación de estatutos (posibilidad de poner cuota de socio)
- Renovación de la Junta Directiva
- Preparación de actividades 2010/2011 (recepción de propuestas de socios)
- Ruegos y preguntas

Una hora antes de la misma, se abrirá la posibilidad de inscribirse en la
Asociación, permitiendo así la participación en la reunión de aquellos que no
fuesen socios hasta la fecha.

Esperamos veros a todos allí y os rogamos que le deis la mayor difusión a esta
convocatoria.

29 June, 2010 10:15AM by admin

June 22, 2010

Oauthcalypse

Al final el rollazo este del mundial va a tener algo bueno. Twitter ha pospuesto el “OAuthcalypse” un mes y medio.

Esto es una buena noticia para algunos de los clientes de Twitter que hay en Debian actualmente, que todavía no tenían implementado este protocolo por una serie de razones. En algunos casos los upstream directamente no se habían dado por enterados (y han sido convenientemente avisados), aunque en los casos en los que el upstream ha implementado la feature, los paquetes no están aún subidos, por que (y ahora hablo de qwit) usan qoauth, que a pesar de llevar mucho tiempo en ITP todavía no está empaquetado.

Después de algunas discusiones sobre temas de licencias (enlaza con openssl), el ITP ha sido convenientemente «hijackeado» por uno de los mantenedores de choqok y es de suponer que en un plazo razonable al menos qwit y choqok tengan implementado el soporte de oauth (no puedo hablar por otros clientes), aunque todavía no está del todo claro cómo se van a gestionar los tokens.

¿A donde quiero llegar con todo esto? Si usas algún cliente de Twitter en Debian (o en cualquier otra distribución), deberías interesarte por si está preparado para el “apagón” y en caso contrario reportar el bug. De lo contrario a partir de agosto no podrás seguir usándolo.

22 June, 2010 07:09PM by admin

June 21, 2010

Volviendo a la vida

Después de una serie de dramáticas coincidencias con el anterior blog, el disco duro del servidor donde se alojaba y los discos de backup…vuelvo a levantarlo, con algunos cambios.

21 June, 2010 08:41PM by admin

May 07, 2010

hackergotchi for Mauro Lizaur

Mauro Lizaur

Canvas -- so much win.

Ultimamente vengo investigando/jugando con canvas y todas las cosas bonitas que podemos hacer.
Ayer como estaba un poco aburrido, me puse a hacer a la famosa 'awesome face'.
Awesome Face

Haciendo click en la imagen (un screenshot del canvas) van a poder verlo en accion.

07 May, 2010 04:09PM

April 16, 2010

hackergotchi for

Miriam Ruiz

¿Qué son Linked Open Data y cómo se usan?

Entre 1989 y 1990, Tim Berners-Lee realizó una propuesta para la gestión de información de forma distribuida en base a hiperenlaces, que luego se convertiría en un estándar de presentación y enlaces entre documentos, perdiendo parte de la esencia de la propuesta inicial que proponía enlazar información. En 2001 se realiza una revisión de la propia idea base de la Web, y surge el concepto de Web Semántica que, partiendo de un catálogo de tecnologías base, como son las especificaciones de XML (“Extensible Markup Language” o lenguaje de marcas extensible), las URIs (acrónimo de “Uniform Resource Identifier”, identificador uniforme de recurso), RDF (“Resource Description Framework” o marco de descripción de recursos), RDFS o RDF Schema (extensión semántica de RDF), el lenguaje de consulta OWL (“Ontology Web Language”), el lenguaje de consulta SPARQL (arrónimo recursivo de “SPARQL Protocol and RDF Query Language”), etc.

Dentro de este paradigma de Web Semántica, surge el concepto de Linked Data (o datos enlazados), y cuya propuesta consiste fundamentalmente en ampliar la Web con una base de datos común mediante la publicación de bases de datos distribuidas y enlazadas entre ellas. En marzo de 2009 la nube de datos semánticos enlazados era ya bastante importante, y ha continuado creciendo de una forma importante desde entonces.

Por otra parte surge el concepto de Open Data, una filosofía y práctica que persigue que determinados datos estén disponibles de forma libre a todo el mundo, sin restricciones de copyright, patentes  u otros mecanismos de control. Ambos conceptos se unen en el término Linked Open Data, o datos abiertos enlazados.

El último concepto que tengo que introducir es el de la reutilización de la información del sector público (RISP). Ésta consiste en el uso de documentos que obran en poder de organismos del sector público por parte de personas físicas o jurídicas, con fines tanto comerciales como no comerciales. El sector público -y cito literalmente las palabras de la Guía Aporta- produce una gran variedad de información relativa a diferentes materias, como por ejemplo información social, económica, geográfica, meteorológica o turística y sobre empresas, patentes y educación, que es potencialmente reutilizable por los ciudadanos y por la industria de contenidos digitales.

Hay diversas administraciones que han empezado a publicar datos abiertos enlazados, tanto a nivel nacional como internacional. Entre éstos últimos se encuentra el Gobierno del Principado de Asturias, que ha liberado ya algunos datasets que se espera que vaya ampliando progresivamente.

La idea es que vayan surgiendo espontáneamente nuevos usos para esos datos, que serían inimaginables si se hubieran mantenido cautivos en las distintas bases de datos internas de las organizaciones que los gestionan. El problema es que no todo el mundo sabe muy bien cómo explotar estas fuentes de datos de una forma sencilla. Actualmente, de todas formas, existen numerosas bibliotecas en diferentes lenguajes que hacen que esta tarea muy sencilla de realizar. Por ejemplo, para el lenguaje PHP disponemos de ARC2 (“Easy RDF and SPARQL for LAMP systems”).

Con el objeto de mostrar lo sencillo que puede ser el acceso a estas nuevas fuentes de datos, en concreto a algunos de los datasets publicados por el Gobierno del Principado de Asturias (los relativos a la oferta formativa del Servicio Público de Empleo del Principado de Asturias), desde CTIC Centro Tecnológico hemos querido publicar un ejemplo, muy muy sencillo, de cómo se podrían consultar a través de un pequeño script realizado en PHP y que podría ser desplegado sin problemas en cualquier sistema LAMP. El ejemplo se puede descargar aquí.

Termino enlazando a la presentación de Sergio Fernández (aka. Wikier) en el Día W3C realizado en el Tecnimap 2010, que creo que merece la pena que la leáis si os interesa el tema.

16 April, 2010 09:25AM by Miry

April 06, 2010

hackergotchi for Mauro Lizaur

Mauro Lizaur

To Flash or not to Flash

Mientras (supuestamente) todos en internet, sobretodo los usuarios de GNU/Linux, nos quejamos de lo mal que anda Adobe Flash, de lo molesto que es que todo ande lento con Flash y demas etceteras; una de las grandes contras que le encuentran al iPad es que no tiene soporte para Flash.
Pero pensemos por un momento justamente en eso, si la idea es deprecar al Flash por HTML5, no es precisamente lo que estamos necesitando? es decir, alguien que impulse a gran escala la falta de soporte de esta tecnologia mal desarrollada (al menos, para nosotros, los usuarios de GNU/Linux)?
Recientemente empleados de Google lograron portar al Quake 2 al navegador utilizando solamente las herramientas que disponibles en HTML5, por lo que si se puede hacer funcionar semejante juego, reproducir unos videos no debe ser mayor ciencia, o no? Y justamente, uno de los navegadores donde funciona este port del Quake 2 es el Safari (el navegador que traen los iPad) o casi cualquier navegador que utilice a los ultimos builds de WebKit (el motor Open Source).

Al mismo tiempo, no es que me agraden los iPad en lo mas minimo, pero desde mi punto de vista es una movida interesante pensando en el futuro de la web, de la que todos nos llenamos la boca :-)

06 April, 2010 06:23AM

March 23, 2010

hackergotchi for

William Vera

Gnome 3

Estoy probando Gnome 3, mejor dicho Gnome Shell y la verdad estoy re-enamorado de Gnome.
Nada de lo que hayan escrito antes de compara con la experiencia de usarlo, es ágil, es práctico, es rápido … MUY rápido, es hermoso, es simple, es extraordinario, el manejo minimalista de la interfaz gráfica y la optimización de recursos es impresionante.
En fin, no voy a ahondar en detalles técnicos ya que se han escrito demasiados reviews, así que vamos a lo que nos interesa: La instalación
Usando Debian SID:

gnosys:~# apt-get install gnome3-session

Reiniciamos Gnome y en la entrada GDM, cambiamos la sesión por GNOME 3

Bienvenidos al futuro

P.D. Para los observadores, si notan entre los screenshots que hay en la red y los míos la diferencia es que no hay “Elementos Recientes” en lo particular a mí no me sirve para nada así que lo quité de una manera muy salvaje y sucia, para quién le sirva:

Desactivar “Documentos Recientes” del menú Gnome (wild and dirty way)

billy@gnosys:~$ cd ~
billy@gnosys:~$ rm -rf .recently-used.xbel
billy@gnosys:~$ mkdir .recently-used.xbel

Y adiós fisgones

Ahora sí a dormir porque ha sido un día fatal …

Happy hacking!

<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>

23 March, 2010 04:09AM by Billy

December 26, 2009

Debian en una laptop HP 550

HP550

HP550

Imagen utilizada:
http://cdimage.debian.org/cdimage/daily-builds/daily/arch-latest/i386/iso-cd/
netinstall, claro.

Upgrade a SID:
Mi sources.list
gnosys:~# cat /etc/apt/sources.list |grep -v ^#
deb http://ftp.debian.org/ sid main non-free contrib
deb http://ftp.debian.org/debian unstable main contrib
deb-src http://ftp.debian.org/ sid main non-free contrib
deb http://ftp.br.debian.org/debian/ unstable main contrib non-free
deb http://www.debian-multimedia.org sid main
deb-src http://www.debian-multimedia.org sid main
deb http://www.rarewares.org/debian/packages/unstable/ ./
gnosys:~#

gnosys:~# apt-get update && apt-get dist-upgrade -y

lspci:
00:00.0 Host bridge: Intel Corporation Mobile GME965/GLE960 Memory Controller Hub (rev 0c)
00:02.0 VGA compatible controller: Intel Corporation Mobile GME965/GLE960 Integrated Graphics Controller (rev 0c)
00:02.1 Display controller: Intel Corporation Mobile GME965/GLE960 Integrated Graphics Controller (rev 0c)
00:19.0 Ethernet controller: Intel Corporation 82562GT 10/100 Network Connection (rev 03)
00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 (rev 03)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 03)
00:1b.0 Audio device: Intel Corporation 82801H (ICH8 Family) HD Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 2 (rev 03)
00:1c.4 PCI bridge: Intel Corporation 82801H (ICH8 Family) PCI Express Port 5 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev f3)
00:1f.0 ISA bridge: Intel Corporation 82801HEM (ICH8M) LPC Interface Controller (rev 03)
00:1f.1 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller (rev 03)
10:00.0 Network controller: Intel Corporation PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (rev 61)

El sistema:
Sistema Operativo: Windows Vista Basic
Procesador: Intel Core 2 Duo T5270 (1.4 GHz, FSB 800, caché L2 de 2 MB)
Memoria: 1024 MB DDR II 667 MHz Ampliable hasta 4096 MB como máximo
Pantalla: TFT/WXGA de 15.4 pulgadas con tecnología Brightview y resolución de 1280x800
Tarjeta de gráficos: Intel Graphics Media Accelerator X3100, hasta 384 MB de memoria del sistema compartida
Disco Duro: 160 GB (5400 rpm)
Disco Óptico: Super Multi DVD±RW Drive con soporte para doble capa y lightScribe
Audio: Audio de Alta Definición, parlantes estéreo, audífonos estéreo/línea de salida, entrada estéreo de micrófono
Interface:
3 USB 2.0
VGA
entrada estéreo de micrófono
salida estéreo de audio
RJ-11/modem
RJ-45/ethernet
Conectividad:
Intel Fast Ethernet (NIC 10/100)
Módem: de 56K
Ranuras de expansión:
Una ranura para ExpressCard/54
una ranura para Secure Digital (SD)
Conexión inalámbrica:
Conexión inalámbricaIntegrada 802.11a/b/g WLAN

Video:
gnosys:~# apt-get install xserver-xorg-video-intel
Aceleración gráfica
gnosys:~# apt-get install libgl1-mesa-dri libgl1-mesa-glx mesa-utils
xorg.conf:
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "es"
EndSection
Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "HorizEdgeScroll" "true"
Option "VertEdgeScroll" "true"
EndSection
Section "ServerLayout"
Identifier "Default Server Layout"
Screen "Default Screen"
InputDevice "Generic Keyboard" "Core Keyboard"
InputDevice "Synaptics Touchpad" "Core Pointer"
EndSection
Section "Device"
Identifier "Configured Video Device"
Option "NoDDC"
Driver "intel"
Option "AccelMethod" "exa"
Option "MigrationHeuristic" "greedy"
EndSection
Section "Monitor"
Identifier "Configured Monitor"
DisplaySize 195 113
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
EndSection
Section "Extensions"
Option "RENDER" "Enable"
EndSection
Section "DRI"
Mode 0666
EndSection

Comprobamos la aceleración gráfica (necesitas reiniciar el servidor X antes):
gnosys:~# glxinfo | grep direct
direct rendering: Yes
gnosys:~#

Voilá

Memoria:
Upgrade a 3GB sin problenas, el sistema lo reconoce:
gnosys:~# free -m
total used free shared buffers cached
Mem: 3034 2591 442 0 37 2105
-/+ buffers/cache: 448 2585
Swap: 3812 61 3750
gnosys:~#

Sonido:
Necesitas instalar ALSA:
gnosys:~# apt-get install alsa-base alsa-tools alsa-utils

Wireless:
Funciona con: firmware-iwlwifi
gnosys:~# apt-get install firmware-iwlwifi

No estoy seguro, no he investigado ni he probado, pero al parecer el driver viene con inyección nativa:

monitor
inyeccion

Todo lo anterior probado y configurado con el Kernel: 2.6.32-trunk-686

w00t!

<script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>

26 December, 2009 11:04PM by Billy

December 05, 2009

hackergotchi for

Miriam Ruiz

La hipocresía de algunos/as artistas ( #manifiesto )

No hay mucho nuevo ya que escribir sobre el escándalo organizado por las pretensiones del Gobierno de imponernos una censura a la publicación en Internet sin el respaldo previo de un juez o jueza y la respuesta multitudinaria en forma de apoyo al manifiesto “En defensa de los derechos fundamentales en Internet”. Empiezan a aclararse ya algunas cosas, como la posibilidad de que todo esto esté relacionado de alguna forma con el poco transparente acuerdo ACTA (“Anti-Counterfeiting Trade Agreement”) que está intentando imponer USA a Europa, y que no quieren que sea sometido al escrutinio público europeo, porque sería rechazado por la ciudadanía democrática europea, y por los ISPs. O cómo, aunque la ministra de cultura esté teniendo ahora que soportar en solitario el chaparrón (ella se lo ha buscado), las órdenes, sin embargo, parecen provenir de más arriba, directamente desde el gabinete de Zapatero, de mano de José Enrique Serrano*. A nuestros políticos y políticas parece, de alguna forma, atraerles cada vez más la idea del despotismo ilustrado (“todo para el pueblo, pero sin el pueblo”), que la de la democracia (forma de gobierno en la que las decisiones colectivas son adoptadas por el pueblo mediante mecanismos de participación directa o indirecta que le confieren legitimidad a los y las representantes).

De lo que sí me gustaría hablar es de lo decepcionante que es la actitud de los “artistas” que están demandando esa reimposición de la censura y el desmantelamiento de las garantías que supone que los derechos garantizados por la Constitución solo puedan ser cercenados por un juez. Aún no he conseguido encontrar la lista completa de todas las personas firmantes del manifiesto que presentaron al ministro Sebastian solicitando estas medidas, pero sí que hay muchos nombres que han salido repetidamente en los medios. Es muy triste encontrar en esa lista a muchas personas que se han hecho famosas por defender las libertades civiles, y que ahora se quitan la careta, mostrando al mundo de forma abierta una notable hipocresía. ¿Quienes han firmado lo habrán hecho realmente con plena conciencia, o habrán sido las discográficas y los lobbies quienes les han forzado a hacerlo?
En la listas de nombres que están saliendo aparecen personas que, a estas alturas, no nos ofrecían ya ninguna confianza, porque ya se habían quitado la careta de alguna forma hace tiempo, pero aparecen otras que están resultando sorprendentes para mucha gente. La lista incluye nombres como Ana Belén y Victor Manuel, Luis Eduardo Aute, Miguel Bosé, Ana Torroja, Raphael, El Canto del Loco, La Oreja de Van Gogh o La Quinta Estación, pero también otros como Andrés Calamaro, Joaquín Sabina, Pedro Guerra, Chambao, Dover, Pereza, Estopa, Sidonie, Mägo de Oz, Celtas Cortos, Benito Kamelas, Poncho K, etc.
Lo que más duele es ver en ella a muchos y muchas artistas que han hecho fama vendiéndose como defensores de los derechos y las libertades de las personas liberales, como pseudo-hippies, idealistas… resulta muy decepcionante darse cuenta de que todo eso era mera fachada. Luego se extrañarán de que la gente sea una descreída, que estemos enmedio de una enorme crisis de valores y que nos parezcan todos iguales.
Como nota positiva, hay grupos que no he visto en ninguna de las listas, como Amaral, Alaska, Hombres G, …

De lo que sí me gustaría hablar es de lo decepcionante que es la actitud de las y los “artistas” que están demandando esa reimposición de la censura y el desmantelamiento de las garantías que supone que los derechos garantizados por la Constitución solo puedan ser cercenados por un juez. Aún no he conseguido encontrar la lista completa de todas las personas firmantes del ya famoso manifiesto del 20 de octubre, que presentaron al ministro Sebastian solicitando estas medidas, pero sí que hay muchos nombres que han salido repetidamente en los medios. Es muy triste encontrar en esa lista a muchas personas que se han hecho famosas por defender las libertades civiles, y que ahora se quitan la careta, mostrando al mundo de forma abierta una notable hipocresía. ¿Quienes han firmado lo habrán hecho realmente con plena conciencia, o habrán sido las discográficas y los lobbies quienes les han forzado a hacerlo?

En las listas de nombres que están saliendo aparecen personas que, a estas alturas, no nos ofrecían ya ninguna confianza, porque ya se habían quitado la careta de alguna forma hace tiempo, pero aparecen otras que están resultando sorprendentes para mucha gente. La lista incluye nombres como Ana Belén y Victor Manuel, Luis Eduardo Aute, Miguel Bosé, Ana Torroja, Raphael, El Canto del Loco, La Oreja de Van Gogh, Loquillo o La Quinta Estación, pero también otros como Andrés Calamaro, Joaquín Sabina, Pedro Guerra, Chambao, Dover, Pereza, Estopa, Marlango, Sidonie, Mägo de Oz, Celtas Cortos, Benito Kamelas, Poncho K, etc.

Lo que más duele es ver en ella a muchos y muchas artistas que han hecho fama vendiéndose como defensores de los derechos y las libertades de las personas liberales, como pseudo-hippies, idealistas… resulta muy decepcionante darse cuenta de que todo eso era mera fachada. Luego se extrañarán de que la gente sea una descreída, que estemos enmedio de una enorme crisis de valores y que nos parezcan todos iguales.

Como nota positiva, hay grupos que no he visto en ninguna de las listas, como Amaral, Alaska, Hombres G, … . Por otra parte, hay artistas como Carmen París o Conchita que se han distanciado del discurso “antipiratería” de las discográficas.

* Nota: Ya que la página de la Wikipedia sobre este hombre ha sido eliminada: José Enrique Serrano Martínez (Madrid, 1949): Nieto del abogado y político Francisco Martínez García, es un político español, abogado y profesor de la Facultad de Derecho en la Universidad Complutense de Madrid (Universidad de la que ha sido Secretario General). En 1987 fue Director general de Personal del Ministerio de Defensa, cuando su titular era Narcís Serra. En 1991, al ser nombrado vicepresidente del Gobierno Serra, pasa al entorno de la Presidencia. Fue subdirector del Gabinete de Felipe González en 1993 y Director de Gabinete en 1995. Entre 1997 y 2000 fue Director del Gabinete del Secretario General del Partido Socialista Obrero Español. Con la vuelta del PSOE al poder vuelve a funciones similares, al ser Jefe del Gabinete del Presidente del Gobierno de España, José Luis Rodríguez Zapatero, desde 2004.

05 December, 2009 06:10PM by Miry