May 08, 2013

Alejandro Ríos P.

Diseño: su valor es más que estético

Los invito a leer mi último artículo con en

"Si usted es de los que cree que el diseño es sólo una cuestión estética y que no tiene nada qué ver con la esencia de su negocio, en este artículo le aguarda más de una sorpresa. Los grandes ejecutivos, los líderes modernos y los gurús del mercadeo le imprimen un valor estratégico que, realmente hace parte de la gestión de cualquier organización en el mundo contemporáneo, donde lo visual sí importa.

Realmente, no sólo se diseña el producto o el servicio. Se diseña la experiencia con el mismo, la forma en que se adquiere, la experiencia posventa y hasta la organización que lo respalda." Leer el artículo completo

08 May, 2013 08:20PM by Alejandro Ríos Peña (noreply@blogger.com)

April 25, 2013

Diseño: la “piedra de toque” de la industria de los videojuegos (parte 2)


Como se planteó en la primera parte de este ensayo, aparentemente el entorno nacional alrededor de la industria de los videojuegos resulta muy favorable y alentador, pero el acompañamiento que hasta ahora se ha dado solo en términos de base tecnológica y de negocios no ha sido suficiente como para tener títulos mundialmente exitosos de la talla de Angry Birds  En esta segunda parte se mostrará que la respuesta puede estar en cambiar la concepción que tenemos frente al Diseño y en empezar a incorporarlo como un factor estratégico para esta industria.


La respuesta es El Diseño

El desarrollo de videojuegos integra y genera oportunidades de empleo para muchas áreas: diseño gráfico, ilustración, publicidad, mercadeo, animación y modelado 3D, música, administración, matemáticas, fotografía  y muchas más.   
Es tan alto el valor creativo y emocional que puede alcanzar un videojuego, que incluso se han instalado ya como una forma de arte en el Museo de Arte Moderno de Nueva York, como lo dice Paola Antonelli, curadora de la muestra: "Todo el mundo siempre pensó que eran una forma de arte (...) pero sinceramente, no me interesa la discusión sobre si los videojuegos o una silla son arte. El diseño es para mí la más alta forma de expresión creadora humana, y cuando algo tiene un diseño magnífico, resulta ampliamente suficiente".[1]

Y ¿qué es El Diseño? Por lo general se tiene una concepción del Diseño muy centrada en el valor estético que proporciona a los productos. Sin embargo, en los últimos años se ha venido entendiendo al Diseño de una manera más global, y aunque no hay una definición estandarizada, se sabe que reúne todas aquellas acciones que se llevan a cabo para simplificar necesidades complejas de los usuarios, mejorar un producto y dotarlo de un significado especial[2]. En este sentido, el Diseño toma parte en toda la cadena de procesos que conllevan a generar innovaciones continuas y radicales.

Cada vez el diseño y la utilidad del producto resultan más inseparables, por tal razón las herramientas del diseño se deben incorporar en etapas más tempranas y durante todo el transcurso de los proyectos, por ejemplo:

  • Desde la concepción inicial del juego, se puede utilizar el Human-Centered Design, que plantea involucrar a los usuarios y a su contexto dentro de un proceso de diseño participativo, logrando que los productos sean más pertinentes, usables y atractivos[3]
  •  A nivel de modelo de negocio, se puede usar el Business Design, que busca combinar estrategias de negocios tradicionales con herramientas y gestión de diseño para crear una oferta que inspire a la empresa y emocione al comprador[4]
  • A nivel estratégico, se debe aplicar la Gestión del Diseño, que se enfoca en alinear el Diseño y el desarrollo de productos innovadores a la estrategia de la empresa para aumentar su rentabilidad[5]
  •  Para darle vida nueva a un concepto de juego que parece agotado o estancado, se puede aplicar  Design-Driven Innovation, que plantea cambiar el significado de los productos, acercándose a nuevos intérpretes de su contexto, para generar innovaciones radicales[6]
  • Finalmente, en todas demás áreas de la empresa se puede facilitar la creatividad y la innovación, involucrando herramientas del Diseño en la cultura corporativa (Design Thinking)[7]
En el país ya se está creando algo de conciencia al respecto. El Programa Nacional de Diseño del MinCIT y Confecámaras han creado el "Muestrario de Diseño en Colombia", y a la vez están adelantando el proyecto denominado: “Acompañamiento en diseño integral a MIPYMES”, el cuál tiene en cuenta una perspectiva estratégica e integral del diseño[8].

Y que aunque no existen datos fehacientes que relacionen de forma directa el impacto del diseño en la competitividad e innovación a nivel de todo un país, sí están comprobados sus beneficios a escala micro-económica[9]. Como lo dice el Centro de Diseño de Barcelona: “Las empresas con éxito saben que diseñar cómo deben hacerse las cosas e integrar el cliente en el proceso de desarrollo reduce considerablemente el tiempo de introducción al mercado de sus innovaciones”[10].

Entonces, ¿cómo aplicar la gestión del Diseño para mejorar la competitividad del sector de videojuegos? Se puede empezar por la generación de estrategias utilizando lo que la autora Xénia Viladás, miembro del Consejo Consutor del Design Management Institute (DMI), ha denominado como Vectores de Visibilidad: “una marca se proyecta hacia el mercado a través del producto, de la comunicación y de los espacios donde tiene su actividad” [11], cada uno de estos actores tiene un diseño que debe ser alineado con los valores y estrategias del negocio. 

Utilizando este principio, desde la Gestión de Diseño se podrían formular las siguientes Estrategias de Producto:

Enfocarse en los juegos "casuales" con actualizaciones constantes, ya que la elaboración de juegos para consola requiere una mayor producción, similar a la industria cinematográfica
  Trabajar, a nivel de consolas, con plataformas abiertas como Ouya[12] que facilitan la creación de juegos independientes y son menos costosas
  Trabajar, muy de cerca, con las casas fabricantes de dispositivos como Samsung, Nokia, Apple, Google, etc.
Hacer desarrollos tomando en cuenta los dispositivos que se usarán más en el futuro: gafas, pantallas transparentes, realidad aumentada, etc.
Atraer desarrolladores independientes, más conocidos como Indie Developers, aprovechando el atractivo que pueden tener ciudades como Medellín (reconocida recientemente como la ciudad más innovadora del mundo[13]) para los extranjeros
  Crear un equipo élite de aceleración y consultoría en Diseño con experiencia en videojuegos a escala internacional, para brindar asesoría especializada a empresas del sector
  Hacer diseños flexibles y no tan exagerados en cuanto a personajes e historias: "menos puede ser más"

Al tiempo, se podrían implementar algunas Estrategias de Comunicación de marca y relaciones públicas, tales como:
   Explotar las fortalezas culturales de Latinoamérica
   Llevar el problema del inglés a su origen: encargar la traducción nativa a estudios en ciudades como Miami y utilizar servicios de locución como VoiceBunny.com
  Apoyarse en sectores maduros que ya exportan contenidos, como las productoras de televisión de los canales privados
    Hacer un trabajo fuerte en manejo de marca de las empresas nacientes

Finalmente se plantean algunas Estrategias de Espacio, relacionadas con el lugar y canales de promoción:
  Apuntar hacia el mercado latinoamericano
