Recent Content

Dumping Mendeley for Zotero

posted on 2019-07-15

For several years, my library program of choice was Mendeley, which used to be a fantastic piece of software that perfectly fit my needs. Unfortunately, phenomenally bad management and some very dubious design choices have made it pretty much unacceptable. I've hesitated for a long time, but last week I decided it was time to take the plunge and have now switched to Mendeley's open source competitor, Zotero. Here's my first impression.

more...

Programming tools: paradigms

posted on 2019-07-08

When we talk about “using the right tools” in programming, that applies to a lot of different choices one can make. One is the choice of programming language, which we covered in the last article. Another important “tool set” to be aware of is that of programming paradigms.

more...

Programming tools: languages

posted on 2019-07-01

Programmers love to debate about programming languages. Almost everyone has their favourite, so discussions as to the relative merits of each often degrade into “holy wars”. Although no one will ever find the “perfect programming language” (despite numerous claims to the title), it is nonetheless instructive to compare different languages. After all, not all languages were created equal, and each have their individual strengths and weaknesses. Knowing about these can help you choose just the right language for just the right situation – in short, to use the right tools.

more...

Dealing with Errors

posted on 2019-06-24

The Jargon File defines programming as: “A pastime similar to banging one's head against a wall, but with fewer opportunities for reward.” Every programmer knows the frustration of looking for bugs that just won't be found. In fact, the majority of a software's development cycle is usually devoted not to the original writing, but to the subsequent debugging. Somebody who is good at finding and fixing mistakes therefore not only produces more reliable code, but is also a more efficient developer. So what techniques can we use to find bugs, or, if possible, prevent them occurring in the first place?

more...

The Art of Abstraction

posted on 2019-06-17

“Software's Primary Imperative has to be managing complexity”, says Steve McConnell in his book on software construction. In the first article of this series, I already said that reducing complexity makes software simultaneously more reliable, understandable, and extendable. Now, we are going to take a look at how that is possible.

more...

Challenge Completed

posted on 2019-06-13

Well, it is twelve weeks later. And I am glad to announce, I have successfully completed the Monday Challenge! Twelve articles in twelve weeks, a total of almost twelve thousand written words. Time to look back. Was it like I expected it to be?

more...

Nullboard - Lightweight Kanban

posted on 2019-06-10

After months of trying, my friends and I finally managed to schedule a new pen-and-paper roleplaying session for later today. As game master, that meant a busy last few days for me as I set about preparing a new campaign. Usually, I do my preparations with an actual physical notebook, but for various reasons I decided a digital note app would be better this time around. By a stroke of luck I happened to discover an excellent little tool that I think is worth presenting here: Nullboard.

more...

Understandable Software

posted on 2019-06-03

Having begun our series on software development with a broad look at the basic principles, let us now get down to the nitty-gritty. We said the three key aims of a developer should be software that is reliable, understandable, and extendable. As the second of these is probably the easiest, let us start with that. So how do you write software that is easy to understand?

more...

Principles of Software Development

posted on 2019-05-27

Working at an institute for computational biology, my colleagues and I deal with computer code almost every day. Yet none of us is a trained software developer as such – we are biologists, physicists, and mathematicians who happen to have learnt a bit of programming on the side. Some of us (like myself) got into it as a hobby, most picked it up along the way. So over the past few weeks, I started to ask myself a question: “How can we become better at developing software?” The next question came naturally: “Well, what is good software development?”

more...

Termites - African Engineers

posted on 2019-05-20

I've been around termites all my life – their tall mounds and annoying habit of chewing books were a constant companion of life in Zambia. I always found them moderately interesting: their mounds are impressive, but usually I saw them as little more than a source of food for my perennial favourites, the ants. This week, however, I read a paper that showed me a little bit more about just how cool these little critters actually are.

more...

Unless otherwise credited all material Creative Commons License by Daniel Vedder.
Subscribe with RSS or Atom. Powered by c()λeslaw.