Buscar en el blog de Andrés Cifuentes

martes, 13 de septiembre de 2011

Entre las lineas del Directorio Deportivo

Ventajas de la Plataforma como Servicio: Google App Engine

Adoptar un modelo de Cloud Computing no es una actividad que se pueda realizar de un día para otro, como en la mayoría de los cambios de paradigma, es un proceso que toma tiempo y en el cual se aprende de las experiencias y sobre todo de los errores.

Cuando Augusto Porto nos contactó para trabajar en su portal de Condolencias nosotros acabábamos de llegar el evento de Google IO, donde habíamos visto la plataforma como servicio (PaaS) de Google, por lo que la recomendación fue desarrollarlo sobre esta plataforma para aprovechar sus beneficios.

Nos tomo más tiempo de lo planeado salir con la página por que la curva de aprendizaje fue larga, el cambio de lenguaje y modelo tomó tiempo entenderlo y adaptarlo, particularmente el cambio de la base de datos relacional a Bigtable, el datastore de Google App Engine, sin embargo sabíamos que era un proceso y un reto técnico.

Después de varios meses de desarrollo e iteraciones sobre el sitio de condolencias, surgió una oportunidad de negocio para Augusto con el Directorio Funerario, en donde tuvimos la oportunidad de mejorar el proceso de desarrollo y resolver algunos de los problemas de arquitectura que tuvimos en condolencias.com, este sitio finalmente lo lanzamos hace más de 2 años y de nuevo fue parte de un proceso de aprendizaje. Para el directorio en particular, el reto estuvo en la velocidad de respuesta en donde tuvimos que realizar varias optimizaciones en el navegador y en la plataforma para tener tiempos de respuesta efectivos.

Finalmente este año, 2011, hemos desarrollado y estamos en la fase de lanzamiento del Directorio Deportivo, en donde hemos aplicado la experiencia no solo de los dos proyectos anteriores, también de otros proyectos que hemos desarrollado sobre Google App Engine como los puntos de Vía Baloto y nuestros productos como SupportPanel.

Ventajas Técnicas del Directorio Deportivo

Escalabilidad, que según la Wikipedia es "La propiedad deseable de un sistema, una red o un proceso, que indica su habilidad para extender el margen de operaciones sin perder calidad, o bien manejar el crecimiento continuo de trabajo de manera fluida, o bien para estar preparado para hacerse más grande sin perder calidad en los servicios ofrecidos.". Que para el caso del directorio deportivo implica que sin importar la cantidad de usuarios que realizan consultas sobre el directorio o la cantidad de información que este contenga la experiencia de los usuarios debería ser la misma.

Elasticidad, se refiere a un concepto clave del modelo de plataforma como servicio y esta relacionado con la forma como se cobra su uso pues implica que una aplicación puede expandirse y contraerse según la demanda, en todos sus niveles (Capa de presentación, servicios, bases de datos, seguridad ... ). Esto también implica que los componentes de aplicación pueden crecer de forma independiente el uno del otro. Así que si necesita más espacio de almacenamiento para los datos, debe ser capaz de crecer sin afectar a ese nivel, la reconfiguración o el cambio de los demás niveles. Básicamente, se comporta como una esponja, cuando se agrega agua a una esponja, crece en tamaño, que en el mundo de aplicaciones web significa que entre mas clientes añade, más crece.

Servicio de nivel mundial,  las infraestructuras de "Cloud Computing" como Google App Engine proporcionan mayor capacidad de adaptación, recuperación de desastres completa y reducción al mínimo de los tiempos de inactividad. Comparada con el "hosting" promedio que usábamos para alojar este tipo de desarrollos es imposible comparar lo que se recibe frente a lo que cuesta.
  
Ventajas Funcionales del Directorio Deportivo

Velocidad, el problema de la velocidad es que la medida bajo la que se mide es relativa a la experiencia del usuario, y es claro que cada vez estamos frente a usuarios mas exigentes, yo diría casi que mal acostumbrados, ahora todos los usuarios van a comparar las aplicaciones con Facebook, con Google, con Amazon, y obviamente a ninguno le interesa saber que la infraestructura y la cantidad de ingenieros que hay detrás de cada una de ellas supera por cientos los disponibles en un mercado como el latinoamericano. De ahí que al utilizar una plataforma de clase mundial con un desarrollo cuidadoso en desempeño, un diseño controlado mas no optimizado, se tengan tiempos y velocidades de respuesta muy comparables con desarrollos de productos o servicios de primer nivel.

