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!

Monday, August 29th, 2011 Android, Internet, Open Source 2 Comments

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:

  1. Descarga el driver de el sitio de Realtek, en Downloads, busca por RTL8187, selecciona RTL8187L y descarga la version 1039 para Unix (Linux).
  2. Descarga el parche rtl8187l_1039_highpower y ponlo en el mismo directorio que el archivo anterior.
  3. 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!

Wednesday, August 11th, 2010 How-To's, Kernel, Linux, Networking 13 Comments

Charla: Aplicaciones de Facebook en PHP

Facebook Platform

Facebook Platform

El dia 6 de Mayo de 2010 hice mi primera charla ever, al menos que yo recuerde, y al parecer no me fue tan mal ya que me han llegado buenos comentarios (si tienen criticas por favor haganlas, la idea es mejorar).

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

Tags: , , ,

Wednesday, May 12th, 2010 facebook, How-To's, Internet 3 Comments

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!

Friday, April 23rd, 2010 How-To's, Linux, Macintosh, Networking, Windows 1 Comment

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.

Saturday, April 17th, 2010 How-To's, Internet, Linux 4 Comments

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.

Saturday, August 22nd, 2009 How-To's 7 Comments

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ó:

Tags: , , , , , , ,

Thursday, August 7th, 2008 Uncategorized 2 Comments

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.

Tags: , , , , , , , , ,

Monday, December 31st, 2007 How-To's, Linux, Macintosh No Comments

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.

Monday, December 31st, 2007 Uncategorized 1 Comment