La semana que viene estaré de ponente en los TechDays, y algunas cosillas más

Pues eso… Os copio lo que salió al respecto en el último boletín de campusMVP…


Cómo seguramente sabrás, la semana que viene tendrá lugar en Madrid el mayor evento técnico gratuito que se ha celebrado en España alrededor de tecnologías Microsoft: Microsoft Techdays, The Evolution Show. La agenda viene repletita de charlas interesantres y durante dos días se analizarán a fondo las novedades de Visual Studio 2008, Windows Server 2008 y SQL Server 2008. ¡Ya hay más de 5.000 anotados!


Krasis y campusMVP estarán presentes en el evento ya que tendremos un stand en el área de expositores, en el que podrás visitarnos e incluso llevarte nuestros libros firmados por sus autores. Entre los que nos visitéis sortearemos multitud de premios: libros, camisetas y cursos. 


Además de esto, nuestros tutores serán ponentes en las conferencias del evento, en concreto estarán allí hablando, además de yo mismo Rodrigo Corral, Luis Fraile, Octavio Hernández, Iván González, Alejandro Mezcua y Unai Zorrilla, que se unirán al resto de ponentes de Microsoft y otras empresas para crear un evento como nunca has visto.


Sumérgete con nosotros en VS2008Además, para celebrarlo, hemos sacado un nuevo curso de Introducción a las Tecnologías de Visual Studio 2008. En él cinco expertos MVP te presentan las cinco principales tecnologías que vienen integradas en la nueva herramienta de desarrollo de Microsoft. Es la mejor manera de ponerte al día rápido y conocer las posibilidades que estas tecnologías te brindan a ti y a tu empresa.


Además, si te compras cualquier edición de Visual Studio 2008, Microsoft te paga este curso. Gratis, por la cara, sin sorteos, y puedes llevarte también un smartPhone HP iPaq 514 🙂 


Lanzamientos 2008

Problema: Campos calculados de un DataTable, la función IIF y division por cero

Este asunto es de los que te pueden tener una mañana entretinido como un bobo mientras intentas averiguar qué #%$# está pasando…


Hoy estuve tocando una aplicación vieja escrita en .NET 1.1. El caso es que el programador había metido una campo calculado en un DataTable que incluía una división, así:


tabla.Columns.Add( new DataColumn( «Rentabilidad», typeof(decimal), «Beneficio / Ingresos»);

El problemilla es que algunos registros tienen los ingresos a cero, por lo que en cuanto creabas el campo se obtenía una divisón por cero, claro.


Lo primero que se te ocurre hacer (parte de meterlo en la consulta de la base de datos, que es lo primero que este programador debería haber hecho) es lo siguiente:


tabla.Columns.Add( new DataColumn( «Rentabilidad», typeof(decimal), «IIF(Ingresos = 0, 0, Beneficio / Ingresos)»);

Es decir, que si los ingresos son diferentes a cero que haga la divisón, si no que no la haga. Vale, el problema es que simplemente esto no funciona y sigues obteniendo todo el rato una divisón por cero. ¿y eso?!!!!.


Bueno, pues resulta que el caso es que esta función evalúa los dos miembros siempre, no sólo el miembro que corresponda al resultado de la condición, como parece lógico, así que no nos vale.


¿La solución?


Pues hay varias.


1) Mete el cálculo en el servidor, en la consulta SQL con un condicional.


2) Crea el campo sin expresión, recorre todos los registros y asigna por código el valor (no me gusta nada, sólo es una opción).


3) Sé creativo 🙂 Por ejemplo, esta expresión es equivalente a la que originalmente queríamos, aunque un poco más rebuscada. Lo que consigue es evitar cualquier división por cero en cualquier circunstancia y multiplica por 1 o 0 el resultado para devolver el correcto:


tabla.Columns.Add( new DataColumn( «Rentabilidad», typeof(decimal), «Beneficio / IIF(Ingresos=0, 1, Ingresos) * IIF(Ingresos= 0, 0, 1)»));

mola ¿eh? 🙂


En fin… pienso que lo lógico sería que IIF funcionara como cabría pensar y no tener que estar con estas técnicas retorcidas, pero espero que a alguien le sirva lo que aquí explico.


Saludetes


JM

TRUCO RÁPIDO: intellisense transparente en Visual Studio 2008

Nadie duda que Intellisense es una ayuda impresionante para todos los programadores. Yo, que tengo una memoria de pez, no sería capaz de programar sin esta característica 🙂


Sin embargo tiene un defecto que siempre me ha molestado: cuando estás programandoy aparece el Intellisense, muchas veces te puede tapar el código que hay debajo (o encima si estás muy al borde inferior) y a lo mejor necesitas consultarlo para ver cómo se llama una variable o algo:



Bueno, pues con Visual Studio 2008, si nos pasa esto, lo único que tenemos que hacer es pulsar la tecla CTRL.


Al hacerlo, mientras no la soltemos, la ventana de Intellisense se vuelve transparente en casi su totalidad:



Con lo que problema resuelto. Estos tíos de del equipo de Visual Studio están en todo. 🙂


Espero que te resulte útil.


JM.

Mi aplicación AJAXInterceptor reseñada en Ajaxian, entrevista en Baquía y otras cositas más de estos días

Bueno, hoy toca un poco de actualización sobre mis actividades y, por qué no, un poquito de auto-bombo, que nunca viene mal, jeje 🙂 Espero que lo perdoneis…


Estos días voy absolutamente de cabeza y no tengo tiempo de postear nada aquí ni en mi otro blog sobre e-mail marketing. Pero es que estoy hasta el cuello…



· Estoy preparando mi ponencia para el Developer Day del próximo días 26 y 27 de Febrero en Madrid. Hablaré sobre las novedades en desarrollo Web con ASP.NET 3.5. Varios de nuestros tutores van a ser ponentes también en el evento. Krasis/CampusMVP es colaborador Silver y tendremos un stand allí en el que podremos vernos en persona y charlar un rato. Este evento es la presentación mundial de Visual Studio 2008, Windows Server 2008 y SQL Server 2008, así que si puedes te recomiendo que te apuntes.


· Además acabamos de lanzar (ayer) la nueva web de Krasis y campusMVP. A mi personalmente me gusta mucho, y es más clara y fácil de navegar que la anterior. Échale un vistazo y coméntame qué te parece. Esto ha comido también una gran parte de mi tiempo porque como seguramente sabrás trabajo también en el área de marketing.


· Estoy trabajando junto con los tutores y autores de campusMVP en nuevos cursos que verán la luz dentro de poco, y en un par de libros nuevos que están apunto de terminarse. Lo comentaré aquí cuando estén disponibles.


· Mañana empiezan  la nueva convocatoria de cursos de certificación de campusMVP. ¡Aún estás a tiempo de anotarte! 🙂


· Tengo entre manos algunos proyectos de futuro nuevos para krasis y campusMVP, de los que no puedo hablar de momento, pero me roban algo de tiempo ya ahora.


· Este mes estoy de viaje varios días a la semana durante todo el mes, lo que me deja muy poco tiempo para postear


· Mil fregados pequeños más en los que estoy involucrado. Para finales de mes espero estar algo más liberado y recuperar la frecuencia en el blog y poner cosas interesantes que tengo en la recámara. No obstante estos días seguro que alguna cosa interesante pongo, porque tengo algunas pensadas que son rápidas, jeje


· Tengo una familia a la que atender, aunque parezca mentira, así que menos tiempo todavía para postear.


En, fin, espero que comprendas la situación.


– Más cosas:



· Hace unas semanas puse en CodePlex una aplicación/divertimento mío llamado AJAXInterceptor, que sirve para «ajaxificar» aplicaciones de forma sencilla y sin escribir código. El conocido blog Ajaxian ha reseñado esta biblioteca JavaScript hace unos días, lo cual me hace mucha ilusión 🙂


Puedes leer el post aquí: http://ajaxian.com/archives/ajax-interceptor-have-someone-clean-for-you


