Categories
Imported From Epistula weblog

Format, See?

Lets try this “User input” thing, shall we?

I propose a new format, called the Unified Meta Discovery format. This will be an XML based format with a single purpose – to stop every visitor to my site having to download half a million <link> tags contianing references to metadata.

The proposal is as follows:

In the head of the HTML documents, I propose one last <link> tag, <link rel=”meta” type=”application/xml” title=”UMD” href=”/meta/umd.xml”>

Which contains something like the following:

<umd>
	<object>
		<format>foaf</format>
		<name>Friend of a Friend file</name>
		<version>1.0</format>
		<file>http://www.aquarionics.com/meta/foaf.rdf</file>
	</object>

	<object>
		<name>ESF feed of everything on Aquarionics</name>
		<format>esf</format>
		<version>1.0</format>
		<file>http://www.aquarionics.com/meta/all.esf</file>
	</object>

	<object>
		<name>RSS feed of everything on Aquarionics</name>
		<format>rss</format>
		<version>0.94</format>
		<file>http://www.aquarionics.com/meta/all.rss</file>
	</object>

	<object>
		<name>RSS feed of the Aquarionics Weblog</name>
		<format>rss</format>
		<version>0.94</format>
		<file>http://www.aquarionics.com/meta/weblog.rss</file>
	</object>
</umd>

Most of it is self explanitory, but…

  • format is case-insensitive.
  • file is an absolute URL, purely so people can have their synidcation feeds on seperate servers.
  • All of this is subject to discussion.

Ideas? Comments? Dupication of effort? Screams of “For gods sake, Aquarion, not another bloody XML format?

Categories
Imported From Epistula weblog

Bronzepunk

Greek Geeks

Every time I see this I go back to an idea I had whilst I was wandering around the baths in Bath, which is some kind of Bronzepunk.

Bronzepunk? Compare Steampunk, the literary idea of a society backed by technology as advanced as ours without the benefits of electricity. Steam, in other words. Steam-powered computers, for example. Now, I would like to do something like that set in Rome, or ancient Greece, and I’ve called it Bronzepunk. Ideas are swirling, if you excuse the metaphor, in the steam…

Link via Neil Gaiman

Categories
epistula Imported From Epistula

Backup

I thought it might be a good idea for Aquarionics to be backed up on occasion. All the PHP is saved on my local machine before it’s uploaded here, so the code is fine, but the database hadn’t been backed up since I recreated my local copy of the site, about a month ago, and then about six months before that. This is because I had an automatic backup system on hive.beehost.net before I moved the site to pol’s server.

So now, I have a cronjob and a couple of scripts that do a mysqldump on Afphrid and Aquarionics’ databases every month, compress them and save them, whilst every day I do another mysqldump, diff that against the monthly one, and save that. The entire directory of backups will get downloaded every week by a server on the other side the world. I am not a paranoid person.

Backup.sh

Run monthly.

#!/bin/bash
DATE=$(date +%Y-%m-%d)
WHERE=/home/sites/site3/users/aquarion/backups
mysqldump --password=(PASSWORD) -u aquarion klind | bzip2 -c  > $WHERE/aqcom/$DATE.bz2
if [ -e $WHERE/aqcom/backup.bz2 ]
then
        rm $WHERE/aqcom/backup.bz2
fi
ln -s $WHERE/aqcom/$DATE.bz2 $WHERE/aqcom/backup.bz2

mysqldump --password=(PASSWORD) -u aquarion afphrid | bzip2 -c  > $WHERE/afphrid/$DATE.bz2
if [ -e $WHERE/afphrid/backup.bz2 ]
then
        rm $WHERE/afphrid/backup.bz2
fi
ln -s $WHERE/afphrid/$DATE.bz2 $WHERE/afphrid/backup.bz2

Increment.sh

Daily

#!/bin/bash
DATE=$(date +%Y-%m-%d)
WHERE=/home/sites/site3/users/aquarion/backups

mysqldump --password=(PASSWORD) -u aquarion klind > /tmp/today.txt
bunzip2 -c $WHERE/aqcom/backup.bz2 > /tmp/backup.txt
diff /tmp/backup.txt /tmp/today.txt | bzip2 -c > $WHERE/aqcom/diff.bz2
rm /tmp/backup.txt /tmp/today.txt

mysqldump --password=(PASSWORD) -u aquarion afphrid > /tmp/today.txt
bunzip2 -c $WHERE/afphrid/backup.bz2 > /tmp/backup.txt
diff /tmp/backup.txt /tmp/today.txt | bzip2 -c > $WHERE/afphrid/diff.bz2
rm /tmp/backup.txt /tmp/today.txt
Categories
epistula Imported From Epistula

New!

New stuff this week:
Quick Windows Tips: Quick launch (nodes)
A review of Mil Millington’s “Things Me And My Girlfriend Argue About…

