Recursos de Yahoo! para desarrolladores web

Agosto 19th, 2006

Google es la compañia de moda en Internet en estos últimos tiempos, cualquier nube de tags tiene el tag Google bien gordito, sin embargo, existen compañias con más solera que, quizá sin la misma repercusión en la blogosfera o en los medios de comunicación tradicionales, van poco a poco poniendose las pilas.

Yahoo, por ejemplo, no cesa de liberar nuevas APIs y ha creado un centro para desarrolladores, con muchísima información interesante.

Hoy me gustaría destacar dos sitios de este centro:

El primer enlace, no es un sitio donde encontremos infinidad de código fuente, más bien lo contrario. La Design Pattern Library recoge una serie de patrones o soluciones a problemas típicos relacionados con el diseño de la interfaz de usuario, que nos permitirán resolver, desde el punto de vista del Arquitecto de Información, o del especialista en usabilidad del sitio. Recomiendo encarecidamente su visita.

El segundo enlace, la UI Library es una buena navaja suiza para el desarrollador, se trata de un conjunto de componentes escritos Javascript, para facilitar el manejo del contenido de una página mediante DOM, o facilitar el uso de AJAX. Por citar algunos, lo que personalmente he visto más interesantes los siguientes componentes:

  • Calendar, un control de calendario en Javascript. Muy comfigurable, podéis ver los ejemplos en acción
  • Autocomplete, un control de edición con autocompletar, admite arrays Javascript en memoria, data sources AJAX, etc..

En resumen, dos sitios muy interesantes, y que permitirán enriquecer la experiencia de usuario de nuestras aplicaciones web. Por cierto, toda la librería de componentes está liberada bajo licencia BSD.

Youtube en obras

Agosto 15th, 2006

Pues eso, iba a pasar un rato viendo videos “frikis” por YouTube , cuando me encuentro con esta página que nos avisa que están en obras:

youtube-big

Está bien el diagrama de la arquitectura lógica del site, a ver si aprenden las consultoras en vez de darle tanto al PowerPoint ;)

Copias de seguridad, estilo Apple

Agosto 11th, 2006

Estos últimos días el mundo maquero anda revuelto sobre las novedades presentadas en la WWDC 2006. No entraré en detalles sobre las cosillas presentadas, para eso mejor que visitéis estas referencias:

  • Keynote de Steve Jobs (mola el carisma de este tio)
  • Resumen en mini-d
  • Super seguimiento casi al minuto de TUAW

Personalmente, a parte de que se me cae la baba viendo los nuevos Mac Pro y los Xserve, una de las novedades que más me ha impactado ha sido Time Machine del esperado Leopard.

Time Machine es la “visión” Apple sobre algo tan prosaico como son las copias de seguridad en sistemas personales, no quiero caer ahora en los tópicos sobre si Apple es mejor que Windows, etc. Pero la verdad, no hay más que ver en funcionamiento Time Machine, para entender porque Apple es Apple y como cuida la facilidad de uso en cualquier tipo de tarea.

Compárenlo con cualquier otra alternativa de copias de seguridad incluidas con el sistema operativo, léase Copia de Seguridad de Windows XP ;)

Y si no, preguntarle a mi amiguete eguerrero.com cuando tiene que restaurar un archivo borrado con el Veritas, seguro que lo cambiaría por Time Machine, si pudiera, claro.

Tiempos de cambio

Agosto 11th, 2006

Ya empezaba a pensar que este blog se me moría de pena, llevo desde abril, más de tres meses, sin postear nada. Y no ha sido por falta de ganas, más bien por falta de tranquilidad, resulta que he cambiado de curro:

He dejado un “cómodo” puesto en una consultora de IT, por una nueva vida de desarrollador web freelance. La verdad es que a mis 39 años, no está la cosa para aventuras, pero después de 8 años en la empresa necesitaba un cambio y de momento no tengo razones para arrepentirme.

Además, para darle más marcha al asunto, gracias a mi cliente principal me he sumergido de golpe y sin flotador en el mundillo de desarrollo en PHP, entorno en el que no tenía la más mínima experiencia.

Quizá sea una buena oportunidad para ver este entorno con otros ojos, personalmente no me gustaba, y para poder escribir las impresiones de “PHP visto por un desarrollador Java”.

En fin, espero que el próximo post no se demore tanto.

lighttpd, una buena alternativa a Apache

Abril 26th, 2006

Aunque es evidente que Apache ocupa una posición predominante como servidor web, contínuamente surgen iniciativas que intentan mejorar defectos o resolver cuestiones más específicas que un servidor de propósito general como Apache no llega a cubrir.

Una de estas alternativas, muy popular en la escena Ruby on Rails es lighttpd.

