Geek & Roll » 2008 » October

Metroflog

Rafyta October 13th, 2008 geekchandise 3 comentarios

metroflog-t-shirt.jpg
¿Necesito decir más?

Mel Brooks on Comedy

Rafyta October 12th, 2008 frases Haz un comentario

“Tragedy is when I cut my finger. Comedy is when you fall into an open sewer and die.”

link

La tecla de subir y bajar volumen no responde en Ubuntu

Cesar October 11th, 2008 FLOSS, linux, tips Haz un comentario

Este feature (característica) de Gnome me trajo como loco varios días. Resulta que en mi laptop de trabajo puedo subir y bajar el volumen con el teclado, bien nice como se ve en la siguiente captura:

Volumen

Pero de un tiempo para acá dejó de hacerlo. La tecla sí respondía, o sea seguía saliendo la ventana del volumen de la imagen de arriba, la barrita se modificaba de acuerdo a lo que presionaba en el teclado (arriba o abajo) pero el volumen no se modificaba. Básicamente, al volumen le valía mère lo que yo hiciera.

SoundSi a ti te pasa lo mismo, la respuesta está en el panel de control del sonido que se encuentra en System | Preferences | Sound o si tienen Gnome-Do (y si no lo tienen a instalarlo ya) solo teclear Sound + Enter. En la lista que dice Default Mixer Tracks hay que seleccionar el dispositivo y la pista (track) que controlan las teclas de volumen de tu teclado. Para mi caso, Master es la indicada. Una vez seleccionada todo a la normalidad.

(Gracias a Coolarm’s blog por postear esto, seguramente aun estuviera buscandole solución de no ser por este blog)

Hosts virtuales en Apache2 con Ubuntu

Cesar October 10th, 2008 FLOSS, aplicaciones, tips 15 comentarios

Entonces, dices que quieres ponerte a desarrollar la siguiente gran aplicación Web 2.0 que revolucionará al mundo. Tienes las ganas, la idea y el conocimiento, ahora solo necesitas un ambiente de desarrollo adecuado. Antes de que corras por un teclado ergonómico, una silla cómoda, mouse inalámbrico y cualquier otra cosa que te ayude a programar de manera más cómoda, no me refería a eso con ambiente de desarrollo.

Lo que vamos a hacer ahora es configurar hosts virtuales con tu servidor Apache2 que ya instalaste en tu workstation. La razón es que, si eres como yo, tienes varios sitios en desarrollo al mismo tiempo y quieres que cada uno tenga su propia configuración y no usar URLs como localhost/miapp1 y localhost/miapp2.

Básicamente es editar algunos archivos, hacer vínculos simbólicos por aquí y por allá… nada complicado. Primero definamos algunas cosas:

  1. Vamos a suponer que el directorio raíz de la aplicación Web es /home/cesar/webapps/miapp1. Puede ser cualquier otro directorio siempre y cuando Apache pueda leer el directorio.
  2. Queremos que en vez de usar algo como http://localhost/webapps/miapp1 usar http://miapp1.local/ Ya se que es estúpido usar el directorio home de un usuario como raíz de Apache, así que no lo hagan en un servidor real.
  3. Queremos hacerlo a las de ya.

Primero tenemos que editar un archivo. El nombre no importa mucho, pero el lugar donde va guardado si. Para crearlo usamos:


sudo gedit /etc/apache2/sites-available/miapp1.local

Sudo porque necesitamos permisos de superusuario para escribir a ese directorio. El directorio sites-available tiene archivos de configuración para los sitios disponibles en Apache2. Hay una diferencia entre disponibles y habilitados: puedes tener varios sitios disponibles pero mientras no estén habilitados estos no pueden ser accedidos por medio Apache2.

En el archivo vamos a poner lo siguiente:

  1. <VirtualHost 127.0.0.1:80>

  2. 	ServerAdmin 	correo@miapp1.com

  3. 	ServerName	miapp1.local

  4. 	ServerAlias	miapp1.local

  5. 
    

  6. 	DocumentRoot	/home/cesar/webapps/miapp1/

  7. 	ErrorLog	/home/cesar/webapps/miapp1/logs/error.log

  8. </VirtualHost>

En donde dice VirtualHost 127.0.0.1:80 ese es el IP para la interfaz loop, es tu propia computadora (ahora ya entiendes el chiste de no hay lugar como 127.0.0.1). El :80 es el puerto por defecto que se usa cuando no le pones nada a la dirección. ServerAdmin básicamente puede ser cualquier correo, es lo que sale cuando hay un error 500 (interno) y Apache2 manda un aviso que te puedes contactar con [ServerAdmin] para notificarle del error. Lo importante es ServerName y ServerAlias, ya que es el nombre que se va a usar para el host virtual, lo que vamos a poner en la barra de direcciones. ServerAlias es básicamente otro nombre para dar con el mismo host, como podría ser http://www.miapp1.com y http://miapp1.com. En este caso lo dejamos igual.

DocumentRoot es la raíz de miapp1. Es crítico que Apache2 pueda leer el contenido del directorio. Por último ErrorLog nos servirá para diagnosticar cualquier problema al arrancar el servidor, y Apache2 debe poder ESCRIBIR a ese directorio, ya que si no puede no va a arrancar (yo lo aprendí por las malas). Asegúrense de que el directorio exista antes de arrancar el servidor.

Ahora si ponemos en la barra de direcciones del navegador ‘miapp1.local’ va a tratar de resolver esa dirección mediante DNS, o sea en pocas palabras cree que es una dirección disponible públicamente en la Web y ¡obvio que no lo es! así que tenemos que decirle que se olvide de buscarla en otro sitio y se limite a buscarla en nuestra computadora. Para eso editamos el archivo /etc/hosts


sudo gedit /etc/hosts

Va a tener algo como esto:


127.0.0.1 localhost
127.0.1.1 cesar-laptop

Agregamos una nueva entrada, así:


127.0.0.1 localhost
127.0.1.1 cesar-laptop
127.0.0.1 miapp1.local

Le estamos diciendo “checa computadora, cuando veas que alguien se refiere a miapp1.local ni te molestes en buscarlo en otra parte, su dirección IP es 127.0.0.1 o sea, tu misma”.

Ahora habilitamos el sitio:


sudo a2ensite miapp1.local

La herramienta a2ensite nos crea el vínculo simbólico necesario en vez de tenerlo que hacer manualmente nosotros, y hasta nos pide que recarguemos Apache2 con lo siguiente:


sudo /etc/init.d/apache2 reload

En este momento si ponemos miapp1.local en la barra de direcciones de nuestro navegador debe de mostrarnos el sitio.

¿Y si algo sale mal?

