22 Mayo 2008
¿Que es Hiveminder?
No voy a explicar que es ya que no es el fin de esta entrada, podeis leer sobre la aplicación por ejemplo en genbeta , así como una entrada de mi compañero Juan.
Script todo.pl
Hiveminder nos ofrece un script en perl con el que podemos tratar nuestras tareas desde linea de comandos( como a mi me gusta ^_^)
- Descargar todo.pl
- Instalar modulos necesarios para la ejecución del script usando CPAN.
Supongamos una maquina que por defecto solo tiene perl, cpan y los módulos principales, entonces debemos instalar las dependencias requeridad por todo.pl
sudo cpan
Si es la primera vez que ejecutamos cpan debemos responder a todas sus preguntas para configurarlo. Una vez hecho esto y estando dentro del interprete cpan procedemos con la instalación.
install YAML Number::RecordLocator Email::Address
- Prueba de todo.pl.
Si hemos realizado los pasos anteriores estaremos preparados para ejecutar el script, que suponiendo que está en mi home seria.
perl ~/todo.pl
Lo primero que nos preguntará es el nombre de usuario y contraseña para conectarse con HM, una vez autentificado podremos consultar-crear-editar tareas desde linea de comandos y actualizandose en la aplicación web. Ejemplos aquí.
Poner tareas pendientes en el escritorio.
Los usuarios de Mac-OS tienen una herramienta llamada GeekTool que les permite la ejecución de comandos del sistema directamente sobre una interfaz en el escritorio. Los usuarios de linux nos la ingeniaremos para tener algo parecido.
- Creación de una consola trasparente sobre el escritorio.
Podeis ver como hacerlo aquí o aquí.
Como veréis en los tutoriales usan Gnome como entorno de escritorio así como el sistema de paquetes Deb, si no es tu caso debes buscarte la forma de instalarte alltray(RPM, compilar,...), así como usar la consola que creas oportuna(eterm, aterm, xfce-term...).
- Ejecución de todo.pl de forma periódica sobre la consola trasparente
Ya tenemos la consola trasparente bajo un perfil llamado por ejemplo "desktop" y ahora queremos ejecutar de forma periódica la lista de tareas para mantenerla actualizada, para ello usaremos el comando del sistema watch que nos permite ejecutar cualquier comando cada x segundos.
Por tanto usando lo anterior la llamada nos quedaria por ejemplo así:
alltray -x -s -st -stask -g +5+650 "gnome-terminal --window-with-profile=desktop -x watch -n 120 --no-title perl ~/todo.pl"
Con esta sentencia creamos una terminal trasparente en la posición -g +5+650, usando el perfil desktop, y ejecutando el script cada 2 minutos.
Resultado:

