JASoft.org

Rendimientos de carga de páginas: los conceptos “Wall Time” y “CPU Time”

Rendimientos de carga de páginas: los conceptos “Wall Time” y “CPU Time”
Esta época, entre otras muchas otras cosas, estoy trabajando en un nuevo libro de JavaScript que verá la luz en los próximos meses. Uno de los capítulos se centra en la depuración de código JavaScript usando las herramientas que ofrecen de serie los navegadores. Entre éstas, una muy interesante es el “Profiler”, disponible tanto en Chrome como en Internet Explorer, y en Firefox a través de Firebug. El profiler tiene varias sub-herramientas, como el analizador de tiempos de ejecución que nos permite obtener información detallada y estadísticas sobre los tiempos de ejecución de nuestra página, y sobre sus consumos de memoria, identificando así posibles cuellos de botella, funciones poco optimizadas, etc... E incluso bugs en el motor de renderizado de las páginas (Se han dado casos). En el libro me estoy centrando en las herramientas de desarrollo de Google Chrome, y... [Más]

Hackeando los validadores de ASP.NET

Hackeando los validadores de ASP.NET
ASP.NET Web Forms ofrece unos maravillosos controles de validación que nos permiten controlar los valores de los campos de un formulario tanto en el navegador como luego en el servidor. Así, basta con arrastrar unos cuantos controles sobre la página para validar campos obligatorios, rangos de valores, expresiones regulares, tipos de datos introducidos, etc... Incluso podemos definir nuestras validaciones personalizadas, si bien esto requiere mucho más esfuerzo por nuestra parte. Estos controles están muy bien pero, en el lado de cliente (navegador), se limitan a mostrar mensajes cuando falla alguna validación: Los mensajes podemos agruparlos en un control de resumen y cambiar el estilo que utilizan, pero no nos permiten apenas configuración del lado cliente. ¿Qué pasa si lo que necesitamos es tener mayor control sobre lo que ocurre en el navegador durante la validación? ¿Podemos hacer algo sin complicarnos demasiado la vida? Por ejemplo, un caso muy típico es querer destacar los ... [Más]

Instancias de SQL Server: ¿qué son y para qué sirven?

Instancias de SQL Server: ¿qué son y para qué sirven?
Cuando instalas SQL Server se te pide que otorgues un nombre a la instancia que estás instalando. Y cuando te conectas desde una aplicación o con el SQL Server Management Studio (SSMS) también lo haces a una instancia determinada de SQL Server. Es tan común que todos lo damos por hecho, pero realmente ¿cuántos saben qué es una instancia de SQL Server y cuál es su utilidad?. Bien, en SQL Server es posible ejecutar varias copias del servidor de datos al mismo tiempo, con sus usuarios, bases de datos y demás elementos independientes unos de otros. A cada una de esas copias se le llama “instancia”. Lo que tenemos con las instancias son varios SQL Server ejecutándose en paralelo en la misma máquina. El límite es de 50 de instancias por cada máquina. Existen dos tipos de instancias: Las instancias con nombre: se accede usando una barra inclinada hacia la izquierda seguida del nombre de la instancia, que es la forma de identificarlas. Por ejemplo: (local)\Instancia, .\Instancia, localho... [Más]

Los selectores CSS se procesan de derecha a izquierda (y por qué eso te debe importar)

Los selectores CSS se procesan de derecha a izquierda (y por qué eso te debe importar)
Las hojas de estilo en cascada o CSS son indispensables en cualquier aplicación Web no trivial. Nos permiten definir el estilo visual (e incluso el comportamiento) que mostrarán los diferentes elementos de contenido de una página o aplicación Web. Sin ellas serían imposibles la separación entre contenido y visualización o la adaptación de un mismo diseño de página a diferentes dispositivos. Todos estamos acostumbrados a escribir CSS con sus diversas combinaciones de selectores, y cuando adquieren su verdadera potencia es, precisamente, al combinar las definiciones de selectores para poder asignar estilos con mucha exactitud. Por ejemplo, imaginemos que tenemos una página con multitud de listas no ordenadas (por ejemplo colecciones de recursos en Internet) y queremos darle un estilo particular a los elementos de determinadas de estas listas. Podríamos especificar un selector como este: 1: .recurs... [Más]

Instalar Chrome en Linux Mint 12

Instalar Chrome en Linux Mint 12
Desde que Ubuntu empezó a hacer el tonto con la interfaz Unity y desde que la actualización a su última versión me ha dejado sin ratón ni forma (aparentemente) de hacer que vuelva a funcionar, estoy usando Linux Mint 12 para juguetear con Linux (y sobre todo con Mono). La verdad es que tenía que haberme cambiado hace ya tres versiones, desde que Ubuntu estrenó la apestosa interfaz Unity. Mint va de maravilla, tiene tanto software como Ubuntu y es incluso más sencillo de instalar y configurar. Sin embargo no está exento de problemas. Por ejemplo, como me niego a usar Firefox salvo para probar las aplicaciones, la mejor opción es usar Google Chrome. El problema es que te bajas el paquete de instalación para Debian y no te funciona, diciéndote todo el rato algo como esto cuando le haces doble-clic: “No se puede abrir google-chrome-stable_current_i386.deb. TEl paquete debe estar corrupto o no tienes permisos para abrir el archivo. Comprueba los permisos del archivo” Sin embargo el pa... [Más]

