domingo, 7 de marzo de 2010

PyCamp 2010, día 2

Ayer no postee porque no tuve tiempo en todo el día, así que posteo ahora el resumen. Supongo que esta noche volveré a postear con el resumen de hoy


Lo más interesante de ayer fue el sprint de Django. Sprint = gente que se junta a programar, Django = framework para hacer desarrollo web usando Python, el mejor que probé hasta ahora. O sea, los que querían se juntaron para sobre todo corregir bugs en Django, para la versión nueva que va a salir dentro de unos días. Sinceramente fui más que nada para ver y aprender, porque pensaba que estaba a un nivel en el que yo no podía aportar mucho. Pero para mi sorpresa, terminamos corrigiendo un bug de Django juntos con Javi :). Mi granito de arena para Django, así devuelvo algo de todo lo que me está sirviendo.


Por la tarde me enganché en el momento de cocos2d (el framework para juegos que nació en un PyCamp anterior, que estamos usando para el juego que empezamos el sábado). Me enganché medio tarde, pero estuvo bueno, me ayudó a entenderlo mejor.


Finalmente, a la noche tuvimos el "fogón", pero sin fuego porque no se consiguió leña. Se empezó hablando de los temas más comunitarios, objetivos, realidad de Python en Argentina, etc. Se habló también de PyCon Atlanta 2010 y PyCon Argentina 2010. Y después se terminó hablando de política, sociedad, valores, ideologías, etc. Discusiones acaloradas pero muy interesantes. Algo parecido a los threads de PyAr, jajaja.


Hoy viene siendo interesante también, pero esta noche hago el resumen. Saludos!

viernes, 5 de marzo de 2010

PyCamp 2010, día 1

No voy a hacer un post muy completo, eso lo dejo para cuando vuelva. Pero cada día voy a postear un breve resumen de como pasé/pasamos el día.


El viaje fue largo... salí de Rafaela el jueves a las 11 de la noche, y recién llegamos al lugar hoy a las 13, justo para la comida :).
El lugar muy bueno. Todavía no pude recorrer mucho, pero tiene hasta para hacer cayack (o como se escriba, jeje).

Está todo super organizado el tema de wifi, hay cables y antenas atadas con cinta por las paredes, jeje. Y por suerte no se necesitó usar mi router (hubiese sido para renegar nomás).

Lo primero que se hizo a la tarde fué presentar todos los proyectos, y anotar cuántos interesados había en cada uno. A partir de eso se organizó un cronograma, armado como para favorecer la participación el los proyectos más votados. Pero todos los proyectos quedaron en el cronograma, y cada uno elije en cuáles participar y cuáles no :).

De hoy, el proyecto en el que más participé y me interesó fue el de desarrollo de un juego de tipo "Tower Defense", usando la librería para juegos en Python COCOS2D. Es una librería que se había empezado a desarrollar en un PyCamp anterior, jeje.

La verdad que tenía miedo de no poder aportar mucho, pero en un rato nomás ya estaba a tono y codeando para modificar la lógica de disparo de las torres :D.

Y ahora, a la noche, algunos seguimos codeando, mientras otros están con juegos de mesa, o más relajados.

La gente hasta ahora genial!


jueves, 4 de marzo de 2010

Apple vs HTC

Alguien vio el detalle de las pantentes que Apple esta usando para demandar a HTC? Es un desastre, tienen patentadas cosas que existen desde hace 20 años, que existían mucho antes de cualquier iPhone. No se cómo les da la cara para hacer algo así...
Una de las pantentes por ejemplo, es sobre tener objetos en memoria que se refieren a elementos en la pantalla. Cualquier programa con ventanas tiene eso! Existe desde hace décadas!!


Cualquiera que sabe de programación, viendo el detalle de las patentes aquí, puede darse cuenta del fraude que esto es. La mayoría de las pantentes son sobre cosas que no inventó Apple, y que existían desde hacía años antes que el iPhone...


