Keep It Simple and Stop Worrying

March 28, 2015

I always had shit ass computers while growing up. I guess my parents couldn’t see the difference through there once a week browsing session, but I constantly had to try and find ways of doing what I had to through that ridiculously low amount of failing RAM. Don’t get me wrong, I learned a lot from having shit ressources. Then during my teens, I bought myself a decent computer, and lost lots of my time gaming and not worrying about software or hardware much. I guess the constant strugle kinda had got me fed up. When I finally started university, I bought myself enough computing power to theorically not have to worry and I started installing prebuilt packages to provide me we the services I thought I needed. Sadly, there was a catch.

Not only was I installing products that were originally designed to support complete teams of people, but I was also spending lots of time configuring those. Meanwhile, I was not necessarily understanding much about the underlying technologies and the solutions I had deployed were often too large for my personnal usage, and/or did not possess the functionnality I truly needed. In the end I was sad, and always trying to find the product that would finally save me and make my environment start to make sense. Because I was spending all my time trying to maintain these products or find better replacements, little of my time was spent doing what I should have, writting code.

Discussing with some friends, I realized I didn’t have to strugle to find prebuilt packages. In fact, I realized I was spending more time overengineering my environment to make it simple that I would have spent to deploy the basic technologies I was overlooking as too complex and long to setup. My spare time lately has been spent relaxing, and discontinuing the use of these complex prepackaged solutions. And surprisingly, with each prepackaged “team/entreprise grade” package I drop, I gain time to work on other things, and flexibility to adapt to changing requiremnents.

Let me explain these last two point. Prepackaged solutions seem nice on paper. Run an installer or spend an afternoon configuring, then you are done. In truth once it’s installed you still have to keep upgrading it, and since the package is probably not included in your distribution of choice, you spend all your time trying to catch up so that the functionnalities you are not even using are up to date and secure. Not only that, but whenever you try to do something, the evident solution is not so evident anymore, because the way the package expects the underlying technologies to work forces you to spend an afternoon modifying obscure configuration files instead of making what should be a 10 minute change.

This is gonna sound harsh, but you know what? FUCK IT. Screw those “simple UI’s” and “turn key packages”. Sounds like they are great when you are dealing with 10+ people teams, but it also always seems they are overkill when you are trying to do something small for personnal use.

Sorry Gitlab, I don’t have 1GB or RAM to throw down the drain for that fancy UI and maybe “indexing” on like 3-10 small projects. Im gonna use bare git repos in my home directory, and complement with Github.

Sorry Redmine, I can’t even get you to manage tasks the way I need… Im gonna see what I can do with Task Warrior instead.

Sorry iRedMail, your community version locks everything down to the point were it’s a nightmare to try to act as a Backup MX for a friend… I’ll just build my own stack instead… Curriously I spent as much time configuring the “Turnkey” package as I did building from the ground up, but at least that mail server works.

Also, lets face it… Most of the time, I’m able to write code in vim (some prefer emacs…) and I don’t need to have a whole IDE installed and properly configured to do that.

So I pretty much reconfigured my whole tech environment over the last couple weeks, but I’ve also managed to find time to code and do other stuff. And that’s awesome.