Suppose you are working on zsh's source code.

At some point in time you might want to try the code you're writing or changing. One way would be to just call the zsh binary ‘Src/zsh’ after compiling the project's code. The problem with that is, that zsh uses a module system to load features on demand, that are not part of the absolute core code of the shell. And it looks for its module libraries somewhere on your system, not however in your zsh source code repository. This is obviously a good thing, because you don't want attackers to be able to just drop a ‘’ file somewhere to get access to your system. ☺

There are two situations, where you can get away with just using ‘Src/zsh’ anyway: You're testing features that work in scripts and don't need to load any modules; or you've got the same zsh version installed on your system, that you're also working on and you don't actually change any of the module code, but just need to load a module to get to your test.

If you need to test code that touches modules, you could install the shell to your system. But that's cumbersome and takes a lot of time. Especially if you need to test lots of different builds, like you do when you use git bisect to chase down a bug.

…and that's what I did today. So I actually wanted to use the binaries I just built from the source. How to do that then? Well, you need to adjust at least ‘$module_path’, which you can't do via a parent process's environment for the security reason I mentioned earlier.

The way I did it was to use ‘$ZDOTDIR’ to provide ‘Src/zsh’ with a testing setup in the ‘.zshenv’ file in that directory, that basically did this:

if ! test -d _modules_; then
    mkdir -p _modules_/zsh || exit 1

cd _modules_/zsh || exit 1
for mod in "${root}"/Src/**/*.so; do
    test -h "${mod:t}" && continue
    ln -s "$mod" "${mod:t}" || exit 1
cd "$root" || exit 1

# Setup the shell's load paths for functions and modules:
fpath=( "${root}/Completion" )
module_path=( "${root}/_modules_" )

If you want to use zsh from its source directory, I've thrown together a small repository that contains the setup I used (well, a slightly more polished version):

Posted Sat 26 Sep 2015 21:56:46 CEST Tags:
ft SYSHH#5

Talking Heads - Speaking in Tongues - This Must be the Place (Naive Melody)

God. This song. ♥

Posted Sun 31 May 2015 23:17:51 CEST Tags:

In other news, this blog turned 10 last saturday (ftblog online!). Kind of missed that date myself. Post frequency is dwindling, but I guess I'll continue annoying you with my boring crap from time to time anyway. Cheers! ☺

Posted Sat 18 Apr 2015 22:24:32 CEST Tags:

So, The Prodigy released another record a few days ago.

In the past, I've been a massive fan of the band, buying everything I could get my hands on: Books, VHS Tapes, every single release in every version I could find, all the albums... Then the band took a bit time off (“The Fat of the Land” was released in 1997) and came back — seven years later — with “Always Outnumbered, Never Outgunned” in 2004. While it's a good release, it was the weakest when compared to the first three records. The next one (“Invaders Must Die” in 2009) was big again. I loved almost all tracks on that one.

And now in 2015 — after another six year waiting period — they release “The Day is my Enemy”. They put out a few things beforehand via their youtube channel (like “Nasty” and “Wild Frontier”); and nothing that I heard clicked immediately.

That's also why I put off buying the album right away. Today I did. And what can I say? Everything on this record works. Even the tracks I knew previously and dismissed work in the context of the album.

The Prodigy's sound doesn't change as much as it used to with the first three albums. But that's not necessarily a bad thing. They are probably converging towards how they are supposed to sound.

Don't get me wrong, this does not redefine which album is The Prodigy's magnum opus (that is and will remain “Music for the Jilted Generation”), but this is a versatile, 14-track, modern dance record that everyone who liked the two predecessors will love.

NP: The Prodigy — The Day is my Enemy — Destroy

Posted Sat 18 Apr 2015 21:33:02 CEST Tags:

I find it odd, that some people don't make the slightest attempt at learning to use a new tool because they know a similar tool and want the new tool to work exactly like the old one.

That's like a carpenter looking at screws after working with nails previously, now refusing to use a screwdriver like screws are supposed to be used and instead just hammer screws into wood without giving it a second though, even complaining when the ill-applied screws don't work as well as the screw manufacturers claimed they would…

