Archivo de la categoría Programación

GIMP



GIMP (GNU Image Manipulation Program), es un programa de retoque fotográfico y de imágenes gratuito y de código abierto, disponible para la mayoría de plataformas *NIX, MacOS así como Windows, tanto en 32 como en 64 bits.

La cantidad de características que dispone es grandísima, aunque tampoco penséis en un Photoshop, y si más bien en un Fireworks o Paintshop Pro. Su apariencia es bastante cuidada, sobre todo en plataformas Linux GNOME.

Personalmente, lo encuentro muy sencillo de utilizar, y más rápido de cargar que otros productos, superando a alternativas más limitadas como Paint.NET.…

Continuar leyendo...

SQLite compilado para DOS



Desde que a finales de 2009 publicase SQLite 3 compilado para x64, la adopción de SQLite no ha parado de aumentar. En gran parte gracias a Web SQL, lo que ha hecho que sea portado a todavía más plataformas.

Un caso curioso es el del anciano (no quiero decir obsoleto DOS), que aunque ofrece desde hace tiempo ports no oficiales de SQLite, en general son complicados, pues se basan en parches a los fuentes, que generalmente se compilan con DJGPP (GCC).

Por suerte, hay un camino mucho más sencillo, que es usar HX-DOS Extender, que en esencia permite ejecutar multitud de aplicaciones Win32, sobre DOS en modo protegido.…

Continuar leyendo...

Microsoft Query "2010"



Microsoft Query, también conocido como MSQRY32, MSQUERY o sencillamente MSQRY es una olvidada utilidad que viene incluida con Excel desde la versión 5 de 1993, y por ende, incluido posteriormente desde Office 4.2.

A pesar del nombre del ejecutable, o su innegable herencia de de la versión 1.0 todavía de 16 bits, en Office 2010 se ha actualizado a la versión 14, donde exceptuando un port completo de x64, contiene las mismas funcionalidades de antaño.

Sorprende que una herramienta así, de la que reconozco he hecho uso en determinadas ocasiones del pasado por su simplicidad, siga casi 20 años después sin apenas cambios, y lo que es más importante, todavía distribuyéndose.…

Continuar leyendo...

Web Storage



Si hace unos días hablé de Web SQL, ahora le toca el turno a otra API Javascript reciente, destinada a sustituir ciertos procesos que se realizaban a nivel de servidor, por cliente. Me estoy refiriendo a Web Storage, o DOM Storage dependiendo de la terminología.

Web Storage por un lado viene a cubrir las carencias para el almacenamiento temporal de la información en el cliente que hasta ahora se implementaban con cookies, y por otro, como he dicho, a evitar procesos de servidor en el almacenamiento de esta información.

Para ello se nos ofrecen dos objetos principales, sessionStorage (para el almacenamiento de datos durante la sesión), y localStorage (para el almacenamiento de datos persistentes a la sesión).…

Continuar leyendo...

Web SQL



La API Web SQL brinda la posibilidad de acceder a una base de datos local en el cliente (navegador del usuario) desde Javascript.

A día de hoy, es soportada desde Chrome/Chromium/Iron 4, Opera 10.5 y Safari 4. A nadie le sorprender que Internet Explorer 8 no lo soporte, aunque a más de uno le sorprenderá que Firefox/SeaMonkey siga apostando por la alternativa no estándar de MDM

Típicamente Web SQL está implementado sobre SQLite, que hace que sea ligero y rápido.

De momento no hay demasiados sites que aprovechen Web SQL, aunque dado lo sencillo que es de usar, preveo una paulatina migración de base de datos de servidor a cliente, al menos en aquellos casos que tenga sentido.…

Continuar leyendo...

LOCs en programas Open Source



Hace 5 años, en Lenguajes y programas, analizaba el lenguaje de programación principal en el que estaban escritas aplicaciones de uso mayoritario.

En el índice de proyectos de código abierto de Ohloh, se nos muestran multitud de proyectos con el código fuente disponible. El punto interesante, es que ofrecen la cifra de LOCs (Lines Of Code) de cada uno de ellos.

Los LOC fueron una métrica muy utilizada en el pasado para el análisis de la complejidad de los proyectos informáticos, y aunque hoy día, se tiende a otras fórmulas, siguen teniendo la ventaja de reflejar con mucha claridad el esfuerzo de implementación necesario.…

Continuar leyendo...

Cuidado: Descargas automáticas



En la mayoría de navegadores recientes, con la salvedad de Internet Explorer, se pueden configurar las descargas para que automáticamente se guarden en una carpeta determinada sin intervención alguna del usuario.

En el caso de Safari, Firefox, Seamonkey u Opera, las opciones están relativamente escondidas, y no suele ser habitual que los usuarios lo cambien.

Con Internet Explorer, sencillamente no existe tal opción.

En cambio, con Chrome/Chromium/Iron, la mencionada preferencia está más que accesible, y he visto en varios equipos que está configurada de esta manera, lo cual, es sin duda una grave brecha de seguridad.…

Continuar leyendo...

Técnicas víricas: Polimorfismo



El polimorfismo consiste en cifrar nuestro programa de manera que su contenido varíe dinámicamente, y que por tanto lo haga más complicado de detectar.

Lo que hace nuestro código VBS es básicamente leer el contenido del fichero original, y codificarlo de una manera que siga siendo ejecutable, de manera que se explota también las características de código automodificable.

La idea es transformar el contenido en una cadena de caracteres, que contienen el carácter original, pero encriptado con XOR. Utilizamos como clave de encriptación un carácter generado más o menos aleatoriamente sobre los segundos de la fecha del sistema.…

Continuar leyendo...

Técnicas víricas: Introducción



Desde hace bastante tiempo que me planteaba explicar con palabras inteligibles y códigos de ejemplo, las técnicas más utilizadas por virus y malware.

Hablando con un amigo, surgió el reto de desarrollarlo en VBScript, un lenguaje sencillo, fácil de entender, y dónde además había cierta complicación técnica al aplicar los conocimientos, pero que al mismo tiempo evitaba tener que lidiar con juegos de instrucciones y formatos de ejecutables.

Me pareció prudente atacarlo también en VBS, pues hay mucho desalmado inconsciente que le entusiasma el copiar y pegar, de manera que los ejemplos que veamos en esta serie de artículos, serán funcionales unitariamente, aunque no conjuntamente como malware.…

Continuar leyendo...

Flash, no tan rápido



Como sabéis, la máquina virtual que usa Adobe Flash para el código ActionScript 3, está basada en el proyecto Tamarin de la Fundación Mozilla. Esto quiere decir, que aunque AS3 sea un superconjunto de Javascript, comparte gran parte de la base de código utilizada en TraceMonkey, que a su vez se usa por ejemplo en Firefox, para la ejecución de Javascript.

En Rendimiento Javascript vs VBScript, analizaba las diferencias de rendimiento que había bajo Internet Explorer a la hora de ejecutar el mismo código en VBScript y Javascript. Luego en Benchmark de CPU/FPU en Flash, hacía un análisis del rendimiento en lo que a cálculos se refiere desde Flash.…

Continuar leyendo...