Archivo de la categoría Informática

Cibernética



Como probable aficionado a la ciencia ficción, seguro que has oído hablar de la cibernética, una disciplina (no me atrevo a llamarla ciencia), que tiene por fin el control de las máquinas.

Su origen etimológico es curioso, y parece venir del griego, traducido literalmente como el arte de manejar un navío. Platón usó el término en su República con el significado de arte de dirigir a los hombres. Pero no es hasta 1948, que Wiener le da el sentido de control y comunicación en el animal y en la máquina.

Después, en 1951, Bateson habla de ella como la rama de las matemáticas que se encarga de los problemas de control, recursividad e información, que en mi modesta opinión se acerca bastante a la realidad, a pesar de ser bastante amplia, y lo discutible de "rama de las matemáticas.…

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

El archivo hosts



Si te dedicas a internet, ya sea en la modalidad de programación, como de sistemas, seguro que sabes lo que es el archivo hosts, y probablemente también lo hayas utilizado alguna vez. Si no, es posible que lo hayas utilizado para realizar acciones poco éticas.

Lo que seguramente no sabes, es porqué ese archivo está allí, y funcionando desde tiempos inmmemoriales en diferentes plataformas desde *NIX, hasta Windows, Netware, OS/2, o Mac.

Antes de internet, cuando la red era militar, la mayoría de dominios eran .mil, y se la conocía como ARPANET, no había protocolo DNS (RFC 2535) ni por tanto servidores de DNS.…

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

Mixxx



Mixxx es un software para mezclar pistas al estilo DJ, gratuito, de código abierto, y multiplataforma (Linux 32 y 64 bits, MacOS, Windows 32 y 64 bits, …).

Incluye todo lo que un novato necesita (conexión de auriculares, tempo, crossfader, …), y muchas de las funcionalidades que un profesional pueda usar (conexión MIDI, platos, …).

Permite pinchar directamente los formatos de audio más habituales (WAV, MP3, OGG, FLAC), y guardar nuestras sesiones en formato WAV o AIFF.

No está traducido al castellano, pero es sencillo de utilizar, y las indicaciones visuales, ayudan bastante con el beatmatching.…

Continuar leyendo...

Una imagen vale más que 1000 palabras



El origen de la tan conocida frase de Una imagen vale más que mil palabras, viene de un antiguo proverbio chino, que podríamos traducir literalmente como el significado de una imagen puede expresar diez mil palabras.

¿Quién fue su autor original? ¿Quién dijo esta frase por primera vez? ¿Cuál es su origen? Como ocurre en la sabiduría popular, sus comienzos son difícilmente rastreables, y su rastro se difumina, por lo que queda relegada al anonimato. Resulta ser un misterio el porqué se redujo desde la cifra de 10.000 palabras en la frase el significado de una imagen puede expresar 10.000 palabras, a sólo mil en el refrán español de una imagen vale más que 1.000 palabras.…

Continuar leyendo...

90 FPS en HTML 5



Después de JS ZX LOAD "" SCREEN$, he dado una vuelta de hoja más, esta vez para poder comprobar el rendimiento de blitting en HTML 5.

Para ello he partido del código en 800 FPS en un PC, y lo he adaptado en menos de 15 minutos.

Los resultados, un equipo que daba con el binario para Windows x64 1300 FPS, consigue con la versión de HTML 5 bajo Chrome 6 unos 90 FPS (75 FPS en Opera 10.6 y 60 FPS en Firefox 3.7 x64), es decir, un rendimiento bastante similar al de la versión para DOS de 16 bits.

Como de costumbre, el código lo tienes aquí (2 Kb. en formato HTML).



Continuar leyendo...

SQLite compilado para DOS (386)



No me di cuenta, pero el ejecutable que publiqué en SQLite compilado para DOS, tenía un problema. No era realmente un bug, ni nada por el estilo, sino un problema de concepto.

El asunto está en que Visual C++ 2008, genera instrucciones de Pentium y superiores a la hora de compilar, que en general no sería un problema si hablamos de Win32, pero lo es absolutamente si hablamos de DOS, pues recordemos que DOS, es capaz de funcionar incluso en equipos basados en procesadores 8088.

Para ello, he actualizado los fuentes del artículo original para SQLite 3.6.23.1 (en vez de la 3.6.21), y los he compilado con OpenWatcom 1.9 RC5, esta vez generando código para 386, sin FPU, y optimizando para tamaño en vez de para velocidad.…

Continuar leyendo...