JASoft.org

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

MENÚ - JASoft: JM Alarcón

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]

La solución al problema de las claves seguras: NullPass+

En la actualidad utilizamos tantos servicios on-line diferentes y heterogéneos que es muy complicado gestionar todas las claves que debemos manejar. Yo mismo manejo varios centenares de claves diferentes, lo cual por si mismo es todo un reto. Pero es que además, si realmente quieres que sean seguras, deberías usar una clave compleja, larga y diferente para cada uno de los servicios que utilices. La realidad es que, al final, la mayor parte de los usuarios hacen justo lo que jamás deberían hacer: utilizar una misma clave, sencilla y fácil de recordar, para todos los servicios. Problema resuelto para ellos, pero luego pasan "cosas extrañas". Algunas opciones para guardar tus claves de manera segura Lo de las claves es algo que ha mejorado bastante en los últimos años gracias a la posibilidad de loguearse en muchos sitios usando tu cuenta en algún servicio popular como GMail, Facebook o Twitter. Lo bueno de eso es qu... [Más]

Utilidad: Copiar un archivo a todas las subcarpetas de cierto nombre

Ayer necesité hacer precisamente eso: tenía varias carpetas de primer nivel con una estructura de subcarpetas muy grande y llena de niveles. Dentro de éstas había una serie de carpetas -todas con el mismo nombre- en las que debía copiar un determinado archivo o, si existía, sobrescribirlo con el nuevo. Significaba revisar miles de carpetas en intrincados niveles, localizar las que se llamaban de determinada forma, y copiar dentro de éstas el archivo. Hacer algo así a mano para cada caso me hubiera llevado horas, por lo que estuve buscando la manera de automatizarlo. Primero lo intenté usando una simple línea de comandos y la instrucción FOR y también la instrucción FORFILES. Estuve bastante tiempo intentándolo, pero no fui capaz de conseguirlo :-S Así que al final invertí un rato en crear un programa de línea de comandos en C# que hiciera exactamente lo que yo necesitaba, y debería haber empezado por ahí, pues me hubiera ahorrado un precioso tiempo. El programa se llama "Copiar... [Más]

¿Usas Instapaper y Windows 8? Pues tengo una app gratis para ti

Instapaper es un sensacional servicio para los que leemos mucho en Internet. Es muy simple pero extremadamente útil: cuando estás ojeando un post en un blog, un artículo, un vídeo o cualquier otra cosa en Internet y no tienes tiempo de pararte a leerlo a fondo pulsas el botón”Read later” y automáticamente te guarda una referencia en tu cuenta de Instapaper para que lo leas con calma más tarde, cuando tengas tiempo. Yo generalmente acumulo de esta forma decenas de artículos interesantes que luego leo el fin de semana desde mi tablet. Para conseguir su “magia” Instapaper utiliza un scriptlet -es decir, un fragmento de JavaScript- que se coloca en tu barra de favoritos y cuando lo pulsas, envía la URL a la lista de leer más tarde (debes estar autenticado antes, claro). En esta figura puedes ver el scriptlet (lo he renombrado) en mi navegador de escritorio: También existen extensiones para Firefox y Chrome que permiten hacer lo mismo. Navegador en Windows 8 Con los años esta aplic... [Más]

YouTube and Vimeo advanced viewer extensions for BlogEngine.NET

I was using the YouTubePlayer and VimeoPlayer extensions that come with BlogEngine.NET out of the box. They do a great work showing videos in desktop browsers, but I found some limitations that I wanted to overcome. So I decided to write my own extensions to substitute this two. The YoutubeViewer and VimeoViewer extensions that I've written offer the following features: Automatically embed a viewer for YouTube or Vimeo videos with a simple syntax. The basic syntax is and where XXXX is the video ID that you can get from the URL (squared in red in the images): The viewer adapt automatically to the capabilities of the browser used to browse your site. That means that they will be displayed correctly and full-featured even in mobile devices like iPhone, Android or iPad. From the Extensions tab of BlogEngine you can set the default values for the viewer's Width, Height, Border (Yes or No), Include related videos (YouTube only), Allow Full Screen (YouTube only), Title text ... [Más]