Lighttpd, de “Light footprint + httpd” o “Lighty” como usted amable lector prefiera, se presenta como un servidor con pocas exigencias a nivel de memoria y procesador, pero con un rendimiento excelente, si a eso además le sumamos un excelente soporte de FastCGI, que nos permite hospedar aplicaciones basadas en PHP y/o Rails, nos encontramos ante una alternativa seria y que vale la pena evaluar si disponemos de la ocasión.

Más información:

Apple publica tutorial sobre RubyOnRails

Febrero 28th, 2006

Una de las razones que tenía para comprarme un Mac, era, y sigue siendo, usarlo como entorno de desarrollo para aprender RubyOnRails, así que este tutorial de la web para desarrolladores de Apple me viene que ni pintado.

El tutorial está bastante bien y ofrece una idea bastante clara de las posibilidades de RoR, las referencias adicionales son bastante interesantes, particularmente ésta que da instrucciones detalladas para montarse el entorno completo en OS X.

Vía SlashDot

Buscar cadena en multiples archivos

Febrero 27th, 2006

Apunto esto por que siempre se me olvida, para localizar archivos que contengan una cadena determinada puede hacerse de la siguiente forma:

find . -name '*.htm' | xargs grep 'í'

Este comando busca recursivamente todos los archivos con extensión .htm desde el directorio actual y muestra los que contengan la cadena í

Instalar DenyHosts en CentOS

Febrero 25th, 2006

DenyHosts es un script escrito en Python que monitoriza las entradas del log de conexiones del SSH, /var/log/secure en CentOS, para detectar clientes maliciosos que realizan ataques de fuerza bruta.

Cuando DenyHosts detecta que una IP se estan realizando repetidos intentos de conexión fallidos, añade esta IP al fichero /etc/hosts.deny y de esta forma cortamos de inmediato los intentos de conexión desde la IP maliciosa.

Esta guía toma como base el excelente Howto de Falko Timme publicado en HowtoForge sobre DenyHosts.

Obtener e instalar DenyHosts

Antes de descargar DenyHosts debemos comprobar la versión de Python disponible en el sistema:

python -V

Obtendremos algo parecido a esto:

Python 2.3.4

Después de conocer la versión de Python instalada en nuestro sistema, vamos a descargar el RPM de DenyHosts, el archivo preparado para la versión 2.3 de Python está disponible aquí.

Para descargar directamente el paquete desde nuestro sistema utilizaremos wget:

wget http://mesh.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.1-python2.3.noarch.rpm

Con el paquete descargado, ya podemos instalarlo:

rpm -i DenyHosts-2.1-python2.3.noarch.rpm

Configuración

DenyHosts se instala en /usr/share/denyhosts en este directorio se encuentran los archivos de configuración. Disponemos de un archivo de ejemplo que tomaremos como base para crear la configuración:

cd /usr/share/denyhosts
cp denyhosts.cfg-dist denyhosts.cfg

Editamos el archivo denyhost.cfg con nuestro editor favorito y ajustamos los parámetros necesarios:

SECURE_LOG = /var/log/secure
HOSTS_DENY = /etc/hosts.deny
#
# Este parametro indica el periodo de tiempo (4 semanas) que mantendremos las IPs maliciosas
# en el fichero hosts.deny
PURGE_DENY = 4w
#
# Bloquear todos los servicios a la IP maliciosa
BLOCK_SERVICE = ALL

El resto de parámetros del archivo se pueden dejar con los valores por defecto, si además queremos recibir un mail cada vez que se detecten ataques, debemos especificar una dirección de correo válida en:

ADMIN_EMAIL =

Lo habitual es que utilicemos DenyHosts como servicio, para ello podemos aprovechar el archivo daemon-control-dist:


cp daemon-control-dist daemon-control

Editamos el archivo y revisamos los valores:

DENYHOSTS_BIN = "/usr/bin/denyhosts.py"
DENYHOSTS_LOCK = "/var/lock/subsys/denyhosts"
DENYHOSTS_CFG = "/usr/share/denyhosts/denyhosts.cfg"

Despues, nos aseguramos que el archivo sea ejecutable para el usuario root:

chown root daemon-control
chmod 700 daemon-control

Arranque

Ya tenemos lista la configuración, ya podemos arrancar DenyHost:

./daemon-control start

Aunque lo ideal es configurar DenyHosts para que arranque automáticamente, para ello crearemos los enlaces simbólicos necesarios:

cd /etc/init.d
ln -s /usr/share/denyhosts/daemon-control denyhosts
chkconfig --add denyhosts

De este modo tendremos configurado DenyHosts de la siguiente forma:

chkconfig --list denyhosts
denyhosts 0:desactivado 1:desactivado 2:activo 3:activo 4:activo 5:activo 6:desactivado

Con esta sencilla utilidad haremos la vida un poco más difícil a los pesaos de Internet, espero que os sea de utilidad.