Participar en eventos, y realizar campañas de publicidad tipo BTL (Below the Line), donde las historias de los videojuegos se lleven al día a día de las personas, con eventos en plazas y centros comerciales, en lugar de anuncios masivos
Amarrar la distribución con otras marcas y artistas que ya cuenten con reconocimiento a nivel mundial (Juan Valdéz, Fernando Botero, Juanes, etc.)
   Realizar acuerdos en bloque con Productores y Distribuidores internacionales.
  Explotar la macro tendencia hacia el consumo de contenidos de formato corto e impacto viral: memes, gifs, videos como el Harlem Shake, etc.
Promover la participación de colombianos en proyectos colaborativos como Kickstarter.com

Aplicando éstas y otras iniciativas que involucren el Diseño como parte fundamental de su estrategia, se van a poder generar casos de éxito en Colombia como ha sido el de Angry Birds a nivel mundial.   Sobre este caso, vale la pena destacar que los tres vectores de visibilidad están alineados con el Diseño de manera magistral:
   Producto: Sencillez de manejo y “jugabilidad” adictiva. Hoy en día todo el mundo ha escuchado acerca de este juego
Espacio: Capacidad para reinventarse, adaptándose a situaciones y entornos variados. Tiene un modelo de pago en iPad y un modelo de juego gratuito en Android
  Comunicación: Diseño y contenido fresco, similar a una página web.  Un mismo título que se expande más allá de su concepto original: ya tiene sus propias tiendas e incursiona en series de TV, juegos de mesa y gran cantidad de merchandising

En conclusión, la oportunidad está servida para que las empresas colombianas la aprovechen. Si además de los esfuerzos que hasta ahora se han concentrado en negocios y tecnología, dejando el diseño sólo como decoración, se involucra al mismo como un factor diferenciador, hay buenas posibilidades de éxito.
La “piedra de toque” es un elemento que ha sido utilizado ancestralmente para probar la calidad y el valor del oro, así mismo el Diseño será lo que evidencie el valor estético, la pertinencia cultural y la emoción que despierte un videojuego en sus jugadores. El trabajo debe continuar para que las empresas de videojuegos puedan aplicar el Diseño de manera estratégica, y logren ser más innovadoras y rentables a largo plazo: que tengan alcance global, ganancias adicionales en merchandising, y generen un impacto cultural.
 

Que la respuesta sea Colombia, en cuanto a Diseño para videojuegos es algo totalmente probable, está en las manos de nuestra industria local capitalizar esta oportunidad inigualable para el desarrollo y la generación de riqueza y bienestar.




