Como solucionar que GitLab no muestre los imágenes subidas, como los avatares, sin NGINX

Gitlab

GitLab requiere una configuración manual y en muchas ocasiones puede volverse tediosa y compleja, provocando que hasta los errores más tontos lleven horas encontrarlos y arreglarlos. Uno de los que más afecta a los usuarios es el que no se muestren correctamente las imágenes subidas al servidor, como las imágenes adjuntas o los avatares. Leer más…

Categorías: Linux, Web Etiquetas: , , , ,

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: ,

Integrar el Qt con el tema de LXDE

qtconfig

LXDE es un entorno muy simple y ligero, y aunque las últimas versiones funcionan bajo Qt, las distribuciones aún mantienen aquellas basadas en GTK, lo cual puede hacer que las aplicaciones Qt, como Qt Creator o el VLC no se vean correctamente en el entorno de escritorio.

Afortunadamente las bibliotecas de Nokia se pueden integrar muy bien con un pequeño ajuste. Leer más…

Categorías: Linux, Raspberry Pi Etiquetas: , , , ,

Flash, Chromium 35 y Debian

chromium

Recientemente Chromium ha llegado a su versión 35 en Debian Stable, Testing y Unstable. Esta versión, además las típicas mejoras de rendimiento y compatibilidad con HTML 5, ha cambiado GTK+ por Aura y ha recibido cambios en la API de los Plugins.

Esta última novedad es la que nos ocupa, pues hace incompatible el navegador con el plugin flash habitual de Debian y derivados, como Ubuntu. Leer más…

Categorías: Linux 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: , ,

XBMC 13.0 Gotham con soporte para 3D

xbmc-gotham-13_0-splash-600x336

Desde hace varios años uso XBMC como reproductor multimedia, en especial para las series, y con la combinación de ShowRSS + Raspberry Pi consigo un genial centro multimedia para ver la tele de mi cuarto desde la cama.

Pues bien, hace unos días se lanzó la última versión de esta aplicación con importantes mejoras, siendo el soporte para 3D mi preferidaLeer más…

Categorías: Linux, Raspberry Pi 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…

Categorías: Java, Programación, Web Etiquetas: , , , , ,