programming

Moving to Hugo

Bye bye paid web hosting + Drupal, hello GitLab + Hugo

Toni Sagrista Selles

3 minute read

Hugo SSG

The idea of ditching both my web hosting provider and Drupal has been at the back of my mind for a few months.

Bear with me. Since about 2011 I have been maintaining this website using the cheapest hosting tier my hosting offers – At least it was the cheapest at the time I got it. They call it The Essential and it costs over 300 bucks for 2 years. It is not a lot, but it is definitely too much for my purposes of hosting a small blog where I provide occasional updates on my projects, my portfolio and my CV.

Also, loading times are horribly long and the complexity of managing the Drupal installation (upgrades/updates) and also the database takes way too much of my time. Only the thought of updating to Drupal 8 sends shivers down my spine and ultimately got me searching for better options.

Review of Particle Physics Simulator

Physik in unserer Zeit reviews the Particle Physics Simulator

Toni Sagrista Selles

1 minute read

Turns out the German physics educational journal Physik in unserer Zeit (Physics in our time) published a thorough review of one of my Android apps, the Particle Physics Simulator back in January 2014. One of the authors of the article, Jan-Philipp Burde, contacted me a while back to let me know that he was preparing the article and to ask some information on how the code works, which I gladly provided. Then, he kindly contacted me again when the article was published in the January 2014 issue of the journal.

For what I could understand with my still basic German, the article talks about how the app can aid in the teaching of gas dynamics, providing some hints on the configuration set-up (no gravity, elastic collisions, etc.) in order to simulate a gas. For example, it teaches how to illustrate the concept of Brownian motion, removing the gravity and creating several small-sized particles along with one or two big-sized particles.

From Slick to Libgdx

A migration story

Toni Sagrista Selles

7 minute read

A couple of posts ago I mentioned I would write a few lines about my experience with the migration of my RTS engine from Slick to libgdx and that’s what I’ll do in this post. I’ll be talking very lightly on some issues such as the code structure, the rendering process, the camera, etc. If you need a starting tutorial please refer to the official documentation, this is not what you are looking for. I’m just trying to give my impressions in the migration process I had to undertake. But first I want to back up a little and give a quick overview of both libraries.

New web design

We have updated the design of the site

Toni Sagrista Selles

1 minute read

Old and new web designs

As you may have noted, I updated the look and feel of the website to a more sober, greenish and polished design. The moon in the header has been replaced by a jumping monkey, which is always likeable. Regarding performance, this new site has less and smaller CSS files and less images and therefore it loads faster. Additionally, it uses HTML5, which is good. I also took the opportunity to update to the latest version of drupal and make use of the newer ZEN base theme. Here there’s a side-by-side comparison between the old and the new styles.

RTS engine preview

Video preview of Real Time Strategy engine

Toni Sagrista Selles

2 minute read

RTS engine preview

Today I want to introduce a very different piece of software I have been putting together lately. It is a RTS (real time strategy) engine. I started playing with the idea as a time killer some years ago, kicking off the development with a fast version of the A* pathfinding algorithm backed not by a grid (as usual) but by a quadtree. Quadtrees make pathfinding super-fast because of their hierarchical division of space and their adaptive partition sizes. Even though I used visibility graphs to store the navigable nodes from one given point, quadtrees are also fast for checking the properties/elements of a position’s surroundings, for child nodes are always spatially contained in parent nodes.