Archivo de la categoría Programación

Mala práctica 6, 7 y 8



Casi un año después de la última entrega de Malas prácticas, hoy la retomamos de nuevo, y esta vez, con una entrega triple, para intentar recuperar el tiempo perdido.

Mala práctica 6
Un nuevo caso de mala indentación en PHP, en este caso, el formato es muy curioso, con el echo sin indentar, y el cierre de llave, doblemente indentado.

Sin embargo, lo que me ha llamado la atención, es el comentario en si, que no dice nada, que no diga el propio código. La intención es buena, y se agradece la voluntad de comentar el código cuando es necesario, pero si no lo es, mejor invertir ese tiempo indentando correctamente.…

Continuar leyendo...

Abstracción de datos



En los lenguajes actuales, gozamos de una característica que aunque es en general tremendamente útil, nos hace olvidar que está ahí, y quitarle la importancia que merece.

Se trata de las capas lógicas que permiten la abstracción de datos, es decir, atacar a diferentes bases de datos, sin tener que hacer cambios de operativa en el código.

ODBC en Windows; ADO o ADO.NET en entornos Microsoft; JDBC en plataformas Java, o ADODB para PHP, nos permiten escribir un código único, capaz de acceder a datos, independientemente del sistema dónde estén almacenados.

Bien es cierto, que si realmente queremos ser independientes del SGBD (Sistema de Gestión de Base de Datos), las operaciones deben limitarse al mínimo común entre ellas, sin embargo, ya de por si, es un gran avance.…

Continuar leyendo...

Ventajas ocultas de x64



A estas alturas, y aunque el apoyo de la industria no es el adecuado, parece que a nivel general quien más y quien menos es consciente de las ventajas que aporta la arquitectura x86-64 sobre la x86. A saber, soporte de instrucciones generales de 8 bytes, y la posibilidad de direccionar cantidades de memoria más grandes.

Sin embargo son mucho menos conocidas algunas ventajas añadidas de esta arquitectura. La más evidente es que en las CPU que soportan x64, las instrucciones extendidas como SSE están siempre disponibles, por lo que la mayoría de herramientas de desarrollo tomarán ventaja de este hecho, generándolas cuando pueda resultar ventajoso.…

Continuar leyendo...

Funciones Javascript en Dreamweaver CS4



Aunque soy de aquellos que se sienten más cómodos escribiendo códigos basados en HTML desde un editor no visual, me gusta de Dreamweaver las funciones Javascript que incluye para realizar tareas comunes.

Utilizo estas funciones, que son en general compactas y eficientes, pero sobre todo que están probadas, y son compatibles con un amplio espectro de navegadores y versiones.

Aprovechando la disponibilidad en beta de Adobe Dreamweaver CS4 (10.0.3963), he aprovechado para recogerlas, e irlas actualizando progresivamente de mis proyectos.

Viendo los fuentes de multitud de web, se que hay gente que está en la misma situación que yo, así que dejo aquí las funciones, para que las uséis si lo creéis conveniente.…

Continuar leyendo...

MySQL x86 vs x64



En 7-Zip x86 vs x64, comparé las versiones de 32 y 64 bits del compresor 7-Zip. Una herramienta destinada a usuarios finales, en la que se concluía que el límite del benchmark en memoria, lo ponía el ancho de banda de momoria disponible, más que la velocidad de proceso de la CPU.

Ahora he decidido hacer algo similar, pero con software más particular, y en este caso, habitual de servidores, el MySQL Server 5.0.51a.

Primero de todo, un análisis estático de ambas distribuciones de MySQL una vez instaladas sobre Vista x64, y con el servicio corriendo:
– Tamaño del ejecutable principal: 5.616 Kb.…

Continuar leyendo...

Rendimiento DHTML



Ya comentaba en el anterior Safari y SunSpider, que el magnífico rendimiento en Javascript de Safari en el test de SunSpider, podía estar positivamente influenciado por el hecho de ser el test de referencia durante el desarrollo.

A raiz de las optimizaciones en el dibujado de la última beta de Opera, he ejecutado el DHTML performance test 1, en los navegadores más populares de 32 bits para Windows.

El proceso ha sido ejecutarlo, dejando que aumentase el número de puntos, hasta que la velocidad de dibujo bajara a los 55 FPS.

Estos han sido los resultados obtenidos:
Opera 9.50 (Beta build 9864): 55 FPS @ 210.…

Continuar leyendo...

Safari y SunSpider



Durante el proceso de betatesting en Safari 3, los resultados dejaron bastante que desear.

Con la versión estable 3.1 entre manos, parece que las cosas han cambiado radicalmente. A pesar del elevado consumo de recursos, y el peculiar interfaz de usuario MacOS-like, Safari para Windows es ahora un navegador bastante estable, sobre todo comparado con su juventud, y sobre todo, con un elevadísimo rendimiento Javascript, que supera a Opera, las últimas versiones de Gecko.

Para comprobarlo, he recurrido al test sintético de rendimiento Javascript SunSpider. Estos han sido los resultados obtenidos:

Internet Explorer 7.0 x86 (6001.18000)
Total: 27236.0ms +/- 4.1%.…

Continuar leyendo...

Límite 287.301 líneas en SSMSE



Curioso el límite que tiene el SQL Server Management Studio Express (SSMSE) de Microsoft, a la hora de copiar y pegar consultas de/desde el portapapeles.

La cifra no son 10.000, ni 100.000 ni siquiera 1.000.000. El número concreto es 287.301, que cuando se excede, hace saltar un aviso con el siguiente texto:

You are attempting to copy more than 287301 lines to the Clipboard. This may decrease performance. Do you want to proceed?.

Por más vueltas que le he dado a ese número, no le encuentro ninguna explicación, salvo que en las pruebas de rendimiento de las máquinas de desarrollo del producto, esa cantidad, se considerase obtenía una velocidad de ejecución lenta.…

Continuar leyendo...

TXT2PDF



Aprovechando una buena racha para el software, he creado TXT2PDF.

Como el propio nombre indica TXT2PDF, es un pequeño programa gratuito para Windows, capaz de convertir archivos de texto plano, en documentos PDF.

La base de código se basa en la versión 1.1 (1996) de text2pdf, escrito por Phil Smith, sobre la que se han aplicado bastantes modificaciones y optimizaciones.

La principal característica de TXT2PDF es su eficiencia. El ejecutable principal de menos de 100 Kb sin comprimir, es capaz de procesar hasta 500 páginas por segundo en mi Ahtlon 64 X2. Los PDF resultantes son compatibles PDF 1.1, por lo que para abrirlos basta con con Acrobat 2.0 o compatibles.…

Continuar leyendo...

Efecto autonumérico



Al igual que ocurrió con el llamado Efecto 2000 (Y2K), causado por destinar dos dígitos para almacenar el año en las fechas, me planteo ahora, que ocurrirá, cuando los campos autonuméricos de las bases de datos, excedan su valor máximo. Y lo que es más importante: ¿Cuándo ocurrirá?

Si tenemos en cuenta que la mayoría de SGBD, almacenan los campos de identidad autonumérica como enteros de 32 bits con signo, esto nos da un rango de valores positivos hasta 2.147.483.647. Realmente parece un número elevado, pero haciendo unos cálculos rápidos, veremos que quizás no lo es tanto.

Así que, cuánto tiempo debe pasar hasta que se exceda el rango:

– 1 inserción por minuto: 68 años.…

Continuar leyendo...