Tero Hasu

Software Developer


I'm a software creator based in Northern Europe. I like to program not only applications, but also purpose-built extensions for programming languages and editors, making Racket and Emacs my tools of choice. I enjoy exploring new programming language innovations, and until recently, I was on a sabbatical to study programming language theory at the Bergen Language Design Laboratory.


  • Programming Languages
  • Domain-Specific Languages
  • Syntactic Abstraction
  • Code Portability


  • PhD in Programming Languages, 2017

    University of Bergen

  • MSc (Tech) in Computer Science, 1999

    Helsinki University of Technology

Selected Software


A plain text note manager and local search engine for Emacs, with a Deft derived interface, and Xapian based full-text search. Somewhat specialized for notes in the Org format. I rely on this application to keep curated and relevant knowledge at my fingertips.


A generator for static Racket vocabulary dictionaries, to be used for example for Emacs-based symbol completion with Company or Auto-Complete. It is customary in Scheme and Racket to use rather long and specific top-level identifier names, making quick completion quite useful.

More software…

Selected Publications

Tero Hasu and Magne Haveraaen. Errors as data values. In Proceedings of the Norwegian Informatics Conference (NIK), Bergen, Norway, November 2016. [pdf] [abstract]

Tero Hasu and Matthew Flatt. Source-to-source compilation via submodules. In Proceedings of the 9th European Lisp Symposium (ELS 2016), Kraków, Poland, May 2016. [pdf] [abstract]

More publications…

Recent Posts

Fetching Web Pages into NotDeft

Written on

I'm increasingly using NotDeft not only for note taking, but also for capturing information from various sources. To some extent it already acts as a lightweight substitute for the likes of Evernote. As explained in the documentation, Org mode's built-in capture protocol can be used to send snippets of text from a page open in a web browser into one's NotDeft note collection. Sometimes, however, we already have a URL of an interesting page in our clipboard, and we would like to fetch the entire page's textual content into NotDeft with a single command.

Read more…

Transient Directories in NotDeft

Revised on
Created on

My NotDeft note manager has an optional notdeft-path feature to better support transient directories of notes. Also in the standard configuration, the notdeft-directories list may contain directories that do not have to always exist, as any non-existing directories are simply ignored; if and when they appear, they can be included in subsequent searches. Note, however, that the notdeft-directories variable is normally set only once, and if the initializer expression includes wildcards, the variable value may not contain directories that get mounted or copied over later.

Read more…

More posts…


anyxporter api bldl bluetooth build-systems c c++ camera code-generation contacts emacs epresent fun gcce-4 gnupoc harmattan hiit icons ide installation keyword-arguments koog lisp lua macro-systems notdeft org pim platsec presentations programming-languages prototyping publications python qt racket ractionary rascal research ruby s60 scheme sdk sms-exporter sockets software source-to-source-translation symbian vcalendar vim xml


More details…