1. Watch out for dict-based string interpolation examples which look like this:

    'Hello, %(name)s' % {'name': 'Otter'}
    

    That s after the brackets isn’t pluralising one adorable aquatic mammal into a whole bunch of them, it’s actually part of the interpolation placeholder — the equivalent of

    'Hello, %s' % 'Otter'
    

    Note also that for some reason, python lets you put spaces between the closing bracket and the type signifying character. This can cause extremely weird bugs when the string being interpolated is also being translated. For example:

    _('%(customer) shared a thing') % {'customer': 'Mr. Bean'}
    

    If not translated, this will produce this confusing but fairly easy to debug output

    'Mr. Beanhared a thing'
    

    But if 'shared' is translated into a word beginning with, for example, d, you’ll just get an exception like TypeError: A float is required

  2. Johannes Ernst: The IndieWeb community has it nailed: #selfdogfood

    This post by @Johannes_ernst sums up — loving the BMW story too, we should document that on the wiki!

    All I have to add is something I learnt at this year: when people advocate a technology, don’t be afraid to ask the selfdogfooding questions

    • “are you using this on your own site?”
    • “do you rely on it every day?”

    And if they answer no, don’t be afraid to call them out on it. It’s your time they’re wasting.

  3. “…disruptive technologies don’t start out better than established technologies, as would seem intuitive, they start out worse. But for all their faults in comparison with entrenched, established competitors, there’s something radically different that opens whole new opportunities, and makes them disruptive.”

    — para-meta-quoted from Not Real Programming

    I’m aware the d-word is taboo, but I can’t help but think this perfectly describes and , as well as the reactions many people have to them.

  4. Marcus Povey: Thoughts: Simple distributed friend/follow/subscribe scheme

    @mapkyca nice brainstorming, loving the idea of key discovery for private content! (I publish a link to my PGP key on my homepage, if you want to test it out :)

    Have you had a look at PuSH v0.4? It’s way simpler than old PuSH and is no longer strongly tied to RSS/ATOM content.

    Note also that the “argh my little site got popular and is dying” thing can be solved even with your simpler system, by making the endpoint an external service. Woo hypermedia discovery over well-known URLs!

  5. I think I just tried to make @nerdhaus quiche. Whether or not I accept that interpretation of the past as canon depends mainly on the degree of misshapenness of whatever it is coming out of the oven in a few minutes.

  6. Also in today: learning about I2C communications. Tips+resources:

    • @adafruit have a helpful guide to Setting up your Pi for I2C — remember to reboot after enabling I2C modules
    • All commands which access I2C need to be run as root using sudo
    • If you’re not sure which address a particular device is at, run sudo i2cdetect before and after plugging it in and see which address changed
    • If there are libraries available for easily talking to the device you’re using, make use of them. Do this first even if you want to learn about the lower level communications too to ensure that your device is working correctly.
    • Get to know i2cdump, i2cset and i2cget, they’re super useful for poking around in I2C devices

    I cobbled together a class for communicating with the ADXL345 by cross-referencing between the Arduino library for that chip and Adafruit’s I2C library, only to find that someone else had done so only hours earlier!