Mola ¿no?
Tip
Si te animas a usar el script para tratar con hiveminder no estaría de mas crear un alias en ~/.bashrc o ~/.bash_aliases de forma que en vez de usar "perl /PATH/todo.pl list" por ejemplo, podramos hacer "todo list"
alias todo="perl TU_PATH/todo.pl"
servido por n3uro5i5
sin comentarios
compártelo
favorito
19 Mayo 2008
Ultima entrega del peñazo resumen Where 2.0.
Your Memories: Here, There, Everywhere Jef Holove (Eye-Fi, Inc.)
Jef Holove, presentó Eye-Fi, según ellos la primera tarjeta(en este caso SD) que permite el upload de fotos geo-tageadas directamente desde la cámara mediante wifi.
Cuanto menos curioso.
GeoDjango: Web Applications for Geographers with Deadlines
GeoDjango es una expansión del FrameWork de desarrollo web Django, " coleguilla " de nuestro querido ROR, el cual añade funcionalidades específicas para el desarrollo geo-espacial soportadas por la mayoria de los gestores de base de datos.
Otro de los valores añadidos de GeoDjango es la posibilidad de renderizado a la mayoria de los “estándares” de representación posicional( KML, GML, GeoJson, GeoRss, OpenLayer).
Your Car Gets an API Chris Butler (Dash Navigation)
Dash es un dispositivo de navegación GPS con la peculiaridad de que todo su potencial lo obtiene conectado a internet. Nos puede calcular rutas basadas en el tráfico , el estado del tiempo, accidenter, etc, todo a tiempo real.
Este dispositivo no es nuevo, en realidad no lo presentaron allí, sino que hablaron de sus últimas aplicaciones, y de camino como no, pues darle algo de bombo al producto.
Going Places on Flickr: The Significance of Geographical Information in Photos
En este caso el “crack” Dan Catt hablaba de como habian solucionado en Flickr el problema del Geocoding inverso( sabemos el punto y queremos obtener la dirección, tipo de via, ...).
No voy a entrar en este tema, pues sería una entrada entera, y quizás me anime a escribirla en los próximos dias.
Crawling the web for GeoData Juan Gonzalez (PlanetEye Inc.)
Presentarion PlanetEye que es una aplicación que obtiene todos los datos(fotos, videos, lugares) de otras fuentes realizando crawling por la web.
Google Maps = Google on Maps Lior Ron (Google, Inc. )
Hicieron una demostración de las posibilidades de búsqueda sobre Google maps( GeoSearch), simplemente poniendo “Bares Sevilla” podremos ver sobre el mapa donde podemos gastarnos todos nuestros ahorros :p
Google Maps for Mobile with My Location - Behind the Scenes
En esta ponencia no pude estar, pero me encargué de que me comentaran un poco sobre ella, y no queria terminar sin hacerle una reseña.
Google está desarrollando My Location, que es un sistema de posicionamiento que permite obtener nuestra posición a través de su telefono móvil y sin necesidad de GPS.
Es una característica que no conocia, podeis leer mas aquí.
Bueno esto es todo lo que tenia que contar, espero que a alguien le sirva, aunque a mi si que me servirá para recordar dentro de unos años lo mal que escribia y la cantidad de aviones que cojimos ;-)

