JASoft.org

Grabar un imagen ISO a un DVD nativamente con Windows 7

Grabar un imagen ISO a un DVD nativamente con Windows 7
La verdad es que hace años que no utiliza una grabadora de CD o DVD. Mi portátil ultra-ligero ni siquiera trae una incorporada, así que tengo una externa USB que utilizo muy de vez en cuando para leer algún CD o DVD que me hacen llegar. El resto del tiempo uso llaves USB, pero desde hace años utilizo Dropbox y por lo tanto prácticamente ni eso. Ayer iba a instalar un Ubuntu en un portátil viejo que tengo que quiero regalar, e intenté hacerlo desde una llave USB con el famoso Universal USB Installer que ellos mismos promocionan. El resultado fue una llave USB estupenda de las rápidas estropeada para siempre. No sé qué demonios hace ese programa pero literalmente me fundió la llave USB. No fui capaz de recuperarla ni con herramientas de bajo nivel ni en Windows ni en Linux. Un fastidio. Así que no me quedó más remedio que grabar un CD con la última versión de Ubuntu pa... [Más]

Todo sobre AutoEventWireUp en páginas ASP.NET Web Forms

Todo sobre AutoEventWireUp en páginas ASP.NET Web Forms
En la directiva de página de los Web Forms de ASP.NET existe un atributo importante denominado AutoEventWireUp. Por defecto está establecido como True. Esto quiere decir que la infraestructura de la página se encargará automáticamente de enlazar los eventos de la página con aquellos métodos definidos en ésta que tengan los nombres y las firmas apropiados. Por ejemplo, si tenemos un método definido de esta manera: 1: private void Page_Load(object sender, System.EventArgs e) 2: { 3:  4: } Se llamará de manera automática al cargar la página (evento Load del ciclo de vida de la página). Lo mismo en Visual Basic: 1: Public Sub Page_Load(ByVal Sender As System.Object, ByVal e As System.EventArgs) 2:  3: End Sub Estos métodos tiene la misma firma que un evento estándar de tipo EventHandler, es decir, no devuelven nada y toman como parámetros un objeto y un objeto de tipo Even... [Más]

Catálogos de WebParts Dinámicos

Catálogos de WebParts Dinámicos
NOTA: Estas técnicas no están documentadas y se basan en mis indagaciones sobre cómo conseguir crear catálogos dinámicos de WebParts. Todo surgió a raíz de la pregunta de un alumno de mi curso de preparación del examen de certificación 70-515 de ASP.NET. ¿Cómo puedo crear un catálogo de WebParts para una página personalizada al cual le pueda añadir yo los controles que quiera dinámicamente?. Es decir, que los controles que aparecerán en el catálogo en lugar de estar determinados de antemano como en los casos habituales (en un catálogo estático de WebParts), se puedan cargar desde una base de datos o similar. La solución Primero, para esto hay que crear nuestra propia clase plantilla de catálogo que es la que se encargará de contener a los controles que voy a ir añadiendo. Esta clase debe implementar la interfaz ITemplate. Ello implica implementar el método InstantiateIn de esta interfaz que será llamado por la infraestructura de página cuando se deba inicializar el catálogo. Es en ... [Más]

No se puede quitar Facebook de mi Windows Phone: ¿cómo arreglarlo?

No se puede quitar Facebook de mi Windows Phone: ¿cómo arreglarlo?
Windows Phone es sin duda el mejor sistema operativo móvil si eres un usuario intensivo de las redes sociales más conocidas, es decir, Facebook, Twitter y LinkedIn. El motivo es que Windows Phone 7.5 "Mango" se integra por completo con éstas y las incorpora como ciudadano de primera al resto del teléfono. Así, por ejemplo, tus contactos de LinkedIn o Facebook aparecen en tu agenda y los consolida de forma que toda la información que posees de cada contacto en cada red social y en tu agenda se muestra de manera unificada. Además puedes seguir las actualizaciones de gente concreta o grupos de gente concreta directamente desde la agenda o, mejor aún, colocándolos como "tiles" o ladrillos en tu página principal. Yo por ejemplo tengo un grupo formado por mi gente más cercana (familiares y amigos) y en su "Live Tile" me aparece automáticamente información sobre qué están haciendo o si comentan algo de interés tanto en Twitter, Facebook como LinkedIn. En el mis... [Más]

