JASoft.org

Intl: la API de localización nativa de JavaScript

Intl: la API de localización nativa de JavaScript
Como seguramente ya tengas claro, la traducción y la localización son conceptos relacionados pero muy distintos. Para traducir tu aplicación basada en Web mucho me temo que no te queda más remedio que usar archivos de lenguaje de algún tipo y alguna biblioteca especializada. Sin embargo para la localización, es decir, la adaptación de la aplicación a las particularidades de cada idioma, todo lo que necesitas viene incluido con tu navegador. Para casi todas las tareas comunes relacionadas con la localización de aplicaciones, JavaScript nos proporciona ayuda integrada y no vamos a necesitar utilizar bibliotecas externas que añaden complejidad, peso y que además con toda seguridad no serán tan buenas como el sistema operativo para estos menesteres. Vamos a conocer cómo sacarle partido... [Más]

Solucionar el error "Thread was being aborted" en ASP.NET

Solucionar el error "Thread was being aborted" en ASP.NET
En ASP.NET ¿has visto alguna vez el error System.Threading.ThreadAbortException? ¿Aunque tus usuarios no se quejan de ningún error, en tus logs no dejan de aparecer errores com este? ¿Si ves tu código no hay nada raro, como mucho una simple redirección a otra página, pero se sigue produciendo? Si contestas que sí a alguna o a todas estas preguntas, a continuación te cuento por qué pasa y cómo solucionarlo. [Más]

Solución a la conexión sin identificar y pública en Windows Server

Solución a la conexión sin identificar y pública en Windows Server
En ocasiones, cuando se reinicia el sistema se fuerza un reconocimiento de las redes a las que está conectado el servidor. Cuando una de ellas no tiene acceso a Internet, Windows la clasifica como una red sin identificar. Generalmente esto ocurre con la que se conecta a la red local. ¿Y cuál es el problema de esto? Pues que a este tipo de redes, por defecto, Windows las clasifica como redes públicas. Y si tienes un servidor, lo más común es que tengas el cortafuegos configurado de manera que las redes públicas tengan muchas restricciones, y las redes privadas o de dominio muchas menos. Vamos a ver cómo evitar el problema. [Más]

Creando diálogos y pop-ups nativos con HTML: El elemento "dialog" de HTML 5.2

Creando diálogos y pop-ups nativos con HTML: El elemento "dialog" de HTML 5.2
Una necesidad común en casi cualquier aplicación Web es la de mostrar diálogos al usuario. Se trata de los típicos "pop-ups" que surgen en la aplicación de vez en cuando con múltiples propósitos: notificaciones, preguntar algo al usuario, mostrar los detalles de un registro en una base de datos... Casi cualquier cosa que se te pueda ocurrir. Crear algo como esto mediante el uso de capas y un poco de JavaScript no es muy complicado, pero tiene bastantes "pegas". Por eso el W3C, encargado de los estándares Web, definió en HTML 5.2 un nuevo elemento específicamente pensado para esta tarea: <dialog> y que tiene muchas aplicaciones. Vamos a ver cómo sacarle todo el partido. [Más]

Expresiones regulares en JavaScript (y otros lenguajes): búsquedas anticipadas y retrasadas

Expresiones regulares en JavaScript (y otros lenguajes): búsquedas anticipadas y retrasadas
Como ya he dicho en muchas otras ocasiones, en mi opinión las expresiones regulares son una de las herramientas más potentes que puede aprender un programador, y no solo para programar ya que sirven también en muchos entornos y herramientas. Hoy me voy a detener a explicar con detalle el funcionamiento de una característica potente e infrautilizada de las expresiones regulares y que muchos programadores no entienden bien por lo que he podido comprobar. Se trata de las búsquedas anticipadas (lookahead asssertions en inglés) y las búsquedas retrasadas (lookbehind asssertions en inglés), que colectivamente se suelen denominar "Búsquedas alrededor" (del inglés lookaround asssertions). [Más]

¿Es lo mismo string o String en un programa C#?

