1. Sandeep Shetty: @BarnabyWalters So you have 3 types of tags (from an interface perspective): note body, meta data (visible) & machine tags (invisible)?

    sandeepshetty yep, this is certainly something I need to document on the wiki.

    In fact most of the machine tags were a hack to add schemaless data to my MySQL-managed schema, but as I move to flat files + ad hoc indexes I might migrate some of my machine tags to “real” data — it’s not like they’re doing much good where they are at the moment.

    The main benefit is easy editing — I just use my tag editing UI instead of building another UI for each different bit of data.

  2. This evening’s project: catching up on a bit of dev. :

    • remove lines — whitespace FTW
    • get rid of crappy AJAX+backbone for calling new note UI into notes page, replace it with iframe+postMessage
  3. New CRUD fetcher/saver design coming on well. Decided on per-semantic-indexing, with abstract indexes and APIs so I never have to think about the SQL under the logic (which I do with ORMs like Doctrine).

    Implementing the whole lot using traits, too — mixins FTW.

  4. This morning’s update: ditched the crappy old DRY-violating tags module and replaced it with a super lightweight one. Soon I’ll add the ability to store tag descriptions, synonyms/related tags as well as dynamically pull content in from the URLs it lists so the tag pages aren’t quite as boring.

  5. I’m noticing a pattern emerge whilst writing the simplified auth code: multiple event listeners which don’t know about each other working on the same object, augmenting and changing it.

    E.G. RememberMeListener looks for an encrypted cookie with a URL (my user ID of choice) in — if it finds one it makes an ActivityStream person object and puts it in request.attributes.user.

    Then, in the same event chain but at a lower priority level, the Contacts module looks in request.attributes.user for a URL. It looks up the URL in my people DB and, if there is anyone, augments request.attributes.user with all the extra info (full name, roles, photo URL, rel value, etc.)

    Then, another listener could run, looking for request.attributes.user with only URL — and look the URL up on identengine.com, caching the response.

    Other example is @-name autolinking, working on a similar basis of: basic transformation (raw data => common data format), then progressive augmentation adding URLs, names and rel values.

    I think this a very powerful and flexible pattern and something I will make a founding principle of Taproot.

  6. Finally decided that symfony Security component is way too complicated for my little , so ditching it — but I’ve learnt a lot from digging through it and my further efforts will try to provide some of the amazing flexibility it gives whilst being more performant and easier to understand #php

  7. Anna Debenham in your style guide researches, have you come across any great open source project styleguides? I’m looking into making myself more design-accountable for a project I’m releasing soon.

  8. I got tired of WPSM looking and working the way it does (I wrote it when I was 13 and learning PHP), so I’ve taken the data and started building the Music module. Live here. Major but already looking and working better than the old one!

  9. Rolled out usage of the menu element on . I’m looking forward to more browser support for HTML context menus, that will really open up the possibilities for cross-browser extensions

  10. Pushed lots of note UI updates to today, including porting almost all the to Backbone. Still :

    • Improving location UI: improve cancelled state text, fix located state
    • Make a view for note lists, inc. event handling like add new note to the list when it’s posted from the dialog. This will also minimise the number of requests.
    • Make the backend auto-add hashtags to the note tags property. It should have been this way all along.
  11. Just pushed a load of changes to auto-tagging which should make structured, tag–based querying of notes way easier.

    This note should be tagged with mention, reply, quote and location as it contains all of that data.

    Some Test Quote with a mention in