• La siguiente disrupción tecnológica, la convergencia

    apple gnu-linux microsoft planeta-codigo opinion

    La tecnología no para de avanzar, cada varios meses salen noticias de avances importantes. Algunos avances se convierten en realidad, otros tardan más en llegar, otros llegan pero no triunfan y de otros pasado un tiempo no se vuelve a oír hablar de ellos. Algunos cambios aunque mejoran lo existente son leves sin añadir nuevas posibilidades ni cambian los comportamientos de los usuarios o como interaccionan estos con la tecnología. Otros pocos son disruptivos y cambian de forma significativa el mercado de la tecnología junto con sus usuarios, estos cambios novedosos son capaces de hundir empresas líderes si no saben adaptarse o no los prevén al mismo tiempo que crean nuevos líderes en el mercado.
    Continuar leyendo...

  • Moment.js, librería JavaScript para fechas

    javascript planeta-codigo programacion

    JavaScript

    Hace un tiempo escribí una serie de artículos mostrando el uso de varias de la librerías de JavaScript, el primer artículo fue sobre una introducción sobre RequireJS hasta un Ejemplo lista de tareas con Backbone y React pasando por otra serie de herramientas útiles en una aplicación que tiene una parte importante en el navegador como:

    En este artículo comentaré otra librería de JavaScript que nos será de utilidad para el trabajo con datos de tipo fecha en el navegador, la librería es Moment.js.


    Continuar leyendo...

  • Ofrecer contenido personalizado al usuario basado en su ubicación

    planeta-codigo programacion software software-libre

    Cuando navegamos por internet el navegador envía mútiple información sobre nosotros y algunas páginas web recopilan esa información y la procesan para ofrecer contenido personalizado que creen nos resultaría de interés. Contenido con mayor relevancia para el usuario mejora la experiencia de usuario y la páginas web mejorarán su ratio de conversión y facturación. La información que proporcionamos sin ser conscientes son las cookies, la dirección IP, el navegador que usamos, el sistema operativo, nuestra resolución de pantalla, la hora a la que accedemos a la página, … en base a ella y aunque la información está impersonalizada sirve para identificarnos como inequivocamente usuarios. Con la dirección IP y usando una base de datos es posible obtener al menos el país desde el que se accede a una web y muy posiblemente la ciudad.
    Continuar leyendo...

  • Ejemplo sencillo de como crear un Excel o CSV en Java con Apache POI y OpenCSV

    java planeta-codigo programacion

    Los archivos Excel y separados por comas o CSV son muy utilizados como formato para intercambiar datos entre aplicaciones o como formato para exportar cantidades grandes de datos de una aplicación. Por su utilidad es probable que tarde o temprano surja en una aplicación la necesidad de crear archivos o exportar datos a estos formatos. Con la librería Apache POI se pueden crear Excel desde Java y con la librería OpenCSV exportar datos a archivos CSV con el formato correcto.
    Continuar leyendo...

  • Cómo realizar copias de seguridad en Windows con FreeFileSync

    microsoft software software-libre

    Realizar copias de seguridad cada cierta frecuencia nos salvará de perder los datos en algún momento, no sabemos cuando pero tarde o temprano algo del equipo que usemos fallará ya sea a causa de software o hardware. A nivel de usuario mantener una copia sincronizada en otro dispositivo de nuestros archivos seguramente sea suficiente para no perderlos a causa de un desastre, para ello podemos usar FreeFileSync.
    Continuar leyendo...

  • 4 opciones ofimáticas alternativas gratuitas a Microsoft Office

    gnu-linux microsoft planeta-codigo software software-libre

    Office es la suite ofimática de Microsoft con un margen de diferencia en la cuota de uso muy amplio sobre la siguiente opción en los sistemas con Windows. Es muy completa que incluye más funciones incluso que la mayoría de usuarios conoce o necesita pero también es una opción más cara que otras alternativas que incluso llegan a ser gratuitas sin tener nada que envidiarle para la mayoría de usuarios y casos de uso.
    Continuar leyendo...

  • La clase ThreadLocal de Java y usos prácticos

    java planeta-codigo programacion

    En Java existe una clase con la que podemos asociar un dato al hilo o thread que ejecuta el código. Podemos usar esta clase para evitar incluir en cada método el parámetro de ese dato si es usado en multitud de métodos simplificando en gran medida el código. En las aplicaciones web este dato puede ser el usuario que se ha autenticado, el dominio por el que se ha accedido a la aplicación, el dispositivo móvil, el idioma del usuario o cualquier otra información que queramos esté disponible de forma global en el hilo de ejecución.
    Continuar leyendo...

  • Qué es el concepto de Heap Pollution en Java

    java planeta-codigo programacion

    Al trabajar con referencias de tipos genéricos, raw y arrays debemos conocer el concepto de Heap Pollution si no queremos que en algún punto del programa Java se produzca una excepción no esperada del tipo ClassCastException. No teniéndolo en cuenta nos encontraremos con un error de los más difíciles de depurar ya que la excepción solo nos dirá donde se produjo no donde se encuentra el código erróneo que lo provocó.
    Continuar leyendo...

  • Extraer elementos de una cadena con una expresión regular

    java planeta-codigo programacion

    Java

    Las expresiones regulares son muy útiles para comprobar si una cadena de texto o un subconjunto de ella cumple un determinado patrón. Un uso común de las expresiones regulares es para validar cadenas de texto pero también pueden usarse para obtener coincidencias de la cadena, esto se hace con los grupos de captura.

    Por ejemplo, supongamos que tenemos un código de un producto formateado de la siguiente forma 123-123456/1, usando guiones y una barra para separar tres grupos de números. Y ahora aparte de validar el formato correcto del código del producto nos interesa obtener los tres grupos de números. En vez de separar la cadena con un split por el caracter guión y barra de una forma que sería más laboriosa y difícil de mantener si hay algún cambio, vamos a usar los grupos de captura para obtener los tres grupos de números que forman el código.


    Continuar leyendo...

  • El componente Grid de Apache Tapestry

    java planeta-codigo tapestry programacion

    En la mayoría de aplicaciones no solo es habitual sino algo muy usado el mostrar listados de elementos de forma tabular con paginación y columnas ordenables. En estos listados el complejo componente internamente Grid de Apache Tapestry pero a la vez muy sencillo de usar puede marcar una diferencia significativa en el número de líneas de código necesarias a escribir, la flexibilidad, funcionalidad ofrecida, la productividad al hacer la implementación o modificarla comparándolo con lo necesario en otros frameworks web en los que no hay nada comparable de serie.
    Continuar leyendo...

  • Tutorial sobre los tipos genéricos de Java

    java planeta-codigo programacion

    Hace ya más de una década que en Java 5 se introdujeron los generics para dotar al lenguaje de una mejor comprobación de tipos en tiempo de compilación y al mismo tiempo eliminar los cast que hasta entonces eran necesarios al usar las colecciones. Dada la lentitud de adopción que suele haber en la plataforma Java en los grandes entornos empresariales puede que aún no los hayamos usado extensamente o tengamos alguna duda en su uso. Hay unos cuantos conceptos sobre los generics que son convenientes conocer.
    Continuar leyendo...

  • Usar Twitter desde Java con twitter4j

    java planeta-codigo programacion

    Java

    Twitter ofrece una API para realizar las mismas acciones que como usuarios hacemos con su cliente web, desde publicar tweets, hacer retweets, enviar mensajes directos, leer timelines, … Con la API REST de twitter podemos desde un programa de forma automatizada realizar cualquiera de las anteriores acciones. Por ejemplo, en Blog Stack cada vez que agrega un artículo de cualquiera de las fuentes se publica un tweet con el título del artículo y el enlace al mismo en la cuenta de Twitter de Blog Stack. En este artículo mostraré como desde lenguaje de programación Java podemos usar la API de Twitter para realizar las acciones que deseemos con la librería twitter4j.


    Continuar leyendo...

  • Aplicación de ejemplo usando varias especificaciones de Java EE 7

    java planeta-codigo programacion

    Más lentamente que otras tecnologías Java EE en cada nueva versión sigue adaptándose a las nuevas tendencias en el desarrollo y facilitando la programación de aplicaciones de entidad empresarial. Java EE está formado por un conjunto de especificaciones que resuelven en gran medida muchas de las necesidades funcionales de las aplicaciones ya sean de persistencia, seguridad, mensajería, lógica de negocio, transaccionalidad, inyección de dependencias, presentación HTML, JSON, WebSockets, conexión a base de datos, envío de correos electrónicos o concurrencia. En este artículo mostraré un ejemplo usando varias de estas especificaciones y proporcionaré el código fuente completo.
    Continuar leyendo...

  • Cambiar el formato de archivos de vídeo o películas en GNU/Linux

    gnu-linux software-libre

    FFmpeg

    Linux

    En el artículo anterior comentaba como cambiar el formato de archivos de música o audio, por ejemplo de wav a mp3, de wav a ogg o de mp3 a _ogg de archivos individuales, de forma masiva los de un directorio o de forma recursiva de toda una biblioteca de música organizada en múltiples directorios.

    Para hacer la conversión usaba la herramienta FFmpeg, esta misma herramienta sirve también para hacer conversiones en el formato de archivos de vídeo o películas. Las conversiones de los archivos de música nos puede interesar para reducir su tamaño, un mp3 ocupa mucho menos que un wav y un archivo ogg es un formato libre de patentes no así el formato mp3. En el caso de los vídeos también nos puede interesar hacer una conversión, reducir su tamaño, extraer solo el audio, extraer solo el vídeo u obtener un trozo del vídeo entre varias cosas más que podemos realizar con FFmpeg.


    Continuar leyendo...