Archivo de la categoría Programación

Mi relación con Pascal



Hace algunos días surgió una conversación en la que varias personas se sorprendían porque siguiera usando el lenguaje Pascal en estos días. Me pareció lo suficientemente interesante como para reflexionar sobre ello, y publicarlo aquí, ya que en lo que a mi respecta, Pascal es un lenguaje que nunca me ha gustado demasiado, que que en cambio si he utilizado bastante.

Analicemos a continuación el porqué… Primero de todo, Pascal fue el primer lenguaje más o menos serio que aprendí. Dominaba varios dialectos de BASIC, algo de ensamblador Z80, y otros lenguajes sencillitos como LOGO, pero quería algo más.…

Continuar leyendo...

FreeMem



Por esas cosas que ocurren de vez en cuando, me he topado con FreeMem, un sencillo “desfragmentador de memoria RAM” escrito en Visual Basic Script (VBS).

La idea se me pasó por la cabeza en 2008, cuando con el auge de Windows XP y Vista, seguía habiendo multitud de usuarios que alababan los méritos de este tipo de herramientas, a pesar que no hace falta ser demasiado avispado como para detectar el fraude.

Quizás en núcleos de Windows 95, 98 o ME, el simple procedimiento de reservar un bloque grande de memoria, para forzar al sistema operativo a paginar en disco el contenido de la memoria, y luego liberar ese bloque, para que se recuperara el contenido de disco, daba ciertas ventajas en cuanto a fragmentación y más memoria libre.…

Continuar leyendo...

Implatanción de SQLite



Soy entusiasta de SQLite desde hace muchos años, cuando todavía era minoritaria, y acababan de lanzar la versión 2.

Me gusta ver como su implantación ha ido progresivamente en aumento. Desde navegadores web que implementan WebSQL y LocalStorage como Chrome, u Opera, hasta Firefox, que además lo utiliza internamente para las URL escritas, y los favoritos.

Clientes de correo como Thunderbird, que lo usan como almacenamiento de mensajes, o lectores de feeds tales como FeedDemon, y GreatNews, que lo utilizan para lo mismo.

No podemos olvidarnos de Skype, que almacena gran parte de sus datos también en SQLite, o Adobe AIR, que lo ofrece con una API al usuario.…

Continuar leyendo...

Crear índices en campos TEXT o BLOB



Como sabéis, MySQL no permite la creación de índices en campos de tipo TEXT o BLOB ni en sus derivados (TEXT, MEDIUMTEXT, LONGTEXT, BLOB, MEDIUMBLOB, LONGBLOB).

Sin embargo, la documentación de CREATE INDEX nos da la pista para hacerlo posible, que es limitar la longitud del valor a indexar.

De este modo, y si lo que necesitamos es por ejemplo en un WordPress, filtrar los valores del campo meta_value en la tabla wp_usermeta con una longitud de hasta 128 caracteres, podemos aplicar lo siguiente:

CREATE INDEX meta_value ON wp_usermeta(meta_value(128));

Cuando el filtro, requiera más de esos 128 caracteres, el índice no será válido, y por tanto se comportará como si no estuviera indexado.…

Continuar leyendo...

Radia Joy Perlman



Después de haber hablado de Roberta Heuer Williams, hoy vamos a encargarnos de Radia Perlman, de nombre completo Radia Joy Perlman.

Nacida en 1951, es probablemente conocida por haber ejercido de CTO (Chief Technology Officer) en Sun Microsystems, donde llegó a crear cerca de 50 patentes, aunque la compra por parte de Oracle la obligara a marcharse después a Intel.

Su mayor contribución cuando formaba parte de DEC (Digital Equipment Corporation), al crear Spanning Tree Protocol (STP), un protocolo fundamental hoy día en las redes locales (LAN) basadas en Ethernet.

Menos conocido, pero para mi más meritorio, fueron sus anteriores contribuciones en el MIT, donde bajo la supervisión de Seymour Papert, participó en la creación del lenguaje LOGO, y sobre todo, puso en práctica sus condiciones pedagógicas en la enseñanza del mismo a niños de a partir de 3 años.…

Continuar leyendo...

¿Por qué FileOptimizer es gratuito y de código abierto?



Recibo algunos emails preguntando porqué FileOptimizer es gratuito y si siempre lo será. Me doy cuenta que cuando hablé de su historia, no expliqué este aspecto.

Llevo publicando software estándar desde aproximadamente 1990, y no tardé mucho en darme cuenta que era muy difícil conseguir ingresos vendiéndolo.

El creador de 2M, Ciríaco García de Celis, ya reconocía a mediados de los 90, que afortunadamente no necesitaba vivir de 2M. Todo y que éste fue tremendamente popular en aquellos años.

Argumentemos esto con algunos números… A día de hoy FileOptimizer ha igualado en popularidad a mi XPlorer de 2004.…

Continuar leyendo...

Intel C++ Compiler



Compiladores de C, existen desde casi los comienzos de los ordenadores, desde 1972, mucho antes de que apareciera el PC de IBM. Sin duda el sector de los compiladores de C, ha sido una guerra cruenta. Sin ir más lejos, benchmarks, y programas que necesitaban un elevado desempeño, se compilaban con Watcom C++ hasta hace no muchos años.

Otro ejemplo anecdotista sería Microsoft, que con su C Compiler primero, luego C++ Compiler, y finalmente Visual C++, lleva desde el principio en el terreno de juego, y nunca ha conseguido ser el que mejor código generase.

En el campo del PC, existen desde el principio, naturalmente.…

Continuar leyendo...

FileOptimizer



Ha pasado algo más de un año desde TBClamAV, y ya me empezaba a entrar el gusanillo de desarrollar otra cosa. Además, a pesar de lo capaz que era TBClamAV, obtuvo menos éxito del que me esperaba. Quiero creer que por la decreciente popularidad de The Bat!.

De manera que me propuse crear FileOptimizer o File Optimizer, un optimizador de archivos nativo para Windows, gratuito y de código abierto, que consiguiera reducir el tamaño de los mismos, sin pérdidas de calidad (lossless), a lo sumo, y de manera configurable, puede eliminar los metatags, pero ese es el único cambio que en apariencia externa realiza sobre los archivos, a pesar que a nivel interno se efectúen gran cantidad de manipulaciones.…

Continuar leyendo...

DOS en la actualidad (II)



Pasamos al mundo de aplicaciones que podemos usar sobre DOS:

Programación
Como decía al principio, es sin duda el punto fuerte de DOS, con buenos entornos de programación para los lenguajes más habituales, y para los que no tanto también.

Basic: QuickBasic/Microsoft Basic PDS/Visual Basic, Turbo/Power Basic

C/C++: Borland C++ 3.1, Turbo C++ 4, OpenWatcom C++, DigitalMars C++ 8.52

Ensamblador: Microsoft Macro Assembler (MASM), Netwide Assembler (NASM), Borland Turbo Assembler (TASM).

Fortran: OpenWatcom Fortran 1.9.

Pascal: Borland Pascal 7.01 o Turbo Pascal 7.1.

xBase: Clipper 5.3b, FoxPro 2.6 o C3 Compiler.…

Continuar leyendo...

Outlaw (II)



Nos planteamos pasar a Watcom C++ 10.5, necesitamos sobre todo menos lío con la gestión de XMS, pero lo que en realidad nos gusta es su rendimiento. Sin embargo, tenemos tanto código específico para Borland de cara a exprimirlo al máximo, y tanto ensamblador en modo real, que hacerlo vendría a ser casi como empezar de cero. Por no hablar de eliminar otra vez las dependencias de XMS, y buscar nuevas librerías sustitutivas. Tiempo después nos sorprendería que si bien títulos punteros y que admirábamos como Mortal Kombat, lo usaban, Street Fighter II, nuestro preferido, lo hacía con Borland C++.…

Continuar leyendo...