And if that wasn’t enough, All this week (and most of next week) It’s Different Header Every Day week on Aquarionics!

Categories
computing Imported From Epistula

Quick Windows Tips #1, Quicklaunch

One of the most useful features in any version of windows greater than 95 is the Quicklaunch button, which sits (by default) next to the start menu. To enable it – if you don’t already have it – right click on the task bar, go to Toolbars, and click Quicklaunch. Do the same to disable it.

Why is it useful? It gives you instant access to four (or more if you extend the size) programs instantly, and then to more by a click of the double-chevron. If you put directories in the folder where Quicklaunch constructs it’s data, you can create a secondary (and quicker) start menu, as below:

The easiest way to edit this menu is using windows explorer. Quicklaunch is created from a directory, under Windows 98/98SE/Me, this is “C:WindowsQuick Launch”, Whereas under 2000/XP it’s in “C:Documents and Settings$USERApplication DataMicrosoftInternet ExplorerQuick Launch” (Where $USER is your username) It makes your most used applications far easier to access, and if you really want to, you can drag it to the left or right side of the window for a permanent Shortcut Bar, ala MSOffice 97.

Categories
Imported From Epistula weblog

Mindless Coding.

Throwing code at a problem doesn’t solve it. Mindlessly following the trends solves it even slower. Start trying to combine mindless coding with sheep-like trend following and I start to wonder why I bother implementing anything.

