Monthly Archives: June 2008

Ordenación Explícita en MySQL

Algunas veces (por suerte no es frecuente) es necesario ordenar de manera explícita en MySQL, se necesita darle una lista de valores que será el orden y no necesariamente por los valores de un campo; por ejemplo puede ser una lista arbitraria de ID's

Para lograr esto me he encontrado con lo siguiente: http://www.bin-co.com/database/mysql/explict_order_by.php

Básicamente lo que explica es que para ordenar de manera explícita, se escriben los valores explícitamente de la forma:

columna1=valor1 DESC, columna2=valor2 DESC, ..., columnaN=valorN DESC

Es muy importante usar DESC para tenerlos en el orden escrito, si escribimos ASC entonces tendremos un orden inverso (el último valor será el primero), si mezclamos DESC y ASC, tendremos que los DESC se harán conforme se escribieron y los ASC en sentido inverso despúes de los valores DESC.

Por ejemplo si tenemos una tabla ‘tabla_prueba‘ que tiene una columna id y queremos ordenar por los valores 2,1,10,7 en ese orden debemos hacer los siguiente:

SELECT * FROM tabla_prueba WHERE id IN(2,1,10,7)
      ORDER BY id=2 DESC, id=1 DESC, id=10 DESC, id=7 DESC

Si se omite el WHERE nos mostrará todos los renglones de la tabla y solamente al tope los valores ordenados como hemos especificado.

Cancion del dia – The host of Seraphim

Una gran canción vocal descubierta por la película The Mist, la esperanza debería morir al último… pero a veces muere antes.

Las imagenes son cautivantes y preocupantes.

Cancion del dia – Flashing Lights

Otra canción de GTA IV, de la estación Beat 102.7

Cancion del dia – Nikogo Ne Zhalko

Una canción interesante, descubierta por la radio de GTA IV =)

Aqui tienen ligas de rapidshare.com de la radio de GTA IV: http://peb.pl/soundtrack/304565-rapidshare-gta-4-radio-stations-grand.html

Actualización de Zend Studio (6.0.1)

Ayer recibí un correo de que estaba disponible la primera actualización de Zend Studio.

Si mal no recuerdo la primera actualización del Zend Studio “clásico” tomó más tiempo (la versión de Zend Studio fue liberada a finales de Enero de 2008). Había leido muchos comentarios desfavorables en cuanto al uso de Zend Studio 6 usando Eclipse que era una buena idea pero mal realizada con muchos errores, después de utilizarlo un tiempo me di cuenta que así era; de manera frecuente el editor tenía un error (NullPointerException) o simplemente “desparecían” algunas partes haciendo imposible seguir editando, en este caso se tenía que cerrar el archivo y volverlo a abrir, en casos extremos se debía de reiniciar la aplicación.

También era frecuente que la aplicación fallara, creía que era por que no había soporte para Java a 64 bits (mi computadora está en Vista x64) pero Flex Builder 3 funcionaba de manera impecable; por lo que estaba incluso pensando en regresar a Zend Studio 5.5

Ayer probe la actualización durante unas cuatro horas programando y a primera vista parece más rápido tanto en carga como en uso. Las transferencias de FTP fueron más rápidas de lo normal (subo los datos a un servidor Linux local para pruebas) aunque no estoy seguro de que esto sea por la actualización ya que pudiera ser una actualización de Aptana que es lo que utilizo para sincronizar mis archivos mediante FTP.

Otra gran mejora es la inclusión de Zend Framework 1.5, en la versión anterior solo había soporte para 1.0 (aunque me supongo que se podía modificar la instalación para utilizar esta librería). Para actualizar tus proyectos solamente debes ir a Project -> Properties, seleccionar PHP Include Path, después en la pestaña de “Libraries” seleccionar “Add Variable” y seleccionar “FRAMEWORK_1.5_HOME“, dar click en OK, y después seleccionar el “FRAMEWORK_HOME” que es el anterior framework y seleccionar Remove, después de dar click en OK el sistema actualizará las referencias y tardará un poco dependiendo del tamaño del proyecto.

