How to NOT make a RPG history

So, recently, I decided to try Zelda – Tears of The Kingdom. While the game is visually beautiful, it lacks something, and I wasn’t sure what it is, until I found a gameplay of the whole game (and experienced parts of it myself) so I will try to summarize my discomfort with it.

Obviously, this post is full of spoilers for both Tears of the Kingdom and Zelda – a Link to the Past (the SNES game) so if you didn’t play them and intend to do, then don’t read more. But if you’re not interested in playing any of them (especially if you don’t intend to play A Link to the Past, because in my opinion it is a better game) and you’re interested in having my thoughts (which, obviously, are mine only, and only my personal opinions of course) then…
(more…)

Eventually, all unicorns turn to be just slim Rhinoceros

For people that are not aware of the term (a term that I actually don’t like that much), “unicorn companies” or “unicorn startups” are companies that basically get hyper-funded and gets a lot of investments in a period of time: the idea is basically that a company (or startup) have such a wonderful idea, or a wonderful execution of that idea, that people want to put money on it, to the point of millions (or even billions) of USD, on the hope that the company will revolutionize the market. Nubank is an example; Twitter’s probably another one; and there were a lot of companies (specially startups) that are trended as “unicorns”.

For me, there is a real problem with the term – it uses a mythological animal to explain the company. Unicorns don’t exist, which basically mean that the “money” an Unicorn Company make also… don’t exist. At least, not for now; there’s a promise that it will be profitable in the future. Considering we’re talking about literally millions of USD, these want to probably get thousands of millions in return. So they start by making less than zero to the point of trying to reach eight zeroes to the right of some number, at least. They also don’t need to be sustainable, or sometimes even have good code, in the beginning – what matters is the idea, and that they somehow get founded by a group of investors.

And that’s where the problem comes in. I worked at some of these companies in the past, but up to that point I never knew what it means to have such a big money invested. The thing is, good practices in both product and code were present, for sure. But the focus was on delivering – so everything goes to the drain if you’re not delivering fast enough – you always have to deliver something new, something that the users will like, and it have to make to production really to see if that idea will make sense or not.

Which is good enough, but there’s a problem. Your products will always get worse.
(more…)

We were always this bad.

One point that I keep hearing is how internet made us all worse. In a way, it seems to be true; but let me tell a story first.

When I was young, there was no internet. I think I connected to the internet for the first time in my life when I was 15 years old, and it was way different than things are today – I remember that Google didn’t exist, or it was too slow to run on my very slow modem.

I also have to make a disclaimer: when I was young, like 15 or 16 years old, I did not see too much malice in the world. I could not understand the whole idea of prejudice for example – the single idea that one could hate others for their skin color or for the place they were born was alien to me… until I met someone that, indeed had this mentality. But again, I didn’t think too much about it – that person was not really a good person, and while I did associate with they (I was a nerd boy with no friends, a teenager already makes stupid choices by design, this was only an amplifier) when that person left my life it indeed felt that things were going to be better.

Well, fast-forward to some years, comes the first social networks. And then, I met a whole new group of idiots in 9gag, Facebook, the old Orkut… it was hell, but I made my decision to quit all of these networks, and I felt things, again, were better. After all, the internet gives voice to idiots, that eventually find other idiots, and these make a group that would never act like that in public, right?

Right?

Well, I was already quite old when a very close family member asked me if the relationship that I was starting with the one that eventually became my wife was going well – after all, she’s protestant-ish, and I am catholic (spoiler alert – I am not. But again, that person was already quite old and they never really approved the fact that I didn’t go to church), so the relationship is bound to have problems, right? I dismissed the person, without giving too much though about it.

Until the moment my SO and I got into a crisis, and spent a whole year distant; the moment when I heard the words “it’s weird for you to be with a black woman”.
(more…)

They locked us outside of freedom

Recently, I saw myself forced to use a Mac. And then, finally things became clear: why I don’t like macs, and why people do like it, and why Linux is not popular.

It is quite simple, honestly – closed-source software works incredibly well with other closed-source software, and incredibly bad with any open standard.

It’s the equivalent of creating a comfortable city, with filtered air and water, but that somehow makes you allergic to natural air and water. And then, they convince you that natural air is bad for you.

So, let’s dive a little on my experience with Mac – remember, I use Linux most of the time, my wife also uses Linux (by choice, by the way, although basically nobody believe me when I say that, and no, she’s doesn’t work with computers), so my whole life is somehow based on open standards. So, the first thing I tried on my Mac was to start some open standard services – OpenSSH, VNC, for remote access…
(more…)

The empire built over beach sand

Completely inspired on this post: https://archiloque.net/blog/a-machine-for-gods-jam/, and my experiences with Pulsar.

The Node.JS Ecosystem, together with so many others, is broken. Maybe beyond repair.

Let’s review the foundations of good software: good code, automated tests, a server that checks if the software works (usually called CI Server), a server that publishes the software continuously as soon as everything is working (usually called a CD Server), and reproducibility – meaning, if something fails, it needs to always fail if we send the same parameters, and always fail in the same place in the same way; if it passes, it must always pass on the same condition.

Now, onto Pulsar
(more…)

Git is a distributed version control system – let’s use it as such

Here, I’m going to talk about git. Simply git. That’s all.

