Archivo de la categoría Programación

Combo de provincias



Habitualmente necesitamos programar formularios de registro de usuarios, que incluyan un selector de provincia.

Por mi experiencia, este dato simplemente consta dentro de la base de datos, pero no se utiliza en el resto del aplicativo web, por lo que no suele valer la pena crear una tabla en base de datos específicamente para este menester.

Así que nos suele tocar buscar algún formulario que incluya las 51 provincias españolas, y copiarlo en nuestra página. Luego hay que revisarlo, puede que el listado no esté completo, o estén escritos en algún idioma autonómico concreto, o el HTML no sea correcto, … Incluso algunas veces hemos tenido que recurrir al típico atlas en internet, y hemos montado el combo desde cero…

Para ahorraros trabajo, aquí tenéis el código HTML para montar el cuadro de lista desplegable (combo) con las 51 provincias de España.…

Continuar leyendo...

Prefetch Google Ads para Opera



Partiendo del Google ad prefetch original para Firefox, he decidido portarlo como un script de usuario (userscript) de Opera.

Cuando está activado, lo que va haciendo es precargar en segundo plano, y sin que afecte a nuestro trabajo, todos los enlaces Adsense de Google con los que nos vayamos encontrando. Dicho de otro modo, se encarga de ir pinchando sistemáticamente este tipo de banners, de manera que el webmaster de la página se saque un dinerito con nuestro paso.

La tarea de conversión, ha sido sencilla, pues las diferencias entre GreaseMonkey y el soporte ofrecido por Opera 8 son mínimas.

Para que funcione, deberás tener Javascript activado.…

Continuar leyendo...

Flash Player 8 beta



Ya está disponible la primera beta pública del reproductor de Flash versión 8.

Después de muchos rumores sobre las nuevas funcionalidades, y grandes especulaciones sobre un rendimiento muy mejorado, por fin he podido echarle un vistazo.

Para ello he utilizado mi antiguo Flash Benchmark.

– Flash Player 7: 2803+.
– Flash Player 8: 4106+.

Sin duda una buena mejora, al menos en lo que a cálculos se refiere.…

Continuar leyendo...

Turbo C 1.0 el comienzo



Ya sabéis que soy entusiasta de Borland, seguramente por que fue con lo que empecé.

Tras haber trabajado con Turbo Basic 1.0, y con Turbo Pascal 4, vi en un libro de C, del que no recuerdo el título, algunos pantallazos de ésta herramienta.

Era un IDE conocido, pero con características de optimización de nivel profesional, que no estaban disponibles en los otro entornos de programación de la compañía. Además C, sonaba extremadamente potente.

No fue hasta Turbo C 2.0, que añadía capacidades gráficas, mejoraba el entorno en la linea de Turbo Pascal 5, e incluía una ayuda más completa que pude dar mis primeros pasos.…

Continuar leyendo...

Diferentes maneras de crear un Sitemap



El servicio de Google Sitemaps, todavía en beta, pretende acabar con la internet invisible. Es decir todas aquellas páginas que pese a formar parte de la World Wide Web, no son accesibles por los buscadores, y por tanto, tampoco por los usuarios.

El proceso comienza creando un archivo de mapa del sitio, que es procesado por el robot de Google. Al ser el protocolo Creative Commons, es de esperar que el resto de robots acaben soportándolo.

Hay diferentes formas de crear el archivo de mapa:
1) Archivo de texto
Un archivo de texto plano que contiene URL que deben ser indexadas por el robot, separadas por saltos de linea.…

Continuar leyendo...

Corrigiendo al programador



Cuando preparaba mi anterior artículo Bucles invertidos, pude sorprenderme muy agradablemente con el optimizador de Visual C++ 7.1 (2003).

El código:

1 2 3 4 unsigned int i; for (i=0; i<100; i++) { }

Queda compilado a nada. Es evidente que el bucle no realiza ninguna operación, por lo que el optimizador del compilador, lo detecta, y lo elimina.

Más sorprendente es:

1 2 3 4 5 unsigned int i; for (i=0; i<100; i++) { } return(i);

Se transforma a código ensamblador así:

1 2 mov eax, 100 ret

Lo que si lo volviéramos a transcribir en C, sería:

1 return(100);

Como vemos, el propio compilador ha detectado código escrito pobremente, para en la medida de lo posible, mejorarlo.…

Continuar leyendo...

¿Cómo abrir popups accesibles?



Para facilitar la accesibilidad de nuestras páginas, conviene evitar el uso de Javascript en los enlaces.

Esto facilitará la navegación a los robots de los buscadores, a los usuarios con navegadores limitados, y a los usuarios impedidos. Es evidente que las ventajas son múltiples.

¿Pero, si no utilizamos Javascript, como vamos a poder abrir el popup?

El truco es muy sencillo, consiste en hacer que el enlace sea un link normal, que el Javascript (si está disponible) se encarga de abrir.

Algo así:

1 <a href="index.php" onClick="javascript:window.open(this.href, "wndPopup", "width=300,height=300"); return(false);">Abrir popup></a>

Y este sería el resultado: Abrir popup.…

Continuar leyendo...

Bucles invertidos



Estamos acostumbrados a hacer los bucles en forma ascendente, lo cual es conveniente en muchos casos.

En otros en cambio, podemos recorrerlos de mayor a menor. Pero, ¿qué ventaja nos daría hacerlo así?

Muy sencillo, de eficiencia. Los bucles descendentes, suelen ser más eficientes que los ascendentes. En particular lo son en estos dos casos:

1) La expresión de inicio es más sencilla que la de fin.
Es el caso más habitual, reescribiéndolo para que vaya de fin hasta inicio, se evita tener que reevaluar una condición complicada en cada iteración.

Es mejor:
for (i=strlen(a); i>0; i–)

que
for (i=0; i<strlen(a); i++)
Ya que nos ahorramos tener que llamar a strlen(a) 100 veces.…

Continuar leyendo...

Vulnerabilidades en la Web de P.C. Green (Parte V)



Después de unos meses con el tema de las vulnerabilidades en la web de P.C. Green abandonado, continuamos con la quinta entrega. Si te perdiste las anteriores, las tienes accesibles desde aquí.

Me ha alegrado ver que la web es totalmente nueva, tanto a nivel de diseño, como a nivel de tecnología.

La valoración del nuevo diseño, es positiva, mucho mejor que el anterior, pero regular comparado con lo que debería ser.

A nivel técnico, se usa ahora PHP en vez de ASP, lo que la hace más resistente a ataques de SQL Injection, de serie.

Parece que se han tomado mis artículos en serio, y todas las deficiencias comentadas han quedado resueltas.…

Continuar leyendo...

SlickEdit 10



Llevo usando SlickEdit como editor para programar desde la versión 8.

Me parece un entorno de trabajo con excelentes características. Quizás en algunos aspectos, CodeWright fuese mejor, pero ahora que Borland ha decidido abandonarlo, no hay lugar a dudas.

La nueva versión 10, me ha sorprendido con las mejoras en rendimiento, interfaz, y refactorización de código.

Con las mencionadas mejoras, SlickEdit, queda en mi opinión por encima del antiguo rival: CodeWright 7.5.5, manteniendo el soporte multiplatarma, y una mayor configurabilidad. Para variar, lo peor es el precio: A partir de 284 $.…

Continuar leyendo...