Archivo de la categoría Software

Declive de Delphi



Pese a que Pascal nunca fue santo de mi devoción, debo reconocer la extraordinaria contribución que ha éste ha realizado al mundo del desarrollo.

En 1995, con Delphi 1.0, el ecosistema de herramientas de programación para Windows era bastante limitado: Visual C++ 2.0, Borland C++ 4, Watcom C++ 10, y Visual Basic 3. Había una gran dualidad entre ellas, y es que si se buscaba el rendimiento, las primeras eras las más adecuadas, mientras que si se buscaba la productividad, sólo VB era adecuado.

Delphi lo cambió todo, con una herramienta de desarrollo rápido (RAD), muy similar en características a y filosofía a Visual Basic, pero con la capacidad de generar código nativo en vez de p-code, y enlazar estáticamente con sus librerías.…

Continuar leyendo...

Avira 14 y Avast 2014



Pese a que me gusta el campo de la seguridad, y de los antivirus en particular, salvando algunas excepciones, no hablo demasiado de ellos aquí.

La razón es que cada nueva versión, tras nuevas técnicas de mercadotecnia, nuevas interfaces de usuario, etc, pero pocas veces llegan con novedades tecnológicas importantes.

En el caso de Avast 2014, si que se ha revisado el motor de análisis, que ahora es mucho más veloz, tanto para archivos ejecutables como de texto. No puedo más que halagar el esfuerzo que han puesto al conseguirlo renovar por fuera, y también por dentro.

Avira 14, se queda algo corto.…

Continuar leyendo...

¿Cómo transformar PDF CMYK a RGB con FileOptimizer?



Una utilidad colateral que ha surgido en FileOptimizer, es la conversión rápida y sencilla de documentos PDF con codificación de color CMYK a RGB.

La codificación CMYK, utiliza cuatro canales de color (Cyan, Magenta, Amarillo y Negro), en contraposición a los 3 de RGB (Rojo, Verde y Azul). Por un lado esta diferencia, ocasiona que los documentos en CMYK sean del orden de 33% más pesados, pero además, y por motivos de simplificación del código, es probable que se vean incorrectamente en determinados visualizadores de PDF, particularmente en dispositivos móviles, ya estén basados en iOS o Android.…

Continuar leyendo...

Calibre portable x64



El gestor de ebooks Calibre, está disponible para multitud de plataformas Linux, OS/X, Windows 32 bits, Windows 64 bits, … Incluso hay una versión portable para Windows que no requiere instalación. Lamentablemente nunca han distribuido una versión portable de 64 bit para Windows.

En este artículo os voy a explicar como la podéis hacer vosotros mismos, un proceso que es tremendamente sencillo.

Lo primero que necesitamos es una versión portable de 32 bits, extraída en nuestro equipo, y funcionando. Si no la tienes, lo primero es que la descargues.

Una vez la tengas, verás que en la ubicación donde está alojada, hay 3 carpetas: Calibre Library (con nuestra biblioteca de libros); Calibre Settings (con las preferencias del programa); y Calibre (con el propio programa).…

Continuar leyendo...

Breadbox Ensemble



En DOS en la actualidad terminaba la pequeña saga de tres artículos, dando un repaso superficial a Ensemble, del que creo que merece un mayor detalle.

Breadbox Ensemble, conocido anteriormente como Newdeal Office (1996-2000), y GeoWorks o PC/GEOS (1990-1994), con el permiso de Xerox, GEOS era el entorno gráfico probablemente más profesional para ordenadores de los años 80. No en vano, sus orígenes se remontan a 1986 cuando lanzaron la versión para Commodore 64/128.

Desde su primera versión contaba con multitarea preemtiva, y menú inicio, por lo que no es de extrañar que Microsoft se acercara a ellos para intentar adquirirlos mientras trabajaban sobre Windows 2.…

Continuar leyendo...

FPS en ensamblador