Nunca me había gustado mucho Apple, pero después de esto, sinceramente la imagen que tenía de ellos cayó hasta lo más hondo. En lugar de competir haciendo mejores productos, están tratando de matar a la competencia con un fraude legal...

lunes, 22 de febrero de 2010

Debian en G1 con Android 2.1

Bueno, después de lo que anduve renegando, pude hacer andar Debian en una HTC Dream con Android 2.1.
Anoche me senté un rato y armé tutoriales para que otros puedan hacerlo si les interesa, junto con los archivos necesarios.

Es algo bastante raro y específico, a pocos les va a interesar, pero para esos pocos escribo :)


En mi G1 estoy corriendo Android 2.1, con la ROM KiNgxKxlicK AOSP 2.1 versión 1.6.1

Aquí pueden bajarla, no voy a hacer un instructivo sobre cómo instalarla porque el tema de ROMs en Android es más que extenso, y hay muchos tutoriales dando vueltas por la web.

Puede que los pasos que detallo en este tutorial no funcionen exactamente igual en otras ROMs y otros dispositivos, pero con probar no se pierde nada más que tiempo :).

Lo que sí o sí es necesario, es que la ROM que estén usando sea rooteada (es decir, que tengan permisos de root). Si no es una ROM rooteada, no van a poder hacer andar ni el instalador, jeje.


Para hacer andar Debian en Android, me basé en el contenido de dos foros que hablaban sobre el tema, más algunas modificaciones de las que me di cuenta solo. Al final agrego los links a esos foros para quienes quieran profundizar o ver la info original. El verdadero mérito va para los autores de esos posts, ya que lo que yo hice fueron pequeñas modificaciones sobre su trabajo.


Finalmente, asumo que quien quiere correr Debian en su celular es porque conoce un mínimo de Linux. No me voy a detener a explicar cómo editar un archivo de texto por línea de comando, ni cosas por el estilo, jeje.


Qué tal anda?


La verdad que anda mucho mejor de lo que yo esperaba. Recordemos que se trata de un celular, un aparato con recursos muy limitados. Pero con esos recursos se puede llegar incluso a levantar una interfaz gráfica.

Sin interfaz gráfica es un pájaro: vuela. Con la interfaz gráfica es un reptil: se arrastra, jeje.

Además, al levantar la interfaz gráfica puede suceder que el equipo se quede sin memoria RAM y empiece a cerrar aplicaciones para liberar memoria. Y al cerrar aplicaciones, puede cerrarnos el Debian que está corriendo de fondo, lo que resulta muy molesto.

Yo particularmente lo uso por linea de comandos, sin nada de interfaz gráfica, así que no tengo problemas.


Me puede romper el celular?


En los posts originales aclaran que lo que se hace no afecta al sistema operativo del celular (Android), por lo que no debería haber riesgos. Igual no me hago responsable por lo que a cada uno pueda pasarle en su celular por seguir los pasos que aquí detallo.


Tutorial


A) Instalar Debian



  1. Bajar los archivos necesarios desde este link: debian_aosp21_fisadev.zip

  2. Conectar el celular a la PC en modo de almacenamiento, o sacarle la SD y conectarla a la PC con un adaptador o lector de tarjetas.

  3. Crear en la memoria SD una carpeta con nombre "debian", y descomprimir dentro los archivos que contiene el zip.

  4. Volver a colocar la SD en el celular, o desconectarlo de la PC.

  5. Por seguridad, reiniciar el celular, ya que en algunas ocasiones el sistema de archivos queda como de solo lectura.

  6. Desde un emulador de consola/terminal en el celular, ejecutar:
    su
    cd /sdcard/debian
    sh installer.sh



B) Iniciar Debian y configurar las cosas básicas


