Testbit
Projects
Contact @timj Search
Testbit is the website and project home of Tim Janik, Free Software developer, author of Beast, parts of GLib, Gtk+, GNOME and ALSA.
Projects   TimJ   Github
    ZCAM-js - A ZCAM implementation in JavaScript
    2022-12-28 - ZCAM colour zcam-js
    Earlier this year I had to investigate perception of colour attributes for some of my projects. There exists a long history of colour models that try to approximate perception, each with its own shortcomings…
    Continue reading
    Anklang takes over
    2021-11-27 - Anklang Beast DAW
    The first pre-release of Anklang was uploaded to Github a couple days ago. The Anklang project is a digital audio synthesis application for live creation and composition of music or other audio material. It…
    Continue reading
    Intersecting Intel & AMD Instruction Set Extensions
    2020-01-23 - SIMD Intel AMD FMA Clang GCC
    In some of my projects, I’ve recently had the need to utilize FMA (fused-multiply-add) or AVX instructions. Compiling C/C++ on X86_64 will by default only activate MXX and a few of the early SSE extensions. The…
    Continue reading
    Rewriting large parts of Beast and Bse
    2019-11-07 - Beast Bse XML Synthesis JavaScript V8
    Last Tuesday Beast 0.15.0 was released. This is most probably the last release that supports the Gtk+ Beast UI. We have most of the bits and pieces together to move towards the new EBeast UI and a new synthesis…
    Continue reading
    Fork Awesome Sprites for Beast
    2019-07-12 - Fork-Awesome Font-Awesome Beast SVG Sprites
    Yesterday, I sat down to upgrade the Font Awesome package used by Beast’s new UI from 4.7.0 to 5.9.0. In the end, I found that the icons look way more crispy and professional in the 4.7.0 version. Here is an…
    Continue reading
    GSlice considerations and possible improvements
    2019-02-20 - GSlice Slab MESH Hugepages HUGETLB Malloc
    The paper Mesh: Compacting Memory Management for C/C++ Applications is about moving memory allocations for compaction, even though the memory pointers are exposed. The idea is to merge allocation blocks from…
    Continue reading
    Replace libtool, turn full GNU Make?
    2019-02-03 - Libtool GNU Make Automake Autoconf Autotools JLibtool
    Every once in a while I start pondering ways to get rid of the slowness and overwhelming complexity of the autotools machinery, in particular autoconf and libtool. GNU Make has been a great companion for…
    Continue reading
    Beast 0.12.0-beta.1
    2018-08-04 - Beast Electronjs FluidSynth Debian
    Long time no see. It’s been a while since the last Beast release, mainly because we have a lot of code migrations going on, some of which caused severe regressions. Here are the tarball and Debian package…
    Continue reading
    Testbit is going static
    2018-07-04 - Testbit Blog Wiki
    This is the first post that is published through Iris, the static website generator used by Testbit. Over the years I fine tuned and tweaked my editing and revisioning tools like probably all programmers…
    Continue reading
    Beast 0.11.0 and onwards…
    2017-06-28 - Beast Gtk+ Rapicorn Electron
    We have just released Beast version 0.11.0: Beast 0.11.0 Announcement The announcement gives a high level overview of the changes (Soundfont support, multi threaded signal processing, new packaging, etc) and…
    Continue reading
    DevLog: Meson and Beast threading (33c3)
    2016-12-27 - Beast GLib Rapicorn 33c3 Autotools Docker
    The last update has been a while, so with the new year around the corner and sitting in c-base @ 33c3, I’ll do my best to sum up what’s been going on in Rapicorn and Beast development since the last releases…
    Continue reading
    DevLog: Setting up Continuous Integration
    2015-10-14 - Beast DevLog Rapicorn
    I’ve spent the last week setting up Rapicorn and Beast with travis-ci.org, a free continuous integration service for Github. Since travis is only available for Github, this means the Beast Git repository…
    Continue reading
    DevLog: Rapicorn’s IDL moving into Beast
    2015-07-02 - Beast DevLog Rapicorn BSE C++11 clang++
    Trying to keep it up, here’s an update on recent developments in Rapicorn and Beast. Git Branches For now, Rapicorn and Beast are using Git branches the following way: Topic branches are created for each change…
    Continue reading
    DevLog: A day of templates
    2015-06-27 - Beast C++ DevLog C++11 GCC template
    Yesterday I spent some 14+ hours on getting a templated undo method wrapper going. Just to throw it all away this morning. Here’s what I was trying to achieve, the C version of BEAST implements undo as follows…
    Continue reading
    Thread-Local-Storage Benchmark
    2015-05-26 - Rapicorn Benchmark CPU Performance Speed Thread-Local-Storage
    A good while ago at a conference, I got into a debate over the usefulness of TLS (thread-local storage of variables) in performance critical code. Allegedly TLS should be too slow for practical uses, especially…
    Continue reading
    DevLog: shared_ptr, resources, eval syntax and more
    2015-05-05 - DevLog Rapicorn Blob eval interactive property
    Giving in to persistent nagging from Stephen and Stefan about progress updates (thanks guys), I’ll cherry pick some of the branches recently merged into Rapicorn devel for this post. We’ll see if I can keep…
    Continue reading
    Is SSH Insecure?
    2014-12-31 - 31c3 Chaos Snowden ssh
    In the true tradition of previous years, this years 31c3 in Hamburg revealed another bummer about surveillance capacities: 29c3: 2012: exit(0) 30c3: Glenn Greenwald’s keynote starts 31c3: Reconstructing…
    Continue reading
    Remote Reference Counting in Rapicorn
    2014-12-12 - Rapicorn Distributed-Garbage-Collection Remote-Reference-Counting
    In the last months I finally completed and merged a long standing debt into Rapicorn. Ever since the Rapicorn GUI layout & rendering thread got separated from the main application (user) thread, referencing…
    Continue reading
    Apache SSLCipherSuite without POODLE
    2014-10-22 - 3DES Apache BREACH Ciphers CRIME CVE-2015-0204
    Image: Poodle by Heather Hales In my previous post Forward Secrecy Encryption for Apache, I’ve described an Apache SSLCipherSuite setup to support forward secrecy which allowed TLS 1.0 and up, avoided SSLv2 but…
    Continue reading
    C++ Month Name Hashing
    2014-08-05 - Bits Of Code C++ Cxx Hashing
    In a time critical section of a recent project, I came across having to optimize the conversion of three digit US month abbreviations (as commonly found in log files) to integers in C++. That is, for "Jan…
    Continue reading
    Forward Secrecy Encryption for Apache
    2014-04-15 - Apache Certificate Cipher Default Encryption Forward
    The basic need to encrypt digital communication seems to be becoming common sense lately. It probably results from increased public awareness about the number of parties involved in providing the systems…
    Continue reading
    Tobin - Statistics from Webserver Logs
    2013-11-13 - Lanedo Tools Linux Open Source Statistics
    Tobin Daily Visits Screenshot During recent weeks, I’ve started to create a new tool "Tobin" to generate website statistics for a number of sites I’m administrating or helping with. I’ve used programs like…
    Continue reading
    Open Source In Business at Campus Party Europe
    2013-09-02 - Events Lanedo Business Campus Party Europe
    Next Friday I’ll be giving a talk on Open Source In Business at the Campus Party Europe conference in the O2 arena, London. The talk is part of the Free Software Track at 14:00 on the Archimedes stage. I’m…
    Continue reading
    Should We Include Documentation Builds In Tarballs?
    2013-08-07 - Automake Documentation Doxygen Git Tarball
    Would you want to invest hours or days into automake logic without a use case? For two of the last software releases I did, I was facing this question. Let me give a bit of background. Recently the…
    Continue reading
    Tor exit node for less than a week
    2013-07-25 - Social Anonymity encryption Hosting Privacy TMG
    During a conference some while ago, Jacob Appelbaum gave a talk on the usefulness of the Tor project, allowing you to browse anonymously, liberating speech online, enabling web access in censored countries, etc…
    Continue reading
    5 Insights from the Black Swan
    2013-07-16 - Social Antifragile BlackSwan Insights
    Image: Fernando de Sousa In the last few days I finished reading the "Black Swan" by Nassim Nicholas Taleb. Around last January I saw Günther Palfinger mentioning it in my G+ stream, looked it up and bought it…
    Continue reading
    Sayepurge.sh - determine deletion of aging backups
    2013-02-08 - Backup Tools Purge Transient Lanedo
    Image by Daniel Mitchell About Determine candidates and delete from a set of directories containing aging backups. As a follow up to the release of sayebackup.sh last December, here’s a complimentary tool we’re…
    Continue reading
    Performance of a C++11 Signal System
    2013-01-25 - C++ C++11 Signals
    First, a quick intro for for the uninitiated, signals in this context are structures that maintain a lists of callback functions with arbitrary arguments and assorted reentrant machinery to modify the callback…
    Continue reading
    Sayebackup.sh - deduplicating backups with rsync
    2012-12-01 - Lanedo Tools backup rsync ssh Transient
    Image by Daniel Mitchell About Due to popular request, I’m putting up a polished version of the backup script that we’ve been using over the years at Lanedo to backup our systems remotely. This script uses a…
    Continue reading
    ListItemFilter Mediawiki Extension
    2012-11-23 - Lanedo MediaWiki Extension SpecialPage
    For a while now, I’ve been maintaining my todo lists as backlogs in a Mediawiki repository. I’m regularly deriving sprints from these backlogs for my current task lists. This means identifying important or…
    Continue reading
    Meeting up at LinuxTag 2012
    2012-05-15 - Events Lanedo LinuxTag Berlin
    Like every year, I am driving to Berlin this week to attend LinuxTag 2012 to attend the excellent program. If you want to meet up and chat about projects, technologies, Free Software or other things, send me an…
    Continue reading
    Testbit Tools Version 11.09 Released
    2011-10-01 - General Tools Transient Testbit
    Image: Mag3737 And here’s another muffin from the code cake factory…​ About Testbit Tools The 'Testbit Tools' package contains tools proven to be useful during the development of several Testbit and Lanedo…
    Continue reading
    Wikihtml2man Introduction (aka html2man, aka wiki2man)
    2011-05-13 - General Tools HTML html2man man manual
    What’s this? Wikihtml2man is an easy to use converter that parses HTML sources, normally originating from a Mediawiki page, and generates Unix Manual Page sources based on it (also referred to as html2man or…
    Continue reading
    Attending LinuxTag 2011
    2011-05-09 - Events Lanedo LinuxTag
    Like every year, I am driving to Berlin this week to attend LinuxTag 2011 to attend the excellent program. If you want to meet up and chat about projects, technologies, Free Software or other things, send me an…
    Continue reading
    BEAST v0.7.4 released
    2011-04-09 - Beast General Transient
    BEAST/BSE version 0.7.4 is available for download at: beast.testbit.eu/… This release integrates the bse-alsa driver for which no seperate package is now needed. BEAST is a music composition and modular…
    Continue reading
    Human Multitasking
    2011-03-31 - Social Attention Human Multitasking Mind Phones
    Image: Salvatore Vuono The self deceiving assumption of effective human multitasking. People are often telling me they are good at multitasking, i.e. handling multiple things at once and performing well at…
    Continue reading
    Lanedo at CeBIT 2011
    2011-02-28 - Events General Lanedo
    This week, our people are running the Lanedo booth at CeBIT in Hannover. Everybody is invited to come and visit us in hall 2, booth D44/124, in the open source park. We will give introductions to our services…
    Continue reading
    Using mod_disk_cache with MediaWiki
    2011-02-09 - Cache cache-control Expires MediaWiki mod_disk_cache
    Photo: LifeSupercharger MediaWiki is a pretty fast piece of software out of the box. It’s written in PHP and covers a lot of features, so it can’t serve pages in 0 time, but it’s reasonably well written and…
    Continue reading
    New Beast Website
    2011-02-05 - Beast Transient html2wiki MediaWiki Wiki
    Last week the Beast project went live with a new website that has been in the making since December: beast.testbit.eu The old website was several years old, adding or changing content was very cumbersome and…
    Continue reading
    Got The Time?
    2010-12-18 - Comic Fun Humor Keyboard
    Continue reading
    10.09.2010 BEAST/BSE release 0.7.2 available
    2010-09-10 - Beast Transient
    BEAST/BSE and BSE-ALSA version 0.7.2 are available for download: http://beast.testbit.org/beast-ftp/v0.7/beast-0.7.2.tar.bz2 http://beast.testbit.org/beast-ftp/v0.7/bse-alsa-0.7.2.tar.bz2 BEAST is a music…
    Continue reading
    09.09.2010 Request to support voting in GNOME Bugzilla
    2010-09-09 - Gtk+ GNOME Bugzilla
    These days I often have a hard time to keep up with the tasks on my TODO lists, but I do manage to sneak in a spare hour here or there to look into code I authored sometime ago and that’s waiting for…
    Continue reading
    30.08.2010 Rapicorn release 10.08.0 available
    2010-08-20 - Rapicorn Transient
    Rapicorn 10.08.0 is available for download: http://rapicorn.testbit.eu/dist/rapicorn/rapicorn-10.08.0.tar.bz2 Rapicorn is an Experimental UI Toolkit. Most things in a toolkit implementation will benefit from…
    Continue reading
    29.07.2010 Lanedo at GUADEC
    2010-07-29 - Events Lanedo
    Like every year, the entire Lanedo Crowd is currently attending Guadec. If you’re around as well, we can strongly recommend attending one of the talks we’re giving on: Multitouching your apps Best Practices in…
    Continue reading
    Using distcheck with ccache + colorgcc
    2010-06-25 - Ccache Colorgcc Distcheck
    Waiting for unit compilations to finish during development, particularly with G++ and heavy optimizations can be quite time consuming. A run of make distcheck escalates the problem, because all files during a…
    Continue reading
    23.04.2010 Doxer release 10.04.0 available
    2010-04-23 - Rapicorn Transient
    Doxer 10.04.0 is available for download: http://rapicorn.testbit.eu/dist/doxer/doxer-10.04.0.tar.bz2 Doxer is a documentation tool initiated originally for generating source code documentation. This is the…
    Continue reading
    14.09.2009 OSiM 2009
    2009-09-15 - Events Lanedo
    Together with Martyn Russell, Carlos Garnacho and Kristian Rietveld, I’m attending OSiM this week. None of us has been here before, so we’re quite curious about the conference and will keep our eyes open. My…
    Continue reading
    09.04.2009 Gtk+ 3 Roadmap Participation
    2009-04-09 - Gtk+
    Lots and lots of things have been going on around me lately, but that’s best left for other posts if I ever get around to do them. ;) A few months ago, I’ve sat down with quite some help by others and collected…
    Continue reading
    20.10.2008 Bugzilla Utility buglist.py
    2008-10-20 - Tools Bugs Bugzilla GNOME
    Managing bug lists has become an ubiquitous task when dealing with the GNOME or Nokia bugzillas. At some point I became fed up with the involved cut and pasting, searching and sorting, so I cooked up a small…
    Continue reading
    07.10.2008 Recent Interviews
    2008-10-07 - Podcast Transient Chaos Gtk+
    Two weeks ago, Bruce Byfield did an interview with me about Manju. The article is now up at linux.com and gives a general overview of the project scope: Manju Project Article. There’s also been a German…
    Continue reading
    09.09.2008 The Manju Project
    2008-09-09 - Transient Manju
    Andreas Nilsson and I recently started the Manju project which aims at creating graphical widget toolkit themes from SVG files in a toolkit independent fashion. It combines the idea of a pixmap theme engine…
    Continue reading
    16.07.2008 GUADEC 2008 Wrapup
    2008-07-16 - Events Gtk+
    Guadec has been in interesting conference, particularly because it took place in Istanbul this year. I tried to keep a few notes throughout the days to wrap up the experience and discussions here. Sunday Headed…
    Continue reading
    23.06.2008 Writing Unit Tests with GLib
    2008-06-24 - GLib Gtk+
    Every other week, someone asks how to use the new unit testing framework in GLib (released with GLib-2.16.0) and Gtk+ (to be released with the next stable). First, here is a write-up from last December that…
    Continue reading
    16.06.2008 Sinfex - Simple Infix Expression Evaluator
    2008-06-17 - Rapicorn AST Parser
    The XML GUI definition files used in Rapicorn and also in Beast (described briefly in an earlier blog post) supported a simple $(function,arguments…​) evaluation syntax, similar to GNU Make. I’ve never been…
    Continue reading
    02.06.2008 LinuxTag 2008
    2008-06-02 - Events Berlin GNOME Gtk+ LinuxTag
    Just like LinuxTag last year, I went to Berlin the past week to help running the Gnome booth for LinuxTag 2008. Due to a sports accident, our booth bunny Sven Herzberg unfortunately couldn’t make it, so on…
    Continue reading
    16.05.2008 Becoming a Gtk+ maintainer
    2008-05-16 - GLib Gtk+ Transient
    Amongst many other things during the Gtk+ Hackfest 2008, it was brought to my attention that Gtk+ maintainership is sometimes perceived as some kind of leet circle, hard to join for newcomers. I can’t really…
    Continue reading
    24.04.2008 Announcing Rapicorn 8.4.0
    2008-04-25 - Rapicorn Transient
    Rapicorn 8.4.0 has just been released to the world: Rapicorn v8.4.0 Announcement Lots of things have happened since the last snapshot over a year ago, some of which kept me from making releases or snapshots…
    Continue reading
    07.04.2008 On Moving Gtk+ to Git
    2008-04-08 - GLib Gtk+ Git
    There have been several requests about hosting Gtk+ (and GLib) as a Git repository recently and since that topic has come up more and more often, I meant to write about this for quite some time. Let’s first…
    Continue reading
    05.02.2008 Thread-safe class initializers
    2008-02-05 - GLib
    I finally got around to fix a long-standing and tricky bug report: Bug 64764 - Class initialization isn’t thread safe. Thread safety problems in class initializers and _get_type() functions caused nasty…
    Continue reading
    30.10.2007 YummyYummySourceControl Version 0.9
    2007-10-30 - Tools Transient
    A couple people have reported minor and major bugs in the last yyhelp version, particularly after yycommit got reimplemented to operate on top of git-commit(1) instead of cg-commit(1). Besides some others, this…
    Continue reading
    13.10.2007 Yummy-Yummy Porcelain Version 0.8
    2007-10-14 - Tools Transient
    Here is a new release of YummyYummySourceControl, a shallow porcelain script around common git(7) command variants: yyhelp (v0.8) This version supports a new command to grep and match an extended regular…
    Continue reading
    21.09.2007 Beasty Bits (final spurt)
    2007-09-22 - Beast Transient
    We’ve been fairly busy recently with resolving the milestone bugs of the next Beast release. The good news is that pretty much all of the hard issues are sorted out by now, the bad news is that according to the…
    Continue reading
    19.09.2007 Yummy-Yummy git-svn
    2007-09-19 - Tools Transient Git
    I’ve had to add another bit to yyhelp to make my everyday coding more convenient, so it got support for git-svn(1). The yypull and yypushpull commands will now detect a git(7) repository set up with git-svn…
    Continue reading
    08.09.2007 Yummy-Yummy Buglets
    2007-09-08 - Tools Transient Git
    The YummyYummySourceControl script got a few buglet fixups during the last days, so I’ve put up version 0.5b: yyhelp. Here’s the obligatory list of changes since the last version: Overview of Changes in…
    Continue reading
    29.08.2007 Yummy-Yummy Again
    2007-08-29 - Tools Transient
    I’ve put up a new release of the slightly renamed YummyYummySourceControl script here: yyhelp (0.5). The script still depends on cogito(7) for the implementation of yycommit, but other such dependencies have…
    Continue reading
    17.08.2007 What are ELF libraries good for anyway?
    2007-08-17 - GLib Gtk+
    Or: Who in the world is actually linking against GLib without Gtk+? I’m currently in the process of building some general purpose infrastructure for Rapicorn and because a good portion of the C++ utilities used…
    Continue reading
    17.07.2007 OpenGL for Gdk/Gtk+
    2007-07-17 - Gtk+
    The idea of using OpenGL as a future core rendering architecture for Gtk+ has been brought up a couple times at GUADEC (and then some variations thereof). However there are good reasons to avoid that and major…
    Continue reading
    13.07.2007 Switch On Strings In C And C++
    2007-07-14 - Bits Of Code Tools C GCC
    For Rapicorn i need a simple and nicely readable way to special case code on various strings, which isn’t a problem in most scripting languages but is not provided by C/C++. Switching on strings turns out to be…
    Continue reading
    29.06.2007 YummiYummiGit
    2007-06-30 - Tools Transient Git
    Starting with the discontinuation of cogito, i began to wonder about my future git usage patterns. On the one hand, i have become quite used to the convenience of some of the cogito commands, on the other hand…
    Continue reading
    28.06.2007 Searchable API Docs
    2007-06-29 - Gtk+ GLib
    Newly built GLib & Gtk+ API docs are online now. In the process, i fixed a long standing documentation feature request: searchable API docs. This turned out to be the most requested documentation feature at the…
    Continue reading
    13.06.2007 Back Online
    2007-06-13 - General Transient DSL online
    I just got back online after a full week of DSL-outage due to the Deutsche Telekom Strike. If you are awaiting response via email or bugzilla from me, please be patient, I’m doing my best to catch up. Feel free…
    Continue reading
    04.06.2007 LinuxTag
    2007-06-04 - Events Gtk+ LinuxTag
    As announced by Hallski, Sven, Mitch and me went to LinuxTag 2007 and operated the Imendio and GNOME booths. As usual, Sven did a great job nurturing random users approaching the booth, together with Mathias…
    Continue reading
    25.04.2007 Call For Help
    2007-04-25 - Gtk+ Transient
    Gtk+ Patch Testing & Committing: Recently i was caught on IRC and asked to look into a few outstanding Gtk+ bug reports. Some of them easy, some of them not so easy, e.g. one required a lengthy in-depth…
    Continue reading
    13.04.2007 Gtk+ Volunteers
    2007-04-13 - Gtk+ Transient
    The Gtk+ project finally gets a structured way to absorb voluntary efforts. Here is my proposal for a Volunteer Task List on gtk-devel-list. The task list is currently being constructed in the Gnome Wiki: GTK…
    Continue reading
    05.04.2007 Rapicorn Website
    2007-04-05 - Rapicorn Transient
    The generation rules for the Rapicorn website are now finally in place: → rapicorn.org ← This should help to clear up some of the motivations behind the Rapicorn project, in particular how it relates to Gtk…
    Continue reading
    26.03.2007 Beasty Bits
    2007-03-25 - Beast Transient
    I will quickly roll up some of the interesting bits that happened around Beast in the last couple of weeks. Stefan Westerfeld sat down and put up a collection of the various instruments and loops he is…
    Continue reading
    22.01.2007 Rapicorn-0.1.2
    2007-01-22 - Rapicorn Transient
    The last Rapicorn snapshot had a couple build and compiler issues which could be fixed meanwhile, so here is the "real" 0.1.2 release: rapicorn-0.1.2.tar.gz It’s still a technology preview release with known…
    Continue reading
    28.12.2006 G_SLICE=debug-blocks
    2007-01-02 - GLib Gtk+
    One of the typical problems with implementing an allocator is that all sorts of memory failures in programs get attributed to the allocator. That’s because messing up heap memory somewhere in a program or…
    Continue reading
    20.12.2005 Tuning GSlice memory consumption
    2005-12-20 - GLib
    The other day, Tommi Komulainen pointed out to me that GSlice is using more memory than memchunks for him after bootup of the N770. Now, GSlice is supposed to be faster than memchunks, yes. And its supposed to…
    Continue reading
Feed Impressum