• +43 660 1453541
  • contact@germaniumhq.com

Blog

The Best Programming Language

Roughly 10 years ago, there used to be a time when I really believed Java was the answer to almost everything. JSF2 was just appearing, and the component model they had was amazing. GWT was out in full swing, with the plan to conquer the world. EJB3 were the next big thing. Ten years later it is all dust. Sic transit gloria mundi.


Read more

Creating Replacement Shell Scripts in Python II

So in the yesterday's article I ranted on why shell scripting in general, with bash in particular is terrible. But there's a reason why we write shell scripts, namely that we're in the same domain of the commands that we know. Here's how to use the same knowledge in the python scripts:


Read more

Replacing Shell Scripts With Python I

I have a love hate relationship with Bash. On one hand, I have a lot of scripts still running on it. On the other hand, almost all of them were started before I consciously decided that for most things I'll switch to Python. Here are 5 problems that I see with Shell programming:


Read more

More Is Less in Tests

After the article from yesterday where we got to see some code where code duplication actually improved the tests, we'll look at something similar today, but this time in unit tests, and why I'm not a big fan generally speaking of test parametrization.


Read more

When More Is Less

This time we're going to look at a simple example of well written, compact code, and make it larger. And better.


Read more

Assigning a Function on File Type in Vim

Ok, we have now a new function with our own code in vim. We can manually trigger it when opening a buffer. Let's make this function automatically be called whenever opening a file, and fiddle with file types.


Read more

Creating a Command in Vim

I love vim. And one of the reasons that makes it so appealing is customization. One of the coolest things is the ability to create functions. You bind the functions to commands, and you simply call the commands for the execution.


Read more

Documenting Legacy Code

We're almost done. We covered how to build the project, how to navigate around it using grep, ctags and UML, and also how to approach finding out the issue in a structured approach. The last step is to plan for the future, and document our findings.


Read more

What to Do When No Clue: Scientific Testing

Sometimes there's no end in sight. You have the map to navigate around the code, but the sheer complexity of the thing makes finding that one bug evasive. It's time for Scientific Testing.


Read more

Creating Code Navigation Maps With UML

Now that we have ways to build the software when we change it, navigate around code, and fuzzy search through it, let's see how we approach specific problems, and use UML to chart this map.


Read more