servido por n3uro5i5
sin comentarios
compártelo
favorito
17 Mayo 2008
Las sesiones del martes y miercoles se basaban de charlas que duraban entre 5 y 30 minutos, por lo que sería una pesadez si tuviera que comentar cada una de ellas, por lo que he decidido solo hablar de las que a mi parecer resultan mas novedosas.
- EveryBlock: A News Feed for Your Block
Gracias a las posibilidades que ofrece la gran cantidad de información pública referente a la ciudadania en EEUU, nace EveryBlock que no es más que mantener organizada geograficamente toda la información de inspecciones, delitos, trafico, etc, a un nivel de granularidad muy alto(manzanas e incluso edificios).
A primera vista parece una aplicación muy potente, pero desde mi punto de vista le veo un par de puntos negros. El primero es que la expansión a otra ciudad requiere un gran esfuerzo de documentación y estructuración, por tanto mucho dinero.
El segundo problema y más importante a mi parecer, es la limitación de este sistema a los EEUU, pues su integración en Europa es casi imposible por las limitaciones en cuanto a la privacidad de los datos de los ciudadanos.
- Merging Roadways: PC and Mobile Maps Coming Together(Nokia)
Como era de esperar Nokia ha apostado fuerte por el tema de la geolocalización enseñando su proyecto OVI.
Ovi no es más que la extensión de los nokia maps al pc, de forma que se pueda compartir o añadir contenido de/para el GPS nokia.
De esta forma intentarán crear comunidad usando el site web, y que esta comunidad genere contenido a medida para ser usado en los dispositivos.
Es curioso que nada más salir las primeras diapositivas sobre el productos una avalancha de flashes inundaron el auditorio, parece un producto con mucho hipe por aquellos lares.
- The State of the Geoweb (John Hanke, Google inc)
John Hanke es el director de Google maps y Google earth, y se limitó a repasar la evolución de la geolocalización en la web, diciendo entre otras cosas:
- Aplicaciones como google maps hacen que el mundo parezca cada vez más pequeño.
- Desde el año 2004 hasta hoy el número de aplicaciones basadas en geolocalización se ha multiplicado por 10 y creciendo.
- Están desarrollando Google maps para dispositivos móviles(espero que no sea simplemente una evolución de los mapas estáticos existentes a dia de hoy).
- La importancia del kml y geo-rss como estándares.
- Lanzamiento de su nueva API geo search!
Junto con John Hanke estaba el presidente de los servicios de GIS de ESRI, el cual resalto la necesidad de hacer las cosas abiertas, dando la posibilidad de que los usuarios puedan usar todos los datos y el procesamiento que ellos ofrecen( cambio radical en la estrategia empresarial de ESRI), para ello y con la ayuda de google están llevando a cabo la exportación de sus datos a kml, georss, obteniendo unos resultados que dejaban al auditorio con la boca abierta.
Entre sus demos tenían: Visualización del tráfico, comportamiento del fuego en caso de incendio, mapa metereológico, mapa de terremotos, y todo esto en tiempo real y sobre google maps/earth, realmente una pasada.
Comentar que ESRI tiene pensado sacar una api pública para hacer uso de su potencial GIS, ésta api soportará JS e incluso Flex.
Sin ninguna duda esta ponencia fue de las mas fuertes y esperadas del dia.
- Modeling Crowd Behavior
Paul Torrens de la universidad de Arizona ha modelado el comportamiento de las masas de forma que podamos predecir las consecuencias de una avalancha de personas. Me resultó curioso cuanto menos y por eso dejo aquí el enlace donde se explica todo más detenidamente.
- Katamari Damacy Greg Sadetsky (Poly9 Group Inc.)
Presentaron FreeEarth que no es más que un Globo terráqueo pero a direferencia de Google Earth, FreeEarth se ejecuta directamente sobre el navegador web.
Presentarón también sus 3 últimos productos algunos con soporte kml: WildSanctuary
, GeoAlert y MapMkr.
- -Convergence of Architectural and Engineering Design and Location Technology: Implications for eGovernment, autodesk
Esta gente de autodesk está apostando fuerte por la creación de un software que permita la creación infraestructuras para luego simular las consecuencias y eficacia de éstas, cuando hablo de consecuencias me refiero a impacto sonoro, medioambiental de por ejemplo un estadio de futbol en un barrio, y cuando hablo de eficacia me refiero a si la solución generada es la óptima.
Usando su software garantizan que los paises podrán ahorrarse grandes cantidades de dinero pues crearán infraestructuras óptimas, ya que han sido simuladas antes.
Cuando estaba viendo una de sus demostraciones de analizar como sería mejor una autopista si bajo tierra o elevada, me daba la impresión de estar ante una pelicula de ciencia ficción. Amazing!
- DIY Drones: An Open Source Hardware and Software Approach to Making “Minimum UAVs
Chris Anderson es toda una eminencia en EEUU, es editor de la revista Wired, y en su presentación demostraba que se podria crear un vehiculo aéreo no tripulado(UAV) usando software Open-source y hardware por un coste menor a 1000$ ^_^
Podeis encontrar todo lo necesario aquí.
Conclusiones del dia:
-
Destacaría la potencia mostrada tras la colaboración ESRI + Google, lo cual puede dar un nuevo enfoque a la interpretación de datos en la geolocalización web.
-
- Apertura de ESRI, liberando API's públicas.
- Apuestá fuerte por parte de Autodesk para dominar el mundo de la simulación de infraestructuras.
- Integración cada vez más clara de dispositivos GPS con el PC, intentando la creación de comunidades alrededor de éstos.
Espero que no haya sido muy pesado el artículo, aunque es complicado que no lo sea ;-)
servido por n3uro5i5
sin comentarios
compártelo
favorito
13 Mayo 2008
07:30 - Desayuno
Desayuno con Diego Fernandez Domiguez y Alberto Andrés de ipoki, asi como Jesus Zamorano. nav2us, Activasat , donde estuvimos debatiendo temas muy interesantes relacionados con aplicaciones basadas en geolocalización, asi como el estado del mercado para éstas.
8:30 - Primer tutorial: Sharing Your Content on the Google Maps API
La primera parte de éste se basaba en un review de lo que ha sido la api de google maps desde que empezó hasta ahora, abarcando las últimas novedades como son la integración de StreetView en la API.
Luego una demo a manos de google, y por último la presentación de varios proyectos representando la implementaciones "exitosas" con la API .
12:00 - Lunch
Comida a una hora insoportable para una persona que lleva 23 años en España :p
13:30 - Segundo tutorial: The Open Geo-Stack: OpenLayers, GeoServer, PostGIS
Open Geo Stack es una solución libre para la creación de servidores GIS, donde poder almacenar, procesar y devolver al cliente información posicionada sobre distintos layers.
El tutorial pintaba muy bien, pero desde el principio tuvieron problemas pues en las memorias flash que repartian con los archivos de instalación, datos, documentación, etc, venian corruptos.
De forma que este antercado provocó que mucha gente no pudieran continuar el ritmo del tutorial y a su vez perdiendose velocidad en la exposición.
De todas formas aquí y aquí teneis todo lo necesario para llevarlo a cabo.
19:00 - Launch pad
No era más que un carrusel de proyectos desfilando 5 minutos cada uno y mostrando lo mejor o más novedoso que tenian. Nuestros amigos de ipoki presentaron su producto, lo cierto es que no se como les habrá ido pues no he estado presente, pero les deseo lo mejor.
Otras cosas interesantes:
- openstreetmap
es un proyecto ambicioso donde se intenta crear una comunidad capaz de generar contenido cartográfico de gran calidad, recomiendo que le echeis un vistazo pinta bien.
- Mapstraction
Libreria Js con la cual podremos crear client-sides que funcionen sobre cualquier proveedor de mapas, google maps, yahoo maps, microsoft earth, ...
Por ultimo comentar que conocimos a otro chico español, que vive desde hace años en Los Angeles, Ismaél Chivite, el cual nos dió una "clase magistral" de servidores GIS gracias a su gran experiencia en este campo, y al cual dar las gracias.
Hasta aqui un pequeño resumen de lo ocurrido, el que quiera saber más que me invite a una caña y yo lo cuento encantado :p.
Mañana más.
servido por n3uro5i5
1 comentario
compártelo
favorito
12 Mayo 2008
Mañana lunes 12 de Mayo comienza el evento Where 2.0 en San Francisco, donde asistiré junto con otros de mis compañeros de Flowers In Space.
No adelanto más, espero ir escribiendo lo que vaya pasando por mi twitter
See you!!
servido por n3uro5i5
4 comentarios
compártelo
favorito
7 Mayo 2008
Puede que alguna vez se nos haya pasado por la cabeza acceder a un servidor mysql alojado en una maquina remota, para llevarlo a cabo debemos configurar varios aspectos de ésta.
Comentar que este ejemplo está realizado en una maquina con ubuntu linux, por tanto puede que los archivos de configuración se encuentren en dintinto lugar en caso de usar otro sistema.
5 pasos a seguir
- Conectarse a la maquina host del servidor mysql
ssh quentin@remoteHost.com
- Abrir puerto 3306
sudo iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
- Configurar my.conf
En el caso de ubuntu el archivo de configuración de mysql, está en /etc/mysql/my.cnf
y comentar la linea "bind-address = 127.0.0.1"
- Acceder a la consola mysql y en ésta dar privilegios al usuario
GRANT ALL PRIVILEGES ON *.* TO 'USER'@'HOST' IDENTIFIED BY 'PASSW' WITH GRANT OPTION;
Cambiar USER, HOST y PASSWD por credenciales propios.
Refrescar los privilegios.
FLUSH PRIVILEGES;
- Reiniciar mysqld
sudo /etc/init.d/mysql restart
A partir de ahora podremos conectarnos al host mysql remoto usando tanto un cliente gráfico(cocoa mysql, mysql query browser, ..) como la propia consola mysql.
servido por n3uro5i5
2 comentarios
compártelo
favorito
10 Abril 2008
En placechannel.com, el 90% de las las peticiones estan basadas en la obtención de los videos en una zona determinada del mapa, y para ello se hace una petición ajax solicitando dichos videos, y obteniendo éstos en formato Json.
Como comprobareis por mis entradas anteriores, he estado obsesionado con el rendimiento del parseo AR => JSON pues como he comentado, gran parte del peso de la aplicación cae sobre éste.
Entonces decidí probar suerte con Merb, pero siempre con la idea de crear un módulo de apoyo nunca sustituir ROR.
¿Por qué merb?
- Los ciclos de bloqueo del dispatch son mas cortos, por tanto puedo servir mayor número de peticiones teniendo bloqueados los servidores de aplicaciones(mongrel, thin, ..) el menor tiempo posible y permitiendo mayor concurrencia de peticiones.
- Usa poco código(No code is faster than no code), y para este modulo tan simple parece una buena opción.
¿Por qué Datamapper?
- Es thread-safe, ActiveRecord no.
- Tiene como prioridad la eficiencia.
- Se parece a ActiveRecord ;-)
Desde la versión 0.9.0 de Merb existen tres generadores a la hora de crear aplicaciones:
- merb-gen app foo_app
- merb-gen app foo_app –flat
- merb-gen app foo –very-flat
Cada una de las opciones nos va dando un esqueleto de aplicación cada vez con menos ficheros, en nuestro caso usé la tercera opción, obteniendo ¡una aplicación en un solo fichero!.
Nuestra aplicación no tendrá mas que lo siguiente:
- Un modelo Video con titulo, código, lat y lng como atributos.
-
- Un controlador llamado Main con una única accion y que sirva json.
Quedando de la forma ...