En FPS con GRAPH.LIB, habíamos concluido con el análisis y resultados de diferentes implementaciones gráficas en C bajo DOS.

Os adelantaba que en ensamblador la diferencia de rendimiento no iba a ser demasiado elevada, y que el motivo era que la implementación de memcpy, era ya muy eficiente en los compiladores de C.

Pero me apetecía probar Jwasm, por lo que a pesar de todo lo implementé en ensamblador. Me lo estaba pasando bien, así que le apliqué algunos trucos que espero que os resulten interesantes.

Lo primero es que estoy mezclando instrucciones de 8, 16 y 32 bits. En general lo más veloz es usar de 32 bits, pero éstas van a consumir más espacio y memoria, por lo que salvo que estuviera en un punto crítico, he usado el menor tamaño posible para hacer la operación.…

Continuar leyendo...

FPS con GRAPH.LIB



En la anterior entrega (FPS con BIOS), vimos el funcionamiento de los servicios de BIOS. Lo que hoy haremos será exactamente lo mismo, pero usando las bibliotecas bibliotecas gráficas del compilador, en nuestro caso graph.lib de Watcom C/C++, es decir, como nos enseñarían a hacerlo, incluso en la universidad.

El código tiene un aspecto bastante distinto. En vez de BIOS, usamos _setvideomode para asignar el modo gráfico, _remappalette para fijar la paleta de colores y la combinación de kbhit y getch para comprobar el estado del teclado. Sin embargo a nivel estructural es equivalente, y el dibujo se hace también sobre píxeles individuales, que requieren para cada uno de ellos una llamada a _setcolor y _setpixel.…

Continuar leyendo...

FPS con BIOS



Después del artículo sobre Portabilidad, me apetecía retomar los programas y las técnicas de 500 FPS en un PC y 100 FPS en un PC (16 bits), para mostrarlo como sería el mismo proceso usando los servicios que ofrece la BIOS para video. Probablemente el método que usaríamos para implementarlo en una primera fase de aprendizaje.

La BIOS, Basic Input-Output System, hace de mediador entre el hardware, y el programador, ofreciendo servicios de bajo nivel que nos permiten acceder al mismo. A diferencia del acceso directo al hardware, el objetivo de BIOS es garantizar la compatibilidad. La idea inicial era que no importaba como estuviera diseñado un PC en concreto, siempre y cuando expusiera una interfaz común.…

Continuar leyendo...

DOS/32 Advanced



Cuando preparaba el artículo Portabilidad, me di cuenta que dentro de contrib\extender\dos32a estaba todavía incluído DOS/32 Advanced 7.20, la versión en la que tuve mucho que ver. Como en MAME y yo, es algo que tenía hace tiempo olvidado.

A principios de 2000, con el abandono de Watcom C/C++ por parte de Sybase, y el subsiguiente anuncio de liberarlo como código abierto, fue una decisión que me entusiasmó, por lo que no es de extrañar que tuviera cierta implicación personal en aquellos años.

En 2001, con la primera versión 11.0c, me centré en los extensores DOS. Watcom soportaba una gran variedad de ellos, y no quedaba muy claro cual era el mejor, pero probablemente no era DOS/4GW.…

Continuar leyendo...

Portabilidad



Como excusa para revisar los progresos de los snapshots diarios (27 MB en formato TAR.BZ2 vía FTP), decidí unificar los fuentes de 100 FPS en un PC (16 bits) y 500 FPS en un PC, para mostrar el funcionamiento del preprocesador de C, de cara a mantener la portabilidad entre plataformas.

El artículo pretendía explicar el uso de #define, #ifdef/#if defined, pero incitado de nuevo por los poderes ocultos de Watcom, me dediqué a ver hasta cuánto podía mejorar el original, sin necesidad de usar ensamblador. ¡Qué tiempos con el #pragma aux!

Lo primero que hice fue sustituir las llamadas a kbhit y getch, por una implementación directa basada en los servicios de teclado de la BIOS.…

Continuar leyendo...