Pointer to (void)
iTunes + .Net
Mayo 29th, 2005 - [Enlace local]
Apple a provisto una SDK para acceder al iTunes via COM, incluidas funciones de conversión y administración de la biblioteca, por lo que acceder a la canción actual (en .NET) es tan fácil como:
using iTunesLib;Añadiendo la correspondiente referencia COM
...
iTunesAppClass iTunes = new iTunesAppClass();
Console.WriteLine("{0} - {1},{2}",
iTunes.CurrentTrack.Time,
iTunes.CurrentTrack.Name,
iTunes.CurrentTrack.Artist);
...
"iTunes 1.3 Type Library" el ejemplo compila correctamente. Puedes descargar el SDK con la documentación y un par de ejemplos para manejar la biblioteca de canciones desde WSH, en el sitio web de Apple:iTunes COM for Windows
» Leer más, comentarios, etc...
Pointer to (void)
iTunes + .Net
Mayo 29th, 2005 - [Enlace local]
using iTunesLib;Añadiendo la correspondiente referencia COM
...
iTunesAppClass iTunes = new iTunesAppClass();
Console.WriteLine("{0} - {1},{2}",
iTunes.CurrentTrack.Time,
iTunes.CurrentTrack.Name,
iTunes.CurrentTrack.Artist);
...
"iTunes 1.3 Type Library" el ejemplo compila correctamente. Puedes descargar el SDK con la documentación y un par de ejemplos para manejar la biblioteca de canciones desde WSH, en el sitio web de Apple:iTunes COM for Windows
» Leer más, comentarios, etc...
Squeak: Un mundo para Aprender
Mayo 28th, 2005 - [Enlace local]
El libro lo editará Edit Lin Editorial SL. Los autores son un grupo de profesores de Badajoz y yo.
Pueden leer el borrador del capítulo que me tocó escribir en versión html o bajar la versión en OpenOffice.
» Leer más, comentarios, etc...
La luna ilumina por igual a culpables e inocentes
El lado oscuro de las pruebas.
Mayo 23rd, 2005 - [Enlace local]
De un tiempo a esta parte, con la aparición de metodologías extremas, diseño guiado a pruebas y herramientas tipo jUnit, se han puesto de moda las pruebas. Parece que, cuantas más pruebas tenga un programa, mejor. Pero tener un número elevado de pruebas tiene un lado oscuro que puede traer problemas.
Si las pruebas son pequeñas y simples, las podemos escribir en un momento, pero si aumenta su tamaño (y no podemos dividirlas en pruebas más pequeñas) se hacen difíciles de escribir. Además a más código más errores, por lo que tenemos que perder tiempo depurándolas. Si nuestra prueba tiene mucho código o es compleja, ¿cómo podemos asegurarnos de que nuestra prueba funciona adecuadamente? ¿Tenemos que escribir una prueba para probar la prueba?.
Esto es malo, pero podemos encontrar algo todavía peor. Supongamos que tenemos una clase y 10 pruebas que dependen de dicha clase. Con el uso se ha descubierto que hay una manera mejor de crear objetos de esa clase cambiando los constructores. Ese cambio supondría, no solo cambiar en el código donde se crean objetos de esa clase (muy pocos si programamos bien 8) ) sino tener que modificar esas 10 pruebas.
Además habría que repasarlas para comprobar que sigan teniendo sentido después de la modificación y, probablemente, escribir pruebas nuevas.
En este caso el problema no es muy grande, pero si cambiamos (o refactorizamos) mucho código, el número de casos de casos de prueba a modificar aumenta, con el consiguiente gasto de tiempo para modificarlas. Recordemos que las pruebas no son parte del sistema (no se la entregamos al cliente ni, probablemente, el cliente aprecie su utilidad), por lo que no debemos gastar demasiado tiempo con ellas.
Esto nos puede llevar a dos decisiones igual de malas: o bien no modificar el código para seguir aprovechando las pruebas que ya tenemos, o, lo más común, modificar el código y tener un conjunto de pruebas obsoletas e inservibles.
Este problema no es exclusivo en las pruebas de código "tipo jUnit". También sucede lo mismo trabajando, por ejemplo, con robots de prueba que capturan pulsaciones de teclado o ratón y luego las reproducen. En este caso, un mínimo cambio en la interfaz gráfica puede obligar a modificar (o a volver a grabar) un buen número de pruebas.
En resumen. Cuanto más pruebas, por ejemplo pruebas de código, tengamos, más atados estamos a dicho código y menos ganas de cambiar nada tenemos..
¿Cuál puede ser una la solución?. Creo que una buena alternativa sería generar las pruebas de manera automática. Si tuviéramos un programa que permitiera apretar un botón y obtener un buen conjunto de pruebas (e incluso ejecutarlas), no nos preocuparíamos a lo hora de cambiar el código. En cada cambio descartaríamos todas las pruebas obsoletas y generaríamos pruebas nuevas fácilmente.
Esto es muy fácil de decir pero muy difícil de poner en práctica (por no decir imposible). Espero seguir hablando de esto en futuras entradas.
» Leer más, comentarios, etc...
Más allá de la revolución informática - Peter Drucker
Mayo 20th, 2005 - [Enlace local]
http://www.elmalpensante.com/19_drucker.asp
Un poco capitalismo-céntrico, pero no más de lo esperable de Drucker (léase Dr
A
cker, haciendo hincapié en la
A
para que se note que sabemos pronunciar Inglés).
» Leer más, comentarios, etc...
Entrevista para Todo Linux de Marzo
Mayo 20th, 2005 - [Enlace local]
Hurgando mis documentos me encontré con el PDF de una entrevista que me hicieron para le edición de Marzo de la revista Todo Linux.
Pueden verlo en:
http://www.consultar.com/DiegoGomezDeck/papers/Entrevista%20Todo%20Linux%20-%20Squeak.pdf
» Leer más, comentarios, etc...
certificándome
Condensandooooo
Mayo 18th, 2005 - [Enlace local]
Mi linkblog favorito es mi fuente diaria de noticias y novedades sobre Java y algunas cosas más.
» Leer más, comentarios, etc...
Pointer to (void)
Verano al sol
Mayo 17th, 2005 - [Enlace local]
Sun y Microsoft han decidido hacer las paces y velar por la interoperabilidad de sus productos y sistemas. El pasado 13 de mayo tubo lugar una conferencia en Palo Alto donde se pudieron ver los primeros indicios de la colaboración entre las dos compañías.
Muy lejos de ser una fusión entre las plataformas .Net y Java, por el momento se habla de una unificación de algunas de las tecnologías (Web SSO entre otros) y sobre todo de la integración de las dos plataformas en pro de la seguridad. Greg Papadopoulos lo ha dejado bien claro:
I want to make it clear that this alliance is not about building a single, massive .NET-Java software stack. Instead, it's about finding out where those stacks touch one another and making sure that those interfaces are optimally engineered on both sides.
De cualquier manera las dos empresas pasan ahora por un buen momento tecnológico y comercial. Java está más que asentado en la industria y .Net parece que se ha ganado el beneplácito de la comunidad de código libre, o al menos, en parte. Teniendo en cuenta que existen dos sólidos sistemas operativos detrás, como son Solaris y Windows Server, no me extraña que se abogue por la colaboración en lugar de por la guerra.
En principio sería ideal que aplicaciones .Net pudiesen correr bajo Solaris. Y más todavia, si Java se incluye en las instalaciones cliente de Windows, quizá a través de WindowsUpdate. El principal beneficio, permitir a las empresas desarrollos más fluidos entre plataformas. Y por lo tanto, una diversificación de plataformas con APIs de desarrollo comunes.
Veremos como se mueve el mercado en los próximos años.
Más enlaces:
Sun and Microsoft Announce ... (microsoft.com)
Sun & Microsoft Press Conference (sun.om)
» Leer más, comentarios, etc...
Pointer to (void)
Verano al sol
Mayo 17th, 2005 - [Enlace local]