¿Es lo mismo string o String en un programa C#?
Esta es una pregunta típica de principiante que suele tener una respuesta muy clara y concisa: sí, es indiferente usar una cosa o la otra. Incluso hay un estilo "estándar" que usa casi todo el mundo para cuando usar uno u otro. Pero, sin embargo, las cosas nunca suelen ser tan fáciles en los casos extremos... En este artículo explico por qué es lo mismo usar uno u otro en la mayoría de los casos, pero cómo el hecho de usar uno de ellos puede crear consecuencias inesperadas e incluso peligrosas algunas veces, por lo que deberíamos evitarlo. ¡Allá vamos! [Más]

Mi aplicación ASP.NET se reinicia, doctor, ¿es grave?: Aplicaciones, Grupos de aplicaciones y Dominios de Aplicación en IIS y ASP.NET

Mi aplicación ASP.NET se reinicia, doctor, ¿es grave?: Aplicaciones, Grupos de aplicaciones y Dominios de Aplicación en IIS y ASP.NET
Los tres términos del título de este post suelen causar bastante confusión entre los desarrolladores ASP.NET que además deben administrar un servidor web con Internet Information Server bajo Windows. Mi objetivo hoy va a ser tratar de aclararlos y ver qué implicaciones tienen en el día a día de una aplicación Web creada con ASP.NET: cómo funcionan, cuándo se reciclan o se inician, cómo se afectan unos a otros... [Más]

JavaScript: por qué obtengo fechas diferentes por consola y por pantalla

JavaScript: por qué obtengo fechas diferentes por consola y por pantalla
Hoy una curiosidad rápida y simple pero puede que de interés, surgida a partir de la pregunta de un alumno y que tiene que ver con la manera de gestionar la misma información que tienen los navegadores dependiendo de si se hace en la interfaz de usuario o en la consola, la cual además puede variar de un navegador a otro. Tiene poca incidencia práctica, pero puede ser interesante... [Más]

Expresión regular para detectar caracteres repetidos

Expresión regular para detectar caracteres repetidos
Las expresiones regulares son uno de los mejores inventos de la historia de la programación. Yo las uso para todo. El problema de las expresiones regulares es que, aunque lo básico es sencillo, pueden llegar a ser muy fastidiadas. Hay algunas que, para calcularlas, de entrada pueden parecer muy simples pero que te puede llevar horas dar con ellas. Son casi un lenguaje de programación en si mismas 😊 Otra cosa que hay que saber es que Internet está lleno de páginas con información equivocada o directamente errónea sobre expresiones regulares. En este post analizo detalladamente la construcción de una expresión regular que parece sencilla de entrada, pero que requiere dominar varias cosas importantes que no son tan evidentes para la mayoría. [Más]

Compartir código en Visual Studio: ¿proyectos compartidos o librerías?

Compartir código en Visual Studio: ¿proyectos compartidos o librerías?
La manera tradicional de compartir código entre proyectos en Visual Studio siempre ha sido la creación de bibliotecas de código, es decir, ensamblados en forma de DLL que permiten la reutilización de clases entre proyectos. Este es el camino a seguir en la mayor parte de las ocasiones ya que creamos una DLL con la funcionalidad requerida a compartir entre varias aplicaciones, y simplemente añadiendo una referencia a dicha DLL (o el proyecto, si está en una misma solución) a otro de nuestros proyectos en Visual Studio ya tenemos la funcionalidad que necesitábamos. Pero no siempre es lo que necesitamos. En ocasiones lo que nos interesa es compartir funcionalidad entre proyectos compartiendo directamente el código fuente. A lo mejor no nos interesa distribuir otra DLL con el producto final, o tal vez queremos ir tocando al código original en función de las necesidades y que éste evoluciones por igual en todos los proyectos que lo usan. También puede ser muy útil cuando quieres usar el mismo código genérico en varios proyectos que se enfocan y compilan para plataformas diferentes. Vamos a ver cómo conseguirlo. [Más]

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

¡Sígueme en Twitter!

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.

Histórico