Cogitas Blog:
Musings on developing Android apps,
machine learning and misc tech stuff.

Pick of the week links for programmers

Filed under: programming — December 22, 2012

Gun Deaths vs. Gun Ownership visualisation – this blog article explains how the author used Wikipedia and R to create graphs that could answer the question “is there a correlation between gun ownership and gun deaths”. With R code and source data files.

Data mining conferences – a list of data mining conferences for 2013.

The 4 Most Important Skills for a Software Developer – solving problems, teaching yourself, naming (read the article for this one – this makes sense but isn’t as intuitive as the others) and dealing with people.

ClojureTV – videos by Rick Hickey, creator of Clojure, and a few others.

Amazon announces Amazon Redshift – a massive scale data warehouse in the cloud.

The illustrated guide to a Ph.D. – drawings explaining what doing a Ph. D really entails (so you may decide if this is for you or not).

Graph-tool: Python module – graphs as in “networks”, this Python module is a powerful way to manipulate them.

Research quality data set – a list of good quality public datasets. List curated by Bitly, contains 39 sets at the moment.

Mapping Twitter’s Python and Data Science Communities – a self referential demonstration of Python’s Networkx library and the open source graphing tool, Gephi, by mapping Twitter users who refer to Python in their bio. Neat.

How do programmers read code? – a Ph. D student researches how programmers read code, using eye-tracking technology.

I don’t program in my spare time. Does that make me a bad developer? – very interesting conversation about how many hours should a programmer program, with plenty of info, links etc


  1. I was pleased to see John Sonmez draw attention to cooking up good names for identifiers having thought for years it’s undervalued. Once a bit of code has settled down and is working I’ll often spend time checking if the identifiers can be improved over what first came to mind, especially as the code could have altered since then. Sometimes it can take quite a while, bit like getting stumped on a crossword clue. I find it can help if the words used as a basis for larger-scoped identifiers are slightly out of the ordinary as it seems to make them more memorable and distinctive in larger code-bases. This might be similar to the memorisation advice to exaggerate an item, e.g. a tin of beans becomes tin of Mexican jumping beans on a trampoline.

    Kernighan and Pike’s advice is good. Have the length of the identifier be in proportion to its scope and importance, e.g. a single character used for and central to a few lines is fine. (I’ve seen too many “for (the_index = 0; the_index < …; the_index)".) Try to avoid similar identifiers so one isn't mistakenly used for the other.

    Comment by Ralph Corderoy — December 23, 2012 @ 4:25 pm

  2. “Kernighan and Pike’s advice is good. Have the length of the identifier be in proportion to its scope and importance, e.g. a single character used for and central to a few lines is fine.” –> never heard this advice before but sounds very sensible indeed.

    Comment by Nat — December 23, 2012 @ 5:43 pm

  3. I went back and checked their _The Practice of Programming_,
    The first chapter is _Style_ and its first section is _Names_ so they clearly consider it important. :-)
    “…clarity is often achieved through brevity”.

    Comment by Ralph Corderoy — December 30, 2012 @ 3:09 pm

RSS feed for comments on this post. TrackBack URL

Leave a comment