Flexibilidad, En esta nueva versión del directorio nos hemos enfocado en aumentar la flexibilidad de la herramienta permitiendo a los anunciantes tener mas información, en diferentes estilos y formatos, por ejemplo pueden incluir vídeos, presentaciones o galerías fotográficas. 

Facilidad, simplificando la interfaz de búsqueda hemos mejorado la capacidad para que las personas encuentren la información que necesitan, aprovechando el motor de búsqueda textual recientemente liberado por Google sobre el App Engine. Adicionalmente hemos mejorado los filtros por ubicaciones para adicionarle un contexto a la información y ayudarle a las personas a encontrar lo que realmente están buscando.

Esperamos continuar aprovechando todas las herramientas tecnológicas del primer mundo para aplicarlas en nuestro ámbito de influencia y así continuar cerrando la brecha entre el mundo en el que estamos y el que soñamos estar. 

Andrés Cifuentes
Septiembre 12, 2011

lunes, 6 de septiembre de 2010

Conectandose remotamente a través de VNC

Desde Mac OS X a un servidor Windows

En mi mac anterior tenia instalado un cliente de VNC para conectarme a el servidor Windows de la oficina, ahora en mi nuevo mac tengo la opción de hacerlo con las utilidades nativas de OS X Snow Leopard para conectarse con servidores remotos. Es fácil e intuitivo, sin embargo el detalle del Ctrl+Alt+Del vale la pena documentarlo.

Para conectarse al servidor de VNC, simplemente se debe abrir Finder y en las opciones del menú seleccionar la opción Go > Connect to Server ...

Menú de Finder
En el dialogo que le aparece a continuación debe especificar el protocolo y el nombre o la dirección de la máquina.

Por ejemplo: vnc://miro.eforcers.com o vnc://192.168.123.20

Pantalla de Conexión a servidor de VNC
Al conectar solicita la contraseña que esta definida en el servidor de vnc cuando se levanto el servicio.

Dialogo de Autorización de VNC
Y aquí viene la parte complicada, normalmente el servidor al que nos conectamos es un servidor windows, que por seguridad solicita iniciar la autenticación con el conjunto Ctrl+Alt+Del, pero en los mac, la tecla de [Del] no es delete, es [Backspace], así que al presionar las teclas [control]+[option]+[delete] no pasa absolutamente nada en el servidor windows.

Pantalla de Inicio en Windows

La solución es presionar el conjunto de 5 teclas simultaneamente:

  • [fn] + [control] + [option] + [command] + [delete]

Y listo.

Andrés Cifuentes
Septiembre 6, 2010

jueves, 22 de octubre de 2009

Ubuntu 9.04 - Jaunty Jackalope

Remplazando mi Fedora 10

Despues de un año de configuraciones, ajustes e instalaciones en mi laptop con Fedora 10, la migración a Fedora 11 me falló y tuve que tomar la decisión: Si reinstalaba o me movia de distribucion de Linux. Siempre me gustaron las distribuciones de Red Hat desde la version 6.0 pasando por varias de Fedora (Core) y CentOS, no fui muy amigo de Debian y nunca me ensucie lo suficiente para Slackware, pero no se puede tapar el sol con las manos. Vamos a movernos a Ubuntu!. Ver la tendencia

Despues de tomar la decisión y consultarlo una vez más con Paola, inserte el CD, si CD ... no DVD, no el primer CD, el único CD, el CD de Ubuntu 9.04 para instalarlo en mi portatil HP dv 2500 (Hewlett-Packard), el mismo con el que tuve que instalar manualmente la tarjeta wireless y configurar la de video hace un año.

Resultado

La verdad me sorprendio la instalación, la velocidad, la simplicidad, yo se que estoy instalando un sistema probado, de hace 6 meses, en un laptop de hace un año, pero me sorprendio, fue breve. Ni parecido a la ultima instalación del Windows vista en el portatil de mi hermana, una noche completa buscando drivers y bajando "actualizaciones". Comparable con la instalación de Fedora 11, solo que todo me quedo funcionando, lo único que tuve que hacer fue aceptar que usara el driver propietario de nvidia.

Fue tan rapido, que me quedo tiempo de escribir esta entrada y de paso revisar el post que puse hace un año, en la que me comprometia a tener una lista de aplicaciones y utilidades. Quizas esta vez lo haga, Sin embargo no estoy seguro que valga la pena ... suena muy facil para hacerlo.

