Programación archivos | Página 20 de 52 | Bitácora de Javier Gutiérrez Chamorro (Guti)

Archivo de la categoría Programación

Lenguajes en peligro de extinción



Con el paso de los tiempos, han nacido muchos lenguajes de programación, que durante su ciclo de vida, se han reproducido, y en algunos casos han muerto.

El primero que me viene a la mente es Logo, que hasta mediados de los 90 iba a representar el gran salto evolutivo en la pedagogía de la programación.

En el entorno empresarial de los grandes sistemas, seguimos viendo COBOL, REXX y hasta RPG, promovidos y/o creados por el antiguo gigante azul (IBM).

Incluso con un nivel alto de adopción como lo fueran en diferentes épocas Pascal, BASIC, Fortran, Lingo, o xBase (dBase, Clipper, FoxPro), hoy sobreviven, pero lejos de ser lo que eran.…

Continuar leyendo...

Emular un PC en Javascript



A PC emulator in Javascript, es un proyecto del reputado Fabrice Bellard, que demuestra como es posible emular un PC en lenguaje Javascript.

Parte del código de QEMU, del que Fabrice ha creado también una gran parte, para conseguir una emulación equiparable a un 486SX, con un rendimiento meritorio, pero todavía lejos de la realidad.

Si quitamos la curiosidad tecnológica, probablemente la mayor utilidad en A PC emulator in Javascript, sea la de utilizarlo como benchmark de máquinas Javascript en diferentes navegadores, por lo que me he tomado la libertad de ejecutarlo en las últimas versiones de los navegadores web disponibles para Windows, anotando el tiempo que han tardado en arrancar:

– Firefox 7.0a1 2011-06-01 (x86): 4,096s
– Opera 11.50.1027: 4,349s
– Firefox 7.0a1 2011-06-01 (x64): 4,749s
– Internet Explorer 9.0.8112.16421 (x86): 6,021s
– Internet Explorer 10.0.1000.16394 (x86): 6,464s
– Chromium 13.0.781: 6,550s
– Safari 5.0.5.7533.21.1: 9,676s
– Internet Explorer 9.0.8112.16421 (x64): 34,767s

Los resultados me parecen curiosos, ya que se esperaba que Opera o Chrome fueran los vencedores, pero ha ganado Firefox, lo que me hace pensar que gran parte del desarrollo de las máquinas virtuales Javascript, es la optimización de casos comunes y particulares.…

Continuar leyendo...

El fin de Mono, y otros finales



Tras la adquisición de Novell por parte de Attachmate el pasado año, en los últimos días se ha tenido noticias del primer cambio sustancial, el despido del equipo de desarrollo encargado de Mono.

Independientemente de que Attachmate defienda los intereses de Microsoft, estamos en un periodo de intensa crisis económica, al menos en lo que se refiere a países desarrollados, y salvo que estrategicamente esté muy claro, no parece prudente invertir recursos en proyectos que tendrán un cuanto menos, complicado retorno de la inversión. En su día, en decadencia de MySQL, os hablaba de algo similar, en aquel caso, relacionando MySQL, con la compra de Sun por parte de Oracle.…

Continuar leyendo...

Powerbasic



Como muchos de vosotros, comencé programando en lenguaje BASIC. Por aquellos días era no estructurado (con números de linea), e interpretados. Además en mi caso, sobre un hardware de 8 bits.

Bastante tiempo después, con Turbo Basic, llegué a la compilación, que como ahora es conocido por todos, permitía transformar el código fuente, en este caso en código ejecutable nativo. Además Turbo Basic implementaba un dialecto de BASIC estructurado, que permitía evitar el código espagueti.

Turbo Basic 1.0 escrito por Bob Zale, y vendido a Borland, apareció en 1986, llegando a la revisión 1.1 de 1987.…

Continuar leyendo...

Kubuntu 11.04



Como ya viene siendo habitual cada 6 meses, acaba de presentarse Kubuntu 11.04.

A nivel de características, lo más destacable es el uso de KDE 4.6.2, que gracias a usar Qt 4.7.2, ofrece efectos y animaciones más trabajadas, al mismo tiempo que lo hace de forma más fluida. Esta mejora no es “sobre el papel”, sino que se aprecia claramente en equipos modestos, como mi Pentium 4 a 2,8 Ghz en el que lo he instalado.

