As a technology for the visualisation of the odd bit of site content, RSS is great. You read the XML file from a URL, and display the results on the screen in an aggregator. Most aggregators have some additional archiving and conflict resolution logic, such as recognising results that were present in earlier copies of the XML file, but for all intents, the site is still pushing you an interpretation of its content, and in most cases, storing this in an XML file for you to read. (language chosen on purpose)
So long as your needs fall within these limitations, and your aggregator contains logic to make static unstructured data look like an information stream, RSS is a great technology. And man, is RSS popular! Of course it is, it is simple to implement, denies the end user any serious control over the data, lumps all the hard work on the client, and it’s vagueness gives the publisher the option to drive you back to their web site again if they wish, by crippling the data they publish. For the mainstream media, RSS is win win win.
As a useful repository to repository syndication format however, it fails, not just for the reasons described by the Atom folks. RSS’ raison d’etre is to allow a site to push out a limited feed of unstructured and untyped visual data of the site’s own choosing. For a simple tool such as Radio Userland, RSS is perfect, but ultimately, the site is still pushing, the site is still editorialising, the site is still publishing, and we the people are still sucking in what we’re told to suck in.
Once the personal publishing revolution begins in ernest, RSS will quickly be deprecated for protocols such as a second generation Atom, which will instead give us the people, control of the publishing pipeline. This is why companies such as Google are making the right decisions. They didn’t choose Atom, they deprecated RSS.
But this key difference between RSS and Atom is often unfortunately lost on the Atom folks as well, with Sam Ruby saying, for example, that the biggest problem with RSS is the author field. Well, there’s nothing really that wrong with RSS, unless of course you’re trying to think of it as anything more than a simple broadcast mechanism.
None of this is new however, and posting several months ago would have simply added to the noise emanating from both the RSS and Atom camps. The thing is, some people got it, most still haven’t.
Atom or its successor will be a service based API, where aggregators make the call on what content to pull from the repository, not the other way around. Atom could easily be extended to provide directory and filtering functions, allowing aggregator clients to shift control to the server for version control, conflict resolution, historical retrieval etc., instead of having to currently implement these features on top of a completely inadequate RSS format.
Likewise, control of filtering, analysis and display logic would finally move from the producer to the consumer, allowing users to act as proxy information producers. With the full repository of site content available, and control of the publishing pipeline, clients are no longer dependant upon what they are drip fed, and that’s when the real revolution will begin.
What say you Atom, are you up to the challenge?
(Originally posted to Synop weblog)
A recent study getting a lot of press The Effect of File Sharing on Record Sales An Empirical Analysis (PDF) attempts to show that p2p music downloads do not have a statistically demonstrable effect on sales. Conclusions include downloaders aren’t downloading the top ten albums, and it would…
take 5000 downloads to reduce the sales of an album by one copy.
…both of which could perhaps be explained by demographics, culture and the principles and traffic patterns of OpenNap users, amongst others.
While not perfect, at least studies are starting to appear which try to cut through the mainstream scaremongering, and at least some organisations on the p2p side of the issue can see the flaws before pinning their hopes on them.
At the same time, a Canadian federal court has found that file sharing is legal (duh), which is also quite timely as the U.S. Senate introduced a new bill (see the second page) to effectively outlaw file sharing. Memories of prohibition anyone?
The war against 50 years of record company conglomerates sucking us for all we’re worth, at the expense of artists, is about to kick into top gear, and the copyright and intellectual property playing field is about to shift dramatically. It is an exciting time to be alive.
Aysha Leo shows us the carnivorous delights of the Royal Easter Show (proprietary Real Media Player required). The image on their home page is decidely different.
Another few days, and my babies are starting to grow up. They’re now a touch under 2cm high. When they grow up, like the good conservationist that I am, I’m going to let them go into the wild. So they don’t go out there acting like a bunch of planter pot pussies, I’ve been giving them real world lessons. I dump buckets of water on them each day and leave them in the sun for hours on end. I let my cat eat one, and I have a pet snail which I let loose in their pot every few days. These guys are gunna be the toughest damn beetroots in town.
An AFL publicity CD has been found to contain what they call pornographic images. Well, one actually. AFL chief executive Andrew Demetriou said:
The inappropriate image is that of a topless woman (and) that’s not the message we want to send out to our Auskick children.
Perhaps they’re trying to compete with the NRL’s new image. (via AustralianIT)
Open Source Web Design, perhaps just perhaps war isn’t the solution in Insanely Destructive Devices by Lessig, dogs do look like their owners, AOL raffling off a spammer’s Porsche (via BoingBoing), John Sculley admits he they got it wrong dumping HyperCard, Disappearing Clouds in Carina (from Astronomy Picture of the Day), Peter Ustinov dies R.I.P.
Take a look at three of my little beetroots (photo from my miniDV, because nobody has yet donated me a still camera). The one on the right is three days old, while the other two have been sticking their heads up for about a week now. I’ve been vegetarian for about seven years, but recently switched back to letting corporations kill poor defenseless animals for my food, mainly because I’m too stupid to stick to a proper balanced vegetarian diet. It was either me or the animals, and because I’m only human, of course I chose myself. But once these little babies grow up, I don’t think I’ll be able to eat them either. Sure, plants don’t have a brain that we know of, but they still deserve a life on this beautiful planet. What makes them any different? Don’t forget that while human beings are killers at the top of the food chain, almost every other animal on the way down sits atop it’s own killing food chain. Aside from the few carnivorous or poisonous plants out there, how are the flora of Earth going to stake their claim, especially with so much killing going on? If this world were by design, it’s a pretty flawed design. Something to ponder while munching on beetroot.
More on tuning. For web servers, particularly those which are Linux based, we’re always wary of what we call “the magic number” for response times for a typical web page.
Nathan recently referred to response times and speed of service, quoting Mark Fletcher of bloglines saying how the speed of their service is indirectly proportional to the exponential of the load. Of course there are usability issues relating to slow response times as well, but in a client server/web environment, they’re also affecting availablity.
This is what we refer to as the magic number, and is the amount of time it takes to return a page from a web server, at which point the server will gain load exponentially.
It can take a simple background job, a bottlenecked database request, request overloading, or some other system process to slow response time to a certain point, at which time most users decide that their browser has failed to load the page. Their immediate response is to click stop and/or refresh, at which point the load on the box almost immediately doubles. This doubling of load effectively halves the magic number, and users will now only tolerate half the time they waited the first time, before they again hit refresh. Other spin off effects include opening another browser window and trying that as well, perhaps trying to get to the failing page via another page on the site, or by getting their work mates to try the same page to see if they also have the problem.
Once response time hits the magic number, you are no longer in control trying to tune the system, you are just focussing on recovery. I’ve seen people try to tune in these conditions, but they’re really wasting their time. Sure, you can obtain some useful diagnostics before restarting the box, but you’re still no longer tuning anything.
While being a good indicator for excessive load, the magic number is also a good benchmark for tuning excercises. The highest priority for performance tuning a system, is to prevent it from hitting the magic number, and of course this is almost impossible to do if the system has already lept past it.
(Originally posted to Synop weblog)
Before *nix systems made their way out of academia, back when mainframes ruled the corporate I.T. world, performance tuning was a job in itself. When the cost of a few extra megabytes of memory was in the six figure range, small tuning improvements here and there meant saving hundreds of thousands if not millions of dollars.
For this reason, IBM machines, upon which I spent many of my early years, provided a vast range of performance tuning functionality.
At Synop, we were recently faced the performance tuning of one of our production Linux boxes, and I was completely dismayed to find out there’s virtually nothing for the seasoned tuning engineer to play with.
In the IBM mainframe world, particularly under VM, metrics are immediately available on what memory is being used by what, how often code is dispatched or time sliced, and a vast range of other useful information. And once you have these metrics, you can pretty much tune what you like. For example, you can reserve any number of pages for a particular process, to use *nix speak, which will never be swapped out, or you can assign specific pages that will be locked into memory within the processes memory space, so not only won’t they be swapped out, but they won’t move around in memory either.
To minimise dispatching overheads, you can lock processes into one of several dispatching queues, optimised for short and quick responses, like user sessions, or long running batch jobs. The O/S has logic to transition processes between the queues appropriately, but you can also lock processes into a specific queue, as well as tune the time slicing interval and frequency for processes in each queue. Individual processes can also be allocated a percentage priority for dispatch ordering.
CPU usage limits can be set for specific processes, so they don’t exceed a certain level during peak times. Say a batch job churns in the background until a user interaction process kicks off, like a web server for example. The dispatching of the web request could be optimised by reducing the CPU limit for the batch process during business hours, and ensuring the web server was permanently in the user interaction queue for fast dispatching.
For I/O problems, devices can be located on different physical channels, or busses to balance load, and once you have the available metrics for disk seek and latency, you can manually rearrange the layout of your drive for optimum seek latency. With multiple heads per disk platter, you have ample opportunity to reduce the time it takes to seek between popular blocks on the disk, reducing head chatter/thrashing.
When you have processes which are starting up several instances at once, like an inet daemon or shell utility, you can optionally lock shared segments of the code, so that only one copy needs to be in memory. The CPU shares the code amongst all the instances of the process. Forking and threading addresses this to some extent, but not if you have multiple unique instances running at the same time. You can then apply the reservation and locking logic mentioned above, to the shared segments as well, because you can easily determine where they are in memory.
These are only some of the unique performance tuning features of the mainframe world. And while the cost of memory, CPU and disk storage is continuing to fall, it is still nice to know that an engineer can take virtually any level of control over performance and process dispatching, things just not available in standard *nix. However, even though there is no such control, at least knowing some of what is possible, will help engineers have a better understanding of what to look for when tuning *nix systems.
As the Linux market grows, technical personnel in corporate mainframe environments are still hesitant to embrace it, even as the speed of microprocessors continues to climb. This is partially due to the lack of tools they’d need to protect and tune their systems, and ultimately to save themselves from redundancy. While IBM are indeed embracing Linux, they still only run it on top of their mainframe operating systems, which effectively gives them the best of both worlds. The mainstream I.T. media tend to ignore this fact.
There’s several lessons here for the Linux world.
(Originally posted to Synop weblog)
From the currently in session U.S. September 11 Commission, Madeline Albright, former U.S. Secretary of State, finally starts to get it right, three years after she was in a position to do anything about it. (from GLOBALIZE THIS!)
We were not attacked on September 11th by a noun, terrorism. We were attacked by individuals affiliated with Al Qaida. […] We also need to remember that Al Qaida is not a criminal gang that can simply be rounded up and put behind bars. It is the center of an ideological virus that has wholly perverted the minds of thousands and distorted the thinking of millions more. Until the right medicine is found, the virus will continue to spread, and that remedy begins with competence. […] The problem is changing the fact that major components of American foreign policy are either opposed or misunderstood by much of the world.
She’s also into the odd conspiracy theory.