This goes just as much for the RSS/RDF/ESF/TLA argument as for the (.*)back discussion. RDF is a specification for describing resources. XML is a method of representing data. RSS 0.9 was an XML format for representing the last few items on a site, which was then developed into a method for syndicating site data (though what I would call perversion on the – originally positive – description tag. As far as I’m concerned, I’d say that RSS /0.9./ was a good implementation of the original idea, but RSS2 (and 1.0 for that matter) has stopped being a format, and started being a specification. The line is thin, but important, and it’s been crossed. And as soon as it was crossed (Which was when Dave Winer released 2.0) I started working on ESF. I shall explain the difference between what I’m calling a specification and a format.

A specification describes a method of doing something. For example, I spent the last couple of hours clearing my desk. The specification for that was “Set out several containers, mentally label them, and throw things into them as necessary”. I defined the containers as “Bin”, “Computer bits”, “Washing Up”, “CDs/DVDs”, this was a format. The specification defines how to define the format. RSS 0.9 was a format, because it had set tags which you put data into, it defined – fairly rigidly – what data went into which bin. And it defined this using XML, because XML is fairly easy to parse.

2.0 (I didn’t even look at 1.0, because I knew that the people who did 0.9 didn’t do it, and therefore didn’t mentally flag it as “official”) is a specification. It defines a method by which other people can define formats as well, Dave did it himself with the blogChannelModule. Yes, folks, it’s the namespace argument again. Adding the namespace suddenly made RSS a scary thing because I, as a developer that has to try to understand this crap, now have a potentially infinite number of tags, all of which somebody, /somewhere/ will want me to support. It also means that RSS, far from doing one thing well (which it did), can now do an infinite number of things, many of them identical, at the whim of some tinpot developer. Or, because I don’t trust single people to come up with perfect standards alone, Badly. Let’s take an example. Let’s, in fact, take the blogChannelModule, because it’s the first public example I know of.

The blogChannelModule allows you to add to your list of subscribed blogs to an RSS feed in opml format. And your list of friends. And a random link you happen to want to point at. Dave has, in fact, invented a way of sharing your current blog reading list. Woot, Yay, and pass the tax rebate. Except that so does the Foaf protocol. Yay for multiple protocols doing the same thing. Lets hope the best man wins, yes?

The problem I have with namespaces is weight of data. Obviously, I can ignore whatever data I don’t want, but in a couple of years if RSS2 really takes off (it might not) then it’ll be possible to have hundreds of namespaced “extensions” or “features” ranging from how you can find out about the feed’s favourite music, top fifty cute cat pictures, current projects, Top ten angry cat pictures. All interesting information, but not necessary to get a list of updates, which is the most common use of the standard. There has to be a better system for the semantic web than drowning everyone who wants to just get the latest stuff in megabytes of pointless data.

“Only support what you like”, will be the response, which totally misses the point. The point is that we are surrounded by cargo-cult programmers, who will mindlessly implement all new things they can do just so they can say they’ve supported it, and it’s going to mean that their RSS feeds become huge. Not that, I should point out, that cargo cult code is inherently bad, I’ve no doubt that the “Ooh, shiny new spec, lets play” accounted for part – if not most – of the events of the last week, but it’s vital to remember that it’s incredibly hard to take features /out/ of a released system.

Oh, and while I remember, a question. What does RSS stand for?

Categories
Imported From Epistula Personal

Syndicate Wars

Everyone Sounds Foolish?
Excluding Source Fun?
Embracing Standadized Flash?
Enemies Should F…Um…Find­out­more­about­each­other­maybe­go­out­for­a­coffee­and­try­to­work­out­their­differences­without­screaming­at­each­other­via­a­text­based­medium?

Cool, double word score, treble points for inventing a new word.

Eliminating Sordid Fumes?
Exorcising Spirit Fluid?
Exercising Sore Feet?
Entreeting Standardized Formats?
End Sort Fnook?
Estriplant Slarty Feemabigale?

What could Jonathon‘s new syndication icon stand for?

…and, by reading comments, I may have accidently insulted Bb with my mention of her in the spec introduction. Once I’ve managed to place words in an order that makes sense, I should email and explain before I get death by blogging…

Categories
Imported From Epistula Personal

Bibliophile

So, How does someone confused and dazed from a – for him – major amount of publicity reward himself for getting discussed in the weblog community, and thus fulfilling his lifelong ambition[1] to be linked to by Mark Pilgrim?

By going into Borders on the way home from work and spending part of his pay cheque, is how.

That is, at least, what I told myself.

On the bus home, the battery on my MP3 player gave out, so I went into Borders to buy a new pack. On the way in I discovered Iain Bank’s new book, Dead Air. Shortly afterwards I spotted Mil Millington‘s new book, Things My Girlfriend And I Have Argued About. That went into the basket as well. Did I mention I picked up a basket? This was a mistake.

I wandered to the Scifi section, and resisted Robert Rankin‘s new book by turning away from it… and immediately saw Zodiac, the only Neal Stephenson book I have yet to read. *click* Basketwards it goes. Panicking now, I span around only to catch my eye on the book of The Princess Bride. *click*. *ARGH*. The books! They are leaping into the basket! I fend them off with a sweep of my hat, and jump aboard the escalator, into the music section, where the books will never get me…

Mmmmm… CDs….

One Marcy Playground CD later, I’m running for the stairs. I have to get out while I can still pay my rent. NO! A Starbucks! ARGH!!!!!!

I resist. Make it to the stairs, circle the outskirts of the scifi/fantasy section though the mini-store of Paperchase, resisting printed books in favour of a nice blank one I can fill in later… Argh, another thing in my basket… Yet I make it to the cash desk with no further incident, though a Tony Hawk‘s book does try for the kamikaze manoeuvre, but I bash it away with ease. I leave the shop, with a bag of books, sixty quid poorer, and without an AA battery to my name…

[1] This isn’t quite true.

Categories
Imported From Epistula weblog

Syndicated Inc.

Crikey.

Hello world.

Okay, so the story so far would be that at half nine last night I released the ESF, which I’ve been promising to do (although not online) for a while. Then Peter used it, Mark linked to it (pointing out a major flaw in the idea, the fact that MT doesn’t support epoch timestamps. I really should have checked that. Um, anyone out there got any ideas for how I could kludge that? I’m playing with my own MT install (I do have one at home. Know thy enemy and all that), but it’s currently exceeding my knowledge) and at that point it sort of snowballed. I’ve been sitting at work watching it spiral out of control. Can I be scared now?

Questions have been asked. Fingers have been poked. “What happens if you want to put a newline in a title?” they ask. “You don’t” I answer “Titles are titles, stop trying to use it as RSS. It’s for passing along headlines, /not/ stories”. “What happens if my link has a tab in it, eh? What then?” “then your link has greater problems than ESF, friend”. “It doesn’t do anything RSS doesn’t do better?” “It does everything it needs to. And it’s staying stable. Promise.”

Then there were more valid questions. Like “What mime type is it?” “text/plain”. “Why doesn’t it…?” “Because it doesn’t need to”, and also, the all pervasive “why?”

Because I’m trying to develop on standards that are shifting beneath my feet, because I’m fed up of the whining that appears to dog the entire processes, because I don’t belive that adding features alone makes anything better, because I think the new RSS is taking the format somewhere it doesn’t need to go…

But mainly because people have been using the basis for this standard – plain and simple ascii – for decades, http is built upon it, as is email, news, and the configurations for almost every unix system ever. The only way it could be more standard is if I used “<field>: <data>”, but colons are special in URLs.

And because the idea of more than half of any given downloaded file being metadata appeals to me not at all in a world where bandwidth is paid by the megabyte. XML is useful, but I think that for small files – and this type of syndication should not /be/ large files – it’s over engineering.

Categories
epistula Imported From Epistula

ESF

Are you also fed up with the continuing war between RSS 0.9* and 1.0 and 2.0 and whatever else they invent today?

Me too.

So today I invented the Epistula Syndication Format. ESF. It isn’t XML. It isn’t RDF. It’s just data. Quick, reliable, and I’m never going to change the spec in such a way as to break the previous version. Ever. Promise. The spec is in nodes. It’s staying that way. Even Shelly could use it 🙂