Con lo hecho antes Debian ya está instalado, pero necesitamos levantarlo y hacer algunas configuraciones iniciales.



  1. Desde un emulador de consola/terminal en el celular, ejecutar:
    su
    cd /sdcard/debian
    sh bootdeb


  2. Esto va a iniciar Debian. Cuando haya terminado de iniciar (les deja el prompt para empezar a escribir), ejecutar:
    sh /scripts/onetime.sh

    Esto nos va a pedir configurar una contraseña para el usuario root. Háganlo, es necesario.

  3. Agregamos algunos repositorios básicos. Editamos el archivo /etc/apt/sources.list agregándole al final:

  4. deb http://ftp.debian.org/debian lenny main contrib non-free
    deb-src http://ftp.debian.org/debian lenny main contrib non-free

  5. Agregamos la configuración básica para que pueda utilizar la conexión de internet wifi del celular. Editamos el archivo /etc/network/interfaces y le agregamos al final:

  6. auto tiwlan0
    iface tiwlan0 inet dhcp


Después de hacer esto, tenemos que salir de Debian ejecutando:

exit

Ahora, cada vez que queramos levantar Debian, ejecutamos:

su
cd /sdcard/debian
sh bootdeb


Y siempre hay que salir usando "exit" (y no cerrando la aplicación así nomás)


Con esto ya es suficiente para tener un Debian desde línea de comandos. Los tutoriales que siguen son completamente opcionales.


C) Aumentar el tamaño del sistema de archivos


El Debian que tenemos instalado corre sobre un sistema de archivos contenido en un archivo de imagen, el debian.img. Esa imagen puede resultar un poco chica si vamos a instalar un entorno gráfico, o muchas aplicaciones. Así que si necesitamos hacerla más grande, estos son los pasos:



  1. Prestar atención a dónde se debe ejecutar cada comando, si en el celular o en la PC!.

  2. Conectar el celular a la PC en modo de almacenamiento, o sacarle la SD y conectarla a la PC con un adaptador o lector de tarjetas.

  3. Copiar el archivo debian.img de la SD a una carpeta en la PC, que a partir de ahora llamaremos PATH_PC

  4. Desde la consola/terminal de la pc, ejecutar esto reemplazando TAMAÑO por el tamaño que queramos. Ejemplo: para 3.5 GB poner 3500999999:
    cd PATH_PC
    dd if=/dev/zero of=debian2.img seek=TAMAÑO bs=1 count=1
    mke2fs -F debian2.img
    mkdir debian
    mkdir debian2
    mount -o loop debian.img debian
    mount -o loop debian2.img debian2
    cd PATH_PC/debian
    cp -R -f * PATH_PC/debian2
    umount debian
    umount debian2

    (si no funciona reinicar la pc y volver a intentar)
    cd PATH_PC
    rm -r -f debian
    rm -r -f debian2
    rm debian.img
    mv debian2.img debian.img
    chmod a+x debian.img
    chmod 777 debian.img


  5. Copiar el archivo debian.img de la PC a la carpeta debian de la SD.

  6. Volver a colocar la SD en el celular, o desconectarlo de la PC.

  7. Por seguridad, reiniciar el celular, ya que en algunas ocasiones el sistema de archivos queda como de solo lectura.

  8. Desde un emulador de consola/terminal en el celular, ejecutar:
    su
    cd /sdcard/debian
    sh bootdeb

    (eso nos inicia Debian, ya deberían saberlo, jeje)
    cd /var/lib/dpkg/updates
    rm -r -f *
    dpkg --configure -a



Después de hacer esto, tenemos ya un Debian con mucho más tamaño para jugar :D


D) Instalar un entorno gráfico


Para asombrar a nuestros linuxeros amigos, podemos instalar un entorno gráfico completo y jugar con nuestro Android como si fuese una PC de escritorio. Se arrastra de lento, y a veces se cierra solo por falta de memoria, pero anda al menos por los segundos necesarios para causar el efecto "waaaaah!" :)

Recordemos que si queremos instalar un entorno gráfico, deberíamos aumentar el tamaño del sistema de archivos.


Como los pasos no cambiaron del tutorial original, les dejo directamente el link a ese tutorial (si en algún momento desaparece, tengo una copia local, pidanme y la subo):


Instalar entorno gráfico.

(Está en inglés, si alguien necesita traducción, pida nomás)


E) Links originales


viernes, 19 de febrero de 2010

Windows PowerShell