Cómo detectar registros duplicados en una base de datos

Cómo detectar registros duplicados en una base de datos
Esta es una consulta muy sencilla pero que a muchos principiantes les resulta de mucha utilidad, así que como hoy he tenido que usarla y me he acordado, la pongo aquí por si a alguien le viene bien. El problema es el habitual: tenemos una tabla con muchos registros y queremos saber si alguno de ellos está duplicado. Lo más común no es que nos interese realmente saber qué registros están duplicados, sino qué registros tienen dos o tres campos iguales. Por ejemplo, si tenemos una lista de clientes quizá no nos interesa saber quiénes están duplicados buscándolos por el nombre (ya que éste puede haber sido escrito diferente: con o sin tilde, con abreviatura o no), por lo que resultaría más interesante averiguar aquellos registros que tienen el teléfono y el email duplicados por ejemplo. La consulta es muy fácil, y usa una función de agrupamiento para determinarlo. La consulta genérica sería esta: 1: SELECT COUNT(*), CAMPO_A, CAMPO_B 2: FROM T... [Más]

Proveedores universales de ASP.NET: Membership y Roles fuera de SQL Server

Proveedores universales de ASP.NET: Membership y Roles fuera de SQL Server
Como todo programador de ASP.NET sabe, la mayor parte de las API de esta plataforma de desarrollo web están basadas en el modelo de proveedores. Para explicarlo de manera rápida, básicamente esto significa que entre la funcionalidad que el programador utiliza y el almacenamiento relacionado con ésta, existe un elemento intermedio llamado "proveedor" que desacopla ambas partes. De esta manera, si queremos utilizar otro tipo de almacenamiento basta con cambiar el proveedor en la configuración y listo. no es necesario tocar el código en absoluto, por lo que resulta muy cómodo y útil. El siguiente esquema (sacado de MSDN) ilustra la arquitectura de este modelo: Como vemos muchos servicios como los de seguridad (Membership y Roles), la personalización (Profile) u otros como el almacenamiento de la sesión o los WebParts, están basados en este modelo, representados por las cajas de la parte superior. Así, la información de los usuarios, los roles, los perfiles, las sesiones, etc... [Más]

Seguridad de aplicaciones Web: las técnicas más interesantes para que no hackeen tu aplicación

Seguridad de aplicaciones Web: las técnicas más interesantes para que no hackeen tu aplicación
Este pasado martes impartí una charla en el grupo de usuarios de ASP.NET de España (AUGES) titulada como este post: “Seguridad de aplicaciones Web: las técnicas más interesantes para que no hackeen tu aplicación” El resumen de la misma es el siguiente: Programar es mucho más que la simple creación de aplicaciones que cumplen con la funcionalidad para la que fueron diseñadas. Existen otras muchas consideraciones que hacer y multitud de características tan importantes como la propia funcionalidad que se deben tener en cuenta: rendimiento, extensibilidad, facilidad de mantenimiento, etc... entre las que destaca especialmente la seguridad del código que se escribe. De poco o de nada sirve una aplicación que lleva a cabo su cometido principal pero que permite que casi cualquiera pueda acceder a la información que supuestamente protege o que, debido a la escritura de código descuidado, un competidor desleal impide su funcionamiento cuando más se necesita. Y no, no llega con tener... [Más]

TRUCO: Cómo detectar el cierre o la salida de una página Web

TRUCO: Cómo detectar el cierre o la salida de una página Web
Seguramente te has topado en algunas ocasiones con que, tras haber rellenado algunos campos de un formulario , algunas aplicaciones Web te avisan si pretendes cerrar la ventana o abandonar la página, ya que perderías los datos. Yo por ejemplo utilizo bastante el webmail de Google, GMail, y muchas veces si acabo de enviar un correo y cierro muy rápido la ventana, como el correo aún no ha terminado de enviarse me avisa para evitar que se pierda. ¿Cómo es posible conseguir esto? La verdad es que es muy sencillo y se consigue en la práctica totalidad de los navegadores modernos (excepto en Opera) gracias al evento onbeforeunload de la ventana del navegador. Consideremos el siguiente ejemplo: <html> <head> <title>Prueba de abandono de página</title> <script language="JavaScript" type="text/javascript">   var bPreguntar = true;   window.onbeforeunload = ... [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