TECHNOLOGY MATTERS
a bunch of unsorted thoughts about tech, software, etc.

read this site in: English | English

A Contrarian View On Battlefield 6

Battlefield 6 is a good game. A very good game. I would say, BF6 is the embodiment of the concept of a "good" game: small bugs aside, the game draws on its most recent predecessors to build a game that appeases—or at least tries to—to all crowds. It's easy to enumerate those qualities: excellent gun play, good and detailed graphics (albeit a little bland to my taste), nice weapon customization options, maps that are large and detailed, and a good variety of modes. It has the very fun destructible environment of older entries. It has all the vehicles and gadgets of later entries. It brought back the Rush mode first introduced in Bad Company as well, and of course it packs Conquest, the main Battlefield game mode.

And yet, first playing it on the second weekend of Open Beta, I wasn't impressed. In fact, playing it made me miss the old ones, or even it's rival, CoD, more than I believe I should. You see, all elements are there, connected into a cohesive whole, but: this entry adds nothing of significance to the to the series (well, besides that now you can grab fallen buddies and drag them to safety while healing, but this is more of a gimmick and doesn't change gameplay at all).

Continue reading →

Parsing code with Sprache - Part 2

😎 This the second article of a multiple part series on how to parse code with Sprache. You can read the first part here.

In the previous post, we saw how to parse some text (in particular, Java code) using Sprache, a might library for C#. We saw how to use an incremental approach, and how to use unit tests to drive the development with this tool. So far we wrote a parser for Identifier and PackageName (check it here).

Now we are going to move forward a bit faster. Remember that we are targeting the Java/Android source project Google Authenticator and that our final goal is to output a graph of class dependencies for this project. In this article, we're going to try and parse all top-level elements of the current file that we're working on, AuthenticatorActivity.java.

Continue reading →

Read my blog in portuguese or english!

After some effort, I managed to allow my blog to become multilingual. Now all posts are in Portuguese or English. Avid readers (as if I had any!) will have noticed the icons that allow you to select the language:

Buttons with flags
flags are used to select the language

Click on the flag of your preferred language. In the coming weeks I will upload a change to save the user's preferences.

Continue reading →

Parsing code with Sprache - Part 1

😎 This the first article of a multiple part series on how to parse code with Sprache. You can read the second part here.

You probably know that sometimes (many times), a developer's job is much more research or analysis than programming! In the past, there have been many instances where I was on a project where my goal was to migrate or rewrite old software, and during those engagements, I ended up creating tools to help me. Many of those tools were specialized code parsers that would automatically perform the analysis I required or even spit out newer code that I could reuse.

In all those cases, I needed to parse some structured code, and there's a simple way of doing this: by using Sprache, a parsing framework for dotnet. In this article, I'm going to teach you how to do that.

Continue reading →

Happy Halloween! My blog is back!

This is my third or fourth attempt to create a blog, and I do hope that I succeed in keeping it up-to-date. At least now I finally have the time I need to create new posts, and keep it going. Also, I love GitHub pages. It's much nicer to be in a platform that I (kinda) control.

As in my previous attempts, this blog will be focused on software development, but this time I might post some other things that aren't directly related to it. Stay tuned for updates!

Continue reading →