JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

Una opinión personal sobre la gestión de Angular 2

Como seguramente sabrás, se acaba de presentar Angular 2, llamada a ser según algunos el futuro del desarrollo web. A continuación os comento mi punto de vista sobre esta tecnología, pero no sobre si es buena, mala o regular, o las ventajas y desventajas que tiene, sino sobre cómo pienso que lo han hecho de mal respecto a gestionar la comunicación del proyecto. Y es que algo como esto es crucial si estás gestionando una tecnología utilizada por millones de personas, como es el caso. [Más]

Nueva versión mejorada de FileEncodingConverter (v1.5.0)

Acabo de liberar en GitHub una nueva versión de la aplicación FileEncodingConverter. Concretamente la 1.5.0. He añadido soporte para codificación de destino UTF-8 sin BOM.Tienes el código fuente y el ejecutable en GitHub.A continuación, como resumen, reproduzco el README.md del repositorio de Github. FileEncodingConverter Convierte todos los archivos de una carpeta y sus subcarpetas a una codificación determinada. Introducción Hace unos años creé una aplicación, pequeña pero muy útil, llamada FileEncoding Converter, cuyo código tienes en este repositorio. Su objetivo es sencillo: le pasas una carpeta, y opcionalmente una codificación y un filtro de archivos y convierte todos los archivos a la codificación especificada. Se trata de una aplicación de consola (línea de comandos) que toma los siguientes parámetros: 1.- La ruta base que contiene nuestros archivos a procesar. Acepta rutas relativas a la carpeta actual y rutas absolutas. 2.- El tipo de codificación a... [Más]

Instrucciones paso a paso para reparar o ampliar un Asus Nova Lite/P20/P22

Este post se sale de lo habitual por varios motivos:Es sobre hardwareNo es un post sino un "meta-post"Es en inglésTengo desde hace años un ordenador compacto Asus Nova Lite que uso fundamentalmente para multimedia. Es un ordenador que ya tiene bastante tiempo y la verdad es que se me había quedado muy justito. Pero es bonito, muy pequeño y lo puedo poner a funcionar en cualquier esquina de la casa sin que moleste. Así que, más por entretenerme que porque me hiciese falta, decidí mejorarlo y actualizarlo con un disco duro SSD y más memoria (de 2 a 4GB). Por menos de 80€ es casi como tener un ordenador nuevo, y aunque el procesador se queda un poco corto (es un Celeron a 1.2Ghz) no lo uso para nada que sea intensivo en cómputo, por lo que la memoria y sobre todo el disco le van perfectos.El caso es que pensé que sería fácil abrirlo y despiezarlo, pero para nada: me resultó muy complicado, porque todo está muy apretado y no es nada fácil ver por dónde tirar. Además, en Internet no hay inf... [Más]

VÍDEO: Montar Linux Bash en Windows 10 y primeros pasos

En los últimos años, con la proliferación de herramientas de desarrollo de código abierto nacidas en el mundo Linux, muchos desarrolladores creaban versiones de sus herramientas solo para sistemas basados en UNIX, como Linux o MacOS. Esto a veces dejaba fuera (o con mucho retraso) a los desarrolladores que utilizan Windows como sistema operativo principal. De hecho algunos tutoriales de herramientas de programación parten de la base de que estás usando Linux o Mac, y todas las explicaciones se ofrecen para éstos, dejando los comandos de Windows fuera y dificultando su seguimiento. Conscientes de este problema y de que Windows no estaba siendo la plataforma favorita para muchos desarrolladores, Microsoft ha incluido en Windows 10 algo impensable hace años: Linux ejecutándose dentro de Windows.Microsoft también acaba de anunciar la disponib... [Más]

¿Detectar dispositivos móviles mediante código? Una mala idea...

Hace poco alguien me preguntó cómo podía hacer, mediante JavaScript, para detectar si el dispositivo que estaba usando un usuario era o no un móvil. La idea era adaptar la interfaz y parte del JavaScript a ese caso concreto, para mostrar una interfaz y funcionalidad diferente para dispositivos móviles respecto a la "versión" de escritorio de la aplicación web. De entrada, detectar el dispositivo es una práctica muy poco recomendable. Hace ya bastantes años era lo habitual, pero en los últimos años, con la proliferación de dispositivos, navegadores, factores de forma, etc... y la velocidad con la que cambian las características soportadas por todos ellos, hacer una detección de tipo de dispositivo o navegador es una mala idea. La cadena de agente de usuario: mala idea Lo que se hacía hace mucho tiempo para detectar el tipo de dispositivo era utilizar la cadena de agente de usuario (User Agent) de los navegadores, para determinar el tipo de navegador, su versión y el sistema operativo... [Más]

