JASoft.org

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

MENÚ - JASoft: JM Alarcón

Migración de Outlook entre equipos

Bueno, obviamente esto viene del post en el que el otro día ocmentaba que estuve migrando mi equipo del trabajo desde XP a Vista... Hasta ahora siempre había migrado el Outlook "a las bravas", es decir, copiaba el archivo .pst y santas pascuas. Pero haciendo esto me perdía muchas cosas, como por ejemplo la configuración de las cuentas de correo o los correos frecuentes a los que les envío entre otras. Yo tengo más de 10 cuentas de correo así que no es ninguna tontería. Esta vez decidí hacerlo más "profesional". Primero veamos en dónde estan todos los archivos de Outlook en Windows XP. Están ubicados en dos carpetas fundamentalmente (si no los hemos cambiado): C:\Documents and Settings\[usuario]\Application Data\Microsoft\OutlookC:\Documents and Settings\[usuario]\Local Settings\Application Data\Microsoft\Outlook o análogas (pueden cambiar en castellano u otros idiomas, pero te será fácil enocntrarlas). Archivo de Outlook Extensión o nombre Carpeta por defecto ... [Más]

Habilitar auto-completar en controles de Windows Forms

Se trata éste de un truco muy útil y  muy sencillo, si bien muchos programadores desconocen. En la versión 2.0 de la plataforma .NET algunos controles para interfaz de usuario con Windows Forms (en concreto los cuadros de texto y los combos, tanto los normales como los que van dentro de los ToolStrip), permiten mostrar a los usuarios sugerencias acerca de los datos que están introduciendo de una manera muy sencilla. Esta caraterística no estaba presente en la versión 1.x de la plataforma. Para ello basta con seleccionar el control en cuestión y ajustar sus propiedades AutoCompleteMode y AutoCompleteSource (ver figura lateral). La primera nos sirve para indicar de qué modo se hara el auto-rellenado. Puede ser simplemente una sugerencia desplegada por debajo (estilo navegador Web), que el texto se vaya autocompletando automáticamente dentro del control o ambas cosas. La propiedad AutoCompleteSource sirve para indicar de dónde se sacarán las sugerencias de rellenado automático. P... [Más]

Cómo personalizar la barra lateral de los diálogos de archivo y los comandos "Send To" en Windows Vista

Ya hace una temporada larga empecé con una serie de posts sobre Windows Vista que luego abandoné no sé muy bien porqué. He decidido que los iré retomando de vez en cuando intercalados con mis posts sobre programación porque son trucos sencillos pero que se agradecen mucho. Por ejemplo los dos de hoy... El primero de ellos tiene que ver con la personalización de la barra lateral de los diálogos comunes de archivos (ver figura de la izquierda). Ésta, por defecto, ofrece una serie de elementos bajo el epígrafe "Favoritos", pero generalmente no serán nuestros favoritos. Un "power-user" normalmente no guarda las cosas en el escritorio ni usa para nada la carpeta de Música o Imágenes, ¿verdad?. Así que lo mejor es cambiar esos enlaces enseguida. En XP ya había algo similar pero eran un número limitado de iconos (5 o 6, ahora no lo recuerdo) y para personalizarlos había que tocar el registro y los cambios no eran reconocidos, por ejemplo, por los diálogos comunes de Office que eran especia... [Más]

Migración a Windows Vista en un dominio AD con perfiles móviles: un infierno.

Llevo usando Windows Vista en mi portatil personal desde que salió internamente la versión definitiva (RTM) del sistema. Además llevo años probando las diversas alfas y betas (incluso esa primera alfa "pirata" que se liberó sin saber bien de donde a Internet hace ya muchos años, poco después de salir XP). El caso es que estoy muy contento con el sistema. Tiene algún detalle feo (por ejemplo que los inadecuados diálogos de copiado de archivos que le han metido dan la sensación de que tardan mucho más que antes), pero la verdad es que siempre me ha gustado mucho el sistema, incluso en las betas, e incluso a pesar del "peñazo" que supone el diálogo UAC que te pregunta si quieres seguir cada dos por tres. Bueno, el caso es que como estoy muy contento con él en mi portátil, el pasado miércoles aprovechando que era festivo en la comunidad en la que resido, decidí aprovechar que estaba de "Rodriguez" y migrar mi equipo de la oficina a Windows Vista. Supuse que sería coser y cantar. nada... [Más]

El evento Session_OnEnd de Global.asa no salta en ASP Clásico

Resulta que, de repente, sin razón aparente, el evento Session_OnEnd que estaba declarado en el Global.asa de una de nuestras aplicaciones escritas en ASP clásico, dejó de funcionar. Este evento se usa para realizar una serie de operaciones de "limpieza" al terminar la sesión de un usuario, y son importantes para mantener la calidad de servicio de dicha aplicación. Tratando de investigar el tema y de depurarlo en caso de haber un error (que nunca había existido anteriormente) llegué al aconclusión de que, inexplicablemente, ese evento era el único que no saltaba jamás, pero no había motivo alguno para este comportamiento. ?????? Bueno, resulta que buscando en la Knowledge Base de Microsoft me enocntré con esto: FIX: The Session_OnEnd() event is not raised in ASP Web applications as expected after you install Windows Server 2003 with Service Pack 2 Es decir, es un bug reconocido por Microsoft y se deriva de la instalación del Service pack 2 de Windows Server 2003. Así que ya lo... [Más]

