2021.03.14

For the last 9 years, I’m working as a planner and controller of multinational Brazilian oil company. The team consolidate all the planning information of all the company, analyses it and reports to the company board of directors.

For all these years, I’ve struggled to deal with some basic business scenarios:

  • At the very end of the process, someone in the chain of information submits a last-minute update that cannot be ignored
  • The board decides to change the plan
  • Existence of multiple simultaneous plans, for optimistic and pessimistic scenarios
  • Changes in the organizational structure

The current information systems used or developed by the company are simply too restrictive to accommodate their business cases. The general solution is to create entire systems using dozens of spreadsheets. This a patchwork of data, susceptible of data loss and zero control.

To address this, I decided to develop myself a system that is both flexible and powerful. The overall core propositions are:

  • Versioning: instead overwriting data whenever there is a change request, the system should be able to preserve the existing data and generate another version. Both should be accessible, in other to allow comparison and auditing.
  • Branching: not only sequential versioning (v1, v2, v3), it should allow users to create multiple current versions. Creating scenarios of event temporary exercises should be effortless.
  • Multiple dimensions: for each unit (ie, a project in a list of projects), the user could insert the future CAPEX, OPEX, production, average cost, number of workers or any arbitrary dimension. It’s all about capturing future series of values, regardless the meaning.
  • Multiple Teams: in the same organization, users can create inner teams that deal with different aspects of the business. The system should allow to users set the list of units to control (projects, employees, buildings, or whatever), their dimensions of measurement and then control the user access of all this information. It’s a decentralized way to create plans.
  • Spreadsheet as first-class citizen: small companies might not use them much. But any mid-to-big companies use spreadsheets for everything. Importing and exporting system data as Excel/LibreOffice/Google Docs is a must.

With this feature set in mind, I started to create a spear time what is now temporally called Project Curva for the last 3 months. I will post more about it in the future: the used technology, the technical challenges and some lessons learned.

A beta is due to the end of April, 2021.

2020.12.09

2020 might compete in the Most Pivotal Year in History Award, but it had its fair share of surprises. I had the time to attack start to finish several games. I reused the commute time to play. Below is the list that I compiled using the new GOG Galaxy app, that tracks games even from other stores.

The list of movies I’m going to skip this time, since it would not fit into a single post.

