OpenOffice Extras

Interesante web OOExtras con cliparts (imagenes) y templates (plantillas) para OpenOffice, en la sección Labels he encontrado plantillas para impresión de carátulas de CDs, tanto para la caja como para el CD en sí. En la sección English también se puede encontrar todo tipo de plantillas como facturas o notas para la compra, y en la sección Impress hay un listado con presentaciones predeterminadas.

Para instalarlos no hay más que bajarse las plantillas que queramos y copiarlas al directorio de templates, en la misma web hay instrucciones más detalladas.

OpenVPN

He escrito un pequeño artículo en GPL Tarragona sobre OpenVPN que es el programa que utilizo para crear redes virtuales privadas de forma segura (OpenSSL) para mi red wireless o incluso para acceder desde Internet. Muy buen programa 🙂

Artículo: OpenVPN – Solución para montar una red wireless segura

OpenVPN es un demonio utilizado para crear redes privadas virtuales (Virtual Private Network). Esto significa que es capaz de enlazar 2 nodos (e.g. nodo A conectado a una red privada y a Internet, nodo B en cualquier otra parte del mundo con conexión a internet) de forma que parezca que estan en la misma LAN (e.g. B puede conectarse con cualquier ordenador de la red de A como si realmente estuviese físicamente en dicha red). Además, esta conexión entre los 2 nodos puede ir encriptada utilizando OpenSSL, lo que se convierte en una herramienta idónea para ser utilizada en redes wireless de forma segura.

La primera ventaja de OpenVPN es que se encuentra bajo la licencia GPL, es decir, es software libre. Puede utilizar tanto TCP como UDP para comunicar los 2 nodos extremo, recomiendan el uso de UDP por cuestiones de congestión de la red. En un principio no entendía esto ya que UDP no tiene control de errores y por tanto se podrian perder paquetes, por eso me decante por utilizar TCP. Poco después me dí cuenta que mis razonamientos eran incorrectos, openvpn vendría a representar una capa inferior y las capas superiores utilizarían TCP, es decir, es posible usar openvpn con UDP ya que el control de errores se hará a un nivel superior, por ejemplo cuando conectemos a una web. Es lo mismo que la propia Internet, el medio físico no te garantiza que el paquete vaya a llegar correctamente y tienes que poner controles en capas superiores. Aquí el medio físico vendría a ser UDP.

En la misma página de OpenVPN existe un HOWTO muy completo que explica como configurarlo y ponerlo en marcha, así que no explicaré aquí nada al respecto.

Una vez tenemos montados dos nodos con OpenVPN, estos se comunicaran utilizando el puerto 5000 UDP por defecto, aunque como ya he dicho es posible cambiar a TCP. Se utilizarán certificados RSA para la autentificación (es posible utilizar un método alternativo pero menos recomendable) de forma que solo los PCs que autoricemos podrán acceder a la red virtual.

¿Como encajar todo esto en una red wireless? La encriptación WEP de las redes wireless es una medida insuficiente a la hora de intentar proteger nuestro tráfico, es posible romperlo y por tanto estamos expuestos a que cualquier persona próxima a nuestra red pueda ver nuestro tráfico (contraseñas de cuentas de correo, conversaciones de chat, contraseñas web que no usan SSL…). Por tanto hay que buscar una alternativa para protegernos y OpenVPN encaja a la perfección.

Lo tengo instalado en mi casa y por ahora funciona de maravilla, una vez en marcha tengo acceso a todos los PCs de mi red cableada y acceso completo a Internet desde mi portatil con wireless, todo de forma encriptada y solo abriendo el puerto 5000 UDP en ambos Pcs (mi portatil y el Access Point). También lo he probado utilizando Internet, es decir, estando con mi portatil en la Universidad activar la red privada virtual teniendo acceso a mi red de casa como si estubiese conectado alli mismo, me ha sorprendido gratamente porque a pesar de la conexión pobre que tengo funciona muy bien (evidentemente la velocidad decrece utilizandolo de esta forma, pero es muy usable).

Armagetron

Hoy he descubierto dando classes de Software Libre un juego fantastico (libre, of course ;-)) gracias a Jonathan: Armagetron. Es como el juego de las serpientes pero en 3D y con posibilidad de jugar en red (tanto de forma local como desde internet). Lastima que no tenga tiempo para perder con estas cosas 😉

Gnome Notifier

Miguel de Icaza ha posteado en su blog un pequeño hack que permite tener notificaciones al estilo msn messenger en gnome, muy interesante. Lo suyo seria que se integrase esta funcionalidad en el panel de gnome tal y como comenta el propio Miguel.

Por cierto, a mi no me ha funcionado el make install pero se puede probar sin problemas de forma local, sin realizar la instalación y llamando a ./gnome-notifer o ./notify ‘texto’.

MonoDevelop 0.1

Este viernes salió la versión 0.1 de MonoDevelop después de esperar toda una semana inexplicablemente, según Todd Berman el código fuente ya estaba listo y solo faltaban binarios para algunas distribuciones. No entiendo porque no puso al alcance de todos el código en cuanto lo tuvo.

Hoy lo he probado y me ha decepcionado mucho, no es que no hayan trabajado, todo lo contrario… han invertido mucho en el editor. Pero antes de hacer la 0.1 Todd comentó en la lista de que informasemos de los bugs que encontrasemos de última hora, yo informé de unos cuantos. Según Todd todos los que reporté estaban ya solucionados, por supuesto yo no tenia acceso a esa version con los bugs arreglados y me basaba en un snapshot viejo. Ahi ya empezamos mal, como puedes pedir a la gente que te reporten bugs si no ofreces la última versión? Pero lo que me decepciona es que alguno de los bugs que reporté y que el me dijo que estaba resuelto sigue ocurriendo en la versión 0.1. Me hace pensar si es cosa de mi sistema 😕 Pero la verdad es que me entristece que ocurra esto 🙁

Por lo que he podido experimentar aún no es usable el editor, una pena.

Microsoft Nmap (R)

A través de un mail he llegado a una web donde describen como seria la utilidad nmap si hubiese sido creada por Microsoft. Nmap es una utilidad imprescindible para cualquier tema relacionado con la seguridad de redes de computadores, su principal objetivo es permitir el escaneo de puertos usando diferentes técnicas. Y aqui esta el arítuclo: Si Microsoft hubiese escrito Nmap

BloggerAPI XML RPC.NET desde Mono

Bueno, voy a reescribir el post perdido. Comentaba que esta noche he estado jugando casi de casualidad con XML RPC.NET para acceder a mi blog usando la BloggerAPI, es decir, sin usar el navegador y desde un programa escrito en C#.

Después de buscar información sobre BloggerAPI he encontrado MetaWeblog, un futuro estándar para este tipo de aplicaciones. Por desgracia wordpress no parece entenderlo correctamente a pesar de estar soportado, asi que decidí decantarme por intentar usar BloggerAPI.

Las librerias XML RPC.NET no me compilaron a la primera y tuve que hacer una pequeña modificación del archivo “src/XmlRpcAsyncResult.cs”, la linea 163 cambié “userCallback.Invoke(this);” por “userCallback(this);” y a continuación compile ejecutando desde el directorio “src/”: mcs /target:library /out:CookComputing.XmlRpc.dll *.cs -r System.Web.dll -r System.Web.Services. Esto genera el archivo CookComputing.XmlRpc.dll el cual lo copié a otro directorio donde crearia las clases C# para poder hacer las pruebas.

A continuación miré como hacer un cliente usando XML RPC e implementé una clase que permite acceder a blogs usando BloggerAPI desde C#. Es bastante sencillo ya que me funciono la primera llamada (newPost) a la primera. La clase en cuestión la tengo en el fichero BloggerApi.cs (sólo estan testeadas las funciones newPost y getRecentPosts):

Actualización Corregido pequeño error en el código test producido al copiar/pegar y añadida la sentencia de como compilar el código.

(more…)

Un par de hacks para gnome-blog

Acabo de implementar un par de hacks que me permiten postear desde gnome-blog a mi blog basado en wordpress.

El primer problema que tenia era que gnome-blog utiliza XMLRPC para realizar el post en wordpress y tanto la entrada de datos como la comunicación se realiza con la codificación UTF-8 (según he leido parece ser que XMLRPC usa siempre UTF-8). Esto hacia que los acentos no se mostrasen bien en mi blog ya que ni el servidor apache ni mi página web usa UTF-8, utilizo iso-8859-15.

Después de pelearme un buen rato con el código de gnome-blog, consigo enviar los datos en iso-8859-15, pero el servidor no es capaz de entender mi petición y la rechaza. Así que opto por ver como esta implementado el xmlrpc.php de wordpress. Observo que lo trata todo como UTF-8 asi que aqui llega el primer hack 😉 Decido añadir una pequeña función que me convierta de UTF-8 a iso-8859-15 justo antes de que la función introduzca los datos en la BD de wordpress. Y bingo! Funciona 😀

A continuación observo el segundo problema, gnome-blog tiene 2 campos de entrada: el titulo y el cuerpo del post. Por algun motivo que desconocia, a la hora de hacer el post, wordpress no cogía el titulo y lo ponia todo como texto normal con título vacio. Asi que me pongo a dar alguna vuelta por xmlrpc.php de nuevo y veo que el titulo solo lo coge si viene rodeado de , pero es una solución demasiado engorrosa y es posible que se me ovlidase. Más cómodo así.

Si alguien quiere que le facilite los parches no tiene más que decirmelo. Es genial poder tener acceso al código fuente para adaptarlo a tus necesidades, me encanta el software libre 😀

mldonkey

Acabo de descubrir mldonkey como programa P2P. No es que no lo conociese antes, pero ayer lo instalé y configuré en mi máquina vista la incapacidad de bajarme nada con Apollon (usa gift para conectarse a redes FastTrack/Kazaa).

Me ha fascinado la idea esa de poder tener tu server ahi descargando y acceder a su estado por telnet, web o aplicación gráfica. Es genial, lástima que no tenga una buena conexión 🙁

Warnings de Mono

Acabo de descubrir que los warnings que me daba el compilador de Mono versión CVS también me los da el de la última release (0.30):

** (../../mcs/mcs.exe:9624): WARNING **: Shared memory sanity check failed.
 
** (../../mcs/mcs.exe:9624): WARNING **: Failed to attach shared memory! Falling back to non-shared handles

La solución era sencilla “rm ~/.wapi/*” (la he encontrado en mails viejos de la misma lista de correo de mono). Ya que estoy mantendré la decisión de utilizar las releases en lugar de CVS para gentoo gplurv.