Utilidad rápida: Suspender Windows (forzar modo Sleep)

Yo me suelo conectar en remoto a un equipo de mi oficina, el cual luego queda en modo "Sleep", o sea suspendido, cuando no lo voy a usar. Cuando lo quiero volver a usar lo despierto remotamente. El caso es que desde Terminal Server (escritorio remoto) se puede apagar el equipo (con shutdown.exe), cerrar tu sesión e incluso hibernarlo, pero no hay una forma directa de poner el equipo en modo de suspensión, de forma que luego arranque instantáneamente. Así que he hecho una pequeña utilidad con una sólo línea de código sacando partido a un nuevo método de la clase Application de Windows Forms que apareció con .NET 4.0: SetSuspendState. Este método permite forzar la suspensión o hibernación del equipo actual siempre que nuestro usuario tenga permisos para ello. Así que todo el código de la aplicación, incluyendo  gestión de posibles excepciones, es este: Más sencillo imposible. Para el que no quiera pasar el trabajo de compilarlo le dejo el ejecutable en un zip, y también el p... [Más]

Herramienta Open Source para análisis de seguidores en Twitter con cuestiones técnicas interesantes

Este es un proyecto personal en el que he estado trabajando durante los últimos meses en mis ratos libres (que son pocos). Lo empecé como un juego para desestresarme y no oxidarme en las lides de la programación. Pero al final he querido darle calidad profesional y me he enredado más de la cuenta añadiéndole posibilidades, puliendo la interfaz de usuario, añadiendo pequeños detalles técnicos complicados que seguramente no va a notar ningún usuario "normal", en el periodo de pruebas, etc... Twitter Followers Monitor es una aplicación gratuita y Open Source. Como su propio nombre indica te permitirá monitorizar los seguidores de cualquier cuenta de Twitter, llevando un histórico de cambios y siendo notificado cuando se produzcan. Puedes monitorizar varias cuentas a la vez y no tienen porque ser cuentas tuyas, ya que no es necesario saberse las claves. El proyecto está hecho con Visual Studio 2010 y .NET 4.0, y usando el lenguaje C#. No utiliza ningún módulo componente externo, así que c... [Más]

Creación de manejadores de peticiones asíncronos: El contador de Meneame.net

Meneame.net es una Web recopiladora de enlaces en la que los usuarios publican enlaces que creen de interés, y el resto de los usuarios votan o critican en función de lo sus intereses. La teoría es que, de este modo, los enlaces más interesantes subirán hacia las primeras posiciones de su categoría en virtud de este proceso de "crowdsourcing". La práctica es que no siempre es así (prueba a posicionar un enlace técnico, por ejemplo). Pero no obstante la web es muy interesante para encontrar enlaces y noticias de interés general dentro de temáticas más o menos prosaicas. A cada voto que recibe una URL se le denomina "meneo". El caso es que, al menos oficialmente, no existe ningún botón de información sobre cuántos "meneos" tiene una determinada URL, al estilo de los que tiene Facebook o Twitter. Los únicos desarrollos que integran este botón para poder poner dicha información en tu blog o web pertenecen a sitios de valoración social, estilo ShareIt y compañía, por lo que si quieres tene... [Más]

BlogEngine.net Extension: Scribd Viewer 1.0

I'm a big fan of the "youtube of documents", Scribd. Our company has a page full of interesting technical documents there (in Spanish, sorry) and it's frequent that we need to add one of those documents embedded in a blog post or page. So I decided to create a new extension for BlogEngine.net that will allow to use the already available embdedded codes that Scribd offers for WordPress users. Installing the Scribd Viewer Extension for BlogEngine.net Just download this ZIP here: ScribdViewer.zip (108KB), expand the contenst and copy the ScribdViewer.cs file to your BlogEngine.net /App_Code/Extensions folder. That's it. Now go to the administration part of your blog and in the "Extensiones" tab make sure that the new "Scribd Viewer" extension is enabled. You can configure it by setting the width and height of the viewer (read more about it below). Now you can start using the extension for embedding Scribd documents in your posts and pages (both types of content are supported). ... [Más]