Archivo de la categoría Software

¿x64 más lento que x86?



Antes que alguien se cuestione a raiz de la lectura de Sieve en C, si realmente es x64 más lento que x86, voy a adelantarme, y aclarar algunos conceptos.

La respuesta rápida es que si, que x64 puede llegar a ser más lento que x86. Esto ocurrirá en los caos en que el código no pueda sacar ventaja de ninguna de las mejoras de la arquitectura x64. Esto pasará en raros casos, donde el código solamente maneje enteros, y acceda a bloques de memoria de 4 bytes, como era el caso de Sieve. La pérdida de rendimiento en esta situación suele ser entorno al 5%, debida a la sobrecarga de manejar punteros largos.

En la mayoría de aplicaciones, como ya vimos con 7-Zip o MySQL, dará una mejoría en x64 de entre el 5% y el 25%.…

Continuar leyendo...

Compilaciones optimizadas de Sumatra PDF



Como usuario regular de Sumatra PDF, y dado que los últimos cambios del código, permiten una compilación directa x64, me ha extrañado que no haya nadie haciendo compilaciones regulares para esa plataforma.

Por tanto, he tenido que tomar la iniciativa, y desde hoy iré publicando con regularidad (al menos una vez al mes), compilaciones actualizadas para Windows de 64 bits de Sumatra PDF, en el proyecto que he llamado SumatraPDF x86/x64 Optimized Builds (SumatraPDFOpt).

Sumatra PDF Opt, parte de los últimos fuentes en el repositorio de desarrollo, donde no he realizado ningún cambio en absoluto.…

Continuar leyendo...

QB64



¿Os interesaría poder compilar vuestros antiguos fuentes escritos en IBM BASIC/BASICA, Microsoft GW-BASIC, Microsoft QBASIC, Microsoft QuickBASIC, Microft BASIC Compiler, o Visual Basic para DOS para Windows x86, Linux x86 o Linux x64?

En caso afirmativo, tenéis disponible QB64, un entorno de desarrollo en modo texto, similar al de QuickBASIC, con una compatibilidad casi del 100% sobre el código de éste. En mi caso, tengo multitud, por no decir cientos de pequeños programitas en BASIC para PC, y ha sido un descubrimiento totalmente revelador. Es cierto que una vez me pasé a Turbo BASIC, con su sintaxis algo diferente, se perdió la compatibilidad QB, pero para eso sigue estando Power BASIC, ¿no es cierto?…

Continuar leyendo...

Windows 3 en vivo



Después de Workbench 3.1 en vivo, hoy os presento Windows 3 en vivo.

Aunque la historia de Windows se remonta a 1985 con el lanzamiento de la versión 1, a la que le siguió la versión mayor 2 de 1987, no fue hasta Windows 3 de 1990 que el entorno gráfico Windows (por aquelo tiempo no era un sistema operativo), empezó a popularizarse, y a ser adoptado por los usuarios.

Pude ver Windows 3, sobre todo en empresas, y poco en usuarios domésticos, salvo algún entusiasta. Con Windows 3.1 de 1992, y sobre todo 3.11 de 1993, esto empezaría a cambiar, marcando la linea de evolución de lo que es ahora Windows.

Personalmente por aquella época yo seguía siendo un asiduo de DOS, para posteriormente serlo de OS/2, y luego Windows NT, de manera que no lo toqué a fondo.…

Continuar leyendo...

Miracle C Compiler



A mediados de los 90, me hice con una copia de Miracle C Compiler, en su versión 1.7, un sencillo compilador shareware de lenguaje C para DOS destinado al aprendizaje del lenguaje. En aquel momento lo pasé bastante por alto, desarrollando con Turbo/Borland C/C++, Microsoft Quick/Visual C/C++ y luego Watcom C/C++ que eran bastante más potentes.

Hoy, he descubierto que el proyecto sigue vivo, actualizándose, y con las misma filosofía que entonces aplicara su autor bts (Tadeusz Szocik). Es decir, una herramienta diseñada con la sencillez como objetivo, de manera que la labor de aprender C, sea lo más sencilla posible.…

Continuar leyendo...

Workbench 3.1 en vivo



Como hice con CP/M en vivo, hoy os muestro Amiga Workbench 3.1 corriendo bajo un Commodore Amiga 4000.

En en principio de los 32 bits, pude hacerme con un Amiga 500 básico (M68000 a 7,14 Mhz, unidad de disquete de doble densidad, un increíble joystick Telemach, y nada más). Pese a que el Amiga era unos 7-8 años más antiguo, todavía daba bastantes repasos a nivel multimedia a los 386 y 486 de la época, y a mi me hizo pasar grandes ratos.

El declive del Amiga, sobre todo en Europa estaba en marcha, aunque eso no quita que hubiera deseado un Amiga 4000T, con su M68040 (luego muy utilizado por Apple).

Para desquitarme, aquí os muestro un video de un A4000 ejecutando Workbench.…

Continuar leyendo...

C/C++ interpretado



Hoy día nos puede parecer que el bytecode, y los lenguajes más o menos interpretados son algo puntero, aunque de hecho Visual Basic del 1 al 4 ya lo utilizaban, y anteriormente lo hicieran varios entornos xBase como FoxPro o Clipper, o el popular Quick Basic.

