Archives
All the articles I've archived.
Builders vs Keepers,la guerra civil de la ingeniería de software
En los últimos años ha surgido una división cada vez más profunda dentro de los equipos de ingeniería. No hablo de lenguajes, frameworks o religión de tabs vs espacios. Hablo de algo más fundamental, la guerra entre builders y keepers. Dos formas de ver el software que chocan constantemente y que, si no se gestionan bien, pueden dinamitar un equipo.
¿De verdad la IA nos va a matar?
Recientemente las declaraciones de un ahora ya ex-ingeniero de Anthropic se han hecho virales a nivel internacional alimentando, una vez más, la idea de que la IA va a sustituir ya no solo a los programadores si no a la humanidad entera y que de paso nos va a aniquilar a todos. En este artículo voy ha realizar un breve análisis de lo sucedido y dar mi humilde opinión al respecto y, que por una vez, tal vez te asombre.
La falacia de la IA burbuja y realidad
¿Te suena alguna de las siguientes frases? En seis meses los programadores no serán necesarios. El codigo ha muerto. Programar ya no es lo importante. El codigo ya no aporta valor. Son el mantra repetido una y mil veces en los ultimos dos años y ya sabemos que **una mentira repetida mil veces se convierte en verdad**.
De quien es el código que escribe la IA? Y por qué debería importarte
Si eres como el 99% de los programadores de hoy en día, probablemente uses una IA, ya sea Claude, Cursor, GitHub Copilot, o cualquier otro que existe ahora mismo. Es genial, le pides un componente en React, una función compleja en Python o un script de base de datos, y en segundos tienes código listo para producción. Pero, si estás construyendo un proyecto personal, una startup o trabajando para clientes, hay una pregunta incómoda que la mayoría de los devs ignoramos ¿De quién es realmente ese código?
Oracle, despidos masivos y su apuesta por la IA
En Febrero salto la noticia de que Block (empresa matriz de Square y Cash App) despedía al 40% de su plantilla, alrededor de 6000 personas, con la justificación de que con la IA los equipos podían ser mucho más productivos. A su CEO parece que se le olvidó comentar que en tres años habían pasado de ser una empresa de menos de 4000 empleados a una con mas de 12000. Uno locura de sobre-contratación. La semana pasada la noticia fue que Oracle despedía al 18% de su plantilla...
Salarios IT ¿Es el cambio de empresa la única forma de escalar salarialmente?
¿Cuánto gana un desarrollador en España? ¿Es el cambio de empresa la única forma de escalar salarialmente? Hoy os presentamos algunas conclusiones que hemos extraído a partir de diversos hilos que hemos encontrado en Reddit donde los usuarios hablaban de forma transparente de su evolución salarial en el sector tecnológico, permitiéndonos tener una visión "realista" de lo que realmente se está pagando en el mercado actual.
¿El fin de la era "Junior"?
Durante la última década, el modelo se resumía en "Aprende React/NodeJS en 12 semanas, consigue un puesto de Junior y termina de aprender trabajando". Pues bien, ese puente se está rompiendo, la irrupción de la IA ha puesto una carga de dinamita en sus pilares y pocos quieren atravesarlo.
El drama de StackOverflow y la IA
A estas alturas nadie duda que la irrupción de la IA es toda una revolución y, como toda revolución, tiene sus cosas buenas y sus cosas malas. En su momento StackOverflow fue una revolución. Lo que comenzó como un foro de preguntas y respuestas ha llegado a convertire en una fuenta de valor enorme.
¿Qué te hace ser un buen Ingeniero de Software?
Es un tema recurrente pero es un error que siempre se repite, principalmente entre gente junior y middle, pero también entre "seniors". ¿Qué es lo que te hace ser un buen Ingeniero de Software? y sobretodo ¿qué es lo que te hace ser valorado en una empresa?
El mejor país de EU para trabajar este 2026
Tomar la decision de irse a trabajar a otro país no es una decision sencilla. No todo es cuestion del salario ya que hay otros aspectos importantes a tener en cuenta como los impuestos, el clima o la calidad de vida. En este artículo vamos a valorar algunos países de Europa con sus pros y contras.
Cómo gestionar código obsoleto en Node.js con `deprecated`
Todo evoluciona y tu código tampoco se libra de ello. Si has escrito o mantenido alguna vez una librería o código que usan otras personas ya sabrás que es comun que los nuevos cambios dejen obsoletas otras partes de tu código. En este artículo te explico la mejor forma de marcar como "deprecated" aquellas partes de tu codigo, de forma que tus usuarios sean concientes de ello y se muevan a utilizar las nuevas funcionalidades.
Los 5 errores que detienen tu ascenso de middle a senior
El camino de un desarrollador Mid a Senior no solo se trata de escribir mejor código. A menudo, el verdadero salto está en cambiar nuestra mentalidad y nuestras responsabilidades. El reciente video de Emilio Carrión, titulado "5 errores que impiden que llegues a Senior", es una guía esencial que destila la experiencia para identificar y corregir esos hábitos que nos mantienen estancados.
Cultura DEV... ¿Cuándo se volvió tóxica?
¿Alguna vez has sentido que no sabes lo suficiente en tu campo? ¿Sigues a "influencers" del mundo dev que son capaces desarrollar un SaaS completo en dos horas en su canal de Twitch? ¿Te sientes un "falso" en el mundo del desarrollo de software? Tranquilo, no estás solo.
¿Cual es tu salario esperado?
Estás en una entrevista de trabajo. La conversación fluye y sientes que todo va bien, pero de repente te preguntan ¿Cual es tu salario esperado? Aquí te explico por qué nunca deberías revelarlo y cómo evitarlo.
6 razonas por las cuales no invertiría en una app de nutrición
Con la llegada de la IA se está produciendo un boom en la creación de apps y la nutrición no es una excepción. En concreto parece haber una explosión de apps y webs destinadas a crear planes nutricionales. Pero... ¿realmente es tan buena idea de negocio una app de creación de planes nutricionales?
Gestiona tus dotfiles con Git y un Bare Repo
Los dotfiles son archivos ocultos que comienzan con un punto (como .bashrc, .vimrc, o .gitconfig) y sirven para personalizar herramientas como el terminal, tu shell o tu editor de texto. Vaya, que son los archivos de configuración y son esenciales para que tu entorno de desarrollo se sienta tuyo y funcione como te gusta. Tenerlos organizados no solo mejora tu productividad diaria, sino que también te permite replicar fácilmente esa configuración en otros equipos.
¿Data Engineer, Data Analyst o Data Scientist?
Hace algunos años lo normal en las ofertas de trabajo era encontrar demanda de roles de BigData o Business Intelligence, pero como todo, ha ido evolucionando y especializándose y ahora lo normal es encontrarte demanda de roles como Data Engineer, Data Analyst y Data Scientist pero ¿cual es exactamente la diferencia entre estos tres roles o disciplinas?
¿La primera semana lo dice todo? Claves para saber si un trabajo es tu lugar
Hace poco leí un artículo muy interesante que hablaba de algo que a muchos nos ha pasado, ¿cuánto tiempo necesitas para saber si un nuevo trabajo es el adecuado para ti? La verdad es que la respuesta del autor ha dado vueltas en mi cabeza y, es que a veces, la intuición nos dice más de lo que pensamos.
El arte olvidado del buen liderazgo, el ejemplo
En un mundo empresarial lleno de herramientas digitales, métodos de gestión modernos y frameworks sofisticados, a veces perdemos de vista lo más básico y humano, los equipos aprenden más observando a sus líderes que escuchando sus discursos. El acto de modelar comportamientos positivos no es solo una estrategia útil, es también una responsabilidad moral del liderazgo.
Aspectos no técnicos claves en un proceso de selección tech
Cuando pensamos en un proceso de selección para un puesto tech solemos enfocarnos en las habilidades técnicas, lenguajes de programación, algoritmos, estructuras de datos, etc. Sin embargo, las empresas valoran cada vez más los aspectos no técnicos, ya que pueden ser determinantes para el éxito dentro del equipo y la organización.
La IA no te va a quitar el trabajo. Pero sí te va a poner delante del espejo
Con la llegada de la IA a las masas nos encontramos dos grupos de personas, los sensacionalistas que utilizan el miedo de "la IA nos va a quitar el trabajo" y los pragmáticos, que ven a la IA como otra herramienta más que debemos aprender a usar para mejorar nuestra productividad.
Fork bomb, el script que te volará la cabeza y algo más
Un fork bomb es un pequeño script que se replica a sí mismo infinitamente, generando miles de procesos en muy poco tiempo, lo cual satura la CPU y la memoria de tu sistema haciendo que se vuelva inusable. Es como si un ejército de clones apareciera de golpe y todos quisieran trabajar al mismo tiempo. Suelen tener un aspecto "raro" o "inofensivo" pero si los ejecutas en un terminal te aseguro que lo vas a recordar.
Las 10 cualidades que realmente importan para ser un buen Software Engineer
Ser un buen Software Engineer no es solo cuestión de saber escribir código que funcione. Es mucho más que eso. Implica pensamiento crítico, empatía, comunicación, trabajo en equipo y, claro, una buena base técnica. En este artículo vamos a repasar cuáles son las cualidades que según la comunidad tecnológica debe tener un buen ingeniero de software.
Las cualidades que realmente importan para ser un buen programador
Si estás aprendiendo a programar o ya llevas un tiempo en esto, seguro te has preguntado "¿Qué necesito para ser un buen programador?". Y aunque saber varios lenguajes, frameworks y librerías está genial, lo cierto es que hay habilidades y cualidades más profundas que marcan la diferencia entre alguien que solo escribe código y alguien que realmente sobresale en el mundo del desarrollo. Este artículo no es una lista exhaustiva de requisitos necesarios que cumplir, sino una recopilación de lo que muchos desarrolladores con experiencia coinciden que es esencial para crecer y disfrutar de esta profesión.
El desarrollador T-Shaped, Más allá de la especialización
En el mundo del desarrollo de software hay muchas formas de categorizar a los profesionales según sus habilidades y conocimientos. Uno de los conceptos más interesantes y útiles para entender cómo los desarrolladores pueden crecer en su carrera es el del "T-Shaped Developer", o desarrollador con forma de T.
La IA ha matado las entrevistas técnicas ¿Y ahora qué?
La llegada de la Inteligencia Artificial ha transformado radicalmente las entrevistas de trabajo en el mundo tech y en especial en lo referente a la programación. En su artículo [AI Killed the Tech Interview. Now What?](https://kanenarraway.com/posts/ai-killed-the-tech-interview-now-what/), Kanen Arraway explica cómo la IA ha transformado el proceso de hiring en las empresas, los problemas que ha provocado y qué opciones a futuro tienen las empresas cuando busquen ingenieros.
Prompt Engineering, ¿ciencia, arte o el nuevo buzzword de moda?
Prompt Engineering se ha convertido en uno de los términos más comunes en el mundo de la inteligencia artificial, pero no todos están convencidos de que realmente merezca la etiqueta de "ingeniería". En su artículo [On Prompt Engineering](https://blog.buschnick.net/2025/01/on-prompt-engineering.html), su autor BuschnicK analiza críticamente este concepto y plantea argumentos sólidos sobre por qué no se ajusta a los principios de la ingeniería de software como tal.
Cinco años de react native en Shopify
Shopify ha estado utilizando React Native durante los últimos cinco años y recientemente ha compartido sus experiencias, logros y desafíos del viaje. En este post, resumo los puntos clave del artículo "Five years of React Native at Shopify" (https://shopify.engineering/five-years-of-react-native-at-shopify) y reflexiono sobre lo que podemos aprender de sus aciertos y errores al adoptar dicha tecnología.
El futuro del Server Side Rendering y tendendicas para el 2025
El mundo del desarrollo web no se detiene, y una de las áreas donde más cambios estamos viendo es el Server-Side Rendering (SSR). Si llevas tiempo en esto, recordarás cuando SSR era la única opción, luego vinieron los SPA (Single Page Applications) y ahora estamos en una especie de "todo junto" donde cada proyecto tiene su propio enfoque híbrido. En este post, voy a resumir y reaccionar al artículo "The Future of Server-Side Rendering, Trends for 2025", que analiza hacia dónde va esta tecnología y por qué deberíamos prestarle atención.
Staff Engineer vs Engineer Mananger
En los equipos de técnicos hay dos roles que a menudo se confunden debido a sus diferencias y similitudes, el Staff Engineer y el Engineering Manager. En este post hago un resumen sobre el artículo de Alex Ewerlöf "Staff Engineer vs Engineering Manager" para en qué consisten estos dos roles, cómo se complementan y por qué es clave entender sus diferencias.
Cómo la programación asistida por IA cambiará la ingeniería del software (verdades dificiles)
La inteligencia artificial está revolucionando el desarrollo de software, pero ¿hasta qué punto estamos preparados para integrar estas herramientas en nuestro trabajo diario? En este post analizo el artículo de Addy Osmani "How AI-assisted coding will change software engineering" sobre el impacto de la IA en la industria del software y reflexiona sobre los desafíos y oportunidades que presenta.
Si no te gustan las ventas no crees una empresa
En este artículo, Hunter Walk destaca que como cofundador siempre estás vendiendo a clientes, inversores, prensa, equipo y socios. Aunque no seas un vendedor nato, es esencial comunicar el valor de tu empresa y su dirección. Incluso los introvertidos o ingenieros pueden ser excelentes en ventas. Evitar las ventas perjudica a tu equipo y a ti mismo. Existen recursos para mejorar en este aspecto.
Managing errors when working with Eventemitter in async/await methods
JavaScript is, by it's nature within the browser, an event driven programming language. Everything starts with an event, a page is loaded, a click on a button, etc.
How to slice or get symbols from a unicode string with emojis in JavaScript? Lets learn how JavaScript represent strings
Everybody loves JavaScript (or not)! It's easy, powerful and fun (or not) but then one day you found something weird that makes you learn something new and that's fine (or not). If you don't know why `"😄".charAt(0)` returns `�` or why `"🌍".length` is equal 2 then this article if for you. Do you really know how to handle strings in JavaScript?
How to update a column's type (in PostgreSQL)
So, you have a table and you need to modify a column's type. The problem arise when the column is filled and the type change is incompatible, for example, from string to integer, so **how we can update the type and recompute the filled values to the new type?**
Working with query params in JavaScript with URLSearchParams
No matter if you work with JavaScript at client or server side, at some point you'll need to work with urls and its query params. As example, I'm currently using [react-router](https://reacttraining.com/react-router/web) in my project, which is an great tool. I can define dynamic routes with path params and easily react-router returns me these params within the `match` variable and the rest of url information in the `location` variable, but how can I easily access to query params?
How I migrated my site from Jekyll to Gatsby
I think it was a matter of time to make this change. Jekyll was one of the first static site generates and it's awesome but for me, as a JavaScript developer that know little about ruby language, has…
Express API with autogenerated OpenAPI doc through Swagger
In the past years OpenAPI has arise as the preferred way to document APIs. In this article we will see how easy is document an API created with NodeJS and Express through the Swagger tools. If you are working in an REST API you more probably will desire to have some API doc where your users could find what are the endpoints of your API, what they do, which parameters they accept and which output they generate.
Joppy, the Tinder for tech recruitment
TLTR: This post is about Joppy, a new service I'm working on that tries to eliminate the pain currently exists in the communication among recruiters and tech professionals. Let me describe you the…
Using async/await in ExpressJS middlewares
If you are not living in a cave for the past year you'll probably know the `async/await` keywords are one of the most interesting additions on ES7. It merges the benefits of a sequential syntax with the power of asynchronous programming. In this post we will cover how we must use correctly async functions as express middleware.
Graceful shutdown NodeJS HTTP server when using PM2
So you have created a NodeJS server that receives tons of requests and you are really happy but, as every piece of software, you found a bug or add a new feature to it. It is clear you will need to…
Using PM2 to manage NodeJS cluster
The cluster module allows us to create worker processes to improve our NodeJS applications performance. This is specially important in web applications, where a master process receives all the…
Using cluster module with HTTP servers
The cluster module allow us improve performance of our application in multicore CPU systems. This is specially important no matter if working on an APIs or an, i.e. ExpressJS based, web servers, what…
Understanding the NodeJS cluster module
NodeJS processes runs on a single process, which means it does not take advantage from multi-core systems by default. If you have an 8 core CPU and run a NodeJS program via $ node app.js it will run…
fetch API and Express sessions
TL;DR fetch API is the successor of XHR and although it's really powerful ( see What is the difference between the Fetch API and XMLHttpRequest?) you should take care of some things, like the fact…
Configuring Atom editor with ESLint and the AirBnB style guide rules
TL;DR This article demonstrate how to integrate the ESLint tool with Atom editor so our source code be automatically checked, showing linting messages in editor. In addition, ESLint will be…
Introducing Universal Web Applications
TL;DR: This post is the first in a series of articles to talk about Universal (previously known as Isomorphic) Web Applications. The goal of the series is to describe: What an universal web…
Resilient PHP applications with Phystrix
TL;DR: This post talks about how to make our PHP applications more resilient, that is, they must be able to adapt to third party failures and recover quickly from them. You will see why configuring…
Symfony, images and S3
Paraphrasing the movie title Sex, lies and videotape, this post is related on how I configured my symfony project to work with images (including thumbnail generation) and store all them on Amazon S3…
Closing 2015
2015 is finishing. Its 18:15h while writing these lines. Looking back to this year lot of feelings mixes in my mind, some of them great and some sad. But live continues and we can only go forward.
Reading very big JSON files in stream mode with GSON
JSON is everywhere, it is the new fashion file format (see you XML). JSON format is mainly used on REST APIs because it is easy to read by JavaScript (JSON means JavaScript Object Notation) allowing…
Webpack, not another task runner tool
It seems we are living an gold era about JavaScript and front end world with a myriad of frameworks, language improvements and, what is related to this article, build systems, tasks runner or…
Git, a short introduction with some pictures
This is a short introduction about Git version control system I made some time ago describing the main topics. Currently, Git is probably one of the most powerful and most used version control…
Specification pattern for NodeJS
Although the specification pattern is mainly use in DDD to check business rules, I think the idea of combine rules offers great flexibility in any application architecture, it is suitable for any…
I'm working on ClydeIO
[ClydeIO][clydeio] is an open source API gateway and management layer based on nodejs. It is extremely flexibly, configurable and simply to extend. It is designed to simplify the development of new…
How to read from a writable stream (http.ServerResponse) in Node
I'm working on a personal side project (when I have free time to spend on) where a bunch of middlewares are chained to do something awesome (Take a look at ClydeIO. Note it is currently a proof of…
Using random unsplash images on your website
Recently I updated my we page and one of the nice features I included on it is the fact a random image is placed in the header for each page. These images are obtained from the great unsplash, a free…
Migrating from WordPress to Jekyll
WordPress is awesome, an incredible project with thousands of plugins that does not need any presentation. What start as a blogging platform has become a powerful framework to build almost anything.
Working with different environments on jekyll
Jekyll is an open source static site generator. It allows writing content in markdown (also HTML) using some rules, like adding some front matter on pages or posts. Later jekyll compiles all the code…
Generate and host your own raster tiles customized with Mapbox Studio
If you have never saw maps hosted in Mapbox platform you would probably agree on the quality of its designs. The business of Mapbox is to host and server geospatial data. For this reason, all the…
From SublimeText to Atom text editor
I have used regularly SublimeText (v2) for the past year. I used it mainly to programming in JavaScript, HTML, CSS and to write in Markdown syntax (I'm sorry but to programming in Java NetBeans…
The mystery of no flash session variables in Express + Passport auth
Recently I started an application using NodeJS with ExpressJS framework and decided to use passport for authenticate the users. As many other times I wanted to use flash messages so, when user…
Reading/writing compressed and not compressed files in Java
Main reason for this post is trying don't repeat yourself (DRY) because, often, I fall in the recursive need to read and write compressed and not compressed files (mainly JSON and CSV).
Why OpenLayers3 does not render my GeoJSON?
OpenLayers3 offers the ol.source.GeoJSON class that allows to read data from a GeoJSON source (an URL, a JavaScript object or a text string).
How the JavaScript heatmap implementation works?
A heatmap is a powerful way to visualise data. Given a matrix of data each value is represented by a color. The implementation of the heatmap algorithm is expensive in computation terms: for each…
The Book of OpenLayers 3, completed !!!
It was a long road but finally it comes true: The Book of OpenLayers 3 is finished.
Things to know when writing a book
From my short experience, let me summarize some things you must take into account when writing a book. Its is not a mechanical process, it is more related with inspiration, but we must be constant…
New Overlays chapter on The Book of OpenLayers3
The Book of OpenLayers 3 has been updated !!!
7 reasons to use Yeoman's angular-fullstack generator
For my next project and, after looking for candidates and reading some hundreds of lines of documentation, I finally choose to work with the so called MEAN stack: mongodb, express, angular and node.
The Book of OpenLayers 3, released !!!
Finally I completed most of the chapters I had thought for the book. Although two chapters remains to be written, I think the current content is extensive enough to help anybody interested to lean…
Announcing the release of The Book of OpenLayers 3
I just sent this words to all the people interested in the book via LeanPub and I would like to post it here too, hoping this message arrives to more people.
Releasing code samples for The Book of OpenLayers 3
Writing a book is hard, requires constance and motivation and, more important, be strong to keep them both. Least but not last you need time. Time to see the source code and learn. Time to see the…
Leaflet and how avoid map panning on mouseout
A couple of days ago , a friend asked this simple question in a Spanish forum. The scenario is simple, you have a map and when dragging it you would like to stop the action when the mouse goes beyond…
The book of OpenLayers3 is coming !!!
This week the beta2 version of OpenLayers3 has been released (see the OpenLayers3 is comming from Boundlessgeo blog) with great improvements on vector layers rendering and image manipulation.
Randomatic, to generate random sequences
This is my own implementation of a tool to generate random character sequences: Ranomatic !!!
Sample chapter for The book of OpenLayers3 is out !!!
A couple of days ago I release the sample chapter for The book of OpenLayers3. I will appreciate all your feedback, comments, ideas, ...
SublimeText plugins for writing a book in markdown
I'm currently involved on writing The book of OpenLayers3 using the great LeanPub platform. LeanPub has many benefits (I should write a post some day talking about) and one of them are you write the…
Feedback for The book of OpenLayers3
Finally I have decided to use LeanPub as the platform to publish my book. Here you can see the public page with a description about it: The book of OpenLayers3. Hope within a couple of weeks I can…
Professional purposes for the new year 2014
With the arrival of each new year everybody has new great purposes and new goals to achieve. I'm not talking from the personal point of view but the professional too: practice more sport, to quit…
The book of OpenLayers3
I was thinking on it for a long time, but due a lack of free time I never started. Finally I can officially say I have start writing The book of OpenLayers3.
Using more than one property file in Spring MVC
Spring is one of the most important, powerful and also complex frameworks in the actual Java panorama.
Symfony2, Doctrine, FOSUserBundle and fixtures for functional testing
I have an application built with Symfony2 framework which uses the Doctrine2 ORM for persistence. The issue is I need to make functional tests allowing to purge and initialize the database with…
A visual exploration of the Nobel Prize history
After some time in mind, finally I have got some free time to spend creating a web page to show the information related to Nobel Prizes.
The OpenLayers fallen and Leaflet arise... sure???
I wrote this post some months ago, before I publish the OpenLayers Cookbook, but I never published it thinking it could start a flame war instead a constructive thread.
SimplyWrite, a free web distraction writing tool
I like to write and I like programming so the obvious consequence were to write some tool to write. More or less this is the history of SimplyWrite.
The Book: GeoServer Beginner's Guide
GeoServer is one of the most importants open source geospatial servers nowadays. Implemented in Java, based on the powerful GeoTools libraries, GeoServer offers a great degree of interporability…
Things I learned creating a jQuery Plugin (Part II)
This post is the continuation of the series Things I learned creating a jQuery Plugin").
AnimatedCluster pan related bug... fixed !!!
If you regularly follow this blog and are web mapping developer that works with OpenLayers, (too much coincidences???) probably you know about the the Animated marker cluster strategy for OpenLayers…
Things I learnt creating a jQuery Plugin (Part I)
jQuery is one of the most used JavaScript libraries, if not the most used one, which allows to make great things with the big set of little tools it offers to the web developers: HTML/DOM…
OpenLayers, create a checkboard layer to know the tile names using Google Charts API
Pyramid tiles are used by many providers as a more efficient way (than WMS server) to provide images. The idea is simple, we have zoom levels and on every level we have NxN tiles of a specific size…
OpenLayers, how compute the tile "name" under the mouse
I have working on a web page using OpenLayers which among others shows a OpenStreetMap layer. The issue is I need to move the mouse over the map and print on a label the tile name in the form of…
tagger, a jQuery Plugin to manage tags
jQuery is widely used in the web world. Since its creation it was quickly adopted by many programmers mainly due its easily of us and extension capabilities.
OpenLayers presentation and OpenLayers Cookbook examples code update
A few months after the release of the OpenLayers Cookbook I have been working on a presentation about OpenLayers for @geoinquiets at Barcelona (BCN) that will be celebrated the next December 20th…
Projections, projections, projections
Create a map of the earth isn't an easy problem. Projections basically tries to solve the problem of how to 3D element on a 2D surface.
Things seen last week
Launcher - Wordpress responsive theme that allows visitors know estimated time remaining in launching your site.
Improved performance on the AnimatedCluster for OpenLayers
Yes, now I'm really proud to present the AnimatedCluster strategy for OpenLayers. Some time ago I created an AnimatedCluster strategy for OpenLayers that extends the basic Cluster strategy, animating…
OpenLayers Cookbook pirated... but you can continue buying it !!!
Approximately a month ago my book OpenLayers Cookbook was released by PacktPublishing and today I found it is available at many sites ~of debatable reputation~.
Architexa product review
Architexa product is an Eclipse plugin from Architexa.com company. As their web site say:
Creating static maps in OpenLayers using PhantomJS
Many times in a web mapping application it is desired to save a picture with the current map information.Those who works with Google Maps API has also the \Static Maps API, which works similarly than…
Taking web page screenshots
Recently I have worked on system that requires to take web page screenshots. Not only a screenshot of the whole page but of a concrete element.
PhoneGap on iOS: an stupid advertisement using the "create" command line tool
Some days ago I start my first mobile application. Nothing awesome, it is a simply excuse to test jQuery Mobile and PhoneGap frameworks.
AnimatedCluster demo site updated to work with OpenLayers 2.12
Not an awesome post but for any interested in the AnimatedCluster strategy I have updated the demo site to work properly with OpenLayers 2.12.
OpenLayers Cookbook is out !!!
I'm proud to announce it. My first work as author of a technical book sees the light. After some months of work (really hard work combined with my day to day job), finally the book is out:
Animated marker cluster strategy for OpenLayers
Yes, this posts talks about my implementation of a cluster strategy that animates clusters when changing the zoom level. So, if you are one of those don't like to read the blog posts from others and…
Awesome clustered markers in Leaflet
Some time ago someone asked at gis.stackexchange.com for nice cluster marker implementation, both for Leaflet or OpenLayers, something similar to Redfin. A couple of weeks ago I discover a great…
Look mom no jQuery !!! Getting all CSS properties of a DOM element in JavaScript
Getting and setting CSS properties is a simple task. We can make it in pure JavaScript:
Brief introduction to Dojo Widgets creation
In the past, I have been using Dojo Toolkit for relatively little projects. I choose Dojo by its well designed API and its rich and homogeneous set of widgets.jQuery and jQueryUI are great projects,…
OpenLayers Cookbook
I'm near to finish my first experience as the author of a technical book. Titled OpenLayers Cookbook it has been written for PacktPublishing editorial, while the OpenLayers version 2.11 was the…
Jelastic, cloud platform for Java
Some days ago I receive an invitation for testing Jelastic product and, today Saturday, I had a while, made my homework and had my first contact with the platform.
Stupid PHP snippet to always download a changing file
It is short, it is easy, it is stupid but... can save you time. If you need to download every few minutes a remote file that changes its contents at regular intervals of time this is for you.
The dojox.grid widgets family and the strange case of the items modification
So, you are building a web application and decided to use the great Dojo framework. Probably, if you need to use grids, you will decide to use some of the available widgets subclass of dojox.grid.…
What Doesn't Stay in Vegas?
Today, and thanks to a colleague, I found this great video about how the Las Vegas city has grown in the past years.
Scale-adaptative Projection
Take a look to this awesome exercise from the Oregon State University:
Dojo + OpenLayers = New Challenges
Recently, the new Dojo 1.7 was released with many improvements and important changes. As a developer, I'm pleased to work with Dojo on RIA application because simple reasons:
Presentation tools in the browser
With the arrival of HTML5+CSS3 the browsers are getting more attention because the new possibilities.
Filling Flexigrid with JSON/XML data
Flexigrid is one of the most useful and powerful grid plugins for jQuery. Unfortunately, as the author explains in the project page, there is no much documentation so you must learn how to use it…
Greedy and Nongreedy Matching in a Regular Expression
This questions has come to me many times so it is time to write a post that acts as a reminder.
Open alternatives to Google Maps
Lately there was a not much surprising news about Google products and services. Among other things Google has changed the Google Maps API use policy and will charge to those users that exceed some…
Using YouTube API to embed videos dinamically on your web site
It is easy to embed a given YouTube video on a web site, simply use the wizard to get code required code, but what about to do the some automatically using JavaScript? Yes, suppose you have a…
Sending emails with Java
Update: This article is a bit outdated 😅 You can find a nice read at the blog post Guide to Send Emails in Java from the mailtrap.io team.
Clinker, a software development ecosystem
Recently I discovered Clinker, a so called Software Development Ecosystem. Mysteriously there is no definition for Development Ecosystem on Wikipedia yet but a close definition could be:
Crop image on the client side with JCrop and HTML5 canvas element
Suppose you are working on a nice web application where the user can upload images to, for example, a shop catalogue (mmm... that makes me think on something :p ) but wait... you don't the catalogue…
A word about LESS
Woow!!! That is the word that best defines Less.
Customizing jQuery UI Dialog: hiding close button and changing opacity
Sometimes when you are programming small things are the hard things, little details becomes difficult to solve and you need to spend lot of time to solve them. This is logically :) because you spent…
Local storage: Storing sticky notes on your machine with HTML5
Every history has a beginning and for this post it starts when some time ago I saw this good post from tutorialzine.com. Really I love the tutorials at tutorialzine.com, they are great quality…
A geek joke
A man walks into a Doctor’s and says “Doctor, I think I’m addicted to Twitter.” Doctor looks at him and says “Sorry, I don’t follow you.”
Generating map tiles without a map server. GeoTools the GIS swissknife.
Recently I was playing with latest version of GeoServer. It includes the GeoWebCache, something which can improve your server performance greatly. GeoServer solves and helps lots of problems to work…
A heatmaps layer for OpenLayers
As I commented on a previous post I know about heatmaps.js project some time ago and interest me a lot by its possibilities with OpenLayers. Of course it is not the only solution, see here and here…
Heatmaps in OpenLayers
Some month ago I found nice post on how to create heatmaps using HTML5 canvas element. Its author, Patrick Wied, created a nice JavaScript code responsible to create a heatmap over an image depending…
XCode4 and the mystery with Route-Me code sense
If you follow this blog you will know I prefer to write "long" posts with nice content :) form time to time than write lots of short posts without much substance. For that I use Twitter :p
SimplyWrite, a free web distraction writing tool based on IndexedDB
SimplyWrite is a free web distraction writing tool. It is based in the IndexedDB HTML5 so you need a browser compliant. Because the use of IndexedDB all the content is stored locally on your machine,…
acanimal is using github to share code !!!
After some time as a pending task, finally I have created a github account to share code and any other things with you.
How to Create a Cross-Platform Application with NASA WorldWind & NetBeans Platform
This post is a mini tutorial on how to create an application based on NetBeans Platform that uses the WorldWind Java virtual globe. Before to continue, you need to have some knowledge about NetBeans…
Downloading files from AEMET FTP server with Java and Apache Commons Net
Some time ago the AEMET, the Spanish government meteorological agency, release many of its data publicly: weather radar, weather stations, lightnings, ... The way they do is simple and effective:…
notemarklet: Transform selected element into a sticky note
Bookmarklets are nothing new but I never created one. There are tons of available bookmarklets to make tons of useful little things but here is my little but nice bookmarklet :) called notemarklet…
Working with the JavaScript XMLHttpRequest object
In the last years JavaScript has become one of the most important programming languages. Probably one of the most famous words related to JavaScript is AJAX) (Asynchronous JavaScript and XML).…
JavaScript animations (tweening): Why maths are important?
In a previous post I show how to make a simple scrolling animation using jQuery. jQuery library has lots of effects, many more added in jQuery UI and much more as plugins. Of course it is fine to use…
How to create a preloader in Dojo
Dojo is a great framework to create RIA applications. Dojo isn't only a bunch of utility functions to select DOM nodes, change styles, make some effects, etc in contrast it is a whole framework with…
Animated scrolling to a DOM element
Creating my web page I have wanted to create a smooth movement to a given page element, for example from top to about section. One possibility, of course, is to code it yourself, but we are lucky to…