Archive

Archive for the ‘Programación’ Category

Escapar un String al pegarlo directamente en Eclipse

eclipse-java-juno

En muchas ocasiones tenemos que introducir en nuestro código Strings de bastantes largos y varias líneas. En determinados lenguajes, como PHP, no supone mucho problema, pero en Java implica:

  • Escapar determinados caracteres, como las ” y las \
  • Añadir las comillas y el + por cada línea
  • Añadir los \n si queremos conservar los saltos de línea

Esto, si bien es fácil, es un trabajo muy tedioso, en especial si estamos pegando HTML. ¿Solución? Activar la opción Escape text when pasting into a string literal, la cual está en Windows -> Preferences -> Java -> Editor -> Typing

Ahora simplemente creamos algo así:


String html = "";

Ahora, al pegar el código entre las ” ” quedará perfectamente escapado.

Dart y Android

dart-logo-wordmark-1200w

El Google IO se acerca y comienzan los rumores sobre usar Dart como lenguaje de programación nativo para Android, en especial con el anuncio de Swift,  como pueden ser estos artículos (uno y dos). Si bien es cierto que las ventajas de este lenguaje sobre el “anticuado Java” son bastantes, hay varios aspectos por el que no creo que se adopte:

El primero de ellos es ART, la máquina virtual Java  para Android que se presento hace unos meses. ¿Para qué hacer una máquina virtual para un lenguaje si después vas a sustituirlo por otro?

Dart lanza una versión cada 6 semanas, lo cual haría que las últimas novedades no estuviesen disponibles hasta la siguiente versión de Android.

Fragmentación: Ni que decir tiene que si aún hay que darle soporte a Android 2.3, esperar hasta…  ¿Android 4.5?  para que nuestra aplicación en Dart funcione me parece totalmente inviable.

Librerías de Java: Para el poco tiempo que tiene Dart la cantidad de librerías disponible es bastante grande, aunque la gran mayoría destinadas a la web. La única “posibilidad” es algún tipo de conexión entre Java y Dart, al igual que ocurre entre Javascript y Dart, aunque esta última es más “fácil” al ser los dos lenguajes no fuertemente tipados, pues recordamos que en Dart el tipado es opcional, y aún así la comunicación entre ambos lenguajes es lenta y compleja.

 Android Studio: Otro aspecto, muy parecido a ART, es el nuevo IDE desarrollado por Google para Android y el lenguaje Java. Si bien IntelliJ,  o mejor dicho, WebStorm, soporta Dart, no tiene ni punto de comparación con el soporte ofrecido para el lenguaje desarrollado por Sun.

¿Habría alguna posibilidad?

Siempre hay alguna, no voy a poner la mano en el fuego asegurando que no van a lanzar Dart para Android, es más, se ha conseguido compilar la máquina virtual en el Android x86 y funcionar, pero lo dudo. La única manera “viable” que ahora veo sería usando Dart2Java. Usando la misma filosofía que en la web. Programas en Dart y después crear una aplicación Java compatible con los actuales dispositivos. Pero la verdad, no lo termino de ver, y eso que yo sería uno de los que más disfrutaría con esta posibilidad. 

 

Categorías:Android, Java Etiquetas: ,

Compilar el driver de MongoDB para C++

Hoy he tenido que usar el driver de MongoDB para C++, concretamente junto a QT, y me he encontrado con distintos errores a la hora de compilar del tipo Leer más…

Categorías:C/C++, Programación Etiquetas: , ,

Repitiendo una tarea “hasta que funcione” en Bash

blank_computer_screen

Desde hace unos días debo actualizar una carpeta determinada de una gran cantidad de máquinas, y por diversos motivos no puedo recurrir a rsync u otros métodos quedándome solo ssh.

Por ello me hice un pequeño script:

Leer más…

Categorías:Linux, Programación Etiquetas: , , , ,

Opinión sobre El Primer Hackatón de Almería

logo_elhackaton

Durante este fin de semana se ha celebrado el primer Hackatón en la provincia de Almería, dónde nos reunimos 50 entusiastas (programadores, diseñadores y creadores de contenido), mayormente paisanos, pero con unos cuantos adoptados, todos con el objetivo de cambiar el mundo en 28h. Leer más…

Selenium, JSF, Composite Components y los IDs dinámicos

selenium

 

Una de las herramienta para hacer testing en web más utilizada es Selenium IDE, una serie de herramientas y librerías para hacer tests usando el navegador para rellenar formularios, comprobar textos…

Para “guiarse”, Selenium usa distintos atributos de los elementos HTML para localizarlos, como los IDs, sin embargo, en JSF estos pueden cambiar si no se definen todos los IDs de los padres de un elemento, generando cosas como: id=”j_45:j_21:username”, y estos números son generados dinámicamente, por lo que podrían cambiar entre un test y otro, obligándonos a comprobar cada ID nuevo cada vez que probamos el test (una locura).

Si bien usando prependId=”false” evitamos que el form añada su ID al del input, esto no es posible en los Composite Components.

Una solución puede ser darle un ID a cada composite, y quedaría todo fijo, en muchos casos es una tarea bastante engorrosa para simplemente unos tests.

¿Solución? Selectores CSS Leer más…

Calcular el número total de filas al usar LIMIT en MySQL

mariadb-vs-mysql

Cuando mostramos listados extensos al usar bases de datos, lo habitual es usar paginación, y para esta, necesitamos saber el número total de elementos del listado.

El método tradicional para esto es repetir la consulta sustituyendo los campos del SELECT por  COUNT() en la segunda consulta: Leer más…