· La conocida revista Baquía, que tiene un canal de televisión en Internet, BaquíaTV, me hizo una entrevista hace unos días en la que tuve la oportunidad de hablar sobre el e-mail marketing, Krasis y otras cosas.


JM Alarcón - baquía



La entrevista tiene dos partes. En la segunda de ellas hablo sobre campusMVP y la editorial Krasis Press. Espero que las encuentres interesantes.


En fin, espero no haberte aburrido demasiado con todo esto y espero que sigas viniendo por aquí a por más información como siempre 🙂


¡Saludos!

Truco tonto para Internet Explorer 7: negrita en un editor

A ver, esto es bastante Off-topic, pero creo que a alguno le puede resultar útil. Yo soy un asiduo usuario de la edición HTML usando Internet Explorer 7. De hecho este mismo texto lo estoy escribiendo con un editor embebido en este navegador, y muchas de las aplicaciones Web de Krasis utilizan uno de este tipo también.


El caso es que cuando salió Internet Explorer le cambiaron las teclas rápidas para la edición de formatos. Antes de IE7 éstas coincidían con las de cualquier otro programa, como Word por ejemplo, y eran loclizadas al idioma del sistema operativo. Es decir, para pponer una negrita usabas CTRL+N, una cursiva CTRL+K, etc, etc…


Con IE7 independientemente del idioma del sistema operativo esas teclas se convirtieron en (siempre) las del inglés. Es decir, para negrita es CTRL+B o para cursiva CTRL+I.


Hasta aquí no demasiado problema. Yo estoy acostumbrado a ambos juegos de teclas rápidas porque mis dos sistemas están, uno en inglés y el otro en castellano. El problema es que en castellano la tecla rápida CTRL+B no saca una negrita sino que te pone el cursor en el cuadro de búqueda de Internet Explorer. Lo cual te hace perder tiempo en mover el ratón y pulsar sobre el texto de nuevo, seleccionar y tener que pulsar la tecla de negrita del editor (si la hay), y todo por una mala localización del producto (en mi opinión).


De acuerdo, es algo nimio, pero os aseguro que a mi me quema completamente, dado que una gran parte de mi tiempo la paso escribiendo en este tipo de editores, y para mi las teclas rápidas son fundamentales.


Lo primero que intenté fue cargarme la caja de búsqueda de IE7. Al fin y al cabo no la uso para nada jamás. Lo hice tocando un clave del registro que venía en no sé qué página de por ahí (os dejo aquí los archivos .reg que quitan y vuelven a poner la caja de búsqueda).


Esto quita la caja de búsqueda pero el problema no desaparece del todo. Al pulsar CTRL+B no se pone la negrita, pero al menos no pierdes el foco del editor y puedes seguir escribiendo 🙁


La solución la encontré el otro día por casualidad y en el fondo es un error también de IE7. Intentando seleccionar todo el texto del editor (que es CTRL+A de toda la vida) resulta que ¡puse una negrita!. Pues sí amiguetes, resulta que CTRL+A sirve para aplicar el estilo negrita en los editores HTML de IE7 en sistemas en castellano. Problema solucionado. Y para seleccionar todo el texto del editor se usa CTRL+E que es la misma combinación que usa Word en castellano, pero no la misma que usa en Inglés (que es CTRl+A). Total, una mezcla absurda y una chapuza completa del equipo de localización de IE, aunque no tenga una importancia cósmica, claro está 🙂


Espero que esta chorrada le ayude a alguno a no desesperarse si escribe mucho con estos editores.

Hotfix para desarrollo web con Visual Studio 2008

El equipo de Visual Studio 2008 ha liberado hoy un parche para desarrolladores Web que solventa algunos problemas en el entorno de desarrollo.


En concreto este parche resuelve lo siguiente (copiado y pegado de la página de Scott Guthrie):



HTML Source view performance




  • Source editor freezes for a few seconds when typing in a page with a custom control that has more than two levels of sub-properties.
  • “View Code” right-click context menu command takes a long time to appear with web application projects.
  • Visual Studio has very slow behavior when opening large HTML documents.
  • Visual Studio has responsiveness issues when working with big HTML files with certain markup.
  • The Tab/Shift-Tab (Indent/Un-indent) operation is slow with large HTML selections.


