1. My geeky system datetime format: longnow variant ISO8601 dates with ordinal day of year:

    02015-01-30 (030)

    Protip: leave out the longnow preceding 0 in the short/medium formats as otherwise the created/modified datetimes in the Finder column view will be truncated to just the date by default.

  2. Today’s lesson: be VERY careful with programmatic use of contribute_to_class(). It doesn’t overwrite existing fields of the same name, resulting in intriguing errors when the ORM tries to do a SELECT query containing the same columns hundreds of times over…

  3. Joschi Kuphal 吉: Pls help me w/ this: When and why would you want to have width & height attributes explicitly set on an #SVG element (in add. to viewBox)?

    @jkphl width&height and viewBox do different things — w/h are specified with units and set the dimensions of the container. viewBox is unitless (user units) and defines the portion of the canvas displayed. More on the MDN wiki

  4. Went to my first climbing tournament at Klífurhúsið today. I was worried it was going to be all competitive and difficult, but it was loads of fun, with a surprising number of easy-to-somewhat-challenging (for me, approx. V2) routes. Finished with 62/220 points, looking forward to improving on that at the next one!

  5. More fun: use the apparently undocumented /QUALIFIER = '"' (that’s a double quote inside two single quotes) option in a GET DATA to make CSV lines like

    1,5,3,4,"A text value with a comma, which is still only one cell"

    work correctly.

  6. Finally solved a long-standing problem getting Icelandic characters to work properly in files being downloaded onto Windows machines for use as SPSS syntax. Turns out the solution is to explicitly set the download charset to UTF-8, and to prepend an unnecessary BOM (yuk) to the beginning of the file as so (context: Django view):

    import codecs
    
    def export_spss(request):
        response = HttpResponse(export_spss(), status=200, mimetype="application/x-spss; charset=utf-8")
        response['Content-Disposition'] = 'attachment; filename=syntax.sps'
        response.content = codecs.BOM_UTF8 + response.content
        return response

    Why is a BOM, which should be completely unnecessary in a UTF-8 file (it has no variable byte order after all) apparently required by some Windows software in order to tell it that the file is UTF-8 encoded, despite Unicode mode being on? Sigh.

  7. Found this watercolour in a book about actively listening to music:

    “Pennsylvania Farmstead with Many Fences“, Unidentified Artist

    Photo from MFA Boston website

  8. The chants page on wetheprotestors.org (via @deray) is my favourite thing right now.

    I also documented a bunch of awesome chants, some slightly longer, from footage earlier in the year. They’re listed below if anyone’s interested. I couldn’t figure out some of the words here and there, so apologies for any mistakes! Corrections happily accepted.

    No justice no peace (optionally x3)
    no racist-ass police

    I got my hands on my head [hey] please don’t shoot me dead

    hands up, don’t shoot

    who shuts shit down?
    we shut shit down!

    who’s streets? our streets!

    mike don’t get it
    shut it down
    his daddy don’t get it
    shut it down
    [?] don’t get it
    shut it down
    his mom don’t get it
    shut it down

    you can’t stop the revolution
    they won’t stop the revolution
    they can’t stop this revolution

    hey hey, ho ho
    kill the cops they’ve got to go

    these cops don’t like it
    we want an inditement

    indite, the pigs (?), send the cops to jail
    the whole damn system is guilty as hell

    back up, back up, we want freedom, freedom
    all these racist-ass cops we don’t need ‘em, need ‘em

    Most of these are from http://new.livestream.com/ASN/CG and http://new.livestream.com/ASN/CG/videos/69296983

  9. Emil Björklund: What should a HEAD request to a Webmention endpoint return?Anything at all? Or something like a 405? #indieweb

    @thatemil AFAIK there’s currently no defined behaviour for HEAD requests to a webmention endpoint, so an empty 405 response is probably the safest bet at the moment.

  10. Tantek Çelik: new home page * 100 posts via flat bim files * <64KB HTML * <1s page load no DB XHR ∞scroll needed beat that, silos :)

    @t excellent minimal Like implementation! Whilst your homepage performance is admirable, I don’t think you can meaningfully compare it to silo infinite scroll untill there’s some sort of pagination :) Currently, without rel-prev[ious] links, there’s no way for crawlers (e.g. readers like Shrewdness, semi-hypothetical “your year in indieweb”) tools to find your old posts other than fetching each one individually, which for many cases takes too long to provide a good experience — e.g. crawling your years worth of content takes ≈162s, verifiable with the following bash+PHP code:

    curl -Ss https://getcomposer.org/installer | php
    
    ./composer.phar require taproot/subscriptions
    
    php -a  # Start an interactive shell, paste in following code (alternatively save into file):
    
    @(require 'vendor/autoload.php'); $start = microtime(1); echo "Starting crawl…\n"; Taproot\Subscriptions\crawl('http://tantek.com/2014/365/t1/indieweb-like-posts-2015-commitment-done', function ($r) { echo "."; if (substr($r['mf2']['items'][0]['properties']['published'][0], 0, 4) == '2013') { return false; } else { return true; } }); $total = microtime(1) - $start; echo "\nYear crawl for 2014 took {$total}s";