Archive for May, 2004

Harpsichord Concerto

Tuesday, May 25th, 2004

Pues últimente me ha dado por escuchar música clásica =/, hace mucho había bajado un chingo de mp3’s más los discos de mi jefe.. creo que es el tercer ‘genero’ de música que tengo más en mis máquinas (Goth, 80’s, Clásica).. pero en fin.. nada como escuchar a Bach mientras uno tira código en chinga ;) .

Bien, mientras descansaba en un carril en la alberca (y no.. no tengo alberca en mi casa, advierto porque puedo herir a grupos de la izquierda ‘revolucionaria’) me puse a pensar.. ¿qué le falta a mbloggy para que lo pueda liberar rápido?, ¿en qué la ando cagado?.. y llegué a una gran respuesta.. me ando complicando la vida con tantos plugins y validando, no tiene caso tener plugins para cada sitio y que aparte cada plugin tenga lo mismo, mejor hago un plugin generico y lo que cambie sea el webservice, y de esta manera pueda hacer un bonito wrapper que comuniqué al cliente con los plugins (mbloggy de SOAP, LiveJournal, blogger, etc), de esta manera podría soportar a todos los webservices y terminar en chinga.. es lo que tiene daybook y por eso lleva lo que lleva :) .

Así que.. manos a la obra, a mejorar esa forma de manejar plugins por el Assembly.Loader y a hacer objetos!!.

La rola del día:
Harpsichord Concerto, la 3, de Bach
y Rhapsody On A Theme Of Paganinni, de Rachmaninoff

:-)

A veces vivimos nuestra vida sintiendonos encadenados, sin saber que nosotros tenemos la llave.

Monday, May 24th, 2004

Pues antes que nada pido perdón por la estupidez que acabo de hacer, pero me ganó mucho la curiosidad de entrar a Cofradía tras meses de no entrar.. si antes yo decía cosas aberrantes de como se ha ido jodiendo al comunidad, ahora puedo incluso.. hasta escupir.

Realmente no entiendo cual es la pinche necedad de que la comunidad haga convenios con el gobierno.. y ando hablando de e-México cuando a las pocas notas (creo que 4) se publica una nota.. pues.. si se le entiende al chiste que el Pop trató de hacer, pero se hace la manera más estúpida de que las personas abran los ojos con buena fé hacía el software libre.

¿De qué chingados hablo?

Veamos.. si vamos a Cofradía a la nota de e-México y en la página principal de Cofradía y tres notas arriba encontramos un post.. pues realmente de lo más estúpido si realmente se quiere lograr lo de e-México.

Algo que me da mucha risa de ese post es que es 100% mexicano, se prometen y se prometen mil cosas.. pero me hubiera gustado (al menos a mi y creo que a muchos otros) que se le hubiera entregado una hoja con los proyectos mexicanos (de SL) que se han hecho en la comunidad.. eso son hechos chingao!, nada de: “mira mi amor, si me dejas entrar prometo hacer esto y esto”, si lo que se busca es una rebanada de pastel para los últimos días de tu vida ps ni pedo, pero ¿para que embarrar de mierda a otros con tanta pinche corrupción y mierda política?.. no entiendo. Cada que tengo vacaciones me voy una o dos semanas al pueblo de mi jefa y ese post me recordó mucho una plática de un señor que llegó a pedir apoyo para un proyecto (de lo más estúpido): “no no no.. usted deme un local y la renta y yo le prometo que voy a ganar mucho dinero y le voy a dar no se cuanto”, obviamente.. cuando le preguntaron que había hecho el o sus amigos.. referencias DE ACUERDO a lo que iba a pedir.. el pobre señor dijo: nada.. que chistoso..

Pero en fin, recuerdó como fue bajando el sitio de Linux Para Todos (cuando yo entraba diario y me gustaba preguntar/responder en los foros).. tal parece que la historia se repite, digo.. eso lo enseña la historia, no?, solamente para el Pop: Acuerdate, nuera, de que tambien seras suegra. Se me hace aberrante mandar posts pidiendo ayuda y luego haciendo una burla por demás estúpida como teniendo la confianza que todo se va a lograr.. lástima que los ‘fans’ de muchas personas les guste jugar así con los pobres ‘fans from hell’ que le siguen.. pero en fin..

