Kelevra's *log
KDE FTW!
Since I meet nekrox, always has been said me that there’s no better desktop than KDE. I don’t like Desktop Environments, they are too huge for me and I prefer Window Managers such Openbox.
I installed it when KDE 4 was released, but I didn’t feel comfortable. Maybe was a drastic switch, but this weekend I decided to give it another change because my eyes are damaged to see so many ugly gtk themes, and honestly since I’m a Linux user, gnome never liked me.
This time I dpkged the kde-minimal metapackage, so I could say that I did a lite installation and gradually I’ve been switchin to KDE applications, the only ones that I couldn’t replace are Firefox and Gimp. I was trying Krita to image edition, a plus is that it has support to cmyk color format and gimp hasn’t, but now Krita is in debian’s experimental branch and occasionally crashes, so I haven’t used it at 100%. About Konqueror, it makes some websites look ugly.
KDEnlive was what finally convinced me, I had to make a video for a school work, so I searched and found Cinelerra, but I didn’t know how to use it, I tried with other app, but I feel that it was too simple. Then I said to myself: KDE must have some tool for that task. And so, here is the result: http://tumblr.com/xue3wz6tj
I really like KDE, is nice and its tools are very useful, and I must say: I’m getting in love with KDE <3

KDE FTW!

Since I meet nekrox, always has been said me that there’s no better desktop than KDE. I don’t like Desktop Environments, they are too huge for me and I prefer Window Managers such Openbox.

I installed it when KDE 4 was released, but I didn’t feel comfortable. Maybe was a drastic switch, but this weekend I decided to give it another change because my eyes are damaged to see so many ugly gtk themes, and honestly since I’m a Linux user, gnome never liked me.

This time I dpkged the kde-minimal metapackage, so I could say that I did a lite installation and gradually I’ve been switchin to KDE applications, the only ones that I couldn’t replace are Firefox and Gimp.
I was trying Krita to image edition, a plus is that it has support to cmyk color format and gimp hasn’t, but now Krita is in debian’s experimental branch and occasionally crashes, so I haven’t used it at 100%. About Konqueror, it makes some websites look ugly.

KDEnlive was what finally convinced me, I had to make a video for a school work, so I searched and found Cinelerra, but I didn’t know how to use it, I tried with other app, but I feel that it was too simple. Then I said to myself: KDE must have some tool for that task.
And so, here is the result: http://tumblr.com/xue3wz6tj

I really like KDE, is nice and its tools are very useful, and I must say: I’m getting in love with KDE <3

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

He creado este repo en donde pushearé algunos ejercicios en C, C++, PHP y Python.

¿Por qué en estos lenguajes?

  • C/C++ porque es lo elemental, además con eso estoy trabajando en la escuela.
  • PHP porque con este lenguaje trabajamos en IdeasLabs.
  • Python porque últimamente he estado leyendo sobre él, y me agrada mucho por sencishito y carismático.

Por el momento nada más he pusheado un “Hello World!” en cada uno de estos, pero con el tiempo andaré subiendo ejercicios como la Serie de Fibonacci, entre otros. Decidí crear y publicar el repo por si a alguien le pudiera servir de referencia, ayuda, etc.

kBrOnCiTa.
Este fue mi examen final para la materia de Transmisión de Datos. La prueba consistía en montar uno o varios servicio, ftp, http, dhcp, dns, snmp, mail, etc. De la misma manera no importaba sobre que sistema operativo, hubieron varios windows 2000/2003, ubuntu y mi debian.Entonces monté en mi servidor un vsftpd, apache, mysql, ssh y quería ponerle un sendmail pero no terminé, también tenía en mente ponerle iptables pero todo lo hice el mismo día y de seguridad únicamente le cambié los puertos y denegué el uso de su y otras cositas.
Demonstration.
En esta parte era en donde teníamos que demostrar que en verdad funcionaban los servicios. Para esta parte ya había preparado algunas cosas. Entre ellas estaba conectarme vía ssh al servidor, activar unos vhosts, crear una base de datos y con la misma instalar un wordpress, transferir unos archivos con ftp/scp y mostrar cómo monitorear el rendimiento del servidor.
Al final obtune un 10, pero no me quedé satisfecho ya que sólo llegué a explicar hasta los vhost y por otro lado algunos de mis compañeros se quedaron con algunas dudas sobre cómo interactúan los servicios remotamente (kBrOnCiTa es virtualizada y la demonstration fue desde el sistema huesped vía ssh), ya luego algunos se me acercaron y les explique algunos detalles.
Les dejo la presentación:







Nota: Sí, con ese nombre lo presenté y causó mucha gracia xD.

kBrOnCiTa.

Este fue mi examen final para la materia de Transmisión de Datos. La prueba consistía en montar uno o varios servicio, ftp, http, dhcp, dns, snmp, mail, etc. De la misma manera no importaba sobre que sistema operativo, hubieron varios windows 2000/2003, ubuntu y mi debian.
Entonces monté en mi servidor un vsftpd, apache, mysql, ssh y quería ponerle un sendmail pero no terminé, también tenía en mente ponerle iptables pero todo lo hice el mismo día y de seguridad únicamente le cambié los puertos y denegué el uso de su y otras cositas.

Demonstration.

En esta parte era en donde teníamos que demostrar que en verdad funcionaban los servicios. Para esta parte ya había preparado algunas cosas. Entre ellas estaba conectarme vía ssh al servidor, activar unos vhosts, crear una base de datos y con la misma instalar un wordpress, transferir unos archivos con ftp/scp y mostrar cómo monitorear el rendimiento del servidor.

Al final obtune un 10, pero no me quedé satisfecho ya que sólo llegué a explicar hasta los vhost y por otro lado algunos de mis compañeros se quedaron con algunas dudas sobre cómo interactúan los servicios remotamente (kBrOnCiTa es virtualizada y la demonstration fue desde el sistema huesped vía ssh), ya luego algunos se me acercaron y les explique algunos detalles.

Les dejo la presentación:

Nota: Sí, con ese nombre lo presenté y causó mucha gracia xD.

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

Libre (Teaser 2009) ENLi

VIM running on Debian

VIM running on Debian

VIM running on Windows 7

VIM running on Windows 7

.vimrc

I set autocomplete, syntax, some maps and folding, also I customized the gui’s look in windows and unix, but I don’t have a mac to set a font *snif*.

Kimdracula&#8217;s new look

Kimdracula’s new look

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…

Let&#8217;s be normal people

Let’s be normal people

TTYs más rápidas con fgetty

Getty es conocido por consumir mucha memoria, pero podemos reemplazarlo por algo más ligero como fgetty y de esta manera hacer las ttys más rápidas y que consuman menos memoria.

Fgetty ya se encuentra empaquetado en debian y para su instalación y confuguración, simplemente hacemos estos pasos:

# apt-get install fgetty

Luego procedemos a editar el archivo /etc/inittab, reemplazaremos las siguientes lineas:

1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

Por:

1:23:respawn:/sbin/fgetty tty1
2:23:respawn:/sbin/fgetty tty2
3:23:respawn:/sbin/fgetty tty3
4:23:respawn:/sbin/fgetty tty4
5:23:respawn:/sbin/fgetty tty5
6:23:respawn:/sbin/fgetty tty6

Reiniciamos init

# killall -HUP init

Y listo, ahora podremos comparar y disfrutar de unas TTYs más ligeras