Mostrar un listado anidado de términos de taxonomía en Drupal
Buscando cómo mostrar un listado aninado de los términos (terms) de un vocabulario (una categoría de Drupal, o taxonomy), encontré este útil fragmento de código en Drupal.org. Para que funcione esto es necesario usar el módulo Taxonomy.
<?php // El ID del vocabulario de la taxonomia del que queremos crear la lista de terminos $vid = 10; $depth = 0; $num_at_depth = 0; $tree = taxonomy_get_tree($vid); print "<ul class=\"menu\">\n<li>"; foreach ($tree as $term) { $diffdepth=0; if ($term->depth > $depth) { print "\n<ul>\n<li>"; $depth = $term->depth; $num_at_depth = 0; } if ($term->depth < $depth) { $diffdepth= $depth -$term->depth; while ($diffdepth > 0){ print "</li>\n</ul>\n"; $diffdepth -- ; } $depth = $term->depth; } if (($term->depth == $depth) && ($num_at_depth > 0)) { print "</li>\n<li>"; } print l($term->name, 'taxonomy/term/' . $term->tid); $num_at_depth ++; } print "</li>\n</ul>\n"; ?> |
El crédito va al autor, billyboylindien
Reemplazo masivo en cadenas de texto con SQL
-
UPDATE table_name SET column_name = REPLACE(column_name,“original_string”,“replace_string”);
-
UPDATE `wp_posts` SET `post_content` = REPLACE(`post_content`,“picateclas.com/directorioantiguo/”,“picateclas.com/nuevodirectorio”)
Vía | LiewCF.
Exportar interfaz gráfica de Netbeans a Eclipse
Ahí estaba yo generando en Eclipse mi aplicación RMI cuando llegó el momento, ese momento en la vida de un hombre en que te dispones a crear una interfaz gráfica…
Entonces recordé que Netbeans (que no me gusta mucho porque su interfaz me pierde, y si, estoy demasiado acostumbrado a Eclipse) tiene un editor bastante cundiente por lo que me decidí a usarlo.
Así que despues de buscar por ahí y no encontrar solución hice lo siguiente, que resultó funcionar:
1º Copiar el archivo (.java) o paquete donde tengas generado la interfaz y copiarlo al directorio del proyecto de Eclipse como un archivo o una carpeta más. Si inicias eclipse verás que dá errores por todas partes porque no encuentra el jar de donde importar las clases.
2º Localizas el jar que carga la interfaz gráfica en NetBeans (se explica acontinuación).
2.1 Abres las opciones del proyecto con un click secundario sobre el proyecto
2.2 En bibliotecas seleccionas “Extensiones de diseño de Swing” (o algo parecido a Swing Design Extensions) y pulsas en “Editar” (Edit).
2.3 La ruta que aparece es la ruta del archivo .jar que eclipse necesitará para poder lanzar la interfaz gráfica. Así que ahora tienes que importar el archivo .jar (en mi caso “swing-layout-1.0.3.jar”) desde tu proyecto de eclipse. (Tip: Una idea interesante es copiarla a la carpeta del proyecto para que cuando lo muevas siga funcionando).
Y ya está. Espero que os haya servido de ayuda.
Saludos picadores!!
Sincronizar la fecha y hora de RHEL
Los pasos para tener configurada correctamente la fecha y hora en un servidor con Red Hat Enterprise (RHEL) son muy sencillos, y es conveniente realizarlos cuando varios servidores van a compartir datos entre ellos:
1. Instalación de NTP. Lo más sencillo es usar yum:
# yum install ntp
2. Configurar ntp para que arranque con la máquina:
# chkconfig --levels 235 ntpd on3. Especificar el servidor NTP a usar. Por ejemplo, el de ntp.org:
# ntpdate 0.pool.ntp.org
4. Arrancar el servicio NTP:
# service ntpd start
Vía | The Web Hosting Hero.
Reemplazar saltos de línea (/n) de un textarea con JavaScript
Reemplazar los saltos de línea (\n) de un textarea en una página web mediante javascript es muy sencillo usando una expresión regular. Espero que sirva a aquellos que queráis mejorar vuestra formación en java:
<html>
<head>
<script>
function nl2br(str){
str=str.replace(/\n/gi,"<br />");
return str;
}
function reformat(){
document.dummy.area.value=nl2br(document.dummy.area.value);
}
</script>
</head>
<body>
<form name="dummy" id="dummy">
<textarea name="area" id="area" rows="10" cols="50"></textarea><br />
<input type="button" name="nl2br" id="nl2br" onclick="reformat()" value="Eliminar Saltos de Línea" />
</form>
</body>
</html> |
Rotar una BufferedImage en Java
Me he llevado cierto tiempo encontrar una función para conseguir rotar 90 grados una imagen de tipo BufferedImage en Java, así que una vez he hallado cómo hacerlo qué menos que compartirlo por si os es útil:
public BufferedImage rotate90DX(BufferedImage bi) { int width = bi.getWidth(); int height = bi.getHeight(); BufferedImage biFlip = new BufferedImage(height, width, bi.getType()); for(int i=0; i<width; i++) for(int j=0; j<height; j++) biFlip.setRGB(height-1-j, width-1-i, bi.getRGB(i, j)); return biFlip; } |
Y en el sentido inverso sería así…
public BufferedImage rotate90SX(BufferedImage bi) { int width = bi.getWidth(); int height = bi.getHeight(); BufferedImage biFlip = new BufferedImage(height, width, bi.getType()); for(int i=0; i<width; i++) for(int j=0; j<height; j++) biFlip.setRGB(j, i, bi.getRGB(i, j)); return biFlip; } |
Vía | Snippet en Dzone.
Guía rápida de introducción a jQuery
jQuery es una librería muy útil para desarrollos web, y sobre todo para evitar reinventar la rueda al usar javascript, ya que nos ahorra muchos problemas de compatibilidad entre navegadores, carencias o limitaciones del lenguaje, etc.
A pesar de su gran documentación online o los libros sobre la librería publicados, puede que su sintaxis resulte un tanto extraña para un novato, además de no saber muy bien cuáles son las posibilidades reales de jQuery. Para ello, es muy útil este artículo de DotNetStacklers (es la primera parte, espero que pronto publiquen la segunda). Y por cierto, los desarrolladores en .NET pueden aprovechar para darle una oportunidad a jQuery ahora que se integrará con el Intellisense en Visual Studio…
Opera para iPhone: Competencia imposible en la AppStore de Apple
Una de las mayores críticas que está recibiendo últimamente Apple es la de sus políticas cerradas que controla la experiencia de usuario hasta tal punto que interfieren con la libertad del mismo. Esta política de control total se traspasó también a la AppStore, la tienda de aplicaciones para iPhone / iPod Touch, de manera que los desarrolladores ven su trabajo condicionado a la aprobación de su trabajo por parte de Apple.
Este control no significaría un problema si se realizase de una forma razonada, buscando siempre la mayor satisfacción y mejor experiencia de usuario… pero no es así. Apple aprovecha que el único canal oficial de distribución de aplicaciones para la plataforma iPhone es su AppStore, creando una situación de auténtico monopolio, al no permitir la difusión de aplicaciones que puedan hacer competencia a sus desarrollos o que vayan en contra de sus intereses comerciales: el antecedente fue el caso NetShare, cuando censuraron la aplicación por ir en contra de los deseos de sus aliadas comerciales, las compañías telefónicas. Luego comenzaron con la retirada de aplicaciones que puedan competir con las propias: sucedió primero con Apple retirando del mercado una aplicación que mejoraba iTunes, al permitir sincronizar podcast mediante WiFi; y ha vuelto a pasar ahora, cuando se ha impedido la distribución de la versión de Opera para el iPhone.
Debido a la política oscurantista de Apple, no se puede saber a ciencia cierta si rechazan la aplicación por violar una política de su tienda (se supone que ninguna aplicación puede usar un motor de Javascript propio… ¿ya se blindaban contra posible competencia a Safari?), o si simplemente no permiten la difusión de Opera para evitar competencia.
En cualquier caso, si esto lo hiciese una compañía con menos factor cool, lloverían piedras sobre las cabezas de quienes toman las decisiones (igual que intentaron justificar el kill switch de Apple cuando se descubrió el kill switch de Google en Android, sin ser el mismo caso: Apple sólo permite una vía de distribución: la suya), pero a Apple se le permiten giros demasiado monopolísticos. Como se viene viendo últimamente, Apple es el nuevo Microsoft.
Vía | MacRumours.
Visual Studio 2005: Mostrar números de línea para todos los archivos

En el IDE Visual Studio 2005 de Microsoft tienen la molesta costumbre de no activar la visualización de los números de línea por defecto para todos los archivos, lo cual resulta bastante útil a la hora de programar y depurar. Para habilitarlo sólo hay que ir a Menú Herramientas -> Opciones -> Editor de Texto -> Todos los lenguajes -> Habiltar checkbox “Números de línea”. ¡Listo!
Typeface.js: generando texto con Javascript, canvas y VML
Un problema habitual en el diseño web es conseguir que las fuentes se dibujen de la misma manera en cada navegador, ya que, a pesar de que CSS es un estándar, la implementación de CSS que hace cada navegador dista bastante de ser uniforme (¿alguien ha dicho Internet Explorer?).
La solución tradicional a este problema solía ser la de crear los textos necesario mediante imágenes. La ventaja de esto es que el aspecto en cada navegador sería exactamente el esperado, y no hay límites en cuanto a los efectos o fuentes que se quieran usar… Pero es muy poco flexible, ya que para cada texto hay que crear la imagen correspondiente.
La siguiente solución es la creación las imágenes mediante flash. Esta solución es bastante versátil, pero tiene el problema de la accesibilidad del texto de cara a su indexación por los motores de búsqueda (aunque mitigada con las últimas actualizaciones de Google, esto sigue siendo un problema de cara a la optimización del contenido para los buscadores).
Aquí es donde entra typeface.js: nos permite de una manera sencilla (ver el código a continuación), multiplataforma (no importa el navegador) y flexible (permite aplicar diversos efectos que los navegadores no implementan de una manera uniforme) dar estilo a los textos de la página. Con algo como esto ya se dibujarían los textos…
<script type="text/javascript" src="typeface-0.10.js"></script> <script type="text/javascript" src="helvetiker_regular.typeface.js"></script> <div class="myclass typeface-js" style="font-family: Helvetiker"> Text here in Helvetiker font... </div> |
Y uno de los resultados de uso podría ser el siguiente, sacado de su web…

Aunque evidentemente, esto no es tan maravilloso. El renderizado aún no es del todo eficiente, y aunque funciona bien para títulos y apartados concretos, dibujar toda la web mediante typeface.js es muy costoso. En cualquier caso, si os interesa no dudeis en echar un ojo a los ejemplos y a la explicación de su uso…
Más información | Typeface.js
Vía | Delicious Popular.


