Logo de Torre de Babel
Portada Libros Diseño web Artículos Glosario RSS
Buscar

Memory leaks en JavaScript

El uso de JavaScript se ha incrementado notablemente en los últimos años, sobre todo desde que el uso de tecnologías tipo AJAX ha ido haciéndose extensivo en el diseño de aplicaciones Web. Según EDC, el número de programadores que utiliza JavaScript triplica al de otros lenguajes interpretados con finalidad similar, como PHP o Perl. Este aumento en la utilización de JavaScript en proyectos más complejos ha provocado también la aparición de problemas que hasta hace poco no eran tales, como la pérdida progresiva de memoria por parte del navegador mientras se ejecuta la aplicación web.

JavaScript es un lenguaje dinámico en cuanto a la gestión de la memoria se refiere, de tal forma que el programador teóricamente no tiene que preocuparse de la liberación de los bloques que ya no están en uso. Existe, como en Java o la plataforma .NET, un recolector de basura que se ejecuta en segundo plano y va comprobando si las referencias existentes a cada bloque siguen siendo válidas, hay alguna variable apuntando a ese dato, o bien ya no resultan útiles, en cuyo caso se procede a su liberación.

El problema surge cuando se emplean jerarquías de objetos, algo muy habitual en DOM y en consecuencia en AJAX, en las que un padre apunta con una de sus propiedades a una lista de hijos y éstos, a su vez, mantienen una referencia al padre que les corresponde. Si se destruye la referencia al nodo padre, podría esperarse que tanto éste como los hijos asociados se liberasen, pero lo cierto es que el recolector de basura comprueba que hay objetos, los nodos hijo, que mantienen referencias al padre, por lo que éste no se libera. Al no liberarse, existe un objeto que tiene referencias a los nodos hijo, que tampoco se liberan.

La solución, en casos así, pasa por recorrer todos los nodos hijo haciendo nula la referencia a sus respectivos padres, eliminando finalmente el nodo principal. De esta forma se asegura la correcta liberación de todos los bloques de memoria ocupados.


Publicado el 29/2/2008

Windows Server 2008

Portada libroEl nuevo Windows Server 2008, que presenta Microsoft en Madrid durante el evento que está teniendo lugar hoy mismo, incorpora todas las funciones que una empresa puede necesitar de un sistema operativo de servidor, algunas de ellas renovadas por completo respecto a versiones previas como son los servicios de terminal, las nuevas herramientas de administración o características como PowerShell. En este libro se aborda todo el proceso de implementación de este sistema operativo, desde la instalación hasta el acceso remoto, pasando por la configuración del Directorio Activo o servicios básicos de red. Como es habitual, en la sección de libros encontrarás una descripción extendida, con todos los datos del libro, así como el índice de contenidos completo.

Si quieres tener una visión general sobre esta nueva versión de Windows Server, en el próximo número de la revista PC Actual encontrarás un artículo mío en el que he tratado de resumir lo más importante. Además estoy trabajando en un segundo libro, menos avanzado que este manual que ya está en las librerías, en formato de guía práctica, enfocado a empresas pequeñas y medianas que pueden aprovechar las características de Windows Server 2008 para mejorar su sistema de gestión de información.


Publicado el 27/2/2008

Conversión de un contenedor STL a un vector C++

Una de las ventajas de utilizar C++, respecto a otros lenguajes, es la seguridad de que podemos utilizar una biblioteca estándar de patrones o plantillas, la conocida como STL, para todas nuestras necesidades de estructuras de datos y algoritmos básicos, sin perder un ápice de portabilidad entre sistemas operativos.

El uso de contenedores como listas, colas o mapas, junto con los iteradores asociados, facilita una gran cantidad de tareas que suelen aparecer en todo tipo de aplicaciones. Cuando los datos almacenados en esos contenedores han de ser facilitados a algún servicio del sistema, sin embargo, se hace necesaria una conversión previa, ya que dichos servicios no actúan sobre contenedores STL sino sobre vectores o matrices básicos. Aunque puede utilizarse un iterador para recorrer los elementos del contenedor, agregándolos individualmente a una matriz previamente declarada, nos resultará mucho más cómodo utilizar la función global copy() con que cuenta la STL.

Suponiendo que tuviésemos una lista con enteros y que nos viésemos en la necesidad de entregar esos datos a una función del sistema operativo en forma de matriz, los pasos a dar serían los siguientes:

