Kelevra's *log
Nota mental #1

Nunca hacer pruebas en repositorios importantes.

New projects on the road

I hadn’t time to write something here, I’ve been a little busy with a few backward tasks and I’ve new school and personal projects:

  • Payroll System: This is my final project for sql classmate, I want to develop a GUI in python and qt, the database will be running in MS SQL Server.
  • IM Protocol Client/Server: This is for interfaces programming classmate, also this is a final project, It would be developed in visual basic, C or any language of our preference. I worked with c++ a couple of school periods ago, but these months I’ve been learning python, so I wondering to choose it.

Other projects in mind:

  • Finish my work porfolio: I would like to develop something with Django Framework, in the past I’ve done some little things with PHP, also I’m still learning PHP but I’d like to try web development with python.
  • Make my blog engine: I’m never comfortable with any cms, I tried wordpress, blogger, jaws, textmotion and others, now I’m with nanoblogger but I can’t import my older entries respecting the chronological order. So I started to write something in python with sqlite (to make it easier import/export entries), it will be a static weblog/page generator and I’m thinking in add a UI with ncurses, of course, a CLI will be avaible too.
  • And I’m making plans with Alex to develop some tools with Code Igniter Framework.
  • By the way, I just remember that I’ve some pending tasks to do with linux mérida too, such make some little changes in the main site and finish with the setup/design of the planet.

I think that’s all for the moment, on the other hand, I’ll submitting a english certification exam soon and I think I need more practice, thats why I’m writing in english. Please, feel free to report and correct my typing bugs.

Ya sin la melena

Sabía que un día me tendría que cortar la melena, ya sea por motivos de trabajo, escolares o X razón que lo requiera obligatoria mente, pero esta vez no fue así, me corté la melena porque ya me había aburrido. La tuve por casi 3 años, desde que terminé el servicio militar ya no iba la estética más que para que me recorten las puntas.

De un lado me siento a gusto porque me veo diferente, pero por otro lado aún no me acostumbro y no encuentro como peinarme. También volví a vivir lo que hace 3 años sentía cuando salía de la estética: El disgusto por como me quedaba el nuevo corte y porque nunca hacían lo que yo quería que hicieran con mi cabello.

Ahora ya nada más me queda el recuerdo de algunas fotos, y la melena que está ahí tirada dentro de una bolsa de plástico.

Repositorios locales/remotos git con ssh

Actualmente existen varios servicios de hospedaje gratuito para repositorios git, el único requisito es que nuestros proyectos sean opensource. Pero si no queremos que algún proyecto sea público, ya sea porque X o Y razón, tendríamos que pagar una módica cantidad.
Aunque es un precio accesible, algunos si somos bien pobres codos y por otro lado, si tenemos otro lugar para hospedarlo nos podemos ahorrar esos loritos para otra ocasión.

Esta receta puede llevarse a cabo tanto local como remotamente, para comenzar necesitaremos únicamente de git y un servidor ssh, los cuales en debian y derivados se instalan de esta manera:

# apt-get install git-core openssh-server

Para crear los repositorios nos conectaremos al servidor remoto. En mi caso hice esto localmente y decidí agregar el usuario git, ya que en mi disco duro tengo una partición dedicada para /home.

$ ssh git@git.kelevra.org

Y ejecutamos los siguientes comandos:

$ mkdir test-project.git
$ cd test-project.git
$ git --bare init # inicializamos el repositorio remoto

Con eso ya tenemos nuestro repositorio funcionando, ahora vamos a commitear algunos archivos:

$ cd projects
$ mkdir test-project
$ cd test-project
$ git init # inicializamos el repositorio local
$ git remote add origin git@git.kelevra.org:test-project.git # agregamos el repositorio remoto
$ echo 'Hello World!' > README
$ git add README
$ git commit -m 'first push'
$ git push origin master

Si todo ha ido bien, veremos algo como:

git@git.kelevra.org's password:
Counting objects: 3, done.
Writing objects: 100% (3/3), 221 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@git.kelevra.org:test-project.git
* [new branch] master -> master

Nuestro repositorio está trabajabdo bien, el password obviamente es el que le hayamos designado al usuario que creamos.
¿Pero que pasa si otros van a colaborar en mi proyecto?
Tienes dos opciones: La número uno sería que les hagas saber el password de dicho usuario, pero estar escribiendolo cada vez que vayamos a pushear algo es molesto.
La número dos y la más recomendable: Usar SSH-KEYS.

A saber, existen dos tipos de llaves, DSA y RSA, sea cual sea nuestra elección, el procedimiento para crear un par de llaves es la siguiente:

