"X-hacker: If you're reading this, you should visit automattic.com/jobs and apply to join the fun, mention this header."

So as part of my recent Reader module changes I wanted to add support for rssCloud, it's a relatively easy extension to implement when processing RSS feeds. I knew wordpress.com supports it, but was surprised to see that quite a few of the feeds I follow are hosted there (and therefore also support it). Nice to see they have a bit of fun with it, providing an extra header :-)
likesharereplyWant to share this? Click to choose a site:settings

Reader improvements

I'm currently working on dobrado's Reader module, which I use to follow feeds here on unicyclic.com. The module relies heavily on the SimplePie feed reading library, which is great at parsing feeds but not so great for displaying them. I've decided to use it for it's strengths, which is on the back end and run via cron.

Since the focus of this site is to display multiple feeds sorted reverse-chronologically, I'm optimising for this case by storing feed items in MySQL once they've been read. This removes the dependency on SimplePie when rendering the page, or when loading more items.

The problem with relying on SimplePie for this is that it doesn't really understand multiple feeds. It has to read them all, sort them, and then return the items in the resulting list between the requested indexes. Putting all feed items in MySQL makes them all equal, and allows for more flexible queries. I'm hoping it leads to a performance boost too.

This is the first in a list of improvements I plan to make before focusing on how to indiewebify all the things.
likesharereplyWant to share this? Click to choose a site:settings

To all the browser makers...

To all the browser makers (I know they read my blog): I just want to set the input type on form fields so that you bring up the right on screen keyboard. In no way should you see this information as permission to mess with user input. I really don't care what you think the definition is for numeric values, email addresses, or even telephone numbers. Leave that up to the user please.

thanks,
Malcolm
likesharereplyWant to share this? Click to choose a site:settings
PPK writes an interesting post about web vs native. I mostly agree with what he's written, it's just that what we should concede defeat over isn't that interesting. Don't get me wrong there are many great apps, it's just that the web has the potential to be so much more, it always has.

In a world where everyone has their own website it doesn't make sense for each person to have their own 'app' as well, so there's no point confusing the two. If the IndieWeb vision of people networked via their own domain takes hold, it will be far more interesting to be a part of than the shiny newness of today's stand alone apps.

...of course this really means it's about time to work on my indiemark!
likesharereplyWant to share this? Click to choose a site:settings
I just finished watching the fantastic, community created, The Empire Strikes Back Uncut. What struck me (besides the cleverness of the people who created it) is the list of Directors in the credits. We live in a world where everyone can be a director, an actor, and yes even Yoda.

I'm sure there will always be big budget films, but more and more people can produce and distribute their own content which is good enough to be appreciated by others. I'm convinced this will be the future not just for entertainment but for news too.
likesharereplyWant to share this? Click to choose a site:settings
likesharereplyWant to share this? Click to choose a site:settings

My Web App Architecture

Brent Simmons asks what others are doing in terms of web app architecture at the moment. I'm really enjoying working with my own CMS, which currently runs this site and a growing number of others.

In terms of architecture, everything is it's own module, from content to account settings to customised modules performing specific tasks. The framework that glues the modules together is mainly there for page layout and some communication. The framework provides one endpoint for API access, but immediately passes control to the requested module via a callback.

I'm finding this way of working pretty flexible, as each module has full autonomy. This starts with the database tables it installs, it provides paths to client side javascript to include, it specifies the public functions it expose to other modules, and can even control the style at a module level with it's own CSS. I've tried to avoid code re-use by having modules inherit from a base class that also provides a minimal interface that must be implemented.

My apps using this framework tend to be quite javascript intensive, so there's an automatic build system to concatenate minified javascript files for each module. At the same time it's also pretty low-tech, the main dependencies being jquery and jquery-UI and not much else.

The code is called dobrado and is released under a Free Software license. Feedback is always welcome :-)
likesharereplyWant to share this? Click to choose a site:settings
Upgraded CKEditor to version 4. It's very nice, especially inline editing. It's how I originally imagined editing would work in dobrado, so I'm glad I finally got around to it. Some other nice things are: access to the native spell checker, which I always wished was available in older versions, and the autogrow plugin. I had to make a few changes, namely supporting my file browser module, but it's the same change as was required in the previous version, which is handy. Also there was a function on the editor instance called addCss which is now on the CKEDITOR parent object, no problem with that except you can't clear the rules you applied, so new editor instances would get styles you meant for previous editors. I just added another function called clearCss which fixes that.

I've also added HTMLPurifier, which is working well. Sanitizing input has been another thing on the to do list for a long time, and becoming more necessary with more accounts being created.
likesharereplyWant to share this? Click to choose a site:settings
Yay navigation links!

The way I've set up unicyclic.com is to have a space for writing posts at the top of my feed. Not very original I know.... but there's a reason certain companies chose this format, it feels natural to combine reading and writing. Anyway the downside to this format is my posts disappear quickly into the noise, and I don't have a 'special' tab to list just my posts. That's why the navigation links I just implemented on permalink pages are great, it's a way to step through just your own content.
likesharereplyWant to share this? Click to choose a site:settings
I've just implemented using the start of the description as the permalink when no title is provided for a post. I noticed Ben Werdmuller was using this technique in idno.co, thanks Ben! Much better than my random number idea I was using previously.
likesharereplyWant to share this? Click to choose a site:settings