int* Enteros = new int[ListaEnteros.size()];
copy(ListaEnteros.begin(), ListaEnteros.end(), Enteros);

Son únicamente dos líneas de código, un procedimiento mucho más breve que la obtención de un iterador y codificación de un bucle para copiar elemento a elemento.


Publicado el 26/2/2008

Cálculos estadísticos con Excel

Portada libroLa estadística es una ciencia presente en multitud de escenarios de la vida cotidiana, así como en no pocos planes de estudio y puestos laborales. A pesar de que existen aplicaciones específicas para la realización de cálculos estadísticos, la mayoría de nosotros no necesitamos más que una herramienta básica que nos permita estudiar una muestra, conocer sus medidas fundamentales de posición y forma o analizar la relación existente entre dos variables. Ésos son los temas abordados en este libro.

La estadística es una ciencia indispensable en todos los campos de investigación, en el control de calidad y en la mayoría de los procesos productivos, siendo por ello una de las materias abordadas en multitud de planes de estudio. Microsoft Excel es una herramienta de hoja de cálculo que resulta ideal para la aplicación de cálculos estadísticos, surgiendo este libro como una combinación de ambos aspectos: la teoría estadística y la puesta en práctica sobre Excel.

Con este libro aprenderá a tratar con Excel los datos regidos de muestras estadísticas, incluyendo la clasificación en tablas de distribución de frecuencias, cálculo de estadísticos de posición, dispersión y forma. También se trata la representación gráfica, el análisis de la relación existente entre variables estadísticas mediante regresión y la predicción de datos. En cada capítulo encontrará los conceptos básicos de teoría y una puesta en práctica descrita paso a paso.


Publicado el 25/2/2008

Herramientas de diseño y desarrollo gratuitas

Logo DreamSparkMicrosoft ha puesto en marcha una iniciativa denominada DreamSpark gracias a la cual estudiantes de secundaria y ciclos superiores, especialmente los universitarios, podrán acceder gratuitamente a un extenso catálogo de software que le permita consolidar su formación empleando las herramientas que, en muchos casos, se encontrará más adelante en la empresa. El programa en principio estará presente en once países, entre ellos España. De esta forma se complementan los acuerdos que ya existen entre muchas universidades y Microsoft y que permite a los estudiantes usar software de esta empresa de forma legal y gratuita.

Entre los productos que habrá disponibles bajo este programa destacan Windows Server 2003, SQL Server Developer Edition, Visual Studio 2005/2008 Profesional Edition y todo el paquete Expression Studio, de forma que los estudiantes podrán disponer de un sistema operativo de servidor, un RDBMS completo, el más sofisticado entorno de desarrollo que existe en la actualidad y varias herramientas de diseño gráfico y web. La oferta se complementa, por el momento, con XNA Game Studio 2.0, para aquellos interesados en el desarrollo de juegos.

Para acceder a este programa no hay más que seleccionar el producto que interesa, iniciar sesión con una cuenta de Windows Live ID (puede obterse gratuitamente en el mismo momento) e identificarse como estudiante. En el caso de España esa identificación puede llevarse a cabo mediante los carnets ISIC (International Student Identity Card), si la universidad donde estudiamos nos ha facilitado este tipo de identificación, o bien a través de los proveedores de identifidad de RedIRIS, actualmente en funcionamiento para la UNED y las universidades de Córdoba, Málaga y Sevilla. Completada la identificación no resta más que descargar la imagen del producto, instalarlo y trabajar con él.

Actualmente son muchas las universidades que en sus planes de estudio, especialmente en el desarrollo de prácticas, utilizan casi de manera exclusiva GNU/Linux y herramientas de desarrollo Open Source como puede ser Eclipse. El resultado es que al terminar sus estudios una gran parte de los nuevos técnicos e ingenieros tienen una visión bastante parcial del sector, encontrándose con dificultades cuando acceden a puestos de trabajo en empresas que utilizan productos de Microsoft. Con este programa la empresa de Redmond pretende cambiar ese escenario en la medida de sus posibilidades, que no son otras que poner a disposición de profesores y estudiantes los mismos productos que ofrece a las empresas pero sin ningúnn coste. Lo ideal sería que en los programas de estudio se utilizasen a partes iguales GNU/Linux y Windows Server, Eclipse y Visual Studio, Oracle y SQL Server, Java y C# y así un sinfín de alternativas a fin de conseguir que los nuevos profesionales adquiriesen una visión más global, menos limitada, lo cual les permitiría también a acceder a puestos de trabajo con menos obstáculos. Dicen que la virtud está en el término medio, a medio camino entre el maligno y el lado del bien 8-).


