New Year is Near

Guess the new year has an effect on me, one thing I should have done ages ago: going to quit smoking.


Operational Semantics Preserving Translations

Assume a lambda calculus (LCi) with side effects/impure function
calls: LCi = v | \v . LCi | (LCi LCi) | call LCi*. * is a sequence of terms.

An example term: (\x. \y. call (+) x y) 2 3. For convenience, I assume 2 and 3 are lambda encodings of the integers 2 and 3, similarly for +.

A call models an (impure/non-referentially transparent) system call. For simplicity, we assume that if two programs are run, and they have made identical calls, that any two new identical calls will return identical results.

I.e.: if two programs made (precisely) two calls to some function "tick" resulting in values 1 and 2, then the third call to tick will return the same value.

Assume the functions EAGER and LAZY, eager and lazy operational semantics for closed terms in LCi, respectively. They both map an LCi term into a value of type (LCi = call LCi*)* LCi, the collection of made calls in temporal order followed, possibly, by the term in strong normal form - fully reduced. I'll handwave termination concerns away for the time being. EAGER and LAZY are called the operational semantics since it tracks the system calls made and returns the evaluated term, if any. Note that I assume that a call only accepts an LCi term in strong normal form (fully reduced), and returns a term in strong normal form.


EAGER((\x. \y. call (+) x y) 2 3) = (5 = call 2 3), 5.
During the evaluation of the term we made one call to +, returned 5,
and the whole program reduces to 5.


EAGER( (\x . call tick) (call tick) ) = (1 = call tick), (2 = call tick), 2.
Two calls to tick returned constants 1 and 2, the whole program reduces to 2.