Lo que en mi experiencia resulta un hecho más insólito es un compilador de C/C++, que soporte código interpretado, y ese, era un producto tan conocido como ni más ni menos Visual C++.

En su versión 1, de la que la 1.52 resultó el máximo exponente, y que luego vino como regalo a aquellos que adquirían la versión 4, teníamos la capacidad de compilar todo o parti de nuestro proyecto a p-Code.…

Continuar leyendo...

Lotus, Intel y Microsoft



Ahora puede resultar curioso o lejano, pero hubo un tiempo en que Lotus (ahora IBM), Intel, y Microsoft, se unieron para desarrollar la especificación que posteriormente se denominaría LIM, como acrónimo de sus siglas: Lotus-Intel-Microsoft.

Hablamos del año 1984, dónde por primera vez la frase de que 640 Kb. deberían ser suficientes, deja de ser válida, gracias a la hoja de cálculo Lotus 1-2-3, que en determinados ámbitos, se quedaba corta de memoria RAM para almacenar la matriz de filas y columnas.

Así surge LIM EMS 3.2, el estándard de memoria expandida, que mediante un tarjeta de expansión ISA, permite ampliar la memoria de cualquier PC, para ser usada por programas diseñados a tal efecto.…

Continuar leyendo...

Las opciones de ARJ



En su momento no adopté ARJ, me parecía que su rendimiento era bajo, y las ganancias en cuanto a ratio de compresión, comparado con PKZip o LHARC no merecían la pena.

Si que en cambio lo utilicé puntualmente, y me sorprendió la cantidad de opciones de que disponía, recuerdo que la linea de comandos típica para comprimir al máximo en volúmenes era así:

ARJ a -jm -va A:\COPIA.ARJ *.*

Como acto rememorativo, he descargado la última versión de ARJ, y he extraído los comandos y opciones disponibles.

Example ARJ/ARJ32 commands:

Add files minus directory structure: ARJ a -e archive *.*
Add two files to archive: ARJ a archive name1 name2
Add files to archive with verification: ARJ a -jt archive *.*
Add files with archive damage protection: ARJ a -hk archive *.*
Add files with maximum compression: ARJ a -jm archive *.*
Add several directories of files: ARJ a archive … dir1 dir2 dir3
Add thousands of files to an archive: ARJ a -hm1 -r archive *.*
Add a chapter to an archive: ARJ ac archive c:\dir\*.* -r
Comment archive header only: ARJ c archive -zcmt.fil
Convert standard archive to chapter: ARJ cc archive
Convert chapter archive to standard: ARJ y archive -jb0
Delete the last chapter from an archive: ARJ dc archive *.*
Delete files completely from all chapters: ARJ d archive -jb* name1 name2
Strip archive comment only: ARJ c archive -zNUL
Extract files from archive: ARJ e archive
Extract maintaining directory structure: ARJ x archive
Extract new and newer files without query: ARJ e archive -u -y
Extract subdirectory from archive: ARJ e archive subdir\*.* -p1
Extract files to directory: ARJ x archive destdir\ *.*
Extract files to directory: ARJ x archive *.* -htdestdir
Extract files to directory with space: ARJ x archive "Program Files\ "
Extract files to directory with space: ARJ x archive "-htProgram Files"
Extract a Win95 archive to plain DOS: ARJ x archive -hf2
Extract all files present in chapter 10: ARJ x archive -jb10
Extract only files updated in chapter 10: ARJ x archive -jb10*
List files in archive: ARJ l archive
List chapters in chapter archive: ARJ lc archive
Move files to archive: ARJ m archive *.doc
Move files to archive deleting per volume ARJ m archive *.doc -d2 -v1440
Move files from archive: ARJ e -d archive *.doc
Recover files from a damaged archive: ARJ x archive -jr
Test integrity of files in archive: ARJ t archive
Test multiple ARJ archives: ARJ t *.ARJ -hr
Add files to a multiple volume archive: ARJ a -va a:archive *.*
Create up to 999 archive volumes: ARJ a -va a:archive
Extract from a multiple volume archive: ARJ x -v a:archive
Create a multiple volume self-extractor: ARJ a -va -je a:archive *.*
Convert archive to self-extractor: ARJ y -je1 archive

Backup drive C to drive A:
ARJ a A:\backup C:\ -a1 -b2 -r -vvas -wC:\ -js -jt -hk
Restore backup on drive A to drive C: ARJ x A:\backup C:\ -vv -y

More detailed ARJ/ARJ32 information:

Usage: ARJ <command> [{/|-}<switch>[-|+|<option>]…] <archive_name>[.ARJ]
[<base_directory_name>\] [<!list_name>|<path_name>|<wild_name>…]

or

ARJ @response_filename [ -& | -+ | -g?…

Continuar leyendo...

CP/M en vivo



Ya os hablé hace bastante tiempo de CP/M (Control Program for Microcomputers), lo que hoy os traigo es un video de alta calidad, que muestra brevemente su funcionamiento.

Si no lo pudisteis disfrutar en su día, os va a servir para haceros una idea más clara de como era, y sobre todo, para valorar justamente la innovación que aportara hoy hace casi 35 años, en 1975.



Continuar leyendo...