Lo curioso de ese post, es que las ‘recomendaciones’ que dan en los comentarios, se me hacen de lo más estúpidas y sin sentido, pero en fin.. todo por un poco de fama.

Prelude and Fugue in e minor

Monday, May 24th, 2004

Pues el fin de semana aparte de ’según’ descansar (digo según ya que me la pase ocupado con un familiar), en los ratos que podía usar la computadora me dí a la tarea de mejorar a mBloggy, ¿para que mejorarlo?, pues el pasado Jueves se me ocurrió compilarlo y prrr.. tronaba como ejote, cuando lo había escrito era en una versión de gtk-sharp MUY VIEJA y la nueva versión (la que anda en Debian SID) pues ya era otra cosa.

Uno de las diferencias (y mejoras) fue la de el PopdownStrings de un GtkCombo, antes tenía que hacer circo maroma y teatro para pasar un HashTable a una lista de GLib, ahora no, ahora lo puedo pasar con un simple string [] :-) .

También me bajé el source code de daybook, que es parecido a lo que ando haciendo pero va a soportar XMLRPC (al parecer solamente, ya que no le encuentro manera que vaya a soportar SOAP), el diseño de daybook me gustó mucho y tomé muchas ideas, antes eran Gtk.Windows las que tenía para cada ’sección’, las he cambiado por Gtk.Dialogs, se nota la diferencia, aparte que no tengo que pelearme en cerrar el objeto, con un simple AutoDestroy ya quedó :-) y se nota más rápido.

El diseño ya lo tengo, solo me falta crear un plugin completo (me falta agregarle dos funciones al webservice de blog.php en jaws) y a probar!, y como había dicho antes, ahora no van a tener que compilar el mBloggy por cada nuevo plugin, basta con instalar el plugin en alguno de los directorios y al arrancar mBloggy los va a buscar y validar (un plugin es un simple .dll), me sirvió mucho un artículo que me pasaron de Miguel: Plugins in Mono.

Muchos me han recomendado usar Interface para los plugins, pero no es lo que buscó, mi idea es que el usuario con un comando pueda crear su plugin, con wsdl, de tal manera que no tenga que reescribir toda la clase que wsdl le da y pasarla una Interface.

En fin, solo me falta probar los plugins y si funcionan luego luego pues a crear más.

Igual, en un mail que mandé a la lista de desarrolladores de Drupal anunciando a mbloggy, el desarrollador principal me mandó un mail agradeciendo y que le explicara como iba a funcionar y si tenía otro proyecto en mente, le he platicado de el CMS Admin y le ha gustado mucho, me ha invitado a formar parte de Drupal Devels para todo lo relacionado con SOAP :-) , le he dicho que sí (pinche hocicon que soy).. pero que me espere un tiempo.

Aparte de mbloggy tengo que hacer un proyecto para el Tec, que es un pequeño sistema para administrar todo lo de Telefonía y los equipos Nortel.

… no sé distinguir lo complicado de lo simple…

Monday, May 17th, 2004

Pues desde ayer me di a la tarea de volver a meter VPN’s en mi casa. Los que las hayan hecho, saben bien que es un verdadero relajo hecharlas a andar, aparte que hay que parchar el kernel y circo, maroma y teatro.. pero me surgió la duda, ¿se podrá crear una VPN sobre una conexión SSH?, fácil, apunté mi Firefox a google y busqué vpn+ssh, el resultado fue exitoso!.

Una vez con toda la información necesaria me di cuenta de lo sencillo que era hacerlo con una ssh, ya que simplemente se crea un tunel con una conexión ssh entre dos máquinas (bueno, luego se pueden ir enlazando), total, en menos de tres horas ya tenía mi conexión VPN con dos servidores que frecuento mucho. Hoy he creado una nueva conexión VPN entre mi casa y el servidor de la escuela, lo fantastico es que a cada conexión le voy dando permisos con iptables.

