Codigos Postales Chile ahora es Open Source
Hoy tuve tiempo (al fin) para liberar el código de mi primera aplicación para Android después de casi un año en el Market, y sorprendentemente con más de 3000 descargas.
Me tomó un poco más de tiempo del que hubiese querido, pero el trabajo me  ha mantenido ocupado (y entretenido).
La licencia es GPLv3, si alguien tiene una mejor idea de licencia por favor avisen ya que no quise quemarme la cabeza leyendo cláusulas… pereza mental.
Está hecho, el sitio es https://github.com/mitoyarzun/chilepostal y están todos invitados a ver, usar y colaborar con el (vergonzosamente sucio) código.
Saludos!
RTL8187L v1039 highpower patch
Tienes un adaptador Wi-Fi de 1000mW que utiliza el driver RTL8187L (o rtl8187.ko) y quieres tener la ultima version con el poder de transmision hasta 30dBm? Si es asi, sigue estos pasos:
- Descarga el driver de el sitio de Realtek, en Downloads, busca por RTL8187, selecciona RTL8187L y descarga la version 1039 para Unix (Linux).
- Descarga el parche rtl8187l_1039_highpower y ponlo en el mismo directorio que el archivo anterior.
- Ejecuta estos comandos:
tar xzvf rtl8187L_linux_26.1039.0104.2010.release.tar.gz cd rtl8187L_linux_26.1039.0104.2010.release/ unzip ../rtl8187l_1039_highpower.zip patch -p1 < rtl8187l_1039_highpower.patch cd rtl8187 make sudo make install
Listo, el driver está instalado.
Ahora para utilizarlo, simplemente desconecta el dispositivo, y ejecuta lo siguiente:
# estas 2 lineas son para asegurar que se descargue completamente el modulo antiguo rmmod rtl8187 rmmod r8187l # desde aqui puedes ponerlo en un script para que sea mas comodo las veces sucesivas. se asume que el dispositivo es wlan0 y el usuario es root iw reg set BO # esto es para alivianar las regulaciones locales iwpriv wlan0 highpower 1 # esto es para activar el modo highpower # lo siguiente es para setear la potenciaal máximo (1000mW) iwconfig wlan0 txpower 30
Con esto deberÃa ser suficiente. Como siempre, cualquier pregunta en los posts, en mi twitter (@mitoyarzun) o si me encuentran, en persona.
Saludos!
Charla: Aplicaciones de Facebook en PHP