SQL Server: enviar automáticamente los resultados de una consulta por email

SQL Server: enviar automáticamente los resultados de una consulta por email
Hoy tuve que montar un sistema sencillo para poder enviar de manera periódica, en formato CSV, una serie de datos a unos usuarios. Los datos se obtienen a partir de una consulta más o menos compleja a una base de datos SQL Server. Lo que necesitaba era que los resultados de esa consulta, una vez a la semana, se enviaran por email a un usuario para que pudiera abrirlos en una Excel y trabajar con ellos. Para conseguirlo no quería programar ni tampoco crear ningún paquete de integración específico ni hacer nada complicado. Lo único que necesitaba era definir la consulta, el formato y el destinatario. Punto. Mala suerte: en SQL Server no hay nada incluido nativamente que nos permita conseguir algo así de manera tan directa, lo cual no deja de ser una pequeña vergüenza porque realmente es algo habitual y deberían facilitarlo un poco ¿verdad? Así que tuve que improvisar y buscar una manera de conseguirlo sin complicarme demasiado la vida. A continuación os cuento el método que se me ocu... [Más]

¡campusMVP en inglés!

¡campusMVP en inglés!
Como seguramente muchos de los lectores de este blog sabéis, tenemos un estupendo proyecto de formación on-line sobre tecnologías Microsoft llamado campusMVP. A través de él conocidos MVPs y personalidades de este mundillo ofrecen cursos on-line tutelados sobre tecnologías de Microsoft para desarrolladores. Llevamos trabajando con campusMVP en España y -en menor medida- Latinoamérica, desde el año 2005, es decir, los últimos 7 años. Además desde 2007 tenemos una editorial técnica complementaria con libros sobre las últimas tecnologías. Además de en España, ya llevamos vendiendo libros en el mercado de EEUU durante casi dos años, y la verdad es que nuestros libros funcionan muy bien allí. Nuestra metodología a la hora de crear e impartir los cursos así como la orientación al aprendizaje práctico, consiguen que un porcentaje altísimo de los alumnos nos valoren muy bien (el 87% el año pasado nos han puesto un 4 o 5 sobre 5), y que la mayoría tarde o temprano se formen de nuevo con nos... [Más]

Trucos de uso y productividad para Windows 8

Trucos de uso y productividad para Windows 8
Llevo unos cuantos días usando la nueva versión beta denominada Consumer Preview de Windows 8. Ya antes había usado la Developer Preview de hace unos meses, pero desde una máquina virtual por lo que no le daba un uso real. ahora la he montado en mi portátil, actualizando desde Windows 7, y la uso en real varias horas al día, por lo que puedo hablar con mucho más conocimiento de causa. Para empezar he de confesar públicamente que la interfaz Metro y la desaparición del botón de inicio me irritan y es algo que no me gusta nada. para un "power user" como yo es una pérdida de productividad en un entorno no táctil, si bien probablemente para los usuarios más comunes pueda ser mejor. Microsoft ha hecho sus estudios concienzudos (muy interesante, por cierto), y seguro que son gente muy lista. Puede que me acabe acostumbrando con los meses y cambie de opinión (sobre todo si uso un tablet con Windows 8), pero hoy por hoy para mi es una pérdida de productividad al trabajar. Y no soy e... [Más]

Pedir una cosa y recibir otra - Parte IV: Llamadas de servidor que recrean la petición completa

Pedir una cosa y recibir otra - Parte IV: Llamadas de servidor que recrean la petición completa
Hasta ahora con Transfer y Execute hemos visto que podemos ejecutar otras páginas del mismo tipo sin necesidad de redirección desde el lado cliente. Sin embargo un efecto secundario que tiene su uso es que, como no se regenera la petición sino que se ejecutan dentro del contexto de la petición actual, no entran en juego los controles de seguridad y otros eventos del pipeline HTTP para la segunda página. Es por ello por lo que en nuestro ejemplo se ha podido mostrar el contenido de la página "P2.aspx" a pesar de que estaba protegida. Existe una variante de estos métodos llamada TransferRequest que permite conseguir una petición completa desde el propio servidor, sin pasar por el cliente como ocurría con Redirect. Este método se utiliza del mismo modo que Transfer pero en este caso la segunda página pasa por todo los estadios de una petición HTTP normal, como si hubiera sido hecha desde el cliente desde... [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.