Design view performance




  • Slow typing in design view with certain page markup configurations.

HTML editing



  • Quotes are not inserted after Class or CssClass attribute even when the option is enabled.
  • Visual Studio crashes when ServiceReference element points back to the current web page.

JavaScript editing




  • When opening a JavaScript file, colorization of the client script is sometimes delayed several seconds.
  • JavaScript IntelliSense does not work if an empty string property is encountered before the current line of editing.
  • JavaScript IntelliSense does not work when jQuery is used.

Web Site build performance




  • Build is very slow when Bin folder contains large number of assemblies and .refresh files with web-site projects.

Me parecen especialmente de agradecer las mejoras de rendimiento al editar JavaScript, que se hacía un poco insufrible en la versión original, y la mejora de rendimiento al recompilar.


Descárgatelo gratis ya desde Microsoft Connect (necesitarás una cuenta LiveID/Passport)


NOTA: En Windows Vista con UAC activado no lo ejecutes desde C: o no te funcionará.

Microsoft ESP: simulación de juegos y aplicaciones hiperrealistas con datos geográficos

Estos días he tenido la oportunidad de conocer un nuevo producto de Microsoft que, francamente, no deja de sorprenderme. Se trata de Microsoft ESP, un entorno de simulación hiperrealista destinado a simuladores de vuelo, sistemas de entrenamiento y, por qué no, juegos.


Antes de que nadie me lo pregunte: ESP no es un acrónimo, no significa nada y no tengo ni idea de porqué le han llamado así.



Estas dos imágenes están sacadas del vídeo de demostración.


Puede simular el mismo terreno con toda fidelidad en distintas estaciones del año u horas del día, ciudades enteras, prácticamente toda la información geográfica del mundo y más de 10.000 estrellas georeferenciadas.


Se trata realmente del motor, los datos y las herramientas que forman el núcleo de Fligh Simulator, pero llevadas un paso más allá y orientadas incluso a sistemas militares (o sea, que la cosa va muy en serio). Se supone que los más de 200.000 complementos existentes en el mercado para Flight Simulator van a funcionar con ESP.


Está llena de características como, aparte de las mencioandas, posibilidad de onversar hasta 30 personas mediante Voz sobre IP, un sistema de simulación de condiciones atmosféricas variables, sistema de inteligencia artificial para controlar vehículos como barcos, coches o aviones, etc…


ESP está disponible para descarga para clientes con licencias por volumen.


Puedes encontrar información, casos prácticos y vídeos aquí: Microsoft ESP.

Detectar si hay conectividad en el equipo (Métodos 4 y 5) (fin)

Pues nada, ya toca acabar con esta miniserie de posts sobre lo de detección de conectividad.


Los métodos cuatro y cinco realmente ya los he tratado en este blog en el pasado y es que ambos están relacionados con caracerísticas que aparecieron en la versión 2.0 de .NET, y los metí cuando estaba hablando de esas novedades hace mucho tiempo.


El primero es el típico ‘ping’ a un servidor. Haciendo ping y detectando las respuestas al eco podremos saber claro está si hay o no conectividad (salvo que el cortafuegos nos impida recibir estos ecos de respuesta). El artículo en cuestión donde lo explicaba es del 7 de Julio de 2005 (ya voy viejo, jeje): Nuevo espacio de nombres NetworkInformation – Ejemplo de Ping.


El segundo método de hoy también lo traté en Julio de 2005 (unos días después, el 16) y pasa por el uso de la clase NetworkInformation, que ya trae de serie muchas cosas interesantes, y no sólo para detectar la conectividad en primera instancia. El artículo completo está aquí: Cómo detectar la existencia de conectividad de red (entre otras cosas).


Pues creo que ya está 🙂


Con éstos hemos visto hasta cinco métodos distintos de detectar conectividad en nuestro equipo para poder responder adecuadamente en caso de necesitar trabajar sinconexión, como un buen ciudadano del mundo «Smart Client». Espero que haya resultado útil.


Código de ejemplo: DeteccionConectividad.zip