Archivo de la categoría Programación

Parallel Programming Library



Marco Cantu publicó el interesante artículo Explaining Tasks in Delphi Parallel Library… by Creating too Many Tasks en donde usaba TTask con Delphi para procesar datos en paralelo usando diferentes hilos de ejecución.

Entonces decidí profundizar más en TParallel de Embarcadero, el objeto que encapsula las tareas en paralelo dentro de PPL (Parallel Programming Library), y con el que sin duda tendré que trabajar para implementar el soporte multithreading en FileOptimizer.

El concepto es lógico, puesto que la mayor parte de la complejidad es transparente para el programador, y gracias al Using the For Loop from the Parallel Programming Library, se entiende muy bien.…

Continuar leyendo...

Libros de programación



Fernando se dio cuenta de algo curioso, he escrito muchísimo sobre libros, y más aún sobre programación, en especial de la vieja escuela, o las batallitas del abuelo cebolleta como yo las llamo. El caso es que nunca hay escrito sobre ambas disciplinas a la vez. Es decir, sobre libros y sobre programación. En su Guía de referencia rápida para programadores, “Funciones del MS-DOS” y “La ROM BIOS de IBM” de Ray Duncan me retó a hacerlo, así que ahí voy…

En Al principio fue el libro resumía la importancia clave del material impreso por aquella época de los años 80 y 90.…

Continuar leyendo...

RAD Studio 10.2.2



Embarcadero Technologies acaba de lanzar el Update 2 para RAD Studio 10.2 (Tokyo), actualizado ahora a RAD Studio 10.2.2 (Delphi y C++ Builder).

Siendo una actualización menor, no cabría esperar grandes novedades, salvo correcciones de errores y actualizaciones menores. Sin embargo, a tenor del roadmap de septiembre 2017, estábamos expectantes por esos cambios en el IDE, y los nuevos controles.

Estas son las novedades relativas a ese respecto:
IDE actualizado: Tema oscuro o claro, iconos mejorados, y una nueva pantalla de bienvenida.
Edición rápida en FireMonkey: Similar a la que tenían los formularios VCL.…

Continuar leyendo...

Casio fx-CG50 (Operaciones)



Seguimos el análisis a la calculadora gráfica y programable Casio fx-CG50, que iniciamos en Casio fx-CG50 (Primeras impresiones), hoy, centrándonos en sus capacidades y funciones. Si te perdiste la primera entrega, puedes leer Casio fx-CG50 (Introducción).

Conectividad

La conectividad es muy buena. Con el cable USB, se monta la calculadora como un volumen Windows, al que podemos acceder directamente. Podemos editar sus archivos ahí, incluso los programas que tengamos, lo único, es almacenarlos desde la propia calculadora en formato texto (TXT) en vez de G3M.

var googletag=googletag || {}; googletag.cmd=googletag.cmd || []; googletag.cmd.push(function() { googletag.defineSlot("/360613911/GenericosDFP2018", [728, 90], "div-gpt-ad-1523882324353-4").addService(googletag.pubads()); googletag.pubads().set("page_url", "http://www.javiergutierrezchamorro.com/category/informatica/programacion/page/3"); googletag.pubads().enableSingleRequest(); googletag.enableServices(); });googletag.cmd.push(function() { googletag.display("div-gpt-ad-1523882324353-4"); });

El inconveniente, es que para usar la calculadora en modo normal, es necesario desconectarla o expulsarla, así que las pruebas se convierten en algo engorroso, obligándonos a conectar y desconectar el dispositivo.…

Continuar leyendo...

Casio fx-CG50 (Introducción)



En el artículo de Calculadoras programables, os explicaba como en su momento opté por sustituir mi FX-4000P por una FX-6300G, no porque realmente necesitase representaciones gráficas, sino porque era la evolución tecnológica lógica.

Pues bien, a día de hoy, y tras estar con la Casio FX-991SPX durante casi dos años, con un excelente resultado, ha entrado la nueva calculadora científica, gráfica y programable de Casio, la Casio FX-CG50.

var googletag=googletag || {}; googletag.cmd=googletag.cmd || []; googletag.cmd.push(function() { googletag.defineSlot("/360613911/GenericosDFP2018", [728, 90], "div-gpt-ad-1523882324353-5").addService(googletag.pubads()); googletag.pubads().set("page_url", "http://www.javiergutierrezchamorro.com/category/informatica/programacion/page/3"); googletag.pubads().enableSingleRequest(); googletag.enableServices(); });googletag.cmd.push(function() { googletag.display("div-gpt-ad-1523882324353-5"); });