Games

  • Assassin’s Creed Odyssey: 9/10 I loved this game, setting and its protagonist Cassandra
  • Dishonored: 9/10 unique story, gameplay and visuals
  • Hellblade Senua’s Sacrifice: 9/10 superb visuals and premise
  • Half-Life 2: 8/10 amazing game, even today
  • Prey: 8/10 these guys from Arkane Studios also know how to write and make all characters relevant
  • >Observer_: 8/10 super weird setting that caught my attention
  • Rise of the Tomb Raider: 7/10 messy story, despite the good gameplay loop
  • Dishonored Death of the Outsider: 7/10 while it have the same not the same
  • Farcry 3 Blood Dragon: 7/10 hahaha some over the top jokes
  • Virginia: 7/10 lovely story
  • A Way Out: 7/10 I player with my girlfriend, together
  • Frost Punk: 7/10 I tend not to like rougelike or crazy-difficult, but this one surprised me
  • Shadow Warrior 2: 7/10 hahaha some over the top jokes (again)
  • The Council (ep 1): 7/10 amazing premise and the first episode is nice. I heard that the other episodes are not great
  • Tacoma: 7/10 passive, calm and nice story
  • Ape Out: 7/10 die and repeat
  • Assassin’s Creed Origins: 6/10 beautiful but boring and another AC messing story
  • Framed (Collection: 6/10 interesting premise
  • Metro 2033 (Redux): 6/10 the amount of DeusExMachina moments is off the charts. the same for best friend companions that dies in the very next scene.
  • The Red Strings Club: 6/10 weird
  • Bioshock Infinite: 5/10 I really did not like the story and not the gameplay
  • Realpolitiks: 5/10 interesting take on politics and economics simulation
  • Farcry 5: 5/10 beautiful but boring and another FC forgetting story

Finished in 2018-2020 (before pandemic)

  • Doom: 9/10 (sort of: a bug near the end broke the saved game)
  • Thomas Was Alone: 8/10 once I decided to restart and go to the end, I enjoyed so much the humor
  • Hollow Night: 7/10 difficult as hell
  • Gorogoa: 7/10
  • Quarantine Circular: 7/10 the same creator of Thomas was Alone. The same humor
  • The Line: 7/10 classic whada fuck moment on gaming history
  • Sexy Brutale: 7/10 great premise
  • The Turing Test: 7/10
  • Shadow of War: 6/10 (sort of a bug near the end broke the saved game)
  • Rime: 6/10 samey
  • Captain Spirit: 5/10 lack in every aspect from its sister game Life is Strange

Not finished yet (for a reason or another)

  • Superhot Mind Control Delete: 7/10
  • Offworld Trading Company (campaign)
  • The Quiet Sleep
  • Shadow Tactics: 8/10
  • GRID 2: 7/10
  • Hand of Fate 2
  • Subnautica
  • Far Lone Sails: 5/10
  • Bad North
  • Ori and the Blind Forest: 8/10
  • Kentucky Route Zero
  • Detection
  • Rome Total War
  • Else Heart.Break()
  • Gunpoint
  • Baba Is You
  • Everspace
  • The Pillars of the Earth
  • Sunless Sea

Continuous playing

  • Stelaris
  • Democracy 3: 8/10 always in Vogue
  • Scythe: the award-winning board game
  • Surviving Mars
  • Offworld Trading Company
  • Imperialism 2: 8/10
  • Ticket to Ride: 9/10 played online with family and friends
  • Hidden Folks: 7/10 success with small kids and non-gamers alike

In preparation of the upcoming Cyberpunk 2077!!!

2020.12.03

Hello World. Testing the new site!

For the N’s time, I migrated the blog to a new blogging system. This time, I’m using Hugo.

Hugo is a class of CMS’s that generate static sites. Just like compiled and interpreted programming languages, the whole site generated beforehand and the result is uploaded to a server.

The main advantage using this method is a substantially faster site and zero attack surface form the CMS. The main disadvantages are the less user-friendly interface and big building times.

Let’s dig into theses issues:

Faster Experience

Since all the pages are now static and pre-made, the only variable it the server latency to delivery the files. The page does not need to be built on the fly for each user, which can be tremendously slow. And it also waste CPU from the server, rebuilding it time after time after time.

Most CMS’s have some caching system to mitigate this issue. They first check if the page have been already built. If so, serve it. If not, build it and save the result. The problem lies on implementing a CDN and/or a technique to invalidate the cache to force a rebuild (in case the content was altered by the author).

More Secure

Since it does not compile the page on the fly, it eliminate the security issues inherited form the language. It also does not access any type of database. There is no admin page. Event DOS attacks can be much more robust, since the CDN can migrate the traffic to another server easily.

User Interface (Lack of)

Well, Hugo uses the developer-driven approach that requires the user to use a IDE and compile the whole site. It does not offer any type of interface in which you can drag and drop widgets. It’s is definitively not WYSIWYG.

If you are seasoned to programming tools, you will have not much problem. It will be very familiar. For a non-tech savvy mom blogger, Hugo is a no go.

Build Times

Even to see a single post that you just wrote will take time. Like compiled programming languages, the site have to be built before you can check on it. Hugo have a automatic service that propagate the incremental changes and it really fast, so iterating the content will not slow you down.

It will take even more time if you have some extra processes implemented, like resizing images.

But the process to rebuild the entire site might take a while. Thankfully, for the production the whole building process can be delegated to CI/CD tools. Using GitHub or Gitlab, they will automatically build the site on each commit.

The process of writing this post, the very first on the new platform, was quite nice. But I’m in the perfect spot of product requirements and technical skills


Anyway, I’m going to try to post more content in the following months. :)

2018.12.13

This title-provoking book tries to tell a very important lesson: not everything is worthy of your attention and worries. In fact, most of things that makes us worried and down could be easily avoided if we maintain a strict rule of not

It’s kinda a Buddhism in modern blogger language. Like the book, Buddha tells that wanting leads to suffering. So you must clear your mind of all desires, not giving a f*ck about stuff. Specially material stuff.

The first third of the book is pretty nice. Is a bit thought provoking, giving you a sense of perspective of your life. I liked this part very much. I believe that it’s worth of a reread time to time. The second and third parts directs the same philosophy towards more practical aspects of life, like relationships, love and work. There the advises becomes a bit too narrow and full of must do and must not do kinda lists.

Overall, I liked the book. It’s that kind of self helping book that shakes a bit the status quo and makes as reevaluate our lives.

My Grade: 7.5

Goodreads: 4.00/5

2018.12.02

I love dogs. Since kid, I always wanted to have dogs around. I’ve had two when I was a kid. The two died in a bit tragic situation, but I kept loving them.

This year I decided to give it another try. This time, I would be alone. No mother or brothers to help me out feeding, nursing and taking out for a walk. This time, it would be like I’m a single dad.

I had my preferences of breed, of course. I live in an apartment, so it would be advisable to get a smaller specimen. In Rio, a furry one would suffer without mercy. A smart, training-lover that would get beer at the fridge would also be a great plus.

But I did not want to buy. I would rather adopt one. But to find one that fills all the check boxes is hard. But I waited. Eventually, a friend of mine told me such story:

She already had a dog, called Lancelot, but she felt that the dog was too alone. Without a friend, Lance was developing a non-social behavior. She decided to adopt one. She got a small 1.5 month-old cub and named her Guinevere. Lancelot and Guinevere were supposed to live happily ever after.