Durante ese tiempo de prueba el editor no se colgó ni tuvo errores ni en el editor ni en la aplicación lo cual habla muy bien de la actualización.

Algo malo de la actualización es que es una instalación separada de Zend Studio (no actualiza pues) por lo que tuve que configurar algunos scripts que utilizaba (para sincronizar rápidamente con Aptana).

Cancion del dia: The Letter – Box Tops

Letra:

Gimme a ticket for an aeroplane,
Ain’t got time to take a fast train.
Lonely days are gone, I’m a-goin’ home,
‘Cause my baby just a-wrote me a letter.

I don’t care how much money I gotta spend,
Got to get back to my baby again
Lonely days are gone, I’m a-goin’ home,
‘Cause my baby just a-wrote me a letter.

Well, she wrote me a letter
Said she couldn’t live without me no mo’.
Listen mister can’t you see I got to get back
To my baby once a-mo’–anyway…

Gimme a ticket for an aeroplane,
Ain’t got time to take a fast train.
Lonely days are gone, I’m a-goin’ home,
‘Cause my baby just a-wrote me a letter.

Well, she wrote me a letter
Said she couldn’t live without me no mo’.
Listen mister can’t you see I got to get back
To my baby once a-mo’–anyway…

Gimme a ticket for an aeroplane,
Ain’t got time to take a fast train.
Lonely days are gone, I’m a-goin’ home,
‘Cause my baby just a-wrote me a letter.
Because my baby just a-wrote me a letter.

Traducción:

Deme un boleto para un avión,
No hay tiempo para tomar un tren rápido.
Los días de soledad se han terminado, voy a casa,
Porque mi amor me ha escrito una carta.

No me importa cuanto gastaré,
Para regresar con mi bebe
Los días de soledad se han terminado, voy a casa,
Porque mi amor me ha escrito una carta.

Ella me escribió una letra,

Dijo que no podía seguir viviendo sin mi.
Escuche señor, dese cuenta que tengo que volver
Con mi bebe una vez más… de cualquier manera

En la onda de rock de los 60′s tenemos a esta gran canción, la descubrí por las 500 mejores canciones según la revista Rolling Stone, pero recuerdo haberla escuchado en alguno de los discos de mi padre.

Aunque el arreglo del final no me agradó.

Grasias por asectarme

Creía que era un error de una persona en un “sitio social” pero lo peor es que la búsqueda de “grasias asectarme” da como resultado 1,810 páginas; definitivamente el mundo está en las últimas.

http://www.google.com/search?q=grasias+asectarme

De verdad espero que sea una broma =|

Si alguien no lo “capta” (en lenguaje social es: ‘cacta’) la frase sin errores es: “Gracias por aceptarme”, con frases como estas me siento en mi colonia donde pusieron un letrero de “piesa basia” (refiriéndose a un cuarto para rentar)

Cancion del dia – BWV 78 – Wir eilen mit schwachen

Letra:
Wir eilen mit schwachen, doch emsigen Schritten,
O Jesu, o Meister zu helfen zu dir.
Du suchest die Kranken und Irrenden treulich.
Ach höre, wie wir
Die Stimme erheben, um Hülfe zu bitten!
Es sei uns dein gnädiges Antlitz erfreulich!

Traducción:
Nos apresuramos con pasos débiles pero diligentes,
¡Oh Jesús, oh Maestro, hacia Ti por ayuda!
Tú buscas fiel a los enfermos y errantes.
¡Ah, escucha cómo elevamos nuestras voces
Para implorar socorro!
¡Que tu rostro benevolente nos alegre!

Una composición realmente sorprendente de Bach y una excelente interpretación (una de las tantas joyas en la colección de Hänssler Bachakademie)

