PubSubHubbub is a sensible step in the direction of a more distributed, less micro, real-time blogging system. Subscribers to a feed register with a third-party hub that then pushes updates to them. Publishers help out by telling hubs when they’ve updates to publish, and recommending hubs in their feed. Hubs take on the complexity of managing subscriptions, calculating and caching updates, and the accordant scaling issues - so publishers now have an easy route to real-time.
This is yet another technology with Brad Fitzpatrick somewhere behind it. I’m continually impressed with his pragmatic approach to politically viable simple pieces of webware, even if they don’t always catch fire. Being part of the Googleplex doesn’t seem to have hurt his open bias, and PubSubHubbub seems plausibly neutral (although for 100% certainty, I guess there’s Dave Winer’s RSSCloud.)
It occurred to me that I have a few syndicating and cacheing jobs that I want to provoke to run asynchronously every time I publish a blog entry, and that I might use the protocol to loosely join the small pieces involved, with the task runners as subscribers to the feed.
Conceptually neat, but because I use external services to host my blogs, I already have to manually intercede to ping the hub; and actually that’s then a very natural point for me to hook in all the provoked tasks, especially since I can take the opportunity to sub-edit syndicated content (e.g. choose which 140 characters make the best summary tweet.) So I’ve ended up just publishing to the default open hub (as you should be able to see in the feed.)
For the last couple of years I managed to write a paragraph for each Edinburgh Fringe show I saw; this time it’s just headlines for my diary. My younger brother Stephen was excellent in Earnestina and it was great to have him in town and out of his shell for the Festival. Favorites shows were The Doubtful Guest (ninety minute faithful theatrical adaption of an awkward twenty-eight line illustrated poem by Edward Gorey - clearly can’t work, did) and Power Plant (delightful sound and light exhibition at night in the Botanics.) And then in a more approximate descending order Richard Herring, Dave Gorman, Simon Amstell, Robin Ince, Barflies, Janeane Garofalo, Joey Page, The Moscow State Circus and RAW (which was the only one that tasted really bad; pretty good year all told.)
Mainstream print media does a reasonable job of covering most popular culture. Looking at a local listings magazine and the culture supplement of a national newspaper, I see plausibly informed review and discussion of music, film, books, theatre, visual art, etc. Even video games, although they get far less space than the market shows they deserve, at least get considered attention.
But television criticism, especially of season-length shows, is almost absent. If I get anything, I get detailed vanilla listings of current programming. These are a pointless waste of swathes of space - appointment TV is dead. The little news and criticism provided obsesses on the same airing schedule and tends to focus on one-shot documentaries, and on recycling film reviews.
Actually, apart from Screenwipe, and a few online columns and show-specific fan journalism, I know of precious little decent regular media, print or otherwise, about this hugely important contemporary artform. What am I missing?
I’ve previously criticized Digital Privacy Management (complicated systems which try to publish data with coupled usage rights) from the “like DRM, it can’t work” perspective. Today I encountered the “and like DRM, it impedes utility” side.
So I’m tinkering with Twitter. As well as using it as One More Publishing Destination, I also want to follow some friends. I don’t want yet another reader to check, and for the most part I’d prefer to read in batches rather than real-time.
Well, Twitter offers an RSS feed for the updates of my friends, and I already wrote a feed summarizing service. Syndicating a daily summary of friend tweets to my one true public feed reader should be an easy exercise in glueing together willing services.
Except, the Twitter feed in question requires HTTP basic authentication. Yes, I have to supply my username and password in order to read my friend’s public tweets. Attack of the pointless privacy controls.
Now I can’t just supply a username:password@twitter.com URL to my feed reader, because that URL is public, and the same credentials would give write access to my own Twitter account. Twitter do provide OAuth access mechanisms, but standard feeding machinery isn’t going to start digitally signing requests even if I do jump through the token hoops.
I end up hiding the authentication details behind a reverse proxy on my own website. Here’s an Apache recipe for that since it wasn’t at all obvious to me:
RewriteEngine On
SetEnvIf Request_URI /your/proxy/url authorize_remote
RequestHeader set Authorization "Basic BASE64-of-username:password" env=authorize_remote
Header unset Set-Cookie env=authorize_remote
<Proxy http://remote.example.com/requiring/authorization>
Order allow,deny
Allow from all
</Proxy>
RewriteRule ^/your/proxy/url$ http://remote.example.com/requiring/authorization
This feels distinctly like burning DRM-ed music files to CDs and ripping them back to MP3, and for all I know the encoding round-trip possibly degrades sound (security) quality. Sigh.
A few weeks ago the “four fours” puzzle appeared on a whiteboard at work. (Construct natural numbers from four “4” numerals and some reasonable set of mathematical operators.)
There are plenty of solutions online - I recommend this answer key. However, I found I disagreed a bit with author David Wheeler’s aesthetics of purity. I prefer allowing the percentage symbol to the Gamma function, and I also tweaked my search algorithm to reward symmetry and brevity.
So here is my own little collection of 4^4 solutions, in MathML and ascii forms. (The only construct you may not immediately recognize is “.4” with an overline to indicate nought point four recurring, which evaluates to four-ninths.)
<dl>
<dt>Godwin's mother-in-Law</dt>
<dd>
The principle that any argument about the web
can be ended by invoking one's mother as an
example user who wouldn't care or understand.
</dd>
</dl>
Here’s an abstract description of a coding pattern in the Ruby language.
I often find myself uncomfortably coding an alternation like this one.
Now, moving details of the edge-case behavior into its own method is great, because it lets me concentrate on it in a context where it isn’t a distracting detail.
But creating this context has cost me; I don’t like the code for act, because most of it is about things other than the natural implementation, which is hiding off in another method.
Yesterday in Noel Rappin’s “Getting Started With Rails Testing”, I saw a concrete example of another formulation that I prefer.
(My #footnote is that in the unlikely scenario where the natural implementation of edge_case_step_2 can evaluate to false, you’ll need to stuff some extra truth in there somehow.)
I like this because it reads naturally, and is shorter due to the abbreviating power of the Perlish “and” for conditional actions.
[tag: software_development]