But Lance got annoyed. All that grumpyness from a adult dog was not getting along with the chaotic way of life of a cub. Lance was spending most of the day up in the bed, a place he could jump over but the poor Guinevere could not reach. From there, Lancelot kept his god deserved peace.

My friend told them she was planning to give Guinevere back. I immediately seized the opportunity to ask the little lady for myself. It was my chance right there. She agreed.

I was going to pass by her place a couple days later to get the new daughter. I was super anxious. I could not wait for it. Eventually, I went there to meet for the first time my little Guiné. Guiné is a reference to the African country, Guinea. It is a perfect match. Guinevere was super duper black. Despite a single pawn and her belly, Guiné is pitch black.

I loved her. Her super energetic behavior. Her looks. Her tongue, that did not stop to lick me for a moment. Since then, I am a dad. I try to give it her deserved love without over do it. She is a dog.

2018.11.26

Gosto muito de futebol. Mas não sou nenhum fanático. Eu torço, vibro e vou umas 3 a 5 vezes ao ano ver pessoalmente nos estádios. Não sou de ofender os jogadores e técnicos pela TV porque sei que eles não estão escutando nada.

Em 25 de Novembro, uma feliz coincidência de fatores permitiria que eu pudesse ver meu time, caso ganhasse, ser campeão nacional. Pessoalmente. Ao vivo! Não poderia perder esta chance.

O jogo seria no estádio do Vasco. A sorte é que a torcida do Vasco é considerada torcida irmã da torcida do porco. Então seria bem improvável ter qualquer tumulto. Os ingressos do time visitante estavam completamente esgotados. Decidi, juntamente com um amigo palmeirense, que iríamos na torcida do Vasco mesmo. Não houve falta de avisos que os arredores de São Januário eram perigosos. Nem faltaram avisos que ir na torcida do adversário era perigoso. Tampouco faltou conselhos que o time poderia perder e tudo seria inútil.

Fomos. Torcemos. E ganhamos! Baita emoção. Foi incrível ver o time comemorar a vitória definitiva depois de 37 jogos. Com uma rodada de antecedência, não poderia ser mais alcançado.

2018.10.14

In the same vain of critically acclaimed Limbo and Inside (review pending :P), from Playdead Games, Little Nightmares, from Tarsier Studios offers a great action puzzle adventure, full of mysteries.

The game, unlike the mentioned ones, are played in a 2.5 world. It’s mostly 2D, but there are some things that require the Z axis. To be quite frank, it is partially one of the problems with the game. More of that later.

The story is a bit clearer than the Playdead games, but it still is a clueless journey. All these games offer a minimalist approach for storytelling. One can argue that it is a valid and logical choice in a situation where you are alone and running away from danger. However, the lack of exposure let the players in the darkness most of the time. You might eventually discover whada heck is going on, but chances are you will play throughout the game without know much.

In a scale, Inside is mostly undecipherable, Limbo is a understandable (due the simple boy runs premise) and Little Nightmares might have the most clear story.

The giant grotesque figures are super creepy, but after some deaths, they do not offer the terror that would might except. They fall mostly in the range of strange than from pure evil that want you dead.

The controls caused me several problems. I was expecting to use the game pad, but the analog joystick was too unprecise, specially during running. I was often falling into the void because I was running towards the camera instead sideways. I had to change to mouse+keyboard scheme, which was weird for such a game. Ironically, the 2.5 feature of the game was not that important. It mostly could be replaced to a tracked walk towards the Z axis, making the game essentially a 2D.

The visuals are amazing. It totally delivers the premise of uncanny familiarity and strangeness. The awkward felling that you know something is not right is present here. You character is relatable. It’s fragile nature makes the whole adventure more epic.

Because it have a chapter-like story. One could try to replay its best parts to manage to get achievements or contemplate better the scenarios.

Note: I like the game so much that I was compelled to try it’s 3 expansions. Nice.

My Grade: 7

Metacritc: 8.4

2018.09.12

Great trip to Brazilian Amazon. Manaus, Alter de Chão, Belém, Ilha de Marajó, São Luis and Lençóis Maranhenses. So many friends.

2018.06.11

This small game is a 2D action-horror game.

It all happens in a middle of a alien-ish invasion. They transform every human into a zombie like creature. The whole country (maybe the whole world?) is trying to survive. The train system is basically the only transportation system available.

You control a train conductor. You have to guide your train to station after station, performing some missions to save humanity.

It has simple controls, effective story, nice mechanics. You might even run a second time (because it is a quite short adventure) in order to do every possible achievement.

My Grade: 7.5

Metacritic: 7.6

2018.05.31

Peru é um país muito muito muito rico. Já estou com saudades dos lugares e pessoas que conheci. (Fotos minha, com filtros automáticos do pelo Google) #tbt