$ ssh-keygen -t dsa                                                             # cambiar por rsa según nuestra elección
Generating public/private dsa key pair.
Enter file in which to save the key (/home/kelevra/.ssh/id_dsa): .ssh/git_dsa # no es obligatorio especificar ubicación
Enter passphrase (empty for no passphrase): # escribimos una clave para usar la llave
Enter same passphrase again: # y la escribimos de nuevo para confirmar
Your identification has been saved in .ssh/git_dsa.
Your public key has been saved in .ssh/git_dsa.pub.

Hemos generado una llave pública y una privada, la pública es la que copiaremos al servidor remoto:

$ scp .ssh/id_dsa.pub git@git.kelevra.org:.ssh/authorized_keys2
git@git.kelevra.org's password:
id_dsa.pub 100% 608 0.6KB/s 00:00

Ahora ya no nos pedirá el password del usuario cada vez que hagamos push o nos conectemos para crear un nuevo repositorio, en su lugar nos pedirá la clave que le asignamos a nuestro par de llaves. Pero aún tenemos que escribir un password, sin embargo podemos usar ssh-agent que recordará por determinado tiempo nuestras claves, para iniciar este agente basta con teclear en la terminal:

$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-RwRst31999/agent.31999; export SSH_AUTH_SOCK;
SSH_AGENT_PID=32000; export SSH_AGENT_PID;
echo Agent pid 32000;

Ya una vez corriendo el agente agregamos nuestra llave:

$ ssh-add .ssh/git_dsa
Enter passphrase for .ssh/git_dsa:
Identity added: .ssh/git_dsa (.ssh/git_dsa)

¡Y listo! Nos conectamos de nuevo vía ssh o hacemos otro push para comprobar que ya no nos pide el password del usuario y de la llave ssh. Y ahora si ya tenemos nuestro servidor de repositorios git bien sencishito y carismático

Ya estoy de vacaciones

¡A huevoooooo!

Que fin de semana

Aunque ya se me conoce lo fiestero, por lo general siempre ando de bar en bar, pero este fin se semana si hubo fiesta, el viernes se armó la chupi party en el rancho de Mariel. Entre las cosas chidas que hubo: nuevas caras, alcohol, desmadre y cotorreo, shots y más alcohol hasta el amanecer.
El sábado me la pasé durmiendo toda la tarde y no salí a embriagarme, preferí curar la cruda con café y salir a dar una vuelta con la familia.

El domingo me desperté temprano y aunque no comí las respectivas tortas de cochinita, Alex me marcó avisandome que ya andaba en la isla y fuimos por unas frías junto con Anakinz. Después de eso aún era temprano y faltaba como un par de horas para que se oculte el sol, había tiempo para ir a tirar unas olas pero en su lugar nada más nos quedamos a echar desmadre en Machito’s Kame House. Grabamos algunos videos, uno de ellos lo publiqué en un post anterior. Eran alrededor de las 22:00 cuando fuimos a cenar unas tortas y panuchos, luego fuimos a dar un maleconazo.

Hoy en la mañana del lunes, me desperté algo temprano y estuve cuidando a mi hermanito, en eso se solicitó mi presencia en el irc. Después de un rato vinieron por mi hermanito y me fui a casa de Alex a chayotear el internet, ya que había sacado la w3lan del vecino. Ya más tarde me fui a comer a casa de mi abuela, regresé a devolverle el celular (me lo había llevado para cargar la batería) y caí en mi casa a terminar algunos pendientes.

Por otro lado hoy fue cumpleaños de mi viejo y no lo felicité porque en todo el día creo que sólo lo vi como dos minutos, pero bueno, probablemente no lea esto pero espero que se la haya pasado bien en su día, como siempre.

A partir de mañana empiezan mis exámenes finales, aunque sólo presentaré tres de seis porque en las otras tres materias entregaré proyectos finales equivalentes a la calificación final. Además tengo algunos pendientes laborales y ya terminando esta semana oficialmente tengo dos semanas de vacaciones (escolares) las cuales creo que serán suficientes para disfrutar en la playa, terminar pendientes y sobre todo pasarla bien.

My battery is dying


kelevra @ kimdracula:[~]
$ acpitool -B
  Battery #1     : present
    Remaining capacity : 1539 mAh, 100.0%
    Design capacity    : 2200 mAh
    Last full capacity : 1539 mAh, 69.95% of design capacity
    Capacity loss      : 30.05%
    Present rate       : 0 mA
    Charging state     : charged
    Battery type       : rechargeable, LION
    Model number       : UM08A31
    Serial number      : 13DE

Aburrimiento en la escuela

Ya en la parte final del 3er cuatrimestre, ya solo queda entregar proyectos e ir a perder el tiempo porque ni clases hay y si las hay nadie pone atención.

vim chupiprty.py

