Book recommendation “Clean Architecture”

Hi all,

This time I’d been fortunate enough to have the book “Clean Architecture” in my hands. Why fortunate, you may ask. Well, I’d say the the book is a must read if you want to improve your skills when it come to building maintainable software.

Programming principles

The author Robert C. Martin (or “Uncle Bob” as he known as in the industry( goes through a set of software architecture principles coined the SOLID principles. I believe that following these principles you will write better software, as you’ll architect and structure it much better. And I try to do I when I’m programming.

I think the book does a good job of explaining these and through practice I believe you should be able to incorporate these whenever you program. Or at least that is my hypothesis πŸ˜‰

Writing maintainable code

The book also goes to some lengths to point out what a good software architect should strive to accomplish, namely making code easy to maintain. If you look at online review there are diverging opinions on how many pages should be spent on this, but what I can say is that from my professional experience I have never seen any piece of code, component or system that over time became harder and harder to maintain, as features where added. So, in my opinion, you always need to be diligent about reducing your technical debt or maintenance overhead if you will.

You can go have a look at the book at Amazon

Problems with Wacom Touch Ring not working

I’ve had a Wacom Cintiq QHD27 for some time now. Awesome tool and way too flashy for my skill level in Photoshop. None the less I occasionally have some fun drawing on it (I actually made the graphics for my games using it).

One thing that has aggravated me from time to time is that the touch ring, on the EK remote I got with it, was not responding in Photoshop. I’d like to be using it for controlling the size of the brush, canvas rotation and such, basically speeding up my work flow, but it was just dead somehow. Trawling my way through various support sites I came across a solution that worked for me; resetting the darn thing. I’m not talking one of those software resets here, no no, that would have been too easy. No, what I had to do was pull off the back and push the reset button under the cover, doing a hard reset. But it fixed the problem in the end πŸ˜€

I got the guide from here in case you need it (thank you, Frank Doorhof for making the guide)

Hope it works for you too πŸ™‚

Developing on a small scale – making a new app yourself

When you’ve gotten THE IDEA for your next app, how do you go about making it happen? How do you plan on developing it? Testing it? Do you make a list of features you want in it or do you just start writing code? And have you thought about how to store and version your code?

Developing apps for me is definitely development on a small scale, since I’m a team of one. Sure, I bounce ideas off people, scour the net for ways to solve coding issues and present the results to others, but the development process is pretty much just me and my code.

Working like this can be both a blessing and a curse, if you’re doing it like me. On one hand choice of tools and process is up to you and decided by you alone, so it’s going to be just like you want it. On the other hand, if you don’t do something that needs doing, no one does it. That said, having a proper set of tools can make it easier to keep track of all the moving parts and make you focus on what’s important, namely your app.

The tools

All of the tools listed below are free of charge if it’s just you or a few people using them. I find they make collaboration easier, should you need it down the road πŸ™‚

Android Studio: If you’re developing in Java or Kotlin, I definitely recommend using Googles Android Studio. The IDE basically runs out of the box and updates are handled through the environment. This tool has sped up my development process quite a bit, compared to my previous experience with Eclipse and other tools. Android Studio gives you emulator, profiler, Git integration, build engine, a good code editor out of the box. So far that has been all I needed and wanted.

Bitbucket: Your code is probably your most important asset, and you want to keep it safe. Store it somewhere you won’t accidentally delete it. There’s a host of source control systems, but none is more known than Git. Personally I use, which integrates nicely with Android Studio. If you don’t know what source control is, I recommend you look into it. I find it giving me the added benefit of always being able to switch to a specific version or branch at any time and not having to spend time on setting it up.

Trello: At my full time job (I know, “Whaaat you can’t live off this ?!?”), we’re using the agile methodology. Thru working this way I learned how user stories and features can encapsulate the work everyone is doing and going to do in a fast and efficient manner. Again I highly recommend you check it out, as I find it gives me a good toolbox for capturing and organizing relevant information, even if I’m just one person. Personally I use Trello, which integrates nicely with, but there’s probably a whole bunch of these tools out there. Never again will I have to store to do lists in emails, on sketchpads etc. and have a billion ways to misplace my notes.

Stack Overflow: I don’t know if this really counts as a tool, but countless times I’ve been looking for a way to resize a button, find an example of how to use a collection or remember the symbol for that XOR operator. I’ve mostly ended up at Stack Overflow. Basically what I’m trying to say is I try not to sit and battle with a problem too long before I look up a solution on the net. Nobody is grading you on how well you know all the answers, but only on how well you application is made. If credit is due to someone who helped you solve a problem, then give it. It doesn’t detract from your ability to make great stuff.

These are the tools I’m currently using, so feel free and give them a try. In the meantime I’ll start working on my next app. I hope to document a little bit about the process for you to see.

Until then Happy New Year to everyone πŸ˜€

(feature image from Good Free Photos)

“Terraforming Mars” – and why I think a board game like this is worth your time

Hello good people!

Recently I acquired a new board game dubbed Terraforming Mars. The game is developed by Jacob Fryxelius and published by Stronghold Games. It has a price tag of around 60 EUR / 45 USD on Amazon. The game has an impressive rating of 8.4 on
The game can be played by 2 to 5 people. The box says a game should take 90 to 120 minutes, but in my experience it’s more like 2 to 3 hours (I’ve played 20+ games so far).

The objective and how the game is played
You and your fellow gamers will be assuming the role of big corporations working to … *queue suspense sound effects* … Terraform Mars *fanfare*. Not that surprising really, is it πŸ˜‰
You start out by having a set production for your corporation, some starting capital and a corporate feat, which may help you throughout the game to a greater or lesser extent.
The games is played in rounds (simulating generations in timespan), where you go through phases of producing resources, buying project options, spending money to built said project or from a set of standard projects. Players take turns performing one or two actions per turn. When everyone is done, the round ends and a new one begins. Each project can have a variety of effects, of which some raises one or more of the three global parameters (oxygen, water and tempetature). When all these parameters reach a set level each, the game ends.
During the course of the game you raise your Terraforming Rating, which ultimately serves as Victory Points. The player with the highest amount of victory points is the winner.
The game is composed of both cards and a board on which you play tiles, thus giving an additional way to interact with other players.
You can find the rules here; Terraforming Mars rules

Why I love it and what I think makes it great
Terraforming Mars has me hooked on a number of things, which is why I’ve played more than 20 games in the course of 4 weeks. First off it has a set of really interesting mechanics. I’ve found myself pondering over which projects and actions are the best, what the return on investment is on each, how I should sequence them and lastly what my opponents are doing. I’ve played 2-player games by far the most. Even here the actions taken by my opponent in these games are an important enough factor, that I could never successfully disregard this.

Another interesting thing is that the resources you produce over time enable you to complete more projects, making you produce even more resources over time. Thus building up resource production is the most important thing in the beginning of the game. But when the game end all these resources are worth nothing in terms of winning the game – only Victory Points is – which brings in a whole new aspects of when should you shift your focus from producing resources, to gaining Victory Points.

The setting of the game is great too. It’s really well executed with regards to mechanics and gives a great ambiance to the game as a whole. I’ve caught myself chuckling a few times, when I read the flavor text on a project card and seen how well the story on it supports what it actually does in terms of gameplay.

Complexity wise the game has a lot to offer. More than once I’ve found myself missing things, so if I had to say something negative it’s got to be that the game is best played when you’re not too tired, as it will affect your enjoyment, as misplays will happen more frequently.

Terraforming Mars does have an element of luck, but I’ve never felt that you couldn’t make skill count too. It balances a fine line between skill and chance, and it does it well.

Ending remarks
I see myself playing this game over and over, and are trying to find pockets of time during my week constantly.
Terraforming Mars has all the good elements that you could stuff in a box and I am happy to toss countless hours into managing my interstellar corporation for generations to come.

Kudos on a job well done πŸ˜€