Pero bueno, no solamente estoy escribiendo para ‘alardear’ de lo chingón que soy (mi ego, por Dios!!!), no!, he creado un pequeño script para establecer la conexión, hay muchos en google, pero todos suponen MUCHAS cosas y que MUCHAS veces no funcionan, el script lo van a poder encontrar aquí: vpnoverssh.

Bueno, antes quiero aclarar unos puntos del archivo y una breve explicación de lo que hace.

SSH_HOSTNAME=pablo.com.mx
SSH_USER=vpn
SSH_OPTS="-P"

En el archivo hay que escribir el hostname al que vamos a hacer la conexión ssh, en mi caso (bueno en el ejemplo y en el archivo) es pablo.com.mx, esta maquina.. va a ser el SERVIDOR.

Con respecto al usuario, es algo importante, tenemos que crear un usuario en el servidor, al cual le vamos a llamar: vpn, este usuario debe tener acceso SSH, y tenemos que instalar el paquete sudo para editar luego con visudo y darle permisos al usuario de ejecutar iptables, route, pppd, ps, killall, un ejemplo a escribir en visudo:

Cmnd_Alias VPN=/usr/sbin/pppd
Cmnd_Alias IFCONFIG=/sbin/ifconfig
Cmnd_Alias IPTABLES=/sbin/iptables
Cmnd_Alias PS=/bin/ps
Cmnd_Alias KILLALL=/usr/bin/killall
vpn ALL=NOPASSWD: VPN
vpn ALL=NOPASSWD: IFCONFIG
vpn ALL=NOPASSWD: IPTABLES
vpn ALL=NOPASSWD: PS
vpn ALL=NOPASSWD: KILLALL

Bueno, ya que tenemos al usuario, tenemos que crear una llave ssh SIN password, ya sea como usuario normal en el cliente (pero dandole permisos de ejecutar los MISMOS comandos) o bien como root, ya saben como crear una llave:

# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
.....

Si queremos, le podemos dar una shell falsa al usuario vpn que corre en el servidor.

Con esto vamos a tener un archivo /root/.ssh/id_rsa.pub, el contenido de este lo debemos tener en el servidor en la cuenta del usuario vpn, en el archivo: /home/vpn/.ssh/authorized_keys. Si no tenemos el directorio .ssh, lo creamos al igual que el archivo y le damos permisos de root.vpn a /home/vpn/.ssh.

Ahora, para establecer una conexión VPN necesitamos DOS ip’s, de preferencia en otra subred, diferente a la del cliente que a la del servidor, entonces, supongamos que a la red de VPN le vamos a asignar las ip’s de 192.168.3.x, así que:

VPN_SERVERIP=192.168.3.1
VPN_CLIENTIP=192.168.3.2

De tal manera que el servidor VPN va a tener la ip 192.168.3.1 y mi cliente (la máquina en la que voy a ejecutar el script) la 192.168.3.2.

Ahora, simplemente hay que declrar los valores de cada red (muchos manuales no dicen que hay que hacerlo, pero luego se complica, así que e smejor definir las rutas correctas).

NETWORK_SERVERNET=192.168.1.0
NETWORK_SERVERNETIP=192.169.1.1 
NETWORK_SERVERNETMASK=255.255.255.0

¿Qué quiero decir con esto?, que el servidor tiene la ip local (la red, la de eth_loqeusea, que nos interesa usar en la VPN), tiene 192.168.1.1, de tal forma que NET va a ser 192.168.1.0 y el NETMASK 255.255.255.0, vamos bien?, esto lo podemos sacar del archivo /etc/network/interfaces de cada máquina, respectivamente, o bien con ipcalc.

NETWORK_CLIENTNET=192.168.0.0
NETWORK_CLIENTNETIP=192.168.0.77
NETWORK_CLIENTNETMASK=255.255.255.0

Lo anterior, es parecido al SERVER, simplemente que ahora es el cliente, es decir, DONDE ESTAMOS ejecutando el script.

