Archivo de la categoría Programación

Sieve en C3



Con Sieve en Javascript optimizado, había dado por cerrado el ciclo de rendimientos basados en Sieve en Java, BASIC, Pascal, y C.

Sin embargo después del buen sabor de boca con C3 (Clipper Compatible Compiler), me quedaba por comprobar como de bueno sería su rendimiento.

La clave de Clipper, era que generaba ejecutables nativos, pero que contenían un runtime de p-code para el código, que era interpretado. Esperaba por tanto que fuera menos eficiente que los lenguajes compilados tradicionales: C, Pascal, Basic, … Pero no sabía que tal se comportaría frente a Java o Javascript.

Tanto Java, como Javascript, son ejecutados actualmente con un compilador JIT, es decir, el sistema lee el código fuente, o bytecode, y genera código nativo en memoria, que es el que al final se acaba ejecutando.…

Continuar leyendo...

Portar de *NIX a Windows



Al incluir jpegoptim dentro de FileOptimizer, y dado que no existían binarios precompilados para Windows, he tenido que generarlos yo mismo.

C/C++ se define como un lenguaje portable entre plataformas, la traducción de este vocablo al castellano, es en mi opinión mucho más significativa: transportable. Esto quiere decir, que se puede recompilar un programa de una plataforma en otra, pero ello requerirá un conocimiento bastante detallado de ambas.

Durante su conversión, me he encontrado con dos problemas, que afortunadamente están ya solventados. El primero es el manejo de archivos de texto/binarios, que es diferente en plataformas DOS/Windows, de *NIX.…

Continuar leyendo...

Clipper Compatible Compiler (C3)



Seguí con entusiasmo el desarrollo de C3 (Clipper Compatible Compiler), desde 2003, por aquella época, incluía un compilador para DOS en modo real (dc3.exe), totalmente compatible con el de Clipper 5.2/5.3, era más moderno, y me daba la impresión de ser más rápido compilando que el original. Además los archivos objeto que se generaban eran idénticos a los del original, por lo que a efectos prácticos eran intercambiables. Finalmente esos objetos se enlazaban con las bibliotecas originales de Clipper usando el enlazador DOS que usáramos con Clipper.

Era un trabajo muy meritorio, pero titánico si consideramos que se llevó a cabo por un solo hombre, Bruno Cantero, el que fuera uno de los desarrolladores principales en Harbour.…

Continuar leyendo...

Avira ScanCL



No se han dado prisa, pero en 5 años, la gente de NAI se ha encargado de evitar que consigamos la versión por linea de comandos de McAfee Viruscan gratis.

En Avast, el frontend de consola ya solo está incluido en las ediciones de pago, pero afortunadamente nos quedan opciones.

Si necesitas automatizar el análisis de archivos, una herramienta que pueda operar por linea de comandos es lo más cómodo. Podrás integrarlo en desarrollos web, que por ejemplo analicen los archivos que suben los usuarios, o como un archivo por lotes cuando hagas las copias de seguridad de tus archivos, asegurándote así que la copia está limpia.…

Continuar leyendo...

NSIS



En varias ocasiones he mencionado el instalador NSIS (Nullsoft Scriptable Install System), y aunque ya hace bastante tiempo de ello, no había tenido la oportunidad de dedicarle un artículo completo.

Sin embargo a raíz del nuevo instalador de FileOptimizer y algunos proyectos profesionales, he vuelto a trabajar con él.

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"); });

NSIS es un instalador basado en scripts, con un lenguaje de programación que mezcla primitivas de muy alto nivel, con otras de muy bajo nivel.…

Continuar leyendo...

Objective-C



Cuando a principios del 2000, yo me dedicaba a la consultoría en Java, cosas que tiene la vida, un colega era fanático de NeXT.

Había programado bastante en Smalltalk, y me hablaba de Objective-C como la panacea del futuro. El discurso me encajaba, yo ya era un entusiasta de C hacía muchos años, y el concepto de un lenguaje C con objetos, pero sin las complicaciones de C++, sonaba prometedor.

Curiosamente el tiempo pasó, abandoné ese puesto, y por supuesto Objective-C desapareció. Pero en tecnología, igual que en la moda, muchas cosas se van, y luego vuelven.

Es el caso de Objective-C, que a raiz de MacOS X, y mayormente de iOS está viviendo una época dorada, en lo que a mi respecta, más por imposición comercial, que por sus ventajas intrínsecas.…

Continuar leyendo...

FileOptimizer 6



Hace casi dos años que os hablaba de FileOptimizer, y 1 año sobre su gratuidad, de modo que tocaba actualizar un poco.

Desde entonces he lanzado 15 versiones nuevas, bien fueran mayores, o menores, lo que da un total de 25 actualizaciones en los casi dos años que tiene de vida.

Con la recientemente lanzada versión 6, habréis notado que el ritmo de desarrollo se ha frenado un tanto, y es que funcionalidades que tenía previstas introducir, como la optimización multihilo o el soporte multiidioma, siguen en la lista de tareas pendientes. La razón es muy sencilla, cada vez tengo menos tiempo libre, y cada mejora requiere más esfuerzo de implementación al tener más código escrito.…

Continuar leyendo...

Chenard Chess



Del juego del ajedrez, sólo conozco las normas básicas y alguna anécdota. De hecho no juego habitualmente ni lo hago bien. Ni tampoco me gusta.

Pero cuando se refiere a computación, es un juego que me encanta. Ya en los tiempos cuando oí hablar de ZX-81 Chess, que con apenas 672 bytes de memoria implementaba el juego casi completo, me quedé maravillado.

Luego vendrían Chess Master, Chess Master, Master Chess, Super Chess, Colossus Cheess, Battle Cheess o Fritz.

Chenard Chess, un programa gratuito y de código abierto disponible para varias plataformas (Windows, *NIX, …), escrito y mantenido desde 1993 por Don Cross, puede que no esté a la altura de otros motores de juego más avanzados, pero tiene enormes posibilidades, y es super-compacto, a pesar de utilizar código C++ portable, es muy eficiente.…

Continuar leyendo...

Desfragmentar disquete



A muchos el proceso de desfragmentar un disquete les puede parece lejano, o incluso desconocido.

Allá a finales de los 80, con la utilidad Compress, incluida entre otras en PC-Tools de Central Point Software, me proporcionaba las herramientas necesarias para desfragmentar mis disquetes, tanto de 3,5 pulgadas como de 5,25 pulgadas.

Los candidatos eran aquellos discos flexibles que sufrían mucho trasiego de archivos, y que precisamente por ese hecho, requerían un rendimiento óptimo. Eran sobre todo discos que contenían programas escritos por mi cuanto todavía no disponía de ningún disco duro, en su mayoría en GW-BASIC, y posteriormente en Turbo BASIC, Quick BASIC y PowerBasic.…

Continuar leyendo...

Las 2 partes de COMMAND.COM



Una de las ideas brillantes que tuvo MS-DOS desde su concepción, cuando era todavía QDOS, escrito por Tim Paterson en 1979, fue dividir la estructura en memoria del procesador de linea de comandos COMMAND.COM, en dos partes diferenciadas.

La primera, era la parte residente en memoria, y que siempre estaba cargada. Con el fin de reducir el espacio requerido al máximo, sus funciones se reducían a mínimos.

La segunda parte, era la parte transitorio, esta parte, se reubicaba en la zona alta de la memoria convencional disponible, pero sin reservarla. De este modo estaba activa, hasta que algún programa cargado que fuera lo suficientemente voluminoso, la sobrescribía.…

Continuar leyendo...