Archivo de la categoría Programación

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

Outlaw (I)



En 1995 comenzamos a desarrollar una biblioteca de funciones gráficas para modo 13h de MCGA/VGA (320×200 con 256 colores). Por aquella época lo que más nos motivaba era la prestación pura, así que no es de extrañar que estuviera escrita casi al completo en ensamblador. Las primeras versiones hacían uso del juego de instrucciones básico del 8088/8086, pero en seguida nos dimos cuenta que si queríamos ir en serio, debería obtener el rendimiento extra que daban primero las instrucciones del 286, y luego del 386, llegando incluso a jugar con el scheduler del Pentium. El nombre que le dimos fue glib.…

Continuar leyendo...

Letras degradadas



A mediados de los 90, empezaron a popularizarse en juegos comerciales, y demos, las tipografías degradadas. A principios de 1991, yo ya lo había implementado. Vi diferentes variantes desde las bitono, con la mitad superior de cada letra de un color, y la mitad inferior de otro color, que era requerido en CGA, EGA y VGA con 16 colores o menos, y la variante que degradaba verticalmente todos los píxeles.

Las diferencias, aparte de los años de antelación son que yo lo hice con QuickBASIC 4.5, de manera que aunque funcionaba, distaba mucho de ser eficiente, y en un PC/XT de la época se podía imprimir una pantalla de texto a resolución MCGA/VGA 320×200 con 256 colores en aproximadamente 1 segundo.…

Continuar leyendo...

Quick C, Quick Pascal y Quick BASIC



La gama Quick de Microsoft fueron productos para programadores en general bastante efímeros en el tiempo (1985 – 1990), y que se definían por combinar un entorno de usuario amigable, junto con un precio más o menos asequible.

Usaban la interfaz de usuario conocida de Works, Edit, Macro Assembler, Fortran, Word, … Integraban la mayoría de características necesarias en un sólo paquete, siendo las respuesta natural a la amenaza que causaban los Turbo de Borland.

Irónicamente, esos entornos de usuario integrados, y que en general se incluyeron en la familia Quick, pasarían a formar parte posteriormente de las gamas profesionales.…

Continuar leyendo...