Midiendo el rendimiento de nuestro código JavaScript de manera sencilla desde la consola

Hace unas semanas os contaba un truco poco conocido pero muy útil para mostrar datos de modo tabular por la consola durante una sesión de depuración con JavaScript. Hoy traigo un par de trucos más del mismo estilo que estoy seguro de que no son demasiado conocidos tampoco.Cronometrar códigoUna necesidad habitual es medir el tiempo transcurrido al ejecutar determinado código, por ejemplo para tratar de ver cuál de dos estrategias diferentes de código es la más rápida con un número grande de datos o cosas por el estilo.Una forma habitual de hacerlo es guardar la fecha y hora actuales en una variable antes y después de la ejecución, y luego mostrar por consola la diferencia en milisegundos entre ambas. Sin embargo existe una forma mucho mejor que es utilizar los métodos console.time() y console.timeEnd().Estos métodos de la consola toman como parámetro el nombre de un contador, de modo que además podemos utilizar más de uno al mismo tiempo, midiendo incluso tiempos en paralelo si fuera ne... [Más]

Protege tu PC y tus discos externos de robos y pérdidas con TPM y Bitlocker

Cualquiera que maneje una computadora, especialmente si es un portátil, corre el riesgo de perderla o de que se la roben. Incluso un ordenador de sobremesa puede verse comprometido y hay bandas que roban en las empresas solo por los datos que pueden sacar de los PCs. Por ello es importante proteger los datos de cualquier sistema portátil que manejemos, en especial si se trata de una computadora de la empresa. Ya no solo por la información que tengamos, sino porque si perdemos o nos roban un ordenador empresarial, el asaltante podría tener acceso a toda la red interna de la organización. Además, si almacenamos claves u otra información valiosa en la maquina (nunca debemos hacerlo sin cifrar esa información) es todavía peor. Si tienes acceso físico a una maquina es bastante sencillo poder saltarse toda la seguridad y acceder usando cualquiera de las cuentas de usuario existentes, cambiándoles la contraseña. También es posible extraer el disco duro, pincharlo a otro equipo y utiliza... [Más]

Precarga y renderizado de páginas y recursos para mejorar el rendimiento de navegación

Existen multitud de técnicas para mejorar el rendimiento de las páginas web y conseguir mejores tiempos de respuesta, aunque la mayor parte de estas mejoras se deben realizar en el servidor. Sin embargo existen algunas cosas que podemos hacer desde el propio código HTML, en el Front-End y sin la intervención del servidor, para mejorar la velocidad de carga de las páginas siguientes a la actual y que creo que no son muy conocidas por la comunidad de desarrolladores. Imagina la siguiente situación: tienes una presentación basada en HTML en la que el usuario se va moviendo hacia adelante para ir visualizando una serie de recursos. Cada pulsación del botón "adelante" hace que se cargue un nuevo recurso. El caso típico es un carrusel de imágenes en el que, cada vez que pulsas en el botón de "adelante" se carga la siguiente imagen que haya en la lista. Si las imágenes son grandes, con mucha resolución, no están muy optimizadas o simplemente la conexión es lenta, es posible que tarden en c... [Más]

HTML y CSS: El "extraño" comportamiento de las cajas anidadas

Un concepto que todo programador Web debe tener claro es el modo de visualización CSS de los elementos. Es indispensable ya que condiciona por completo el comportamiento de los elementos HTML dentro de una página. Otro comportamiento que es importante tener claro es todo lo que se refiere con el derrumbamiento de márgenes verticales de los elementos. Éste hace que los márgenes verticales no se sumen, sino que se combinen, aunque no en todas las circunstancias. Un caso "extraño" se da cuando tenemos en una página elementos anidados, es decir, cuando uno o varios elementos están contenidos dentro de otros. Por ejemplo, consideremos esta página tan sencilla con dos elementos de tipo
, uno dentro de otro... [Más]