Git is a version control. It means that, for text files, it’ll store differences between a version and another.
Git is distributed. Meaning that multiple people can work on the same file and sometimes even on the same feature and one will not step on each others’ toes.
Git is semi-immutable. A commit is a fixed, immutable point in time containing the difference between the last version and the new version.

Now, let’s talk about what git is not
(more…)

HackerNews, Pulsar, and my answer

First things first: I refuse to create an account on HackerNews. It’s honestly one of the most toxic programming communities that I know of. One thing that always come to my mind when somebody links me an article on HackerNews is the phrase:

The person who says it can’t be done should stop bothering the one doing it

Seems that this first phrase was written, without attribution on the “Puck” magazine under a slight different wording and meaning, but I honestly prefer this newer version. Anyway, back to HackerNews, somebody posted about Pulsar on it. And, as always, the comments are mostly negative. This basically triggered me a lot more than I would like, so instead of creating an account and giving them more visibility, I prefer to address these issues on my blog – so I don’t risk being triggered even more when some stupid keyboard warrior writes nonsense on why our work is useless (I told you I got triggered by the comments!).

So, to answer many of the stupid remarks on the site:
(more…)

The path to mediocrity and gatekeeping

So, I left GitHub. Thankfully so. Only at my work, and because I’m working on Atom, I keep code on that service.

For a while GitHub was degrading into a service that I felt I was not the target client anymore. In the beginning, GitHub felt like a social network for nerds – a place where we could share code, make pull requests, make the code talk instead of other things. Forking was not a bad thing anymore, because we could track who forked, what they were working on, and how to contribute or get their changes in any time.

Now, GitHub feels more like a enterprise thing where things are bureaucratic and you can’t trust anyone. A place filled over the top with telemetry, where you and your code are the product (regardless of which license you choose for your code) and where you must add “rules” for everything otherwise you’ll be bothered over and over again.

I’m referring to the new “please protect you branches” and “add requirements to merge PRs” popups, obviously.
(more…)

The infinite arrogance of software developers

Yeah, sorry for the bold title, but sometimes I get tired of software developers expecting they figure out the secrets of the universe. And let’s be honest: at some time in my career, I was one of them. Sometimes by accident, sometimes… not. Anyway.

First, a little disclaimer: this post is not targeted at anyone in special, and I’ll not mention anyone here – just quotes, slightly modified. Anyway, although I love my profession, sometimes it feels like we’re this programmer guy from XKCD:

I'm here to solve it with Algorithms, then six months latter: wow, this problem is really hard (Megan: You don't say?)

There are LOTS of things that bother me at this programmer mentality, so I’ll separate this post into multiple sections. If you’re reading this and feels like it’s a personal attack against you, please don’t – I’m not really attacking anyone, just trying to change a toxic mentality that poisons our abilities to be better professionals, people, and human beings.

“Not a real programmer”

The first one is classic: people define what a “programmer” is, based on their own experiences and expertise, and dismiss people that don’t fall into their categories. Wikipedia, for example, defines Computer Programming as:

Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a particular task

As for the “Computer program part”, Wikipedia defines as:

In imperative programming, a computer program is a sequence of instructions in a programming language that a computer can execute or interpret. In declarative programming, a computer program is a set of instructions.

So it’s hard to find a good definition on what programming is, but if we try to merge the two explanations from Wikipedia, we get that, to program a computer, you have to design an executable “sequence of instructions” or “a set of instructions” so that you can accomplish a specific result or perform a particular task.
(more…)

The end of an era: goodbye, GitHub

We all knew that Microsoft would destroy GitHub. Well, I hope we all knew. I knew it too, but somehow, I thought: it doesn’t matter. Maybe they’ll add some commercial features, maybe they’ll force some integration over VSCode or Visual Studio, but anyway, I didn’t think, at the time, that they’ll be able to make something really bad about it.

This ends now.

Microsoft (I’ll not use GitHub anymore here. I’ll keep GitHub for Atom, probably, but that’s how far I’m willing to go) decided that “public repos are reusable pieces of software” regardless of license, with their “Copilot” product. Yes, people are saying that’s legal, fair trade, blah blah blah. I don’t buy it, and I believe it’s only because it’s Microsoft that they are speaking like this. Every other system that inputs <copyrighted-content> and outputs <content>, when the input and output are the same “kind” (music, painting, code, poetry) needs to be aware of the original license, and that’s final. In fact, every tool that tried to do this in the past WAS victim of copyright strikes – so why Microsoft is not? In fact, there’s public code that’s not open source on Microsoft’s servers. If they are so sure that it’s not a “derivative work”, why didn’t they train their ML with private repositories? With Microsoft’s own private code? The answer is obvious – only the fool don’t want to see.

Anyway, I’ll be removing all code from Microsoft starting now. Unfortunately, there are issues to code cooperation and other things if I decide to self-host a solution, so until Gitea allows for federated content, I’ll got with Gitlab. I’ll start with Chlorine, Clover, and similar projects like REPL-Tooling, Duck-REPLed and Vision. Then, maybe I’ll start moving things on demand (after all, all code that EXIST today was slurped by Microsoft already, so why should I bother removing the damage that already was done). So, here I’ll try to document my process:
(more…)