• About me

    Works as: web programmer.
    Likes: languages, gardening, Islam, cleaning-up, reading, typography, music, cooking, computing, appointments, knitting, cars.

    It's up to you to ascertain which of the above have intentionally been put there to interfere with character profiling of Big Brother G and the like.

  • Web Design

    My experience in designing and building websites stretch from making templates for Joomla, Wordpress and Indexhibit to designing and programming full-fledged web-applications from the ground up. As for techniques, I am well versed in CSS, XHTML, JavaScript (including experience in jQuery, Prototype & Scriptaculous and mootools), and I get by in PHP.

    These are some free-for-public sites I designed. As you can see I like uncluttered designs.

    • irisfrerichs.nl
    • this very site itself
  • Typefaces

    Below are some preview samples of typefaces I am currently working on. Not yet for download. They still require a lot of work.

    Woerden

    An original sans-serif italic. Regular and bold are in the make too.

    the woerden typeface

    Brooklyn

    A revival / mix of an two unnamed Art Deco / Amsterdam School display types.

    The numerals are taken from the amazing house numbers @ the Jan van Scorel Straat in Utrecht, whose architects are Amsterdam School architects Jacobus van Laen en Jan Hessel de Groot. The basis for the letters are from the cover of the book Gerschwin - His Life and Music by Charles Schwartz. This was the first type I digitised in order to learn the art and the tools.

    the brooklyn typeface
  • Emacs

    The kitchen sink, the operating system in disguise, the innovation, the Birth of Free Software, the butterflies...

    You can find all of these free Emacs extensions of mine over @ github.

    GimpMode
    Emacs-GIMP interaction mode. For writing script-fu.
    Mingus
    My largest program to date. Interfaces mpd, which is a Music Player Daemon. I like to think of it as the Amarok or iTunes for Emacs. Of course there is emms, but I just like to have an overview of my songs.
    lisp-magick-doc
    Lookup documentation for ImageMagick, an image manipulation toolbox.Handles both C-names and lisp-magick-names
    srt-mode
    Mode for editing subtitles, using mplayer or VLC as a backend. In development, but usable
    nyquist.el
    Quite a Spartan elisp library for interfacing the nyquist language format music synthesis and the documentation of nyquist symbols.
    poor-mans-bidi
    Poor mans mode for editing files with bidirectional text
    yiddish.el
    Quail input-method for Yiddish
    gothic.el
    Quail input-method for Goths
  • JavaScript

    The only thing I really hate about JavaScript is the requirement that you put conditions between parentheses.

    Format.js This small library implements the function known in other languages as format or (s)print(f).

    It makes use of the amazingly powerful String.replace function. That function takes two arguments, the first of which is a regular expression, against which to test. The second can be a replacement string or a function, that receives as arguments the whole match and its various submatches, and that for each match in the string, if you are feeding String.replace a global regexp.

    My format function is implemented in a mere 69 lines of code because of that. In its core, it basically is a single invocation of the replace method.

    The definition I use for the directives is (how could it not be?) based on the GNUEmacs lisp format function. See the comments in the file for that. Besides that, Format.js comes with a function positionalFormat, which is so neat and small, that I can just show it right here:

    function positionalFormat (str){
      var args = arguments;
      return str.replace(/{\s*(\d+)\s*}/g, 
        function(match, num){
          return args[parseInt(num)+1]||match;
      });
    };
    

    How to use? Well:

    positionalFormat('argument { 1 } '
      + '(or is it { 2 }, or { 0 }?) '
      + 'comes { 1 }',
      3, 'first', 1);
    

    evaluates to: “argument first (or is it 1, or 3?) comes first”. Now ain’t that neat? See how you can reuse arguments?

  • Licence & disclaimer

    Any code you may find on this site presented explicitly as downloadable is licenced under the General Public Licence (GPL), version 3, unless stated otherwise in the source code.

    For any other creative expressions, such as design elements of this site, I have not decided on a licence (if any) yet, so if you want to use any of that, or are in doubt as to the above, you will have to contact me.

    I do not guarantee any of the code to even do something.

  • Contact

    Contact me @ nielsFORKgiesen@gmailSPOONcom, but do replace those kitchen utensils with dots before pressing send.