Documentación
Patrones de diseño en Java y Revista gratuíta
En The Design Patterns Java Companion está disponible para descargar un libro sobre patrones de diseño en Java
[PDF] [Código Fuente].
Por otro lado, ha sido publicado el primer número de una revista online ideal para los desarrolladores Java: Java Jazz Up, que incluye noticias y artículos sobre Patrones de Diseño, Eclipse, Spring, Tomcat,... así como otras tecnologías ampliamente utilizadas en el desarrollo de aplicaciones J2EE.
[PDF #1]
Comando no encontrado
Cuando se ejecuta un comando de consola en Linux que no existe, habitualmente pasa ésto:
root@localhost:~# mplayer -bash: mplayer: command not found (orden no encontrada)
Lo bueno es que en *buntu (Kubuntu, Xubuntu, Ubuntu,...) existe el paquete command-not-found, que si se instala se obtendría como resultado:
root@localhost:~$ mplayer The program 'mplayer' can be found in the following packages: * mplayer-nogui * mplayer Try: sudo apt-get install [selected package] Make sure you have the 'multiverse' component enabled -bash: mplayer: command not found
Esto funciona siempre y cuando el comando esté correctamente escrito, fallaría en el caso de que no se escribiese correctamente.
Más información en:
http://popey.com/command_not_found
Visto en:
http://www.tuxmachines.org/node/14477
Usando grep y netcat
Vía TuxMachines llega un par de trucos y artículos sobre el uso de los comando grep y netcat.
El primero, de Debian Administration, comenta un truco sobre cómo resaltar los resultados que encuentre grep. Por otro lado en All about Linux, han publicado un artículo que explica el uso del comando netcat, ideal para poder probar y comprobar el correcto funcionamiento de cualquier aplicación TCP/IP.
Defragmentar o no en Linux
Recurrente pregunta la de porqué no existe un programa para desfragmentar en Linux, y eso es lo que intenta responder mediante el siguiente artículo (en la lengua de Shakespeare): Why doesn't need Linux defragmenting, donde se compara el funcionamiento de los sistemas de ficheros FAT y ext3. Por contra, el desarrollador de KDE Lubos Lunak, se pregunta también si no convendría que existiese la posibilidad de desfragmentar en el artículo: Why does Linux need defragmenting.
[Bash Script] Descargar módulos de Drupal 4.7.x
Recientemente ha salido una nueva versión de Drupal, uno de los gestores de contenidos más utilizados en Internet (y sobre el que se basa estas páginas que estás leyendo), que tiene además una gran cantidad de módulos que mejoran y añaden funcionalidades al sistema, el problema es que habría que ir bajando uno a uno cada uno de los 220 módulos disponibles actualmente, una tarea bastante tediosa que vamos a intentar solucionar mediante la potencia del intérprete de comandos bash.
Vamos a hacerlo poco a poco para luego ver la posibilidad de realizarlo en una sóla línea haciendo uso de la concatenación de comandos usando tuberías.
1. Primero habría que descargar y guardar en disco la url: http://drupal.org/project/Modules que o bien se hace desde el navegador o con algún comando como por ejemplo wget o curl.
wget http://drupal.org/project/Modules
2. A continuación habría que ver el código fuente del fichero HTML para conocer la estructura, y lo más importante ver cómo son las urls de los paquetes que contiene cada módulo, como por ejemplo:
<div class="links"><a href="http://ftp.osuosl.org/pub/drupal/files/projects/views-4.7.0.tar.gz">Download</a>
Así que para quedarse sólo con las líneas que incluyan enlaces a los paquetes .tar.gz se haría mediante:
grep tar.gz Modules.html
Que devolvería todas las líneas como la anterior, esto lo devolvería por pantalla, lo suyo sería guardarlo en otro fichero así que se podría redirigir la salida estándar mediante > urls.txt al final del comando
3. Analizando el resultado se ve que la parte interesante estaría en el tercer token (contando como separación el espacio en blanco), para obtener sólo esa parte se puede hacer uso del comando awk (existen más posibilidades, pero a mí me gusta ésta :P):
awk '{ print $3 }' urls.txt
que devolvería como resultado:
href="http://ftp.osuosl.org/pub/drupal/files/projects/acidfree-4.7.0.tar.gz">Download</a>
El resultado también se podría redigirir a otro fichero mediante > urls2.txt (que sea distinto fichero sino nos cargaremos el anterior)
4. De ese fichero ahora se podría delimitar por las comillas dobles y coger el token 2, esta vez se hará uso del comando cut:
cut -d '"' -f 2 urls2.txt
(OJO que es comillasimple comilladoble comillasimple)
Esto ya daría como resultado el listado de urls que estamos persiguiendo, de nuevo se redirige a un fichero de texto con > modulos.txt
5. Y ya sólo falta decirle a wget que se descargue todos los módulos:
wget --input-file=modulos.txt
Y ahora lo mejor ¿se puede hacer todo ésto de un tirón? por supuesto, para ello se utilizará links para descargar el código HTML de la página de módulos, y haciendo uso de tuberías, la salida de un comando se le pasará como entrada al siguiente y así sucesivamente:
links -source http://drupal.org/project/Modules | grep tar.gz | awk '{ print $3 }' | cut -d '"' -f 2 | xargs wget
Es posible que los comandos grep + awk + cut se puedan fusionar en uno solo haciendo uso de expresiones regulares, pero eso lo dejaremos para una segunda parte o como tarea del lector ;P
Ni que decir tiene que no se trata de explicar qué hace y para qué sirve cada uno de los comandos utilizados aquí (links, grep, awk, cut, xargs y wget), que para eso ya están las páginas man.
Huelga decir que toda corrección/mejora/comentario/crítica será bienvenida.
Ruby on Rails y Apache2 en Debian Sarge
Ruby on Rails (RoR) es un framework de desarrollo web basado en el lenguaje de programación Ruby, que se caracteriza por la optimización de facilidad y productividad del desarrollo de sitios web, tal y como enseñó David Sedeño en su charla en las Jornadas de Linux-Málaga.
Pues de mano de HowtoForge, y como viene siendo habitual, han publicado un extenso artículo sobre como configurar RoR con Apache2, bajo la distribución de Linux Debian Sarge, así con un poco de documentación sobre RoR, ya se puede uno poner a hacer sus pinitos.
http://www.howtoforge.com/ruby_on_rails_apache2_fastcgi_debian
Clusterizando Apache
Como viene siendo habitual, en HowtoForge, publican otro interesante artículo, esta vez le toca a Cómo montar un servidor web en clúster, con balanceo de carga y alta disponibilidad, con Apache.
Para ello, haciendo uso de Debian como distribución de Linux, se montarán 2 balanceadores de carga, configurados en alta disponibilidad con heartbeat, y dos nodos web que se repartirán la carga en función de las peticiones redirigidas por los frontales.
Se hace uso del proyecto UltraMonkey e IPVS (IP Virtuales), ¡imprescindible!