La gestión de multimedia se hace ahora con GStreamer, que a pesar de causar algunas incompatibilidades, tiene la ventaja de usarse también en Ubuntu, con lo que se obtiene una comunidad más amplia de usuarios y desarrolladores, que lo irán mejorando con mayor agilidad.…

Continuar leyendo...

Lo que no me gusta de WordPress



Tras mi migración de Simple PHP Blog a WordPress, he familiarizándome con el funcionamiento interno de este CMS, encontrando por desgracia bastantes aspectos que no son de mi agrado.

WordPress es magnífico en mucho sentidos, tiene una herramienta de administración sencillo y cómodo; la cantidad de plugins y temas disponibles nos permiten personalizarlo a nuestro antojo con poco esfuerzo; y sobre todo, la cantidad de funcionalidades que soporta “out-of-the-box”, nos permiten cubrir casi cualquier necesidad.

Poca separación entre datos y presentación
No me malinterpretéis, la forma en que WordPress está programado, con sus temas que separan el código del sistema de la presentación es magnífica, sin embargo, la base de datos guarda el contenido de los posts, y de los comentarios directamente en código HTML, y en este sentido, no habría una peor forma de hacerlo si lo que queremos es separar los datos de la presentación.…

Continuar leyendo...

Rendimiento de variables dentro de cadenas en PHP



Tras la sorpresa de Rendimiento de constantes en PHP, os puedo adelantar que esta vez, probablemente lo hagáis de nuevo.

Se trata de concatenar variables a cadenas.

La primera forma, usa cadenas delimitadas por comillas simples, y el operador punto. La segunda usa el método heredado de Perl, de incluir las variables dentro del literal, naturalente, usando comillas dobles. La tercera, es igual que la primera, pero con comillas dobles, mientras que la cuarta y última, usa sprintf.

<?php $KI_MAX_ITER = 500000;   $fInicio=microtime(true); for ($iCont=0; $iCont<$KI_MAX_ITER; $iCont++) { $sRes = 'Esta es la iteración número ' .…

Continuar leyendo...

Mi configuración de WordPress



Continuando con Renovación del blog y mi paso a WordPress, voy a daros algunos detalles más sobre mi actual configuración. Si no tenéis mucho rodaje con él, seguro que os encamina para poder empezar.

Primero de todo escogí un tema que me gustase, buscaba en este orden que fuera funcional, sencillo, y bonito. Encontré Arclite 2.03 que me gustó por su liquidez, que es indispensable si buscamos la facilidad de lectura.

Luego cargué una buena batería de plugins, recomendados, o recopilados por mi. Hay que destacar que cuantos más añadamos más cargado y lento será el blog, pero si necesitas una determinada funcionalidad, no queda más remedio que tenerlos.…

Continuar leyendo...

Rendimiento de constantes en PHP



En PHP tengo por costumbre el usar variables globales como constantes, pero no ha sido hasta hace bien poco que me he cuestionado su eficiencia, teniendo en cuenta que existe define.

Pensando de manera análoga a C, suponía que define iba a ser mucho más eficiente, al ser una constante definida en tiempo de interpretación. Nada más sencillo que comprobarlo con el siguiente código:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 <?php $KI_MAX_ITER = 1000; define('KI_MAX_ITER', 1000);   $fInicio=microtime(true); for ($iCont1=0; $iCont1<$KI_MAX_ITER; $iCont1++) { for ($iCont2=0; $iCont2<$KI_MAX_ITER; $iCont2++) { $iCont3=($KI_MAX_ITER != $KI_MAX_ITER); $iCont3=$KI_MAX_ITER; $iCont3=($KI_MAX_ITER == $KI_MAX_ITER); }   } $fFin=microtime(true); echo ($fFin - $fInicio) .…

Continuar leyendo...

Traslado guti.webcindario.com



El robot automático de webcindario / miarroba, ha decidido eliminar el espacio de guti.webcindario.com, oficialmente, debido a la presencia de malware.

Con todos los programas alojados de mi autoría, y la mayoría con el código fuente disponible, es un motivo realmente difícil de creer, y me inclino a pensar que la carga de servidor que requiere el creciente éxito de SumatraPDFOpt, ha sido el desencadenante de ese cierre.

Desde webcindario, no dan mecanismo alguno para obtener más explicaciones, o hacer que una persona revise el contenido para poder reconsiderar el cierre, pero no lo hay.…

Continuar leyendo...