El primer lugar para buscar información es el log de error que configuramos. Ahí podremos encontrar pistas para ver qué es lo que salió mal y corregirlo. Muchas aplicaciones y frameworks (como Wordpress y CodeIgniter) usan mod_rewrite para que las URLs sean amigables (http://www.miapp1.com/ver/perfil/juanita en vez de http://www.miapp1.com/perfiles.php?user=juanita) y si no lo tenemos habilitado Apache2 nos dará un error. Para habilitar un módulo:


sudo a2enmod rewrite

La herramienta a2enmod habilita un módulo que se encuentre disponible (pero no habilitado). En este caso rewrite.

Si nada de esto parece resolver el error, pueden ver el contenido de /var/log/apache2/error.log para ver que salió mal:


cat /var/log/apache2/error.log

XRX: El relevo de AJAX

Rafyta October 10th, 2008 internet, programacion, tecnología Haz un comentario

Dándole una hojeada a Foundations of Ajax de Apress, en la Breve historia de las aplicaciones web, me encontré la mención de XForms, y al pasar por una serie de vínculos me topé con este post en xml.com.

XRX es un paradigma parecido a AJAX y representa: XForms en el cliente (browser), Interfaces REST y XQuery en el servidor. Aunque podría compararse también con LAMP, WAMP o *AMP, hay características que lo asemejan más (e incluso lo llevan a competir directamente con) AJAX.

En buena parte comparto el entusiasmo por XRX de Dan McCreary (autor del post) ya que en uno de sus ejemplos pone como escenario el sitio web de una empresa de bienes raíces. Habiendo programado y diseñado varios de estos animalitos yo mismo, les puedo decir que es algo bastante tedioso cuando uno no está enamorado de su trabajo (o es Maestro en Ciencias o Científico Loco como algunos que yo conozco). Dan dice lo siguiente refiriéndose a las ventajas de este inexplotado paradigma (traducción mía):

Los métodos tradicionales requieren hacer 40 inserciones en tablas separadas dentro de una base de datos relacional. El uso de XForms y eXist resulta en una sola línea de código XQuery:

store(collection, file, data)

Eso es todo. Simple. Elegante.

Ahora explíquenme ¿CÓMO PODRÍA no entusiasmarse cualquier webdev mortal con semejante aseveración?

Sin embargo, en este nuevo mundo maravilloso con casas hechas de caramelo, hermosas mujeres, cerveza gratis y nubes de algodón que nos pinta XRX hay algunas “consideraciones” que debemos tener en cuenta los MySQL-PHP-JavaScripteros:

  1. Ningún browser soporta aún XForms (excepto Firefox, pero con una extensión del mismo nombre).
  2. Tienes que aprender XML y usarlo como si fuera HTML o Microsoft Word (nada del otro mundo).
  3. Aprender XPath
  4. Familiarizarte con eXist
  5. Aprender XQuery
  6. Conseguir un hospedaje que soporte eXist/XQuery y convencer a tu cliente de que mude su sitio con ellos.
  7. Pelear a muerte con todos los die-hard AJAXeros y PHP/MySQLeros

Aún con todas las desventajas que conlleva (por ahora), creo que vale la pena echarle una hojeada a XRX e invertir un poco de tiempo para ser de los primeros en dominar este paradigma y después de leer varios libros, ingerir cantidades industriales de cafeína (o refresco de cebada) y acentuar las ojeras con estilo y orgullo, poder teclear store(collection, file, data) y sentirse como un campeón.

Chinese Democracy en Noviembre

axel-rose.jpg

De acuerdo a un comunicado de Reuters, Guns N’ Roses prepara su *nuevo* disco, que pasara más de diez años en el horno, y será lanzado el próximo mes. Además el día 28 de Octubre (este mes) se relanzará el memorable Apetite for Destruction.

El también ansiadísimo Rockband 2 incluirá entre las rolas jugables a “Shackler’s Revenge” del mismo Chinese Democracy.

La neta no me siento muy emocionado, pero trae buenos recuerdos, a ver cómo está el nuevo CD.

Cuenta hacia atrás para Ubuntu 8.10 Intrepid Ibex

Cesar October 9th, 2008 FLOSS, linux, sistemas operativos 4 comentarios

Ha iniciado la cuenta hacia atrás para lo que será la nueva versión de Ubuntu: Intrepid Ibex. Como probablemente ya sepan, la numeración de las versiones viene dada por el año (2008) y el mes (Octubre = 10) así que para esta próxima versión denominada Intrepid Ibex, el número es 8.10.

¿Y porqué tengo que actualizar? Veamos:

  • En vez de 8.04 ahora es 8.10. Le puedes presumir a tus amigos el número 10, que es mejor que el 04 obviamente, porque es más grande.
  • Gnome 2.24 que desde el departamento de no-puedo-creer-que-no-lo-tuviera-antes Nautilus (el manejador de archivos), ahora tiene soporte para tabs como Konqueror hace 100 años (en vida computacional). También un boton de expulsar para los medios expulsables, ¡que mono!
  • Xorg 7.4 que debido a la maldad de los drivers de video binarios (como nVidia y ATI) estos no son soportados aún y por lo tanto los usuarios de estas tarjetas tendrán que usar drivers libres de castigo… mientras salen los nuevos.
  • El kernel 2.6.27 que podría decir todas las diferencias y mejoras que trae, pero sabes que solo tu y yo las entenderíamos, así que mejor ahí la dejamos. Es bueno tener lo último.
  • Directorio privado encriptado, para guardar tu colección de… estampillas.
  • Cuenta de invitado con restricciones para poder prestar tu laptop sin miedo. Los invitados no pueden guardar archivos permanentemente ni accesar a los directorios Home
  • El nuevo Network Manager. Ya quedamos que lo más nuevo es lo mejor así que sin comentarios.
  • Cuando arrancas el sistema hay una entrada que te permite seleccionar la configuración del último arranque exitoso. Si, así como Windows.
  • DKMS, una onda para los drivers.
  • Samba 3.2 con soporte para la nueva versión de este protocolo de Microsoft tan popular.
  • Plugin para ver videos de la BBC desde Totem. YEAH!

Pueden ver cuantos días faltan para esta nueva versión en el widget que se encuentra en la barra de la derecha de este blog. Cuando la bolita blanca llegue al centro, ya saben, a actualizar.

Posts recientes