Archivo de la categoría Programación

Evitar el bloqueador de popups



Por casualidad he descubierto como burlar al bloqueador de popups de Firefox, y Opera. Y así conseguir abrir tantas ventanas emergentes como nos plazca.

En las diferentes configuraciones donde lo he probado, el sistema ha funcionado sin problemas. Siempre bajo Windows, con Flash 7 y diferentes versiones de Firefox y Opera. Sorprendentemente Internet Explorer 6, detecta sin problemas el "truco".

La idea es bien simple. Se trata de hacer que el encargado de abrir el popup no sea directamente la página HTML que estamos visualizando, sino un elemento Shockwave.

Sería algo así:

1) Incrustamos una llamada al Flash que se encargará de abrir el popup.

Continuar leyendo...

Código automodificable en PHP



Recuerdo haber utilizado código automodificable (self modifying code) desde ensamblador, y en menor medica con C/C++.

En cambio jamás he visto utilizar esta técnica con lenguajes que no son nativos de la máquina.

El código automodificable, consiste en alterar directamente el programa que está en ejecución en ese momento, desde el propio programa. Así por ejemplo, podríamos encriptar y desencriptar el código completo en tiempo de ejecución, o hacer que una función que antes incrementaba un contador, ahora lo decremente.

En cualquier caso, la utilidad del código automodificable, ha sido puntual, quedando marginada a técnicas antidepuración, o a optimizaciones de tamaño.…

Continuar leyendo...

Mala práctica 3



Continuamos con la recogida de Malas prácticas de programación, esta vez con su tercera entrega. Tienes las anteriores aquí.

Esta vez el problema vuelve a ser de formateo de código, en este caso, causada por una indentación definciente.

Como se puede apreciar, se ha perdido casi totalmente la estructura de bloques lógicos.

De forma visual, necesitamos aplicar cierto esfuerzo para hacernos una idea de la estructura que sigue el HTML; lo que es peor, el <tr></tr>, pasa desapercibido, de forma que el resto de código que le sigue no es válido.

Las causas que intervienen para llegar a una situación así son:

1) Criterios de indentación no definidos o no consolidados: Da igual si utilizamos una cantidad de espacios o de tabuladores determinada (en mi opinión mejor tabuladores), pero siempre, y todos en el equipo de desarrollo, deberán seguir esa convención.…

Continuar leyendo...

GeoURL



Con GeoURL, podemos especificar la ubicación geográfica de nuestra página web, de forma que pase a formar parte de la base de datos global.

Esto permitirá que los usuarios puedan conectarse a sitios que estén geográficamente cercanos al nuestro.

El proceso es tan sencillo como agregar un meta tag en nuestra página informando de la longitud y latitud del mismo, y posteriormente notificar al servidor de GeoURL, para que lea este meta tag, y lo archive en su base de datos.

En mi caso la meta etiqueta que he agregado ha sido:

<meta name="ICBM" content="041.42300, 002.18700">



Continuar leyendo...

"Hola" + 10



Hubo un tiempo, no demasiado lejano todavía, en el cual, era lógico para un programador pensar que el resultado de "Hola" + 10, era numérico.

Un puntero a una dirección de memoria más concretamente.

Hoy en día, es difícil aplicar una regla general a los lenguajes, algunos dan un error de compilación, otros una excepción en tiempo de ejecución, otros retornan "Hola10", y los menos un puntero.

Todo esto viene a colación, porque creo que en 10 años como mucho, ya nadie sabrá C ni C++. Será una situación parecida a la que vivimos hoy en día con el ensamblador. No me refiero a que los desarrolladores no vayan a saber lo que es C o C++, inclusive puede que conozcan sus reglas básicas, pero serán incapaces de programar algo con sentido en este lenguaje.…

Continuar leyendo...

Mala práctica 2



Después del éxito obtenido con la Mala práctica 1, aquí va la segunda.

En esta nueva entrega, el error cometido está mucho más delimitado, siendo tan evidente, como sorpredente: ¡Una linea de 341 caracteres de longitud!

Por motivos de legibilidad, edición de código, y también de impresión en papel, no es recomendable escribir lineas de código tan largas, debiendose establecer la longitud máxima en unos 140 caracteres; siendo lo ideal inferior a 80.

Así evitaremos que los desarrolladores que vengan luego (¡ojo, que podríamos ser nosotros mismos!); tengan que ir navegando horizontalmente por el código.…

Continuar leyendo...

Visual Basic for DOS



No es demasiado conocido que Microsoft hiciera una versión de Visual Basic para DOS.

Aún así existió, combinaba el mismo modelo de programación basado en objetos del popular Visual Basic 1, y el interfaz de desarrollo basado en formularios.

Los programas desarrollados con este entorno, se ejecutaban bajo DOS en modo real, con una interfaz de ventanas en modo texto.

El compilador, era Basic Compiler 8.0, una evolución más del popular Microsoft Basic Professional Development System 7.1, y totalmente compatible con el estándar Quick Basic.

La versión profesional, incluía acceso a bases de datos a través de TSR.…

Continuar leyendo...

Undefined no está definido



'undefined' no está definido.

Es increíblemente curioso este error reportado por Internet Explorer 5.0.

Evidentemente el valor de undefined no está definido, así es como funciona, y como debería funcionar. Lo que no veo claro es que sea un error…

El código que lo genera, es algo del estilo:

if (Variable==undefined)
{
...
}

En efecto parece ser un error en esa versión de Internet Explorer, ya que en las más recientes 5.5 y 6.0 funciona correctamente. Con Opera y Firefox/Seamonkey también funciona sin problemas.



Continuar leyendo...

OS/2 Open Source



En OS/2 World, han iniciado una petición para que IBM libere el código fuente completo de OS/2.

OS/2 fue el sistema operativo que por su superioridad técnica pudo haber reemplazado a Windows 95, y por tanto plantado cara a Microsoft.

Básicamente tuvo dos grandes problemas:
1) De cara al usuario: No era compatible con Win32s ni con Win32 de forma nativa, lo que limitaba en gran medida las aplicaciones a utilizar.
2) Incluía gran parte de código en ensamblador, lo que le proporcionaba un excelente rendimiento, pero dificultaba el desarrollo de nuevas funcionalidades, y la optimización a nuevos procesadores.…

Continuar leyendo...

Rumbo a SPHPBlog 0.4.5



Estamos trabajando en estabilizar el código actual de la versión en el CVS, de cara a liberar lo antes posible la versión 0.4.5 oficial de Simple PHP Blog.

– Jesús Gil, ha ido puliendo la gestión de bloques, de forma que el proceso de instalación funcione sin problemas. Además está implementando cambios en los temas, para poder soportar bloques tanto a la derecha, como a la izquierda.
– Alex Palmo ha ido mejorando la compatibilidad XHTML, y realizando algunas modificaciones menores.
– Yo me he centrado en corregir problemas, sobre todo de edición y presentación de contenidos, relacionados con carácteres HTML y pipes relacionados con diferentes configuraciones de magic_quotes.…

Continuar leyendo...