How to call R from Perl: on inter-process communication


I'm glad the title caught your attention. Why call R from Perl - or have code in language X call code for language Y, for any X and Y, for that matter? Sometimes it's just hard to choose among languages you're fluent in, especially if you're a bit of a polyglot and don't have a clear favourite. Perhaps you value diversity, just like modern companies value diversity in their workforce: different programming languages, just like employees with different backgrounds, offer distinct advantages and strengths that can be drawn from when creating a product.

I happen to have a language I strongly favour, and I consider my programs are already diverse enough, even though they all got written by a single white male. I also managed to have a job in bioinformatics without installing R for quite a while. I am not riding that streak any more because a specific thing I needed to do only exists as an R package, so I learned how to use R from Perl. This merits celebration with a blog post, so I'm gonna tell you how to call R from Perl and also more generally about IPC.

Continue reading How to call R from Perl: on inter-process communication...

How to use fewer variables


Using variables may benefit program readability, but many programmers regard it as a bit of a weak move (source: Yegor Bugayenko- programmer, blogger, and entrepreneur). Giving stuff names is emphasised in beginner tutorials, and I expect many of my programming readers use variables a little bit too much, perhaps not realising it is merely a programming technique. I will explain the drawbacks of this technique, and give some alternatives, so that by eschewing it you might improve your craft further.

Continue reading How to use fewer variables...

Upgrade from object-oriented to functional programming with this weird trick


Picasso was a great man, but fond of exaggeration, so I always take it with a pinch of salt when people say it took him a lifetime to learn to draw like a child. As you might have guessed already, this post will be about me, and how I write Perl, and tracing the influence of my early periods of being sold on Haskell at university, training myself to appear worthy at interviews, and subsequently becomming a maintenance Java programmer.

Continue reading Upgrade from object-oriented to functional programming with this weird trick...

Extra functionality through pipes


Sometimes the programs you are running aren't as fully featured as you need them to be. If it's your program, extend it to do work like you want it, the ad-hoc extensions will make it soon feel like a warm worn-in shoe. If it's not your program, and the missing feature is correctness, just fix your copy, and submit the fix to the author. Otherwise add the extra functionality outside, with an appropriate contraption. Here's a couple from me, based around pipes.

Continue reading Extra functionality through pipes...