Publicado el 21/2/2008

¿Flash o Silverlight?

La respuesta, obviamente, es que dependerá de las necesidades que tengamos en cada caso, ya que a pesar de sus muchas similitudes estas dos herramientas tienen orígenes muy dispares y van dirigidas a dos segmentos también distintos. En el artículo Programación desde el navegador, que publiqué hace unas semanas en PC Actual y ahora está disponible (en versión reducida) en la web de esta revista, se comparan estos dos productos poniendo especial énfasis en su historia, las herramientas disponibles y el uso de estándares.


Publicado el 18/2/2008

Microsoft TechDays {The Evolution Show}

Caja Windows Server 2008Los próximos días 26 y 27 de febrero tendrá lugar en Madrid, concretamente en el Palacio Municipal de Congresos de esta ciudad, el evento Microsoft TechDays {The Evolution Show}, dirigido a administradores sistemas, bases de datos y desarrolladores y durante el cual tendrá lugar la presentación oficial de Windows Server 2008, Visual Studio 2008 y SQL Server 2008. Se trata, por tanto, del evento más importante que organiza Microsoft en los últimos años y en el que se renuevan tres importantes líneas de producto: el sistema operativo para servidores, el servidor de bases de datos y las herramientas de desarrollo.

Caja Windows Server 2008Visual Studio 2008 está disponible desde hace ya algunas semanas y será el primero de los productos en llegar a los usuarios, seguido de Windows Server 2008 cuyo desarrollo también ha concluido y se encuentra a disposición de los suscriptores a MSDN. El último en llegar será SQL Server 2008, cuya finalización está planificada para finales del verano.

A lo largo de los dos días tendrán lugar una serie de sesiones técnicas dirigidas específicamente a los profesionales interesados en cada uno de los productos. El registro para asistir es gratuito pero el aforo es limitado, por lo que si quieres asistir no te demores.

Por cierto que en el área de expositores se presentará el primer libro en nuestro idioma sobre Windows Server 2008, el título Manual Avanzado Windows Server 2008 de Anaya Multimedia. Tanto el autor como la editorial han trabajado duro para preparar este libro en el menor tiempo posible y conseguir que esté preparado para este evento. De hecho el libro aún está en imprenta, pero si estás interesado en Windows Server 2008 podrás encontrarlo en este evento y echarle un vistazo posiblemente antes que el propio autor, que desafortunadamente no podrá asistir al mismo.


Publicado el 15/2/2008

Los mejores trucos para Internet. Edición 2008

PortadaEs el último libro que he publicado, se encuentra en las librerías desde hace ya unas semanas. Se trata del primer libro que escribo de este tipo, estructurado como una recopilación de trucos o técnicas que, aunque se relacionan en grupos según su finalidad, son totalmente independientes unos de otros. El objetivo es aprovechar al máximo las actuales herramientas con que accedemos a Internet y los contenidos de dicha red.

Los primeros capítulos del libro se centran, como no podía ser de otra manera, en el servicio de Internet más empleado: la Web. Aquí se recogen trucos sobre el uso de los navegadores (principalmente Firefox e Internet Explorer) y la búsqueda de información en la Web, con un apartado dedicado específicamente a Google. El correo electrónico, las herramientas de mensajería, intercambio de archivos, creación de mashups o el entretenimiento son algunos otros de los temas que se abordan.

Como es habitual, en la sección Libros encontrará todos los detalles sobre este título, incluyendo el índice de contenidos completo.


Publicado el 11/2/2008

Parece que fue ayer

ZX-81Ciertamente me parece que fue ayer, pero según el calendario han transcurrido dos décadas y media. Hace ahora veinticinco años, más o menos por estas fechas, entré en contacto por primera vez con la informática. Por entonces trabajaba como administrativo en unos almacenes (albaranes, facturas, pedidos, etc.) y una persona, a la cual debo mucho, puso en mis manos lo que en principio me pareció una sofisticada calculadora. Se trataba de un Sinclair ZX-81, con su correspondiente impresora térmica y una ampliación de memoria de 16 Kbytes (este ordenador traía de serie la friolera de 1 Kbyte, sí, solamente 1024 bytes de RAM). Es el cacharrito que puedes ver junto a estas líneas.

