PortuguΓͺsEnglish

Blog

2021.03.14

Project Curva

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.

Update 2021-10-18

The project is called NiwPlan and can be checked on NiwPlan.com.

cyberpunk-2077-1.jpeg
2021.03.10

Cyberpunk 2077

When you read this post you probably already know: Cyberpunk 2077 hype did not paid off. However, I would like to explore some personal insights.

Cyberpunk 2077 6.jpg

Me-Character and My Character

As a Role Playing Game, you are being someone else. A player might spend an whole hour tweaking the characters appearance, hair, weight, eye lashes. Then calmly considering to spent the scarce points each attribute. One is not creating himself/herself, but a different being. Maybe a projection or simply experimenting unique approaches.

Than the game starts.

You barely see yourself in the screen.

Shooters are much easier to do in first person. CDPR said they opted for the first person approach as part of the vision that the player should feel he is actually there. They even removed some features of the game because it was not working well in a first person.

But as I said before, since one spent so much love creating the character, it would be a wiser decision if one would see it more often. A third person would be a better decision. It was more valuable to see the custom V fighting than was seeing Geralt’s.

The result is that I have never really connected to the character that I personally created.

Also, there is a second take on character creation that is very unique to Cyberpunk 2077 universe: augmentations and down-the-line customizations. A game advertize as being open regarding your physical appearance, I was noted by many the lack of visual modification during the game. Not even changing the hair style, present in a much less relevant The Witcher 3, was absent.

Clothing functions as both technical improvements and fashion. The game could embrace the idea the each piece of clothing could have any game element or bonus. It would encourage players to find their own style instead keep mixing weird styles just to get specific bonuses.

Cyberpunk 2077 2.jpg

Bugs and Cars

The game was plagued by technical issues. There are hundreds of videos in Youtube with hilarious situations. CDPR had to reimburse several players and it was removed by Playstation Store days after the release, due the impossible state!

I personally had no crashes but a ton of buggy behaviors. Citizens reactions, random explosions, enemies misbehavior. In some critical emotional moments, a bug can spoil the fun. I finished the game trying to do ALL the achievements. But one was impossible to achieve due a bug in a side mission.

Then cars… The Witcher’s horse, Roach, was a delicious surprise and set the benchmark to address rideable in video games.Just before launch, Geoff Keighley (one of the few people that tasted it at the time) said driving was super satisfying. The cars felt so bad. Driving was a burden. Felt like balloons, weightless. Bikes even worse.

I was hopping to drive like a vagabond, exploring each inch of the city. But instead I was using the tele transportation all the time.

The pace that the fixes were coming were also much desirable. I finished the game in 3 months, but a small number of patches were released back them. CDPR always had a top-in-industry attitude regarding enhancing their games after release, but this time I believe they are subpar.

Cyberpunk 2077 1.jpg

Story

At the very beginning, you have to choose the background story. There are 3 possible starting conditions. And the first act considers this choice important, pointing to it frequently.

Then it becomes irrelevant. The mid game is a generic Ubisoft open world game or GTA. V is in a brink of dying, but the open world nature let her have romantic relationships, racing, and helping other people that, frankly, could wait until you solve your most important issue.

While not very original “there is a dude inside your head”, their take is quite unique e grounded. However, CDPR opted to use other very boring tropes like “I died but I’m too special so I reborn”. No need to put a bullet in V’s head to wake her up in the next scene.

The mid-game is a “ensemble a killer team” theme. It was nice but the team and the final mission is less like Ocean’s Eleven and more The Avengers: group a team of 3 guys and storm into the castle. A good point is the insertion of several recurring characters in side-missions. From love-affairs, super AI or ex-cops, the player start to care about them after some time.

The final orchestrated act was also lacking due a single biggest factor, imho: there are no good villains. A good villain have to be seeing, tasted, and feared often. If you show Adam Smasher only once, 50 hours late you could not care less about him. The other Arasaka family members the same.

Think about great movie and video game villains. They have a considerable amount of screen time so the viewer have the chance to witness his evil intentions. Darth Vader, Joker, Glados, LeChuck, Ganon, Bowser.

A very good aspect of the story is the cultural references and jokes. More than once I was caught laughing out loud with some of them.

Cyberpunk 2077 5.jpg

Conclusion

As one of the first games I have ever pre-ordered, I must say that knew what was coming. If I waited for some reviews first…

Cyberpunk 2077 is a ambitious project and several parts of it show it. However, despite the strong beginning, it becomes a generic open world game with amazing graphics.

I finished the game, and most of the achievements. 100+ hours on it. Yet, I fell disappointed. I event might get back to it in a couple of months or years, with extra content and several enhancements.

Cyberpunk 2077 1.png

My Rating:7β˜…β˜…β˜…β˜…β˜…β˜…β˜…
Metacritic: 86
png-image-1200Β Γ—Β 630-pixels-.png
2020.12.20

Project Management Certification

After months studying, finally I could accomplish an old dream: be a certified project manager. I work with projects since the dawn of time.I create personal and professional projects often. Big and small. For myself, with teams and for the company.

Despite liking dealing with processes, my goal was never to be in a process driven career. In fact, the part I like the most about processes is their implementation or optimization projects!

And I genuinely try to enhance my own abilities, studying, researching and training. I’m a agile advocate at my job long before it was a thing. Now they are all project-fying and agile-ing all major parts of the business processes.

But one thing is to know you are good at something. Another things completely different is to convince someone about it. Here comes the certification program. PMI is de-facto institution regarding project management. I read their main material many many years ago and followed their general guidelines ever since. But the certification itself, nope.

Better later than never. I decided to finally apply for the certification exam. Here’s a motivational tip: first apply for a exam than start to study for it. It’s much more effective, psychologically speaking, to have a fixed deadline to be engaged and motivated. Studying for a “to be defined” date is prone to procrastination.

I bought an online course. The instructor was very clear: each exam has it’s own quirks and style. He will exploit PMI’s style to deliver a laser-focused course with the only goal is to facilitate passing the exam. No philosophical discussions. No discussions at all. Just the pure content. Delivered with the precise method.

It was both effective and efficient. It took me just a week of classes and an extra to review and consolidate the knowledge. PMI requires that one should have not only a previous experience in the field but also a minimum amount of formal education, so the classes could not be shorter even if was possible.

I did the online exam. Man, it was equally scary. Some dude have to check our computer screen, I had to turn on the camera all time. And any movement or sound, I was called upon.

The questions were super generic. It’s the downside of being a generic Project Management certification. It was not about construction or software development. So the online course was right. After a couple of hours, exhausted (I had to do it after the business hour, so I was extra tired), I finished.

Days after, the good news: I did it! One old dream checked! And it’s on my Linkedin, of course!

2020videogamescalendar.jpg
2020.12.09

Media List 2020

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

Finished in 2018-2020 (before pandemic)

Not finished yet (for a reason or another)

Continuous playing

In preparation of the upcoming Cyberpunk 2077!!!

UQ3sCqPgdWz4uDQrMXBBbg.jpeg
2020.12.03

Hugo

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).

Build time.png

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. :)

Best static site generator 2020

Bruno π•„π”Έπ•Šπ•Šπ”Έ