Entre ayer y hoy estuvo la PyCon 2009, la primera conferencia de Python en Argentina. Fue espectacularmente organizada por PyAr. Mi intervención fue minima, di una mano siendo ayudante tecnico durante la mañana de hoy (4 charlas). También di una presentación y una lighting talk. La presentación fue "Python en Ciencia", donde hice advocacy para usar Python en ciencias duras. Porque no tuve en cuenta que tambien se usa en psicologia, según una de las lighting talks. Si, una asistente mostró una aplicación para diseñar e implementar test psicologicos, ademas lo hace en Linux y usando Wine hace el instalador para Windows, ¿que tal? Volviendo a mi presentación, fue un poco accidentada porque tuve un par de cortes de luz en el medio, asi que no pude mostrar todos los slides, asi que aca pongo la presentación por si a alguno les interesa, aunque no dicen mucho, sino que son mas un apoyo para lo que digo.
Hoy estuve en el evento Wikimania 2009. Se trata de la reunion anual de Wikimedia, la gente que hace Wikipedia. En este caso hice de organizador, aunque mas que organizador fui voluntario. El papel que me autoasigne fue el de encargado tecnico de sala. Mi tarea principal era asistir a los expositores en lo que necesiten en medios tecnicos para dar su charla. La sala que elegi eran donde exponian los capos maximos de programacion y administracion de sistemas. Por ejemplo estaban las personas que tenian el root (acceso total) de los servidores de Wikipedia. Asi que lo que yo podia aportar para asistir a semejantes proceres tendia a 0 :). Ademas quienes me asistian a mi tambien la tenian clara asi que las pocas veces que hubo un problema de red, me lo arreglaron (habia un problema con un ruter creo). Si bien estuve pendiente al handy, algo de las charlas pude escuchar y la gran mayoria fueron increibles. Temas como la API de Wikipedia, la plataforma de testing, la administracion de los servidores, la herramienta de los wikibooks y el "toolserver". Estuve en el mejor lugar que podia estar un geek hoy 26 de Agosto de 2009. Algunos se quejaban del precio del evento (u$70), especialmente estando en Argentina y siendo un evento relacionado con la comunidad de software libre (donde estuvo Stallman). Pero despues de ir hoy, copnsidero que es barato, ya que compartir 3 dias con personas de todo el mundo, incluyendo grosos en serio y almuerzo y bebidas, cena de bienvenida con bife de chorizo, fiesta de despedida, es un regalo. No conozco los numeros economicos del evento, pero apostaria que esta subsidiado, no veo como se puede pagar un evento de ese nivel con tan poca plata. Lo malo: Se afanaron una laptop, a pesar de la seguridad del lugar y la contratada por wikimedia. Pero ellos (la seguridad de Wikimedia) encontro uno de los chorros, o sospechoso (estaba sin ID en el hall comun y con la mochila que el dia anterior le robaron a Bea, suponemos que como el robo a Bea fue en el Alvear, el tipo supuso que era eventos distintos,sino no se explica que use lamochila robada). Pero eso es parte de donde vivimos, es como el clima, no podemos hacer nada (salvo tener quidado). Los ba~nos tambien tenian problemas, como cualquier banio de un teatro en Argentina, pero para un evento internacional no queda bien. Asi que pese a esto, el balance es muy positivo, y para aquellos que se quejan del precio, tengan en cuenta que los videos y todo el material estara disponible gratis (si es que no esta online ya mismo). Como soy cholulo, me saque una foto con Rob Halsell, uno de los 10 roots de Wikipedia:
Aca les dejo un folleto sobre una charla que voy a dar. Justo ese dia (4 de Setiembre 2009), pero al mediodia, doy tambien una charla en la PyCon (Conferencia de Python). La primera vez que doy 2 charlas distintas en el mismo día. Tampoco serán tan distintas, puede que se solape alguna diapo :)
Me acaba de llegar la confirmación que podré probar Google Wave como developer, me llegó un email con un link para llenar un formulario (hecho con Google Docs) y al final dice que me darán el user y el password:
Si no conocen que es Google Wave, les recomiendo este video:
En resumen es una combinación entre email, foro, wiki, IM y procesador de texto en un solo programa, lo que crearia toda una nueva dinamica de trabajo, al menos para quienes puedan adaptarse a ella, ya que no preveo facil al transición (todavia hay gente que rechaza toda herramienta colaborativa mas alla de enviar .docs adjuntos por email). Otra ventaja es que tendrá una implementación de referencia open source cosa que cualquier pueda instalarlo en su servidor asi no existe mas la excusa (válida por cierto) de "no quiero dejarle los datos a Google".
Nuevos datos:
Ya la empecé a usar. Es realmente increible, a pesar de lo buggy que está!. Amplien la foto de abajo para ver como es:
Para una página que muestra como va progresando la secuenciación del genoma de la mitocondria del tomate, le puse una base SQLite, total es solo select y la consulta solo el grupo de trabajo (como mucho 5 personas), asi que es un ambiente donde SQLite se la tiene que bancar bien. Al principo este codigo eran 5 codigos que fui haciendo a medida que iba creando tablas, pero como esto lo tendré que rehacer cada vez que tenga nuevos datos, lo junté en un solo script:
#!/usr/bin/env python
import sqlite3 import csv import cPickle
from Bio import SeqIO from Bio.Sequencing import Ace
# POPULATE cleanreport fh =open(clnfn) lines = csv.reader(fh,delimiter='\t') for line in lines: name = line[0] perc = line[1].strip() i =int(line[2].strip()) f =int(line[3].strip()) ilen =int(line[4].strip()) trash = line[5].strip() comm = line[6].strip() t =(name,perc,i,f,ilen,trash,comm) c.execute("insert into cleanreport values (?,?,?,?,?,?,?)", t)
# POPULATE oriseqs # LOAD DICTIONARY fh =open(dictfn) old2newnames = cPickle.load(fh) fh.close() new2oldnames ={} for x in old2newnames: new2oldnames[old2newnames[x]]= x
fh =open(oriseqsfn) for rec in SeqIO.parse(fh,'fasta'): t =(rec.id,new2oldnames[rec.id],str(rec.seq)) c.execute("insert into oriseqs values (?,?,?)",t)
fh.close() conn.commit() # POPULATE cleanseqs fh =open(cleanseqsfn) for rec in SeqIO.parse(fh,'fasta'): t =(rec.id,str(rec.seq)) c.execute("insert into cleanseqs values (?,?)",t)
fh.close()
# FOR POPULATE ctgsseq anclados = set() # lista de cuales anclan y cuales no!!. fh =open(coordsfn,'U') for line in fh: if'\t'in line and'Contig'in line[86:]: ctgn = line.split('\t')[1].replace('\n','') anclados.add(ctgn) fh.close() ctgdict ={} fh =open(ctgsfn) for rec in SeqIO.parse(fh,'fasta'): ctgn = rec.id entra =1if ctgn in anclados else0 iflen(ctgn)==9: ctgn ='Contig'+anal+ctgn[-3:] eliflen(ctgn)==8: ctgn ='Contig'+anal+'0'+ctgn[-2:] eliflen(ctgn)==7: ctgn ='Contig'+anal+'00'+ctgn[-1] #print ctgn,str(rec.seq),entra t =(ctgn,str(rec.seq),entra) c.execute("insert into ctgsseq values (?,?,?)",t)
fh.close()
# POPULATE ctgs acefilerecord = Ace.read(open(acefn)) for ctg in acefilerecord.contigs: ctgn = ctg.name allr_s = set() for read in ctg.reads: if read.rd.name notin allr_s: #print ctgname,read.rd.name iflen(ctgn)==9: ctgn ='Contig'+anal+ctgn[-3:] eliflen(ctgn)==8: ctgn ='Contig'+anal+'0'+ctgn[-2:] eliflen(ctgn)==7: ctgn ='Contig'+anal+'00'+ctgn[-1] t =(ctgn,read.rd.name) c.execute("insert into ctgs values (?,?)",t) allr_s.add(read.rd.name)
GenesDigitales presenta una nueva versión de DNALinux, Virtual Desktop Python for Bioinformatics Edition. DNALinux Py4Bio es una máquina virtual con la distribución Linux Xubuntu y software de bioinformática preinstalado. Esta versión de DNALinux formará parte del libro "Python for Bioinformatics" Todo el software explicado en el libro esta incluido en esta versión de DNALinux Virtual Desktop como asi tambien software especifico de bioinformatica. Los programas bioinformáticos incluidos mas destacados son: Biopython, BLAST, Emboss, NCBI toolkit y otros. La lista completa está disponible en http://www.dnalinux.com/installedsoftware.html Esta versión reemplaza a la linea "desktop" y "server" ya que tiene ambos tipos de programas. Con DNALinux es posible montar un servidor BLAST sin necesidad de configurar Apache y CGI porque ya viene preconfigurado y listo para usar. DNALinux está compuesto por una "distro base" (Xubuntu 8.04) corriendo sobre una maquina virtual (VMWare). La principal ventaja de esta configuración es que su la virtualización no afecta el sistema operativo ya instalado, permitiendo el aprendizaje, testeo y desarrollo de aplicaciones bioinformáticas en un ambiente uniforme. La maquina virtual tiene un tamaño de mas de 12 Gb, aunque se distribuye comprimida con 7zip en un archivo de 2.3Gb. La distribución se realiza con el protocolo bittorrent, motivo por el cual solicitamos a los usuarios que estén en condiciones de "seedear" la imagen el mayor tiempo posible.
Para citarlo por si se lo usa en alguna publicación:
Bassi, Sebastian and Gonzalez, Virginia. DNALinux Virtual Desktop Edition. Available from Nature Precedings <http://dx.doi.org/10.1038/npre.2007.670.1> (2007)
Compré un lector de tarjetas. Tiene varias ranuras, le puse todas las que tenia: SD de la Asus eeePC, microSD del celular (A380i) y una Memory Stick Pro DUO de la camara Sony. Todo fue montado correctamente en mi notebook HP con Linux (kernel 2.6.14), como un disco USB mas. Me viene barbaro porque porque mi notebook no tiene lector de SD y asi puedo intercambiar mas facil con la Asus. Lo mas practico es que ahora podre poner peliculas divx en la SD y con este adaptador se lo pongo en la entrada USB del lector/grabador de DVD y listo, no tengo que andar quemando CDs o DVDs para ver algo que tengo en la compu.
Me llegan anuncios de tesis por algunas lists académicas que setoy suscripto. Hoy me llegó una con un título todavia no puedo digerir:
Fluctuaciones Escalares de la métrica en Teorías de inflación desde un vacío en 5D
Parece un invento hecho para la serie "The big bang theory", pero no, es algo serio. Si alguien se anima a intentar explicarme al menos de que se trata, se lo agradeceré :)
Este es el anuncio completo:
DEFENSA DE TESIS DE DOCTORADO
AREA FÍSICA
La Escuela de Postgrado de la FCEyN invita a la defensa oral y pública de la Tesis de Doctorado del Lic. Mariano ANABITARTE cuyo tema es “Fluctuaciones Escalares de la métrica en Teorías de inflación desde un vacío en 5D”, dirigida por el Dr. Mauricio BELLINI
La misma se realizará el Miércoles 22 de Abril a las 14 Hs. en Aula Pablo NERUDA
La foto no es buena porque es muy temprano, hay poca luz y estoy en movimiento. Al menos es mejor que mi intento anterior. Algún día tendrá su buena foto. Es en Rivadavia al 12800 aprox. (Refrigeración BELGAR), lo veo camino al INTA Castelar cuando voy en el charter que se toma en la central del INTA en Congreso.
Como comenté en un post anterior, fui a una entrevista por las becas de "Control F". El lugar era un edificio antiguo pero bien conservado en Callao 67 donde funciona una escuela de arte. Se llama "Nueva Escuela":
Te hacen llenar un formulario y pasas a una "entrevista grupal" que estaba pactada para las 11.30. Ahi un tipo nos explican que ellos son una consultora de RRHH especialistas en IT (habia 2 chicas que eran psicologas que hacia de asistente del que hablaba). Nos contó el nombre de la empresa e hizo un chivo de la misma, que era una consultora joven, de 2 años (y asi y todo agarraron semejante seleccion!) y que como hay mas postulantes que becas disponibles, hay que seleccionar.
Formulario a llenar:
La selección consiste en primero cada uno cuenta que sabe de informática y porque o para que quiere hacer que curso. Tambien se pregunta por formación académica y experiencia laboral. La clase de gente que habia era muy variada. Desde chicos que recien terminaron el secundario hasta graduados universitarios con años de experiencia, aunque en muchos casos con tecnologias obsoletas (pascal, clipper, etc). Pero en general, todos los que estabamos ahi teniamos algun problema, ya sea de formación, laboral o economico. Asi que elijan a quien elijan lo mas probable que sea a alquien que la necesita.
En mi caso cuando me preguntaron porque JAVA si ya conozco otros lenguajes le dije: "Siempre estuve interesado en JAVA, pero como era propietario nunca me molesté en aprenderlo, ahora que ese problema se solucionó, me interesa".
Luego de la presentación, una "prueba grupal". A cada mesa (de entre 4 o 5 personas) nos daban un ejercicio tipo logico. De esos que suelen resolverse con una tabla de doble entrada, que si juan plantó verduras pero jose no plantó rosas y Maria planto en el terreno del medio (estoy inventando, pero es algo asi). Te dan 10 minutos para resolverlo. Cuando esta por terminar el tiempo, me di cuenta:
La trampa es: El problema no tenia solución. Faltaban datos (por ejemplo tenias que contestar que plantó cada una de las 5 personas pero habia 4, y cosas asi). Evidentemente evaluan otra cosa. supongo que en ese momento las psicologas evaluarian como interactuamos en el grupo, si seguis ordenes, si sos lider, si sos pasivo, si impones tu ideas, etc.
Luego vino una "prueba" ya individual. Unos multiple choice de matematica (tipo que fraccion es mas grande, que area tiene esta figura, etc), unos de completar la secuencia de letras y otros de completar la secuencia de figuras. Los de completar la secuencia son totalmente subjetivos. Porque como no sabes cual es el criterio elegido para hacer la prueba (de hecho es lo que hay que descubrir), no tenes manera de saber si el criterio que dedujiste es el mismo o no, ya que nadie dice que no pueda haber mas de un criterio.
Muchos de los postulantes les hacian preguntas sobre los cursos y sobre temas de orientacion vocaciones (¿debo cursar soporte de Windows o Administración de base de datos?) y si bien el representante y las psicologas tenian cierto entrenamiento en el area, no era lo mismo que preguntarle a alguien que sabe de verdad (como un informático de carrera por ejemplo). Pensar que muchas empresas (o en este caso el gobierno) están en manos de estas personas, de terror. Aunque es bueno saber esto por si uno va a una selección laboral. Si la selección la hace un psicologo o si hay un psicologo involucrado, hay que saber decir no, gracias. Las entrevistas laborales son dobles, uno es entrevistado pero uno debe "entrevistar" a la empresa. Igual esto no era una entrevista laboral, sino una beca, asi que me amoldé a las condiciones para ver si la gano.
Otra observación es que ademas de cursos, lo que mas hace falta es orientación. Claramente una psicologa que trabaja en RRHH no puede asesorar a un estudiante de la ORT que quiere decidir entre SQL2005 y Oracle. Tambien habia demanda de asesoramiento de temas mas básicos, esa es una falta bastante oculta, es facil ver que faltan programadores y DBA, pero no es tan facil de detectar que falta orientación.
Durante Marzo mandan un email a todos los participantes para comunicar si ganaron la beca y cual ya que uno pone un orden de prioridad, no hay garantia que te toque lo que pediste.
Cuando uno escribe una dirección que no existe en el navegador, Telefonica ahora nos "regala" un buscador trucho.
Miren lo que pasa:
Aca se ve que tengo OpenDNS como DNS:
Lo publicitan como un servicio con estos términos:
Ayuda en la búsqueda de Telefonica auxilia a los clientes en su experiencia de navegación por Internet, cuando digitan una dirección equivocada o inexistente, se le presentan sugestiones relacionadas con la dirección escrita y una caja de búsqueda que facilita encontrar mas información.
Este es un servicio gratuito de Telefonica
Si el cliente no desea recibir estas sugerencias, es posible seleccionar una opción al final de la pagina realizando un clic en "No deseo recibir sugestiones de links"
Nueva clave pública de GPG. Para los no geeks que puedan leer esto, es una código que sirve para que alguien me puede escribir un mensaje "cifrado" usando el programa gpg.
Aca va la clave:
-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.2.5 (GNU/Linux)
Hoy vi unos carteles en el centro de Bernal (Quilmes) anunciando un ciclo de cine gratis. No tenga nada que ver con esto, solo vi el cartel (y me lleve uno) para poner el aviso aca
Centro Cultural Pampero - Ciclo de cine - Entrada gratuita. Viernes de Octubre 20:30.
Viernes 3: "La vida de Brian" Viernes 10: (No se ve el nombre porque la fotocopia es muy clara), pero es de Monty Python, pero si veo la descripción: "Las etapas de la vida del hombre y la sociedad tratadas de una forma irreverente y desopilante". Presumo que sera "El significado de la vida". Viernes 17: Brazil Viernes 24: (tampoco se ve el titulo), descripción que veo: "Acida y trochante critica de los estereotipos de la vida moderna ... inglaterra del medioveo". Debe ser del "Santo Grial". Viernes 31: Monty Python en Hollywood.
Lugar: Vieytes y Otamendi - Bernal (a 1 cuadra de Lamadrid y San Martin). culturapampero@yahoo.com.ar
NO ME PREGUNTEN NADA DEL TEMA, SOLO REPRODUZCO EL CARTEL. Si a alguien le importa, probablemente vaya.
Actualización: 1) Saco el poster porque estaba hotlinkeado y salia un cartel (podría haber sido peor, podrian haberme puesto un goatse). 2) Este lugar (centro Pampero) ahora lo recuerdo, nunca fui, pero queda cerca de casa y lo vi desde afuera. Luce como el típico "antro casa tomada por anarco que se la dan de artistas". Creo que igual voy a ir.
Tengo que admitir que me gusta comprar por ebay. Cuando tenga tiempo postearé las cosas que he comprado. Por lo pronto voy a poner lo que acabo de ganar hoy:
Un juego de mesa del Zaxxon!!. ¿Que es el Zaxxon? Es un videojuego que jugaba de chico, en la Commodore. Estaba en muchas plataformas, pero yo recuerdo la versión de la C64 porque era lo que yo tenía. Me acuerdo que se publicitaba como "el primer juego de guerra espacial tridimensional". No se si realmente lo era, pero era un tagline atractiivo para la época (mediados de los 80).
Cuando trabajaba en el campo, usaba una linea telefónica tan ruidosa que muchas veces tenia que calcular 10 minutos para bajar un mega (Mb). Ahora usando un servidor virtual en USA puedo tener velocidades de descarga de mas de 100 Mb por minuto. Pongo las 2 mediciones en las mismas unidades: 0,1Mb/min vs. 100Mb/min. La diferencia es de 1000 veces.
Por lo que un DVD de 4.3 Gb baja en aprox. 45 minutos.
¿Cómo obtener esas velocidades?
Fácil, no es gratis, pero ninguna conexión es gratis (salvo cuando pescamos un WIFI por ahi). Saco una cuenta en Linode.com. Linode.com es una empresa de máquinas virtuales online. Es como un hosting, pero a diferencia de un hosting convencional donde ya está todo seteado y solo tenemos acceso a un panel de control y un FTP, aca podemos instalar cualquier Linux y luego tenemos acceso FULL e ILIMITADO al mismo. Los límites vienen por el lado dedel espacio en disco que ocupas y el ancho de banda que consumis. El plan mas barato (u$ 19.95) deja transferir 200Gb con un espacio en disco de 12Gb. Si no sabes instalar Linux no pasa nada porque la instalación es todo por panel de control (con 2 click instalas la distro que quieras, yo tengo Ubuntu 8.04). Luego uno puede acceder via ssh o VNC (acceso gráfico), pero ahi si hay que saber algo de Linux para aprovecharlo al máximo. De hecho es un sistema pensado para programadores y para quienes tenemos páginas web. Es muy bueno como entorno de prueba. Tambien permite el crecimiento porque uno puede ir agregando RAM, disco, ancho de banda, ips, a medida que va necesitando. Eso si, para agrandar el disco rigido mejor que hagamos que nuestra particion sea EXT3, porque el resto de los sistemas de archivos no soporta resize. Si por ejemplo elegimos Reiser o algún otro y queremos comprar mas espacio, lo tendremos que montar como unidad aparte.
Importante: Si bajamos un archivo a la máquina virtual, este quedará ahi y no en nuestra máquina (a esto se lo llama sideload), para transferirlo a nuestra máquina tenemos que bajarlo luego via web o ftp. ¿Para que entonces bajar algo en una VM para luego bajarlo de nuevo? La ventaja de este sistema es que algunos sitios que no permiten continuar bajadas interrumpidas son casi imposibles de usar desde una conexion casera, entonces lo usamos via VM y luego descargamos tranquilo con "resume" el material desde la VM. Tambien podemos usar Bittorrent a full, a diferencia de agunas conexiones caseras que están detras de proxies o de routers donde cierran los puertos necesarios para el uso optimo de Bittorrent.
Bueno, cualquier cosa consulten en este post. Aca está la dire del sitio: Linode.com Disclaimer: Los links que pongo tienen código de referencia asi que voy a comisión con Linode.com, aclaro para que nadie me acuse de hacer propaganda encubierta, solo recomiendo algo que a mi me sirve mucho y no estoy encubriendo nada.
Pude meter el Python 3.0b1 en la Asus eeePC. Es cuestion de instalarlo en una carpeta en otra PC, usando "config --prefix=/directorio/alternativo", luego make y make install. Es mas fácil hacerlo en otra máquina porque no trae el compilador. si bien supongo que podria instalarlo, no quiero ocupar el muy poco espacio que tengo en algo que no uso nunca. La máquina tiene 2Gb de los cuales mas de 1 es ocupado por el SO y la particion de restauración (cosa importante teniendo en cuenta que no tiene lectora de CD, la otra opcion es usar un disco USB pero no tengo Windows y el programa para crear el disco de arranque USB con el SO de Asus y sus drivers, es con Windows que no tengo.). Al directorio con los ejecutables, hay que copiarlo a un MMC-SD, luego poner ese MMC-SD en la Asus eeePC. El problema es que el archivo que hay que ejecutar no está marcado como ejecutable y para colmo el sistema no nos deja cambiar ese atributo. Es que por defecto la tarjeta está en FAT, si estuviese en ext2/3, ya con esto es suficiente. En el caso de que esté en FAT, hay que seguir los pasos que están aca: http://wiki.eeeuser.com/execute_apps_off_sd. En resumen:
Editar (como root) el archivo /sbin/probedevice. En las lineas 43 y 44 cambiar noexec por exec y en fmask, 111 por 0. Grabar y rebootear (se puede evitar el rebooteo remontando todo, pero no recuerdo como se hace asi que rebootie total es rápido en ese bicho).
Ahora con la posibilidad de que los archivos sean ejecutables, es cuestion de correr el python3.0. Lo mismo deberia funcionar para 2.5.2 (la versión que trae Xandros de Python es la 2.4). Todas las capturas son del "modo avanzado", que es donde tenes acceso al KDE, ya que el modo "fácil" es un sistema lockeado con pocas posibilidades de customización. Aca en este wiki se explica como instalar el modo avanzado (KDE) en la asus eeePC.