Hace aproximadamente 12 dias yo ingenuamente reinicie el servidor de teddy via ssh por… ya ni recuerdo porque. Cual fue mi sorpresa al ver que teddy nunca regreso. Y no pudo caer en peor momento porque teddy esta alojado en el site del Tecnologico de Celaya, y estando en vacaciones, pues no habia nadie que me diera acceso.
Hoy que fui, resulta que “Necesitaba presionar F1 porque no habia teclado”. En fin, he tomado la decision de apostar un poco por teddy y montarlo en un hardware mas confiable. Espero que esto no vuelva a pasar.
En otras noticias, he decidido open-sourcear a teddy. Tenias mis dudas porque el codigo es un asco, realmente no existe una arquitectura definida, etc. En fin, si a alguien le sirve, uselo. Aun no decido en que licencia estara. Eso lo definire en los proximos dias, si tienen alguna sugerencia no duden en decirme.
Teddy esta en un repositorio en subversion en hosting.itc.mx, que es otro proyecto que tengo, pueden descargar el codigo fuente desde aqui para la version de concursos locales, y aqui para el teddy que esta en internet. El url de subversion es http://hosting.itc.mx/svn/teddy solo necesitan darse de alta en el sitio de hosting.
Son totalmente libres de hacer forks, pero muy dentro de mi alma, preferiria que lo hicieran en el “repositorio oficial” :P
Cada que tengo oportunidad introduzco a mis compañeros de escuela al control de versiones. Es una herramienta tremenda para el desarrollador amateur y profesional. De hecho, el control de versiones es uno de los punto en la prueba de The Joel Test, osea, algo muy importante.
Desde hace tiempo que lance hosting.itc.mx con un servidor de control de versiones montado en Subversion. Meh, realmente era mi servidor de control de versiones ya que no habia manera de que alguien pudiera crear su propia cuenta o crear sus repositorios, todo lo tenia que hacer yo !
Hoy, después de recibir un ultimatum para mi clase de Desarrollo de Aplicaciones Web retome el proyecto. Lo vi, lo analice, e hice la unica cosa que nadie debe hacer, tire todo el código y comencé de nuevo. Yo queria algo como Google Code, como GitHub, después de buscar software similar ( Open Source ), que no encontre, decidi escribirlo yo mismo. Debo estar en mi Ballmer Peak, porque solo me tomo 10 horas !
Una vez leyendo por ahi me tope con la siguiente afirmación :
Un software que no se usa, es un software que no sirve
No podría estar mas de acuerdo, creo que es una de las razones por las cuales, dedico un 90% de mi código a aplicaciones en red o que facilitan el desarrollo de aplicaciones en red. Atwood hasta llega a afirmar aquello de All programming is web programming. ¿ Por que digo esto ahora ? Bueno hoy por primera vez alguien organizo un concurso en Teddy. Eso significa que, alguien esta usando mi software. Eso me llena de jalea masculina:
Ya enserio. Me quede pensando sobre aquello que me conto un alto rango en redes que trabaja en NEC. El poder de computo esta regresando a la red. Aparentemente en el pasado, tambien había maquinas en las que uno podia pasar horas sentado, con la diferencia de que el poder de procesamiento estaba detras de la red:
In order to connect this device (which was not a computer at all) to the Iowa State University mainframe across town, you would pick up the phone, dial the computer’s number, listen for strange noises, and then slam the handset down into the rubber cups. If your aim was true, one would wrap its neoprene lips around the earpiece and the other around the mouthpiece, consummating a kind of informational soixante-neuf. The teletype would shudder as it was possessed by the spirit of the distant mainframe, and begin to hammer out cryptic messages.
Pero eso no me toco a mi. Yo soy de los 8086 y 286 para acá. Crecí y vivi con procesando mis propios datos, en mi propia computadora. Pero conforme la red se vuelve mas rapida y mas barata, eso esta cambiando. Yo diria que el 50% de mis datos los procesa o almacena alguien mas por mi, detrás de la red. Google Docs, Google Calendar, Grooveshark, este blog, Facebook, etc. El procesamiento esta, de hecho, regresando detrás de la red.
Uno bien podría descargar una copia de algún juez y resolver problemas en su maquina, solo. Pero no ! Tiene que ser, alla.
Tomando en cuenta que hacer sitios web es el nuevo abrir mi ciber-cafe. Mi duda es ¿ como explotarlo ? Habra un millon de cosas que en este nuevo/viejo mundo del computo distribuido uno podrá dar por hechas en el futuro. ¿ Cuales son ?
Campus Party 2010 esta a la vuelta de la esquina. Yo tuve el gusto de estar en la edición 2009 así como tambien en Aldea Digital 2009. Así que he aqui algunos tips que podrían ayudar a alguien, especialmente si provienes de Celaya y sus alrededores.
Como llegar
La apuesta mas sencilla es irse a Querétaro, y ahi comprar el boleto Querétaro-Santa Fe en Primera Plus. La ruta exacta es QUERETARO - TERMINAL TEPOZOTLAN - SANTA FE. Tiene un costo de $185.00 pesos adulto y $95.00 para estudiantes.
Las salidas son a las 5:35, 6:35, 7:35 y 8:35 horas. Los horarios de 6:35 y 8:35 hacen una escala extra, así que la duración del trayecto es de 4 horas. Los horarios de las 5:35, y 7:35 tienen una duración de 3 horas.
Una vez en Santa Fe, Expo Bancomer no esta muy lejos, pero dado que iran con equipaje, yo optaria por tomar un taxi. La “Terminal” de Santa Fe, o por lo menos donde te bajan los de Primera Plus, es un puesto de revistas, hay muchos taxis disponibles. Segun recuerdo, a mi me cobraron alrededor de $50.00 pesos.
Si te gusta hacer fila, vete el dia 9 a primera hora.
Recomendaciones
Lleva audífonos, audífonos cómodos, tus orejas te lo agradecerán.
Algún cojín para ponerlo sobre la silla. Estarás sentado cantidades tremendas de tiempo, y las sillas que se proporcionan no son exactamente, ejecutivas.
Llevar una lista de cosas que bajar. Cuando estes ahi, querrás bajar absolutamente todo lo que dice “download”. Ve pensando desde ahora que cosas imprescindibles que en tu casa te tomaria una semana descargar. Seria buena idea descargar ahora en tu casa todos los archivos torrent que te interesen. torrents.to es un buen lugar para buscar.
En la red local que se forma entre compuseros, hay un mundo de información que facilmente sobrepasa varios terabytes. Vete familiarizando con DC++ y StrongDC++. Si ya tienes mucha información que compartir, investiga el proceso de indexación de estos programas para que los puedas compartir, indexar tus cosas puede tomar mucho, mucho tiempo.
Estando ahi, estarás rodeado de 6,000 personas con mucha afición por las tecnologias de información. Si tienes un proyecto o idea, campus party es una excelente oportunidad para pedir opiniones o ayuda.
Protege tu información personal. Revisa la manera en que compartes archivos en tu computadora y esconde lo que definitivamente no quieres que alguien mas vea. No seria mala idea instalar algún firewall.
Un multicontacto no es mala idea si piensas llevar un monitor extra, cargador de celular, y demás dispositivos.
No querrás quedarte sin computadora esos dias. Lleva una copia de tu sistema operativo y controladores por si algo le pasa a tu maquina.
Haz una lista de las cosas que llevas, y siempre mantente al tanto de ellas. Tambien procura llevar un candado para tu casa de campaña.
OpenCV ( Open Source Computer Vision) es una libreria de funciones para el procesamiento en tiempo real de vision de computadora, desarrollada por Intel.
Yo uso OpenCV para desarrollar un algoritmo de realidad aumentada. Donde un dispositivo de video-grabación, que apunta a un texto, es capaz de extraer el texto de la imagen.
Imaginen lo siguiente: instalar una camara con una pequeña computadora en cada microbús de la ciudad. Cuando el microbus transita por las calles, la camara va detectando los distintos letreros viales. Digamos, “Máxima Velocidad 50 Km/h”. Entonces, la computadora extrae el texto, y asi entonces, controla el acelerador del camión para que este no supere los 50Km/h. Interesante, ¿No?
Pues asi entonces, me embarque en la tarea de intentarlo. Despues de una semana de leer, programar e inventar cosas, logre salir con este primer demo :
De verdad que en cuanto a innovacion se refiere, este primer demo dejo mucho que desear. Fue mas bien como para familiarizarme con OpenCV. Lo que este primer algoritmo hace es, buscar pixeles opacos, frente a pixeles claros. Segun yo (en aquel entonces), un texto no eran mas que pixeles mas opacos en un fondo mas claro, y siempre estaban alineados horizontalmente.
Evidentemente estaba en un grande error. Así entonces, una vez con un poco mas de conocimiento en OpenCV decidi hacer un poco mas de investigacion del tema, y me tope con esto :
International Journal of Signal Processing: An Edge-based Text Region Extraction Algorithm for Indoor Mobile Robot Navigation
de Jagath Samarabandu, Member, IEEE, and Xiaoqing Liu
Y resumire el funcionamiento de su algoritmo con esta imagen :
Una semana mas de ardua lectura y mucho café, logre salir con esto :
Como se puede apreciar, es mucho mas acertado a la hora de encontrar las regiones de interés.
En fin, la idea del post es dar una idea general de todo lo que se puede lograr en poco tiempo con OpenCV y claro, como comenzar a usarlo.
Ve a tu terminal mas cercana, yo estoy corriendo Ubuntu 9.10, e instala los paquetes necesarios con esta linea :
Generalmente hago un script que compile y ejecute el programa, y asi evitar confusiones y errores de dedo, aparte de que es mas rápido. Una vez que compile, simplemente corre el programa, pasandole como argumento el nombre de un archivo de imagen. La imagen debe abrirse en una ventana.
El resto, es leer. Mucho. Y divertirse. Aque dejo algunos links que me han servido: