Fotógrafos cubanos (II)

En esta segunda entrega presentamos a Raúl Cañibao y al inolvidable Korda, con la fotografía más reproducida de todos los tiempos.

Raúl Cañibao

Che Guevara

La muerte de Java

No es un secreto para nadie que Java es un lenguaje de programación en franca decadencia. Aquellos fanáticos que aún se aferran a su defensa a ultranza sólo hacen tararear las mismas ventajas y novedades de hace diez años. Muchos lenguajes modernos le pasan factura con relativa facilidad y se actualizan, mejoran y expanden a un ritmo que el maduro Java no puede sostener.

Las últimas movidas de Sun no parecen ayudar. La lentitud extrema que lleva el proceso de apertura al software libre, impide que una comunidad tan activa ayude al desarrolle de su querido lenguaje. El mazazo de la compra de Sun por Oracle sólo empeora las cosas. Demandas a Google y a la comunidad del software libre sobre infracción de patentes relacionadas con Java; sólo confirman que la política de Oracle sobre los productos de Sun es "solo-para-mi".

Ya la cantada se abría producido en la comunidad de MySQL al ver como las principales figuras detrás del gestor de bases de datos, dejaban el barco y se enfrascaban en otros proyecto, incluído un fork de la versión de desarrollo de MySQL.
¿Cuál será el final de este pulso?

Por lo pronto se avisora que las comunidades de software libre y código abierto perderán algunos de sus activos más importantes: el gestor de bases de datos por excelencia MySQL, el lenguaje del lema «code once, runs anywhere», y toda la pléyade de tecnologías que se han construído a su alrededor.

Una noticia reciente que confirma lo anterior: Google no irá este año al JavaOne después de 5 años asistiendo desde Google nos dicen porqué: ""Desearíamos haber ido, pero la reciente demanda de Oracle contra Google y el software libre hace que sea imposible que podamos compartir nuestras reflexiones sobre el futuro de Java y el software libre en  general"'.

Por suerte siempre nos quedan otras tecnologías muy potentes que podemos llevar en nuestro catálogo; para bases de datos, Postgre; lenguajes de programación: Python, Ruby, C#, Go (algunos libres, otros ni en sueños)

Drupal: Node Import con soporte para Content Taxonomy

Los desarrolladores de sitios web basados en Drupal muchas veces se ven ante ante un escenario de importación de datos; a partir de datos antiguos de nuestros clientes, tenemos que armar la solución. En este empeño el uso de módulos que nos ayuden a importar el contenido es fundamental. Existen varias alternativas pero la más extendida, por muchas razones, es el uso del excelente módulo Node Import.
Este módulo, como todo en este mundo, no es perfecto. Y a veces necesitamos elementos durante la importación que no están implementados aún. Por suerte la comunidad de Drupal es grande y activa; y encuentra soluciones a todo. Uno de estos casos es mi necesidad de importar valores a campos tipo Content Taxonomy. Esta funcionalidad no se encuentra ouy-of-the-box en el módulo pero se puede parchear usando este submódulo. Esta solución la podemos hallar en uno de los hilos de discusión del tema.
Funciona a la perfección en la siguiente configuración:
  • Drupal 6.17
  • CCK 6.x-2.6
  • Content Taxonomy 6.x-1.0-rc2
  • Node Import 6.x-1.x-dev (2010-08-20)

Mostrar número de resultados en una vista de Drupal

En Drupal tenemos el excelente módulo Views, que extrae de la base de datos información para mostrarle al usuario; con un sin fin de opciones para su configuración. Sin embargo le falta enriquecer el resultado de si consulta con información relativa a la propia consulta. Por ejemplo, el caso que nos ocupa es cuando queremos mostrar el número de resultado de una vista en particular; si esta vista tiene paginador tendría que tener en cuenta los resultado de la página que se esté mostrando actualmente.
Para aquellos que necesiten esta información en la salida de su vista, aquí les dejo un snippet que puede colocarse en cualquier sección de la vista (con filtro PHP). Para más información pueden dirigirse aquí aunque el snippet que aquí les dejo está aquí.
Este código funciona a la perfección. Lo he probado en el pie de página de mis vistas en varios sitios web con la siguiente configuración:
  • Drupal 6.17
  • Views 2.10
El código en cuestión es el siguiente:


<?php
global $pager_page_array, $pager_total_items, $pager_total;
$my_view = views_get_current_view();
$items_per_page = $my_view->pager['items_per_page'];
if ($pager_total[0] == 1) {
echo t('Showing <b>!pager_total_items</b> results',
array('!pager_total_items' => $pager_total_items[0])
);
} else {
$start = 1 + ($pager_page_array[0] * $items_per_page);
$end = (1 + $pager_page_array[0]) * $items_per_page;
if ($end > $pager_total_items[0]) $end = $pager_total_items[0];
echo t('Showing !start-!end of <b>!pager_total_items</b> results',
array('!start' => $start, '!end' => $end, '!pager_total_items' => $pager_total_items[0])
);
}
?>