Facebook Platform
La charla se llamó “Desarrollo de aplicaciones de Facebook en PHP” y formó parte del “Ciclo de Charlas Informáticas” (ex Charlas Técnicas) del Departamento de Informática de la UTFSM.
El video creo que aún no está online, pero les dejo las diapositivas usadas y el código que escribà durante la charla para demostrar las capacidades de la Facebook Platform.
Cualquier comentario será bien recibido a menos que seas un robot spamero.
Disfruten!
Desarrollo de Aplicaciones de Facebook en PHP
src_facebook.tar
Compartir Internet de tu Linux a otros PC
Hoy les tengo una receta que es archi-conocida, pero que es fácil de olvidar y nunca está demás tenerla en un blog cercano.
La idea es compartir el internet de tu computador (con linux) a otro (con Windows, Linux, Mac, BSD, etc.), con la técnica del NATeo, que viene del término NAT (Network Address Translation).
Bueno, he hecho un pequeño script que hará la tarea más fácil, basta con copiar el siguiente texto a un archivo (por ejemplo: nat.sh)
#!/bin/bash echo 1 > /proc/sys/net/ipv4/ip_forward if [ "$#" -ne 2 ] then echo "usage: $0 [internal iface] [external iface]"; fi if [ "$#" -eq 2 ] then ifconfig $1 192.168.21.1 iptables -t nat -A POSTROUTING -o $2 -j MASQUERADE iptables -A FORWARD -i $2 -o $1 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i $1 -o $2 -j ACCEPT fi
Luego, le das permisos de ejecución:
chmod +x nat.sh
Para ejecutarlo, en el caso de que tengas internet vÃa Wi-Fi (interfaz wlan0) y quieras compartirlo por cable (interfaz eth0) ejecutas lo siguiente:
./nat.sh eth0 wlan0
Otra cosa importante es que la interfaz que está conectada al otro computador (en este caso, eth0) tenga configurada una IP y máscara de subred, y que el otro computador tenga configurada una IP en el mismo segmento y el gateway sea la IP de tu interfaz eth0.
¿Muy complicado?  Ejemplo:
En el PC que tiene internet configuro la interfaz eth0:
ifconfig eth0 192.168.30.1 netmask 255.255.255.0
En el PC que va a usar el internet compartido, seteas una IP similar, estableces el gateway y configuras el resolv.conf, en este caso con el DNS server de Google:
ifconfig eth0 192.168.30.2 netmask 255.255.255.0 route add default gw 192.168.30.1 echo "nameserver 8.8.8.8" > /etc/resolv.conf
En Windows y Mac es básicamente similar, sólo que con el ratón, los datos que utilizarÃas son:
IP: 192.168.30.2 Máscara de Subred: 255.255.255.0 Puerta de Enlace: 192.168.30.1 Servidor DNS Primario: 8.8.8.8
Y deberÃa funcionar… ahora puedes compartir el internet que agarras del vecino tu internet con tu familia!
Disponibilidad de dominios .CL en Perl
Hace tiempo que no escribo algún artÃculo, al parecer Twitter es más fácil para redactar ideas a la rápida.
Hoy querÃa registrar un dominio en NIC Chile, y me di cuenta que está por vencer, de hecho en un mes aproximadamente deberÃa estar libre. Pero en realidad lo mas probable es que me olvide y no alcance a registrarlo cuando quede libre y otra persona me lo “gane”.
Por ésto es que decidà hacer un pequeño script que me ayudara a chequear de forma diaria (gracias a cron) si el dominio está disponible. La idea es que me envÃe un e-mail una vez el susodicho esté libre, pero esa parte aún no la hago y tampoco es la idea hacerlo junto, o sea, unix style ;).
El script en cuestión lo publico a continuación, bajo la licencia GPLv3, que puedes encontrar en http://www.gnu.org/licenses/gpl.html. Si quieres hacer uso comercial, contacta conmigo 😉
#!/usr/bin/perl # # Check if .CL domain is available or not. # Author: Jaime Oyarzun K. joyarzun {at} inf dot utfsm dot cl # Date: 20100418 # License: GPLv3 # # usage: ./whoisCL.pl [.cl] # # Output: # 0 when domain is not available # 1 when domain is available # # Crashes if connection cannot be established or no argument is given. # use IO::Socket; $sock = new IO::Socket::INET ( PeerAddr => 'whois.nic.cl', PeerPort => 43, Proto => 'tcp', ) or die "Connection error!"; if ($#ARGV<0) { die "Requires one argument: " }; $domain = $ARGV[0]; print $sock "$domain\n"; $exists = 1; while ($line = <$sock>) { chomp($line); if ($line =~ m/no existe/) { $exists = 0; print "1\n"; } } if ($exists) { print "0\n"; } close($sock);
Espero que a alguien le sirva, quedo atento a los comentarios. Saludos!
Mito.
How-To: Cambiar cheques en dólares
Pasó lo que temÃ. Fue una mala decisión pedir el pago de un servicio en escrow.com con un cheque. En Chile, ningún banco (hasta donde yo se) tiene linea directa con el Bank of America, razon por la cual perdà una mañana completa recorriendo Viña del Mar buscando quien me cambiara el cheque.
Todos me decÃan, anda a Afex o a Inter, ahà te lo cambian. En las 2 sucursales de Inter me dijeron un NO rotundo, ya que el cheque no era de un talonario si no que generado por una maquina.
Entonces comenzó la teleserie con Afex.
En Afex la tarde anterior (como al las 7, estaban cerrando) me dijeron que me lo cambiarÃan, pero por el monto tenÃan que consultar con Santiago, y ya habÃan salido. Entonces después de vagar de banco en banco fui a Afex, me hicieron llenar una solicitud de inscripción, fotocopia de pase escolar y carnet de identidad, y llegó el jefe de sucursal con un papel con la fotocopia del cheque y algo escrito a mano, que decÃa que yo me comprometÃa a pagar una suma exorbitante si el cheque era rechazado, y más encima tenÃa que esperar 30 dÃas para que lo aprobaran.
Ahà como que me enojé y mande a freÃr monos a Afex y me fui con mi cheque, con la esperanza de que en mà banco (Santander) pudiera hacer un depósito a plazo con el cheque, igual 15 dÃas no es tanto y además ganaba como 3 dólares. Al final llegué a la caja a depositarlo y como en 10 minutos volvió el cajero, diciendo que habÃa un problema y que me acercara a la ejecutiva de inversiones. Por supuesto me habÃan puesto más trabas y tenÃa que esperar como 1 mes más. Chao.
Volvà a mi casa, esperando que mi papá o alguien conocido tuviera alguna movida para cambiar el cheque, ya que querÃa plata para malgastarla. Asà que pensándolo un rato decidà ir a ValparaÃso a la sucursal de Afex de allá, para probar suerte.
Para mi sorpresa llegué a la sucursal, el tipo de la caja vió el cheque, me preguntó por qué era y le expliqué que habia vendido una aplicación de Facebook y todo el cuento, y empezó a escribir en un papel. Mi cara de WTF debe haberse notado hasta la plaza Sotomayor cuando el tipo empezó a sacar fajos y fajos de billetes, y me pasó una boleta y la plata, yo no sabÃa donde esconderla ya que era muy notorio y no entraba ni la mitad en mi billetera.
Luego de pensarlo un rato, el tipo seguramente confió ya que estaba inscrito en los registros de Afex, aunque me preguntó si habÃa cambiado un cheque antes y le dije que no. La clave fue haber ido a la sucursal de Viña, inscribirme y cancelar la operación antes de la firma final. En todo caso en Afex los jefes de sucursal deciden a quién le cambian el cheque o no, para que lo tengan en cuenta y se lo engrupan.
Bueno, asà llené los pocos bolsillos que tenÃa con billetes y me fui a tomar micro a una cuadra de ahÃ, con miedo interno pero con cara de relajado para no levantar sospechas.
Tomé la primera micro que venÃa a viña, total después podrÃa cambiarme a la que me sirva realmente, y me bajé en 9 norte.
Por supuesto que el impulso fue mayor y pasé de inmediato a Computación Integral a comprarme un monitor, teclado y mouse para mi laptop, iniciando mi nueva oficina.
Re-fome el post y pésima redacción, pero espero que le sirva a alguien. Si tienen preguntas están abiertos los comentarios.
For Dummies: Large Hadron Collider
El 10 de Septiembre de 2008, podríamos morir todos, junto con la destrucción total del Universo. O tal vez estemos en nuestras casas mirando los destrozos de las protestas del 11 sin sentir una cosquilla.
El Large Hadron Collider es el acelerador de partículas más poderoso jamás construído, y está ubicado en Suiza, específicamente en el CERN. Basicamente lo que hará, es acelerar protones en su túnel de 27 kilómetros de largo bajo 100 metros de tierra para encontrar partículas elementales de la materia, y explicar la formación del Universo (no, el Universo no se creó en 7 dias… a menos que sean días de otro planeta, pero absolutamente no fue en 7 días terrestres).
Algunos dicen que podría ser el fin de la Humanidad, ya que se formaría un Hoyo Negro que se comería todo, si, todo entero completito. Los tipos del CERN dicen que es imposible, y si existiera la remota posibilidad de que se forme uno, éste sería tan pequeño que se desintegraría al instante. Bastante consolador, especialmente por todo lo que sabemos de los hoyos negros.
Para explicar mejor todo esto, a los que van a morir primero cuando todo acabe se les ocurrió hacer un video explicativo, y debo confesar que me entretuvo bastante y pude aprender incluso mejor que con los otros aburridos videos que hay en YouTube, de los cuales vi como la mitad porque la otra la dormí o adelanté el video.
Bueno, si llegase a ser mi último post me despido, gracias por visitar y nos vemos en el infierno. Vean el video para saber qué invento humano los mató:
Quemando/Montando imágenes de Macintosh (HFS) desde Linux
Mi primer PC fue un IBM PS/2. Tenia una version rara de Windows o D.O.S. o quizás algun bicho raro de los 80’s. La cosa es que tenia un manejador de archivos y una consola DOS, con la que me entretenia mucho. Ese tarro lo use para jugar y echar a perder hasta que tuve unos 10 años. Luego por el 96 mi papá compro un Macintosh Performa 6200CD para la oficina (nótese el Performa en el nombre, a pesar de tener un procesador PowerPC 603e RISC de 75Mhz, lo que lo hace claramente un Power Macintosh).
Pase al menos 5 años con ese tarro. Aprendi a desmantelarlo completamente y armarlo casi igual como estaba originalmente. También descubrà el lado entretenido de Macintosh, que separa los archivos en el Data Fork y el Resource Fork, con lo cual editar aplicaciones era un juego de niños, incluso crackee algunos programas usando ResEdit, pero ese es otro cuento.
Lo que pasó fue que me vino la nostalgia por el ya obsoleto MacOS Classic, yo empece usando la version del System 7.5.3, y mi tarro aguanto hasta el MacOS 8.1 despues de un aumento de caché. Bueno, anoche buscando torrents se me ocurrio buscar por MacOS, y encontre una imagen del CD de MacOS 8.6 en inglés con varios programas extras, asi que baje el torrent, me fui a dormir super temprano (4am) y espere que ocurriera la magia.
Afortunadamente aqui en el sur las conexiones de “Banda Ancha” son de banda ancha, y a la mañana siguiente bajo los 400 y tantos megas. Grande fue mi sorpresa cuando al unrarear el susodicho el K3b no queria grabarlo, y google no quiso ayudarme. Le hice un file MacOS86.iso
y obtuve:
MacOS86.img: Apple Partition data block size: 2048, first type: Apple_partition_map, name: MRKS, number of blocks: 8, second type: Apple_Driver43, name: Macintosh, number of blocks: 20, third type: Apple_Driver43_CD, name: Macintosh, number of blocks: 100, fourth type: Apple_Patches, name: Patch Partition, number of blocks: 32
O sea, una particion Mac, probablemente HFS+ (que es como el FAT32 para el FAT16 como es el HFS+ al HFS guardando las proporciones) y que el comando mount
no detecta automáticamente. Entonces, trate de hacerme el loco y montarlo a mano:
mount MacOS86.iso /mnt/hfs -o ro,loop -t hfs
Y voilá, imagen montada. Ahora puedo recorrer la imagen y montarla en el SheepShaver. Pero, ¿y si la quiero grabar? Simplemente tengo que tener las cdrkit (en ArchLinux), y escribir:
cdrecord -v -eject speed=48 dev=/dev/sr0 MacOS86.img
Ahora matando varios pajaros de un tiro, aprendimos un poco de la sintaxis de cdrecord (mas clara que el agua) y que Linux también quema imagenes HFS.
Espero le sirva a alguien.
Mito.
Mi Primer Post
Bienvenidos a mi blog.
Suena raro decirlo, no me gusta mucho la autorreferencia y la publicacion a viva voz de mis cosas personales y pensamientos, pero de cierta forma senti que tenia que tener uno algun dia.
Mas que nada este será un blog donde se podrán aprender cosas, y encontrar algunas que no se encuentran facilmente o simplemente no están en Internet (Google). Ojo que no solo de tecnologÃa o computación o informática, sino que de cuando en cuando de la vida misma.
Voy a ser breve en este post, tengo varios preparados para las semanas que vienen, que no he terminado por falta de tiempo y exceso de carrete :). Los dejo, espero que disfruten del contenido y que tengan un muy feliz 2008.
Mito.