Cómo insertar valores aleatorios en una base de datos SQL Server

Esta parece fácil pero no lo es tanto. Imagínate que tienes que meter valores aleatorios dentro de un campo de una tabla para todos los registros de ésta. Por ejemplo, le vamos a asignar un número aleatorio como pin de acceso inicial a cada usuario de nuestra base de datos y éste debe estar entre 1 y 100.000 (Vale, el ejemplo es un poco chorrada, pero se capta la idea). Queremos actualizar los miles de registros de nuestra base de datos y asegurarnos de que cada uno recibe un valor aleatorio en el campo correspondiente. Lo primero que salta a la mente para intentar es esto: UPDATE Usuarios Set pin = Round(((100000) * Rand() + 1 Es decir, usamos la función RAND para obtener un valor aleatorio dentro del rango especificado. Parece correcto ¿no? Si lo ejecutamos nos llevaremos una sorpresa: todos los registros se quedan con el mismo valor. :-( Pero ¿no era aleatorio?. Sí. El problemilla es que RAND se evalúa sólo una vez para el proceso completo, y se inserta sólo un valor. No nos ... [Más]

"El doctor House debería ser innecesario" o "La informática contra el doctor House"

He de confesar que soy un adicto a la serie televisiva del doctor House. Me mola que sea un genio descontrolado aunque a veces nos indigne a todos con sus salidas de tono. Y la serie engancha porque en el fondo se trata de un relato detectivesco, al fin y al cabo ¿qué más da que sea un asesino micro o macroscópico lo que perseguimos? ¿no?. Estoy deseando que empiece la cuarta temporada :-) A raíz de esta serie sin embargo me ha dado por pensar (que friki soy, jeje) en cómo hacemos uso de la medicina hoy en día y de cómo ésta deja de lado, al menos en lo que vemos de manera cotidiana, las ventajas que la informática podría aportarnos. Y es que si lo pensamos friamente ¿para qué deberíamos necesitar un Dr. House? No soy médico ni entiendo de medicina, pero lo que voy a decir aplicadlo si queréis a otos ámbitos y creo que valdría igual. Si dejamos de lado esos destellos de genialidad que marcan la diferencia en todas las disciplinas, en el 99% de los casos no deberíamos necesitar ning... [Más]

Buscamos un formador y un director de proyectos

  En Krasis estamos de pesca :-) Estamos buscando una persona con experiencia contrastable en formación en tecnología .NET y amplios conocimientos de la misma. Sus responsabilidades serán, tras un periodo de capacitación previa, las de actuar de mentor para empresas del sector en toda España. Además, entre sus responsabilidades estará la participación en proyectos reales de desarrollo (internos o externos), ya que no concebimos un formador/mentor de alto nivel sin el correspondiente grado de experiencia práctica. Este puesto requiere estar formándose continuamente en las últimas tecnologías. La empresa ofrece todas las facilidades para aprender y certificarse, convertirse en MCT (Microsoft Certified Trainer) y tener relevancia en la comunidad de desarrolladores. Además buscamos también un director de proyectos con experiencia en desarrollo de aplicaciones empresariales y SCRUM. En ambos casos pedimos (F: formador, DP: Director de proyectos): · Amplios conocimient... [Más]

El ataque de los Linuxeros asesinos

Este fin de semana celebramos la despedida de soltero de Unai, y nos juntamos un buen número de "geeks" para ello. Lo pasamos genial, la verdad... pero ocurrieron cosas la mar de raras como era de suponer. La más extraña, quizá, fué el ataque de los pingüinos asesinos que sufrimos en el "hall" de un bonito hotel. ¿No me crees? La foto que lo demuestra es esta (pulsa para agrandarla): Si la agrandas podrás contemplar el odio que reflejan sus miradas. No es coña. ¡Acojonan! Y es que los Linuxeros nunca dejan de atacarnos, jejeje Y eso que a esas horas aún no habíamos tomado nada, jaja. (Juro que esta foto la saqué yo mismo con la cámara de mi móvil, lo que no diré es donde) ;-)

Obtener (bien) la lista de temas disponibles para una aplicación

Los Temas son una estupenda característica que se añadió en ASP.NET 2.o y que permite separar el aspecto de nuestra aplicación de la disposición de los elementos de las páginas ASPX. De este modo puedes cambiar todo el aspecto estético de la aplicación completa o de una parte de ella con sólo cambiar un ajuste en web.config correspondiente. Los temas son junto con las (mal traducidas) páginas principales (Master Pages) un gran paso adelante para independizar el diseño de la interfaz del desarrollo del código. El caso es que aprovechando estas características mucha gente ha implementado portales en los que se le deja elegir al usuario qué tema quiere aplicar a la aplicación, de modo que cada uno elige la combinación de colores, etc... que más le guste. Combinándolo con la API de perfiles (Profile) se consigue almacenar la preferencia y así mejorar la experiencia del usuario. El cambio dinámico de tema, al igual que el de Master Pages, se suele hacer en el evento Pre_Init de las páginas... [Más]