1. Working on I’m coming to realise that there are at least two usefully distinct levels of semantic data on the web:

    There’s the basic “object” level at which microformats act, defining simple, basic-level objects like posts and people with properties like name, phone and content.

    Then there’s the level at which HTML works, marking up blocks of text and creating a tree of elements, each of which gives context to the text it contains, for example blockquote elements for containing content from another source, code elements for “computer code” (might be some space to make that more useful — who’s up for adding the type attribute to code?) and so on.

    So what? So these are the two sufficiently standardised levels at which content on the web can be made portable, and mutually understood by many parties. Any additional undefined semantics introduced by author-defined classnames and the meaning communicated by their default styling is unportable, and will be lost when that content is viewed elsewhere (for example shown in a reader or as a cross-site comment.

    So how can you tell if your content is sufficiently portable? For the object-level (microformats) a validator like indiewebify.me can be used. Strangely, there aren’t as many tools for the markup level, but one surefire way to check is to disabled CSS in your browser. Is your content still understandable using only the default styles? If so it’s probably pretty portable.

  2. Initial draft of a logo:

    Got stuck for inspiration (trees are cliché and, in the UK, ironically associated with the conservatives) so looked on wikipedia, and found this beautiful photo by Stephen Ausmus:

    So made a stylised version for a laugh, and actually really like it. It shares some colours with the indiwebcamp logo

    whilst remaining stylistically separate and visualises a lot of principals: a centralised node split up into a more diverse ecosystem, but still connected by the green strands of standards (many of which are , also associated with the colour green).

    Still a WIP though — thoughts?

  3. php-mf2 users: requesting your feedback for Mf2\fetch() microformats-from-URL function just added to dev-master. I want to get this nice and polished before adding it to a versioned release, and would appreciate feedback, specifically on the documentation and debugging support.

  4. Thoughts about whilst reading Lakoff’s Women, Fire and Dangerous Things — mf vocabularies e.g. h-card, h-entry, h-event are basic-level categories, the level at which:

    • it is easiest for humans to learn and reason about,
    • we have the shortest, most common names for them,
    • defined by how we interact with them

    E.g. h-entry ≈ “post”

    • short name
    • extremely common on the web
    • well-defined interaction patterns e.g. writing, posting, replying, reading, browsing through a feed, searching for/within, liking, reposting, quoting etc.

    Rather than RDF or schema.org which seek to create pure, objectivist, hierarchies of categories — our brains simply don’t work like that.

  5. Last night: built commenting on posts direct from my feedreader using — video demo:

    Example replies sent using this technique: 1, 2

    Next up: cleaning code, implementing likes, distilling learnt knowledge into diagrams, code.

    Futher reading:

  6. Thomas Steiner: Getting started w/ #microformats2 http://microformats.org/2014/03/05/getting-started-with-microformats2 …. @BarnabyWalters, is http://waterpigs.co.uk/php-mf2  100% correct w/ single elem & > 1 type?

    @tomayac for example like this?

    <a class="h-card h-org">Hypothetica Inc.</a>

    php-mf2 gives

        "items": [
                "type": [
                "properties": {
                    "name": [
        "rels": [

    which is correct, one microformat with multiple vocabularies, which effectively allows multiple vocabularies to be mixed, e.g. you can have a h-review which is also an h-entry.

  7. Jon Zuck: Anyone still using microformats? Their site seems out-of-date; says to use microformats2, but most documentation is for old formats.

    @frimmin people are indeed using microformats, classic docs are still majority of the wiki but mf2 vocabs all documented microformats.org/wiki/microformats2#v2_vocabularies, open source microformats.org/wiki/parsers available, validation tools e.g. indiewebify.me

    A lot of microformats activity in the indiewebcamp.com community enabling things like cross-site comments/likes/reposts/rsvps, link previews, autodiscovery, feed readers just beginning development.

  8. Aitor García Rey: @BarnabyWalters Base format to describe a recipe (not only in html contexts) as source for apps and recipe repositories.

    @_aitor “apps/repositories” not specific or user-focused enough to base improvements/requirements on — what is the data being *used* for, in terms of the people using the UIs you want to build?

    E.G. do you want people to be able to search based on ingredient(s)? Or find only recipes which can be made within time available? Or to offer a UI to convert quantities into units the cook is more familiar with? Or to scale quantities depending on the number of people the cook is making food for?

  9. Joschi Kuphal 吉: @BarnabyWalters href attribute in https://github.com/sandeepshetty/authorship-test-cases/blob/master/h-entry_with_rel-author_pointing_to_h-card_with_u-url_equal_to_u-uid_equal_to_self.html …, testing fails atm. Should this be fixed in php-mf2 or the test file?

    @jkphl hm that’s an interesting case — href is technically a url-potentially-surrounded-by-spaces, question is whether or not it’s php-mf2’s responsibility to strip out the spaces in u- properties. I’d say it is, as those spaces are never going to be useful data which we’re throwing away, so opened an issue.