Thefull
GNU/Linux & Compiz
Agosto 31st, 2007 - [Enlace local]
Recientemente me hice con una maquina HP Pavilion AMD64x2, una verdadera maravilla de máquina. Pero para sacarle el jugo ,...
» Leer más, comentarios, etc...
MadeInFlex
Concurso de FillColors
Agosto 31st, 2007 - [Enlace local]
Estas cansado de ver todas las aplicaciones hechas con Flex iguales? Si es asÃ, te invitamos a participar en el proyecto Fill Colors. La idea del proyecto es demostrar que una aplicación hecha en Flex puede ser original e interesante en el aspecto visual.
(more...)
» Leer más, comentarios, etc...
soft·in·spain
Compartiendo conocimientos
Agosto 31st, 2007 - [Enlace local]
Ayer, aprovechando los últimos dÃas de vacaciones, visité a mis amigos de Energy Sistem para los que hace unos años inicié el desarrollo de su sistema informático, que luego Jose MarÃa y Marcos continuaron.
Aprovechamos la visita para explicarles algunas cosas para mejorar el rendimiento del SQLServer, de la propia aplicación, algunos trucos que he utilizado en otros desarrollos y que me han ido bien y les podrán servir. También hablamos de implementar SCRUM, que yo lo voy a intentar en Arcadina y creo que les irÃa muy bien por su forma de trabajar.
Ellos, a su vez, me comentaron como están iniciando la expansión por otros paÃses europeos, que pegas están encontrando y como las van resolviendo. Hablamos del sistema de objetivos que quieren montar en la empresa, de lo complicado que es diseñar un procedimiento y que siempre se realice de la misma forma, que las personas no somos máquinas y no todos los dÃas estamos igual de centrados.
Me mostraron el sistema que están empezando a utilizar para controlar todas las tareas y actividades de toda la empresa, que curiosamente es bastante similar al que hemos desarrollado internamente en Arcadina, aunque el suyo es un poco más complejo porque ellos también tienen necesidades mayores.
También hablamos de como según va creciendo la empresa, van apareciendo nuevas necesidades, nuevas funciones y tareas que no tenÃan importancia o ni se habÃan planteado.
Un intercambio de experiencias y conocimientos, como dijo Alfonso: “Estamos acortando caminos, al intercambiar nuestras experiencias, cada uno es como si hubiera hecho dos caminos a la vez“.
» Leer más, comentarios, etc...
PHPBSD.net
Disponible la versión 5.2.4 del PHP
Agosto 31st, 2007 - [Enlace local]
Como viene siendo habitual después de tres meses desde la última actualización ya tenemos disponible una nueva versión del PHP, la 5.2.4. Es básicamente una versión de corrección de bugs sin muchas novedades adicionales con el objetivo de ofrecer mucha más estabilidad a la rama 5.2.X.
Se corrigen más de 120 bugs sobre temas variados y algunos pocos de seguridad pero de baja prioridad. Podéis consultar un listado completo de los cambios en el changelog oficial.
Etiquetas en Technorati: noticias, php, seguridad, software, updates, webmasternoticias, php, seguridad, software, updates, webmaster
» Leer más, comentarios, etc...
soft·in·spain
El queso
Agosto 31st, 2007 - [Enlace local]
Estas vacaciones he aprovechado para leer, uno de los libros que han caÃdo ha sido “¿Quién se ha llevado mi queso?â€?. He de reconocer que no ha sido una sorpresa para mÃ, porque ya llevo años en continuo cambio. Comprendo perfectamente a las personas que el cambio no les gusta, produce incertidumbre y eso lleva al miedo, en diversos grados.
Siempre he creÃdo firmemente que en esta vida nada es para siempre, todo es cambio, algunos se producen en minutos u horas, otros tardan semanas o meses y los hay que años, pero toda situación tiende a cambiar.
Tengo un amigo que lleva en una empresa muchos años, ahora la situación laboral no es de su agrado, pero no se atreve a tomar el paso de ir a buscar alternativas. Está casado con dos hijas, está fijo desde hace tiempo y piensa que si se va de la empresa pierde toda la antigüedad acumulada. Yo le digo que busque, que emplee el tiempo que quiera en encontrar una buena alternativa, pero que no se quede parado. Es un tÃo muy válido en lo suyo (mantenimiento industrial), de los mejores que conozco, capaz de arreglar una máquina con pocos recursos, es conocido en varias empresas, pero no se atreve a dar el paso, por la incertidumbre, por la comodidad, por un poco de miedo, por todo un poco.
En Arcadina ese punto, por lo menos, lo tenemos claro, en un mundo tan dinámico y tecnológico en el que estamos, donde cada 18 meses hay nuevos paradigmas, nuevos métodos, nuevas posibilidades, hemos de movernos rápido y hacia donde esté el queso.
» Leer más, comentarios, etc...
Pensamientos ágiles
Sobre la arquitectura de eBay
Agosto 31st, 2007 - [Enlace local]
En InfoQ (me encanta este sitio) publicaron hace unos dÃas una entrevista a Dan Pritchett sobre la arquitectura de eBay. Se trata de una entrevista muy intersante, mucho más desde que el año pasado se desvelera que eBay evita las transacciones en dos fases siempre que sea posible tratando de mantener el acceso a datos muy simple y rápido aún a riesgo de perder datos (no importantes). Martin Fowler también escribió en su momento sobre esto.
Recojo aquà las notas que me parecen más importantes sobre la entrevista:
- No todos los datos tienen la misma importancia. Llegado al punto en el que escalar se hace extraordinariamente caro y complejo hay que buscar soluciones que se apartan de los patrones tradicionales. A veces estas soluciones implica asumir riesgos de perder datos y evitar las transacciones distribuidas. No pasa nada mientras estos datos no sean crÃticos para el negocio.
- Uno puede sentirse incómodo con el punto anterior, pero a medida que investigas en como lo hace otra gente que ha afrontado el mismo problema descubres que todo el mundo llega por diferentes caminos a la misma conclusión.
- Uno llega a plantearse la necesidad de una base de datos en algunos casos. Hoy por hoy se utilizan para todo, pero ¿por qué no usar un sistema de ficheros? Hay muchos datos no crÃticos que pueden almacenarse en otros lugares que permitan un acceso más simple y rápido.
- La escalabilidad no tan sencilla como aparece en los libros: horizontal y vertical. Hay otros factores. Hay que ser capaz de escalar procesos; de sobrevivir al aumento de branches, de desarrolladores o de builds. Hay que ser capaz de escalar los data centers; de conseguir maximizar el número de transacciones por watio consumido.
- Los patrones y principios son necesarios, pero a veces hay que saltárselos. Los patrones que funcionan para sitios normales no tienen porque funcionar necesariamente para sitios que reciben billones de visitas.
- 30 arquitectos para 1500 desarrolladores (in-house). No todos los problemas reciben la atención de un arquitecto. Se delega mucha responsabilidad sobre los desarrolladores. Sólo se asignan arquitectos a tareas que lo requieran.
- Para gestionar todo el desarrollo existen catálogos bien definidos de principios y patrones a aplicar, junto con un repositorio de reglas que se deben seguir para cada servicio. Los desarrolladores deben ser capaces de aplicar el catálogo de patrones correctamente y de solucionar problemas complejos utilizándolos. En caso de tener que romper algún patrón o regla, un comité decide si es apropiado y da el visto bueno.
- Arquitectos que se manchan las manos. Arquitectos que escriben código y que contribuyen al esfuerzo del grupo. Arquitectos que se ganan la credibilidad del resto de desarrolladores a base de código y hechos; no sólo palabras.
- Involucrar a todo el mundo en las reuniones técnicas. Desarrolladores, arquitectos, operaciones, analistas de negocio. Todo el mundo aporta su punto de vista, y todos estos puntos de vista son necesarios a la hora de afrontar un problema de manera efectiva.
Para mi, la mejor entrevista sobre arquitectura que he leido en lo que va de año.
» Leer más, comentarios, etc...
design-nation.blog/es
Ponga una lista en su vida
Agosto 31st, 2007 - [Enlace local]
O cómo una aplicación extremadamente simple, puede volverse indispensable.
Lo que nos puede enseñar una valiosa lección, no por muchas features, no por muchos controles y menús, aseguramos tener una kill application.
» Leer más, comentarios, etc...
design-nation.blog/es
Las ofertas de trabajo
Agosto 31st, 2007 - [Enlace local]
Hace poco un compañero de trabajo estaba mirando las ofertas de cierta web que todos conocemos. Y mientras leÃa las mismas, me iba comentando.
Recuerdo especialmente la oferta de trabajo para contratar a un director de arte, que debÃa tener mil y un conocimientos, mucha experiencia , capacidad para liderar un equipo, ser menor de 25 años y por supuesto, contentarse con los 18000 euros que ofrecÃan.
Durante un rato pensamos que era un broma. Pero no, las cosas son asÃ.
Saco esto a colación de un post del dÃa 27 de Guy Kawasaki, titulado "How to Not Hire Someone Via Craigslist" que podrÃa ser traducido como "How to Not Hire Someone Via Infojobs" o similares.
Buena es la lectura del artÃculo, asà como la referencia al mismo hecha tres dÃas después en signal vs noise.
Lectura de viernes ( porque recordemos, hoy es viernes ).
» Leer más, comentarios, etc...
MonoCaffe
Reportes en XLS desde Bugzilla
Agosto 30th, 2007 - [Enlace local]
Bugzilla permite crear reportes y generar ficheros XML o HTML a partir de búsquedas pero esta funcionalidad puede ser extendida para que no perdamos el tiempo convirtiendo el XML a un fichero legible por algún software de hojas de cálculo. Al principio intente convertir el XML a algo como tablas XHTML pero me di cuenta de lo complicado que puede ser para un usuario.
Finalmente me decidà por utilizar el módulo de Perl Spreadsheet::WriteExcel el cual permite generar ficheros XLS. Claro que pensé en utilizar el módulo OpenOffice::OODoc con el cual habrÃa podido generar ficheros ODS pero habrÃa tenido que instalar el plug-in de Sun en todos los PC's de la empresa. En fin, el fichero XLS generado es bastante estándar por lo cual no habrá problemas.
Lo primero es añadir el botón que nos permitirá acceder al CGI que generará el XLS. Esto lo hacemos modificando el fichero:
/var/lib/bugzilla/template/en/default/list/list.html.tmpl
Añadimos lo siguiente: [%#Create a button to Export the result to an XLS file#%]
<form method="post" action="export_excel.cgi">
[% FOREACH id = buglist %]
<input type="hidden" name="id" value="[% id FILTER html %]">
[% END %]
<input type="hidden" name="format" value="xls">
<input type="submit" value="Export XLS">
</form>
Bugzilla utiliza estas plantillas para generar sus ficheros HTML que son mostrados. Estas plantillas se encuentran en ese directorio y son procesadas por el Template Toolkit (Template::Toolkit).
Ahora debemos instalar en nuestro servidor el módulo Spreadsheet::WriteExcel. Este se puede descargar aquÃ. O en un Ubuntu Server podemos obtenerlo instalando el paquete libspreadsheet-writeexcel-perl.
Lo siguiente es crear el fichero export_xls.cgi en el directorio del Bugzilla en:
/usr/lib/cgi-bin/bugzilla/
#!/usr/bin/perl -wT
use lib "/usr/share/bugzilla";
use Bugzilla;
use Bugzilla::Bug;
use Spreadsheet::WriteExcel;
require "globals.pl";
my $cgi = Bugzilla->cgi;
if ($cgi->param('GoAheadAndLogIn')) {
Bugzilla->login(LOGIN_REQUIRED);
} else {
Bugzilla->login();
}
my @bugs = ();
foreach my $id ($cgi->param('id')) {
my $bug = new Bugzilla::Bug($id, Bugzilla->user->id);
push @bugs, $bug;
}
my @bug_list;
if ($cgi->cookie("BUGLIST")) {
@bug_list = split(/:/, $cgi->cookie("BUGLIST"));
}
print $cgi->header;
my $workbook = Spreadsheet::WriteExcel->new("/var/www/bugzilla/bugzilla-report.xls");
my $worksheet = $workbook->add_worksheet();
my $format = $workbook->add_format();
$worksheet->set_column(0, 0, 5);
$worksheet->set_column(1, 3, 20);
$worksheet->set_column(4, 5, 50);
$worksheet->set_column(7, 7, 20);
$format->set_font('Verdana');
$format->set_align('top');
$row = $col = 0;
foreach my $bug (@bugs){
$col = 0;
$worksheet->write($row, $col, $bug->bug_id, $format);
$col += 1;
$worksheet->write($row, $col, $bug->short_desc, $format);
$col += 1;
$worksheet->write($row, $col, $bug->bug_status, $format);
$col += 1;
$worksheet->write($row, $col, $bug->resolution, $format);
$col += 1;
$worksheet->write($row, $col, $bug->reporter->identity, $format);
$col += 1;
$worksheet->write($row, $col, $bug->assigned_to->identity, $format);
$col += 1;
$worksheet->write($row, $col, $bug->keywords, $format);
$col += 1;
$x = $col;
$dbh = Bugzilla->dbh;
$sth = $dbh->prepare("SELECT * FROM longdescs WHERE bug_id = ?")
or die("Couldn't Prepare");
$sth->execute($bug->bug_id);
while( $resptr = $sth->fetchrow_hashref() ){
$col = $x;
$worksheet->write($row, $col, $resptr->{"bug_when"}, $format);
$col += 1;
$comment = $resptr->{"thetext"};
$comment =~ s/\s+$//;
$worksheet->write($row, $col, $comment, $format);
$row += 1;
}
}
Este CGI crea el fichero XLS en la ubicación que le hemos dado. Es importante recalcar que el usuario bajo el cual ejecuta Apache tenga permiso de escritura en ese directorio.
No creo que haya que explicar mucho del script pues es bastante explicito. Las lineas:
$worksheet->set_column(0, 0, 5);
Fijan el ancho de las columnas. Por lo visto, Excel hace esto automaticamente pero sólo en el momento de ejecución, por lo cual no se puede añadir esto como atributo.
El fichero XLS tiene la siguiente estructura:
ID | SUMMARY | STATUS | RESOLUTION | REPORTER | ASSIGNEE | COMMENTS
Para cada comentario se añade una nueva fila, lo cual permite una mejor presentación. Se pueden añadir o quitar columnas modificando el script.
» Leer más, comentarios, etc...
Pensamientos ágiles
Operaciones aritméticas y strictfp
Agosto 30th, 2007 - [Enlace local]
Una de las palabras reservadas en Java que seguramente sólo verás cuando te estás leyendo un libro básico sobre Java es strictfp. La lees, y te olvidas. Nadie te va a pedir que la utilices mientras estudias y probablemente nunca te la encuentres en el trabajo.
Sin embargo hay ocasiones en las que te encuentras que dos operaciones aritméticas no dan el mismo resultado de repente en JRockit sobre Sun Solaris que en la VM de Sun sobre Windows. mmm ¿qué diablos pasa?
Básicamente, hasta Java 1.2 las operaciones en coma flotante eran predecibles. Todas se realizaban siguiendo el estándar definido por el IEEE y los resultados eran los mismos bajo cualquier implementación de Java, bajo cualquier plataforma, y compatibles con los resultados de cualquier otro lenguaje que siguiese el estándar definido por el IEEE.
La contrapartida a esto era que las operaciones de coma flotante eran muy lentas, ya que se deben forzar una serie de restricciones por ejemplo en cuanto a overflows, y Java no era competitivo. Asà que se decidió dejar de forzar la compatibilidad con IEEE para conseguir un aumento de rendimiento, dejando como opcional la compatibilidad. Para forzar que las operaciones sean compatibles con el estándar IEEE se tiene que utilizar la palabra reservada strictfp. En este enlace lo explican muy bien.
» Leer más, comentarios, etc...
Pensamientos ágiles
Sobre la caida de Skype
Agosto 30th, 2007 - [Enlace local]
Según me han comentado en el trabajo y he podido leer después, parece que una de las cosas que me he perdido mientras estaba de vacaciones ha sido la caida de varios dÃas de Skype (huy que pena). En varios sitios web se hacen eco de las causas y lo complicado que es restablecer el servicio de manera rápida en una red P2P como Skype:
How Skype network handles scalability
Skype Failed the Boot Scalability Test: Is P2P fundamentally flawed?
What happened on August 16 (explicación oficial)
The Microsoft connection clarified (clarificación de la explicación oficial)
Skype Outage Highlights How Skype Is A Bit More Centralized Than Expected
Como plantean los dos primeros enlaces las arquitecturas descentralizadas plantean problemas que no han sido resueltos todavÃa.
The overview of this is as follows:
Skype introduced a flaw into the network that dealt with "routing" and "fucked" the "decentralized data store aka DHT� this in turn ran clients on a RANDOM search of Supernodes which at this point were well booted off of the network.
In the End:
It is a huge cycle, no matter how many bugs they "fix" in the "central servers" it will take many days for N nodes to become Supernodes so they can route X data from peer A to peer B. This is NOT minor, a fix to the centralized server code base to relay data to N Supernodes there is lack there of, resulting of a very segregate network. Right now there are approximatly 10,000 sub Skype networks instead of 1 Single "in sync" network. When this "data store"(see DHT) is in sync globally then the Skype network will be again STABLE.
Problemas como el del 16 de Agosto sacan a relucir los problemas de este tipo de arquitecturas descentralizadas y la dependencia de miles de nodos que no controlas, pero sin duda también ayudan a mejorarlas ya que seguramente los desarrolladores de Skype están ya trabajando para que no suceda de nuevo algo parecido, ya que una nueva parada podrÃa afectar seriamente a su credibilidad.
» Leer más, comentarios, etc...
Buayacorp
Cookies
Agosto 30th, 2007 - [Enlace local]
Una cookie es un fragmento de información que se almacena en el disco duro del visitante de una página web a través de su navegador, a petición del servidor de la página. Esta información puede ser luego recuperada por el servidor en posteriores visitas.
No suelo darle importancia a las novedades de Internet Explorer, pero hoy me pareció interesante algunos consejos que dan desde el blog de éste navegador para reducir el tráfico HTTP que se produce entre un servidor y un cliente.
Antes de continuar, estas son las nuevas limitaciones que impone Internet Explorer para el manejo de Cookies:
- Se incrementó de 20 a 50 el número de cookies que se puede crear por dominio.
document.cookieretornará una cadena vacÃa si el tamaño de las cookies es mayor a 4096 bytes.- El navegador ignorará las cabeceras
Set-Cookiesi éstas exceden de 5118 bytes.
Volviendo al tema anterior, éstos son los consejos que sugieren para reducir el tráfico HTTP:
- Reducir el tamaño de las cookies: Recomiendan utilizar nombres y si es posible, valores más cortos. Ejm. en lugar de una cookie denominada
username, usar sólou. - Servir el contenido estático desde otro (sub)dominio: Una vez que el servidor envÃa las cookies usando la cabecera
Set-Cookie, un navegador convencional enviará de vuelta estos valores en cada petición que se haga al servidor. Como los valores de las cookies son irrelevantes para los archivos estáticos, entonces se genera tráfico innecesario. - Usar el atributo
pathsólo cuando sea necesario: El atributo path permite manejar cookies para rutas especÃficas de un dominio, por ejemplo si se envÃan cookies para la ruta/aplicacion, entonces en el servidor se podrá acceder a estos valores sólo desde esa ruta *. Usar este atributo en general va a depender de los requerimientos de la aplicación, pero si quieres ahorrar unos cuantos bytes entonces haz que la ruta sea para todo el dominio.
Las resultados de estos consejos seguramente van a ser más evidentes en sitios con mucho tráfico que en sitios como éste, donde el número de lectores se puede contar con los dedos de la mano.
*: En realidad se puede acceder a todos los datos de la petición y por consiguiente a todas las cookies, pero de manera convencional algunos lenguajes abstraen esta funcionalidad para dar acceso sólo a las cookies definidas para una ruta.
» Leer más, comentarios, etc...
MadeInFlex
Israel Gaytan’s Blog
Agosto 29th, 2007 - [Enlace local]
Pues eso, que me acabo de enterar que Isra tiene blog nuevo...y claro, no podÃamos dejar la oportunidad de recomendarlo desde aquÃ
. Asà que, ya sabéis, que mejor que añadirlo a nuestro sindicador favorito de RSS para tener siempre sus últimas entradas a mano ¿no?. Enhorabuena Isra y..¡Suerte!. ![]()
» Leer más, comentarios, etc...
Pensamientos ágiles
Entrevista a Joel Sposky
Agosto 29th, 2007 - [Enlace local]
Tras las vacaciones me he puesto a repasar los blogs y publicaciones que sigo. Una de las cosas más interesantes que me he encontrado ha sido esta entrevista a Joel Sposky publicada en el número de Julio/Agosto de la revista ACM Queue.
La entrevista toca múltiples temas, aunque el hilo central siempre es el famoso blogger. Hablan sobre su historia, sobre los diferentes trabajos por los que ha pasado y lo que opina de ellos, sobre la experiencia de crear su empresa y como ha ido evolucionado, y sobre otras cosas.
Me ha parecido interesante.
» Leer más, comentarios, etc...
Pensamientos ágiles
De vuelta de vacaciones
Agosto 29th, 2007 - [Enlace local]
Todo lo bueno se acaba.
Dos semanas de vacaciones que me han servido de desintoxicación ya que no me llevé el portátil conmigo. Hoy he vuelto al trabajo y comentado con los compañeros lo malo que ha sido el tiempo en Galicia. La verdad es que las vacaciones ha sido como estar por casa, porque la mayorÃa de los dÃas ha estado lloviendo, aunque bueno, al menos sà que tenÃamos unos tres graditos de más.
Entre las cosas que he hecho en vacaciones, pues sobre todo comer. Vengo con tres quilitos de más, que no está mal para un par de semanas. Un amigo mio ha subido un video sobre el Globo de San Roque, que se lanza todos los años en Betanzos, y que me perdà el año pasado pero este año no lo perdoné. Otra que no se perdona es la romerÃa de los Caneiros. Lo mejor de esto de la era digital es que puedes encontrar montones de videos de eventos de los que antes era imposible encontrar algo. Asà que aprovecho para difundir los eventos locales :-)
» Leer más, comentarios, etc...
Una sinfonÃa en C#
Introducción a las pruebas unitarias ó Unit Test en C#
Agosto 29th, 2007 - [Enlace local]
En esta ocasión vamos a introducirnos a un concepto que está en boca de todo desde hace un tiempo, las pruebas unitarios, que según algunos son la solución a todos los problemas del desarrollo de software y su complejidad inherente. Pues bien, esto no es tan asÃ, porque si bien las pruebas unitarias nos permiten asegurar que nuestros artefactos pasan las pruebas, ésta últimas deben
» Leer más, comentarios, etc...
Navegapolis
Los ocho estereotipos de programador
Agosto 29th, 2007 - [Enlace local]
Vaya usted a saber por qué, pero sí que es frecuente encontrar entre los programadores a personas polarizadas en uno de estos cuatro tipos:
- El pesimista: es el programador que siempre está advirtiendo de problemas y fallos. De caracter difícil.
- El cowboy: le gusta programar, y sobre todo hacerlo a su manera, y lo que a él le parece importante o necesario, lo haya pedido el cliente o no.
- El disciplinado: es el carácter preferido de los gestores. Hace lo que le dicen sin cuestionar.
- El rey de las reuniones: para el que todas las decisiones necesitan una buena reunión.
» Leer más, comentarios, etc...
Navegapolis
PPT’s y textos de las sesiones Agile 2007
Agosto 29th, 2007 - [Enlace local]
Más presentaciones de congresos: esta vez las de Agile 2007 que se celebró hace un par de semanas en Washington. No son los vídeos sino los "powerpointes" empleados en algunas de ellas, o los artículos de los autores. Hay un buen montón:
» Leer más, comentarios, etc...
programania
Conventions en Spring MVC
Agosto 29th, 2007 - [Enlace local]
Este artÃculo lo tenÃa pensado hace tiempo, pero por falta de ello no me habÃa dedicado a él. HabÃa hecho mis pinitos con las Conventions hace tiempo con este artÃculo y este otro sobre JBullet pero no habÃa tenido tiempo para hablar de como Spring incorpora las Conventions.
Como en el artÃculo anterior esbozaré lo que me parece más importante en este post y os dejaré un link a la wiki pública en la que tendréis información de cómo hacerlo en detalle.
Lo más importante se encuentra en el archivo de configuración Web [nombre del servlet]-servlet.xml, dónde el nombre del servlet es es el nombre que le hemos dado al servlet en el archivo Web.xml. El archivo tiene este aspecto:
<beans>
<bean id=”viewNameTranslator” class=”org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator”/>
<bean id=”viewResolver” class=”org.springframework.web.servlet.view.InternalResourceViewResolver”>
<property name=”prefix” value=”/jsp/”/>
<property name=”suffix” value=”.jsp”/>
</bean >
<bean id=”defaultHandlerMapping” class=”org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping”/>
<bean name=”/pruebaController.do” class=”org.raul.springmvc.web.PruebaController”/>
</beans>
Ya sé que el XML no queda muy bien en el editor, pero menos es nada, la novedad radica en que cuando se hace una transición desde un controller al String que devulve se le concatena por delante /jsp/ y por detrás del String .jsp de tal manera que si ha devuelto el String hello buscará el archivo hello.jsp en el directorio jsp dentro del directorio Web, asà no hay que poner a que JSP cada vez y eliminamos la navegación del fichero XML.
Por otro lado, en lo que a los Controllers se refiere sigue habiendo que declararlos en el contexto y en su atributo name especificamos con qué URL van a ser accedidos, pero es un mal menor.
Como lo prometido es deuda os dejo el link al artÃculo de la wiki:
http://www.programania.net/contextos/doku.php?id=conventions_en_spring_mvc
» Leer más, comentarios, etc...
carlosrovira.com
Cursos Flex en carlosrovira.com
Agosto 29th, 2007 - [Enlace local]
Estamos a punto de que empiece una nueva temporada y desde carlosrovira.com queremos empezarla ofertando toda una gama de Cursos Flex que comenzarÃan a lo largo del mes de Septiembre.
Después de la experiencia conseguida durante todo este año, mi empresa está en posición de ofertar cursos impartidos por expertos en la materia que trabajan, en el dÃa a dÃa, con la tecnologÃa, en aplicaciones crÃticas de alta escala y pueden garantizar una alta calidad en cada una de las sesiones impartidas.
En breve, haré publica una página web donde aparecerán la información detallada de los distintos cursos, asà como las ventajas adicionales que intentarán hacer de estos cursos los mejores del mercado en caracterÃsticas, precio y calidad (al menos lo intentaremos!!
).
Por el momento, todos los que estéis interesados o pensando en formaros en Adobe Flex, podeis contactar con la persona que llevará toda la gestión de esta linea de cursos: encar.ferreiro@carlosrovira.com.
» Leer más, comentarios, etc...
carlosrovira.com
Descuentos MAX Europe 2007
Agosto 29th, 2007 - [Enlace local]
Simplemente querÃa apuntaros hacia la noticia que publicamos en MIF acerca de los descuentos de 300 euros para el Adobe MAX Europe 2007 en Barcelona. Creo que es una estupenda ayuda para todo aquel que esté interesado en ir. Pero recordad que debe de realizarse el registro antes del 14 de Septiembre!!
.
» Leer más, comentarios, etc...
Syntax Error
PHP: GalerÃa de Fotos en un único script
Agosto 29th, 2007 - [Enlace local]
Descripción
Éste es un script destinado a generar una galerÃa de fotos con las opciones básicas en base a un árbol de directorios en el servidor. La idea es emplazar el script en la raÃz del árbol de directorios que contienen fotos y se generará una vista con thumbnails de las fotos y representación de los subdirectorios, ambos clicables, listo para navegar por el directorio y visualizar las fotos.
Precedente
Hace unos nueve meses presenté un artÃculo con la primera versión del script que realizamos Toni Soler y yo. Éste se basaba en funciones y la maquetación era por tablas.
Versión actual
Para la nueva versión del script se ha reescrito todo. Ahora se basa en un par de clases con lo que todo queda más organizado, y el código más inteligible. Se han eliminado las tablas en la maquetación, sustituyéndolas por divs y CSSs. El resultado final da un script más liviano, más rápido, y (por fin) con código CSS Válido.
Instalación / ejecución
- Descargar el archivo
- Quitarle la extensión “.txt”
- Colocarlo en la raÃz del directorio de fotos
- Acceder a él mediante un navegador
CaracterÃsticas
- Presentación thumbnail de las imágenes soportadas, recursivamente.
- El thumbnail se calcula al vuelo para minimizar el ancho de banda utilizado.
- Al pinchar en una imagen se muestra ésta en estilo ficha, en tamaño mayor.
- Ordenación alfabética de los elementos en la pantalla thumbnail.
- Código CSS válido.
- Enlaces de Siguiente, Anterior y Volver al Album desde la pantalla de Ficha.
CaracterÃsticas descontinuadas
- No se realiza caché de las imagenes (posiblemente en la siguiente versión).
- No se gerena un archivo comprimido ZIP (con más de 10 fotos normales de una cámara el script se desbordaba de memoria)
- No trata de generar un htaccess.
Posible en futuras versiones
- Aceptar un archivo XML en la raÃz con tÃtulos y descripciones
- Adaptación para plugin Wordpress
- Administración para realizar uploads
- Presentación (SlideShow)
ScreenShots
Descargar
Puedes descargar este script desde el siguiente enlace:
Página del Proyecto
Para más información consulte la página del proyecto: Galeria de fotos en un unico script.
» Leer más, comentarios, etc...
phpleo.Blog
Nueva chuleta para symfony: el modelo, parte 1
Agosto 29th, 2007 - [Enlace local]
Hace unos minutos Andréia Bohner, ha publicado una nueva chuleta la primera acerca del modelo, lo que será una serie de tres (aún en inglés). Fuente original: Symfony Cheat-Sheet - Modelo
» Leer más, comentarios, etc...
Php y otras yerbas, por Clbustos - Programación
¿La computación debe ser simple, adaptable o qué?
Agosto 29th, 2007 - [Enlace local]
Limpiando un poco el sitio, me encontré con esta vieja serie de respuestas y contrarespuestas entre Christian, Eduardo y el que les habla, sobre el diseño de interfaces en los programas (estamos hablando del 2005, señores!). Si bien lamentablemente ninguna de los post de la otra parte están, creo que sus argumentos se transparentan en las respuestas que di.
Si les interesa, pueden leer la secuencia de artÃculos detallada a continuación:
- La computación no debe ser humana: debe ser SIMPLE
- La computación no debe ser humana: debe ser SIMPLE II
- La computación debe ser adaptable o Eduardo, diste en el clavo!
» Leer más, comentarios, etc...
phpleo.Blog
Links 2007-08-28
Agosto 29th, 2007 - [Enlace local]
Hace unas semanas el maestro Javier Eguiluz comentaba sobre 5 herramientas PHP que deberÃas conocer, y hoy buscando en del.icio.us encuentro algunas datos interesantes que podemos usar y aplicar: Optimizando PHP Una nota de parte de aurea Blog que nos da unas pistas para mejorar nuestros scripts PHP. . Speed Up Sites with htaccess Caching Un artÃculo bastante interesante que [...]
