Mp3Blogs + rss = your own Internet radio

Following up from this post which makes things far too complicated, I realised it would be simplicity itself to create a website that allowed users to create their own m3u playlists from the combined RSS feeds of MP3 blogs they choose, that could then be updated every 4 hours or so. People can listen to these M3Us just like people listen to Internet radio.

M3U is the simplest playlist format ever, so this would be really, really easy.


The whole offshoring thing:

Yes, it empowers giant megacorporations to fire hundreds of drones.

But how many people understand this: If you have a normal job, and no extra special commitments such as a family or a house, then you, yes YOU, can also hire programmers in far off countries.

What does this mean?

It means, that by virtue of being born in a rich Western country, you could manage a team as a hobby, in your spare time.

The same kind of gap between the West and Rest that makes corporations offshore whole departments also lets you compete with said corporations in your spare time.

Interesting, hmm?


Everything old is new again?

I read C4L's blog, and one of the things he's good at is skewering hype. In the process, he's pointed out some interesting similarities between new and old technology:
  1. REST and POX
  2. AJAX and DHTML
  3. SOA and Web Services
  4. PubSub and Push Content
  5. Tagging and META-tags
In each case, something has definitely changed, to make cool that which was uncool and new that which was old. What is it?
  1. REST is arguably a well-thought-out subset of POX that doesn't suck. POX + design patterns + exploiting HTTP's natual shape. What changed? Google showed us what was possible, and proved it could be done in the wild, outside of intranets.

  2. AJAX is arguably a set of design patterns that use DHTML but don't suck. It came about after new school web design gained mindshare. Only after the browser technology in Gecko and Opera caught up with the standards and showed us what was possible, and only after people started validating, stressing on semantic XHTML, and using CSS to the full, did people truly begin to accept and explore the power of JavaScript.

  3. Web Services is a small collection of good standards (SOAP 1.1, WSDL, UDDI) floating in a sea of untried, unimplemented, vendor-specifc and overly verbose (even for XML) 'standards' (SOAP 1.2, WS-[*]).

    SOA is WSs minus the suck: it's a philosophy that brings order to the chaos, built around the idea of presenting a unified model of your data upon which processes can be built & designed.

    WSs don't suck, but has suck potential, and SOA recognises that there's more to the special sauce than protocols or standards, and adding new ones doesn't help.

  4. Push was crap. An unmitigated disaster, foisted upon unsuspecting analysts by dotcom droolers and entertainment hype-droids trying to turn the 'Net into a big, dumb television.

    PubSub, in contrast, multicasts and pointcasts data that people actually want in realtime, such as RSS feeds, as opposed to that which would rightly expressed in a collection of banner ads, where geeks can safely ignore them.

  5. The difference between tagging and meta tags is transparency and control. Meta-tags are not transparent to the end user, but hidden away in the source. Meta tags are HTML-centric and intrinsically per-page, whereas normal tags can be per object, no matter the layout.

    The control issues where Technorati may have slipped upa little. Tags are nice bceause they're per-site, and each site has absolute control over their architecture. This is why I believe Flickr and del.icio.us work so well. With Technorati, they surrender this control to external users. We'll see how this works out.
I don't know why, but I have far more vitriol for old-skool Push than for any of the other dead ideas.


In. Cred. I. Ble

World Winds is a masterpiece.

The amazingness of this wonderful piece of software cannot be overstated. Direct zooming into 3D elevations of mountain ranges. MODIS event overlays. WMS integration. This is mindboggling. In Snow Crash, thought this type of thing would be available only to rich people able to pay. We have if for free. Mindblowing.


Building APIs & object models for the rest of the web

OK, so XSD defines data structures, and the data structures <-> object debate is an old tarpit I'm avoiding for as long as possible. Neither is it news that schema-compliant structures can be produced by applying XSLT to XML.

However, why not produce Objects by applying ECMAScripts to HTML pages? One function defines a class and scrapes a document to extract the instance data from a web-page, a little like GreaseMonkey. Document hyperlinks become typeless references. Document forms define operations.

The rationale is behind this is that a lot of websites (e.g. Wikipedia) are broadly similar in markup structure to the extent that screen-scraping them is really, really easy (ignoring the API that obviates the need for that in this case and others).

The use case is anything that needs objects provided by 'web services' - definitions from dictionary.com, search results from Google, bla bla bla. In time such a system could theoretically provide models and API's to large portions of the web.

Of course, it's much easier in a scripting language that supports dynamic type construction. Also, someone else has definitely thought of this before.

Applying RBAC & DTE in OOP environments

Brainwave #1: SE Linux has a very cool permissions model that treats all objects within the OS as nodes in a directed state graph.

To briefly summarize, permissions are granted and/or denied based on who(user,process) is trying to access what(inode,socket) and from where.

The model is so cool that MS had themselves a gigantic hissy fit and wailed on the NSA (among others) for equiping the Linux community with a security model that beat its own commercial offering hands down, for free.

What's interesting, however, is that it should be possible to extract the model and super-impose it on the Java object model, or that of any other OOP language for that matter.

Of course, code injection is generally less of a worry in managed environments than in binary ones, so the idea may not be all that valuable until (or if ever) we start evaluating untrusted logic on the server. (Highly unlikely, due to the halting problem, but still.)