JASoft.org

Un error común de concepto: La "velocidad" de conexión a Internet

Un error común de concepto: La "velocidad" de conexión a Internet
Estos días mi proveedor de acceso a Internet (R cable) nos ha hecho un gran regalo a todos los clientes: nos ha duplicado la "velocidad" gratuitamente y para siempre. Así que en lugar de conectarme a 50 Mbps como hasta ahora. lo haré a 100 Mbps. Mira, ¡como los japoneses!. Así da gusto. Ahora podré bajarme las cosas el doble de rápido… ¡Error! Esta (en cualquier caso) buena noticia me ha hecho recordar que tenía pendiente escribir algo sobre este asunto de la "velocidad" de conexión a Internet. Y es que escribo el término entre comillas porque es incorrecto, y de hecho es un concepto que casi todo el mundo interpreta mal y confunde. Y los primeros que fomentan esta confusión, por intereses comerciales, son los propios proveedores de conexión a Internet, a los que le resulta mucho más fácil venderte que te aumentan la velocidad cuando en realidad lo que aumentan es la capacidad, que son cosas muy diferentes. Pasa algo parecido al comprar una cámara de fotos (te vend... [Más]

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

¿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]

Live Tiles para aplicaciones web en Windows 8

Live Tiles para aplicaciones web en Windows 8
Windows 8 supone un cambio radical en cuanto a las interfaces de usuario se refiere, dentro del mundo Windows. Se ha eliminado por completo el clásico menú de inicio que nos había acompañado durante mas de 17 años (desde Windows 95) y todo gira ahora en torno a la nueva página de inicio: Como casi siempre que Microsoft lanza algo nuevo, y especialmente siendo un cambio tan radical como este, las opiniones están polarizadas y no suele haber término medio: o lo adoras o lo odias a muerte. Personalmente he de reconocer que fui de estos últimos cuando probé por primera vez Windows 8 hace alrededor de un año en las primeras versiones preview. No me gustaba nada. Lo cierto es que un año después no sólo he cambiado de opinión, sino que me gusta mucho, especialmente si dispones de una pantalla táctil (no tanto en un PC normal, donde la ventaja no es tan perceptible). Una vez que dominas los cuatro gestos que necesitas conocer y sobre todo cuando ves la gran ventaja que ofrece (incluso en es... [Más]

Brackets: un editor de HTML, CSS y JavaScript muy prometedor

Brackets: un editor de HTML, CSS y JavaScript muy prometedor
Recientemente he descubierto un nuevo editor que está preparando Adobe (sí: los mismos de Flash que se han rendido a la evidencia de HTML 5) y que promete resultar muy útil para desarrollo de aplicaciones Web. Se trata de Brackets, un editor Open Source con licencia MIT que está basado en Google Chrome y ofrece algunas características interesantes para agilizar nuestros desarrollos. De momento está disponible como una aplicación de escritorio que funciona realmente con Chrome por debajo, pero se espera que pronto se pueda utilizar también directamente on-line, sin necesidad de instalar nada. Sus dos principales características en mi opinión que lo diferencian bastante de otros editores son: La posibilidad de editar en línea el código de archivos relacionados que afecta al punto del editor en el que nos encontramos. Ahora lo explico mejor. La posibilidad de ver cómo afectan los cambios que hacemos en tiempo real en una versión en ejecución de la página que estamos desarrolland... [Más]

Elevación de variables (hoisting) en JavaScript

Elevación de variables (hoisting) en JavaScript
En esta ocasión quiero hablar de un efecto quizá poco conocido pero importante del modo en que procesa el código JavaScript. En JavaScript existen variables globales, las cuales tienen sus ventajas en un lenguaje como este, pero también están llenas de peligros, y variables locales, cuyo ámbito se circunscribe exclusivamente a las funciones en las que se declaran. Podemos utilizar una variable global desde dentro de una función cualquiera, ya que están accesibles desde cualquier lugar de la página, por ejemplo: //Variable global var name = "Jose"; function HelloWorld(){   alert(name); } HelloWorld(); Al hacer esto saltará el mensaje con el nombre que hay en la variable. Bastante obvio. Bien, pero ¿qué pasa si definimos una variable con el mismo nombre dentro de la función?: //Variable global var name = "Jose"; function HelloWorld(){   //Variable local   var name = "P... [Más]

Cómo mostrar notificaciones de escritorio con Chrome

Cómo mostrar notificaciones de escritorio con Chrome
 ATENCIÓN OBSOLETO Con Chrome 35, lanzado en mayo de 2014, todo lo explicado en este artículo ha dejado de ser funcionar ya que se ha eliminado el soporte para esta API. Ahora existe una API nueva, estándar, basada en la que dicta la W3C y que además funciona en varios navegadores. Tienes todos los detalles en este artículo. Google Chrome posee una característica sensacional que le permite mostrar notificaciones en el escritorio desde código JavaScript. Lo estupendo de estas notificaciones es que se ven en el escritorio y las puedes mostrar en cualquier momento, aunque el navegador no esté en primer plano o esté minimizado. Si tu aplicación comprueba información en segundo plano con AJAX (como hace GMail con los nuevos correos) el usuario puede dejar el navegador minimizado y aún así recibirá notificaciones cuando haya algo nuevo que atender. Como vemos las posibilidades son muchas Nota: Internet Explorer dispone de un método createPopup disponible desde la versión 7 análogo a... [Más]

Cómo depurar el evento Application_End en ASP.NET

Cómo depurar el evento Application_End en ASP.NET
El evento Application_End se desata en una aplicación Web cuando ésta termina por cualquier motivo, aunque sea para reiniciarse. Escribimos un gestor de este evento dentro de Global.asax en el que incluimos cualquier tipo de código que se encargará de dejar en el estado correcto cualquier recurso global que hayamos inicializado en el evento complementario que se lanza cuando arranca la aplicación: Application_Start. Esto es válido tanto para aplicaciones Web Forms como MVC. El código que pongamos en estos eventos se lanzará únicamente cuando se arranque y se detenga la aplicación. Si queremos depurarlo desde Visual Studio, usando el servidor de desarrollo (que es lo habitual), la cosa tiene algo de truco. El problema es que no es tan fácil conseguir que se cierre la aplicación y que puedas depurarlo al mismo tiempo. Al contrario de lo que muchos programadores se piensan, cerrar el navegador no detiene la aplicación, que sigue activa por detrás, sólo cierras la sesión actual del u... [Más]

Cómo gestionar variables de sesión como un PRO

Cómo gestionar variables de sesión como un PRO
A la hora de trabajar con sesiones en C#, el mayor problema es que, al contrario que en VB, no se facilita el manejo directo de los valores como si fueran propiedades del objeto Session ni se transforman al tipo correcto para hacer operaciones como Session("Contador")++ y similares. Además, adicionalmente, hay que comprobar que las variables existan antes de poder hacer todas estas operaciones. Por ejemplo, si queremos trabajar con una cadena de texto en sesión y poder asignarle un valor, se trata de algo tan sencillo como lo es en VB ya que sólo debes asignarla directamente, así: 1: Session["TextoAGuardar"] = "Este es el texto que quiero almacenar"; Sin embargo si lo necesitamos es realizar una operación matemática es un poco más lioso ya que deberemos comprobar primero que la variable existe y contiene un valor, y ademas convertirla desde "object" que es lo que devuelve por defecto una variable de sesión, al tipo correc... [Más]

Este soy yo y este es mi blog técnico, dedicado al software y a la programación.

Mis otros blogs

- JM Alarcón @ campusMVP.es
Contenido técnico en español orientado a desarrolladores
- JMAlarcon.es
Blog personal no técnico: sociedad, innovación, empresa...

Krasis

- campusMVP.es:
Los mejores cursos online de programación en español

- SELF LMS:
La plataforma de elearning más potente del mercado.