Esta composición la encontré mediante la estación de música clásica barroca de 1.fm (que por cierto es excelente)

PHP y msmtp

La mayoría de ISP bloquean el puerto 25 para “evitar” que computadoras infectadas envien SPAM. Este era mi caso por lo que me era imposible probar los correos que enviaba mediante PHP hasta subirlos a mi servidor de pruebas.

Recientemente me encontré con msmtp que es básicamente un cliente SMTP que funciona como proxy para enviar correo mediante otro servidor.
Para instalar msmtp en mi caso debian solo se necesita:

apt-get install msmtp msmtp-mta

Para configurarlo basta crear el archivo /etc/msmtprc con la configuración correspondiente, por ejemplo en mi caso fue:

defaults
tls on
tls_certcheck off

account danguer.com
host mail.danguer.com
port 999
from monitor@danguer.com
auth on
user monitor@danguer.com
password password_cuenta

account default: danguer.com

Lo que dice la configuración es que básicamente utilizará TLS (para mayor seguridad, además de que mi servidor lo requiere).
Creamos una cuenta llamada danguer.com y le decimos el usuario y la contraseña a utilizar, ya por último asignamos la cuenta por defecto que vamos a utilizar.

Con esto deberiamos de poder enviar correos como con sendmail pero utilizando el programa /usr/bin/msmtp por lo que lo único que basta es configurar php para que envie utilizando el programa en vez de sendmail.

En el archivo php.ini pondremos lo siguiente:

sendmail_path=/usr/bin/msmtp -t -i

Reiniciamos apache y ahora cuando utilicemos la funcion mail el sistema lo enviará mediante el servidor que hayamos especificado.

De hecho podemos utilizar una cuenta de gmail para hacerlo pero hay que tener en cuenta que debido a sus filtros anti-spam nuestros mensajes podrían ser rechazados o incluso la cuenta podría ser bloqueada para enviar correos (por defecto acepta un límite de 100 correos por día)

Cancion del Dia – Angel of the morning

Letra
There’ll be no strings to bind your hands
not if my love can’t bind your heart.
And there’s no need to take a stand
for it was I who chose to start.
I see no need to take me home,
I’m old enough to face the dawn.

Just call me angel of the morning angel
just touch my cheek before you leave me, baby.
Just call me angel of the morning ANGEL
then slowly turn away from me.

Maybe the sun’s light will be dim
and it won’t matter anyhow.
If morning’s echo says we’ve sinned,
well, it was what I wanted now.
And if we’re the victims of the night,
I won’t be blinded by light.

Just call me angel of the morning angel
Just call me angel of the morning ANGEL
then slowly turn away,
I won’t beg you to stay with me
through the tears of the day,
of the years, baby baby baby.
Just call me angel of the morning ANGEL
just touch my cheek before you leave me, baby.

Traducción

No hay cadenas para atar tus manos,
No si mi amor no puede amarrar tu corazon.
No hay necesidad de detenerse
ya que fui yo quien decidió iniciar.
Soy demasiado maduro para enfrentarme al amanecer

Solo llámame angel de la mañana, angel
Solo toca mi mejilla antes de que me dejes, bebe.
Solo llamame angel de la mañana, angel
y suavemente vete de mi lado.

Posiblemente la luz del día será tenue,
y no importara.
Si el eco de la mañana dice que hemos pecado,
eso es lo que deseaba.
Y si somos las victimas de la noche,
No seré cegado por la luz.

Solo llámame angel de la mañana, angel
Solo llamame angel de la mañana, angel
y suavemente vete de mi lado.
No rogaré que te quedes
con lágrimas del día,
o de los años, bebe bebe bebe.
Solo llamame angel de la mañana, angel
Solo toca mi mejilla antes de que me dejes, bebe.

Una canción que escuche gracias a mi padre y un disco de ‘viejitas’. Seguimos en el tono meloso/melancólico =P