[1] El Espectador. Videojuegos se instalan en Museo de Arte Moderno de Nueva York. Marzo 5 de 2013. Recuperado el 20 de Abril de 2013. [ http://www.elespectador.com/tecnologia/juegos/articulo-408379-videojuegos-se-instalan-museo-de-arte-moderno-de-nueva-york]
[2]Commission of The European Communities. Commission Staff Working Document. Design as a driver of user-centred innovation. Bruselas, 2009.
[3]IDEO. Human-Centered Design. [http://www.ideo.com/work/human-centered-design-toolkit/]
[4]IDEO. Business Design. Recuperado el 13 de Abril de 2013. [http://www.ideo.com/expertise/business-design/]
[5] EAFIT. Especialización en Gerencia de Diseño. Recuperado el 13 de Abril de 2013. [http://www.eafit.edu.co/programas-academicos/posgrado/especializacion-gerencia-diseno-producto/Paginas/inicio.aspx]
[6]Verganti, Roberto. Design-Driven Innovation. 2009. [http://www.designdriveninnovation.com/]
[7]Zilver Innovation. Design the New Business. [video] [http://www.designthenewbusiness.com/]
[8] Mejía, Ricardo. Convocatoria Acompañamiento Integral en Diseño. Recuperado el 13 de Abril de 2013 [http://jrms.pktweb.com/?p=2766]
[9] Op. Cit. Commission of The European Communities.
[10] Barcelona Centre de Disseny.Fichas de Gestión del Diseño. Recuperado el 13 de Abril de 2013. [http://www.bcd.es/es/page.asp?id=102]
[11] Diario de Las Palmas. Xénia Viladás: "El diseño bien gestionado ahorra costes". Enero 17 de 2011. Recuperado el 16 de Abril de 2013 [http://www.laprovincia.es/entrevista/2009/01/17/xenia-viladas-diseno-gestionado-ahorra-costes/202631.html]
[12] Sitio Web de Ouya. [http://www.ouya.tv]
[13] El Colombiano. Medellín ganó el premio de la ciudad más innovadora del mundo. Recuperado el 20 de Abril de 2013 [http://www.elcolombiano.com/medellin-innovadora.asp]

25 April, 2013 10:54PM by Alejandro Ríos Peña (noreply@blogger.com)

April 24, 2013

Diseño: la “piedra de toque” de la industria de los videojuegos (parte 1)


¿Cómo lograr que, en cuanto a desarrollo rentable e innovador de videojuegos, la respuesta sea Colombia? La respuesta es El Diseño.

Colombia se está volviendo protagonista de un mundo que tradicionalmente ha empujado el desarrollo tecnológico y que ha cobrado aún mayor importancia gracias al acceso móvil a internet. Se trata del mundo de los videojuegos, del cual se espera que llegue a tener un mercado de USD$82.000M a nivel mundial para el 2017 (DFC Intelligence)[1].

El exitoso caso de Nitro Chimp, primer juego colombiano en superar 600.000 descargas a nivel mundial[2], es al tiempo una demostración del gran potencial del talento nacional y un llamado de atención sobre el momento histórico que se tiene en frente: como país, es el momento de actuar, para consolidarse y diferenciarse dentro de la industria. Y parafraseando el eslogan de la marca país “La respuesta es Colombia”, se plantea que la respuesta no puede venir solo de la tecnología y la inversión, “La respuesta es El Diseño”.

El panorama de la industria en Colombia

Las campañas de “Marca Colombia” resaltan de forma vehemente la diversidad y pasión[3], y se han enfocado en mostrarle al mundo que el país tiene un alto potencial creativo. Estas características son particularmente importantes en la industria del entretenimiento digital.
Pero no sólo Colombia piensa que tiene potencial, también lo creen los grandes jugadores de la industria, los cuales están dirigiendo sus miradas hacia el talento de Latinoamérica. Prueba de ello es que hace pocos días la empresa GREE International Inc. anunció la creación de su Fondo de Socios GREE, programa que busca invertir un total de USD$10 millones en empresas desarrolladoras de videojuegos, exclusivamente de Norte y Sur América[4].        
Adicionalmente, el auge del mercado de videojuegos está relacionado con la multiplicidad de dispositivos donde se pueden instalar y/o usar, incluyendo consolas, dispositivos móviles y PC, entre muchos otros, donde el común denominador es un modelo de rentabilidad basado en la distribución en línea, lo cual representa nuevas oportunidades para desarrolladores independientes.[5]
Ante esta oportunidad, la industria en el país se ha disparado recientemente. Según la Asociación de Desarrolladores de Videojuegos en Colombia (IGDA), más del 90% del total de 36 estudios se han establecido en los últimos dos años[6]. El ecosistema alrededor del sector ha venido creciendo muy rápido, aunque de forma dispareja, como lo muestra la siguiente gráfica, la cual incluye los tipos de actores que se consideran parte de este ecosistema, mostrando su nivel de desarrollo actual en el ámbito nacional[7]:


Una de las grandes necesidades que tiene la industria nacional de videojuegos es la de asegurar que las nuevas empresas generen un valor significativo y perduren a través del tiempo.  Estos aspectos son indispensables para evitar que las nuevas empresas fracasen y el talento que las compone se sume a la tradicional fuga de cerebros. Como lo ha dicho Johana Hacker, de la aceleradora de emprendimientos Wayra, del grupo Telefónica: “No podemos seguir viendo cómo los creadores de las grandes ideas de nuestros países tienen que irse a otros donde les crean y los apoyen”[8].

A esto se le suma la tendencia global hacia un mercado donde cada vez hay más usuarios, pero menos rentabilidad por usuario[9].  Algunas empresas colombianas ya están manejando el modelo de negocio conocido como “inn-app purchases[10], donde los usuarios descargan la aplicación gratuitamente, y van pagando a medida que avanzan en niveles o para desbloquear ciertas partes del juego, pero a nivel estratégico esto supone que se requiera ofrecer originalidad, creatividad e innovación contínua para garantizar la viabilidad económica y la posibilidad de monetizar, por muy buena que sea la idea inicial.
¿Cómo lograrlo?, ¿qué le hace falta a la industria nacional para tener títulos exitosos como Angry Birds en Colombia?

Un acompañamiento centrado en la Tecnología y la Inversión

Para el Gobierno, lograr desarrollar este ecosistema requiere empezar por disminuir la llamada Brecha Digital. En años recientes, las cifras del macro programa ViveDigital no solo han hecho que el Ministerio TIC haya tenido continuidad, sino que también ha cosechado reconocimiento internacional, al ganar el premio GSMA “Gobierno de Liderazgo”, otorgado en España en Febrero de 2012 en el marco del Mobile World Congress[11]. Este programa incorpora 3 iniciativas complementarias que han generado gran dinamismo en el sector: ViveLabs, Apps.co y Talento Digital.  
Adicionalmente, el MinTIC ha trabajado de la mano del Ministerio de Cultura para acelerar la creación de contenidos digitales, con iniciativas como el Laboratorio C3+d(creación, cultura y contenidos digitales) y Crea Digital, y de la mano del Ministerio de Comercio, Industria y Turismo, generando iniciativas conjuntas con el programa Innpulsa (antiguo Fomipyme) y Proexport, tales como:
       La contratación de un estudio de la oferta exportadora colombiana en el desarrollo de animación por computador, videojuegos, libros digitales y prestadores de servicios para estos grupos, ejecutado por la Universidad de Los Andes y el Centro Nacional de Consultoría[12]
       El apoyo para gestionar la instalación de un centro de operaciones para América Latina de la multinacional Unity, que trabajará de la mano de empresas colombianas como Brainz de Bogotá y C2 Studio de Medellín[13]
      El apoyo a participación de empresarios colombianos en conferencias y eventos internacionales, así como la invitación de expertos a nivel mundial para que asesoren a empresas locales[14]
Y no solo el gobierno nacional está jalonando con estas iniciativas, otros actores importantes también están haciendo la tarea:
       Corporaciones mixtas y parques tecnológicos como Parquesoft y RutaN están atrayendo proyectos y capital para impulsar emprendimientos TIC[15]
       Las Aceleradoras de Emprendimiento de base tecnológica están creciendo, en los últimos tres años se han creado siete nuevas[16]
       La Universidad de los Andes cuenta con un laboratorio completo de animación y videojuegos, y trabaja en conjunto con diferentes empresas, Colciencias y Proexport en el marco del Proyecto D.A.V.I.D. (Desarrollo de Animación y Videojuegos)[17]

Aparentemente, el entorno nacional resulta muy favorable y alentador, pero a pesar del amplio trabajo y visión que ha tenido el Gobierno en apoyar esta industria, todavía hace falta mucho trabajo para generar una cultura de inversión de capital en empresas de base creativa y tecnológica, así como para producir estrategias de distribución en un mercado global, donde la posición de las grandes casas productoras es todavía dominante.

Entonces, ¿si una base tecnológica y de negocios no es suficiente, qué es lo se requiere para desarrollar videojuegos exitosos? ¿Cómo innovar constantemente en un entorno de emprendimiento digital en el que no bastan una interfaz gráfica llamativa y una positiva experiencia de usuario, dado que  la competencia puede surgir desde cualquier lugar del mundo?. En la segunda parte de este ensayo se mostrará que la respuesta puede estar en cambiar la concepción que tenemos frente al Diseño y en empezar a incorporarlo como un factor estratégico e indispensable.



[1] PRWeb. “DFCIntelligence Forecasts Worldwide Video Game Market to Reach $82 Billion by 2017“. Julio 16 de 2012. Recuperado el 15 de Abril de 2013 [http://www.prweb.com/releases/2012/7/prweb9701884.htm]


[2] EL TIEMPO. El videojuego colombiano que superó 600 mil descargas en la App Store. Recuperado el 20 de Abril de 2013. [http://www.eltiempo.com/gente/nitro-chimp-el-videojuego-colombiano-que-supero-las-600-mil-descargas-en-la-app-store_12752142-4]

[3] Colombia.co. “La Marca Colombia” Recuperado el 13 de Abril de 2013. [http://www.colombia.co/la-marca/la-marca-colombia.html]

[4] GREEN. Fondo de Socios GREEN. Recuperado el 15 de Abril de 1013 [http://www.greepartnersfund.com/]

[5]Op Cit. PRWeb.

[6] El Espectador. Videojuegos colombianos quieren conquistar Estados Unidos. Marzo 27 de 2013. Recuperado el 15 de Abril de 2013 [http://www.elespectador.com/tecnologia/articulo-412734-videojuegos-colombianos-quieren-conquistar-estados-unidos]


[7] Fuente: elaboración propia.

[8] Op Cit. Revista Gerente

[9] Op. Cit. PRWeb

[10]Pulso Social. Grabbity con +450k descargas en AppStore ganadora en AppCircus Bogotá. Octubre 26 de 2012. Recuperado el 13 de Abril de 2013. [http://pulsosocial.com/2012/10/26/grabbity-con-450k-descargas-en-appstore-ganadora-en-appcircus-bogota]

[11]Global Mobile Awards. Winners 2012. [http://www.globalmobileawards.com/awards-history/winners-2012/#cat_id31]
[11]

[12] Universidad de los Andes. Estudio de Levantamiento de Oferta de la Industria de Contenidos Digitales [http://juegos.virtual.uniandes.edu.co/wp-content/uploads/2012/11/estudio.html]

[13]Dinero.com. Unity, empresa de videojuegos le apuesta a Colombia. Marzo 13 de 2013. Recuperado en Abril 13 de 2013 [http://www.dinero.com/empresas/articulo/unity-empresa-videojuegos-apuesta-colombia/171433]


[14] Proexport. Convenio MinTIC. Recuperado el 13 de Abril de 2013 [http://www.proexport.com.co/convenio-mintic/index.html]

[15] RutaN. Capital Semilla. Recuperado el 13 de Abril de 2013 [http://www.rutanmedellin.org/info/Paginas/proyectos_ruta_n_plan_semilla.aspx]

[16] Revista Gerente.Especial Aceleradoras. Recuperado el 13 de Abril de 2013   [http://www.gerente.com/detarticulo.php?CodArticl=772]


[17] Universidad de Los Andes. Proyecto DAVID [http://juegos.virtual.uniandes.edu.co/]


24 April, 2013 12:08AM by Alejandro Ríos Peña (noreply@blogger.com)

March 27, 2013

El ingeniero que decidió ser pintor

Mi amiga July Jimenez me reenvió hoy este mensaje de una cadena de correo que nos llegó en el año 2004. Ha pasado el tiempo y solo ahora que lo vuelvo a leer caigo en cuenta de la gran influencia que ha tenido en mí.

El ingeniero que decidió ser pintor
        por Rubén Martín de Lucas

(Este texto fue escrito, en un principio, para los estudiantes de la ETSI de Caminos, Canales y Puertos de Madrid)

Hace un momento, mientras comía y oía caer la lluvia desde el ático donde ahora vivo, he sentido que debía escribir esto. No sé muy bien como empezar pero sí se lo que quiero deciros.

Quiero deciros que todo es posible. Que si tenéis sueños no renunciéis a ellos. Perseguidlos. Porque no hay mayor verdad que aquello de que el que busca encuentra. La experiencia me lo ha dicho.

Igual que vosotros, yo estuve allí, o aquí, según se mire. Estudié y acabé la larga carrera de ingeniero de caminos. Sufrí como vosotros entre esas paredes, en ese edificio gris y hostil que te aprisiona el alma, que te roba el aire, el tiempo, la vida. Pené por las aulas y pasillos de la ETSI de Caminos, Cc. y Pp. de Madrid y por eso sé lo que se siente. He sentido como vosotros esa angustia, ese agobio, esa sensación de tener algo que te oprime y no te deja respirar, ese peso colgado del cuello que hace que pocas veces ya levantes la cabeza al cielo para mirar las nubes. Dime, como está el cielo hoy. ¿Te fijaste a la que venías?

Cuantas veces la carrera me privó del aire libre. Cuantos días de cielo azul me robaste, de cuantos ratos con los amigos, con mi Colectivo Caléxico, no pude disfrutar, cuantos momentos que nunca llegaron porque tú, dichosa carrera, te alimentabas de mi tiempo. Cuantos viajes no pude hacer. Cuantos graffitis no pinté. Cuantas experiencias, cuanta sangre, cuanta vida me quitaste? Cuantas vueltas le di a todo eso.

Acabé la carrera. La acabé primero porque la había empezado, y segundo para tener un colchón. Por si acaso un día me hacía falta un colchón donde caerme cuando me venciera el cansancio por buscarme la vida de cualquier modo y manera, pero sin hacerme esclavo de nada. Decidí no ser ingeniero. No al menos hasta rastrear todos los huecos del sistema donde uno puede refugiarse sin formar parte de él? Hay personas que no encajan en ningún molde de los que esta sociedad nos tiene preparados.

No podía ser ingeniero. Los años de carrera, el título, el entorno, la inercia de los compañeros y conocidos que empiezan a trabajar, todo me empujaba a ejercer dicha profesión. Sólo mi corazón se negaba. Era un rumor, el de mi corazón, apenas audible entre el bullicio y el rechinar del sistema, quién me decía que mi camino iba por otra parte. Decidí escuchar mi corazón. Aprendí a seguirle.

Al acabar la carrera me fui con Ana, mi novia, a la India. Me fui porque sentía que debía hacerlo. Nunca tuve apenas dinero, pero gracias a los dos premios Hilti que gané, ¿lo quiso así el destino?, tenía dinero suficiente para comprarme un coche o para dar la vuelta al mundo. Decidí marchar a la India porque mi corazón me lo pedía. Estuvimos juntos allí un mes. Luego Ana tuvo que volver y yo me quedé por allí, vagando, yendo donde sentía que tenía que ir sin nada más que una mochila.

Que dulce sensación saberte libre. ¿Donde voy hoy?. Me chupo el dedo lo levanto y me dejo llevar por el viento, por el destino. Que maravillosos segundos esos primeros del día cuando despiertas y tu mente se sacude la neblina. Cuando viajas mucho, al despertarte, no sabes donde estás, ni en que ciudad, ni en que país, ni si estás en casa o en un hotelucho. Luego la mente y la memoria se desperezan y te sitúan. Si te pica el ?travel bug?, así lo llaman, no vuelves a ser el mismo. Recuerdo mis despertares durante el viaje por India. Recuerdo despertar con el ruido de los monos corriendo y peleando en los tejados en Shimla, recuerdo despertar con los cuervos que poblaban la costa de Goa, con las campanas del cercano templo hindú de Varanasi, con las voces amplificadas de mezquita colindante con mi hotel de Kochi, con el ruido de los autorickshaws y el tumulto, con el eterno y machacante ?Chai, chai, chai? de los vendedores de té en los trenes, con los rebuznos de los burros en Nako (pueblo perdido del Himalaya) o con el dulcísimo sonido de las trompetas tibetanas a las cinco de la mañana en Daramsala. Saboreé la libertad. Y decidí que nunca en la vida me impondría estúpidas cadenas que la restrinjan y limiten.

Hemos sido educados, condicionados, para pasar a formar parte de este sistema. Para engrosar sus filas de trabajadores que lo mantienen a flote. La inercia de la corriente te empuja a hacer una vida ?normal?. Hemos sido educados, formados, pero también engañados. Nos han hecho creer que nuestro objetivo es la prosperidad. Y así nos pasamos la vida sin mirar al cielo, estudiando primero, trabajando después, para prosperar. Un coche, un piso, el cole de los niños, ropa nueva, tele nueva? y siempre nos ponen delante algo nuevo que no hemos adquirido aún, para mantenernos currando, trabajando para mantener a flote un sistema que está podrido. Podrido porque busca la prosperidad económica y no la felicidad de los seres humanos que lo integran. Hemos sido educados para desear. Otro engaño. Cuantos más deseos tengas más infeliz serás. Bien porque los deseos queden insatisfechos o bien porque cuando quedan satisfechos no es la felicidad lo que surge sino cinco deseos más que te piden ser satisfechos. Que liberador es descubrir este engaño y empezar a eliminar deseos. ¿Éste? Superfluo, fuera. ¿Este otro? También innecesario, fuera.

Y que llegue un día y poder decir: No quiero nada que no quepa en una mochila? y poder decirlo con el corazón y que sea verdad tanto metafórica como literalmente. Me siento tan identificado con esa frase que podría ser mi epitafio: ?no deseo nada que no quepa en una mochila?, que buena. Pero ni quiero lápida, ni tumba donde ser enterrado. Si por mí fuera al morir quisiera ser enterrado al estilo tibetano, entregando mi cuerpo a los buitres, para que así mi ya cáscara inservible pase más rápido a la naturaleza. Pero tal vez esto podría producir un shock a mis familiares, y sólo quiero su bien.

Y he ahí de nuevo otro engaño. Nos han enseñado a vivir sin pensar en la muerte. Siendo ésta algo natural que acaece a todo el mundo, ya que el que un día vive, otro día ha de morir. Pero nos han condicionado para no pensar en ella. Para mantenerla alejada de nuestras preocupaciones cotidianas. Y sin embargo es algo que da sentido a muchas cosas y que se lo arrebata a muchas más. Por ejemplo: que sentido tiene acaparar bienes materiales si un día morirás y no te los podrás llevar al otro lado, si es que lo hay. Pero no hacemos caso. Seguimos acaparando bienes materiales y anteponiendo esta búsqueda material a la búsqueda de la felicidad. Y un día la muerte nos sorprende, Zás. Y toda una vida echada al retrete. Una vida de mierda que te pasaste currando como un condenado sin mirar el cielo, aplazando tu felicidad para más adelante, y de repente Zás, adiós, la muerte te pega con la guadaña sin que te dé tiempo a quejarte porque llevas años currando sin levantar cabeza ni a decir que todavía no has podido disfrutar de la vida y que necesitas unos años más. Nada. La muerte golpea y no tienes opción de réplica.

Más sabio es aprender a pensar en la muerte. Todos los días. Tenerla como algo cotidiano que un día llegará, te cogerá la mano y no dejará que te escapes. Aprende a tenerla entre tus pensamientos cotidianos. Y sin que te des cuenta estarás disfrutando del hoy. De cada momento. Sin aplazar la felicidad para más adelante. Porque si empiezas a aplazarla nunca llega.

Muchas son las cosas que no te enseñan en la escuela. Que están ahí fuera, esperando a que levantes la cabeza del suelo.

Volví de mi viaje por India y Sri Lanka a los 4 meses. Y volví tan pronto por mi amor hacia Ana y hacia mi Familia. Esos son los únicos lazos que admito que me aten, los sentimentales. De no ser por ellos tal vez todavía andaría por allí, rodando por el mundo con una mochila o descalzo como un shadu con una túnica y un bol por equipaje. Admiro a los shadus, monjes mendicantes y ermitaños. Los ejecutivos adinerados me dan lástima. Vosotros contáis sus riquezas y no entendéis mis palabras. Pero contad sus cadenas y el peso que les aflige.

Un día sentí que debía ir a la India, y aprendí mucho sobre la vida. Estando allí un día sentí que debía ir a Daramsala, y el día de mi 25 cumpleaños di la mano a la persona que más admiro en el mundo, que es, aún sin ser yo budista, el Dalai Lama. Sentí que debía ser pintor y hoy sobrevivo con la pintura, pagando mi ático de alquiler con vistas a Segovia, cubriendo la comida y los gastos de la vida. Feliz como pocos. Y no me ofrezcáis un sueldo que no lo quiero. Ni un coche, ni una casa porque si mañana decido irme no me caben en la mochila. Hoy mientras comía y oía llover he sentido que debía escribir esto. He dejado los cacharros sin fregar, a los pájaros sin las migas de mi mantel y un cuadro sin terminar y me he puesto a escribirlo sólo porque sentía que debía hacerlo. Ahora mi vida es así. Se rige por los dictados de mi corazón y la dirección del viento, del destino, que siento en mi dedo húmedo cuando lo levanto.

El otro día leí un artículo en el correOcaminos, un poema que alguien me dedicó. Se me pusieron los pelos de punta. Pero no creo ser merecedor de halagos. Quiero dejar claro que no soy ningún héroe, ni superhombre ni alguien especial. Nada de eso. Soy alguien normal. Uno más. El 18761. Sólo he renunciado a ser ingeniero.

Lo que la vida me depara no lo sé, ni lo quiero saber porque le quitaría la gracia. Tal vez la muerte me sorprenda esta noche y me dé su abrazo -Hola Rubén, hoy te toca a ti-, - Hola Muerte, vámonos-. O tal vez mi función en la vida sea la de sensibilizar a una sociedad mecanizada llena de autómatas que no se paran a mirar el cielo ni a disfrutar de la vida. Nunca se sabe y eso es lo mejor de todo. Un poema me movió a escribir esto. Gracias Ln!s.  Ahora tal vez esto mueva a alguien para que emprenda su camino hacia la
felicidad. Así sea.

Un abrazo. Se despide, hoy con todos los nombres, el que solamente es uno más

Rubén Martín de Lucas

27 March, 2013 02:31PM by Alejandro Ríos Peña (noreply@blogger.com)

March 25, 2013

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

Lisandro Damián Nicanor Pérez Meyer

Entrevista en La Nueva Provincia

Hace unos dias Guillermo Burastero me llamó para comentarme que le habían pedido una nota en el diario local de Bahía Blanca, La Nueva Provincia, para que habláramos de software libre. La entrevista se concretó y he aquí el resultado (y acá en PDF).

Hice algunas menciones a Debian, pero bueno, no todo es posible a veces :-)

Tip: los nombres no coinciden con las fotografías. Les dejo adivinar el orden correcto ;-)

25 March, 2013 12:42PM by Lisandro Damián Nicanor Pérez Meyer (noreply@blogger.com)

March 18, 2013

Día de la libertad del hardware

El sábado 20 de Abril se va a llevar a cabo el Hardware Freedom Day en todo el mundo, y Argentina no es excepción. Este año tenemos la suerte que se realice en dos lugares: La Plata (que cuenta con Alejo como uno de los coordinadores) y Buenos Aires.

A mi me van a quedar un poco lejos, pero invito al que pueda a acercarse al evento.

No se lo pierdan :-)

18 March, 2013 03:13PM by Lisandro Damián Nicanor Pérez Meyer (noreply@blogger.com)

March 17, 2013

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

17 March, 2013 09:19AM by José L. Redrejo Rodríguez

March 16, 2013

Saliendo del…. escritorio ¿o no?

Desde hace tiempo me preocupa que buena parte del trabajo y esfuerzo que mucha gente hemos empleado en los años pasados para hacer aplicaciones educativas sea esfuerzo inútil. Viendo el uso que los profesores hacen de los ordenadores pareciera que lo que no está en el navegador no existe. Es más, un altísimo porcentaje de los profesores nunca han navegado por los menús: arrancan el ordenador, y entre los iconos del escritorio suelen ir al navegador casi directamente.

Sin embargo, realizar aplicaciones realmente útiles y vivas en el navegador significa programar usando javascript, lo que es un dolor de xxxxx. Nada que ver con realizar aplicaciones para el escritorio. Buscando soluciones, es decir: realizar aplicaciones para el navegador, que tuvieran la vitalidad del escritorio y que me permitieran programar sin sudar sangre con javascript, empecé a probar GWT (Google Web Toolkit), hará algo más de un año. Los señores de Google puede que quieran conquistar el mundo, pero son realmente brillantes en muchos de sus proyectos. GWT permite que programes  en Java casi como si estuvieras trabajando en un aplicación estándar, con las herramientas de profiling y depuración de Java (mezcladas con algo del mundo web, como hojas de estilo para el aspecto de la aplicación). Y cuando acabas tu aplicación le das a un botón y te proporciona la aplicación en javascript optimizado para los navegadores web más importantes.

Nunca me ha entusiasmado Java como lenguaje de programación, me sigue pareciendo sobredimensionado y algo lento para el escritorio (por no hablar sobre sus mentiras a la hora de hacer programación orientada a objetos). Sin embargo, hay que reconocer que el código es limpio, relativamente fácil de leer y bastante elegante, por no hablar de la multitud de patrones y documentación existente para ayudarte. En fin, que al final he hecho un par de cosillas, en las que hice el backend con CakePHP (un framework espléndido, excelente a la hora de trabajar con php sin código espaguetti y que la gestión de bases de datos o autenticación sea un “paseo”) y el frontend con Java. Esto, gracias a la magia de GWT se convierte en una buena aplicación tipo 2.0 en el navegador con todo el ajax del mundo y sin haber escrito una línea en javascript por mi parte. En fin, que parecía haber encontrado un camino para ir haciendo cosas nuevas que los profesores podían usar en el navegador.

Sin embargo, no acabo de estar a gusto, meter php + servidor web en el ordenador, y programar en Java…. no me acaba de convencer. Y estos días voy y me encuentro algo llamado Pyjamas. Y encima va un tipo y hace Pyjamas-desktop, y encima resulta que ya está todo esto en Debian (GWT es software libre pero no está en Debian por su enorme dificicultad a la hora de compilarlo y luchar con la mezcla de tecnologías que usa). Y ¿qué es Pyjamas? Pues así, usando palabras no muy exactas: GWT en Python. Es decir: ahora haces la aplicación en Python, le das al compilador de Pyjamas y la tienes en javascript. Pero es que encima con Pyjamas-desktop puedes ejecutar la aplicación como si fuera una aplicación de escritorio. Es decir, puedes tomar una aplicación de escritorio ya hecha en python-gtk , convertirla en aplicación web para usarla en el navegador, y después, si quieres, puedes convertirla en aplicación de escritorio para usarla en Gnome, donde fue creada ¡o en KDE e incluso Windows!. A ver, lo repito: un sólo código fuente hecho como una aplicación de escritorio de Gnome, que puede convertirse en aplicación web, y en aplicación para cualquier escritorio disponible (para esta última posibilidad el proyecto usa de fondo la magia de Webkit)

En resumen, que la cosa está muy movida en estos tiempos, con proyectos interesantísimos que cada día te vuelven un poco más loco, te hacen darte cuenta de lo poco que sabes y te animan a seguir investigando y aprendiendo. Al final con un poco de suerte todo parece converger, y puedes estudiar un sólo lenguaje, digamos Python o Java, y programar para la web y/o para el escritorio.

16 March, 2013 08:12PM by José L. Redrejo Rodríguez

Matemáticas y TIC

Del 21 al 23 de Octubre se celebran en la Universidad de Extremadura la reunión anual de Decanos y directores de departamentos de Matemáticas.

Matemáticas es, probablemente, la facultad de la universidad de Extremadura que mejor y más implantado tiene el software libre tanto en sus laboratorios y departamentos como en el propio temario que se enseña a los alumnos. Probablemente la presencia allí como profesores de Santiago Vila y Antonio Ullán tiene mucho que ver con ello. Mientras, todavía hay facultades y escuelas (como Biológicas o Informática) que siguen enseñando software propietario que es peor que la alternativa en software libre, y obligando a los alumnos a hacer uso de licencias ilegales o gastarse un dineral (el caso del software estadístico es paradigmático: los matemáticos, que algo saben de estadística, usan y prefieren la potencia de R, mientras que en otras facultades para enseñar estadística usan SPSS, que es menos potente y por supuesto, privativo y caro).

En fin, a lo que iba, que los que puedan, no se pierdan la asistencia a las charlas. Recomiendo muy especialmente las dos en las que participa Georges Khaznadar, profesor francés de Física y Química en secundaria que sabe muy bien lo que es estar a pie de aula y que es el mantenedor para Debian del impresionante software para matemáticas Wims. Acaba de desarrollar un módulo para integrar Wims con Moodle, que parece ser la navaja suiza para enseñar cualquier asignatura de ciencias mediante el ordenador.

Toda la información en http://ciencias.unex.es/XICDM/

P.S: Aunque recomiendo la charla de Georges, tampoco debe estar mal la de Vicente Parejo. Es el responsable de TIC en la Consejería de Educación de la Junta de Extremadura, y por tanto, mi jefe, así que hablaremos bien de él ;)

16 March, 2013 08:10PM by José L. Redrejo Rodríguez

Que modelo de portátil le damos a los alumnos

English text below

Lo primero, las cuentas claras. En  la web oficial del ministerio de Educación están las cuentas de lo que recibirá cada comunidad autónoma. A Extremadura le corresponden 3.078.300 euros para la compra de material. La región tiene que poner otro tanto.

El presupuesto que sugiere el Ministerio de Educación es de 10.000 euros por aula, incluyendo conectividad, pizarra digital interactiva y 25 portátiles.

Es obvio que por ese precio no se puede gastar más de 350 euros en el portatil del alumno. Eso significa que, un año después, me salgo con la mía. Hace un año, cuando en Extremadura decidimos empezar a dar un portátil a cada alumno, en las reuniones que tuvimos en la consejería de Educación, yo siempre aposté por este tipo de ordenador para los alumnos. Sin embargo, al final se optó por un ordenador de categoría superior. Sin entrar en las razones que lo justifican (que son muchas y muy razonables) yo siempre me enrocaba en estas tres premisas:

  • Por pura ética, no me parece razonable darle a un niño en la escuela pública un equipamiento que cueste más que los libros de texto. Si un padre quiere darle algo más a su hijo, que lo pague.
  • Por peso: un ordenador más grande supone limitar la movilidad dentro del centro y limitarla mucho si se lo puede llevar al centro.
  • Por seguridad: como padre, no me entusiasma que un hijo mío pequeño vaya todos los días por la calle con un objeto de lujo y caro.

Obviamente, a la hora de elegir un portátil para los alumnos, hay muchos otros factores a tener en cuenta.

Tengo que admitir que, después de un año en el que he probado infinidad de ordenadores portátiles, de todos los colores y tamaños, no acabo de ver claro lo de los mini portátiles. Dejando de lado cuestiones ergonómicas (muy importantes y que me hacen eliminar aquellos portátiles de menos de 10″ y teclados minúsculos y realmente imposibles), hay una prueba que siempre les hago. Hasta ahora no he conseguido que ningún mini-portatil la pase bien. La prueba es sencilla: voy a la página web favorita de mis hijos:http://www.oyunlar1.com/index.jsp

En esa página hay varios juegos de coches y motos que requieren una buena capacidad de proceso de la cpu y de la tarjeta gráfica. Esa es la capacidad que es indispensable para que se vean muchas aplicaciones hechas en flash. Mal que me pese, en educación hay muchísimo material bodrio hecho en esa tecnología, con mucho dinero público gastado en esos materiales y,  parece ser, algunos profesores no pueden vivir sin él. Es decir: si el ordenador no puede con esas páginas, los profesores van a despreciarlo por no funcionar bien las páginas “educativas” en flash y los alumnos por los juegos.

Hasta hoy no ha caido en mis manos ni un solo miniportatil que fuera capaz de mover decentemente a esos juegos. Es decir, hasta hoy no ha caído uno sólo que sea aceptable para nuestros profesores y alumnos…

Texto en español arriba

With the “Escuela 2.0″ project in Spain, finally, the kind of laptop to be delivered to the student is the same kind of laptop I wanted to use in Extremadura one year ago.

A year ago, when we decided to go with our own pilot project “one on one” in our schools, there were several discussions, and finally the kind of delivered laptop was in a higher category. Anyway, I always had the same feeling, the laptop should be a subnotebook because of these reasons:

  • Ethic: giving to a student a gadget that’d be more expensive than his text books is something I think we should not do in public schools. Even if we can afford it.
  • Weight: More than 1,5 kg would make the laptop hard to move from one classroom to another, or hard to take it home.
  • Safety: As the father I am, I wouldn’t like my sons carrying a luxury product in their bags everyday when they go to the school.

Anyway, after more than a year testing laptops, I must confess I still haven’t found a subnotebook good enough to be used at schools. Appart of ergonomic issues, there is a test I always do, I go to my sons favorite web site: http://www.oyunlar1.com/index.asp

There are several cars and moto games that require some work to the CPU and the graphic card. I hate it, but there are many teachers who like to use those awful and bad developed web flash sites that require a lot of graphic work to the computer. If they can’t browse these sites or the students can not play their favourite web games, they will reject the laptop.

Up to now, I haven’t found what I’m looking for.

16 March, 2013 08:07PM by José L. Redrejo Rodríguez

Post verano

English version of this post below

Después de un verano perezoso a la hora de añadir contenido al blog, y cuando ya va a hacer un mes que se acabaron las vacaciones voy a intentar hacer un rápido repaso de las cosas que puedo recordar de estos meses.

Empiezo por dar la bienvenida a los lectores que ahora se han añadido a través de Planet Skolelinux. Me añadieron a él por sorpresa y me enteré por algún correo que me llegó desde Japón. Sigo asombrándome cada día con esa frase tan manida y tan cierta de la aldea global.

Sigo con el buen sabor que dejó la Debconf (conferencia mundial de Debian) que se desarrolló en Cáceres. No puedo olvidar aquí agradecer el trabajo que realizaron muchas personas para que su organización fuera bien (reunir a varios centenares de tipos de todas clases, gustos y colores bajo un mismo techo durante dos semanas es una verdadera operación de riesgo). Aunque fueron muchos los que ayudaron, quiero resaltar el gran esfuerzo de Anto Recio,  paisano de Tornavacas que debe estar todavía soñándose con alguno de los participantes.

También me han hecho gracia las visitas de “empresas grandes” que una y otra vez reciben mis jefes. Seguro que tiene sus defectos, pero creo que nadie le puede negar al actual presidente de Extremadura la virtud de la paciencia. De Intel a Microsoft, pasando por IBM, todos vienen a decirle una y otra vez lo guapos que son y lo bien que lo hacen todo. Es más, parece que hubieran inventado la pólvora, como si las cosas que se les ocurren no las hubiera pensado nadie antes

Y no puedo evitarlo, también tengo un pequeño toque político. Parece que lo de Escuela 2.0 va en serio, la pasta ya está encima de la mesa y los concursos públicos para comprar portátiles en pleno proceso. Algunos a estas alturas de la película siguen exigiendo a los extremeños que justifiquemos porqué no vamos a poner Windows en los ordenadores, cuando todavía estoy esperando que alguno justifique porqué van a ponerlo ellos. Sigo sin ver ni una razón económica, pedagógica o no digamos técnica.

En fin, y otros, grandes pensadores de la nación y hermanísimos del gran poder nos toman a los demás por primos. La ocurrencia no podía ser menor, ante la posibilidad de que los portátiles ayuden a reducir la carga económica de los libros de texto y la carga física de las espaldas de nuestros hijos, el hermano se descuelga con que  “No se trata de eliminar el modo de aprender sino de incorporar nuevas posibilidades” . Estos todavía no se han enterado del siglo en que viven, o será que aquí somos muy ricos y podemos pagar todo. No como en otros sitios, que son pobres, y se les ocurre hacer libros de texto digitales. Hechos y corregidos por profesores. Libros excelentes, libres y gratuitos. Estos pobretones de California se tienen que buscar la vida, no como nosotros que podemos tirar con pólvora del rey, no sea que se nos vaya a enfadar el “mundo editorial”.

Texto en español arriba

First of all, I want to welcome the new readers I’ve got after become part of planet Skolelinux. It was a surprise to me when I received an email from Japan commenting my blog. As usual, the “global village” is a real fact, but it’s still amazing for me.

This is a small post to remind some of the things I still remember of the past summer:

I want to thank all the Debconf 9 organizators, specially to Anto Recio who worked really hard to be able to support (in all the sense of the word) so many geeks for two weeks.

Many big companies went to Extremadura to meet our President. They always want him to see that they are the best, have the better ideas, and even look brighter and shine more than the others, and of course, shine more than the poor public workers who are doing the IT development inside the government. From Microsoft to Intel, or IBM, they use big words and press notes with their big ideas, maybe thinking we don’t know their ideas are not new, and many other people have already demonstrated and implemented how things work.

And, last , an almost political detail. After the announce of the project “Escuela 2.0″ that will provide a notebook (in fact a, subnotebook) to the school children. The spanish education minister remarked that the publishers shouldn’t worry, as the  machines are not going to replace the text books. I think there still a lot of public people who don’t know the century they’re living on. What most of us would desire is saving our bank accounts and our sons backs of the weight and price of those old, expensive, useless and stupid text books. In other parts of the world, they’re releasing text books in electronic format, writen by teachers, free in all senses. Maybe we’re so rich that don’t need to think on this and we can go on destroying our sons’ backs and feeding the accounts of the big publishers …

I usually write in spanish in this blog, but I’ll try to write in english some brief explanations of my entries. Even if not all the text is translated, at least the non-spanish readers might understand the head of my ideas.

16 March, 2013 08:05PM by José L. Redrejo Rodríguez

February 25, 2013

Alejandro Ríos P.

Proceso de Diseño e Innovación en el caso de estudio "Designs on your Loo"


El propósito de este artículo es presentar el análisis realizado al proceso de diseño que se lleva a cabo en el vídeo “Designs on your…Loo”, donde los diseñadores británicos Dick Powell y Richard Seymour son contratados por la empresa Shires Bathrooms para desarrollar un nuevo sanitario.

El video es el siguiente:

<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/mq34REw-f6s/0.jpg" height="266" width="320"><param name="movie" value="http://www.youtube.com/v/mq34REw-f6s?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata"><param name="bgcolor" value="#FFFFFF"><param name="allowFullScreen" value="true"><embed allowfullscreen="true" height="266" src="http://www.youtube.com/v/mq34REw-f6s?version=3&amp;f=user_uploads&amp;c=google-webdrive-0&amp;app=youtube_gdata" type="application/x-shockwave-flash" width="320"></embed></object>


El artículo completo está disponible a continuación:

<iframe allowfullscreen="" frameborder="0" height="511" marginheight="0" marginwidth="0" mozallowfullscreen="" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/16740864" style="border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px;" webkitallowfullscreen="" width="479"> </iframe>

25 February, 2013 01:41AM by Alejandro Ríos Peña (noreply@blogger.com)

November 23, 2012

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

Lisandro Damián Nicanor Pérez Meyer

Aprendiendo sobre LDAP

En mi trabajo ha surgido la necesidad de crear una infraestructura de LDAP+kerberos, que voy a montar sobre (adivinaron) Debian. Si bien en la web hay varios artículos al respecto, ésto es lo que les recomiendo dentro de lo que vengo leyendo:
Un problema general que me he encontrado en convertir los ejemplos de configuraciones de slpad.conf al formato manejado dentro del mismo árbol de LDAP. Pero si hubiese leído las cosas en el orden que puse arriba, me hubiese sido mas fácil de entrada :-)

Un amigo me recomendó mirar la wiki de DebianLan para lograr un setup mucho más rápido. Todavía no he llegado a ésa parte.

23 November, 2012 07:40PM by Lisandro Damián Nicanor Pérez Meyer (noreply@blogger.com)

November 02, 2012

¿Tu sesión de KDE está leeeeenta? Chequeá tu interface de loopback


Mientras reviso los bugs del equipo Qt-KDE de Debian, no es raro encontrar gente que reporta que se sesión de KDE está muy lenta. La gran mayoría de las veces el problema es que la interfaz de loopback (aka lo) no está habilitada. A veces el usuario hizo algo mal, a veces algún manejador de redes metió la pata, pero el resultado final es el mismo: KDE está lento.

Un usuario llenó un bug en KDE upstream pidiendo por un diálogo que avise al usuario en caso de que ésto ocurra. esperemos que sea implementado :-)

Bueno, pero... ¿como chequeo de que la interfaz esté activa?

Simplemente corriendo:

$ /sbin/ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:1f:c6:ba:70:f3  
          ...

lo       Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1807 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1807 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:494525 (482.9 KiB)  TX bytes:494525 (482.9 KiB)

La última entrada "lo" nos dice que la interface está activa.

En Debian, el archivo /etc/network/interfaces debería contener algo como:

# The loopback network interface
auto lo
iface lo inet loopback

La próxima vez que tu sesión de KDE esté lenta, ya sabés por donde empezara mirar ;-)

02 November, 2012 12:23AM by Lisandro Damián Nicanor Pérez Meyer (noreply@blogger.com)

August 26, 2012

hackergotchi for

Norman García

Libre Bus Cono Sur

Y bueno, hace unos quince meses ya (en mayo del año pasado) tuve el placer de recorrer Centroamérica en bus acompañado de un bello grupo, fue un proyecto muy bonito del que pude ser parte. Libre Bus, un bus que recorrió desde Costa Rica hasta Guatemala durante quince días.

Este año el proyecto vuelve de nuevo, pero esta vez será en el cono sur, lamentablemente no seré parte de la travesía, pero estoy seguro de que será una experiencia parecida o mejor. Durante el viaje se hablará sobre Cultura Libre, Software Libre, Libertad de Expresión, Libertad para compartir y Educación Abierta, manejando dos ejes transversales: Biodiversidad y medio ambiente y Género.

Esto arrancará el 28 de agosto en la ciudad de Valdivia en Chile y tiene programado terminar en La Plata, Argentina, serán 30 días increíbles y 8,000 kilómetros en un bus recorriendo Chile, Argentina, Uruguay y Paraguay, donde se compartirá mucho conocimiento y experiencia, así que si estás en alguno de los cuatros países que mencioné antes, revisá la agenda para que podás llegar y participar en los eventos (de paso me saludan a Teresa, Renata y Jaime con quienes estuve el año pasado :)

Una vez que inicie, vas a poder ir viendo fotos en flickr que el grupo de librenautas irá subiendo.


26 August, 2012 01:01AM by n0rman

August 16, 2012

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

Lisandro Damián Nicanor Pérez Meyer

¡Feliz cumpleaños Debian! 19 y vamos por mas :-)


¡Feliz cumpleaños Debian! Por supuesto, vamos por mas :-)

16 August, 2012 02:56PM by Lisandro Damián Nicanor Pérez Meyer (noreply@blogger.com)

August 14, 2012

Fernando C Estrada

Día Debian en la Ciudad de México

El 16 de Agosto el Proyecto Debian cumplirá 19 años, por lo que se tienen planeadas diversas fiestas alrededor del mundo, y la Ciudad de México no podía ser la excepción, es por ello que nos reuniremos para celebrar el Día Debian.

Debian Day

La cita es el próximo sábado 18 de Agosto a partir de las 13:00hrs. (y hasta las 19:00hrs.) en el centro de capacitación de Compugraf, ubicado en Calle Norte 72 No. 5832, Col Bondojito, C.P. 07850, Del. Gustavo A. Madero, México D.F.

Habrá charlas, talleres, firmado de llaves, jornadas de instalación, y un buen ambiente para intercambiar ideas y compartir conocimiento.

Para mayor información acudir a la lista de correo del grupo de usuarios de Debian México.

Saludos ;-)

14 August, 2012 03:46AM by Fernando C. Estrada

July 15, 2012

hackergotchi for

Luis Uribe

Debconf 12 – Volviendo a casa

Tengo que decir que de las 4 semanas pasadas, los últimos días en Nicaragua han sido de lo mejor. Un gran equipo local, demasiados Debianitas de todo el mundo y una buena cantidad de cerve^W comida local han hecho de esta, la Debconf12 una experiencia excelente.

Pude conocer a Thomas (mi sponsor y compañero en el phpunit-team) y empaquetar una nueva versión de phpunit-selenium, colaboré un poco en el Front Desk y estuve en el videoteam trabajando con h01ger.

Ya hay muchos posts hablando de la conferencia, así que sólo dire: Mil gracias localteam (de todos los que pude despedirme y de los que no) y nos vemos en la Debconf13 en Suiza


15 July, 2012 04:40PM by luisuribe

July 11, 2012

hackergotchi for

William Vera

By: xbytemx

No se si sea post post install pero yo agrego el clasico:
apt-get build-dep $(paquetes aqui)

Saludos,

11 July, 2012 09:04PM by xbytemx

June 25, 2012

hackergotchi for

Norman García

We are waiting for you!

So, six days until DebCamp and we are here working in order to have a great Debian Conference for the first time in Central America! :)

We are waiting for you!

 

 


25 June, 2012 07:57PM by n0rman

May 21, 2012

hackergotchi for

Luis Uribe

PHPUnit 3.6 en Debian Sid (Llamado a voluntarios para pruebas)

Después de un par de meses de trabajo entre varios colaboradores y gracias al empuje final de Thomas Goirand (quién corrigió un par de mis paquetes y se encargó del paquete final de PHPUnit) desde ayer tenemos disponible  PHPUnit 3.6.10.en Debian Sid

PHPUnit es una suite de tests para PHP, y el respectivo paquete en Debian estaba roto desde la versión 3.5, ahora aquellos que tengan aplicaciones sobre PHP 5.4 van a poder realizar los tests con la última versión de PHPUnit sin necesidad de usar los repositorios de PEAR. Esto garantiza un entorno de desarrollo homogéneo y estable para desarrolladores web.

Si tu eres uno de esos te invitamos a descargar el paquete (Debian Sid por ahora, en unos 10 días en testing) sus dependencias y correr los test en tus aplicaciones para detectar bugs, así garantizamos que todo este en orden para el lanzamiento de la nueva versión estable de Debian


21 May, 2012 03:49AM by luisuribe

March 05, 2012

¡Asistiré a la DebConf 12 en Nicaragua!

Debconf 12

Debconf 12

Pues eso, ya tengo los tiquetes comprados y la gestión en la empresa para asistir a la Debconf 12 en Nicaragua, del 8 al 14 de Julio de 2012 (Aunque planeo llegar el 5 de Julio). Espero además colaborar de alguna manera con el equipo local.

Aún hay muchas formas de ayudar a la realización de este evento, así no asistas: http://debconf12.debconf.org/helpus.xhtml


05 March, 2012 04:14AM by luisuribe

February 13, 2012

Fernando C Estrada

¡Asistiré a la DebConf 12 en Nicaragua!

Ya compré mi boleto de avión para asistir a DebConf 12, por lo que participaré por primera vez en la 13ª Conferencia Anual de Debian que se llevará a cabo del 8 al 14 de julio en la ciudad de Managua, Nicaragua.

DebConf 12

Saludos ;-)

P.D. Muchas gracias n0rman por toda tu ayuda.

13 February, 2012 04:00AM by Fernando C. Estrada

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

October 03, 2011

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 21, 2011

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

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 02, 2011

“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 27, 2011

hackergotchi for

William Vera

By: zodman

te falto vim-full vim-addon-manager :)

27 May, 2011 02:30PM by zodman

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

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

November 08, 2010

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

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