Tanto del lado del servidor como en el cliente necesitamos: pppd, ssh, sudo (en server es OBLIGATORIO), route e ifconfig.

Ahora, lo primero que hace el script es hacer una conexión por medio de un tunel ssh (en el man de pppd viene como hacer esto). Lo siguiente es conectamos por SSH al servidor y mandarle un comando, el cual es agregar la ruta, que sería:

# route add -net 192.168.1.0 gw 192.168.3.2 netmask 255.255.255.0

Que quiere decir que TODO lo vaya para el segmento de 192.168.1.0 va a tener que ser ‘entubado’ a la ip 192.168.3.2 (la VPN del cliente, recordemos que una VPN es por lo general una conexión punto a punto, asíq ue la 192.168.3.2 es el ‘otro’ punto) y le agregamos el netmask.

Luego, pues agregamos al ruta ene l cliente, que sería similar, con la diferencia que todos los paquetes que vayan a 192.168.0.0, sean entubados a la 192.168.3.1 (la conexión del otro punto).

Y Listo!!!

Para matarla es sencillo, con stop, lo que hace es conectarse al servidor, busca que pppX hay que dar de baja y la da de baja, en nuestro caso, pues mata la conexión ssh que se tiene con ese servidor.

Bueno, pues ha sido un placer :-) , sé a lo que me abstengo, que en los próximos meses ‘aparezcan’ repentinamente muchos ‘gurus’ que subitamente saben montar una VPN (tal como paso con mi artículo de montar un servidor .COM) y vayan a empresas o amigos a presumir (que estúpidos, pero en fin)… Mi granito de arena

Hasta Luego!

… Así en esta banda decimos adiós

Monday, May 17th, 2004

Cinco meses esperando el día 17 de Mayo y ya es!!. Sí, la razón por la que me da tanto gusto es que he terminado el semestre, fue el semestre en el que metí las materias que no me gustan nada y ya he terminado… por fin descanso :-)

Bueno.. eso de descanso no es del todo cierto, ya que tengo muchas cosas que hacer en vacacioens, proyectitos que tengo a medias y otros que quiero empezar, aparte de.. pues hacer algo ’social’ con mi vida :-) .

¿Qué proyectos?

Pues sí, se que a muchos les viene valiendo lo mismo que a mi me vale si el peje dice hoy una babosada del gobierno federal.

Entre las cosas que quiero terminar y tengo pendientes se encuentran:

  • Jaws: Los paquetes de Debian (como les he ido prometiendo desde hace mucho tiempo, los paquetes de jaws, jaws-common, webservices, utils, etc), más soporte para mi sección (plugins), utilidades para jaws (como systema de backup en el cron), un RSS Reader, entre otros.
  • mBloggy: mi pequeño hijo que ya muchos han de conocer, un pequeño cliente que se comunica por SOAP con distintos Blogs
  • Jaws Client App: Es el mismo de mantener blogs por un cliente (en C#) que administra un blog por medio de SOAP, pero me he dado cuenta que los otros CMS ni me interesan, asi va a ser dedicado a Jaws :-)
  • Demonio de Correo: pues del trabajo, seguir desarrollando el famoso demonio para mandar mails.
  • Configurador de lineas: pues un proyecto que voy a hacer para el Tec, me lo ha encargado Jerónimo (Coordinador de Redes), proyecto MUY interesante.
  • Debian Mono: pues seguir cuidando a mis otros dos crios: mono-xsp y mono-server, así como mis nietos (aplicaciones en asp.net para Debian).

…son los principales.. creo

Y pues bueno, no todo el tiempo voy a estar conectado tirando código como animal, sino que voy a seguir con mis actividades diarias (entrenar) y tres libros que tengo pendientes, así como el de Big Fish que [friend]j0rd1[/friend] me regaló en mi cumpleaños :-) , aparte quiero aprender un idioma, ando entre: italiano, francés y portugués.

Pero bueno.. ya iremos viendo ;D.

saludos a todos!!!