e · l · n

Until everything is migrated, do also have a look at the old tech blog.

Compiling RDFHDT C++ tools on UPPMAX (RHEL/CentOS 7)
Sep 13, 2017: A little background RDFHDT is an exciting new data format for Semantic Web data in the RDF format. RDF has generally been plagued by extremely verbose textual data formats that have made it impractical for really large data sets. RDFHDT is here to change that with a compact binary format, which does also include an ...
Read more »
New paper on RDFIO for interoperable biomedical data management in Semantic MediaWiki
Sep 11, 2017: As my collaborator and M.Sc. supervisor Egon Willighagen already blogged, we just released a paper titled: "RDFIO: extending Semantic MediaWiki for interoperable biomedical data management", with uses cases from Egon and Pekka Kohonen, coding help from Ali King and project supervision from Denny Vrandečić, Roland Gra ...
Read more »
Notes on launching kubernetes jobs from the Go API
Feb 15, 2017: This post is also published on medium My current work at pharmb.io entails adding kubernetes support to my light-weight Go-based scientific workflow engine, scipipe (kubernetes, or k8s for short, is Google’s open source project for orchestrating container based compute clusters), which should take scipipe from a s ...
Read more »
SMWCon Fall 2016 - My talk on large RDF imports
Oct 7, 2016: I was invited to give a talk at Semantic MediaWiki (SMW) conference (SMWCon) in Frankfurt last week, on our work on enabling import of RDF datasets into SMW. I have presented at SMWCon before as well (2011: blog, slides, video, 2013: slides), so it was nice to re-connect with some old friends, and to get up to date abo ...
Read more »
Tutorial: Luigi for Scientific Workflows
Jun 21, 2016: This is a Luigi tutorial I held at the e-Infrastructures for Massively parallel sequencing workshop (Video archive) at SciLifeLab Uppsala in January 2015, moved here for future reference. What is Luigi? Luigi is a batch workflow system written in Python and developed by Erik Bernhardson and others at Spotify, ...
Read more »
Combining the best of Go, D and Rust?
Jun 11, 2016: Don't take this post too serious, but I can't help entertaining the thought. I have for years been looking for a replacement for Python and Java for developments of various data processing tools in bioinformatics / cheminformatics, which happens to be my field of study. That is, something more performant with better ...
Read more »
Time-boxing and a unified trello board = productivity
Feb 26, 2016: Figure: Sketchy screenshot of how my current board looks. Notice especially the "Now" stack, marked in yellow, where you are only allowed to put one single card. I used to have a very hard time getting an overview of my current work, and prioritizing and concentrating on any single task for too long. I always fe ...
Read more »
The unexpected convenience of JSON on the commandline
Dec 8, 2015: I was working with a migration from drupal to processwire CMS:es, where I wanted to be able to pipe data, including the body field with HTML formatting and all, through multiple processing steps in a flexible manner. I'd start with an extraction SQL query, through a few components to replace and massage the data, and f ...
Read more »
Wanted: Dynamic workflow scheduling
Oct 26, 2015: Photo credits: Matthew Smith / Unsplash One thing became even more clear to me today after brewing in my mind for some time: Dynamic scheduling in scientific workflow tools is important. What I mean is that new tasks should be scheduleable during the execution of a workflow not just during its scheduling phase. Wh ...
Read more »
How to be productive in vim in 30 min
Sep 15, 2015: I had heard a lot of people say vim is hard, very hard. They said it is good, and you will benefit from using it, but that it will take a great investment to switch to using it. While I have came to understand that they are right in that there is a lot of things to invest in to get really great at using vim, that wi ...
Read more »
How to compile tmux 2.0 on RHEL6 / SL6 to get zoomable panes
Aug 20, 2015: I needed to do this, to get the "zoomable", or "maximizable" panes feature of tmux 1.8+ on UPPMAX, which has only tmux 2.6, so here follows the steps I took: lang-bash cd ~/src # Download and unpack libevent (needed by tmux) wget https://sourceforge.net/projects/levent/files/libevent/libevent-2.0/libevent-2.0.22-stab ...
Read more »
How to compile vim for use with pyenv and vim-pyenv
Aug 20, 2015: I use pyenv for managing custom python installations on the UPPMAX HPC cluster, and since I use vim with jedi-vim for auto-completion in python, I tried to get vim-pyenv to work. It turned out that the system version of VIM on UPPMAX was outdated though (7.2 rather than the required 7.3+, or 7.4 as is the current vers ...
Read more »
How I would like to write Go programs
Jul 18, 2015: Note I: See also this very interesting discussion on Google+.Note II: ... and also this super-interesting discussion on golang-nuts mailing list (See especially the example and mini-FBP-framework suggested by Egon Elbre)Note III: For clarity, I should mention that I'm fully aware of Vladimir Sibiroff's great GoFlow l ...
Read more »
Terminator as a middle-way between floating and tiling window managers
Jul 17, 2015: I have tried hard to improve my linux desktop productivity by learning to do as much as possible using keyboard shortcuts, aliases for terminal commands etc etc (I even produced an online course on linux commandline productivity). In this spirit, I naturally tried out a so called tiling window manager (aka tiling wm). ...
Read more »
FBP inspired data flow syntax: The missing piece for the success of functional programming?
Jul 16, 2015: Often when I suggest people have a look at Flow-based Programming (FBP) or Data Flow for one reason or another, people are often put off by the strong connection between these concepts and graphical programming. That is, the idea that programs will be easier to understand if expressed and developed in a visual ...
Read more »
A few thoughts on organizing computational (biology) projects
Jun 23, 2015: I read this excellent article with practical recommendations on how to organize a computational project, in terms of directory structure. Directory structure matters The importance of a good directory structure seems to often be overlooked in teaching about computational biology, but can be the difference between a ...
Read more »
Flow-based programming and Erlang style message passing - A Biology-inspired idea of how they fit together
Jun 13, 2015: I think Erlang/Elixir fits great as control plane or service-to-service messaging layer for distributing services built with flow-based programming Just back from a one day visit to Erlang User Conference. I find the Erlang virtual machine fascinating. And with the new Elixir language built on top of it to fix some ...
Read more »
A cheatsheet for the iRODS rule language
Jun 11, 2015: iRODS, the "integrated rule oriented data system" is a super cool system for managing datasets consisting of files, from smallish ones, to really large ones counted in petabytes, and possibly spanning multiple continents. There's a lot to be said about iRODS (up for another blog post) but the one most interesting feat ...
Read more »
Workflow tool makers: Allow defining data flow, not just task dependencies
Jun 10, 2015: Upsurge in workflow tools There seem to be a little upsurge in light-weight - often python-based - workflow tools for data pipelines in the last couple of years: Spotify's Luigi, OpenStack's Mistral, Pinterest's Pinball, and recently AirBnb's Airflow, to name a few. These are all interesting tools, and it is an intere ...
Read more »
Patterns for composable concurrent pipelines in Go
Jun 1, 2015: I realize I didn't have a link to my blog on Gopher Academy, on patterns for compoasable concurrent pipelines in Go(lang), so here it goes: blog.gopheracademy.com/composable-pipelines-pattern ...
Read more »
The role of simplicity in testing and automation
Mar 23, 2015: Disclaimer: Don't take this too seriously ... this is "thinking-in-progress" :) It just struck me the other minute, how simplicity is the key theme behind two very important areas in software development, that I've been dabbling with quite a bit recently: Testing, and automation. Have you thought about how testing, i ...
Read more »
The problem with make for scientific workflows
Mar 14, 2015: The workflow problem solved once and for all in 1979? As soon as the topic of scientific workflows is brought up, there are always a few make fans fervently insisting that the problem of workflows is solved once and for all with GNU make, written first in the 70's :) Personally I haven't been so sure. On the ...
Read more »
Dynamic Navigation for Higher Performance
Mar 11, 2015: Improving performance in Delphi Bold MDA applications by replacing navigation code with derived links in the model Guest Post on Model Driven Architecture in Delphi and Bold, by Rolf Lampa Modeling class structures takes some thinking, and when done the thinking and the drawing and after that starting up using th ...
Read more »
NGS Bioinformatics Course Day 3: New Luigi helper tool, "real-world" NGS pipelines
Mar 3, 2015: It turned out I didn't have the time and strength to blog every day at the NGS Bioinformatics Intro course, so here comes a wrap up with some random notes and tidbits from the last days, including any concluding remarks! These days we started working on a more realistic NGS pipeline, on analysing re-sequencing s ...
Read more »
Random links from the Hadoop NGS Workshop
Feb 19, 2015: Some random links from the Hadoop for Next-Gen Sequencing workshop held at KTH in Kista, Stockholm in February 2015 UPDATE: Slides and Videos now available! Spark notebook Scala notebook ADAM By Big Data Genomics Tweet by Frank Nothaft on common workflow def Part of Global Alliance for ... Another link is ...
Read more »
Links: Our experiences using Spotify's Luigi for Bioinformatics Workflows
Feb 12, 2015: Fig 1: A screenshot of Luigi's web UI, of a real-world (although rather simple) workflow implemented in Luigi: Update May 5, 2016: Most of the below material is more or less outdated. Our latest work has resulted in the SciLuigi helper library, which we have used in production and will be focus of further developmen ...
Read more »
NGS Bioinformatics Intro Course Day 2
Feb 10, 2015: Today was the second day of the introductory course in NGS bioinformatics that I'm taking as part of my PhD studies. For me it started with a substantial oversleep, probably due to a combination of an annoying cold and the ~2 hour commute from south Stockholm to Uppsala and BMC. Thus I missed some really interesting ...
Read more »
Taking a one week introductory course in Bioinformatics for NGS data
Feb 9, 2015: This week, as part of my PhD studies in Pharmaceutical Bioinformatics, I will be taking the course "Introduction to Bioinformatics using NGS data" at Science for Life Laboratory here in Sweden. I will try to blog here a little every day about what I learned. Right now I'm sitting on the train and trying to get my hea ...
Read more »
NGS Bioinformatics Intro Course Day 1
Feb 9, 2015: Just finished day 1 of the introductory course on Bioinformatics for Next generation sequencing data at Scilifelab Uppsala. Attaching a photo from one of the hands-on tutorial sessions, with the tutorial leaders, standing to the right. Today's content was mostly introductions to the linux commandline in general, and ...
Read more »
RDFIO VM
Jan 13, 2015: Update Sep 7, 2017: New Virtual Machine A new virtual machine was just created, with the latest RDFIO 3.0.2, installed on MediaWiki 1.29 and Semantic MediaWiki 2.5. Download it from figshare here (DOI:10.6084/m9.figshare.5383966) The new VM is based on the new RDFIO vagrant box (automatic script to set up vi ...
Read more »
The smallest pipeable go program
Dec 18, 2014: Edit: My original suggested way further below in the post is no way the "smallest pipeable" program, instead see this example (Credits: Axel Wagner): lang-go package main import ( "io" "os" ) func main() { io.Copy(os.Stdout, os.Stdin) } ... or (credits: Roger Peppe): lang-go pack ...
Read more »
First blog entry
Sep 3, 2009: My first blog entry here! Congrats to me! =) ...
Read more »