Muy lejos de ser una fusión entre las plataformas .Net y Java, por el momento se habla de una unificación de algunas de las tecnologías (Web SSO entre otros) y sobre todo de la integración de las dos plataformas en pro de la seguridad. Greg Papadopoulos lo ha dejado bien claro:
I want to make it clear that this alliance is not about building a single, massive .NET-Java software stack. Instead, it's about finding out where those stacks touch one another and making sure that those interfaces are optimally engineered on both sides.
De cualquier manera las dos empresas pasan ahora por un buen momento tecnológico y comercial. Java está más que asentado en la industria y .Net parece que se ha ganado el beneplácito de la comunidad de código libre, o al menos, en parte. Teniendo en cuenta que existen dos sólidos sistemas operativos detrás, como son Solaris y Windows Server, no me extraña que se abogue por la colaboración en lugar de por la guerra.
En principio sería ideal que aplicaciones .Net pudiesen correr bajo Solaris. Y más todavia, si Java se incluye en las instalaciones cliente de Windows, quizá a través de WindowsUpdate. El principal beneficio, permitir a las empresas desarrollos más fluidos entre plataformas. Y por lo tanto, una diversificación de plataformas con APIs de desarrollo comunes.
Veremos como se mueve el mercado en los próximos años.
Más enlaces:
Sun and Microsoft Announce ... (microsoft.com)
Sun & Microsoft Press Conference (sun.om)
» Leer más, comentarios, etc...
WP-Morph 1.1
Mayo 16th, 2005 - [Enlace local]
Update: Version 1.2 is out
(English version below)
LEEME de WP-Morph
WP-Morph es un plugin anti-spam para WordPress. Características:
- No requiere de ningún “capcha”. El usuario no tiene que introducir
ningún código extraño ni se entera de nada del proceso. - Se requiere JavaScript en el browser.
- Los spammers tendran que interpretar el código JavaScript de la
página para poder enviar comentarios. Hasta ahroa no conozco a
ningún programa spammer que haya sido capaz de interpretar también
el código JavaScript de la página.
Instalación
- Descarga la última versión del plugin de aquí
- Edita las líneas siguientes de wp-morph.php y pon un número al azar. Es importante que ese número sea diferente, ya que ser el secreto de tu sitio web que los spammers no sabrán:
////// Config values: // * rnd_val is an integer greater than 0 and less than 1,000,000 // * form_valid_minutes is the number of minutes that the form is valid // since the form appears in the screen till the user // pushes the \"submit\" button. (15 minutes by default). $rnd_val = xxxx; $form_valid_minutes = 15; ////// End of config values.
- Copia wp-morph.php en el directorio de plugins de WordPress (normalmente WP-ROOT/wp-content/plugins/ ).
- Ve al menú “Plugins” de la administración de WordPress.
- Activa el plugin “WP-Morph”.
Change Log
v1.1:
- Generación de valores mejorada. Ahora los formulario expiran después de un número de minutos configurado por parte del usuario del plugin.
- Muestra que el formulario está protegido por WP-Morph.
v1.0:
- Versión inicial.
(English version)
README for WP-Morph
WP-Morph is an anti-spam plugin for WordPress. Features:
- No capcha. The user don’t have to enter any additional code.
- JavaScript support required in the browser.
- Spammers would have to interpret the JavaScript in the page to be able to submit comments. As far as I know, no one spammer in the world process a page including the JavaScript.
Installation
- Download the lattest version of the plugin from here.
- Edit the following lines (in wp-morph.php) to put a random value of your own:
////// Config values: // * rnd_val is an integer greater than 0 and less than 1,000,000 // * form_valid_minutes is the number of minutes that the form is valid // since the form appears in the screen till the user // pushes the \"submit\" button. (15 minutes by default). $rnd_val = xxxx; $form_valid_minutes = 15; ////// End of config values.
- Copy wp-morph.php in the WordPress plugin directory (normally WP-ROOT/wp-content/plugins/ ).
- Go to the “Plugins” menu of the WordPress Admin console.
- Activate the “WP-Morph” plugin.
That’s it!! Bye, bye, spam!!
Change Log
v1.1:
- Improved the generation of the values. Now forms expire at some user-configured time.
- Show that the form is protected using WP-Morph.
v1.0:
- Initial release.
» Leer más, comentarios, etc...
Imagen de 3.8 para Windows, Apple, etc.
Mayo 16th, 2005 - [Enlace local]
Está disponible para bajar la Imagen de Squeak de Small-Land versión 3.8 para las plataformas donde, aún, no tenemos instaladores.
Se puede descargar desde: http://squeak.linex.org/W32/Squeak38-SmallLand-Imagen-1226.zip
» Leer más, comentarios, etc...
Y si hablamos de...
… del ajax ese
Mayo 16th, 2005 - [Enlace local]
Aunque Aitor ya ha repartido a diestro y siniestro sobre el tema, ayer aparecía este artículo en el New York Times en el que James Fallows habla un poco de las nuevas generaciones de aplicaciones web (ricas, las llaman), que hacen uso de Ajax para mejorar la experiencia del usuario (como me gusta esa frase :-P ).
Es muy posible que vayan por ahí los tiros, no digo que no, pero en esto, como en todo, está en saber par que vale cada cosa. O mejor dicho, hasta dónde llega. Obviamente todo llegará, hoy en día incluso ese enjendro llamado Blackberr en su versión 4.0 puede navegar por GMail (aunque no sé en que versión exactamente), pero el problema que puede venir con Ajax, y con otras tecnologías, es que quizás no valga para todos los dispositivos. Lo que hoy en día es sencillo hacer, por ejemplo hacer una web navegable como dios manda para móviles, puede complicarse si usamos seg?u que tecnologías, como por ejemplo Ajax. Pero si eso no se nos pasa por la cabeza, ¿por qué no usarlo?. O si tenemos confianza en que pronto podrán... o si.
¿A que viene este post insulso que no dice mucho?. Bueno, a intentar dejar por escrito lo que a alguién le comenté por messenger, y el artículo del NYT me ha dado la excusa. Bye.
» Leer más, comentarios, etc...
certificándome
Escribiendo preguntas
Mayo 13th, 2005 - [Enlace local]
Hace unos dias leí que el libro sobre certificación más útil, sí el libro "del profe" y del que ya hablé hace unas semanas, no saldrá a final de éste mes, sino a final de agosto.
Como no quiero esperar tanto para hacer el examen, me estoy escribiendo yo misma los test de las partes nuevas. Al final podré hacer un cálculo aproximado de lo equivocada que estaba ;-)
Eso es lo que hago ahora... condensar todas mis anotaciones en un test, eso y disfrutar de la primavera, que parece que por fin ha llegado.
» Leer más, comentarios, etc...
Null Pointer Exception
¿Estamos preparados para el networking?
Mayo 11th, 2005 - [Enlace local]
Algunos recordaréis este post en el que narraba mis aventuras y desventuras en el intento de tejer una red social a través de la herramienta econozco. Contaba en dicho post lo difícil que me estaba resultando convencer a la gente para utilizar dicha herramienta, incluso a los que la idea les parecía muy buena. Como rendirse es de cobardes no desistí y segui intentándolo, y los resultados fueron ...
... realmente desalentadores !!. Si recordáis, primero me dirigí a mi entorno más cercano, es decir, mis amigos, todos ellos jóvenes profesionales con titulación universitaria y usuarios más o menos habituales de internet (requisito imprescindible para esto del networking). Pensé, erróneamente, que como alguno todavía no había alcanzado una gran estabilidad laboral quizás estarían interesados en hacer crecer su red de contactos por si en el futuro les surgía alguna posibilidad de mejorar profesionalmente, pero no tuve éxito. Después de mi fracaso con los "ingenieros analógicos" me fui al sector empresarial, a través de mi mujer, pero ella ya me adelantó los motivos por los que fallaría mi nuevo intento: la mayoría de sus compañeros no tenía internet en casa y el que lo tenía lo usaba para fine mas lúdicos.
En vista de esta situación decidí apostar fuerte y me fui directamente a por el sector tecnológico, pensando que serían mucho mas receptivos con el tema. Así fue, comenté la idea a varios desarrolladores con los que he tenido relación profesional y a todos les pareció una buena idea ... pero sigo esperando a que ellos hagan crecer su red. Como en todos los casos la gente se convence y se da de alta en el sistema, pero de ahí no pasan. Finalmente, ya a la desesperada, me fui a por el sector servicios a través de mi primo, un joven emprendedor también muy receptivo con la idea, aprovechando que iba a reunirse con otros empresarios del sector. Evidentemente este nuevo intento me llevó a la dura realidad: el atraso tecnológico que hay en este país. Para el recuerdo queda la frase que dijo uno de los empresarios cuando mi primo le pidió la dirección de correo: "no tengo, pero tengo móvil".
La conclusión que obtengo es que este país todavía no está preparado para ideas avanzadas como el networking, y que las autoridades deberían tomar medidas para mitigar el atraso tecnológico en el que estamos sumidos. También existe un problema de actitud en la gente, pero éste ya es mas dificil de resolver. Aunque supongo que esto mismo pasaba con otras herramientas, como el correo electrónico. Si hoy en día ya es habitual que la gente revise su mail casi diariamente (y han tenido que pasar años de presencia de internet en nuestras vidas) quizás dentro de unos años (3, 5, no se ...) quizás el networking sea algo mas familiar para el usuario medio (como lo son hoy en dia las agendas telefónicas). Sin duda, el networking se ha adelantado a su tiempo ...
» Leer más, comentarios, etc...
WP-Morph 1.1 se acerca
Mayo 10th, 2005 - [Enlace local]
Hace un tiempo desarrollé WP-Morph. Hace poco hice una búsqueda por Internet y encontré que había gente que incluso lo usaba con éxito. Así que me he propuesto sacar una nueva versión que corrija uno de los tres puntos débiles que tenía la implementación, que ya encontramos en otras noticias (aquí y aquí). El objetivo de esta versión 1.1 es solucionar una de las tres maneras de crackear el plugin. A saber: que no se puedan usar valores precalculados del formulario (lo que estaba marcado con el punto (2) aquí). Pronto os mostraré el código y cómo lo voy a hacer.
» Leer más, comentarios, etc...
PHP Senior
Smarty: Formato numérico y formato de fecha
Mayo 9th, 2005 - [Enlace local]
Hace poco terminé con lo fundamental de la reingeniería del portal para el cual trabajo, lo que me llevó más de lo esperado (lo que no es raro tampoco, en mi experiencia ;-). Por suerte, pude decir que toda la lógica y la presentación, en esencia, estaba concluida.
Nota: La idea de la "capa de presentación" es, a grades rasgos, que la "lógica" procese, y la "presentación" muestre, o le de formato, a la información que recibe de la lógica.
Separar las "responsabilidades" en capas; que una capa no haga el trabajo de la otra, es fundamental.
Terminé primero, según lo dicta las leyes del buen programador sobreviviente, con todas las taréas que ofrecían el mayor valor agregado desde el punto de vista de los usuarios y los clientes del sitio (que no son lo mismo), y dejé para lo último las tareas menores (títulos, fechas, redondeos, formatos, etc).
Generalmente mi suerte no me ayuda en estos casos, y lo que pensé que era solo 30 minutos, se transformó en tarea de un par de horas.
Y como resumen, quiero dejar para la posteridad, los resultados:
- Tags del Template: En Smarty se usan los {} para encerrar el código referente al template y separarlo del código puro html. Hace tiempo que modifico la configuración para que use la combinación de tag de html (Escaping Smarty Parsing). El resultado es que puedes levantar el código del template, que generalmente tiene de extensión ".tpl.html", en cualquier editor html y no verás los tag's del template. Esto es muy útil para cuando quieres delegar este tipo de trabajos a alguien que se dedique al diseño gráfico, etc.
- Formato de Fecha: Si quieres darle formato a la fecha, deberás hacer lo siguiente:
{$fecha | date_format:"%d/%m/%Y"}
Recibe: "2005-04-26" Devuelve: "26/04/2005"{$fecha | date_format:"%A %d/%m/%Y - %H:%M hs."
| capitalize}
Recibe: "2005-05-04 16:00:00-03" Devuelve: "Miércoles 04/05/2005 - 16:00 Hs."
Formato numérico: Esto fue más dificil, pues la documentación tanto de Smarty como de PHP es muy escueta. Lo natural es que los números se muestren solo con el separador "." en los decimales. El tema se complica cuando quieres que el separador de decimales sea una ",", y los miles un ".". La solución (que me llevó una hora, y espero ahorrarles ese tiempo):{$importe|number_format:2:',':'.'}
Recibe: "1808029.63"
Devuelve: "1.808.029,63"
Referencias:
- Smarty:
date_format - PHP:
number_format
» Leer más, comentarios, etc...
PHP Senior
Smarty: Formato numérico y formato de fecha
Mayo 9th, 2005 - [Enlace local]
En mi trabajo uso constantemente PHP, y para separar la "capa de presentación" de la "lógica del negocio", uso Smarty, el template por naturaleza para PHP (de la misma forma, el framework Pear) ;-)
Hace poco terminé con lo fundamental de la reingeniería del portal para el cual trabajo, lo que me llevó más de lo esperado (lo que no es raro tampoco, en mi experiencia ;-). Por suerte, pude decir que toda la lógica y la presentación, en esencia, estaba concluida.
Nota: La idea de la "capa de presentación" es, a grandes rasgos, que la "lógica" procese, y la "presentación" muestre, o le de formato, a la información que recibe de la lógica.
Separar las "responsabilidades" en capas; que una capa no haga el trabajo de la otra, es fundamental.
Terminé primero, según lo dicta las leyes del buen programador sobreviviente, con todas las tareas que ofrecían el mayor valor agregado desde el punto de vista de los usuarios y los clientes del sitio (que no son lo mismo), y dejé para lo último las tareas menores (títulos, fechas, redondeos, formatos, etc).
Generalmente mi suerte no me ayuda en estos casos, y lo que pensé que era solo 30 minutos, se transformó en tarea de un par de horas.
Y como resumen, quiero dejar para la posteridad, los resultados:
- Tags del Template: En Smarty se usan los {} para encerrar el código referente al template y separarlo del código puro html. Hace tiempo que modifico la configuración para que use la combinación de tag de html (Escaping Smarty Parsing). El resultado es que puedes levantar el código del template, que generalmente tiene de extensión ".tpl.html", en cualquier editor html y no verás los tag's del template. Esto es muy útil para cuando quieres delegar este tipo de trabajos a alguien que se dedique al diseño gráfico, etc.
- Formato de Fecha: Si quieres darle formato a la fecha, deberás hacer lo siguiente:
{$fecha | date_format:"%d/%m/%Y"}
Recibe: "2005-04-26" Devuelve: "26/04/2005"{$fecha | date_format:"%A %d/%m/%Y - %H:%M hs."
| capitalize}
Recibe: "2005-05-04 16:00:00-03" Devuelve: "Miércoles 04/05/2005 - 16:00 Hs."
Formato numérico: Esto fue más difícil, pues la documentación tanto de Smarty como de PHP es muy escueta. Lo natural es que los números se muestren solo con el separador "." en los decimales. El tema se complica cuando quieres que el separador de decimales sea una ",", y los miles un ".". La solución (que me llevó una hora, y espero ahorrarles ese tiempo):{$importe|number_format:2:',':'.'}
Recibe: "1808029.63"
Devuelve: "1.808.029,63"
Referencias:
- Smarty:
date_format - PHP:
number_format
» Leer más, comentarios, etc...
PHP Senior
Smarty: Formato numérico y formato de fecha
Mayo 9th, 2005 - [Enlace local]
En mi trabajo uso constantemente PHP, y para separar la "capa de presentación" de la "lógica del negocio", uso Smarty, el template por naturaleza para PHP (de la misma forma, el framework Pear) ;-)
Hace poco terminé con lo fundamental de la reingeniería del portal para el cual trabajo, lo que me llevó más de lo esperado (lo que no es raro tampoco, en mi experiencia ;-). Por suerte, pude decir que toda la lógica y la presentación, en esencia, estaba concluida.
Nota: La idea de la "capa de presentación" es, a grandes rasgos, que la "lógica" procese, y la "presentación" muestre, o le de formato, a la información que recibe de la lógica.
Separar las "responsabilidades" en capas; que una capa no haga el trabajo de la otra, es fundamental.
Terminé primero, según lo dicta las leyes del buen programador sobreviviente, con todas las tareas que ofrecían el mayor valor agregado desde el punto de vista de los usuarios y los clientes del sitio (que no son lo mismo), y dejé para lo último las tareas menores (títulos, fechas, redondeos, formatos, etc).
Generalmente mi suerte no me ayuda en estos casos, y lo que pensé que era solo 30 minutos, se transformó en tarea de un par de horas.
Y como resumen, quiero dejar para la posteridad, los resultados:
- Tags del Template: En Smarty se usan los {} para encerrar el código referente al template y separarlo del código puro html. Hace tiempo que modifico la configuración para que use la combinación de tag de html (Escaping Smarty Parsing). El resultado es que puedes levantar el código del template, que generalmente tiene de extensión ".tpl.html", en cualquier editor html y no verás los tag's del template. Esto es muy útil para cuando quieres delegar este tipo de trabajos a alguien que se dedique al diseño gráfico, etc.
- Formato de Fecha: Si quieres darle formato a la fecha, deberás hacer lo siguiente:
{$fecha | date_format:"%d/%m/%Y"}
Recibe: "2005-04-26" Devuelve: "26/04/2005"{$fecha | date_format:"%A %d/%m/%Y - %H:%M hs."
| capitalize}
Recibe: "2005-05-04 16:00:00-03" Devuelve: "Miércoles 04/05/2005 - 16:00 Hs."
Formato numérico: Esto fue más difícil, pues la documentación tanto de Smarty como de PHP es muy escueta. Lo natural es que los números se muestren solo con el separador "." en los decimales. El tema se complica cuando quieres que el separador de decimales sea una ",", y los miles un ".". La solución (que me llevó una hora, y espero ahorrarles ese tiempo):{$importe|number_format:2:',':'.'}
Recibe: "1808029.63"
Devuelve: "1.808.029,63"
Referencias:
- Smarty:
date_format - PHP:
number_format
» Leer más, comentarios, etc...
Pointer to (void)
Ubuntu!!
Mayo 9th, 2005 - [Enlace local]

