Archive for November, 2006
Amazon sobre rieles
Amazon una de las más conocidas librerías on line ha desarrollado una aplicación en nada mas y nada menos que en Ruby on Rails, el nombre de esta aplicación es UnSpun aún se encuentra en fase beta sin embargo ya se usa a lo largo y ancho de la web y su objetivo es el mantener ranked list, permitiendo registrarte y votar por tu item favorito.
No comments | Related postsAgile Web Development with Rails 2nd ed. es liberado
Hoy recibí un mail de los Pragmatic Programmers con el siguiente mensaje:
Folks: The final version of Agile Web Development with Rails went to the printer last Friday. This means that the paper book will start shipping sometime around December 15. You might want to grab the latest version of the PDF version of the book, P1.00. This is the version that will appear in print.
Después de una larga fase de actualizaciones ya que se encontraba en beta, al libro Agile Web Development with Rails 2nd ed. a sido liberado!!!
Si piensan escribir aplicaciones con Ruby on Rails, este magnífico volumen no debe faltar en su biblioteca.
No comments | Related postsTraducción de fechas en PHP y Java
Al desarrollar un sistema debemos de hacer uso de los beneficios del lenguaje o tecnología sobre la que desarrollamos, por ejemplo no podemos programar igual en Java que en PHP, ya que ambos lenguajes tienen diferentes características. Java y algunos otros lenguajes como C# tienen como parte de sus librerías estándar soporte para i18n y l10n, otros lenguajes como Ruby o PHP hacen uso de librerías de terceros para dar soporte a esta característica.
Este comentario viene a propósito de que recientemente tuve una plática por IM con una amiga y me preguntó por una función para hacer la traducción de una fecha con el formato dd/mm/yyyy a dd/NombreMesEnEspaniol/yyyy en PHP, entonces escribí la siguiente función
function translate_date ( $date )
{
// Patron para dividir los elementos de la fecha
$regexp = "^([0-9]{2})[\/.-]([0-9]{2})[\/.-]([0-9]{2,4})$";
// Verificamos que se cumpla con el patron
if ( ereg($regexp, $date, $date_splited) )
{
list( , $day, $month, $year) = $date_splited;
} else {
throw New Exception("Formato de fecha invalido !");
}
// Creamos el arreglo de conversion
$months = array( "01" => "Enero", "02" => "Febrero",
"03" => "Marzo", "04" => "Abril",
"05" => "Mayo", "06" => "Junio",
"07" => "Julio", "08" => "Agosto",
"09" => "Septiembre", "10" => "Octubre",
"11" => "Noviembre", "12" => "Diciembre",
);
// Obtenemos el nombre del mes
$long_month = $months[$month];
return $day."-".$long_month."-".$year;
}
?>
Mientras desarrollaba la función recordé una ocasión en la que haciendo una revisión de código en un proyecto desarrollado en la plataforma Java, encontré una clase de utilerias misceláneas que contenía una función con el mismo propósito que la desarrollada en PHP.
El algoritmo era mas o menos así:
- Dividir la cadena asumiendo que tiene un formato dd/mm/yyyy en tres secciones
- Obtener el valor de cada sección
- Asignar los valores obtenidos a variables para contener día, mes, año
- Dependiendo del valor numérico del mes obtener su nombre en español
- Concatenar una cadena con el formato
- Regresar la cadena con el nuevo formato
Simple no?!. Al estar escrito en Java y teniendo en cuenta el soporte de Java para i18n y l10n, era mas limpio usar un objeto SimpleDateFormat con un objeto Locale dándole mayor mantenibilidad al código, como se puede observar en la siguiente función.
SimpleDateFormat dateParser;
SimpleDateFormat sdf;
Date dateToTranslate;
ParsePosition position;
Locale locale;
dateParser = new SimpleDateFormat("dd/MM/yyyy");
position = new ParsePosition(0);
dateToTranslate = dateParser.parse(date, position);
locale = new Locale("ES");
sdf = new SimpleDateFormat("dd/MMMMM/yyyy", locale);
return sdf.format (dateToTranslate);
}
En estos dos ejemplos podemos observar la diferencia en la implementación en dos diferentes lenguajes de una misma función, haciendo uso de las características de cada uno de ellos.
Nota: En los ejemplos existe hard-code intencionalmente solo para hacerlos más claros, evidentemente es una mala práctica.
2 comments | Related postsMac OS X Shortcuts
Hoy un colega me preguntó acerca de como mover una ventana en OS X por medio del teclado :S. Nunca he hecho cosa similar, por lo que investigué en diferentes fuentes incluyendo el sitio de apple y no encontré nada acerca de ese tema, sin embargo encontré las siguientes referencias que listan muchas de las shortcuts de OS X:
En la última referencia existe una liga a las shortcuts de windows (por si a alguien le interesa :|).
No comments | Related postsPublicidad a lo grande
KFC construyó el primer logo de una marca comercial que puede ser visto desde el espacio :O, pueden ver más detalles aquí.
Y por si les interesa ver como se construyó vean este video de google.
Java es ahora Open Source, Alwas Open. Now Free.
Hasta el día de ayer, el código del JDK de Java fué accesible a cualquiera que lo quisiera bajar y compilar para su plataforma específica, pero el uso de los binarios producidos después de esta compilación no podía ser distribuido libremente. Por ejemplo, los usuarios de FreeBSD hasta antes de la versión 1.5 del JDK tenían que hacer la generación del compilador por cada servidor o workstation.
Hoy Sun ha anunciado bajo el slogan de Alwas Open. Now Free el cambio de licencia de sus fuentes a la licencia GLP v2, y provee de toda una infraestructura para poder hacer contribuciones.
Que bueno que Sun se decidió a dar este paso, pues esto ayudará en gran medida a la adición de mas características al lenguaje, mayor rapidez en la corrección de bugs y lo que es más importante dar la oportunidad de portarlo a muchas más plataformas.
3 comments | Related postsUna definición más de geek
Un colega me envió una liga a una de las tantas definiciones que se le dan al término Geek en la red, no estoy de acuerdo del todo pero esta bastante divertida…
Por cierto… Que se cuiden los pollos :D.
2 comments | Related postsIngreso de iTerm a mi Toolbox
Recientemente estabamos comentando el buen Norbert y yo sobre algunas herramientas que usamos en Mac y me sugirió usar iTerm en lugar de Terminal.app que ya viene con OS X, le pregunté cual era la ventaja de hacerlo y me lo respondió en una sola palabra… tabs…
En seguida me vi con mis cuatro ventanas de Terminal… una haciendo un tail -f al log de apache, una con el man page de algún comando, otra haciendo un acceso remoto a un servidor y por último con la que estoy ejecutando el comando del cual estaba consultando su man page…
Le dije: suena interesante… voy a evaluarla…
Hoy estuve experimentando con ella y realmente me convenció, tiene una interface sencilla y muy parecida a Terminal.app, la diferencia… tabs…
![]() |
| Son casi idénticas. |
![]() |
| La diferencia: Tabs. |
Sarah McLachlan Remix
Por algún tiempo busqué vocales para mis tracks, pero es algo difícil :S. Cual fue mi sorpresa cuando el mes pasado encontré una convocatoria para hacer un remix de una canción de nada más ni nada menos que de Sarah McLachlan… wow!!!… que mejores vocales :D, en seguida me bajé las pistas y comencé a trabajar. Después de mas o menos una semana de trabajo arduo
quedó un track que fue de mi satisfacción.
Después de algunos ajustes me di a la tarea de subirlo a la página de la convocatoria y… a esperar que la aceptaran para competir en el concurso.
Y por fin hoy lo acaban de publicar. Me siento muy contento ya que si no gano el concurso por lo menos estaré compitiendo.
Si les late el track pueden votar por el aquí.
2 comments | Related posts




Suscribete por correo