Archivo de la categoría Programación

RealSpeed



En un par de horas, he creado un sencillo monitor de la velocidad real de la CPU, con C++ Builder 2009. El algoritmo de obtención de velocidad, es una variante del publicado por el amigo Ciusbet, que basicamente evita el loop que controla el paso del tiempo para reducir el uso de CPU.

En portátiles, o equipos de sobremesa con tecnologías de variación dinámica de la velocidad del procesador como Cool&Quiet, es fácil observar como va cambiando la velocidad a la que funciona el procesador.

Mi objetivo era más ver las características de C++ Builder 2009, y explorar el Ribbon interface, que la propia herramienta, aunque ya puestos, podéis conseguirla aquí.…

Continuar leyendo...

Unicode bajo DOS



La codificación de caracteres unicode, es algo que se está volviendo tremendamente popular en nuestros días, sobre todo, a raiz de la migración sucesiva de Windows ANSI (1.x, 2.x, 3.x, 95, 98, y ME), a sus respectivas versiones con soporte del juego de caracteres unicode, basadas en el núcleo de NT (NT 3.x, 4.x, 2000, XP, 2003, Vista y 2008).

Esto no quiere decir que los entornos basados en NT no soporten ANSI, que de momento si que lo está, solamente indica que a nivel de API, se permiten también codificaciones de caracteres en unicode, que son capaces de representar hasta 65536 caracteres distintos, en contraposición de los tradicionales 256 de ANSI, o 128 de ASCII.…

Continuar leyendo...

Delphi 2009



Aunque Delphi 2009, fue lanzado oficialmente ayer, llevo algunas semanas jugando con una prerelease de él, que antes era conocido como Tiburón. Esta nueva versión, que está destinada a reemplazar al anterior 2007, y que ahora se identifica como Delphi 12 (12.0.3128.15596 en la versión preliminar), actualiza el compilador de Pascal a la versión 20. Todo un hito, desde Turbo Pascal 1.0 allá por 1983.

(adsbygoogle = window.adsbygoogle || []).push({});

Entre las nuevas características (127 Kb. en formato PDF), la principal novedad que incorpora, es el soporte nativo unicode, para todo el sistema, incluyendo los tipos de datos, la RTL, el IDE, y los componentes VCL incorporados, lo que nos permitirá desarrollar aplicaciones, que soporten codificaciones de caracteres en cualquier idioma.…

Continuar leyendo...

Profile Guided Optimizations



Profile Guided Optimizations, o simplemente PGO, es una técnica que permite a los compiladores recopilar información extra acerca de la ejecución de un programa, de manera que puedan refinar el código generado en base a esos datos.

Aunque parece algo muy lógico, no fue hasta el Intel C++ en su versión 6, creo, que no empezó a estar disponible para PC, sus resultados, sin ser dramáticos, si que mejoraban levemente la calidad del código generado.

Hoy día, las cosas han cambiado sustancialmente, así, una de las causas del aumento de velocidad en Firefox 3, y Opera 9.5 entre otros, cuando los comparamos con sus antecesores, es precisamente el uso de PGO, que logra aumentar el rendimiento de partes críticas de los programas entre el 1% y el 50%.…

Continuar leyendo...

Spectrum en el Assembly 08



El ganador en la categoría extreme, ha sido Spacecake, una composición musical para Spectrum escrita por gasman, h-prg y ay riders, que es realmente una virguería teniendo en cuenta la plataforma.

Menos de 8 Kb, crean la siguiente maravilla, de la que un fragmento de un minuto en MP3, a calidad reducida, requiere 20 veces más espacio…

Puedes descargarlo aquí (140 Kb. en formato MP3).

var googletag=googletag || {}; googletag.cmd=googletag.cmd || [];googletag.cmd.push(function() { googletag.defineSlot("/360613911/GenericDFP2017", [728, 90], "div-gpt-ad-1506002846364-5").addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); });googletag.cmd.push(function() { googletag.display("div-gpt-ad-1506002846364-5"); });



Continuar leyendo...

SolveWordChallenge



Me engancharon a Word Challenge de Facebook, un juego de tipo brain training, que trata de enunciar palabras en base a un conjuto de letras dado, muy al estilo Scabble.

Tras un par de días jugando, conseguí obtener 2.938 puntos en inglés, y 5.912 en castellano. Con algo más de práctica, y un poco de suerte, veo factible llegar a los 8000 puntos, aunque pasar de ahí, es cosa casi imposible.

El brain training trata de entrenar el cerebro poniéndolo a practicar, así que decidí que la mejor manera de entrenarlo, era desarrollar un programa que buscara en un diccionario las palabras que contenían la secuencia de letras dada.…

Continuar leyendo...

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...