Mastodon Icon RSS Icon GitHub Icon LinkedIn Icon RSS Icon

How to build rusqlite on Windows

Header image for How to build rusqlite on Windows

Note: This article has not been updated in the last 2 years. The information may be outdated.

Yesterday I spent way more time than needed for compiling this dependency on Windows. The problem is that the error was not informative enough and hard to google, and, mostly, that there is no standardized way to look for installed libraries in Windows. Just to be clear, there is no reliable way to use pkg-config on Windows as in Unix-like systems.

I am killing comments. I will not kill discussion.

Header image for I am killing comments. I will not kill discussion.

I am removing comments from this blog. There are several reasons for this decision. First, it is hard to find value in comments anymore. In 3 years I think I have collected something like 10 comments. Most of my interaction with readers and other people happens on Twitter, in the Facebook comments or in the Reddit threads. Second, the existing main solutions for comments are unappealing.

The default WordPress comment system is very spam prone and hard to manage. On the other hand, Disqus looks like a more technologically advanced solution. Unfortunately, in practice, it is a resource hog, it forces you to have your experience shared among different domains, and, in other words, a giant tracking system. I do not want to force my readers to load a third-party potentially tracking system every time. Even because it make hard to me to enforce a serious privacy policy for this place.

Randomness in PCG is about the result, not the parameters

Header image for Randomness in PCG is about the result, not the parameters

I feel the urge of stating the obvious: randomness in Procedural Generation refers to the perceived randomness of the outcome; not the randomness of the input parameters.

In some sense this is “obvious” but, at the same time, is one of the most common mistake I see when developers tackle procedural content generation in their games. It is an understandable mistake, though. There are two assumptions we subconsciously make when we approach randomness: 1) we think that uniformly random parameters produce uniformly random outputs (that’s blatantly false), and 2) we think that uniformly random outputs yield to uniformly random perception in the human (even more false).

Random calendar generation from planet orbital parameters

Header image for Random calendar generation from planet orbital parameters

In this article I want to show you a small proof of concept where we generate from scratch an alien calendar. The difference from other random calendar generators that just put random days and random month is that, in this tool, we can specify as input the orbital parameters of the planet and satellite and generate a calendar that makes sense. How could be the calendar for that planet orbiting a super-massive star? How could be the calendar for Mars or Venus? Every time I try to sketch a Sci-Fi world, I want to try thinking to a calendar that make sense for that particular planet. Because the calculations are long and boring, I built for myself this little tool. However, before going to the tool, I want to provide a small introduction to the problem.

Any news from Clojure front?

Header image for Any news from Clojure front?

Some days ago, I was cleaning my Code folder from old snippets and test projects when I found an old Clojure package I did to test some Clojure feature. I remember that I kept the project sleeping in my Code folder because I thought that it would come in handy when Clojure 1.9 would be released. However, I left that project stub back in February 2016, more than a year ago. That raise the question: where is Clojure 1.9?

Most Promising Programming Languages of 2017

Header image for Most Promising Programming Languages of 2017

Another year, another 5 promising programming languages you should keep an eye on in 2017. As usual, I’d like to write the warning I put here every year: in this list, you will not find programming languages for hiring purposes, but for very long-time investments and for pure programming fetish.

So, now that you know what I am talking about, here we go with the top 5 for 2017.

Top 5 Promising Programming Languages for 2017

Rust

PCG without a Computer: Combinatorial Literature

Header image for PCG without a Computer: Combinatorial Literature

For us computer scientists and game developers, Procedural Content Generation is directly connected with computers and algorithms. It seems such a modern thing!

In reality, the exploration of the “combinatorial nature of art and human thoughts” is a much older concept. Probably, the most interesting and early writing on “PCG” is the doctoral dissertation of Gottfried Leibniz, De Arte Combinatoria (On the Combinatorial Art) (1666) in which he exposed the main idea that “all truth are nothing but combinations of a relatively small number of simple concepts.”

How to manage a Videogames Bibliography in LaTeX

Header image for How to manage a Videogames Bibliography in LaTeX

There is a common question in academia for people working on videogames: “Is there a consensus on how to cite videogames in academic papers?”. Obviously not, there is no consensus and probably never will. However, I will try to show you a solution to this problem that I enjoyed a lot in the last months. It is clear, it is customizable and it is the most formal way I’ve found to do that.

THREE.js Shader Loading from External File

Header image for THREE.js Shader Loading from External File

As usual, trying to nicely separate into different files the various application parts in JavaScript is a titanic challenge. This time, I wanted to separate the “.frag” and “.vert” shader programs into different files that I can load at runtime (instead of putting them into the HTML like a savage).

For some reason, there is no easy out-of-the-box way to do that. On the internet, there is a small library, but it depends on JQuery and I think it is insane to load JQuery on top of THREE.js just to load a couple of files. Therefore, I wrote a function to do that using the THREE.js integrated generic loader function.

Announcement: Procjam's Seed #1

Header image for Announcement: Procjam's Seed #1

This is just a small announcement. Some days ago the first issue of Seed, the official ProcJam magazine, has been released. If you are interested in procedural generation you really should give it a shot. It is colorful 106 pages long magazine, full of experiences, ideas and interesting contents on PCG.

Moreover, there is also an article of mine on the Ouvroir de littérature potentielle (Oulipo), a mid ‘900 literary movement that it is really connected with the PCG. If you want to read about people developing PCG stories in the pre-information era, take a look.