Ya tenemos el modulo listo y solo nos queda arrancarlo:
Ejemplos:
- Un solo mongrel en el puerto 4000
merb -I foo.rb -p 4000 -d
- Cluster de dos servidores thin:
merb -I foo.rb -p 4000 -c 2 -a thin -d
- ...
Simple ¿no?, nada de plugins externos(mongrel_rails) para balancear en clusters
Resultados.
Mis pruebas hechas con ApacheBench y Httperf devuelven que el nuevo módulo basado en merb + datamapper es aproximadamente el doble de rápido,en comparación con mi antigua acción en rails que usaba to_json.
Lo cierto es que los resultados me han dejado satisfecho y mas teniendo en cuenta que éstos son mejores a favor de merb cuanto mas crece la concurrencia.
Como veréis no he explicado como instalar merb como configurar Datamapper, ..., no era mi intención, simplemente quería mostrar mi primera experiencia con merb y quién sabe si a alguien le sirve de ejemplo.
Tip: Instala la gema json(gem install json) basada en C, para mejorar el rendimiento del parseo.
servido por n3uro5i5
sin comentarios
compártelo
favorito
30 Marzo 2008
En mi último proyecto, el número de archivos javascript que tenia que importar eran considerables por lo que los tiempos de carga se veian afectados, ya que los navegadores tienen una limitación en cuanto a conexiones y descargas simultáneas. Por tanto, la solución para mejorar estos tiempos, no es más que agrupar los archivos importados en el menor número posible de éstos y para ello tenemos varias opciones:
- javascript_include_tag ..., :cache => true
Haciendo uso de esta funcionalidad que trae rails, agrupamos todos los archivos indicados como argumentos en el helper en uno solo "all.js".
- Uso de Bundle-fu
La funcionalidad es la misma que la anterior solución mas unos "extras":
- Agrupa tambien archivos css!!
- Minimiza el tamaño del javascript usando JSMin u opcionalmente PackR.
- Posibilidad de ofuscación del código(No soy muy partidario de ello, pero bueno ahí está)
Por tanto haciendo algo del tipo:
<% bundle do %>
<%= javascript_include_tag "prototype", "ClusterMarker", "window", "map", "live_validation", "application", "effects" %>
<%= stylesheet_link_tag "all", "flash", "themes/alphacube" ,"themes/default" %>
<% end %>
Pasamos de esto:
<script src="/javascripts/prototype.js" type="text/javascript"></script>
<script src="/javascripts/ClusterMarker.js" type="text/javascript"></script>
<script src="/javascripts/window.js" type="text/javascript"></script>
<script src="/javascripts/map.js" type="text/javascript"></script>
<script src="/javascripts/live_validation.js" type="text/javascript"></script>
<script src="/javascripts/application.js" type="text/javascript"></script>
<script src="/javascripts/effects.js" type="text/javascript"></script>
<link href="/stylesheets/all.css" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/flash.css" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/themes/alphacube.css" media="screen" rel="stylesheet" type="text/css" />
<link href="/stylesheets/themes/default.css" media="screen" rel="stylesheet" type="text/css" />
a esto:
<link href="/stylesheets/cache/bundle.css" media="screen" rel="stylesheet" type="text/css" />
<script src="/javascripts/cache/bundle.js" type="text/javascript"></script>
En cuando a la que elijo yo, me quedo con la segunda opción simplemente por la posibilidad de agrupar también las hojas de estilo.
servido por n3uro5i5
sin comentarios
compártelo
favorito