Archive for the ‘Software libre’ Category.

Superkb 0.22 released

Superkb 0.22 has been released! This is a minor release. Do you want to know what’s new? Take a look at the 0.22 page on the Superkb Wiki.

Superkb is a shortcut-based launcher with on-screen graphical hints. It is written in C using Xlib, with the help of Cairo graphics, Pango, Imlib2, Xinerama, etc. and the source code is managed using Git.

Continue reading ‘Superkb 0.22 released’ »

Linux driver — ethX

$ ls -l /sys/class/net/*/device/driver
lrwxrwxrwx 1 root root 0 Oct 11 14:03 /sys/class/net/eth1/device/driver -> ../../../../bus/pci/drivers/skge
lrwxrwxrwx 1 root root 0 Oct 11 14:03 /sys/class/net/eth3/device/driver -> ../../../../bus/pci/drivers/8139too

Thanks to bldewolf. / Gracias a bldewolf.

Diaspora, primera vista previa de la tecnología

diaspora_large_new

Hoy estoy feliz. Tal vez ya oyeron algo sobre Diaspora, el proyecto dirigido a ser una red social como Facebook pero de código abierto y distribuída.

¿Por qué? Porque no confío en Facebook. Yo no conozco las instrucciones exactas en el software que gobierna el servicio. Siendo distribuida y de código abierto, confío en que miles de usuarios y desarrolladores podrán ver y analizar el código, yo mismo incluído. Tendré la posibilidad de ver exactamente lo que el código dice si así lo deseo. Más aún, podré publicar mi información personal en mi propio servidor en lugar de en uno centralizado que no es de mi confianza. También significa que quienes confían más en mí que en Facebook tendrán una alternativa (y un administrador de sistemas a quien sí le importe).

(Oh, y personalmente, considero la actual falta de aplicaciones similares a Farmville como una buena oferta.)

Aún estamos hablando de subir información a Internet, de modo que no se puede tomar más a la ligera que publicar información personal diariamente en un periódico o en la televisión. Si publico una imagen la puedo quitar de mi servidor, pero tal vez no podría quitarla de otro servidor a donde ya se haya replicado.

Desde el momento en que escuché de este proyecto he estado esperando a meter las manos en la masa y probarlo yo mismo. Ese día finalmente llegó. El 15 de septiembre de 2010 el equipo de desarrollo liberó el código al público en su repositorio Git hospedado en Github.

Encontré unas instrucciones en inglés para instalar Diaspora en Debian y decidí probarlas en mi caja Sid. Parece que ya no están completas (el código está cambiando rápidamente conforme avanza el desarrollo). Tuve algunos problemas iniciales, pero al final, con ayuda de la gente en #diaspora, trabajó suficientemente bien como para hacer este artículo.

Eventualmente logré que me mostrara esta pantalla:

diaspora screenshot: the login page.

El identificador de usuario tiene la forma usuario@dominio.com. Como se puede ver en la barra de direcciones de mi navegador, estoy accediendo a mi PC y no a un servidor cualquiera en Internet.

Después de algunas afinaciones logré intercambiar requisiciones de “amistad” con otra persona. Hecho esto, pudimos intercambiar mensajes bidireccionalmente.

Diaspora screenshot: last messages of my "diaspora" aspect.

Diaspora tiene estas cosas llamadas “aspectos” que se entienden como los “aspectos de tu vida”. Los dos disponibles por defecto son “trabajo” y “familia”. Cuando añades a un amigo, los añades bajo uno (¿o tal vez más?) de estos aspectos.

Los mensajes se intercambian en tiempo real. Tan pronto como publiqué el mensaje se fue directo hacia my nuevo amigo en un servidor externo en Internet donde recibió ese mensaje y se mostró en su navegador sin siquiera tener que refrescar la página. Igual de vuelta: añadió un mensaje y yo lo vi en mi navegador.

El mensaje se fue cifrado sobre el alambre (lo cual es muy bueno). Después de decodificar, esto fue lo que obtuve:

{"aes_key":"Cl2Xtq/VO [... muchas letras ...] A9lSnqEYk=",
"ciphertext":"YT47xNE [... muchas letras ...] KbqlQNx+Y="}

En mis pruebas yo no pude subir imágenes; por algún motivo fallaron. Los pantallazos de los desarrolladores muestran que las imágenes ya funcionan. Tal vez algo se rompió en los últimos días.

Básicamente, además de lo que indicaban las instrucciones, tuve que abrir los puertos de mi cortafuegos para hacerlo funcionar. Se necesita iniciar el servicio desde el script provisto en ./script/server.

También, las instrucciones recomiendan usar directamente build pero esto no cargará el websocket en el puerto 8080. Tuve que aplicar un PATH=$PATH:/var/lib/gems/1.8/bin artificialmente para incluir ese directorio en las rutas de búsqueda para que ./script/server pudiera llamar build.

MUY IMPORTANTE: Esta versión está en calidad de desarrollo (lo que básicamente se traduce a “mejor esfuerzo”) o como dicen en el repositorio Git, “pre-alpha”. Aún le falta mucho para ser usable de forma popular. Tiene problemas de seguridad conocidos (tu cuenta de diaspora puede ser adueñada remotamente); tiene fallas (la carga de imágenes está rota en algunas configuraciones); y puede ser que pierdas tus datos de diaspora, así de la nada (como en cualquier versión de desarrollo), particularmente después de alguna actualización que no salga bien. La recomendación actual es que NO SUBAS TU INFORMACIÓN IMPORTANTE todavía. Repito: es una liberación de desarrollo, una vista previa. Está en una etapa muy temprana. Hasta puedes llamarla “prototipo” si gustas pero acepta los riesgo según estén el día de hoy.

Si lo quieres probar por ti mismo, revisa el Wiki de Diaspora. Incluye información sobre servidores públicos, instalación, terminología que yo no leí y que pudo haber evitado desperdiciar tiempo valioso de la gente de #diaspora. Ahora es un buen momento para agradecerles.

Equipo de diaspora: ¡gran trabajo!

Diaspora, first Technology Preview

diaspora_large_new

I’m so glad today. Some of you may have heard of Diaspora, the project aimed to be a social network like Facebook but open source and distributed.

Continue reading ‘Diaspora, first Technology Preview’ »

Se pospone en Tijuana el Día Mundial del Software Libre 2010

A todos:

Por motivos de último minuto que están fuera de nuestro control, el evento del Día Mundial del Software Libre que habríamos de realizar en Tijuana el 18 de septiembre de 2010 se pospone.

Estaremos informando de la nueva fecha y lugar en este blog y en la página oficial del SFD: http://sfd.gultij.org/

Nuestra intención es posponerlo para principios de octubre, pero aún no es seguro.

Mucho agradeceré que hagan extensivo este anuncio para ayudarnos a evitarle a la gente una vuelta en vano a CECUT. De igual manera, será importantísimo que nos ayuden nuevamente cuando tengamos preparado el anuncio con la nueva fecha y lugar, para correr la voz lo más pronto posible a toda la gente.

El CECUT y el GULTIJ agradecen a todos su respuesta ante los preparativos del evento. Este tipo de circunstancias son las que hacen relucir la importancia de la participación de la comunidad. Aún cuando parece indirecta, ésta es tanto o más importante que la del Comité Organizador mismo.

Estamos haciendo todo lo posible por hacer los arreglos correspondientes para contar con un evento de gran calidad y que 2010 año no pase sin festejo.

Breve prueba de VNC Inversa, documentada

Esta es una nota rápida para documentar una prueba de conexion VNC inversa (Reverse VNC).

A diferencia de una conexión regular de VNC, en la cual te conectas a la PC a controlar, en una conexión inversa de VNC, la PC a controlar se conecta a ti. El control es en la misma dirección pero la conexión está invertida.

El beneficio? No tener que preocuparse sobre el estado de red ni direcciones de la PC remota. Suele ser más fácil iniciar conexiones que recibirlas. Así, quien tiene mejor conocimiento de redes será el que escuche y el alma en pena será el iniciador. Esto mueve las preocupaciones de red al “escuchante” del socket, justo donde deben estar en este caso en particular. Además, con el estado actual de IPv4 lleno de NAT, el mal necesario, no habrá que preocuparnos sobre la configuración de NAT / port forward en el router remoto.

Conformación de la prueba

La prueba se conforma de mi estación de trabajo de escritorio corriendo Ubuntu y mi laptop corriendo Windows, ambas en el mismo dominio de broadcast de Ethernet. No se toca gateway alguno en la prueba.

Nota: la prueba se realizó con software en inglés, de la cual traduje al español. La traducción podría no ser exacta en comparación con la versión en español del software.

Las características de mi estación de trabajo:

  • Sistema operativo: Ubuntu Lucid Lynx (10.04).
  • Paquete de VNC: xvnc4viewer 4.1.1+xorg4.3.0-37ubuntu2.
  • Rol: Computadora de control (cliente VNC). En un caso real aquí es donde yo estaría sentado y controlando computadoras remotas.
  • Dirección IP: 192.0.2.10 (esta dirección es falsa, para documentación según RFC 5735).

Características de la laptop:

  • Sistema operativo: Microsoft Windows XP SP3.
  • Paquete VNC: TightVNC 1.3.10, instalado de la colección OpenDisc.
  • Rol: PC a ser controlada (servidor VNC). En la vida real, esta sería la PC que recibiría soporte técnico por mí..
  • Dirección IP: 192.0.2.20 (esta dirección es falsa, para documentación según RFC 5735).

Pasos realizados para establecer la conexión

En la estación de trabajo (el cliente VNC, computadora de control):

  • Abrí una terminal
  • Ejecuté vncviewer -listen
  • Se debe recibir un mensaje como “main: Listening on port 5500″ (”escuchando en puerto 5500″)

En la laptop (el servidor VNC, la computadora a ser controlada):

  • Me fui a Inicio » Todos los programas » TightVNC y ejecuté Lanzar Servicio de TightVNC
  • Si aparece la ventana Propiedades, deshabilitar “Aceptar conexiones” y hacer click en OK (sólo por seguridad).
  • Click derecho en el icono de Servidor TightVNC en la bandeja de sistema y escoger Agregar nuevo cliente…
  • Ingresar la dirección IP de la estación de trabajo, en este ejemplo, 192.0.2.10 y hacer clic en OK o presionar Enter.

Notas

  • La prueba fue realizada con el Firewall de Windows habilitado. Podrías recibir un mensaje como Para ayudar a proteger tu equipo, el Firewall de Windows bloqueó algunas de las características de este programa. | El administrador del equipo podría ayudar a desbloquear el siguiente programa: TightVNC Win32 Server cuando al correr el Servidor TightVNC. Se le puede dar simplemente “Aceptar” puesto que esa PC será la que inicie y no la que escuche. Este mensaje se inhibe al deshabilitar Aceptar conexiones en la ventana Propiedades del Servidor TightVNC.
  • La prueba fue repetida usando una cuenta restringida de Windows con resultados satisfactorios. Esto te da gran flexibilidad. Podrías hasta hacer una versión portátil del servidor de TightVNC siguiendo el paso de las instrucciones en esse documento sobre VNC en el blog TinyApps.Org
  • Dependiendo del ancho de banda y latencia disponibles, podría ser necesario ajustar el servidor en la ventana de propiedades.
  • Noté una demora algo larga durante el primer intento de conexión, incluso llegando a fallar. En el segundo intento funcionó bien. Quiero suponer que tiene que ver con demoras de resolución de DNS y el caché, pero eso es mera especulación.

Se aceptan comentarios. Si conoces instrucciones para este mismo escenario usando otra plataforma, publícalo en tu blog y enlázalo desde un comentario aquí, o escríbelo directamente en un comentario.

Quick Reverse VNC test, documented

This is a quick note, documenting a quick successful test on Reverse VNC connections.

Unlike regular VNC connections, in which you connect to the controllable PC, in a Reverse VNC connection the controllable PC will connect to you. The control is in the same direction, but the connection is reversed.

What’s the benefit? Not having to worry about the network status and addresses of the remote PC. It is usually easier to initiate connections than to receive. This lets the guy with better network understanding to be the listener and the poor soul to be the initiator. This will put the network worries near to the tech support guy, where it should be for this particular scenario. Also, as with the current state of IPv4, full of the evil but necessary NAT, you will not have to worry about router NAT / port forwarding configuration in the remote router.

Test setup

The test setup consisted on my desktop workstation running Ubuntu and my laptop running Windows, both on the same Ethernet broadcast domain. No gateway was involved in the test.

The desktop workstation had the following characteristics:

  • Operating System: Ubuntu Lucid Lynx (10.04).
  • VNC package: xvnc4viewer 4.1.1+xorg4.3.0-37ubuntu2.
  • Role: Controlling computer (VNC client). In real life here is where I would sit and control other computers.
  • IP address: 192.0.2.10 (this is a fake, RFC 5735 documentation address).

The laptop had the following characteristics:

  • Operating System: Microsoft Windows XP SP3.
  • VNC package: TightVNC 1.3.10, installed from the OpenDisc software collection.
  • Role: Controlled computer (VNC server). In real life this would be the PC receiving remote tech support from me.
  • IP address: 192.0.2.20 (this is a fake, RFC 5735 documentation address).

Steps performed to establish the connection

On the desktop workstation (the VNC client, controlling computer):

  • Opened a terminal
  • Ran vncviewer -listen
  • You should get a message like “main: Listening on port 5500″

On the laptop (the VNC server, controlled computer):

  • Went to Start » All Programs » TightVNC and ran Launch TightVNC Server
  • If the Properties window pops up, disable “Accept socket connections” and click OK (just for security reasons).
  • Right click on the system tray TightVNC Server icon and choose Add New Client…
  • Enter the IP address of the desktop workstation, in this example, 192.0.2.10 and click OK or hit Enter.

Sidenotes

  • The test was done with the Windows Firewall enabled. You might get a message like To help protect your computer, Windows Firewall blocked some of this program features. | The computer administrator may unblock this program for: TightVNC Win32 Server when running the Tight VNC Server. You may safely click “OK” because you will initiate connections and not listen for a connection. This message gets inhibited by disabling Accept socket connections in the Properties window.
  • The test was repeated using a restricted Windows account, with a successful result. This gives you a lot of flexibility. You might even try making a portable TightVNC server by following the Step 2 from the instructions on this VNC document from the TinyApps.Org blog
  • Depending on the available bandwidth and latency, it might be necessary to tweak the server on the Properties window.
  • I noticed a somewhat long delay on the first connection attempt, in one case even leading to a connection failing. On the second try it worked fine. I would guess this has to do with DNS resolving delays and caching, but it’s just speculation.

Comments welcome. If you have instructions for the same scenario on different platforms, post it on your blog and link it from a comment, or write it directly on a comment.

El Senado Responde, 14 de junio de 2010



Transcripción de El Senado Responde del 14 de junio de 2010.

Yo soy ingeniero, no abogado, y actualmente me desempeño en telecomunicaciones y redes de Internet. Me apasiona trabajar en esto. Mi trabajo es hacer que unas máquinas puedan hablar e interactuar entre sí para proveer soluciones de telecomunicaciones. Debido a que estos equpos no tienen un cerebro como el humano, se les deben dar una serie de instrucciones y reglas muy exactas y definidas que las máquinas acatarán al pie de la letra, a pesar de que estas reglas estén mal. Por eso los ingenieros tenemos visiones globales. Ponemos a prueba nuestra capacidad de hablar sin cometer errores, pues, si los equipos se equivocan el error es de nosotros.

Aunque algunas de estas reglas son propias de una marca y se mantienen privadas, otras están publicadas (como las de Internet) y deben seguirse al pie de la letra para que entre equipos de diferentes fabricantes puedan transportar tus bits hacia la nube. Son documentos extensos y detallados, difíciles de seguir. Debemos tener una capacidad profunda de análisis y amplia para plantear escenarios de “peor caso” y adelantarnos a las fallas.

Lo descrito anteriormente tiene una similitud con las leyes. Las leyes se comparan con esas reglas y se puede comparar a los humanos como las máquinas que se sujetarán a esas especificaciones. Por eso me he atrevido en los últimos tres posts a criticar iniciativas de ley, desde mi personal punto de vista y sobre las cuales tengo conocimiento de causa.

Más allá de eso, he discutido con amigos muchas ideas en pro de México y de mi persona. Algunas han sido planteadas por ellos y otras por mí, en muchos casos sin haberlas oido previamente.

Decía que me apasiona trabajar en redes de Internet. Internet es una herramienta que ha costado millones de dólares a miles de empresas e instituciones pero que, entre otras cosas, ha permitido la comunicación abierta de la gente. Siempre soñé con poder escribirle un mensaje de correo electrónico a gente conocedora que no está a mi alcance para conocer de primera mano sus opiniones. Leer los comentarios de personalidades como Richard Stallman, Linus Torvalds y otros, que son auténticos genios y líderes de lo que hoy conforma el Movimiento de Software Libre, me permite conocer lo que existe dentro de su cerebro, empaparme de su modo de pensar y formarme mi propia opinión con la certeza de saber que sus comentarios no han sido manipulados y provienen directamente de sus brillantes mentes.

El lunes culminó un experimento en mi país que me ha dejado perplejo de emoción: muchas preguntas que yo tenía fueron escuchadas y contestadas por una persona que está en el meollo de lo que ocurre entre los peleoneros del Congreso, entre los que tienen o deben tener, un conocimiento amplio y profundo de las leyes de nuestro país, así como de sus mecánicas de legislación.

No sé cómo se organizó este ejercicio, pero sé que sin Internet esto no hubiera sido posible. A través de uno de los productos Google se plantearon, durante dos semanas, preguntas que serían respondidas directamente por el Presidente del Senado de la República, el Senador Carlos Navarrete (@navarretecarlos). Abiertamente pudimos votar por las preguntas. Yo me enteré tarde como para tener suficientes votos (a 2 días de terminar el plazo), así que no publiqué preguntas, pero voté por las que me parecieron mejores. Conforme votaba me di cuenta de que eran preguntas planteadas por mí mismo hace algún tiempo. Aunque no publiqué preguntas, me sentí representado por las preguntas de otros internautas. Inquietudes como el ACTA, la adopción de software libre, la simplificación de impuestos, los salarios de los legisladores y la eliminación de plurinominales, fueron preguntas que tuvieron mucha popularidad. Esperé ansiosamente ver el desenlace de esta actividad.

El senador respondió como corresponde. Aún cuando el ejercicio no sea decisivo en el rumbo de México y pueda decir misa, el que un senador experimente ese acercamiento de primera mano con los internautas interesados permite que conozca que existen estas opciones y comparta su experiencia con otros diputados; permite que estas tecnologías que facilitan la democratización lleguen a la cúspide de la generación de nuestras leyes; permite que nosotros sepamos de primera mano la información sin distorsión interesada y amarillista de la prensa; permite que se reduzcan los mitos; permite que nos haga solicitudes directamente a la ciudadanía; permite, vamos, ese cliché llamado “acercamiento”.

Se difundió el video, se digitalizó y se subió a YouTube. Véanlo, difúndanlo, coméntenlo, compártanlo, discútanlo con sus amigos. Creo que la comunidad de internautas (la mayoría geeks) hemos hecho algo por nuestro país.

Por supuesto que tengo críticas a las respuestas del Senador, pero no los pondré esta vez, pues creo que el beneficio y lo inaudito del ejercicio supera por mucho cualquier comentario mío. Ya habrá tiempo y momento para eso.

Un saludo fuerte a @lion05 y a @pizu a quienes sigo en Twitter. También a otros twitteros que no sigo, pero cuyos identificadores escuché en el video y seguramente comenzaré a seguir. Me dio gusto sentirme parte del experimento a través de mis votos y emoción de sentirme representado con preguntas que ustedes formularon tal como existen en mi mente.

También puse la transcripción de El Senado Responde del 14 de junio de 2010 en mi servidor, por si la URL original deja de funcionar.

Creo que vale la pena, también, enlazar a la convocatoria en video a El Senado Responde.