PortuguΓͺsEnglish

Blog

Books From 2022 (So Far)
2022.07.08

Books From 2022 (So Far)

Every year I try to compile a list of games, books and movies I experienced. Let’s go.

I continue to read (listen in fact) almost every day for the past years. It’s in my daily routine when I walk the dogs. It’s a very different proposition from laying down and dedicate some time to read them. I have a urge of a secondary task when I am performing a no-brainier routine, just as.. walking the dogs. Otherwise, I just feel wasting my time my just walking and no thinking.

This is the list of this year’s books that I ingested. These lists are -definitively- not comprehensive ones. Since I’m not updating my GoodReads personal records nor writing about them in this blog, they are just the ones I remembered. I may edit this post if I remember other items.

  1. Piranesi (Susanna Clarke) (9β˜…β˜…β˜…β˜…β˜…β˜…β˜…β˜…β˜… ): Piranesi lives in a fantastic place. He forgets a lot, but keep detailed notes. A great mystery.
  2. The Well of Ascension
    The Well of Ascension (Mistborn #2)
    (Brandon Sanderson) (8β˜…β˜…β˜…β˜…β˜…β˜…β˜…β˜… )
    : just after the events of the first book, the protagonists now have to maintain the power they acquired. Fascinating.
  3. Steal Like an Artist
    Steal Like an Artist: 10 Things Nobody Told You About Being Creative
    (Austin Kleon) (8β˜…β˜…β˜…β˜…β˜…β˜…β˜…β˜… )
    : great super-short book about creative process. He incentives people to leap forward in creative work disregarding self judgment. Get inspired and try to copy work of other in order to practice and find one own voice.
  4. Keep Going
    Keep Going: 10 Ways to Stay Creative in Good Times and Bad
    (Austin Kleon) (8β˜…β˜…β˜…β˜…β˜…β˜…β˜…β˜… )
    : another small but very motivational work from Austin Kleon. Do not stop creating. Do small iterative works until it’s done.
  5. Show Your Work!
    Show Your Work!: 10 Ways to Share Your Creativity and Get Discovered
    (Austin Kleon) (8β˜…β˜…β˜…β˜…β˜…β˜…β˜…β˜… )
    : another small piece of Austin. Create a blog, Twitter, Instagram, Tiktok account and show people what you being working on. Even hobbies stuff, like sketches. Eventually it could become your masterpiece.
  6. Parable of the Talents (Octavia E. Butler) (8β˜…β˜…β˜…β˜…β˜…β˜…β˜…β˜… ): is the sequel of the excelent Parable of the Sower (Octavia E. Butler) (9β˜…β˜…β˜…β˜…β˜…β˜…β˜…β˜…β˜… ), telling about the protagonist is her daughter.
  7. The President Is Missing (James Patterson, Bill Clinton) (7β˜…β˜…β˜…β˜…β˜…β˜…β˜… ): modern cyber terrorism thriller. Very beliable. Tips and ckecks done by no other than Bill Clinton!
  8. The Power of Habit
    The Power of Habit: Why We Do What We Do in Life and Business
    (Charles Duhigg) (7β˜…β˜…β˜…β˜…β˜…β˜…β˜… )
    : a modern classic self-helping book. It starts preaching the power of understanding and controlling habits. The it exemplify, chapter after chapter, the different facts of habits interfering in our decision making. Very good.
  9. Different
    Different: Escaping the Competitive Herd
    (Youngme Moon) (7β˜…β˜…β˜…β˜…β˜…β˜…β˜… )
    : essay about competitive advantage of being different in the market. Curiously enough, the second half of the book she acknowledge that being different might not be important depending on the situation and market. Good book.
  10. Communication Skills Training
    Communication Skills Training: How to Talk to Anyone, Connect Effortlessly, Develop Charisma, and Become a People Person
    (James W. Williams) (7β˜…β˜…β˜…β˜…β˜…β˜…β˜… )
    : comprehensive discussion about communication skills. Nothing fantastic. But very good.
  11. Justice
    Justice: What's the Right Thing to Do?
    (Michael J. Sandel) (7β˜…β˜…β˜…β˜…β˜…β˜…β˜… )
    : several philosophical aspects, situations and approaches of what is justice. It does not, however, present definitive answers about anything.
  12. The 4-Hour Body
    The 4-Hour Body: An Uncommon Guide to Rapid Fat-Loss, Incredible Sex, and Becoming Superhuman
    (Timothy Ferriss) (5β˜…β˜…β˜…β˜…β˜… )
    : several tips about proper workout, diet and routines to get the body you want.
  13. The 10x Rule
    The 10x Rule: The Only Difference Between Success and Failure
    (Grant Cardone) (4β˜…β˜…β˜…β˜… )
    : sales people kinda talk. Super aggressive, alpha behavior about using all your power and willing to achieve goals and success. I tried to focus the core messages and occasional motivation in his words, but it’s hard to not get pissed with the alpha male dominant attitude.
  14. Think Sex and Grow Rich
    Think Sex and Grow Rich: How to use the power of your sex drive to succeed in business
    (Marcus El) (4β˜…β˜…β˜…β˜… )
    : it tries to sell the idea that we are driven by sex and we should channel this constant desire towards business goals. It starts fun, then became very tedious.

From the second part of 2021 that was not in the mid 2021 list

  1. Dune (Frank Herbert) (8β˜…β˜…β˜…β˜…β˜…β˜…β˜…β˜… ): read in 3 nights in order to watch the movie. Loved it.

For more books, you can check my online read list on GoodReads.

edited in 2022-07-14 because I forgot some books. In fact, I believe there are even more.

Multilanguage Site
2022.03.27

Multilanguage Site

brunomassa.com has been always an international site. Almost all posts were written in English. But now that I will venture in the politics (more about this in a later post), it’s worth to separate Brazilian Portuguese contents apart. Mixing posts about programming, gaming and movies will just confuse followers and voters.

Instead removing non-related contents, I decided to just split languages. In Brazilian Portuguese edition will show up more posts about Brazilian scene. Curiously, most of old posts written in pt-br were already about politics or football, so they are already fit for the job!

I do not know how to create a hybrid model using Hugo, with most language-independent content intertwined. If I find, I will enable it in the future. It will be specially useful for hot-pages, those pages that serve as a entry for promotions and special situations. It would not be good to create a hot-page for brunomassa.com/pt-br/hot-page, because it would defeat it’s purpose of easy to remember and share. To help even further, I’ve just bought the brmassa.com domain, aligning with other social media usernames.

So, I’m going to start to work towards generating more content about politics and Brazilian context. This week I plan to make the now-not-much-a-surprise announcement.

This very post is a multi-language. Click in the small flags to switch.

Netlify CMS
2022.03.19

Netlify CMS

I do maintain, for almost 10 years now, a personal journal. A diary. It’s a self psychotherapy. It’s a way to express my thoughts and feelings.

I originally used Google Docs. I created dozens and dozens of files, one for each day. Eventually, I realized that Google was not supposed to be trusted with confidential and personal information. Their spiders crawl and index everything. These thoughts may be still there, even after I delete all the files. Who knows.

Then I migrated to a secondary solution: Wordpress. I hosted a blog and used a add-on to lock it up, allowing just me to see. It’s really good for blogging, with a lot of tools. I designed myself some extra add-ons to manage some aspects of the journal, like a word count and a title generator (based on the post date).

However, maintaining a up-to-date Wordpress installation is critical. Due it’s popularity, and broad usage for e-commerce, Wordpress is a target for many many hackers. I started to think that I could let hacked and let all my stuff exposed. So I decided to export all posts and move once again.

I tried to only maintain it offline, in my computer. It’s, for sure, the most secure way. Anything that is in the internet, even if it’s secured, could be hacked. But sometimes I want to write while away from home. In a trip, for instance.

I looked for a solution that was hosted online, secure (bonus if it was encrypted), and versatile (super bonus if it was open source). I tried some days using SimpleNote then Notion. Notion is very nice and I was using not only to write my journal, but also I started to use it to track some daily routines, like checking weight, sleep time, amount of water that I’ve consumed.

But again I was not very confident about security. So, I’ve exported everything and decided to create host it only in my computer. This time, with a caveat: I was liking the usage of Hugo static site generator, so I designed a blog front end and only enable it locally. And use git to track changes and host at Gitlab. If eventually I’m not in home and want to write, I could find an app to connect to the repository and write. Months passed but I’ve never found a mobile app. So I was locked to just write locally or access the repository using VSCode or whatever.

Finally, the Main Topic

Other day I decided to check Netlify CMS. Created by Netlify hosting service, it tries to create a dynamic admin front end to manage static websites. The result will still be very much static, but the admin section is a single page with a JavaScript that will do everything. It will communicate with a online git repository and commit any new post. The authentication is done thru the git service, Gitlab in my case. It could be Github or any other git service. If the user do not have access to the repository, the admin page will be blank. It reads the source in real time.

Besides that, I could also host the final journal online using Gitlab pages, but settings that only visible to maintainers. The same authentication would be required to see both front end and admin pages. Nice solution.

Netlify CMS is VERY simple. I can only imagine how complex is under the hook, but the final experience for users are simplistic. However, it does the job: I can now access and write my journals from anywhere, including the browser in my phone.

The system relies in a monolithic configuration file that is hosted side by side the content in the git repository. Traversing all the posts from a remote git repository is very slow and not efficient. I cannot imagine dealing with a more complex team structure using it at the same time.

A nice feature is the draft mode: it creates automatically a fork with the draft content. Only when the user click “Release”, it merges the content into the main branch and publish. Netlify CMS does not require Netlify itself, but they are nicely integrated if you decided to use it.

After the successful first experience with my diary, I implemented in my blog. In fact, this very post was written using this pseudo-CMS!

Godot Jam Review
2022.02.10

Godot Jam Review

At the beginning of the year I posted about the retrial of Godot, the most popular free and open source game engine around.

I’ve posted some pros and cons at the time. I then decided to enter into a JAM to motivate myself to try to actually use it for a real complete project. Even it being a jam-like game.

Now it’s time to do a review the whole process.

TLDR: I failed to complete the game. I tried to created a pipeline to build a nightly version for the latest version, with C# support. It is partially running ok.

Bootstrapping

The Jam theme was ocean. Bonus points for those that:

  1. all sounds in-game are made with your mouth(s)
  2. include a fishing mini-game
  3. include your favorite quote or pun in game

So I started. As previously said, I’ve planned to implement a old game of mine as the main game. The advantage was that I knew what was needed and the general need. Another plus was the fact that the game was abstract, so I could save a lot of resources and time on the presentation. And by doing the sound effects with the mouth, I could neglect this front until the end.

For the mini game, I looked for a small board game that I could easily implement in the digital form. After some research, I settled with Leaky Boat, a fast paced pen-and-paper game with dice.

So I started to code. But the problems with the C# integration was getting in my nerves. Godot editor crashed more than 30 times in the very first night of coding. It was not blocking the path, but it was making it very very difficult.

New Version from Scratch

As a potential solution, I checked if the undergoing development of Godot 4 (I was using the “stable” version of Godot 3.5) had any nightly build available. I’ve found a guy that was creating theses nightly builds! But only the original non-C# version. The repository was open so I checked if anything was possible to salvage. Not much.

So, as a detour, I decided to build a pipeline on Gitlab that would compile the source code and build it. Eventually I would schedule it to run every night. However, the process of creating a build pipeline online is very tedious and laborious: on every change, I had to run in online. In the case of Godot, trigger the code compilation to eventually discover that 30 min the build start, it failed due some dependency on the build stack was not fun. It took me a whole day spending my personal CPU quota doing this.

So, as a second detour, I decided to host a local Gitlab instance in my computer. It would allow me to develop the pipeline itself. Once ok, I would migrate back to the online service. It took me 2 days to set this. I first decided to go with local Kubernetes, but it was getting too complicated. Then I migrated to a solution that I am more familiar with: Docker-compose inside a virtual machine. I created inside Virtualbox (instead KVM) because I planned to reuse it when I decided to use Windows.

Downloading and building several docker images takes a lot of space! I had to resize the VMs to a much bigger size than originally planned to accommodate the dozen images created/downloaded.

The plan was to create an helper image with all the tools needed to compile the code with or without C#, host/register inside Gitlab itself and reuse in the main pipeline. This step was working fine, but the actual build was failing time after time.

To check if the steps were right, I decided to compile inside my own machine. I did not wanted this originally to not pollute my pc. But worked. Since I “wasted” several days in this detour, I decided to use this local compilation into my project again.

New Version, Old Problems

Godot 4 renamed several classes. Also, it changed several small things internally and it took me couple of ours migrating to the new environment. Good thing is that I did not have much to convert. Done. And the game was working the same as before.

Now it was time to continue the development. But the problems continue the same way: the editor was crashing time after time. I managed to make both the game and the mini game functional, but with several restrictions. The pace was slow, because I had to investigate the way of doing things all the time. And the documentation was definitively not comprehensive for C# users.

After 5 days, I gave up. :( I could theoretically finish the game in a certain state, but I decided to focus my attention to other projects instead. I might try to go with this engine later in the future, but for now, I will return to Unity until I finish one of my projects.

A couple of days after the end of the jam, Godot 4 alpha 1 was released. I still think that, if the devs do not provide a nightly version by themselves, my project has some space.


Despite the failure, I’ve learned a lot about Godot, Gitlab and Kubernetes. Specially the later two. I will use it in the future for sure, so I do not feel the pressure of failure.

All the code, even incomplete, are open source in my Gitlab profile.

Also, they are organizing a Jam every month. I can reuse all to the new jam, for certain.

Star Wars: Jedi: Fallen Order
2022.01.31

Star Wars: Jedi: Fallen Order

Star Wars: Jedi: Fallen Order was mouth-full sub-titled titled title. I don’t particularly like this cascading naming convention, but it’s rather common in big franchises. Harry Potter, Jurassic Park, PokΓ©mon all suffer from.

So, EA publishing another Star Wars game. The default expectation is TRASH game loop with micro transactions and paid loot. Battlefront 2 and FIFA will not let me lie…

But this one was… really good!

I got it “for free” in Amazon Prime deal. My original intention was to get both “free” shipping and streaming service for a fixed and low monthly fee. But they do give some video games for free too. And they are eventually good games. After activation in the yet-another-game-launcher Origin launcher, I decided to give it a try.

TLDR: it has all the mediocre elements of recent games. But visuals and gameplay hooked me in. I liked it very much.

How to parry in star wars jedi fallen order feature.jpg

Characters

The main protagonist is bland. Another white impetuous generic dude. The amnesia trope was also employed here. The guy, once fully skilled, now have to relearn everything.

The companions, however, are much more varied. They never are very relevant to the plot, nor we participate in their own journeys, but they add a great flavor to the story. Particularly the pilot Greez: funny, warm hearted but scared little creature. And, of course, your droid companion. The villains are good. Some visually memorable like the Ninth Sister. Some are, like Malicos, from those type that appears, brags and dies. Next.

The general assortment of goons are the stars of the show. From low rank troopers, big machines, monsters and fallen Jedis, the list is varied throughout the whole game. They provoke fear and anxiety and relaxation. They generally do not talk or express any particular personality, but all portrait a very specific role.

The appearance of iconic characters is definitively a high point to mention. But not spoilers here.

Fallen order dathomir.jpg

Visuals

No much to add beyond you can see in screenshots and trailers. The game is gorgeous. EA at least have to praised in this regard: despite being bad games, all recent SW games are visually stunning. Squadrons, another Amazon free game that I’m still playing, is also amazing.

Gameplay

The main core loop is great. In the Metrovania style, maps are presented but inaccessible until the player acquire some special ability. It implies that, when acquired, the player must revisit the same areas over and over again. There is a kind of fast travel mechanism, but the travel points are sparse and will still require some time traversing.

The combat is challenging. Being a Jedi presupposes being god-like fighter. The game gives the player enough abilities to make one feel powerful but not overpowered. Even on late levels it’s possible to lose health fighting goons. Health that is important in order to face bosses and harder enemies.

Boss encounter do not change the general gameplay substantially, which is a plus. You fight using the same muscle memory developed until it. There are always the annoying pre-cutscene that will be played over and over if you die a lot on these fights.

Visiting 5 different planets gives the scenery a great variation, even to being particular different regarding the traversal challenges. Ice planet, fire planet, vegetation planet, futurist planet/installation, underground… And all are beautiful to look at.

Star wars jedi fallen order review 9.jpg

Final

I got it for free, but I would pay for it if necessary. The game is fun, front and foremost. The story is a bit lacking, the protagonist is definitively lacking but when I finished, I even tried to complete some extra objectives to extend the experience.

My Rating:8β˜…β˜…β˜…β˜…β˜…β˜…β˜…β˜…
Metacritic: 81
Bruno π•„π”Έπ•Šπ•Šπ”Έ