I'd love to see more screwdriver builders to tell lazy people to fuck off.

Posted Sat 04 Apr 2015 16:59:36 CEST Tags:
ft U+1F596

Sadly, Leonard Nimoy passed away yesterday.

I wanted to use U+1F596 (🖖: “RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS”) in here. But as it turns out, my system doesn't support displaying that, yet (it's new in Unicode 7). Sadness all around. ☹

Posted Sat 28 Feb 2015 01:03:09 CET Tags:

I'm a bit of a fan of Hewlett-Packard. Mainly for their excellent hand-held calculators and for their equally awesome laboratory equipment, like function generators, oscilloscopes and signal analyzers. And they were known for their quality. In 1999 it was decided to throw away that good name and move all non-computing products to a spin-off company called “Agilent”. And by now, that name basically rings as well as the old HP one.

But guess what, someone with Agilent seems to have run weary of that name as well: I was looking for Agilent's entry level oscilloscopes and couldn't find any with the usual distributors. What came up were scopes by a company called “Keysight”. I was like “Wat. Are those knock-offs!?” - But no. That company is a spin-off off of Agilent, that takes care of the electronic measurement products. Meh.

Posted Sat 25 Oct 2014 12:13:59 CEST Tags:

Yet another Update

So, they are calling it “CommonMark”. Not quite as catchy, but who cares. As long as it's technically sound.


Seems like the “Standard Markdown” effort didn't really look at John Gruber's licencing text, that he used for the original description. It allows you to do just about anything you like, but one of the few restrictions the licence includes is that you cannot use the name “Markdown” or the name of any of the original contributors to endorse or promote derived products. At least not without specific prior written permission. So now Gruber is a wee bit pissed, and understandably so, if you ask me.

Yet, having a specification of a language that is used for input into computer programs, that is not ambiguous sounds like a good thing to have. I don't care about what they will call it (I don't know if the panic move to “Common Markdown” makes any sense, since “Common” is pretty much a synonym to “Standard”), but from a technical point of view it is a move in the right direction. If you cannot find agreement, find another clever name and run with that.

Markdown is great. Usual texts are simple, and you get away with minimal markup languages such as this. If you want to do stuff like control text colour for individual words in a document, you should see a doctor anyway. If you'e a reasonable person, markdown is what you are looking for. This blog (and indeed the rest of my website) is also written using markdown, processed by ikiwiki.

Jeff Atwood just blogged about Standard Markdown, which came to be because the original Markdown description by John Gruber isn't an unambiguous specification. That's where the spec of the Standard Markdown comes into play. Sounds great.

The one concern I had was, whether or not this project had John MacFarlane on board. My concern was unfounded, because John is in. Knee deep, as it would seem: He wrote the specification as well as the standard implementations in C and JavaScript. ☺

Why I am such a fanboy? Well, basically because John is the author of pandoc, the most awesome document processing tool you will ever come across. It can - brace yourself - convert Markdown, reStructuredText, Textile, HTML, DocBook, LaTeX, MediaWiki markup, OPML, Emacs Org-Mode, txt2tags, Microsoft Word docx, EPUB, or Haddock markup to - sure, take a moment to catch your breath - HTML (including HTML5 and shiny things like slideshows using reveal.js and stuff like that), EPUB, FictionBook2, Microsoft Word docx, OpenOffice/LibreOffice ODT, OpenDocument XML, DocBook, GNU TexInfo, Groff man pages, Haddock markup, ICML a markup language used in Adobe InDesign, OPML, LaTeX, ConTeXt, LaTeX Beamer slides, PDF via LaTeX, Markdown, reStructuredText, AsciiDoc, MediaWiki markup, DokuWiki markup, Emacs Org-Mode and Textile. It is positively mind-boggling. The project's website features a diagram, that visualises this paragraph, if you can't believe it…

Write your documents using pandoc's extended markdown, keep them in version control (because markdown is a plain-text format, that's trivial), and generate whatever format you need. Seriously, if you're still using “office” style programs to write your documents with, you can't be helped.

I'll acknowlegde, that sometimes you'll want full control of your document, and sure, use LaTeX in those cases. But the newest pandoc has support for calling filters during the conversion phase, which open the door for almost any extension you can think of. I'll use markdown&pandoc for the next larger document I have to write. I did use pandoc to produce my latest presentation slides: The filters feature of pandoc allowed me to extend pandoc's markdown to target multi-column slides as well as freely positionable images. It produces LaTeX beamer slides in PDF format, which are plain beautiful anyway.

Pandoc has installers for windows and OSX, too. So there's no way you'll get away claiming it's not available for your platform. Your linux installation will probably feature pandoc packages out of the box; if not: Switch to debian already! PDF output needs a LaTeX installation, but there are open-source distributions for all major OSs readily available for installation.

Posted Wed 03 Sep 2014 22:08:06 CEST Tags:

BT Templeton (bipt) has been working (AFAIK in four consecutive GSOCs now) on porting emacs's Elisp engine to GNU Guile. The Guile-folks have been dreaming about this for a while now (see this mail by Andy Wingo from 2010, for example). I'm obviously not an expert, but I was rather sceptical about the chances of success of this endeavour…

Christopher Allan Webber summarises the current state. bipt said on ‘#guile’, that he was successfully performing tasks like reading mail using gnus and using large systems like org-mode on his build of such a Guile-hosted emacs-binary. This is great news indeed. ☺

Posted Mon 18 Aug 2014 16:10:45 CEST Tags:

Today a user on IRC wondered how hard it would be to indicate the current mode of zsh's vi keyboard mode in grml's new prompt-theme.

The prompt theme is designed to not only be configurable, but also to be extensible with custom information. The theme is not the issue with this request. The issue is to get solid information about the current state of zsh's vi-mode, with ordinary keymap changes, signal handling, recognition of minibuffers and override modes...

Since I use vi-mode in my zsh setup, I did all that a while back (CODE: You may want to take a look at the CONFIGURATION section, especially `zle_use_ctrl_d', which you may want to set to "no" if you like to use ESC like you'd expect in vi). Which means that the only question that remains is how to actually perform the integration.

Turns out, that this is rather easy. Suppose you copied the code that's linked from my old blog post to ~/ Let's do the integration in ~/.zshrc.local, which is a file that grml's zshrc loads after all its own code ran. The integration can be done in three lines of code then:

source ~/
grml_theme_add_token vi-mode '%1v' '%K{blue}%F{white}(' ')%f%k '
zstyle ':prompt:grml:left:setup' items vi-mode rc change-root \
                                       user at host path vcs percent

And here's how that looks:

vi-mode integration with grml's new prompt theme

I'm kind of glad, we rewrote our prompt code to make things like this possible, clean and fairly easy. :)

Posted Tue 05 Aug 2014 13:47:03 CEST Tags:

Always. Right? RIGHT!?

Neil Young must have thought something along those lines when he started developing pono.

Audio sampled using 24Bit resolution at 192kHz is indeed more. But is it better? Better for audio playback than, say, 16Bit resolution at 44.1kHz (you know, like on regular compact discs)? You won't trust me anyway, so let me link you to an article by Christopher Montgomery of, who has much more expertise regarding this topic than I will ever have anyway: 24/192 Music Downloads ...and why they make no sense

The short answer is:

Why push back against 24/192? Because it's a solution to a problem that
doesn't exist, a business model based on willful ignorance and scamming

That punchline is actually rather boring compared to the rest of the article's content, since he completely dismantles all the talking points that proponents of 192/24 usually present. If you thought $400 for a pono sounds like a bargain considering those figures, please do read it before you place yourself onto the preorder list. Samplerate and resolution are not the issue.

Posted Sat 10 May 2014 11:06:03 CEST Tags:

Useful font is useful

Posted Fri 11 Apr 2014 11:34:36 CEST Tags: