Busca en simplementeJava

sábado, 13 de agosto de 2011

Mi primer código Scala

Como sabéis aprovechando las vacaciones quiero darle un empujón a scala, así que desempolvando los apuntes de programación y sobre todo siguiendo el magnífico Scala by example he literalmente copiado este trozo de código que es oficialmente lo primero que escribo en este lenguaje. Lo único que me queda es animaros para que le metáis mano que es muy interesante.

jueves, 10 de marzo de 2011

Apple también se pelea con los encodings


Mirad la captura del correo de confirmación de envío que me ha llegado.

Por cierto, el encoding detectado por el navegador es UTF-8. Fijo que es un problema de la plantilla.


miércoles, 2 de marzo de 2011

Swing Examples

La verdad es que, aunque haya acabado haciendo casi de todo en el mundo java, mis primeros desarrollos fueron aplicaciones pesadas swing. Por aquella época recuerdo que encontré esta página en la que algún alma caritativa fue incluyendo varios ejemplos con los distintos controles que nos ofrecía swing.

Probablemente esté mas que desfasado, pero la verdad es que me ha alegrado que dentro de la volatilidad de internet la página siga existiendo; y además estoy seguro de que alguno de los ejemplos que se incluyen todavía pueden ser útiles... si es que alguien sigue trabajando con clientes pesados ;)

domingo, 20 de febrero de 2011

Regular Expresion Library

Ya sé que me estoy poniendo pesado con esto de las expresiones regulares, pero creo que vale la pena que os traiga la página RegExLib. Por lo que se ve estos chavales pensaron que es un rollo tener que pensar desde cero cualquier expresión regular que necesites, de forma que se les ocurrió montar un repositorio de expresiones regulares de forma que nos evitemos tener que inventar la rueda cada vez. La página además cuenta con un buscador para ayudarnos a encontrar la expresión regular que nos interesa en cada momento.

Un detalle más, si os interesa demostrar vuestra admiración por las expresiones regulares en esta página podéis adquirir por 20$ una camiseta con la imagen que acompaña a esta entrada.

sábado, 19 de febrero de 2011

Regular Expresion Tester para Firefox

Gracias a mi compañero Atmosphear_ he conocido este pequeño este pequeño add-on para firefox que nos permite evaluar expresiones regulares con las cadenas que queramos y nos indica cuando cumplen la expresión y cuando no.

Lo podéis descargar desde esta ruta o simplemente buscando 'regular expresion tester' en el gestor de añadidos de firefox.

Espero que os sea tan útil como a mí.

viernes, 18 de febrero de 2011

Expresiones regulares

Sinceramente creo que esta es una de las herramientas más interesantes de las que se dispone para el tratamiento de textos. Para quien no las conozca las expresiones regulares son ‘fórmulas’ que validan textos siguiendo una serie de sencillas reglas, la notación es bastante simple una vez que te acostumbras y la potencia es realmente increíble. Ahora sí, requiere algo de experiencia y construir la expresión con bastante cuidado, ya que esta misma potencia hace que pequeños cambios provoquen grandes diferencias en los resultados.

Si os interesa el tema en esta página hay toda la información sobre expresiones regulares que podáis necesitar. Si las estáis estudiando ahora mismo en la ingeniería mucho ánimo, como he comentado antes es de lo más interesante que os van a enseñar, así que no desaprovechéis el esfuerzo.

Pero... ¿qué son exactamente? Pues básicamente definen patrones de texto. Normalmente se utilizan para comprobar que un texto de entrada coincide con el patrón definido para el mismo. Por ejemplo, para un ejemplo sencillo podemos construir una expresión regular que nos valide una cadena compuesta solo por letras que empieza por mayúscula y después tiene un número indeterminado de minúsculas:


^[A-Z]{1}[a-z]*$


Como veis es bastante simple. Además la clase String de java nos proporciona el método matches que nos indica si la cadena coincide con la expresión regular pasada por parámetro. Así el código java para comprobar si nuestra cadena coincide con el patrón definido sería:


...
private static final String PATRON = “^[A-Z]{1}[a-z]*$”;
...
String cadenaAValidar = …
if (cadenaAValidar.matches(PATRON)) {
...
}
else {
...
}
...


Como veis este ejemplo es en realidad bastante sencillo, pero plantearos la siguiente pregunta: ¿cómo tendríamos que hacerlo sin usar una expresión regular? ¿Cuántas líneas de código y posibilidades de error nos llevaría una solución ‘programática’?

Esto tiene muchísimas utilidades, desde validaciones simples como la del ejemplo, búsquedas en textos, creación de lenguajes de programación y sus compiladores, … Pero creo que el mejor ejemplo nos lo proporciona la siguiente viñeta de xkcd.

jueves, 10 de febrero de 2011

Eclipse Orion: Desarrollo web en la web

El mes pasado el equipo de desarrollo de Eclipse nos sorprendió en esta entrada de su blog con la última vuelta de tuerca de su IDE. Esta nueva versión se llamará Orion siguiendo con la estrategia de nombrar las versiones como distintos objetos celestes.

¿Cuál es la sorpresa de esta nueva versión? Pues simplemente que en lugar de tener un IDE pesado instalado en nuestras máquinas nos proponen el uso de un IDE ligero que se ejecutará en nuestro navegador.

A simple vista las ventajas son evidentes: no hay mantenimiento, se supone que necesitará menos recursos de la máquina, las actualizaciones son literalmente automáticas,... además como curiosidad va mucho en la línea de los desarrollos para Google Chrome OS. Además promenten que el IDE funcionará con las diferentes pestañas del navegador ofreciendo una experiencia de uso tipo 'web'.

Pero tranquilos, antes de que os pongáis a buscar en que web está disponible esta fantástica herramienta ya nos indican que no está acabada. De hecho apelan a nuestro corazoncito de desarrolladores para que entendamos que el proyecto es muy grande y que esperan construirlo a base de las aportaciones de toda la comunidad Eclipse.

La verdad es que miedo da pensar en desarrollar algo tan complejo como un IDE en javascript para que funcione en todo tipo de navegadores y de una experiencia de uso mínimamente agradable. Además creo que las desventajas también son evidentes, habrá que ver cómo se comporta cuando la carga de trabajo sea grande, si para acceder a él tendremos que usar un servidor de pago, cómo podremos realizar nuestras pruebas usando servidores de aplicaciones, ...

En resumen una idea curiosa que puede ser un grandísimo éxito o un enorme fracaso.