Andrés Cifuentes
Octubre 22, 2009

martes, 4 de noviembre de 2008

Como aumentar el tamaño de los archivos a subir en un servidor (Linux + Apache + Php)

Aumentar los parámetros LimitRequestBody, upload max filesize, post max size

No es la primera vez que nos piden aumentar la capacidad para subir archivos en un servidor, de hecho ahora tengo que configurar en dos servidores de clientes diferentes los parametros, sinembargo cada vez que tengo que hacer esta tarea debo empezar por buscar en donde se deben hacer las modificaciones.

Los parámetros que se deben ajustar son :

Apache

En el archivo de configuración del virtual host o si prefiere a nivel de servidor en el httpd.conf que normalmente se encuentra en /etc/httpd/conf debe adicionar la siguiente directiva.


<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 67108864
</Files>



Php

En el archivo de configuración php.ini, que en linux redhat, fedora y centos se encuentra en el directorio estandar /etc, se deben modificar las lineas correspondientes de acuerdo al tamaño que se quiera, en este caso 64M.


; Maximum size of POST data that PHP will accept
post_max_size = 64M

; Maximum allowed size for uploaded files.
upload_max_filesize = 64M




Andrés Cifuentes
Noviembre 4, 2008

jueves, 7 de agosto de 2008

Herramienta de extraccion de contenidos


Web content extractor

Algunas veces nos vemos en la necesidad de extraer el contenido de alguna página web y un simple copiar-pegar de una tabla HTML a OpenOffice.org Calc - o en su defecto a MS Excel - es suficiente, sin embargo en otros casos necesitamos hacer cosas más complejas o que necesariamente sean automáticas, por la distribución en la página, el volumen de información u otra causa del mismo estilo.

Recientemente me vi en esta situación pues una importación masiva de correos a Google Apps genero mas de 7000 errores, evento poco común en las importaciones masivas usando IMAP, cuando el cliente me pregunto "bueno ahora como reprocesamos las cuentas" la respuesta mia fue "sencillo, extraigamos las cuentas que fallaron y las volvemos a procesar" ... nótese el sencillo ... que resulto siendo una tarea de dos días.

El caso es que en el panel de Google Apps en las migraciones de correo usando IMAP los resultados si salen, pero se obtienen paginados de 20 en 20, el proceso de capturarlos hubiese sido una tarea dispendiosa, tediosa y propensa a errores si hubiéramos puesto a alguien a copiar-pegar clic en siguiente unas 389 veces.

Así que una búsqueda en Google - como para variar - me ayudo con la solución, buscando por web data extractor, aparecieron varias alternativas, de las cuales probé los trials de Web Content Extractor, Web Scrapper y IMacros de Iopus.

Aparentemente los tres tienen la funcionalidad para realizar la tarea, pero la verdad Web Scrapper tiene una interfaz confusa y sin los wizards no es claro como configurar las cosas, mientras que IMacros es mucho más potente y creo que la funcionalidad de extraer la información de las páginas es una consecuencia de su diseño y no es realmente el objetivo de la herramienta.

En cambio, Web Content Extractor, pareciera diseñada para exactamente el problema que yo tenía, permite primero autenticarse en el sistema, señalar el contenido que se quiere copiar, escoger las columnas que nos interesan y luego generar las URLs a partir de una interfaz extremadamente sencilla.



El programa no simula el navegador, lo que hace es precisamente usar el navegador, tal cual. En la pantalla de la vista preliminar se ve el sitio cargando pagina por pagina, extrayendo el contenido y continuando con la siguiente.

Al finalizar me permitió exportarlo a un archivo csv, aunque tiene otras opciones como ponerlos en una base de datos Access o Mysql, un script sql, un archivo xml o html.

Eso era exactamente lo que yo necesitaba y eso fue lo que hizo la herramienta. Aunque no es libre, ni gratis, - Que es como nos gusta - este es un ejemplo de una herramienta que hace una sola cosa y la hace bien.

Andrés Cifuentes
Agosto 7, 2008

sábado, 19 de julio de 2008

El Cinzano, Valparaiso, Chile


El tibio aire impulsado por el metro nos empuja fuera de la estación Salvador, afuera, nos espera Marcela estacionada pacientemente en su auto. Planea llevarnos a un bar cerca del centro, en la parte posterior del cerro de Santa Lucia. De pronto, sin ninguna razón aparente, nos dice que podríamos ir a un bar excelente que conoce en Valparaíso... no tengo claro que horas son, pueden ser las 9 o las 10, es Viernes.

Como para el que no sabe para donde va cualquier camino le sirve, asistimos titubeantes, sin tener claras las distancias, los tiempos y las implicaciones del repentino viaje.

La carretera se tuerce, mientras hago el esfuerzo con mis ojos por vislumbrar las figuras en la neblina pesada; el fondo, escogido al azar, una fusión de tango con elementos electrónicos de Gotan project, extraño augurio que predice lo que nos depara la noche.

Una hora o quizás una y media más tarde, estamos en el centro de Valparaíso en la Plaza Aníbal Pinto 1182. En frente, un café, bar o restaurante -no es claro para mi- sobre la fachada de la edificación vieja y de pintura corroída por la sal marina, un letrero parco que reza "CINZANO". Me pregunto si el viaje en realidad era para entrar a un sitio como este, la entrada es como la de un café de jubilados -estilo los del centro en Bogotá- donde no se le ocurre entrar a nadie en un sus cabales a menos que sea cliente regular.

Recién pasamos la puerta, las gente corea al unísono: "Ese, A, Ene, San, San, Santiago, Santiago Wanderers, Santiago Wanderers Campeón", entonces pienso que es un bar estilo "Pub" irlandés o londinense con la gente parada en la barra tomando cerveza y discutiendo las jugadas de los partidos de la ultima fecha... pronto descubro que están allí por otra cosa, quizás mas apasionante que el fútbol. Tangos, Boleros, Cuecas y uno que otro Vals Peruano.

El recinto está lleno, mayormente de locales; en la barra algunos "gallos" como Yo, ya firmemente establecidos en el tercer piso, en las mesas el promedio de edad es "ligeramente" mayor. Aunque hay más jóvenes de corazón y espíritu, que en muchas discotecas locales, no podemos ocultar el peso que deja en el cuerpo el paso de la vida.

Nos ubicamos en la única mesa disponible junto a la banda, la banda, dos señores mayores, rondando los 70, serenos, tranquilos, confiados, cada uno con su instrumento, un acordeón y una organeta, Don Luis Barrera y Don Humberto "Pollito" González, ambos esperando inmutables la señal para iniciar.

En el escenario, El Maestro, Don Manuel Fuentealba, No desentona, ni de la banda con sus casi 80 - que confiesa - ni del sitio por su particular vestido de color, camisa de mancornas, bien arreglado, abotonado el traje y la corbata tirante, elegante -quizás de moda en otra época.

En la pared, cuadros, afiches y placas, ninguno reciente, me llaman la atención varios: dos estilo comercial de coca-cola en los 60, con voluptuosas chilenas bailando, uno de Miro que extrañamente no puedo recordar con claridad y una placa conmemorativa, de la incorporación del casco histórico de la ciudad, al listado de lugares considerados patrimonio de la humanidad, con una mención particular a la "Memoria Viva" del puerto, El Cinzano.

La carta me aclara la fecha de fundación, 1896, aunque estaba tachada con "liquid paper" y sobre escrito el 1896, seguramente por algún error informático del cambio del siglo. La lista de entradas, platos y vinos tiene de tapiz una fotografía de una inundación a principios del Siglo XX con gente a pie, a caballo y otros en bote, al fondo el letrero del Cinzano.


Por recomendación de Marcela pedimos dos porciones de machas a la parmesana y una chorrilana para compartir, los dos, platos típicos de la cocina chilena y particularmente de este sector. Para acompañar un vino, Carmenere, Misiones de Rengo Reserva 2007.

La primera sorpresa del lugar nos la da la cocina chilena. Las machas estaban exquisitas, tengo que admitirlo, porque no soy particularmente aficionado a al comida de mar y mucho menos a las ostras. La chorillana -cebolla, huevo y trozos de carne sobre una cama abundante de papas fritas- no desentona, y prepara nuestros hígados para la ingestión de alcohol que nos espera.

El bullicio de la gente se corta con la voz gastada de "El Maestro" y el acompañamiento de la banda. A la vez que pasan el tiempo, el vino y las penas del corazón, al triste son de los tangos, nos sentimos mas parte de este grupo de desconocidos, que nos acoge como hijos adoptivos, y sin duda nos convierte en "embajadores" de este pintoresco bar bohemio, El Cinzano.

Andrés Cifuentes
Julio 19, 2008

viernes, 4 de julio de 2008

Configuracion de la tarjeta wireless Broadcom 4310 sobre Linux Fedora 9


Primer paso identificar la tarjeta wireless

Identificar la tarjeta wireless es el primer paso en el proceso y fue el dato que realmente me mostró el camino a seguir, por que les advierto que escribo este blog por si algún alma en pena está buscando la solución al mismo problema, de paso para los registros escritos y los buscadores el portátil es un HP Pavillion dv2000 (HP = Hewlett Packard), pero la referencia es dv2810us, la tarjeta es una Broadcom 4310.


El comando en shell es un simple lspci para los elementos pci, para los usb lsusb, parte del problema es que esta referencia particular tiene los dos, pues en una sola tarjeta integraron el bluetooth y el wlan.

[root@warhol ~]# lspci

retorna :


04:00.0 Network controller: Broadcom Corporation BCM4310 USB Controller (rev 01)

En este caso si se tiene otra tarjeta Broadcom, le recomiendo que busque en Google, yo encontré varios post para las referencias Broadcom 4311, 4315, 4330 ... pero para esta en particular no hay nada, bueno no había nada cuando yo busque (Julio 1, 2008).

Alternativas aparentes

Aparentemente hay dos alternativas con las tarjetas Broadcom y el problema se reduce a que Broadcom no libera los fuentes de los drivers, por tanto a la comunidad le toca aplicarle ingeniería reversa a los mismos para ofrecerlos sobre Linux.

La primera alternativa es usar los drivers nativos de Linux, luego de actualizarle el firmware a la tarjeta, se descomprimen los fuentes, se ponen en /lib/firmware y listo. Sin embargo esta alternativa no funciona pues particularmente esta tarjeta no está soportada, mas información se puede encontrar en Linux Wireless. Si uno es un usuario promedio (Sin ánimo de ofender) puede incluso probar con aplicaciones que hacen este proceso con una cómoda interfaz gráfica (autonine, easylife).

La segunda alternativa es usar ndiswrapper, que básicamente encapsula el driver nativo de windows en Linux. Tiene sus desventajas evidentemente, pero en este caso vamos a ser prácticos porque yo duré dos dias intentando con los drivers nativos, tanto b43, b43XX como b43 legacy y ninguno me dio resultado.

Instalando y configurando ndiswrapper


Paradójicamente esto se hace en un par de comandos y se edita solamente un archivo de configuración, pero antes de que se emocionen, resulta que conseguir el HP driver (HP <> Hewlett Packard) archivo .inf, es una tarea similar a conseguir una aguja en un pajar, porque de nuevo Broadcom no libera los drivers al público, solamente se consiguen con los resellers que por "facilidad" para los usuarios los ponen en instaladores .exe o en .cab. Afortunadamente siempre existe un alma caritativa que pone el vínculo a los drivers en algún blog o foro y hay otros que los "hostean" aunque no sea 100% legal hacerlo.

Comandos : (Yo siempre me conecto como root por que odio no tener permisos suficientes en mi propia máquina, si no es de esta misma política adicione sudo 'comando' a los comandos siguientes)

1. Instalar ndiswrapper

yum -y install kmod-ndiswrapper

2. Crear un directorio para almacenar los drivers

mkdir /etc/ndiswrapper-drivers

cd /etc/ndiswrapper-drivers

3. Obtener los drivers (Solo por las dudas estos son los drivers específicos para esta tarjeta)

wget http://myspamb8.googlepages.com/R174291-pruned.zip

unzip R174291-pruned.zip
rm R174291-pruned.zip

4. Instalar los drivers

ndiswrapper -i bcmwl5.inf

ndiswrapper -l

5. Cargar el módulo en el kernel

modprobe ndiswrapper

ndiswrapper -ma

6. Configuración manual de modprobe

vi /etc/modprobe.conf


Adicionamos la línea

alias wlan0 ndiswrapper


7.Probamos

ifconfig


Debemos ver la interface de red wlan0


iwlist wlan0 scan

Debemos ver la lista de los ESSID de las redes inalámbricas disponibles


Configurando la conexión, red, seguridad y demás opciones

Definitivamente ya no estamos para hacerlo por línea de comandos, Fedora 9 con Gnome incluyen un applet que se adiciona en la barra de menú por defecto para realizar la configuración (NetworkManager Applet) este está activado por defecto para las redes wireless y desactivado para las wired. En mi caso como no tengo ningún servicio de red en mi portátil, usando la utilidad de system-config-network activé el servicio para manejar ambas conexiones con el applet.

Andrés Cifuentes
Julio 4, 2008