LAZY ( ((\x. call (+) 2 3) (call tick) ) = (5 = call 2 3), 5.


EAGER ( ((\x. call (+) 2 3) (call tick) ) = (1 = call tick), (5 = call 2 3), 5.

Two terms are assumed to be operationally equal if they made exactly the same systems calls in temporal order, and possibly reduce to the same term, BUT two identical terms may return a similar result under the two impure operational semantics, but are not equal since they didn't make the same series of system calls.

Needed: two functions e_to_l and l_to_e such that EAGER(l) = LAZY(e_to_l l), LAZY(l) = EAGER(l_to_e l), EAGER(l) = EAGER(l_to_e(e_to_l l)), and LAZY(l) = LAZY(e_to_l (l_to_e l)). I.e., operational semantics preserving functions between eager and lazily evaluated impure LC terms where = is the alpha equivalence on series of terms.

Rationale: I want to implement some lazy features in Hi, this seems to be one good solution


1. Say you would like to implement a Haskell compiler but you only
have a Lisp compiler. Solution: translate Haskell to a corresponding
LCi term l, translate that term to l' = l_to_e l, translate l' to Lisp. Hereby solving the problem once and for all.

2. Say you want to have eager semantics in impure Haskell. That could be done similarly with the e_to_l function.

3. Conversely, you might want to translate Lisp to Haskell.

I didn't think it through too much, a simple CPS transform probably doesn't do it, but may be a good starting point.

Funny thing is that this is a totally opposing view to normal interpretations of operational semantics of LC since I am only interested in observational equivalence with respect to side effects. Which makes sense for someone who builds compilers since the only interesting quality of a program is what it does to the system and the result is often uninteresting.

(Unbelievably all my posts end up on the wrong blog.)

010610: There's an addendum to it. During rewriting, one of the properties I want is that whenever a call is rewritten, all arguments are constants, i.e. normalized.

Language Jokes

For professionals:

For lay men:


Log 12/20/09

After a number of changes, some small, some large, the to ml compiled compiler accepts its own system file again. It also cleanly compiles simple programs to C (fac, list manipulations). Various thoughts:
  1. I simplified the type checker to a prover using solely antecedents and consequents. Both are stored in a list, giving quadratic behavior. It should become O(n x log(n)) here.
  2. In order to avoid quadratic behavior I tried to avoid alpha conversion on lambda terms. There have been/are too many bugs because of that. Should solve this.
  3. I don't inline yet. I should do this at some point.
  4. The method invocations are compiled down to combinators. Case statements are a linear collection of tests, that means linear behavior on lookups. Not sure this is a problem actually.
  5. Everything not essential graph rewriting is done through FFI (libffi) where all functions are loaded from dynamic libraries (libdl). Every FFI call is evaluated each time. FFI is slow already, I could/should add memoization here.
  6. FFI calls are dynamic in nature leading to runtime failures when types are not matched. Should look into swig to automate the glue.
  7. I should allow unary arguments to FFI, now it is assumed all FFI symbols refer to functions.
  8. I wonder how combinators will work out long-time. There might be just too much copying - should think over how spurious copying can be avoided.
  9. I need serialization. This should be simple and obvious if all data is treated as trees.
  10. I started on a simple ReST parser for documentation which I intend to be part of the compiler.
  11. I should prove the type system correct?
This ended up on the wrong blog something fishy on blogspot?



    David Wheeler once said:
    All problems in computer science can be solved by another level of indirection 1
    And Kevlin Henney answered:
    ...except for the problem of too many layers of indirection. 2

    1 Diomidis Spinellis. Another level of indirection. In Andy Oram and Greg Wilson, editors, Beautiful Code: Leading Programmers Explain How They Think, chapter 17, pages 279–291. O’Reilly and Associates, Sebastopol, CA, 2007.
    2 http://en.wikipedia.org/wiki/Indirection_(programming)

    Taken from http://www.omninerd.com/articles/Coding_Practices

    Final Exit

    Karen Stern’s Final Exit
    October 29, 2007, Kingman, Arizona
    By Richard N. Côté / dickcote at earthlink.net
    Karen Stern, a vivacious 53-year-old,
    guitar-playing singer and writer of loopy,
    infectiously funny songs, died on the morning of
    October 29, 2007, in a motel in Kingman, Arizona.
    She had informed the front desk clerk about 7:00
    a.m. that she would be checking out that day.
    When she had not done so by 11:00 a.m., a motel
    staff member went to her room.  Karen was found
    in her bed, neatly dressed, with an empty tank of
    helium gas nearby. She had committed suicide in a
    gentle, painless way by breathing pure helium,
    which rendered her unconscious within a minute or
    two and dead within five or ten minutes. The
    hotel immediately called 911, but the paramedics 
    could do nothing to help her.
    A native of the Northeast, she had chosen
    Kingman, Arizona, as one of her temporary
    sanctuaries in the last several years. Its dry
    climate offered some relief from the severe
    effects of the two baffling and exhausting
    afflictions from which she had suffered for many
    years: Morgellons Syndrome and Chronic Fatigue
    and Immune Dysfunction Syndrome (CFIDS).
    According to the CFIDS Association
    (www.cfids.org), “Chronic fatigue and immune
    dysfunction syndrome, also known as chronic
    fatigue syndrome (CFS), myalgic encephalomyelitis
    (ME) and by other names, is a complex and
    debilitating chronic illness that affects the 
    brain and multiple body systems.”
    Morgellons Syndrome is equally baffling to
    science. The Morgellons Research Foundation
    (www.morgellons.org) found that although some
    patients did find physicians willing to help
    them, “many patients reported feeling abandoned
    by physicians unwilling to investigate their
    illness. These patients tried valiantly to find a
    modicum of relief in the face of an otherwise
    ineffective medical system.” Karen, who spent
    years intensively researching her ailments,  
    was one of those patients.
    Numerous doctors could not alleviate the
    increasingly tortured existence she had lived for
    the past several years. As her conditions
    worsened, and life became progressively more
    unbearable, Karen consulted numerous experts on
    the subject of suicide, and had received
    extensive advice on how to find the strength to
    live, as well as how to put an end to her pain
    peacefully, should she choose to do so. She spent
    an enormous amount of time conducting research on
    how to achieve a rapid, painless death.
    Ultimately, she chose the helium method because
    it was recommended in the world’s best-selling
    suicide how-to book, Final Exit, by Derek
    Humphry, and because the supplies could all be
    obtained locally, legally, and without having to 
    involve anyone else.


    17 x 17 is worth $298.00

    There's a nice puzzle up on the Complexity blog. Can you four-color a 17x17 plane such that for all rectangles all corners have different colors?

    Its easy to program actually, think I might give it a try.

    The Alliance for Code Excellence

    A world where software runs cleanly and correctly as it simplifies, enhances and enriches our day everyday life is achievable. Mitigating the scope and negative impact of bad code on our jobs, our lives and our world is our all–consuming passion.

    Energizing the development world with the commitment and code excellence through code offsets is the key to our ultimate success and the realization of a sustainable code base that ushers in a new age of innovation that will propel humanity to a higher plane of existence.

    "Its like, man, purple bunnies all the way." Guess its a good initiative, but they could have done without the higher planes.


    48 Cores @ Intel

    Costly because of big die-size even at 65nm; acclaimed low power consumption but heat sink doesn't fit into my hand bag.



    Darn, hypoglycemia, probably some brain damage -elevated glucose gives vasoconstriction/small vein damage,- due to serotonin syndrome due to untapered Effexor XR 75 mg/benzodiazepine after too much stress -a dead mum, a lady with PCOS,- faulty flight/fight response.

    May not fit. Hmm, should test it.




    Delphic - This Momentary

    Prypiat, Ukraine, twenty-three years after the Chernobyl accident.


    Small Steps

    Watching where 2M dollar will end on spaceelevatorgames live. Has that great "Houston, in free drift!," feeling to it. Didn't see any nanotubes yet though.

    Games are over, lasermotive won $900k for achieving an average climb speed over 2ms-1.


    Herman Brood - Saturday Night

    As far as I am concerned, the Netherlands produced exactly one rockstar. Most of my teens, I listened to his music with a good friend, after which we played in his basement. A former band I played in once gigged with him (Herman lending a helpful hand - he might have shared some 'interest' with the lead guitarist, who knows). It was a nice but small life performance. When he died, I spend a day playing his CDs. Rest in peace, Herman.

    Intro: D1 F2 G3 D1 (the used chords are explained below)
    D F G D
    D F G D
    D F G D
    D F G D
    D F G D

    Verse 1: D F G D The neon light, of the "Open all night", was just in
    D F G D time replaced by, the magic appearance of a new day,
    D F G D while melancholic Reno was crawling on his back just
    D F G D in, front of the supermarket doorway

    Chorus: A C Gsus4 A Hey girl, cold summernight, as we stood on the
    A C Gsus4 A corner, as a man passed by and asked us, what we
    A C Gsus4 A were doing what we need, as he pointed his big fat
    A C Gsus4 A finger to the people hangin round at the other
    side, of the street

    Verse 2: D F G D Doin' nothing, just hanging around what do you mean.
    D F G D So we had to hit him to the ground.
    D F G D Doin' nothing sir, just hanging around. His head
    D F G D all busted lookin' just a little to wise

    Chorus: A C Gsus4 A I just can't wait
    A C Gsus4 A I just can't wait For saturday night

    D F G D saturday night
    D F G D saturday night
    D F G D saturday night
    D F G D saturday night

    bit with solo:
    E D F D
    D F G D saturday night
    D F G D saturday night
    D F G D saturday night

    Chorus: A C Gsus4 A I just can't wait
    A C Gsus4 A I just can't wait

    End: Dsus2 Dsus2/C Dsus2/B
    a#, a, g, f (solo notes)
    Repeat end x-times and use free text from verse one and two

    Riff during whole song
    D1 F2 G3
    D|---------|---------|---------|--------- pedal D during riff



    D5/A F5/C G5/D D5/A

    E --------------|--------------|
    B 3-----6-------|8-----3-------|
    G 2-----5-------|7-----2-------|
    D --000-----000-|--000-----000-|
    A --------------|--------------|
    E --------------|--------------|

    Main riff

    E --------------|--------------------|
    B 3-----6-------|8-----3-------------|
    G 2-----5-------|7-----2-------------|
    D --000-----000-|--000---3-2-1-0-----|
    A --------------|----------------3-2-|
    E --------------|--------------------|


    A5 Am7/C D/F# A5

    E --------------|--------------|
    B ------5-------|--------------|
    G 2-----5-------|------2-------|
    D 2-----5-------|4-----2-------|
    A 0---0-0-------|5---0-0-------|
    E --------------|--------------|


    G --------------|------------------|
    D ------5---4h5-|4-----------------|
    A 0---x---------|----x-0-----------|
    E --------------|---------0-3--3-5~|


    Dsus2 Csus2 Bm

    E --------------|--------------|--------------|--------------|
    B ------5-------|------3-------|------3-------|--------------|
    G ----7----7----|----5----5----|----4----4----|--------------|
    D --7--------7--|--5-----------|--4--------4--|--------------|
    A 5-------------|3-------------|2-------------|--------------|
    E --------------|--------------|--------------|-6~-5~-3~-1~--|




    NOTE: bend the 17b and 17br 1 1/4

    NOTE: bend the 18b 3/4, the first 13b 1/4 and the second 13b 1/2.


    Algorithmic Botany

    A fun site: Algorithmic Botany, which has a lot of funny light reads. The paper above shows how to model trees with competitive algorithms and some tuning, instead of a fractal approach.


    Hey Joe!

    Doin' tha tab thing again.











    C G D A E
    Hey Joe, Where you goin' with that gun in your hand?
    C G D A E
    Hey Joe, Where you goin' with that gun in your hand?
    C G
    I'm goin' down to shoot my old lady,
    D A E
    you know I caught her messin' round with another man.
    C G
    I'm goin' down to shoot my old lady,
    D A E
    you know I caught her messin' round with another man.
    (and that ain't too cool.)
    C G D A E
    Hey Joe, I heard you shot your woman down,
    you shot her down now.
    C G D A E
    Hey Joe, I heard you shot your woman down,
    you shot her down in the ground.
    C G
    Yes I did, I shot her,
    D A E
    you know I caught her messin' round with another man.
    C G
    Oh yes I did i shot her,
    D A E
    you know I caught my old lady messin round town.
    (And I gave her the gun - I shot her!)


    Hey Joe, where you gonna go?
    Well, dig it, I'm goin' way down south way down Mexico way



    My New Team




    A playful abduction: Naronics, or basing neural networks on the boolean base not-and, for which I seem to have a never-ending infatuation.

    Just an idea which popped in my head and I am toying with: can I arrive at something, say, n-inputs, n-outputs, log(n) depth, roughly quadratic size and which learns? Hmm, guess not.

    An Architecture for Cognitive Diversity

    Cognitive AI by specialization of several functionalities? It might work, still, from what we know of human minds, simple goal directed inference must fail since it is neither very robust or adaptable to open-world situations. In highly unintellectual terms, this model lacks the 'white noise' needed to reach goals by a process of goal oriented distributed chaos. I wonder how a mixed approach of partially organized neural nets might work.

    Excellent work by Singh and Minsky.


    An Absurd Reasoning

    Absurdity is the recognition that life cannot be understood, but should be lived optimally. By recognizing that, we recognize the biggest contradiction: how can that what we do not understand be optimized? One of the central questions one might ask is under which circumstances life should end voluntarily.

    Camus suggests that our instinct for life is much stronger than our reasons for suicide, 'We get into the habit of living before acquiring the habit of thinking,' and instinctively avoid the absurd meaningless nature of life by an 'act of self-delusion.' How can I, not ignore the absurd, accept the meaninglessness of life and reasoning and surrender my existence? Camus’ answer is to live, to live guided by three virtues: revolt, freedom and passion.
    Of course, for most people, myself included more often than not, 'a habit of thinking' roughly equals more a 'habit of mimicry' than anything else.

    Camus works out his ideas in 'The Rebel.' Of course, rebellion is not a solitary activity, giving up defensive positions and comfortable traditions can only be done with respect to other people. But what defines a rebel? To most adults 'rebellion' is associated with youth, who will just kick a bucket simply because it is there, and most adults firmly believe in 'mimicry' as the best defensive position to maximize accumulation of wealth. Where adolescents must rebel against society, because by doing so they adapt to the best possible position to understand, adjust to, and occasionally change that environment in which they should later survive, adults lack what youth has, the capability to instantly judge, or understand judgement, of social situations and place themselves accordingly where they fit best.

    It is in his definition of the three virtues where Camus identifies living with all attributes of adolescents, and just as Sarte and companion, gives over to temptation to copycat and exploit adolescents' behavior and contemporary views of the world. Camus' own 'act of thinking,' in sorts, is therefor best understood as an 'act of mimicry,' and Sartre's personal behavior as an 'act of stealing.'

    Associated with rebelling against tradition, is the 'act of thinking for another,' which, according to Levinas, is one of the most shameful acts because we trespass on that which is the most private of all man, his internal thoughts and views. In essence, personal freedom is maximized at the expense of the freedom of another, another 'act of stealing.' All adults know, or instinctively recognize, ultimate freedom doesn't exist, and willingly give it up by conforming to tradition. But, by doing so, also willingly sacrifice that what should be essential to all, the ability to act and think for oneself.

    Passion, be it either sexual or intellectual, is an attribute most well-behaved adults will gradually replace with compassion, or the 'act of caring' about oneself and others. Again, in Camus' definition, he rebels by placing youthful ego-centrism against adult social behavior. In essence, compassion is the only, and most important, quality which defines adulthood.

    Psychotherapy and psychiatry is according to Camus' definition the biggest crime of all. Rebellion is relinquished by conforming to therapy, a psychotherapist is a thief who steals your freedom and gloats on it, a psychiatrist will strip all passion out of you with his medicine, and it is impossible to recognize compassion amongst a work force who essentially is too worn out to care.

    If you have a severe death wish, give in to psychotherapy.

    How it's done, the right way

    Technicians fix stuff, congratulations Runcore.


    LMFAO - La La La La

    In Soviet Russia, geeks don't listen to music, but music listens to geeks!



    UNetbootin allows you to create bootable Live USB drives for a variety of Linux distributions from Windows or Linux, without requiring you to burn a CD. You can either let it download one of the many distributions supported out-of-the-box for you, or supply your own Linux .iso file if you've already downloaded one or your preferred distribution isn't on the list.

    In my attempt to 'refurbish' my MacBook Air, I now ran into the problem that it will boot from CD, but not from USB. Since the aim is to make it boot from some kind of SSD, be it Apple's own or some other solution, I am trying to get it to boot from USB.

    So, trying to burn Refit to USB, add another partition, and install Fedora Life on that -which means tricking it with dd and syslinux, I hope- is the following route I am trying while preparing for an SSD install in my Mac.

    In that process, I found a neat program for copying iso's to USB, Unetbootin.

    Didn't work with Refit, back to dd?



    Jan Garbarek,Egberto Gismonti,Charlie Haden.



    I own a Macbook Air, unfortunately, the hard drive failed taking a lot of development stuff with it.

    I am gonna replace the HD with some form of solid state disk. At the moment, I am tempted of buying a Compact Flash to PATA replacement, should be 1.8 inch, 5mm high, have a ZIF connector and just place Linux on there. (PATA/ZIF1 seems the 8mm high model, PATA/ZIF2 the 5mm high model, not sure this also makes the connector compatible.)

    I guess I have a revision A model, should confirm that. So, 40 or 44 lines ZIF connector? MTRON (MSD-PATA3018-032-ZIF2) seems to work for some, and not for others. Why not try a RunCore Pro Mini ZIF SSD?

    Problems, not all confirmed:

    1. Macs boot from NTFS, so I'll guess I'll need an NTFS partion on it with Refit.

    2. SSD doesn't go well with swap disks, since they might trash them by writing too much to it. So there are two options here: A. Do without, which I thought is not very well accepted by the Linux kernel. B. Place the swap partition in ram, which means some serious juggling with the init scripts.

    3. Transfer rates. No idea how fast CF is compared to modern SSDs. I am willing to take a performance hit, since i usually edit code with vi, and compile occassionally, but 10 minutes compile times would be too much for me too.

    Anyway, gathering information, so that goes on this blog. At least it won't suffer from HD corruption here.

    Bootup keys

    1. Press C during startup: Start up from a bootable CD or DVD, such as the Mac OS X Install disc that came with the computer.
    2. Press D during startup: Start up in Apple Hardware Test (AHT), if the Install DVD 1 is in the computer.
    3. Press Option-Command-P-R until you hear two beeps: Reset NVRAM
    4. Press Option during startup: Starts into Startup Manager, where you can select a Mac OS X volume to start from. Note: Press N to make the the first bootable Network volume appear as well.
    5. Press Eject, F12, or hold the mouse (/trackpad) button: Ejects any removable media, such as an optical disc.
    6. Press N during startup: Attempt to start up from a compatible network server (NetBoot).
    7. Press T during startup: Start up in FireWire Target Disk mode.
    8. Press Shift during startup: Start up in Safe Boot mode and temporarily disable login items.
    9. Press Command-V during startup: Start up in Verbose mode.
    10. Press Command-S during startup: Start up in Single-User mode.
    11. Press Option-N during startup: Start from a NetBoot server using the default boot image

    Bootup sequence

    1. Power is turned on.
    2. OF or EFI code is executed.
    3. Hardware information is collected and hardware is initialized.
      Something (usually the OS, but also things like the Apple Hardware Test, etc.) is selected to boot. The user may be prompted to select what to boot.
    4. Control passes to /System/Library/CoreServices/BootX, the boot loader. BootX loads the kernel and also draws the OS badges, if any. This is where I want to have another boot loader.
    5. BootX tries to load a previously cached list of device drivers (created/updated by /usr/sbin/kextcache). Such a cache is of the type mkext and contains the info dictionaries and binary files for multiple kernel extensions. Note that if the mkext cache is corrupt or missing, BootX would look in /System/Library/Extensions for extensions that are needed in the current scenario (as determined by the value of the OSBundleRequired property in the Info.plist file of the extension’s bundle.
    6. The init routine of the kernel is executed. The root device of the booting system is determined. At this point, Firmware is not accessible any more.
      Various Mach/BSD data structures are initialized by the kernel.
    7. The I/O Kit is initialized.
    8. The kernel starts /sbin/mach_init, the Mach service naming (bootstrap) daemon. mach_init maintains mappings between service names and the Mach ports that provide access to those services.

    Weirdity, it'll boot FC11 Life just fine from CD, not HD. Normally, a MBA will have a 200MB unused EFI partition. Maybe it just needs an EFI boot loader?

    Now getting revision number and hardware checked, also inquiring after hd and ssd replacement by Apple. Guess it'll be too costly.


    Megan and Mel

    Meanwhile, in Hollywood, Megan Fox admits to having small bouts of psychosis, and Mel Gibson suffered from Effexar induced psychosis.

    Megan Fox (23)

    Life is good, have some tea with milk and sugar. It'll pass.


    Flowers by Holger Lippmann

    I like digital art, nice newcomer: Holger Lippmann.



    Expert to Expert: Erik Meijer and Bertrand Meyer - Objects, Contracts, Concurrency, Sleeping Barbers.

    Another in the "Expert to Expert" series which has been on my harddisk for quite some time. Erik hardly needs and introduction anymore as the Haskell-guru interviewer. Bertrand is famous for having developed the Eiffel language, an OO language which includes contracts, and is the author of several books on OO.

    I was more interested in the second half of the discussion which dove into the modelling/engineering debate. Both gentlemen fervently agreed that 'ideally' there should be no distinction between the modelling/specification language and the implementation language. I have, for the latter years, always supported the following view: Since there is -currently- a difference which is unlikely to disappear and is often quite substantial, fooling oneself that the ideal is possible is no option in industry, and I proposed the following distinct documents which should hold several models during my lectures.

    One, the analysis document should contain the requirements and the domain/conceptual model of the real-world entities. Two, the design model should contain a 'Platonic' ideal of the software/system to be developed. Three, the implementation model should describe how that ideal is implemented in the hardware/language of choice. And four, a test document should describe the usual tests as derived from the requirements.

    Why those distinctions? One reason is that it clearly divides the different stages in a software engineering process and attributes each stage with a product which should be the end-result. Another reason, a design document describes how a system should be implemented and may refer to the nuts and bolts used, whereas a domain specification should be used solely to disect the the domain. The implementation document describes how a design is translated to software and hardware and should contain hardware, OS, language specs and a description of how the Platonic design is translated to those cumbersome lego-bricks which fail the ideal. Testing is a distinct process which should be part of all stages, elavated from user/stakeholder requirements, to design conditions, to implementation restrictions, and should result in a test document for the resulting system.

    In essence, a simplified model for teaching targeting problem space, solution space, construction and validation.

    A particular view, I agree, but one which, in my opinion, makes a lot more sense than the proposed ideal, which I haven't observed anywhere in the real world.

    P.S. Erik once boasted to be one of the most cited authors in CS, a fine placed pun, which had a lot to do with citing systems not being able to disambiguate between the several 'Meijer/Meyer's in the world, so it's nice to see them both in this interview.

    P.P.S. Stages and documents in my opinion may be 'fused' together pending the complexity of the problem, and resources, at hand. I don't agree that there is one particular process which should be used in all settings, but, rather propose that a team decides on what process should be used for a particular project. But, for a mediocre complex project which warrants a reasonable decoration, this is one simple solution.


    Cyanide and Happiness

    Cyanide and Happiness began as a small series of comics drawn by Kris Wilson at the age of 16. Kris created his own webcomic called Comicazi, that allowed him to showcase his comics to others, later followed by StickSuicide, and eventually Explosm.net.


    Jean-Pierre Brisset

    I am learning French, so homage to the great thinker Jean-Pierre Brisset.

    My father resembles him somewhat, since he was a farmer the first twenty-some years of his life. He then got a PhD in physics, and spend most time tinkering with magnets, lasers and math.

    Morosophy, that's like 'wow,' dude.


    Flight of the Conchords - Business Time

    MMORPG Addiction

    Got addicted, and lost it again. Great game, for a massive multiple on-line spreadsheet application. The game has one fatal flaw: It makes you very aware of time and time-management, and there is still a compiler to finish...

    Very nice experience, though.



    I played evony for a week, which I'll write of as "learning current day MMORTs." Waste of time really, but interesting. I'll throw in a couple of more days and then call it quits, I hope...


    Smartbooks and Smartphones at Computex 2009

    Ubuntu, Xandros, Android: Linux finally heading mainstream?


    Linus on Git

    I love git. The reason Linus produces great software is Linus' attitude: Software is build by people, and everybody who doesn't produce extreme quality is ugly and stupid.

    The Myth of the Genius Programmer

    A pervasive elitism hovers in the background of collaborative software development: everyone secretly wants to be seen as a genius.


    Speed Painting

    Good but shameless...

    General Polygon Clipper library

    A mature 2D polygon package. The wrapping and extension code is free software, but the core gpc library is free for non-commercial usage only. The author says: "This library is provided free of charge for non-commercial users. Reaching its current state took up almost two years of personal development effort. If you have found this software to be useful for your purposes please make a donation and help support the continuation of this project. Thanks!"


    SymPy is a Python library for symbolic mathematics.

    The geometry module is not there, yet. Why can't I just plot polygons?


    Giclée Printing

    Giclée (pronounced "Zhee-clay") Print refers to fine art productions made with quality materials using a professional large-format ink-jet printer.

    Art by Lynne Taetzsch

    During the printing process, spray nozzles emit millions of six-colour droplets per second. I need a hobby.

    No Tokyo by Joujouka

    Technotrance by the illusive master himself: Old skool and new skool joujouka. No-one knows where he's coming from, no-one knows where he's going to, but at least he understands.

    (Unfortunately, my own favourite tracks by DJ Tsujoshi Suzuki are nowhere to be found.)


    4 min 33 secs

    Game exploration, '4 min 33 secs of Uniqueness' from Kloonigames.

    You’ll win the game if you’re the only one playing the game at the moment in the world. The game checks over the internet if there are other people playing it at the moment and it’ll kill the game if someone else is playing it. You have to play the game for 4 minutes and 33 seconds.

    Yes Wii Can

    Sony revealed a motion-based input device for the PlayStation 3.

    That's not that interesting by itself, but that it can measure to submillimeter accuracy is. Great applications too...

    (3D goggles, anyone?)

    Sat Solver for NNF

    Old hobby, sat solving. I don't expect a lot of new stuff here.

    Strange stuff in there though, transforming non-clausal forms to CNF is not linear and destroys the structure of the formula. Seems nonsense to me? All transforms to CNF I know are linear and keep the structure of the original formula. Often, it is even easier to understand why a DPLL solver works when reminding 'what it does' with respect to the original formula. (Usually it defaults to a pebbling game or resolution.)

    After scanning the paper, they transform the formula to NNF, and DPLL the resulting CNF of the graph translation. It shouldn't matter, in a direct translation of a term to CNF, all the information is stored directly. At best, they end up with a slightly different search strategy on an expanded graph which 'shrinks' faster.


    Qualcomm EEE Netbook

    Nice, fanless so noiseless, Android OS, one-button. Does it have UMTS, is the trackpad multitouch?

    Micro-transactions for iPhone

    The next step in commercializing the Internet are micro-payments. Apple is the first commercial vendor to supply an API for that, in due time, I expect other game engine builders to supply such APIs.

    Though I do doubt whether it's a good thing for the overall experience of on-line content. As a kid, I used to play a collecting card game, Magic the Gathering, which was great. The on-line treshhold for buying items is probably a lot lower, and games are pretty addictive. Bankruptcy by playing?


    All A Dem A Do

    Today, with lyrics

    All A Dem A Do

    all a dem a do, all a dem a try
    but them can't stop I
    cos me blessed by the most high
    all a dem a do, all a dem a try
    but them can't stop I
    cos me blessed by the most high

    VERSE 1

    evolve as a man as i unravel the deepness
    examine the evidence, decipher the secrets
    come give me the realness, time to let go the weakness
    dangerous systems inocent victims
    vote for peace cum mek we chant down the killing
    cah when me cum me nah go run me a defend
    yes me a defend an me nah apprehend
    time to open up let go an venture
    nah defend a love with a hidden agenda
    for soul takes time say never surrender
    only you can defend ya
    tired are the eyes that suffer with blinkers
    peace to the far eye an you the thinkers
    belief is golden an love is sacred
    an war is so naked


    VERSE 2

    time to open up, let go stop doubting
    if there's a qualm, then go tell it to the mountain
    time to open up, time to keep a focus
    beware of the bogus
    for hate is a tool, enforced by the fool,
    but love will conquer, stand up on a rule
    know your roots and the truths and rights will come
    never give up don't run
    long time now me a talk on di riddim
    chatter one talk with enough lyricsm
    tell you fi di sound jah jah know me can't done
    any time me come, the mike must haffi burn
    on and on and on as we flex
    grab for the pen, and watch the lyrics manifest
    tell you fi di sound we no under fi no stress
    in a north, south, east and don't foerget the west
    chat 'pon the microphone me no trouble no one
    hitch upon the riddem like a any gorgon
    field marshall and me dont partial
    topical a topical, a crucial a crucial
    what a slam bam, we come fi tear down england
    dep 'pon, dep 'pon, dep 'pon, a style and pattern
    hold up hand your a me say hold up your hand


    "All a dem a do, all a dem a try" is Nigerian pidgin English, or Jamaican English. Nigerian comment: "is bad words, a saying."


    Iniciativa per Catalunya Verds

    The European vote help gave this as the party most close to my opinions together with the local Dutch Green Party and the Neweuropeans.

    (I was taught Dutch, English, German, French and some Latin. Strange that it is easier to understand Catalan/Spanish than French, of which I forgot a lot.)

    Free George!!!

    Georgios Kyriacos Panayiotou, Greek: Γεώργιος Κυριάκος Παναγιώτου, born 25 June 1963, best known as George Michael the two-time Grammy Award winning English singer-songwriter, is in prison again!

    Dutch / the crackhouse

    Sign the petition at www.freegeorge.nl.

    M. Ward Chinese Translation

    Favourite album of the moment: M Ward, Transfiguration of Vincent.


    Store Wars

    The Store Wars by thenelaware

    I am sure there is a message, somewhere...

    Music is the Message


    Angst is not a Weltanschauung

    Since his 1999 debut, Poploops for Breakfast, B. Fleischmann, the Austrian-born minimalist, has struggled to keep his “sensitive guy” electro afloat.

    B Fleischmann & Friends - In Trains / They Shoot Music

    The album Angst Is Not a Weltanschauung recaptures a bit of that old glory despite the album’s noticeably weak mid-section.

    (Austria has a lively electro and rap scene, you should pick up the FM4 sound collection CD series, if possible.)

    Discovering Electronic Music

    The 1983 film "Discovering Electronic Music" is an introduction to the synthesizers and computers used to create electronic music. The film explains the basics of how sound is converted into electrical signals, the functions of oscillators, envelopes and filters, and the roles of samplers and sequencers.

    A peek in history, blissfully unaware of Techno and candy-ravers. (Although, at the end they come quite close - 4/4, four beats, cycle two pitched notes.)

    Forth Philosophy 1998

    Forth is a weird language, it is a procedural, stack-oriented and reflective programming language without type checking, it was designed as an operating system. Being untyped, it lost to C, thought it has some advantages such as a trivial calling convention, unfortunately often bound to the hardware, and usually it comes with an interactive shell.

    A paper on how Forth did over the years: Forth Philosophy 1998 which compares it, among others, to Linux. Forth is still actively used for low-level applications such as in embedded devices and boot loaders. It is part of the GNU compiler collection.


    In October 2007, eBay acquired MicroPlace, a microfinance Website founded by social entrepreneur Tracey Pettengill Turner in 2005. Microfinance repayments average above 97 percent worldwide, much higher than American consumer lending repayment rates of around 85 percent.

    Microfinance is used for small businesses in developing countries. In some African countries, thousands of tiny carriers are emerging where individual people become standalone mobile phone operators through the aid of microloans. They purchase a single mobile phone and a rooftop antenna that picks up cellphone signals as far as 25 kilometers away.

    Other businesses include cybercafes. They emerge, for instance, in places like remote Kenya through the use of mobile EDGE technology where conventional Internet access (dialup, DSL, leased line) is usually far too expensive.

    Mobile phones and the Internet also hold out the promise of bypassing, sometimes dictatorial or outright anarchistic, control of the media and empowering the people. Playing a key-factor in the overthrow of despots and the exposure of corruption, another huge problem for developing countries.

    Another future promise is the delivery of medical assistance by phone or even telesurgery through the use of Internet devices. Although the prohibitive costs of the latter imply this will probably only be done small-scale through western funding for the foreseeable future.

    (taken from The Internet & the Developing World, www.internetevolution.com)


    Slashdot Comments

    I really like my daily dosage of slashdot. It's where I see what's going on and what's hot in Geekland.

    I always liked to read the comments on the articles too. Just because there are always some other sides to a story which I just can't think of, the odd joke is also very nice. However, and yes now I am being an old fart, and this complaint is heard among many popular sites, the forums have degraded from 90% excellent comments, and 10% average humour, to 10% average comments, and 90% excellent humour.

    Humour is rated better than excellence? A side effect of the rating system?


    Utopia or Oblivion

    A book by Buckminster Fuller, 1969, a man concerned with the question "Does humanity have a chance to survive lastingly and successfully on planet Earth, and if so, how?"

    The essay that gives the book its title is another key text:

    "The present top-priority world problem to be solved may be summarized as how to triple, swiftly, safely, and satisfyingly, the overall performances per kilos, kilowatts, and man-hours of the world's comprehensively invested resources of elements, energy, time, and intelligence. To do so will render those resources - which at the present uncoordinated, happenstance, design level can support only 44 per cent of humanity - capable of supporting 100 per cent of humanity's increasing population at higher standards of living than any human minority or single individual has ever known or dreamed of and will thus eliminate the cause of war and its weapons' frustrating diversion of productivity from the support of all mankind." (p.334)

    In one of his other essays, The Music of the New Life, Fuller has flattering things to say about musicians, and even had a view on musicians as programmers:

    "Fortified with a spontaneous awareness of general systems theory as manifest in orchestral composition and conductance, music education teachers may be more able to comprehend and programme computers with innately superior competence in such functioning than that possessed by professional mathematicians." (p.54)

    This view was actually copied by IBM who, during the sixties, actually favoured musicians for a while as programmers.


    Realtà Aumentata


    Types are Calling Conventions

    It is always a pleasure to read a paper by Peyton-Jones. Let's see what this brings.

    Anyway, I am kind-of-stuck with a problem with my compiler: An internal representation which feels it has a trivial representation, but I didn't find it yet.

    What is Your Name?

    Wolfram|Alpha launched yesterday, it became self aware at Sunday May 17th, 2009 2:14 a.m. Eastern time.

    Apart from that, it occured to me that Wolfram actually gave a great gift to the whole world: This is a killer application for math education in the world.

    The possibilities for using W|A in a modern classroom are breathtaking.


    Hardhack: PIWO, Chuck Norris

    Chuck roundhouse kicked the devil in the face and took his soul back. The devil, who appreciates irony, couldn't stay mad and admitted he should have seen it coming. They now play poker every second Wednesday of the month.

    Danger Mouse Releases A Blank CD-R

    Danger Mouse is a DJ who got a lot of attention a few years back for creating one of the very first mainstream mashups -- mixing the Beatle's 'The White Album' with Jay-Z's 'The Black Album to' create the rather unique 'The Grey Album.'

    David Lynch, Sparklehorse, and Dangermouse

    He got into legal trouble with EMI about it, which continued with a new collaborative work he created. As a result, his next album, a bipartisanship with Sparklehorse, 'Dark Night of the Soul' will be released as album artwork with a blank recordable CD.

    Other artists include James Mercer of The Shins, The Flaming Lips, Gruff Rhys of Super Furry Animals, Jason Lytle of Grandaddy, Julian Casablancas of The Strokes, Frank Black of the Pixies, Iggy Pop, Nina Persson of The Cardigans, Suzanne Vega, Vic Chesnutt, David Lynch, and Scott Spillane of Neutral Milk Hotel and The Gerbils.

    The artwork, compiled by David Lynch, comes as a hand numbered hundred page book filled with photographs which provide a visual narrative for the music. It is provided in a limited edition, and will come with a blank, recordable CD-R. All copies will be clearly labeled: ‘For Legal Reasons, enclosed CD-R contains no music. Use it as you will.’

    I personally always bought CDs because of the covers, and because it is a more handy format than MP3s. A problem became that my collection just grew too big to just keep around, and I started digitizing it so I can play it on my iPod. As a lot of people, I found out it is unfortunately easier to download CDs than to rip them (although I have a large number of CDs which cannot be found on the Internet easily -- I mainly have electronic music from pretty much all genres).

    It's a good idea to leverage digital products with real art-work. With abundant bandwith, it will become too easy to compile collections of thousands of CDs and just send them to a friend at will. There isn't a lot the music industry can do about this.

    The album has a nice lazy sixties, sometimes eigthies, feeling to it, and the added electronica makes it very contemporary. In all, a good rock electronica cross-over back-grounder. Eight out of ten.

    (listen to it here)


    Rotating Skyscraper

    A rotating skyscraper that is to be built in Dubai and powered by a series of 79 horizontal wind turbines.

    You'll never, ever, find me in this construction, and I find it hard to believe that they'll ever find people to work in that.

    Eric Lewis: Chaos and Harmony

    Love it or hate it, it's a good amount of passion.


    As a lot of geeks, I am eagerly anticipating the launch of Wolfram|Alpha. Meanwhile, I have to do with this:

    Wolfram Alpha previews show the background in Mathematica, but I am actually more interested in how it will perform in just making connections between different ideas in computing science, logic, and, maybe, philosophy.

    I don't think they can ever meet all queries. Probably its usage will level out and only the mathematically inclined will use the engine. But still, tremendous achievement already.

    I think there's a design error in the system. Someone should once find out how to do this distributedly. Why not use the processing power of the browser instead of the cluster? I.e. the cluster should provide the raw data, and the browser should manage the logical aspect of the queries.

    Между Небом и Землей

    Didn't they break up yet?


    Chouchou is a Japanese music group which exists only in SecondLife.

    Brief Memory of NY

    I was thinking of NY, just someone I met, briefly. Too US? I guess she's doing well, though. Pending your definition of well-being, that would be. For people you meet on holidays, she was a really driven girl once, and it shows. Best wishes and good luck, it is nice to see someone succeed in what they really wanted.

    (Awful, my blog starts to look like a tabloid.)


    Man is Dead

    "The most important book since Wittgenstein's Tractatus." — (The late) Alan Watts, Philosopher, author of The Way of Zen (1969)

    The above critique is a bit of an overstatement; it's a nice historical read. It smells and feels sixties the whole way through, I like the abundant cross-associations. But, like a lot of prose from the sixties: Is it Art, or is it just LSD?


    Daya by Samadhi Dance Company

    Premiere 'Vizve' by Samadhi Dance Company. Saturday, May 23, 2009 at 8:15pm. Dancestreet, 1e Rozendwarsstraat 10, Amsterdam, Netherlands.

    Sometimes, rarely, I go to modern dance.

    How My Private Personal Journal Became a Bestseller

    The story of fourteen-year-old Jamie Bartlett, a girl who writes her journal in story form on her laptop. By accident, she turns her journal in for her Creative Writing assignment, and it ends up becoming a bestseller.

    She enjoys all the fame and fortune, she neglects spending time with her real friends, and hangs out with the rude popular girl, and dates the "cutest guy in school", Marco.

    This book was made into a movie 'Read it and Weep' for the Disney Channel.

    Of course, apart from being the cutest guy in school, I liked the authors name: Julia DeVillers. The word Villers is a french toponyme - a word which refers to a place. It is derived from the Latin word villarem, referring to villas or country mansions; etymological the word is similar to the English word village. Country estates were often given to Roman subjects as gifts or as pensions to higher-ranked soldiers.

    As time progressed, these mansions grew to small townships, and the meaning became somewhat equivalent to a place which is at least larger than a hamlet but smaller than a city. There are a few hundred places in France named like this, such as Villers-devant-le-Thour, a village in front of the place 'Le Thour'. Similar spellings exist in most former Roman countries like viller, villar, villiers.

    In some places, a viller or a villar, became to refer to a place where a local community would gather for their events. Usually, a large flat open space among hills, or an open clearing in a forest.

    Often, people referred to those places with just the shorthand form 'Villers,' two communes remain in France which are just called that.

    The French name Devillers is just the concatenation of 'de' and 'villers,' meaning someone who stems from a place, which once was a village or clearing, with the toponyme 'Villers'.

    I am Dutch, I was told that my great-great-great-grandfather was a somewhat wealthy road building contractor who came with the occupational forces of Napolean to the Netherlands and remained behind. Then again, it wouldn't surprise me if the poor guy just layed bricks, who knows?

    Here & There

    A speculative projection of a city.

    (through schulzeandwebb.com)

    I never owned a navigating device, but a great idea for TomTom?

    Zero 7


    I am on Facebook

    I'm actually subscribed to a large number of sites, but mostly kept that anonymous because I am more interested in what drives the sites (technologically) and what drives the people (sociologically) than anything else. Except for technical sites, that is.

    Anyway, check it out. Below, you'll find the link.

    Facebook-profiel van Marco Devillers

    I switched it to English, just because...

    The Road to Big Brother

    There is a some noise on Slashdot about the new digital era of surveillance.

    Are we heading towards police states? Not if we don't want to, probably. Problem is that policemen have a professional education at best, don't expect PhDs there. They are not statisticians.

    All statisticians know that digital data, given large numbers, will only generate false positives, and all real positives are statistically insignificant. The only thing one can do with digital data is falsify real-world positives; how hard is it to get that notion across?


    The Curious Case of Roy Sullivan

    Roy Cleveland Sullivan (February 7, 1912 – September 28, 1983) was a U.S. park ranger in Shenandoah National Park in Virginia. Sullivan was hit by lightning on seven different occasions and survived all of them. In his lifetime he gained "Human Lightning Conductor" as a nickname. On September 28, 1983, Sullivan died at age 71, by committing suicide, reportedly distraught over an unrequited love.

    According to National Geographic's Flash Facts About Lightning, the odds of being struck in a lifetime is three-thousand to one. If the different events of "being struck by lightning" were statistically independent, the chances of being struck seven times in a lifetime are about one to twenty-two septillion (1:2.2 x 10^24).



    I was thinking of getting a kindle like device but Europe is lagging behind in that respect. Not having a 300+ Mln uniform speaking market sure doesn't help.

    A nice site: "Feedbooks," the future of paper? With a site like this there is no need to visit a library anymore; if it grows, that is.

    Another thought, if ebook readers are supposedly very good for reading, why wouldn't they be very good for writing? Just an easy device where you can write at whim would be very good for professionals, like journalists.


    Modern SciFi


    Push-Pull Sensor Networks

    "Push and Pull in Sensor Network Query Processing" by Adam Silberstein.

    I wasn't really thinking about sensor networks, but was looking at how to dissimate data for a small Internet-based project which popped into my head.

    Funny, how push and pull models really can influence a design. Somehow, push seems natural for sensor networks since the cost of broadcasting is high, i.e. send-once is the most minimal strategy one can think of. However, pull seems more natural for Internet distributed applications since range-based broadcast cannot be done and pull-only applications cannot be exploited that easily.


    H1N1 Appears To Be Transmittable From Human To Pig

    "In an interesting twist it appears that H1N1 influenza can be transmitted from humans to swine. Apparently a Canadian pig farmer vacationed in Mexico, returned to Canada and infected about 10% of the swine on an Alberta farm. The swine subsequently developed flu symptoms." (slashdot)

    Nine out of ten pigs suggest calling it "Human Flu."

    (Sometimes Slashdot is funny)

    Stalinistic Cana-chopper

    Police in the Netherlands are using an unmanned miniature helicopter to track down the illegal cultivation of cannabis.

    The first flight of a newly-designed mini helicopter led to the discovery of a cannabis drying shed and a plant cutting facility. The canna-chopper senses heat and takes air samples out of ventilator shafts and chimneys, it is able to 'smell' THC. The mini helicopter, which can stay airborne for a maximum of eight hours, is used to track down indoor cannabis plantations.

    Cannabis plantation is a huge industry worth as much as EUR 2 billion where 80 percent of the marijuana is exported.

    I am Dutch, to me, smoking cannabis is something for juveniles and tourists and, in general, a non-issue. I don't smoke myself, it makes me fall asleep or makes me sick, so, well, in my twenties I just gave up. I don't even drink these days since I am solely a social drinker.

    Weed is silly, it is deemed illegal because someone wrote that down somewhere at some point; like pork shouldn't be consumed since that is written in the Kuran.

    The chopper seems an exercise in transforming our society into a police state. "Uphold the law at all costs" is the new adagium in the Netherlands. I have no sympathy for fools. Change the damned law and legalize, at least we would make money instead of wasting it on non-issues.


    Formalizing Common Sense

    In this phone interview that took place in front of an audience at OOPSLA 2008, Guy Steele spins a yarn with John McCarthy, the father of Lisp, attempting to find out some details surrounding the language inception in the 50’ and its later evolution.

    John McCarthy has been involved in Artificial Intelligence since 1948, a term he coined in 1955. He has been mainly interested in formalization of common sense knowledge. He designed LISP in 1958 and developed the concept of time-sharing. Among others, he has received the Turing Award, the Research Excellence Award, and the Kyoto Prize.

    About the conference
    Starting in 1986, OOPSLA Conference has proven to be the cradle of many techniques and methodologies that have become mainstream over the years: OOP, Patterns, AOP, XP, Unit Testing, UML, Wiki, and Refactoring. Gaining its prestige with 3 academic tracks, OOPSLA Conference has managed to attract researchers, educators and developers every year. The event is sponsored by ACM.