Contexto

Debo aclarar, que la fx-CG50, no viene a sustituir a la FX-991SPX, no hablamos de una renovación generacional, como fue el paso de la FX-991ES Plus a la FX-991SPX, sino que es verdaderamente un cambio de categoría.…

Continuar leyendo...

El software inflado



La Ley de Wirth, enunciada por Niklaus Wirth en 1995, el artífice del lenguaje Pascal y sus derivados, dice lo siguiente:
“El software se ralentiza más deprisa de lo que se acelera el hardware”

Es un hecho evidente y notorio para todos. La mayoría de software que tenemos instalado funciona más lento que sus versiones anteriores. Lo vimos hace muchos años con Macromedia Studio 8 y Adobe CS3, que separados por un año y medio de diferencia, mostraron un incremento de tamaño del 15%. Puedes pensar que la diferencia entre Adobe Creative Suite 3 de marzo de 2007 y Macromedia Studio 8 de septiembre de 2005, estribaba también en el cambio de propietarios, y que por tanto requirió la integración de código adicional.…

Continuar leyendo...

FileOptimizer 11



Tal vez cuando leísteis FileOptimizer y la comunidad, tuvierais la impresión de que el desarrollo de File Optimizer, quedaría abandonado. No es en absoluto el caso, y sigue estando en una fase de desarrollo plenamente activo.

FileOptimizer, continúa evolucionando, y la prueba es la reciente versión 11, lanzada con importantes cambios y mejoras.

Para que os podáis hacer una idea, he tomado como base FileOptimizer 6.80, de abril de 2014, y que es la versión más antigua de código fuente que conservo en el repositorio, correspondiente a la r2. La he comparado con FileOptimizer 11.00 de septiembre de 2017, o sea 3 años y medio después.…

Continuar leyendo...

REBOOT para DOS



Disfruté bastante haciendo UPTIME 2.0 para DOS, así que me puse unos minutos, y desarrollé REBOOT.

Esta sencilla utilidad para DOS de 126 bytes en un archivo .COM, se encarga de lanzar un reboot o reinicio de equipos basados en DOS. En realidad, es un reinicio en caliente, o warm boot, similar al que obtendríamos pulsando Ctrl-Alt-Supr.

He usado ASMC, pero debería poderse ensamblar sin problemas con JWASM, UASM, o incluso MASM. La implementación es sencilla, salta a la dirección de memoria FFFF:0000, que almacena la rutina de reinicio de la BIOS. Dicha rutima, asume que en la posición 0040:0072 hay un entero de 16 bits que indica la forma de reboot.…

Continuar leyendo...

¿Cómo mejorar la compresión de NSIS?



Trabajando en FileOptimizer me sugirieron disminuir el tamaño del instalador.

Cómo sabéis, está basado en Nullsoft Scriptable Install System (NSIS), el instalador que se hizo famoso con el desaparecido WinAMP, y estaba configurado para comprimir usando LZMA, que es el algoritmo que aporta mejores resultados sobre ZLib y BZip2. Como podéis apreciar en Setup\FileOptimizerSetup.nsi, lo primero que se hacía era escoger LZMA como algoritmo de compresión:

SetCompressor /SOLID /FINAL lzma

Quedaba ampliar el diccionario de LZMA, que había fijado a 96 Mb. desde hacía algún tiempo. El motivo, que incluso en NSIS 3.01, si lo aumentaba, se producía un error un tanto extraño:

Internal compiler error #12345: deflateInit() failed(initialization failed [-2]).…

Continuar leyendo...

FileOptimizer y la comunidad



Hace unos meses publicaba Reflexiones acerca de FileOptimizer, donde os explicaba el gran esfuerzo que hace falta para mantener un producto como FileOptimizer, siendo totalmente gratis. En aquel momento, acababa de aparecer FileOptimizer 9, y desde entonces, hemos llegado ya a FileOptimizer 10, que además, celebra su quinto aniversario. 5 años en software, son un mundo, en particular, si hablamos de un desarrollo que está mantenido solamente por una persona, y de la que la cantidad de actualizaciones se cuentan por decenas, con una evolución palpable.

A tenor de sus estadísticas, no puedo estar más satisfecho con la popularidad que está adquiriendo.…

Continuar leyendo...