Alguien vió lo que es PowerShell? Es una uber-copia de la consola de Linux, pero para Windows y hecha por Microsoft. Y no digo que es copia porque los veo parecidos o porque sea fan de Linux. Lo digo porque pusieron hasta los mismos comandos! "ls", "ps", "diff", "more", "man", "cp", "mv"...


Al menos no me siento tan "fuera de casa" en la maquina del trabajo, jeje...

martes, 16 de febrero de 2010

Hackers vs. Crackers

En un post de Buzz recomendé un libro para "hackers", e inmediatamente (ni 5 minutos) alguien por chat me preguntó por qué lo recomendaba a "piratas". Me hizo acordar que la mayoría tiene una idea bastante errada de lo que significa la palabra "hacker", así que posteo esta lectura obligatoria para cualquiera que quiera usar esa palabra:


(extracto de un escrito de Eric Raymond. El tipo no me cae bien, pero acá tiene razón)


Existe una comunidad, una cultura compartida, de programadores expertos y magos de las redes, cuya historia se remonta décadas atrás a los tiempos de los primeros miniordenadores de tiempo compartido y los tempranos experimentos con ARPAnet. Los miembros de esta cultura crearon el término "hacker". Los hackers construyeron Internet. Los hackers hicieron de Unix el sistema operativo que es hoy día. Los hackers hacen andar Usenet. Los hackers hacen funcionar la WWW. Si eres parte de esta cultura, si has contribuido a ella y otras personas saben quién eres y te llaman hacker, entonces eres un hacker.


(...)


Existe otro grupo de personas que se llaman a sí mismos hackers, pero que no lo son. Son personas (generalmente varones adolescentes) que se divierten irrumpiendo ilegalmente en ordenadores y haciendo "phreaking" en el sistema teléfonico. Los auténticos hackers tienen un nombre para esas personas: "crackers", y no quieren saber nada de ellos. Los auténticos hackers opinan que la mayoría de los crackers son perezosos, irresponsables y no muy brillantes, y fundamentan su crítica en que ser capaz de romper la seguridad no le hace a uno un hacker, de la misma manera que ser capaz de arrancar un coche con un puente en la llave no le convierte en ingeniero de automotores. Desafortunadamente, muchos periodistas y escritores utilizan erróneamente la palabra "hacker" para describir a los crackers; esto causa enorme irritación a los auténticos hackers.


La diferencia básica es esta: los hackers construyen cosas; los crackers las destruyen.


Para el que le interese, este es el texto completo.

viernes, 12 de febrero de 2010

Google Buzz

Qué me gusta y qué no me gusta de Google Buzz:



  • Una buena excusa para no usar Facebook, así la gente deja de insistirme en que me una al "libro de caras".

  • Lindo reemplazo para Twitter, me es más cómodo tenerlo integrado en el correo que tener que loguearme en otro sitio nuevo.

  • Mucha gente que conozco lo puede ver, no como me sucedía con Twitter (no es tan usado por estos lados).

  • Se integra bien con otras cosas que uso, como Blogspot, Google Reader y Picasa Web. De hecho este post es de mi blog, y aparece solo tambien en Buzz :D.

  • Cómodo, simple, no sobrecargado. Bien a la "google way"

  • Se puede desactivar, aunque muchos no se den cuenta. Vean abajo de todo de Gmail.

  • Se metió un poco a la fuerza, no daba muchas opciones para no probarlo, y el link para desactivarlo es casi invisible.

  • Todas las cosas son públicas por defecto: posts, listas de seguidores, etc. A mi no me afecta, pero a mucha gente sí, y por ello no debería ser de esa forma.

  • Me llegan los Buzz a la casilla de correo, odio eso. Por cada Buzz nuevo en una conversación que haya participado, me aparece un no leído en dos lugares diferentes: Buzz y Recibidos, y tengo que sí o sí archivarlo o eliminarlo desde Recibidos (si lo leo desde Buzz, el mail no leído sigue estando). Eso es MUY molesto.

  • No es tan visualmente fácil darse cuenta de los Buzz no leídos.