The previously commercial Scheme implementation (for more than 30 years) known as Chez Scheme from Cadence Research Systems (which was aquired by Cisco in 2012) was released as Open Source software using the Apache Licence 2.0.

This is a pretty cool move by R. Kent Dybvig and Cisco making this high quality implementation available to the general public. Chez has, among other things, support for compiling Scheme sources to native machine code. Something that my go-to Scheme GNU Guile doesn't feature (although there are long term plans into that direction, as far as I know).

In case you're interested:

Posted Sun 01 May 2016 00:37:40 CEST Tags:

Der OpenSourcePress Verlag hat scheinbar die Ohren angelegt.

In diesem Verlag ist das deutsche Buch zu Git erschienen. Die Verlagsrechte sind nun wohl an die Autoren zurück gegangen und die haben sich entschieden ihren kompletten Krempel unter CC-NC-SA Lizenz zu veröffentlichen. QuellenHTML Version des Buchs

Posted Sun 03 Jan 2016 12:24:38 CET Tags:

As it turns out “Christmas” is really this Christmas. I'm talking about Perl 6 of course.

Perl was the third programming language I learned (tied with C, which I started out with around the same time) and the first language I was comfortable using (before I was using Basic and Pascal, both of which I found rather lacking).

Perl is not a perfect language, not by a long shot — although, most of the criticism (especially the harsh ones) I hear comes from people who never really read or wrote any non-trivial Perl code. But since people on the internet said so, it's reasonable to blabber along. But since the default language behaviour (no "use strict" and no "use English") allows and invites — how do I put this — interesting code, even fans of the language cannot deny that. I have written some aweful stuff myself. I wouldn't want to work on my old programs. Not even for lots of money. Nobody is forced to write ugly ass code in Perl, though. And there are some beautiful examples out there.

However, this blog post is not about the Perl of old. No sir. This is about a language, that a number of smart people started to design in 2000: Perl 6 — A new incarnation of the Perl language:

For the first time, there would be a specification of the language. For the first time it would be clear how to parse Perl (with Perl5 the saying goes "Only Perl can parse Perl. And the tokenizer is black magic."). Perl6 is its own language in the tradition of previous Perls, but much more consistent and with less obscure defaults. “More Awesome. Less Crazy.” if you will.

Perl6 was also thought of as vaporware, as in "Nice idea, that is never going to happen". With respect to its release date, the designers used to say "We'll release on Christmas. We just don't know which Christmas it is going to be."

And like I said above, as it turns out, it's this Christmas. 15 years of development has not been four naught. Just browse Rosetta Code for some Perl6 examples. You'll notice the heavy use of operators in Perl6, of which I'm sure the askell fans will be fond of (Haskell is one Perl6's major influences anyway); also with Unicode characters like the MD5 implementation on Rosetta Code shows. You might also like how Perl 6 handles parallelism, asynchrony and concurrency

Don't give in to prejudices: Take a look at the examples on the Perl 6 homepage or Rosetta Code. Browse the Advent Calendars. Some of the features are amazing and if the community can grow into a decent size, so that the number of libraries grow into a useful lot, Perl 6 could be an amazing world to work in.

Posted Sat 26 Dec 2015 12:51:19 CET Tags:

So, they™ made one of my favourite horror franchises into a television series. …and it's glorious. It's quite gory (especially for television), trashy, not at all politically correct, fun, has a pretty decent soundtrack (Deep Purple, PJ Harvey, The Stooges… stuff like that) and features people like Bruce Campbell (the original Ash) and Lucy Lawless (yes, Xena). It's called “Ash vs. Evil Dead” and there has not been a dull episode, yet. ☺

Posted Sun 29 Nov 2015 22:29:38 CET Tags:

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: