JASoft.org

Burradas de programadores: ¿la clave de licencia, por favor? Aquí está. De nada...

Burradas de programadores: ¿la clave de licencia, por favor? Aquí está. De nada...
Esta es otra de esas buenísimas que cuando las veo no me puedo resistir a contar aquí, para que veamos que siempre hay quien supera al resto en algo :-D Resulta que un programa cuya licencia había caducado, al arrancar le mostraba al usuario un mensaje de error sin permitirle continuar y ni siquiera recuperar algunos datos que tenía dentro. Investigando un poco en la carpeta de archivos del programa con la esperanza de encontrar la base de datos del programa e intentar extraer la información de allí con un poco de esfuerzo se encontró un archivo llamado Licence.key. Como es de esperar (yo hubiera hecho lo mismo) abrió el archivo -que era de texto- y encontró el siguiente contenido: ! Legalese Pro License File - Do Not Modify! Generated Mon Jan 24 21:17:47 EST 2001expiration-date = 07-31-2005key = 78c52ab4f6244475fb7ebefb21b7111c "¡Oye!, vamos a cambiar esa fecha a ver qué pasa! A lo mejor me deja continuar usándolo un rato más", pensó el interfecto... Obviamente esto no podía fu... [Más]

Evítate problemas: pon SIEMPRE un nombre de aplicación en Web.config

Evítate problemas: pon SIEMPRE un nombre de aplicación en Web.config
El bueno de Scott Guthrie (del equipo de desarrollo de ASp.NET) puso ya hace tiempo un post muy bueno sobre porqué era muy recomendable (si no casi indispensable) poner un nombre dentro de web.config dentro de la configuración de los proveedores (tanto de Membership como de Roles, etc...). El motivo es que si no lo hacemos, al mover la aplicación no seremos capaces de acceder a los datos que hay en la base de datos pues casi seguro que hemos cambiado la ruta de la aplicación respecto al servidor de desarrollo, y es muy desagradable :-( Hoy me ha surgido una pregunta relacionada con esto y aprovecho la ocasión para recordarlo a todos los lectores de este blog desde aquí. Así que léete el post completo de Scott y ya sabes: que no se te olvidé nunca más :-)

AJAX con ASP.NET 2.0 (The "a pelo" series): Script Callbacks (yIII): Un ejemplo completo

AJAX con ASP.NET 2.0 (The "a pelo" series): Script Callbacks (yIII): Un ejemplo completo
Para finalizar las "the a-pelo series" sobre AJAX dedicadas a los Script Callbacks en ASP.NET 2.0 vamos a realizar un ejemplo completo que muestre todo lo que comentamos en los post precedentes. Nuestro ejemplo será muy sencillo pero suficiente para comprender todo lo explicado hasta ahora. Crearemos una página con una lista de categorías y un botón que, al ser pulsado, mostrará debajo (sin hacer postback) los contenidos de dicha categoría (sin florituras). La siguiente figura muestra la idea: Un poco cutre ¿no? Pero de esta forma obviaremos otro código que nos pueda descentrar de nuestro objetivo que es entender los Script Callback. Los preparativos Crea un nuevo proyecto de Visual Web Developer. En la página por defecto (Default.aspx) arrastra un control DropDownList y llámale 'ddlCategorías'. Asígnale una lista de elementos (Empresas, Libros, Blogs, Revistas...). No marques su opción de AutoPostBack. Ahora añade un botón. Pero ojo, muy importante, no nos sirve un botón de AS... [Más]

AJAX con ASP.NET 2.0 (The "a pelo" series): Script Callbacks (II): La interfaz ICallbackEventHandler

AJAX con ASP.NET 2.0 (The "a pelo" series): Script Callbacks (II): La interfaz ICallbackEventHandler
Bueno, en el anterior post, ya hemos visto que para poder hacer uso de la característica de Callback nativa de ASP.NET 2.0 sólo hay que implementar la interfaz ICallbackEventHandler. Ésta sólo tiene dos miembros: Método RaiseCallbackEvent: Es llamado automáticamente cuando se produce un Callback al servidor mediante Script. Se le pasa como parámetro una cadena que se genera en el lado de cliente (en el navegador) antes del envío. Enseguida veremos la manera de hacerlo. Dentro de este método hacemos el procesamiento que necesitemos, por ejemplo, recibimos un identificador y vamos a una base de datos para obtener los datos de detalle de una entidad asociada. Cualquier cosa. Su definición es la siguiente: void ICallbackEventHandler.RaiseCallbackEvent(string eventArgument) Método GetCallbackResult: este es el método que se llama automáticamente para devolver los resultados al cliente. Dichos resultados se devuelven en forma de cadena (es el tipo devuelto por el método) y se pas... [Más]

AJAX con ASP.NET 2.0 (The "a pelo" series): Script Callbacks (I)

AJAX con ASP.NET 2.0 (The "a pelo" series): Script Callbacks (I)
Seguro que recuerdas que no hace mucho estuve haciendo en el blog una serie sobre AJAX (1, 2, 3, 4, 5, 6 y 7) "super-a-pelo", es decir, usando sólo JavaScipt y tu imaginación, nada de Atlas y compañía. La verdad es que tuvo bastante éxito y muchas visitas, referencias, trackbacks, etc... Viendo que el tema suscita interés voy a continuarlo un poco pero esta vez haciéndolo con una nueva característica que es nativa a ASP.NET 2.0 y que se denomina Script Callbacks. Esto facilita bastante el trabajo con AJAX respecto a hacerlo todo uno mismo, pero aún así sigue siendo más complicado que usar una biblioteca estilo AJAX.NET o la propia Atlas de Microsoft que ahora está en beta. Por este motivo y dado que sigue siendo una técnica algo rupestre denominaré a esta nueva serie como AJAX con .NET: The "a pelo" series ;-) Bueno, veamos primero un poquito de teoría y en los siguientes post pasaremos ya a la práctica de esta técnica nativa de .NET a la que podremos sacar bastante partido... [Más]

Excelente libro: SPAM

Excelente libro: SPAM
Estos días he estado leyendo un libro que, la verdad, me ha resultado de lo más interesante y por eso lo reseño aquí. Se trata de 'SPAM', ISBN:84-415-1864-5 de Anaya Multimedia y autor anónimo (firma como spammer-X). El libro habla con todo lujo de detalles y sin demasiados escrúpulos sobre el oscuro mundo del Spam y todo lo que lo rodea. Además está escrito de primera mano ya que su desconocido autor se reconoce como un experto spammer de toda la vida. Y la verdad es que es bastante verosimil ya que todo lo que cuenta se ajusta muy bien a la realidad y parece conocer perfectamente las técnicas existentes. Se trata de un libro que explica muy bien qué es el spam, cómo se hace para ser un spammer y cómo es la economía que hay debajo de ello. Pero sobre todo es muy útil para comprender lo que hay debajo y ayuda a luchar contra él. Hay explicaciones bastante "light" con otras cuestiones mucho más técnicas pero aún así comprensibles para todo el mundo. En un apéndice final explica como d... [Más]

Esta es muy buena: producto "milagroso" que usa sin problemas Oracle y SQL Sever

Esta es muy buena: producto "milagroso" que usa sin problemas Oracle y SQL Sever
¡Esta es buenísima! La acabo de leer en los foros de The daily WTF (no me puedo quedar de Rodríguez que me vuelvo más friki que de costumbre). Resulta que hay una empresa llamada Initech (no sé cual de las miles que aparecen en Google será porque no lo dicen) que tiene una serie de productos que trabajan sobre Oracle. La empresa sin embargo dice que soporta sin problemas SQL Server y que encima no tienes que hacer absolutamente nada para que el cambio funcione. Uno, que ya sabe de que va esto, se imagina que lo que hará será detectar que gestor estás usando y lanzar las consultas pertinentes según sean para uno u otro, aparte de que tengan una capa de abstracción del proveedor de datos, claro.. Pues no. Resulta que tienen algo llamado "Oracle Transparent Gateway for SQL Server" que independiza todo sin problemas. Lo que pasa es que tiene ciertos "problemillas": - Coste: Tienes que comprar el producto milgroso este que cuesta unos 15.000 dólares por cada servidor. Tie... [Más]

Acojonante: los pasaportes RFID de los EEUU pueden servir para explotar bombas

Acojonante: los pasaportes RFID de los EEUU pueden servir para explotar bombas
Leo en el Blog de George Ou que durante el pasado BlackHat 2006 (la mundialmente famosa y virguera conferencia de seguridad) la empresa Flexilis Inc demostró una protección inadecuada de los nuevos pasaportes basados en tecnología RFID propuestos por el gobierno de los EEUU pueden ser empleados para activar artefactos explosivos que encima sólo se activarían para ciudadanos de determinadas nacionalidades. El vídeo no tiene desperdicio: Tanta seguridad y tanta cosa y luego resulta que pasan cosas como esta. Los que legislan no saben mucho de tecnología generalmente...

Reproducir MP3, vídeo y otros tipos de archivos con .NET

Reproducir MP3, vídeo y otros tipos de archivos con .NET
En mis dos anteriores post comentaba la manera de reproducri archivos de sonido del sistema con .NET, tanto en la versión 1.x como en la 2.0. En el último un visitante preguntaba cómo podemos reproducir MP3 desde .NET. La solución más sencilla es la de toda la vida: recurrir a la API de MCI para hacerlo. MCI es el acrónimo de Media Control Interface. se trata de una API basada en comandos de texto que permite controlar los diferentes dispositivos multimedia de reproducción y grabación que hay en el sistema. Gracias a MCI podemos reproducir vídeo, audio, CDs, MIDI, etc.. . así como grabar desde micrófonos, cámaras y demás, todo ello de forma estándar e independiente del dispositivo real que haya detrás. La única función importante de MCI que nos interesa para nuestro ejemplo de reproducción de MP3 es 'mciSendString'. Ésta permite enviar comandos MCI para abrir dispositivos y operar con ellos. Para reproducir un archivo MP3 (o realmente cualquier otro) sólo necesitamos conocer dos co... [Más]

Reproducir sonidos del sistema en nuestra aplicación .NET 1.x

Reproducir sonidos del sistema en nuestra aplicación .NET 1.x
Este post surge a raíz del anterior en el que explicaba como reproducir sonidos en .NET 2.0 (viene muy facilito), ya que un asiduo lector de este blog ha preguntado cómo se harí en versiones anteriores. La respuesta a esta pregunta es: ¡usando la API de Windows!. Los que llevamos unos cuantos años programando con tecnologías Microsoft (los dinosaurios que usábamos ActiveX y estas cosas) estamos todos muy acostumbrados a usar la API de windows y no nos suena raro. En .NEt se sigue usando para algunas cosas, pero la verdad es que está todo tan mascado que pocas veces suele hacer falta. En este caso la función clave de la API MessageBeep. Esta función permite reproducir sonidos predefinidos del sistema con sólo pasarle su código numérico. Por tanto lo único que necesitamos para replicar la funcionalidad de la clase que viene con .NET 2.0 es declarar esta función y conocer las constantes. así que una clase similar a la anterior sería la siguiente (código completo): using System;u... [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