#!/usr/bin/env python
# -*- coding: utf8 -*-

plop = 1
while plop <= 100:
    print plop, "Tengo que bajarle de huevos a mis pinches pedas.\n"
    plop = plop+1
print "¡Chale!"

¡Bajan!

Hace poco más de dos semanas que no tengo mi moto, no he tenido suficiente dinero y tampoco me he tomado la molestia de salir a preguntar cuanto cuestan las refacciones.

En un principio andaba caminando, pero era molesto andar con dos playeras -una de reserva para cuando sude la que llevaba puesta- así que decidí investigar un poco sobre las rutas del transporte público y ahora me muevo más cómodo.

Me relajo más viendo como pasa la gente caminando o en sus vehículos mientras espero a que pase el camión a diferencia de cuando iba caminando que solo me la pasaba mentando madres. Ahora me siento más fresco y cuando veo la ciudad por la ventanilla se ve un poco diferente.

Summer’09

Summer vacations has begun, this weekend was great. I saw a lot of familiar faces, I went to surf, of course, I watch the sunrise twice at the (after)party’s end.
Now I’m back to the reality, at least today was my last review at school. In two weeks I’ll have final tests, submit projects and my two weeks of awaited vacations.

This week I’ll probably take a new job, I got an interview and I hope to be hired  and if so learn new things. It would be cool.

Sin vacaciones

Lo bueno de llevar cuatrimestres es que se hace una carrera en menos tiempo, pero lo malo es que no tenemos vacaciones, más que dos semanas entre cada cuatrimestre.

Si la fiesta acaba temprano

Cuando las chelas y el pomo se acaba temprano, como a eso de las 2 am, y no queda nada más que llegar a tu casa, simplemente te mata el aburrimiento, ya que si te sientas enfrente de tu computadora y te conectas, no hay nadie online porque todos siguen en su peda.

Feed filtrados en Tumblr

Comúnmente los gestores de contenido (CMS) proporcionan sus respectivos feeds rss, muchos de ellos hasta te despliegan los links ya sea para el feed de todas las entradas de un blog, entradas por categoría, comentarios, etcétera. En Tumblr aparentemente no es así, pero el que sea un servicio de (micro)bloggin’ muy sencillito y carismático no significa que no se le pueda sacarle jugo.

Vamos a jugar con las URLs para obtener los feeds y tomaremos como ejemplo un feed filtrado para Planeta Linux, ya que uno de sus lineamientos es el proporcionar uno con temas relacionados a este.

En Tumblr:

  • El feed principal que contiene todas las entradas lo podemos encontrar en /rss.
  • Tumblr no tiene la posibilidad de agrupar las entradas por categoría, pero si podemos asignarle tags, en mi caso las entradas que quiero que aparezcan en Planeta Linux México las taggeo con planetalinux y las podemos encontrar en /tagged/planetalinux.
  • Y así como hicimos que se desplieguen únicamente las entradas con dicho tag, a esa misma url le agregamos /rss, entonces quedaría /tagged/planetalinux/rss, esta vez ya vemos el feed que podemos proporcionar a Planeta Linux.

De esta manera si estamos suscritos a varios planetas o si queremos proporcionar feeds por categorías o contenido, en tumblr lo podemos hacer de esta manera.

Kernel 2.6.30

Hoy en la madrugada, descargué el kernel 2.6.30 desde los repositorios.

kelevra @ kimdracula:[~]
# uname -a
Linux kimdracula 2.6.30-box #1 SMP PREEMPT Wed Jul 1 02:59:51 CDT 2009 i686 GNU/Linux

Una vez compilado me dí a la tarea de reiniciar y recompilar los módulos correspondientes al virtualbox y mi <localjoke>welan</localjoke>… de la cual no tenía el source del driver ni un cable ethernet, bueno sí tenía el cable pero ya andaba en mi hamaca, pero para mi suerte compilé el módulo que viene con el kernel así que:

root @ kimdracula:[~]
# modprobe ath5k 

Pero de la nada se me ocurrió hacer:

root @ kimdracula:[~]
# aireplay-ng -9 wlan0
23:49:52  Trying broadcast probe requests...
23:49:52  Injection is working!
23:49:54  Found 2 APs

23:49:54  Trying directed probe requests...
23:49:54  00:1F:9F:9A:AF:91 - channel: 1 - 'welan'
23:50:00  Ping (min/avg/max): 1.306ms/1.306ms/1.306ms Power: -31.00
23:50:00   1/30:   3%

23:50:00  00:1D:5A:22:7D:49 - channel: 1 - 'INFINITUM8948'
23:50:06   0/30:   0%

Y por lo visto, creo que ya no me volveré a quedar sin internet…