<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>JavaScript on Antonio Cortés (DrZippie)</title><link>https://antoniocortes.com/tags/javascript/</link><description>Recent content in JavaScript on Antonio Cortés (DrZippie)</description><generator>Hugo</generator><language>es-es</language><lastBuildDate>Sun, 01 Feb 2026 21:46:02 +0100</lastBuildDate><atom:link href="https://antoniocortes.com/tags/javascript/index.xml" rel="self" type="application/rss+xml"/><item><title>NGINX njs ahora soporta QuickJS: Adiós LUA, hola JavaScript moderno</title><link>https://antoniocortes.com/2025/07/11/nginx-njs-ahora-soporta-quickjs-adi%C3%B3s-lua-hola-javascript-moderno/</link><pubDate>Fri, 11 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/11/nginx-njs-ahora-soporta-quickjs-adi%C3%B3s-lua-hola-javascript-moderno/</guid><description>&lt;h2 id="por-fin-javascript-moderno-en-nginx-y-podemos-olvidarnos-de-lua"&gt;Por fin: JavaScript moderno en NGINX (y podemos olvidarnos de LUA)&lt;/h2&gt;
&lt;p&gt;Cuando leí el &lt;a href="https://blog.nginx.org/blog/quickjs-engine-support-for-njs"&gt;anuncio de NGINX sobre el soporte QuickJS en njs&lt;/a&gt;, no pude evitar sonreír. &lt;strong&gt;Por fin puedo dejar de luchar con LUA&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Como alguien que ha configurado más servidores NGINX de los que puedo recordar (desde mi época en Arrakis hasta ahora en Carto), siempre me ha molestado la limitación de tener que usar LUA para lógica compleja en NGINX. No es que LUA sea malo, pero&amp;hellip; &lt;strong&gt;¿por qué aprender otro lenguaje cuando ya domino JavaScript?&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>NGINX njs now supports QuickJS: Goodbye LUA, hello modern JavaScript</title><link>https://antoniocortes.com/en/post/2025/07/nginx-quickjs-javascript-moderno-11-julio_2025/</link><pubDate>Fri, 11 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/07/nginx-quickjs-javascript-moderno-11-julio_2025/</guid><description>&lt;h2 id="finally-modern-javascript-in-nginx-and-we-can-forget-about-lua"&gt;Finally: Modern JavaScript in NGINX (and we can forget about LUA)&lt;/h2&gt;
&lt;p&gt;When I read the &lt;a href="https://blog.nginx.org/blog/quickjs-engine-support-for-njs"&gt;NGINX announcement about QuickJS support in njs&lt;/a&gt;, I couldn&amp;rsquo;t help but smile. &lt;strong&gt;Finally I can stop struggling with LUA&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;As someone who has configured more NGINX servers than I can remember (from my time at Arrakis to now at Carto), I&amp;rsquo;ve always been annoyed by the limitation of having to use LUA for complex logic in NGINX. It&amp;rsquo;s not that LUA is bad, but&amp;hellip; &lt;strong&gt;why learn another language when I already master JavaScript?&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Jest: Cuando fallar rápido es la estrategia inteligente</title><link>https://antoniocortes.com/2025/07/09/jest-cuando-fallar-r%C3%A1pido-es-la-estrategia-inteligente/</link><pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/09/jest-cuando-fallar-r%C3%A1pido-es-la-estrategia-inteligente/</guid><description>&lt;p&gt;Trabajando en proyectos grandes, es habitual tener suites de tests que pueden tardar varios minutos en ejecutarse. Y cuando uno de esos tests falla al principio de la ejecución, es frustrante esperar a que todos los demás se ejecuten para ver el resultado completo.&lt;/p&gt;
&lt;p&gt;Jest incluye una funcionalidad que he encontrado muy útil en desarrollo: la opción &lt;code&gt;bail&lt;/code&gt;, que permite parar la ejecución de tests después de un número determinado de fallos. Es una de esas características que una vez la conoces y empiezas a usar, no entiendes cómo has vivido sin ella.&lt;/p&gt;</description></item><item><title>Jest: When Failing Fast is the Smart Strategy</title><link>https://antoniocortes.com/en/post/2025/07/jest-bail-09_julio_2025/</link><pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/07/jest-bail-09_julio_2025/</guid><description>&lt;p&gt;When working on large projects, it&amp;rsquo;s common to have test suites that can take several minutes to run. And when one of those tests fails early in the execution, it&amp;rsquo;s frustrating to wait for all the others to complete just to see the full results.&lt;/p&gt;
&lt;p&gt;Jest includes a feature I&amp;rsquo;ve found very useful in development: the &lt;code&gt;bail&lt;/code&gt; option, which allows stopping test execution after a certain number of failures. It&amp;rsquo;s one of those features that once you know and start using, you don&amp;rsquo;t understand how you lived without it.&lt;/p&gt;</description></item><item><title>Deno 2.4: El bundle ha vuelto</title><link>https://antoniocortes.com/2025/07/05/deno-2.4-el-bundle-ha-vuelto/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/07/05/deno-2.4-el-bundle-ha-vuelto/</guid><description>&lt;p&gt;Deno 2.4 acaba de ser liberado, y debo admitir que me ha sorprendido gratamente. No solo por la cantidad de características nuevas, sino por una en particular que muchos creíamos que no volvería: &lt;strong&gt;&lt;code&gt;deno bundle&lt;/code&gt; ha regresado&lt;/strong&gt;. Y esta vez, para quedarse.&lt;/p&gt;
&lt;p&gt;Esta versión viene cargada de mejoras que van desde importar archivos de texto directamente hasta observabilidad estable con OpenTelemetry. Vamos a ver qué nos trae esta release.&lt;/p&gt;
&lt;h2 id="el-regreso-triunfal-de-deno-bundle"&gt;El regreso triunfal de &lt;code&gt;deno bundle&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;Para los que llevamos tiempo con Deno, &lt;code&gt;deno bundle&lt;/code&gt; fue una de esas características que usábamos constantemente hasta que &lt;a href="https://github.com/denoland/deno/issues/11073"&gt;fue deprecada en 2021&lt;/a&gt;. El equipo de Deno admitió que el bundling es un problema complejo y que no podían hacerlo bien.&lt;/p&gt;</description></item><item><title>Deno 2.4: The Bundle is Back</title><link>https://antoniocortes.com/en/post/2025/deno-24-el-bundle-ha-vuelto/</link><pubDate>Sat, 05 Jul 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/deno-24-el-bundle-ha-vuelto/</guid><description>&lt;p&gt;Deno 2.4 has just been released, and I must admit it has pleasantly surprised me. Not only because of the number of new features, but because of one in particular that many of us thought would never return: &lt;strong&gt;&lt;code&gt;deno bundle&lt;/code&gt; is back&lt;/strong&gt;. And this time, it&amp;rsquo;s here to stay.&lt;/p&gt;
&lt;p&gt;This release comes packed with improvements ranging from importing text files directly to stable observability with OpenTelemetry. Let&amp;rsquo;s explore what this release brings us.&lt;/p&gt;</description></item><item><title>Complete Guide to Configuring Path Aliases in Node.js with TypeScript: Goodbye to Infinite '../../../'</title><link>https://antoniocortes.com/en/post/2025/path_aliases_nodejs_typescript_8_junio_2025/</link><pubDate>Sun, 08 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/path_aliases_nodejs_typescript_8_junio_2025/</guid><description>&lt;p&gt;Are you tired of seeing imports like &lt;code&gt;import Logger from &amp;quot;../../../utils/logger&amp;quot;&lt;/code&gt; in your Node.js projects? If you develop applications with complex folder structures, you&amp;rsquo;ve surely encountered the &lt;strong&gt;labyrinth of dots and slashes&lt;/strong&gt; that relative imports can become. Fortunately, TypeScript offers an elegant solution: &lt;strong&gt;Path Aliases&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In this complete guide, you&amp;rsquo;ll learn to configure path aliases in Node.js projects with TypeScript, forever eliminating those confusing imports and significantly improving the readability and maintainability of your code.&lt;/p&gt;</description></item><item><title>Guía completa para configurar Path Aliases en Node.js con TypeScript: Adiós a los '../../../' infinitos</title><link>https://antoniocortes.com/2025/06/-infinitos/</link><pubDate>Sun, 08 Jun 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/06/-infinitos/</guid><description>&lt;p&gt;¿Estás cansado de ver imports como &lt;code&gt;import Logger from &amp;quot;../../../utils/logger&amp;quot;&lt;/code&gt; en tus proyectos de Node.js? Si desarrollas aplicaciones con estructuras de carpetas complejas, seguramente te has encontrado con el &lt;strong&gt;laberinto de puntos y barras&lt;/strong&gt; que pueden llegar a ser los imports relativos. Afortunadamente, TypeScript ofrece una solución elegante: los &lt;strong&gt;Path Aliases&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;En esta guía completa aprenderás a configurar path aliases en proyectos Node.js con TypeScript, eliminando para siempre esos imports confusos y mejorando significativamente la legibilidad y mantenibilidad de tu código.&lt;/p&gt;</description></item><item><title>CookieStore API: El Futuro Asíncrono de la Gestión de Cookies en JavaScript</title><link>https://antoniocortes.com/2025/05/15/cookiestore-api-el-futuro-as%C3%ADncrono-de-la-gesti%C3%B3n-de-cookies-en-javascript/</link><pubDate>Thu, 15 May 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2025/05/15/cookiestore-api-el-futuro-as%C3%ADncrono-de-la-gesti%C3%B3n-de-cookies-en-javascript/</guid><description>&lt;h1 id="cookiestore-api-el-futuro-asíncrono-de-la-gestión-de-cookies-en-javascript"&gt;CookieStore API: El Futuro Asíncrono de la Gestión de Cookies en JavaScript&lt;/h1&gt;
&lt;p&gt;Durante décadas, los desarrolladores web hemos dependido de la antigua y limitada interfaz &lt;code&gt;document.cookie&lt;/code&gt; para manejar cookies en el navegador. Esta API síncrona, con su sintaxis peculiar de cadenas de texto, ha sido fuente de frustración y errores. Pero eso está cambiando con la llegada de &lt;strong&gt;CookieStore API&lt;/strong&gt;, una interfaz moderna y asíncrona que promete revolucionar cómo interactuamos with cookies.&lt;/p&gt;</description></item><item><title>CookieStore API: The Async Future of Cookie Management in JavaScript</title><link>https://antoniocortes.com/en/post/2025/cookiestore_api_gestion_cookies_15_mayo_2025/</link><pubDate>Thu, 15 May 2025 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2025/cookiestore_api_gestion_cookies_15_mayo_2025/</guid><description>&lt;h1 id="cookiestore-api-the-async-future-of-cookie-management-in-javascript"&gt;CookieStore API: The Async Future of Cookie Management in JavaScript&lt;/h1&gt;
&lt;p&gt;For decades, web developers have depended on the old and limited &lt;code&gt;document.cookie&lt;/code&gt; interface to handle cookies in the browser. This synchronous API, with its peculiar string syntax, has been a source of frustration and errors. But that&amp;rsquo;s changing with the arrival of &lt;strong&gt;CookieStore API&lt;/strong&gt;, a modern and asynchronous interface that promises to revolutionize how we interact with cookies.&lt;/p&gt;
&lt;h2 id="the-problem-with-documentcookie"&gt;The Problem with document.cookie&lt;/h2&gt;
&lt;p&gt;Before diving into CookieStore, let&amp;rsquo;s recall the headaches &lt;code&gt;document.cookie&lt;/code&gt; has caused us:&lt;/p&gt;</description></item><item><title>Compartir código entre aplicaciones usando Yarn Symlinks: Una alternativa simple a los monorepos complejos</title><link>https://antoniocortes.com/2024/07/15/compartir-c%C3%B3digo-entre-aplicaciones-usando-yarn-symlinks-una-alternativa-simple-a-los-monorepos-complejos/</link><pubDate>Mon, 15 Jul 2024 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/2024/07/15/compartir-c%C3%B3digo-entre-aplicaciones-usando-yarn-symlinks-una-alternativa-simple-a-los-monorepos-complejos/</guid><description>&lt;p&gt;¿Te has encontrado alguna vez duplicando utilidades, tipos de datos o componentes entre diferentes aplicaciones? Si trabajas en múltiples proyectos que necesitan compartir código común, seguramente has enfrentado el dilema de cómo gestionar este código compartido de manera eficiente.&lt;/p&gt;
&lt;p&gt;Recientemente, mientras exploraba diferentes enfoques para compartir código entre aplicaciones, me topé con una solución elegante y simple que muchos desarrolladores pasan por alto: &lt;strong&gt;los symlinks de Yarn&lt;/strong&gt;. Esta técnica puede ser la respuesta perfecta si buscas una alternativa liviana a las configuraciones complejas de monorepos.&lt;/p&gt;</description></item><item><title>Sharing Code Between Applications Using Yarn Symlinks: A Simple Alternative to Complex Monorepos</title><link>https://antoniocortes.com/en/post/2024/yarn_symlinks_compartir_codigo_15_julio_2024/</link><pubDate>Mon, 15 Jul 2024 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/post/2024/yarn_symlinks_compartir_codigo_15_julio_2024/</guid><description>&lt;p&gt;Have you ever found yourself duplicating utilities, data types, or components across different applications? If you work on multiple projects that need to share common code, you&amp;rsquo;ve likely faced the dilemma of how to manage this shared code efficiently.&lt;/p&gt;
&lt;p&gt;Recently, while exploring different approaches to share code between applications, I stumbled upon an elegant and simple solution that many developers overlook: &lt;strong&gt;Yarn symlinks&lt;/strong&gt;. This technique might be the perfect answer if you&amp;rsquo;re looking for a lightweight alternative to complex monorepo setups.&lt;/p&gt;</description></item><item><title>echarts 3</title><link>https://antoniocortes.com/en/post/2017/11/20171125-echarts/</link><pubDate>Sun, 26 Nov 2017 21:38:52 +0100</pubDate><guid>https://antoniocortes.com/en/post/2017/11/20171125-echarts/</guid><description>&lt;p&gt;Thanks to a tweet from &lt;a href="https://twitter.com/juantomas"&gt;@juantomas&lt;/a&gt;, I came across a list of 9 JavaScript libraries for &amp;ldquo;Charts&amp;rdquo;: &lt;a href="https://hackernoon.com/9-best-javascript-charting-libraries-46e7f4dc34e6"&gt;9 Best JavaScript Charting Libraries&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>echarts 3</title><link>https://antoniocortes.com/2017/11/26/echarts-3/</link><pubDate>Sun, 26 Nov 2017 21:38:52 +0100</pubDate><guid>https://antoniocortes.com/2017/11/26/echarts-3/</guid><description>&lt;p&gt;Gracias al tweet de &lt;a href="https://twitter.com/juantomas"&gt;@juantomas&lt;/a&gt; me he encontrado con una lista de 9 librerías para &amp;ldquo;Charts&amp;rdquo; en JavaScript: &lt;a href="https://hackernoon.com/9-best-javascript-charting-libraries-46e7f4dc34e6"&gt;9 Best JavaScript Charting Libraries&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>One day I'll discover what the comfort zone is, or not</title><link>https://antoniocortes.com/en/one-day-ill-discover-what-the-comfort-zone-is-or-not/</link><pubDate>Sat, 06 Aug 2016 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/one-day-ill-discover-what-the-comfort-zone-is-or-not/</guid><description>&lt;p&gt;Moments of change, moments of evolution, a constant in my life, with the 25th anniversary of the creation of the web I&amp;rsquo;ve entered &amp;ldquo;review&amp;rdquo; mode and I&amp;rsquo;m highly perplexed.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been doing things for the same time (25 years), enjoying, always with the same concept and particularity: Enjoyment and result, but it hasn&amp;rsquo;t been relevant for a long time (which is also not very relevant).&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve realized that the usual thing is to do things within your comfort zone, and I&amp;rsquo;ve never had one or knew one could exist, hence I&amp;rsquo;ve touched and done unusual things or perhaps &amp;ldquo;untimely&amp;rdquo;, when a certain technology could be in fashion &amp;ldquo;Buzz&amp;rdquo; I hadn&amp;rsquo;t been using it for a long time because it didn&amp;rsquo;t give me what something else gave me,&amp;hellip;&lt;/p&gt;</description></item><item><title>Un día descubriré lo que es la zona de confort, o no</title><link>https://antoniocortes.com/zona-de-confort/</link><pubDate>Sat, 06 Aug 2016 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/zona-de-confort/</guid><description>&lt;p&gt;Momentos de cambios, momentos de evolución, una constante en mi vida, con el 25 aniversario de la creación de la web he entrado en modo &amp;ldquo;revisión&amp;rdquo; y estoy altamente desconcertado.&lt;/p&gt;
&lt;p&gt;Llevo el mismo tiempo (25 años) haciendo cosas, disfrutando, siempre con el mismo concepto y particularidad: Disfrute y resultado, pero ya hace mucho que no es relevante (cosa que tambien es poco relevante).&lt;/p&gt;
&lt;p&gt;Me he dado cuenta que lo habitual es hacer cosas dentro de tu zona de confort, y yo nunca he tenido una ni he sabido que podía existir, de ahí que haya tocado y hecho cosas poco usuales o quizás a &amp;ldquo;destiempo&amp;rdquo;, cuando cierta tecnología se podía de moda &amp;ldquo;Buzz&amp;rdquo; hacía tiempo que no lo utilizaba porque no me aportaba lo que me aportaba otra cosa, &amp;hellip;&lt;/p&gt;</description></item><item><title>Comparación React vs Angular</title><link>https://antoniocortes.com/comparacion-react-vs-angular/</link><pubDate>Tue, 17 Mar 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/comparacion-react-vs-angular/</guid><description>&lt;p&gt;&lt;a href="https://www.airpair.com/angularjs/posts/angular-vs-react-the-tie-breaker"&gt;https://www.airpair.com/angularjs/posts/angular-vs-react-the-tie-breaker&lt;/a&gt;&lt;/p&gt;</description></item><item><title>React vs Angular comparison</title><link>https://antoniocortes.com/en/react-vs-angular-comparison/</link><pubDate>Tue, 17 Mar 2015 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/react-vs-angular-comparison/</guid><description>&lt;p&gt;&lt;a href="https://www.airpair.com/angularjs/posts/angular-vs-react-the-tie-breaker"&gt;https://www.airpair.com/angularjs/posts/angular-vs-react-the-tie-breaker&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Digital signatures in JavaScript</title><link>https://antoniocortes.com/en/digital-signatures-in-javascript/</link><pubDate>Mon, 20 Jan 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/digital-signatures-in-javascript/</guid><description>&lt;p&gt;If we need to create a signature capture and processing system in HTML, we can use the library: &lt;a href="http://thomasjbradley.ca/lab/signature-pad/"&gt;signature-pad&lt;/a&gt;, a good alternative for creating web apps that require signature digitization, using canvas.&lt;/p&gt;</description></item><item><title>Firmas en Javascript</title><link>https://antoniocortes.com/firmas-en-javascript/</link><pubDate>Mon, 20 Jan 2014 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/firmas-en-javascript/</guid><description>&lt;p&gt;Si necesitamos crear firmas un sistema de captura de firmas y procesado en HTML, podemos utilizar la librería: &lt;a href="http://thomasjbradley.ca/lab/signature-pad/"&gt;signature-pad&lt;/a&gt;, una buena alternativa para crear webapps que requieran la digitalización de firmas, mediante el uso de canvas.&lt;/p&gt;</description></item><item><title>Cocos2d x</title><link>https://antoniocortes.com/en/cocos2d-x/</link><pubDate>Sat, 15 Dec 2012 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/cocos2d-x/</guid><description>&lt;p&gt;When developing games for mobile devices, we have multiple cross-platform alternatives:&lt;/p&gt;</description></item><item><title>Cocos2d x</title><link>https://antoniocortes.com/cocos2d-x/</link><pubDate>Sat, 15 Dec 2012 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/cocos2d-x/</guid><description>&lt;p&gt;A la hora de desarrollar juegos para dispositivos móviles disponemos de múltiples alternativas multiplataforma:&lt;/p&gt;</description></item><item><title>Entre manos</title><link>https://antoniocortes.com/entre-mano/</link><pubDate>Mon, 22 Sep 2008 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/entre-mano/</guid><description>&lt;p&gt;Últimamente estoy liado estudiando y probando diferentes librerías y recursos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://extjs.com/"&gt;ExtJS&lt;/a&gt;:  Javascript.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cakephp.org"&gt;CakePHP&lt;/a&gt;:  PHP.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/joose-js/"&gt;Joose&lt;/a&gt;:  Javascript.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.imatia.com/ontimize"&gt;Ontimize&lt;/a&gt;: Java.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://developer.yahoo.com/yui/"&gt;Yahoo UI Library&lt;/a&gt;: Javascript.&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Son muchos los ejemplos, trucos y “recetas” que tengo para cada uno de estos y los iré publicando para tenerlas ordenadas y localizadas y también por que seguramente serán de utilidad a otros.&lt;/p&gt;</description></item><item><title>In the Works</title><link>https://antoniocortes.com/en/in-the-works/</link><pubDate>Mon, 22 Sep 2008 00:00:00 +0000</pubDate><guid>https://antoniocortes.com/en/in-the-works/</guid><description>&lt;p&gt;Lately I&amp;rsquo;ve been busy studying and testing different libraries and resources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://extjs.com/"&gt;ExtJS&lt;/a&gt;: Javascript.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cakephp.org"&gt;CakePHP&lt;/a&gt;: PHP.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/joose-js/"&gt;Joose&lt;/a&gt;: Javascript.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.imatia.com/ontimize"&gt;Ontimize&lt;/a&gt;: Java.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://developer.yahoo.com/yui/"&gt;Yahoo UI Library&lt;/a&gt;: Javascript.&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I have many examples, tricks, and &amp;ldquo;recipes&amp;rdquo; for each of these that I&amp;rsquo;ll be publishing to keep them organized and easily accessible, and also because they&amp;rsquo;ll surely be useful to others.&lt;/p&gt;</description></item></channel></rss>