Tras aprender a programarlo en BASIC comencé a usar lo que, por entonces, se denominaba código máquina, introduciendo en la memoria largas secuencias de números mediante la sentencia POKE, lo cual me llevó a utilizar PEEK para recuperar bytes de la ROM y desensamblarla. Me picó la curiosidad y quería saber cómo hacía lo que hacía aquél ordenador y con el tiempo aprendí el lenguaje ensamblador del Z80, el microprocesador de la mayoría de los microordenadores de principios de los ochenta.

Más o menos por entonces apareció uno de los primeros estándares de la informática (en cuanto a diseño de hardware y software se refiere): el MSX. Vendí el ZX-81 y me hice con un Sony HB-55P, uno de los conocidos hit-bit que abundaron en multitud de países de Europa. Mejor teclado, audio y gráficos muy mejorados, el mismo microprocesador y un intérprete de BASIC de una empresa llamada Microsoft. Con este ordenador, que tuve durante bastantes años, aprendí a usar un BASIC bastante avanzado, a desarrollar programas bastante completos totalmente en ensamblador, a manejarme por primera vez con un sistema operativo (el MSX-DOS era básicamente un MS-DOS simplificado) y publiqué mis primeros artículos en revistas (hallá por el año 84-85), en las ya desaparecidas (hace bastantes años) MSX Extra y MSX Club.

Poco tiempo después cambié de trabajo, dejé mi puesto de administrativo y comencé a dar clases en una de las academias de informática más conocidas de mi ciudad (ya se sabe, en el país de los ciegos el tuerto es el rey). Impartir cursos sobre un tema es, sin duda alguna, la mejor forma de aprender sobre dicho tema, al menos en mi caso. En poco tiempo comencé a programar en COBOL, Pascal, C, BAL, ensamblador 8086 y utilizar multitud de aplicaciones de todo tipo. Además de dar clases también me inicié en el desarrollo de aplicaciones para empresas (los típicos programas de contabilidad, gestión comercial y similares), otra manera importante de adquirir conocimientos y experiencia.

En 1987 aproveché el mes de vacaciones veraniegas para escribir mi primer libro (puedes verlo en la sección de libros, es el último de la lista), que fue editado por la academia donde trabajaba, al igual que los tres siguientes. Parte de ese libro está escrito con mi MSX, el ordenador que seguía teniendo en casa. De hecho no tuve mi primer PC hasta 1990, por entonces el precio de los PC era totalmente prohibitivo, lo cual no era ningún problema ya que prácticamente pasaba todo el día en la academia y allí disponía de varios PC.

Tras obtener el título de FP (Formación Profesional) en informática pasé de la academia al departamento de desarrollo de una importante eléctrica, a principios de 1990, ocupación que me permitió seguir adquiriendo experiencia y, sobre todo, tener más tiempo libre para aprender, investigar y escribir. En 1992-1993 me uní a la red Fidonet, como punto de una BBS de mi ciudad, y en 1994 contraté mi primera conexión a Internet con IBM, usando OS/2 Warp y uno de los primeros navegadores web: Web Explorer, todo ello con un módem de 14400 baudios. En 1997 diseñé y puse en Internet mi primer sitio web, llamado Rincón del Programador, que poco después dejó paso a Torre de Babel.

En todo ese tiempo seguí publicando algunas cosas en MSX-Club, pero mis primeros artículos que pueden calificarse como tales aparecieron en UNIX Magazine, una revista con la que mantuve una relación de varios años. Desde entonces he escrito para RMP (Revista Microsoft para Programadores), RPP (Revista Profesional para Programadores), El usuario de multimedia e Internet, PC Magazine, PC World, Windows TI, Sólo Programadores, Programación Actual, Linux Actual, Byte, Dr. Dobbs, PC Actual y Personal Computer&Internet, así como en algunas publicaciones de carácter electrónico, como Mundo Delphi o MSDN. En total unos 400 artículos (artículo arriba, artículo abajo), a los que suman 85 libros sobre programación, sistemas operativos y ofimática, publicados en las editoriales RA-MA, McGraw-Hill y Anaya.

En estos 25 años han cambiado muchas cosas, tanto en el campo de la informática como fuera de ella, pero personalmente hay algo que no ha cambiado en absoluto: mi interés y curiosidad por todo lo relacionado con los ordenadores y las ganas de escribir sobre ello. Espero que duren al menos otros 25 años.


Publicado el 7/2/2008

Curso de shaders

Torre de Babel - Francisco Charte Ojeda - Desde 1997 en la Web