- si te sabes el número ASCII de la @ eres un ñoño? — hace 1 día 4 horas
Usando la consola: Cuanto miden tus particiones y carpetas?
Posted June 12th, 2009 by joaquinSiempre se me olvida cómo usar bien estos comandos, porque tampoco los uso taan seguido. Pero bueno, si algún día necesitan averiguar el tamaño de una carpeta o lo que están utilizando de sus particiones en línx, desde la línea de comandos, utilicen estos comandos.
Para saber el tamaño de sus particiones:
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 25G 9.8G 14G 43% /
varrun 257M 52K 257M 1% /var/run
varlock 257M 0 257M 0% /var/lock
udev 257M 20K 257M 1% /dev
devshm 257M 0 257M 0% /dev/shm
Para saber el tamaño de sus carpetas:
$ du -csh /home/jackbravo/work/*
33M /home/jackbravo/work/catalogo-pdf
0 /home/jackbravo/work/drupal6
852K /home/jackbravo/work/gitosis
32M /home/jackbravo/work/sf_code
44M /home/jackbravo/work/sphinx-0.9.9-rc1
1.1M /home/jackbravo/work/sphinx-0.9.9-rc1.tar.gz
26M /home/jackbravo/work/user_admin
136M total
Anular el voto, o no anular el voto, esa es la cuestión
Posted June 8th, 2009 by joaquinNo se cómo voy a votar este 5 de Julio. Estoy harto de la política mexicana, todos los días escuchas noticias de algún político que se robó una lana, que no declaró tales bienes, que está asociado con tales gentes... O a veces hasta prefiero no prestar atención. Lo malo es que vienen las votaciones, y pues ya no se puede NO prestar atención.
Para estas votaciones me encanta la idea que está en boca de todos de ANULAR mi voto. Y decirles a los políticos: ¡NINGUNO MERECE MI VOTO! perros.
Varios amigos, familiares, conocidos están en las mismas. Y creo que el ejercicio que proponen en el grupo de Anúlalos (que me llegó por facebook) es el más apropiado, aunque parezca medio zonzo. El ejercicio va así:
- Analizar a los candidatos de nuestra localidad. Si te convence alguno, se acabó el ejercicio =P.
- Si no. Considera las opciones restantes: No votar o anular el voto.
Está fácil no. Lo malo es que el primer paso nadie lo hacemos. Y desde ahí estamos muy mal. ¿Cómo queremos que los políticos cambien cuando a nosotros nos vale queso en realidad la política? Yo hasta hace unos días no tenía ni idea de los nombres de los candidatos a la presidencia municipal de Zapopan. Ni digamos los candidatos a diputados de mi distrito.
Entonces, antes de decidir si vas a anular tu voto, creo que deberíamos empezar por ahí. Hace poco marcaron a la oficina de las oficinas de Hector Vielma (candidato del PRI) para ver si quería que visitara mi colonia. Les dije que sí. También pasaron a avisarnos que Guillermo Martínez (candidato del PAN) iba a estar en un parquecito por aquí cerquita para contestar las dudas que tuviéramos, y al final ni siquiera pude ir por la chamba... No está tan fácil conocerlos =P. Pero es el primer paso.
Historia de OLPC
Posted January 26th, 2009 by joaquinNo se si estén enterados de cómo va el asunto del proyecto OLPC (One Laptop Per Child), pero parece ser que este año las cosas se han puesto feas para el proyecto. Entre que no les fue nada bien en ventas por la crisis, que van a despedir al 50% del staff y que están cambiando algunas de sus metas la gente no sabe por donde va el asunto.
Este artículo habla más sobre la historia de este interesante proyecto.
Si quieren ver cómo corre el sistema operativo del OLPC (Sugar) también hay manera de correrlo desde tu computadora (ya sea que tengas windows, mac os x o linux ;-) gracias a la magia de los LiveCDs o de la virtualización.
Sea como sea, el OLPC es un gran proyecto que si bien quien sabe si termine o continue ha cambiado la industria de las computadoras y creado una nueva rama de laptops (las 5 laptops más vendidas en amazon son netbooks).
Les dejo también este video del sitio de OLPC.
Enviando mails con gmail desde la línea de comandos
Posted January 21st, 2009 by joaquinDesde que linux es linux el hombre se ha preguntado por la manera más eficiente para comunicarse con otras personas. Hmmmm, perdón por ese inicio tan raro, es que acabo de la Última Pregunta de Asimov =). Bueno, el caso es que al empezar a programar siempre surge la necesidad de mandar correos y no todo mundo tiene a su disposición un servidor de correo instalado localmente desde el cual mandarlos.
En linux existe una aplicación llamada mail que otros programas (como PHP) utilizan para mandar correos. En realidad hay muchas versiones de este programa. La que encontré que era más sencilla de instalar y configurar en ubuntu fue heirloom-mailx (antes se llamaba nail).
sudo apt-get install heirloom-mailx
Este programita te permite mandar correos utilizando cualquier servidor de correo del que dispongas. Por ejemplo, si tienes una cuenta de correo en gmail, puedes configurar mailx con un sencillo archivo en tu HOME ~/.mailrc:
set smtp=smtp.gmail.com:587
set smtp-use-starttls
set ssl-verify=strict
set smtp-auth-user=tucuenta@gmail.com
set smtp-auth-password=muymuyseguro
Si quieres probarlo intenta mandar un correo electrónico con
mail tuamigo@gmail.com
Te va a pedir escribir el título de tu mail y después el contenido del correo, cuando hayas terminado de escribirlo terminalo con Ctrl+D (que manda la señal de End Of Output a la consola... o algo así).
Crear un nuevo proyecto compartido en git
Posted December 10th, 2008 by joaquinAquí en la oficina hemos estado utilizando git desde hace ya algunos meses. Una de las cosas que nos daba más flojera hacer era crear repositorios públicos que pudiéramos compartir varios compañeros aquí en la oficina. Los pasos que vienen en el Manual de git para crear un repositorio público son algo tediosos, porque involucran clonar tu repositorio localmente y después copiarlo a la ubicación pública, lo que puede ser muy pero muy tardado si tu repositorio es grande y tu ubicación pública está en otro servidor.
Hace poco, en github encontramos una alternativa diferente para hacer esto, en donde primero creas el repositorio vacío en tu ubicación pública y después "empujas" tu proyecto desde git.
Crear una carpeta vacía para tu proyecto en la ubicación pública
tu@public:$ cd /var/cache/git tu@public:$ mkdir my-new-repo.gitEn esa carpeta creas un repositorio vacío (bare) de git
tu@public:$ cd my-new-repo.git tu@public:$ git --bare initY finalmente, desde tu repositorio local creas un canal remoto para git y empujas tu proyecto:
tu@local:$ cd existing_git_repo tu@local:$ git remote add origin tu@publico:/var/cache/git/my-new-repo.git tu@local:$ git push origin master
Y eso es todo, ahora git copiará todos tus archivos a través de la red de manera más eficiente que si utilizaras ftp o scp. Enjoy!
Usando wget para bajar canciones o imágenes
Posted December 5th, 2008 by joaquinUn cliente me tiene que mandar varias imágenes (logotipos, fotos) para poner en el sitio web que les estamos haciendo y lo que se le hizo más fácil fue subirlo todo a una carpeta en el servidor web que tienen contratado. Me dice que tiene más cosas y que las va a ir subiendo durante la semana.
Yo quiero bajarlo todo, pero que flojera hacerlo archivo por archivo. Y luego queda el problema de estar revisando la página por archivos nuevos. Tanto trabajo manual va a reducir mi productividad y no podré estar checando mi Google Reader. Por suerte estamos en linux ;-)
GNU/Linux tiene una herramienta que queda como anillo al dedo para este tipo de tareas y se llama wget. Sirve para bajar archivos de Internet y soporta HTTP, HTTPS y FTP. Como dice en su documentación, sus principales ventajas son:
- que no es interactivo, lo que permite utilizarlo sin necesidad de intervención por el usuario ;-)
- te permite continuar descargas canceladas (para cuando se te cae la conexión por usar la wifi)
- sabe distinguir entre archivos que ya bajaste y los nuevos de la página
- es recursivo (te podrías bajar todo un sitio web completito con un solo comando)
Entonces, manos a la obra.
wget -r -l1 -np -nd -A.jpg,.png,.gif -N http://dominiodelcliente.com/folder_de_imagenes/
Este comando lo que hace es:
- -r. bajar todo lo que este en la dirección recursivamente, es decir, seguir todas las ligas que aparezcan en la página (recursive)
- -l1. pero sólo hasta un nivel de recursividad, es decir, sin seguir las ligas que aparezcan en las otras páginas que se baje (level 1)
- -np. Sin bajarse los archivos de carpetas en niveles superiores (no parent)
- -nd. Bajandolo todo en un sólo directorio (no directories)
- -A. Bajando solamente los archivos que terminen en .gif o .png o .jpg. (Accept)
- -N. Y bajando solamente los archivos nuevos que no existan ya en la carpeta a menos que el del servidor sea más nuevo
Este archivo lo puedo correr una vez al día, o ponerlo en el cron y me bajara cada vez los archivos nuevos que vaya encontrando. Chido.
Todo esto fue fácil de averiguar gracias al poder de google, este buen tutorial escrito en inglés y el man page de wget.
Me robaron mi bicicleta
Posted December 3rd, 2008 by joaquinMe robaron mi bicicleta hace unas cuantas semanas, de hecho hace algunos meses ya. Es muy triste porque realmente me gustaba poder venirme en bici a la oficina, ahorita no hago mucho ejercicio que digamos.
Normalmente metía la bicicleta a un patio que tenemos en el departamento (estamos en el primer piso ;-), pero ese día la dejé afuera de la oficina. Ya la había dejado ahí otras veces, y no me preocupaba demasiado porque para entrar a los departamentos hay una reja que normalmente esta cerrada, pero no siempre. Y al parecer, ocurrió lo que dice ese viejo adagio: la ocasión hace al ladrón. Y alguna persona que pasó por ahí, vio la bicicleta sin cadena, la reja abierta, y lo demás es historia...
No creo que este sea motivo para que mi confianza en la humanidad se vea disminuida, sino más bien un fuerte recordatorio de que los tiempos que vivimos son muy gachos, y la mucha gente siente que tiene que aprovechar cualquier oportunidad que se le presente (sea esta buena o mala). ¿O al final será que ambas cosas son lo mismo?
Free Geek
Posted November 20th, 2008 by joaquinEste es un refrito de un email que mande hace algún tiempo. De hecho estoy publicando en este blog varios de esos correos que solía mandar para no perderles el rastro.
Hace poco me tocó ver un video de una organización muy chida llamada Free Geek. Es una organizaciones de fines no-lucrativos que básicamente reciben computadoras viejitas de gente que ya no las va a usar, y las venden a precios bajos, o las dan a quien las necesite de a grapa, o las reciclan, además dando cursos y otras cosillas. En realidad creo que el video lo dice mejor que yo:
En mi grupo de FEFUs ya lo vieron, y a varios de los que vamos de misiones al cerro del 4 nos latió mucho la idea. A muchos nos gustaría poner algo así (a mi me encantaría). Sólo que ciertamente requiere que le dediques tiempo y algo de lana.
Me he puesto a investigar y estos compas de free geek ayudan a formar nuevos free geeks. Al que le interese aqui les pongo las ligas (en inglés) de free geek donde hablan más acerca de cómo formar tu propio free geek:
http://wiki.freegeek.org/index.php/Free_Geek_Startups
http://wiki.freegeek.org/index.php/Free_Geek_Startup_Franchise_Application
http://wiki.freegeek.org/index.php/Final_Application_for_Ongoing_Status_as_a_Free_Geek_Franchise
Esta última es una liga del cuestionario final que se espera que llenes para hacer oficial a tu nuevo free geek, claro que para llenarlo pues hay un proceso en el que ellos mismos te pueden ayudar.
Si a alguien le interesa poner algo así en Guadalajara, por favor escríbanme un correo porque me gustaría ayudar =P. Yo lo tengo como proyecto en espera desde hace algún tiempo jeje.
Omitir archivos de svn al buscar con grep
Posted October 29th, 2008 by joaquinUsar linux es una maravilla para un programador. Existen muchos comandos que te facilitan muchas cosas de la vida diaria. Uno de ellos es grep, que te permite buscar alguna cadena o patrón en los archivos de tus proyectos. El uso normal se ve así:
grep -r 'function setFormatName' lib/widget
Para buscar recursivamente (-r) en todos los archivos dentro de lib/widget donde esta definida la funcion setFormatName.
Lamentablemente, cuando usas subversion para algún proyecto, terminas con un montón de carpetas .svn con cadenas similares a la que buscas....
Ahora, en internet hay varias maneras sugeridas para evitar buscar en estas odiosas carpetas de svn (una de las razones por las que prefiero mil veces git, que solo tiene una carpeta .git en el root de tu proyecto.... pero me estoy desviando). La que más me gustó, porque no involucra opciones confusas que tienes que recordar cada que escribes el comando, es agregar unas opciones a tu archivo .bashrc y listo ;-).
GREP_OPTIONS="--exclude=\*.svn\*"
export GREP_OPTIONS
Después de agregar eso a tu .bashrc sólo corre el comando source .bashrc para que tomen efecto (o reinicia tu sesión). También puedes leer las instrucciones en inglés aquí.
Otra opción es mejor usar ack, funciona en windows y linux por igual... pero eso lo dejaré para otra ocasión.
¿Cómo explicar la recursión?
Posted September 19th, 2008 by joaquinEncontré navegando por reddit un muy buen post definiendo la recursión que les comparto por aquí, traducido al español:
Un profesor de ciencias computacionales una vez explicó la recursión así:
Había un niño que no podía dormir, así que su mamá le contó la historia de una ranita,
que no podía dormir, así que la mamá de la ranita le contó la historia historia de un oso,
que no podía dormir, así que la mamá del oso le contó una historia de una comadreja...
que se durmió.
...y el osito cayó dormido;
...y la ranita cayó dormida;
...y el niño cayó dormido.
La gaceta de la cabeza

