Interesante artículo recopilatorio sobre como averiguar lo que está pasando en una aplicación Java.
Repaso breve desde la depuración clásica con breakpoints o incluso System.out.println() hasta utilizar proxies dinámicos o programación orientada a aspectos.
05 diciembre 2007
15 noviembre 2007
Mozilla Prism, lanzador de aplicaciones web
Prism es una prueba de concepto de Mozilla Labs para explorar nuevas formas de interaccionar con las aplicaciones web.
En este caso, consiste en un lanzador de aplicaciones web, que te permite integrar en el escritorio y en la barra de menús inicial el lanzamiento de aplicaciones web.
Una vez lanzadas, las aplicaciones no aparecen en una ventana típica de navegador, sino que muestran su propia ventana de aplicación.
Por debajo utiliza al motor del navegador, sus preferencias, etc., pero te quita todas los menús y barras de navegación que no necesitas para ejecutar una aplicación concreta.
Por ahora, sólo para Windows, pero prometen versiones para Mac y Linux.
En este caso, consiste en un lanzador de aplicaciones web, que te permite integrar en el escritorio y en la barra de menús inicial el lanzamiento de aplicaciones web.
Una vez lanzadas, las aplicaciones no aparecen en una ventana típica de navegador, sino que muestran su propia ventana de aplicación.
Por debajo utiliza al motor del navegador, sus preferencias, etc., pero te quita todas los menús y barras de navegación que no necesitas para ejecutar una aplicación concreta.
Por ahora, sólo para Windows, pero prometen versiones para Mac y Linux.
06 noviembre 2007
Consejos para mejorar el rendimiento de las apps web
Best Practices for Speeding Up Your Web Site es un compendio de consejos recopilado por el Exceptional Performance group at Yahoo!, con el objetivo de acelerar el rendimiento del front-end de las aplicaciones web.
El índice es:
El índice es:
- Make Fewer HTTP Requests
- Use a Content Delivery Network
- Add an Expires Header
- Gzip Components
- Put Stylesheets at the Top
- Put Scripts at the Bottom
- Avoid CSS Expressions
- Make JavaScript and CSS External
- Reduce DNS Lookups
- Minify JavaScript
- Avoid Redirects
- Remove Duplicate Scripts
- Configure ETags
- Make Ajax Cacheable
17 octubre 2007
Consejos de The Pragmatic Programmer
Extraidos del libro The Pragmatic Programmer, una lista de consejos que todo programador "pragmático" debe conocer y aplicar.
04 octubre 2007
Como saber con qué JDK se ha compilado una clase Java
Me he encontrado con una clase Java de la que no tenía ni idea de con qué JDK había sido compilada, y ante la alternativa de tener que probar con varios hasta conseguir el mínimo en que funciona, he encontrado este truco para mostrar la versión de especificación y qué JDK mínimo se necesita.
El código de la clase, que dejo aquí anotado para futuras referencias:
El código de la clase, que dejo aquí anotado para futuras referencias:
import java.io.*;
public class Version {
public static void main(String[] args) throws Exception {
if (args.length != 1) {
System.err.println("Usage: java version <.class file>");
System.exit(1);
}
if (! new File(args[0]).exists()) {
System.err.println(args[0] + " does not exist!");
System.exit(2);
}
DataInputStream dis = new DataInputStream(
new FileInputStream(args[0]));
int magic = dis.readInt();
if (magic != 0xcafebabe) {
System.err.println(args[0] + " is not a .class file");
System.exit(3);
}
int minor = dis.readShort();
int major = dis.readShort();
System.out.println("class file version is " + major + "." + minor);
String version = null;
if (major < 48) {
version = "1.3.1";
} else if (major == 48) {
version = "1.4.2";
} else if (major == 49) {
version = "1.5";
} else if (major == 50) {
version = "6";
} else {
version = "7";
}
System.out.println("You need to use JDK " + version + " or above");
}
}
25 septiembre 2007
Las bases de datos relacionales están obsoletas
Vía Barrapunto he estado echandole un vistazo al artículo The End of an Architectural Era (It's Time for a Complete Rewrite), donde se comenta que debido a los avances en hardware, los actuales sistemas de gestión de bases de datos, basados todos en arquitecturas desarrolladas hace 25 años, se han quedado obsoletos.
Propone varios cambios "de base":
Propone varios cambios "de base":
- Bases de datos contenidas completamente en memoria
- Redes grid de alta disponibilidad, que eliminan la necesidad de usar lentos logs para protegerse de problemas
- Eliminar el lenguaje SQL, en aras de otros lenguajes más simples y que se integren mejor con los lenguajes de programación
- Etc.
14 septiembre 2007
Arquitecturas en alta disponibilidad, pero siguen fallando
El martes pasado estaba leyendo en la web sobre arquitecturas en alta disponibilidad de aplicaciones reales (muy interesante, por cierto), y al revisar lo que cuentan sobre la arquitectura de Wikipedia, pum, me salta este error:
Es la primera vez que me ocurre en Wikipedia, pero a veces la alta disponibilidad no es tan alta :-)
Claro que debía ser el día de los errores, porque a los poco minutos cazo este en el blog de Enrique Dans:
Es la primera vez que me ocurre en Wikipedia, pero a veces la alta disponibilidad no es tan alta :-)
Claro que debía ser el día de los errores, porque a los poco minutos cazo este en el blog de Enrique Dans:
11 septiembre 2007
Para qué sirve la tecla SysReq
Hasta ahora, nunca le había encontrado utilidad a la tecla SysReq, la que está en los teclados al lado del F12. Pero con este truco visto en Barrapunto sobre Reiniciar Linux de forma segura ya le encuentro una razón de ser (al menos en sistemas Linux).
Alguna vez me ha pasado, desde que tengo Linux instalado en el portatil con un teclado y ratón conectado por USB, que se quedan bloqueados y no responden (ni teclado ni ratón). Con este truco, se puede reiniciar el sistema ordenadamente sin tener que darle al reset:
En esta entrada de la Wikipedia explica todas las combinaciones de teclas posibles, y algunos nemotécnicos para recordar la secuencia de teclas a pulsar.
Alguna vez me ha pasado, desde que tengo Linux instalado en el portatil con un teclado y ratón conectado por USB, que se quedan bloqueados y no responden (ni teclado ni ratón). Con este truco, se puede reiniciar el sistema ordenadamente sin tener que darle al reset:
- Pulsar Alt+ SysReq y mantenerlos pulsados.
- Teclear RSEIUB, dejando tiempo entre tecla y tecla, y el sistema se reiniciará, así de simple.
- R devuelve el control al teclado.
- S sincroniza.
- E manda a los procesos la señal term.
- I manda a los procesos la señal kill.
- U desmonta los sistemas de ficheros.
- B reinicia el sistema.
En esta entrada de la Wikipedia explica todas las combinaciones de teclas posibles, y algunos nemotécnicos para recordar la secuencia de teclas a pulsar.
05 septiembre 2007
Linux: The 0.01 Release
He encontrado en Kernel Trap un artículo muy interesante titulado Linux: the 0.01 Release, donde comenta el nacimiento y primeros mensajes en torno a Linux.
From: Linus Benedict Torvalds [email blocked]
Newsgroups: comp.os.minix
Subject: What would you like to see most in minix?
Date: 25 Aug 91 20:57:08 GMT
Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).
I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)
Linus (torva... at kruuna.helsinki.fi)
PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.
29 agosto 2007
Libro "Producing Open Source Software"
Este verano he aprovechado las vacaciones para leerme el libro "Producing Open Source Software, How to Run a Successful Free Software Project", escrito por Karl Fogel, una de las personas responsables del desarrollo de Subversion.
Está disponible el PDF para descarga gratuita.
Es bastante completo, dando un repaso a todo lo que necesitas tener en cuenta si quieres montar un proyecto open source: infraestructura, gestión de la gente y la comunicación, licencias, voluntarios, releases, etc.
Muchos de los consejos que ofrece también se pueden aplicar a la producción de software propietario. Quizás la única pega es que está enfocado a proyectos open source de gran envergadura.
Está disponible el PDF para descarga gratuita.
Es bastante completo, dando un repaso a todo lo que necesitas tener en cuenta si quieres montar un proyecto open source: infraestructura, gestión de la gente y la comunicación, licencias, voluntarios, releases, etc.
Muchos de los consejos que ofrece también se pueden aplicar a la producción de software propietario. Quizás la única pega es que está enfocado a proyectos open source de gran envergadura.
26 julio 2007
Web Trend Map 2007, para no perderse en la web
Con formato de plano de metro, el Web Trend Map 2007 representa los 200 websites más populares de la web, ordenándolos por categoría, popularidad, éxito, etc. y relacionándolos entre si.
Tienen disponible una versión en PDF en A3, que queda muy bien al imprimirlo, para colgarlo como poster geek.
Tienen disponible una versión en PDF en A3, que queda muy bien al imprimirlo, para colgarlo como poster geek.
17 julio 2007
Evolución temporal de las distribuciones Linux
He visto en Barrapunto un enlace a un diagrama sobre la evolución temporal de las distribuciones Linux. Me ha traido muy buenos recuerdos, de cuando empecé a trabajar allá por 1993 con Slackware y en 1994 con RedHat. Qué tiempos!
También se incluía el enlace al famoso poster de Oreilly sobre la historia de los lenguajes de programación (disponible en PDF), que ya conocía pero voy a dejar también anotado aquí para futuras referencias.
10 julio 2007
Web 2.0 Awards 2007
Aunque salieron publicados el 9 de mayo, aún no he tenido tiempo para revisar con detalle todos los Web 2.0 Awards 2007 publicados por SEOmoz.
Me parece una lista muy interesante, la dejo aquí anotada pendiente de poder sacar un poco de tiempo, que seguramente no podrá ser hasta las vacaciones del verano :-)
08 junio 2007
SpaceTime, navegador en 3D
Vía Genbeta llego a SpaceTime, un navegador en el que en vez de tener las páginas en pestañas, las muestra en tres dimensiones.
Lo hemos estado probando un poco y es atractivo visualmente, y quizás en el futuro los navegadores vayan por ahí, pero por ahora no deja de ser una prueba de concepto.
Lo que no conseguimos hacer es cambiar la perspectiva de la vista, algo que podría ser muy interesante si tienes muchas páginas abiertas, poder echar un vistazo desde arriba.
25 mayo 2007
eBox, servidor para pymes
Alguna vez lo habíamos comentado en las típicas charlas de café, pero el otro día lo vi anunciado en Barrapunto: eBox, un servidor que instalado en una Pyme les ofrece una gran cantidad de servicios de red: firewall, proxy, servidor de archivos, de mail, VPNs, etc. con una sencilla administración por web, todo integrado y fácil de instalar.
Lo veo muy interesante para pequeñas y medianas empresas que no pueden permitirse comprar los productos equivalentes de pago, y que no tienen personal con conocimientos suficientes para descargarse, instalar y configurar los equivalentes en open-source.
17 mayo 2007
Google Notebook
Para ir capturando fragmentos de páginas cuando vas buscando información sobre algún tema, hasta ahora utilizaba Clipmarks, pero hoy he estado probando Google Notebook, y me ha gustado bastante.
Instalar un plugin para Firefox, y ofrece un interfáz bastante ágil mediante AJAX. Me ha parecido muy rápido de capturar y organizar los distintos fragmentos.
Con Clipmarks me quedo con su funcionalidad de seleccionar fragmentos de una página para imprimir, que es algo que no he visto que se pueda hacer con Google Notebook.
Instalar un plugin para Firefox, y ofrece un interfáz bastante ágil mediante AJAX. Me ha parecido muy rápido de capturar y organizar los distintos fragmentos.
Con Clipmarks me quedo con su funcionalidad de seleccionar fragmentos de una página para imprimir, que es algo que no he visto que se pueda hacer con Google Notebook.
15 mayo 2007
La importancia de la tipografía
Vía Microsiervos llego a este post titulado Tipografía para principiantes: Algunos apuntes y 10 consejos, donde explica de manera bastante clara la importancia de la tipografía a la hora de generar textos de aspecto impecable.
Tiene al final del post una serie de enlaces también muy interesantes, para ampliar más sobre este campo, como el Manual sobre tipografía.
Tiene al final del post una serie de enlaces también muy interesantes, para ampliar más sobre este campo, como el Manual sobre tipografía.
10 mayo 2007
JavaFX, el tercero en discordia
Ya tardaba mucho. Ayer por fin Sun anunción en el JavaOne a JavaFX, un lenguaje de scripting (basado en Java, como no), destinado a competir con el Apollo de Adobe (Flash), con AJAX (JavaScript) y con el recién lanzado Silverlight.
Como era el día del anuncio, ayer la web de la implementación abierta del lenguaje, OpenJFX, estaba caida.
Como era el día del anuncio, ayer la web de la implementación abierta del lenguaje, OpenJFX, estaba caida.
Etiquetas:
AJAX,
JavaFX,
JavaScript,
RIA
08 mayo 2007
Acortando URLs con fon.gs
Al estilo de TinyURL, este servicio de Fon permite generar una URL cortita para una URL muy larga difícil de recordar y de enviar por mail. Tiene la diferencia que mientras TinyURL te genera aleatoriamente la URL, fon.gs te permite poner tu el nemotécnico, como http://fon.gs/dpinya_blog.
La única pega que le veo es que si se populariza mucho, las URLs ya no serán tan cortas, estarán todas pilladas :-)
La única pega que le veo es que si se populariza mucho, las URLs ya no serán tan cortas, estarán todas pilladas :-)
20 abril 2007
Instalar InternetExplorer en Linux
Siguiendo un artículo de Barrapunto sobre por qué se sigue forzando el uso de Internet Explorer, he llegado a IEs4Linux, un script que te permite instalar en Linux el IE5.01, IE 5.5 e IE 6.
El proceso es muy rápido y simple: en Fedora, instalar los RPMs del Wine y cabextract, descargar el tar de ies4linux y ejecutar un script. Este script te pregunta qué versiones quieres instalar, la ruta y donde quieres poner los enlaces, y se descarga automáticamente e instala los ficheros de la web de Microsoft.
Me va a venir muy bien, porque tenemos algunas aplicaciones que necesitan IE para funcionar (por unos OCXs de firma digital que utilizamos), y hasta ahora tenía que conectarme a un servidor Windows por Terminal Server y lanzar el IE allí.
El proceso es muy rápido y simple: en Fedora, instalar los RPMs del Wine y cabextract, descargar el tar de ies4linux y ejecutar un script. Este script te pregunta qué versiones quieres instalar, la ruta y donde quieres poner los enlaces, y se descarga automáticamente e instala los ficheros de la web de Microsoft.
Me va a venir muy bien, porque tenemos algunas aplicaciones que necesitan IE para funcionar (por unos OCXs de firma digital que utilizamos), y hasta ahora tenía que conectarme a un servidor Windows por Terminal Server y lanzar el IE allí.
11 abril 2007
Info introductoria sobre criptografía
Esta semana he descubierto, por casualidad, una página con un muy buen resumen sobre todos los conceptos sobre criptografía, certificados, firmas, CAs, etc. que tanto utilizamos en nuestras aplicaciones, y que me servirá muy bien como referencia para la gente que se incorpora al equipo de desarrollo: Introduction to Public-Key Cryptography.
04 abril 2007
Certificados digitales en disquetes de 3.5"
La semana pasada fui a recoger un certificado a la Autoridad de Certificación de la Generalitat Valenciana, y cual fue mi sorpresa cuando me lo entregaron (eso si, con muy poco papeleo y en muy poco tiempo) en un disquete de 3.5.
En un primer momento, incluso dudé si cogerlo porque no recordaba si en el ordenador de casa incluso tenía disquetera de 3.5 para leerlo. Me lo llevé, pero con la duda de si podría leer los datos.
Y efectivamente, he intentado leerlo en tres ordenadores distintos y ha fallado en los tres. Ahora recuerdo lo poco fiables que eran.
Grabarlos en un CD costaría muy poco tiempo (en total serán menos de 100 KB), y así se asegurarían de que se pueden leer sin problemas.
En un primer momento, incluso dudé si cogerlo porque no recordaba si en el ordenador de casa incluso tenía disquetera de 3.5 para leerlo. Me lo llevé, pero con la duda de si podría leer los datos.
Y efectivamente, he intentado leerlo en tres ordenadores distintos y ha fallado en los tres. Ahora recuerdo lo poco fiables que eran.
Grabarlos en un CD costaría muy poco tiempo (en total serán menos de 100 KB), y así se asegurarían de que se pueden leer sin problemas.
27 marzo 2007
Cómo repartir las acciones en una startup
He encontrado una serie de artículos sobre cómo se deben repartir las acciones en una startup:
Me trae recuerdos de cuando vivimos estos temas al principio de iSOCO : las rondas de financiación, acciones para los empleados... :-)
- Cómo repartir las acciones de una start-up de internet: introducción
- Cómo repartir las acciones de una start-up de internet: el mercado
- Cómo repartir las acciones de una start-up de internet: el caso de Google
Me trae recuerdos de cuando vivimos estos temas al principio de iSOCO : las rondas de financiación, acciones para los empleados... :-)
16 marzo 2007
Explicación sobre la Web Semántica en castellano
El artículo titulado La Web Semántica: además de metadatos (ontologías), lógica y confianza, de Miguel Ángel Abián, es de los mejores a nivel introductorio que he encontrado para explicar la Web Semántica, con ejemplos prácticos de que no estamos hablando sólo de ontologías.
12 marzo 2007
Comparación de frameworks para aplicaciones web en Java
Hace poco he estado impartiendo un cursillo de formación sobre arquitecturas Java, y uno de los puntos que hemos tratado ha sido el framework Spring para el desarrollo de aplicaciones web.
Como parte del trabajo de documentación, he encontrado algunos enlaces interesantes sobre comparativas de los diferentes frameworks existentes para Java:
Como parte del trabajo de documentación, he encontrado algunos enlaces interesantes sobre comparativas de los diferentes frameworks existentes para Java:
- Comparing Web Frameworks, de Matt Raible, compara Struts, Spring MVC, WebWorks, Tapestry y JSF.
- Comparison of Java Web Frameworks, de Neal Ford, habla de Struts, Turbine, Tapestry, WebWork, Internet Beans y Velocity.
- Comparing Web Frameworks, de Simong Brown, donde habla de scriptlets, JSTL, JSPs con XML, Struts, Stripes y WebWork.
- JavaServes Faces vs Tapestry, de Phil Zoio, donde compara JSF y Tapestry.
13 febrero 2007
Wikipedia en castellano llega a los 200.000 artículos
Si hace menos de un año ya comentábamos que la Wikipedia en castellano había llegado a los 100.000 artículos, ahora acaba de llegar a los 200.000.
Es increible lo rápido que ha crecido, y se ha convertido en la segunda por detrás de la inglesa, claro.
Desde que conocí la Wikipedia he creado un par de artículos, y he participado en cinco o seis, un grano de arena para llegar a estos 200.000.
A por los 400.000!!!
09 febrero 2007
Instalar una HP LaserJet 2600n en Fedora Core 5
Para instalar sin ningún problema una impresora HP LaserJet 2600n en Fedora Core 5 hay que actualizar los drivers que vienen por defecto. En http://foo2zjs.rkkda.com/INSTALL están las instrucciones paso a paso.
Mylar: integrar Bugzilla en Eclipse
Recientemente he descuierto un plugin para Eclipse muy interesante: Mylar, destinado a integrar el servidor de gestión de errores e incidencias Bugzilla.
De entrada necesita Eclipse 3.2, y fue una buena excusa para actualizarme desde la 3.1, que nunca encontraba el momento para hacerlo.
No he tenido mucho tiempo para probarlo a fondo, pero me parece un paso más en el proceso de tener todas mis herramientas de desarrollo integradas dentro de Eclipse: el primer paso importante fue el CVS, después un connector con bases de datos, diseño UML, etc.
De entrada necesita Eclipse 3.2, y fue una buena excusa para actualizarme desde la 3.1, que nunca encontraba el momento para hacerlo.
No he tenido mucho tiempo para probarlo a fondo, pero me parece un paso más en el proceso de tener todas mis herramientas de desarrollo integradas dentro de Eclipse: el primer paso importante fue el CVS, después un connector con bases de datos, diseño UML, etc.
24 enero 2007
Tests de usabilidad: con 5 basta
He visto un artículo ya antiguo (del 2000) de Jakob Nielsen titulado Why You Only Need to Test With 5 Users, donde comenta que para encontrar la mayoría de los errores de usabilidad de un interfaz, basta con chequearlo con 5 usuarios. Más, es desperdiciar recursos...
Suscribirse a:
Entradas (Atom)