Hoy he recibido por fín los CDs de Ubuntu que pedí. Ahora mismo estoy escribiendo desde la versión 'live' y la verdad, promete. Todo ha funcionado a la primera (incluida la memory stick), no lo esperaba. GNOME 2.10 es realmente cómodo de utilizar.
Animaos y pedir un pack, que son gratuitos ;)
(por cierto, el blog ya valida en XHTML 1.0)
» Leer más, comentarios, etc...
Pointer to (void)
Ubuntu!!
Mayo 9th, 2005 - [Enlace local]

Hoy he recibido por fín los CDs de Ubuntu que pedí. Ahora mismo estoy escribiendo desde la versión 'live' y la verdad, promete. Todo ha funcionado a la primera (incluida la memory stick), no lo esperaba. GNOME 2.10 es realmente cómodo de utilizar.
Animaos y pedir un pack, que son gratuitos ;)
(por cierto, el blog ya valida en XHTML 1.0)
» Leer más, comentarios, etc...
certificándome
Pausa y vuelta
Mayo 9th, 2005 - [Enlace local]
Aprovechando que el jueves era festivo y que el viernes hacía puente, decidí tomarme un pequenyo descanso. Nada de Java hasta esta noche. Por cierto, el martes por la noche me quedé destripando los genéricos con Jad. Muy educativo, si senyor!
Debo agradecer también al mal tiempo el haber tenido ganas de quedarme en casa y jugar algunas partidas contra gnuGo. El Go es un juego que tenía en mi lista de cosas que quería aprender y ahora ya estoy en ello... y lo que me queda! Tirando por los suelos todo sentido de la estética y para no acabar quemándome lo ojos aprendiendo enfrente del ordenador, me monté un chapuza-go con chapas de cervezas. Sí, muy poco estético, pero las chapas hacen (por ahora) su función perfectamente.
» Leer más, comentarios, etc...
Aportes a la comunidad de Mono
Mayo 5th, 2005 - [Enlace local]
Estoy muy contento por que e avanzo poco en el uso de la plataforma de Mono, adicional a esto e hecho mis primeros aportes como son:
MonoUML: Hosting y I18N
Mono Colombia: Hosting
Mono Project: Aportes al Wiki a nivel de documentación.
Simios: Servidor xsp para pruebas.
Las cosas que espero poder hacer ahora son:
ToDo:
- Aportes al UMLCanvas# de MonoUML.
- Vincularme a la construcción de Simios.*
- Continuar mis aportes de mono-project.com
» Leer más, comentarios, etc...
¿Qué hacer con dinero?
Mayo 5th, 2005 - [Enlace local]
Ayer participé en una reunión del equipo de desarrollo de LinEx con Mark Shuttleworth (el millonario sudafricano, turista espacial, mentor de Ubuntu, etc).
Mi rol en la reunión fue el de siempre: mostrar Squeak y hablar de su filosofía y, como siempre también, no pude dejar de sentir un poco de nostalgia sobre lo que pudo ser del proyecto Smalltalk si Apple primero, luego Microsoft y un poco más tarde GNOME y KDE hubiesen entendido realmente el verdadero porque de las interfaces gráficas y no hubiesen copiado sólo la piel.
Estuve casi toda la tarde preguntándome (¿soñando?) que haría yo si tuviese dinero disponible para ser de mentor de algún proyecto y concluí con seguridad (con esa seguridad que me da el hecho de NO tener el dinero) que no lo invertiría en un proyecto como Ubuntu. ¿Porqué? Por que, me parece, necesitamos más innovación y no más implementaciones de ideas de los 60s o en el mejor de los casos de los 70s.
» Leer más, comentarios, etc...
A falta de pan…
Mayo 5th, 2005 - [Enlace local]
Pueden ver algunas fotitos de la charla.
» Leer más, comentarios, etc...
MacOSX Tiger + Java Tiger + Eclipse 3.1M6 = mmmm ricooo!
Mayo 4th, 2005 - [Enlace local]
Pues nada que esta misma mañana me he instalado MacOS X Tiger y a primera
vista no parece que haya cambiado nada… pero wow! sí que ha cambiado.
Tiene cosas que hacen que a uno se le caiga la baba: el “spotlight” me ha
impresionado gratamente. Se trata de un icono de una lupa que si haces click
se expande con un cuadro de texto. Introduces un texto que quieras y en cuestión
de décimas de segundo te busca esa cadena de texto en el nombre y contenido
de todos los ficheros de tu disco duro (bueno, sólo los que conoce bien… xml, pdf, html, etc.).
Por ejemplo busco “Class.forName” y
me aparecen varios pdfs y varias páginas html. Hago click en el primer pdf
y el programa visor de pdfs me muestra en una lista las páginas en las que aparece
y me sobresalta el texto en cada una de ellas. IMPRESIONANTE!! Tiene otras
cosas muy chulas y útiles como el Automator, el Dashboard y Safari RSS… pero
no me voy a enrollar mucho, para eso ya estan los de apple y su marketing.
La excusa para instalar MacOS X Tiger no era la de todas estas “pijadillas”
bastante útiles, sino la necesidad de tener por fin Java 1.5. Así que me he instalado
el JDK y a funcionar! por fin he probado los generics, el nuevo bucle for, etc.
Sin embargo, faltaba algo: mi entorno de desarrollo favorito para programar en Java 1.5,
así que me he bajado la última milestone de Eclipse 3.1 y voilá!! nuevo entorno de desarrollo,
sistema operativo y compilador-máquina virtual, todo de vez!!
Qué feliz!!