Tuesday, 31 July 2007

Death To All Pan Beasts


Monopolies Are A Bad Thing(TM)

I'm writing this from inside a taxi. Why am I inside a taxi? Well I need to get from Lichfield to Sheffield. I am hardly a big spender, so you might be wondering why take a taxi. There is one reason: Taxi companies work in a competitive market. Why is this important? Well, when all of the trains are cancelled due to to flooding (which is unavoidable, well the whole global warming issue is of course to blame. But the train staff are excellent, they didn't have any problem looking after my brother's bike for the weekend and I can get a refund on my ticket whenever is convenient (more on this later)), and one ends up cycling and walking between Lichfield City train station and Lichfield Trent Valley train station through the pouring rain (after having cycled into Lichfield from Armitage) to find out this fact, then realising that one has no way to get to Sheffield, it becomes important. The full importance of this is realised when one sees the friends who were travelling by a coach operated by the Arriva company, which has a monopoly on almost all bus transport at least in the midlands/north-west area, waiting at the bus stop in Lichfield with all of their bags, so instead of leaving to go back to one's friend's house for another night one goes to investigate. Upon learning that there is one extra ticket for the coach, then the logical thing to do would be to make use of it. Since the coach is half an hour late already then running about would seem sensible, especially when a bicycle needs to be stored somewhere (thank you to the train station guys again for looking after it!) and a train ticket needs refunding which involves crazy forms due to being payed by debit card (so I just left it, thinking I'd miss the coach, and I've given Loz the ticket and receipt so he can get the £26 refund instead of me having to pay for the coach/taxi stuff). So, after all of this messing around one would think that getting to Sheffield on a late coach would be the least on would expect. 4 hours later it ends up being the last thread of hope to salvage the weekend-long party which has materialised into a friend being stranded in a unfamiliar city with no place to sleep, 9 friends being cold, wet and threatened by chavs and an unfortunate man who needs to get to Derby but cannot speak a word of English being stuck in Lichfield. Now, in the case of the trains this was handled exceptionally, with helpful staff who went above and beyond what their job entails, however from the monopoly bus company we heard nothing. Absolutely nothing. For three hours. We were waiting at the cold, wet bus stop, not daring to leave to get something to eat or to sit down, or to go somewhere indoors and warm because we might miss the coach that we payed for. After three hours of trying to get through to the company on the telephone and meeting with "we don't know" and "it's not my area" there was eventually a glimmer of hope. The coach had left Birmingham and would arrive within ten to fifteen minutes. An hour later we were still waiting. We decided to dial the emergency 'phone number. The number for use in emergencies only. After getting through to a robot and choosing the "Yes, this is an emergency" option we were put on hold. For fifteen minutes. Which we were charged for. After eventually hanging up we Loz was great and payed for this couple of taxis to take us up instead (£120 altogether!) in the hope of getting a refund on the tickets, and so we end up with the current situation. I am pretty worried about claiming the money back though, since demanding a journey already payed for from a bus company is one thing, but claiming any amount of money from any company is another. That's why insurance organisations are companies, not charities or public services. Anyhoo, this goes to show how monopoly organisations couldn't care less about their actual customers, no matter what sector they are in, and that a thriving, competitive market always produces a superior service. The capitalism argument is getting old, especially when pitted against the socialist one. Both offer incentives and encouragement for organisations to become an overwhelming, unstoppable force concerned with nothing but the self. However, thankfully there is an idea called democracy which we can all, as individual human beings, strive for regardless of what our faceless employers manipulate us to do using the soldier's paradox*.

* The soldier's paradox is a terrible fallacy which causes all sorts of horrors in the world. The core twist of logic is to say that responsibility is a binary thing, all or nothing, you are either completely to blame or have done nothing wrong. Using this, along with the massive reduction in accuracy it creates, ends up with situations such as:

1) Reconnaisance agent sends back intelligence in an ambiguous or misrepresentative way (eg. young men involved in field exercises)

2) Officer, acting on that intelligence, sends harsh orders to his soldiers (eg. wipe them out in a preemptive strike)

3) Soldier, acting on orders, carries out atrocious acts (eg. machinegunning a troop of scouts)

4) They are all to blame, for simplicity's sake let's say 1/3 each

5) If blame is an all or nothing affair then the recon agent is not to blame since 1/3 rounds to 0 ("I was just doing my job. I didn't know what the intel would be used for")

6) For the same reason the officer is not to blame ("I had faulty intelligence, and anyway I didn't pull the trigger")

7) The soldier isn't to blame either ("I was just following orders. I have to do what the officer says")

This method of reducing responsibility to zero is the basic premise of any armed forces, but it also manifests itself in companies ("It isn't my fault life saving drugs can be patented, I have to work within the system", "I have a duty to the shareholders to keep profits up", "I couldn't give him the medicine because he couldn't afford it") and we are all guilty of it at some time or another, although it doesn't work with individuals (since a person can't be divided into sufficient pieces to assign blame to in any meaningful way) which is why we have our 'humanity'. Organisations have a tendancy to do this all of the time, and thus no organisation should be trusted explicity or implicity (well, that kind of goes without saying since levels of trust should be minimised wherever possible no matter the situation**). Monopoly organisations can dissolve responsibility for almost any act in this way (although sometimes the machinery conspires to set the blame bit of a single employee, like the CEO, if it is terribly serious and public relations would be best of with a scapegoat), and can thus continue to operate within large boundaries without fear of having their actions retaliated against. In areas with competition, however, the act itself is focused upon, rather than working out blame, since any negative effects on an existing customer base is important to eliminate in order to remain in business. In these areas there are often many small companies, which suffer much less from the soldier's paradox, since there is less room to spread the target around, but having small companies is also a boon for the average person since they are usually much more agile and can thus adapt to what people need, want and expect of them, rather than trying to wrench people into needing, wanting and expeciting whatever crap they happen to be peddling (I'm thinking of you, 'record industry').

** 'Trust' is an often misused word. It seems to have aquired a positive connotation, even though studying the actual meaning of the word shows what a terrible thing trust is. In the navy of the United States of Americans they apply the following argument to trust: If something is completely under control and not particularly critical or important, then it doesn't need to be trusted (since it makes no difference either way, like a fork). If something is not under control (for example it has come from a third party) and is not particularly critical or important, then it doesn't need to be trusted (since it doesn't matter either way, like a Sky box). If something is completely under control and is critical or important then it doesn't need to be trusted (since it is under control, and so can't do anything unexpected, like a car). If something is not under control and is critical or important then it needs to be trusted (since it leaves one completely at the mercy of another entity for a crucial part of whatever it is that needs to be done, like the person with a gun to your temple). In this context it would be beneficial to keep the number of loaded guns pointed to your head as low as possible. Of course, some things require trust, such as meaningful relationships, but that doesn't mean that such a thing should be taken lightly (to take the loaded gun example, just look at figures for couples killing each other). This argument sums up "Trusted Computing" quite well, by the way.

Firefox is a desktop application

There seems to be a continuing theme here at GUADEC. Someone gets up on stage and declares that they know how to improve GNOME fantastically. They then go on about the web, and how GNOME should become Firefox-and-that's-it. OK, I have a real problem with this; Not only is Firefox NOT a part of GNOME (I'd prefer GNOME turning into Konqueror-and-that's-it to be honest. Even Epiphany is getting WebKit support, because Mozilla software is notoriously slow, hugely resource hungry, and doesn't actually follow web standards that well. OK, they are trying, unlike Idiot Exploiter which does whatever the hell it wants and says "Well, I pwn teh Internets, so if your site doesn't work in me that's YOUR problem.", but the implementation they have is incomplete to say the least. Just try viewing an animated SVG. Painful isn't it?), but desktop applications (GNOME applications included) are far more powerful than web applications, which can be proved by simple logic: Firefox is a desktop application!

Seriously, if you think websites are the new, hip, groovy, trendy way of improving more people's lives with better computers and software then that's fine. But we shouldn't throw out everything we have in order to accommodate that view. There are two scenarios here: Either we move completely to a web browser based system, where everything is HTML (+1), CSS (+1), Javascript (+1), AJAX (+1), etc. and we have no GTK (-1000), no QT (-1000), no EFL (-1), no TK (+1), no WX (-100), no WINE (-pi), no anything else, all of that unbelievably massive collection of software that is already here, already working, already solving problems for people and has been doing for years reliably, is thrown in the bin since it can't be used (-10000000) (except for maybe in a VNC applet, which would be such a stupid-ass thing to do that anyone thinking it should be beaten so hard with a clue bat that their hypocrisy starts dribbling out of their ears), or the other scenario is that we carry on using the desktop as it is. With this approach we can use GTK (+1), QT (+1), WX (+1), TK (-1), EFL (+1) and, get this, we can use HTML (+1), CSS (+1), Javascript(+1), AJAX (+1), etc., plus all of the current library of application will still work (+1), and another major advantage is that this scenario can be achieved with absolutely no investment of time, code or anything else, because it is here already. I am writing this blog entry in Gedit, the GNOME text editor built on GTK. I could be writing it in GNOME Blog, another nice GTK program, but there wouldn't be much point because I don't have a connection to teh Internets. So what can I possibly do about that? Nothing, it's not a problem because my work is local to my machine. When I have a connection I'll upload it, but that might not be for a while.

So you want to make HTML/CSS/whatever applications on GNOME? It is perfectly possible to embed a webbrowser into a program, that is what a web browser actually is! Instead of putting a location bar to load arbitrary sites, whether local or remote, you can just load up a single page of your choosing, and then change the properties of the window however you want to, for example, cut out the edges. Stuart Langridge's Jackfield is an attempt at this kind of thing, and his talk was the only one involving web development which actually looked like it was a step forwards. Of course, Mirco's talk on Lowfat was great, and he envisions much of the same stuff as me, with Lowfat being a step towards document centric computing. My only complaint would be that he limits the scope a little too much by tying it to search results only.

On the subject of Lowfat, Mirco proposed an idea about "tagging" files, which was the same kind of idea as an earlier talk. he problem with this idea of "tagging" is that it involves the very web 2.0 concept of chucking a load of random words at a file. This is not proper tagging. Proper tagging involves key:value pairs, such as "Title:Only For The Weak", "Artist: In Flames", "Album: Clayman", but arbitrary, for example "Live:No", "Favourite: No", "Score:3". I raised this point at the metadata talk, but was informed that this sort of data storage (like ID3v2 Tags) is not tagging, it is other metadata. Erm....... right.... Then Jeff Waugh came out with something pretty ridiculous, I mean, I love his green shoes and everything, but the idea of chucking random words on something and making some of them key:value pairs is completely backwards. Tagging systems apply metadata to things, which in themselves already have intrinsic properties. For example, a song has "Length", "Bitrate", "Format", "Frequency range", etc. Adding these tags works ON TOP of these intrinsic properties, to make a metadata retrieval system find structures like "Width:320", "Height:240", "Tags:Holiday, Bob, Funny", adding key:value pairs to such a system would be as ridiculous as using a GTK webbrowser to view GTK application within a VNC java applet, since it would end up with "Tags:Bob, Funny, Holiday, Width:320, Height:240" which is just completely unneeded recursion. Of course adding tags properly is not as immediate as throwing arbitrary words onto something, but it produces much better results, since words have a meaning to the system. Let's say you are looking for pictures of someone called "Cliff Edge", well you're going to get results of geographical features, whereas if you had tagged pictures with "People:Cliff Edge, Bob Doodle, Dave Daveydave", "Location:New York, Central Park, Bench" and "People: Sue Thingiebob", "Location: Cliff edge, Dover, Seaside" for example you would be able to specify that you want to look for people called Cliff Edge. Of course, as with any arbitrary metadata system, the big problems are getting the metadata in the first place (people care about data, not metadata) and making sure the key names match up. Of course, this is where most discussions fall down as nobody can decide on "the" keys to use, but with a fully arbitrary system there can just be a few suggested (but optional) tags, along with a weighted system of tag relationships to keep track of similar-yet-different keys and values. For web systems this might not be enough, but for a desktop it is perfect. Why? Well because each user has complete control over all of their data. For instance looking at Jamendo's Genre: tags is an example of collecting data about the relationships between these values (if many songs tagged with "Heavy Metal" are also tagged with "Thrash" then it is straightforward to deduce that Heavy Metal and Thrash are somehow similar, even though the two phrases, from a lexicographical perspective, are about as related as Classical and Rap. This doesn't fit into the current mandatory, non-arbitrary tag system used within audio files, so when browsing Jamendo from within Rhythmbox, which conforms to this non-arbitrary, one value system, it chooses so many unique genres as to make browsing by genre useless (I don't particularly care if it is Symphonic Melodic Doom Metal or Heavy Orchestral Death Metal if it means I cannot see related things together), however with the music on my drive (including the songs I get from Jamendo when I click on Download Album from within) I can retag myself, to change someone's pretentious "Medieval Metal" genre to a more apt and more generic "Power Metal" value. With multiple values I could use both, and with a weighted relationship system I could relate it instead. In such a world I would not narrow down the listed tracks by clicking on a specific item in a list of genres, but by selecting an area within a web of genres.

Oh well, I suppose "Show me the code" applies here, so I'll take a look at Lowfat's code, and if that doesn't prove fruitful then I'll see what prototypes I can hack together using the Pigment libraries for Python.

Friday, 13 July 2007

Why should this even be necessary?

Finally, whatever phallic brained suit at Intel started the Classmate PC project has listened to the extremely poor public relations messages and they have joined the OLPC board. This is still not a reversal of their Classmate PC policy though, which is an incredible shame. Intel's aggressive marketing to the countries as soon as OLPC representatives have left is disgraceful. The competition between Intel and AMD in the x86 processor market should not cause a multinational, multi-billion pound corporation to undercut a non-profit organisation by using its existing financial might to sell a competing product for less than it costs to make solely because the non-profit chose to use AMD's low-power Geode processor line due to its suitability for the project (Geodes have been the best in this field for years anyway, which is why AMD bought them a while back).

On a related note I got to see one of the OLPC's XO laptops at LUGRadio Live 2007, and they are even more impressive in the flesh. If anyone out there still believes that the 'choice' argument between the XO and the Classmate is valid then they need to actually do some research about the topic. The XO laptop is a means to an end, that end being the advancement of education around the globe, especially in areas without enough schools and teachers, and certainly without enough money to buy sufficient textbooks for every subject for their children, and then keep replacing them as they are damaged or made obsolete. It was designed to fit the goals of the project, and every area where current technology is not yet advanced enough to meet these lofty goals they set about inventing it themselves (the screens themselves are a really remarkable achievement, and whichever consumer laptop manufacturer gets its hands on that technology first is going to sell a LOT of laptops, not to mention the 802.11s standard Wifi mesh networking, the lithium ferrous phosphate battery technology and power management abilities (the whole system can go into and out of full suspend mode within milliseconds, ie. between key presses for a touch-typist, the processor and graphics chips can shut down to leave the display running, for instance if the laptop is being used in its high-resolution ebook mode where no computation needs to be done until pages are turned, etc.)). What is the goal of the Classmate PC? To sell Intel processors. How does it do this? It takes a modern PC (when I say modern I mean without any of the OLPC advances), then they rip stuff out of it until it costs $200, then sell it for $100 to make sure they beat the XO. The result is an extremely under-powered machine (the machines are slightly more powerful than the XOs, but they run off-the-shelf software like Windows and Mandriva Linux, which the machine is too slow to run comfortably, rather than the XO's completely custom Fedora spin, which is designed specifically for the low power environment), the batteries last 2 hours rather than the XO's 8, they can only be charged from an electrical socket (there are loads of those in the villages of developing countries), they don't have any kind of hermetic sealing (probably due to heat issues from the clocked-up Intel processors) so they can't even run underwater for the rainy season and will clog with dust in the dry season, the screens become completely unreadable in any kind of outdoor sunlight (the issue with current laptops that the XO solved), but this is arguing on technical merits. The biggest problem with the Classmate is that it exists. The OLPC project is working in the kind of space where the precise technical merits of the solution don't matter as much as the standardisation does. For instance, the World Wide Web standardised on the HTML. There are problems with HTML (which is why XHTML and things have come about), but if multiple systems were used from the beginning then the whole Internet thing would have been stalled by politics, developer complaints, attempts at producing even more standards, many proprietary, and generally everything would be a hell of a lot worse than it is now by only using one standard, even though it is obviously not perfect (nothing is). The very fact that there is a Classmate PC seriously damages the efforts of anyone in that area. This is of course making no mention of the fact that the OLPC project is completely independent of any ties within those industries it may effect, and so are in a perfect position to pick and choose the best technologies for the job, whilst Intel is at the very core of the industry and thus should be the last choice as sole designer of a standard, since they'd end up making it favour themselves over their competitors despite the technical merits of their systems, and it would end up being proprietary, closed and unchangeable. Well guess what happened with the Classmate?

I think I'll end my rant here, but the essence of it is this: Choice may be put on a golden pedestal in the USA, but such capitalism is not suitable for every issue in the world. For a person who's only tool is a hammer, everything looks like a nail. I don't hear anyone in the UK complaining that they don't have a choice of NHSs, because in that area it is better to have one standard and gradually hack away its problems, rather than making competing systems. Another example would be the train service compared to the bus service, train tickets can be bought anywhere and will work on any train regardless of the company running it, whereas I never buy a return bus ticket because I never know whether the bus I want to return on will accept it. As long as the standard is fully open then anyone can come along and improve it (by starting a new train company, for example), and we are not stuck with a certain company's marketing strategy rather than a way to fix a problem in the world. Remember, competition is a clever way to encourage people towards a goal (making the world a better place in the case of capitalism), but it is easy to focus on the system and break the legs of every other competitor to become the winner by default, whilst the whole point of the system (approaching the finishing line, Utopia) has been thrown out of the window.

PS: Yes this applies to the MicrosoftXML format too.

Tuesday, 10 July 2007

Very serious issue, but the semantics are still funny

I was looking through my news aggregator today and came upon this BBC news story. Whilst it is a very serious issue I couldn't help being amused by the one line summary in the RSS feed:

"China executes the former head of its food and drug watchdog to death for corruption, state media says."

Yes, it was such a severe punishment that he's not to be executed a little bit, nope he's to go the whole hog and be executed to death.

Oh, and in case that story has ruined your happy mood here is a nice video to get you back into your safe-by-security-theatre, I-can't-do-anything-about-this-stuff-because-I-have-been-trained-as-a-consumer-monkey-incapable-of-doing-anything-for-myself-so-that-companies-can-sell-me-basic-things-as-services so-called lives.

Thank you

Monday, 9 July 2007

LUGRadio Live is over

Well, I'm back from LUGRadio Live and I have gathered a mass of tshirts, stickers and pens. For some reason I took part in the legendary Adam Sweet's Gong-A-Thong Lightbulb Talk Extravaganza (which was pretty funny I must admit). And I lost. To a man talking about pub food distribution strategies. Oh well, he was a random drunk guy and deserves his Nokia N800 Linux smartphone thing.

I've got some DVDs of OpenSolaris, which is nice, since Sun says "Hey! This is Open Source now! It's free!" but then makes you go through some registration crap to actually access it. But now, probably thanks to Ian Murdock (Mr "I am the Ian in Debian", but when I say he's "in Debian" I don't mean this Debian because that would be wrong, especially since his wife, Mrs "I am the Deb in Debian" (I know, probably one of those weird celebrity marriages where they don't end up with the same surname) would probably have something to say on the issue. Oh damn, now I have opened up a can of worms involving 3-way strapon sex. Bugger.), I have 2 DVDs of OpenSolaris and some distributions based on it (Belenix, Schillix, Nexenta and of course all of the source code, as well as a DVD of Java-type stuff (yay, I really like Java, especially since I'm forced to learn and use it in University when Python is a hell of a lot easier to get my head around!)). Which is nice. I always like to expand the number of Free Software computer systems I try.

So yes, my taking part in Adam Sweet's oiled-up, sexual monstrousity... It was basically an hour of 3 minute talks, seperated by Adam Sweet (wearing a thong, but also being a pussy and wearing pants underneath) banging a gong. I decided to get up and have a bit of a rant about Firefox being seen as the new desktop and web applications trying to reinvent perfectly good desktop apps (which I have blogged about earlier), and was complimented when I stepped down by Ted Heagar (who works for Bungee Labs who do web apps! (Actually, to be REALLY ironic, my talk included how web apps are actually Idiot Exploiter/Firefox apps, and as a 64bit Epiphany user this is a nihtmare. Guess what? Searching for "Bungee Labs" on Google gives the top result as their site I just linked to, but what does Google's cached description bit say? Take a look:

3 letters, and two of them are Ls!)), then later on at the Saturday night party by a guy who turns out to be a Flash developer for the BBC (a funny story which bagged me a Neuros tshirt at the goodbye session :) ), and then on Sunday morning by Stuart Langridge himself (apparently that's what he's talking about at GUADEC). Well, I'm glad I didn't get a shoeing over it at least (that was saved for the guy carrying round a hubcap :) ) By the way, my GNOMEFiles news feed told me about Tribler, which looks like the kind of thing I am advocating, it is a peer2peer system using Bittorrent and YouTube and stuff, which links to external players (namely VLC) to do the playback, and stuff like that. Basically embodying the kind of program I would love to see (well, until programs are done away with at least)

I also met a nice guy at the party from South Africa (oooo, home of Mark Shuttleworth indeed!). He runs the local LUG/University society, so it was really interesting talking to him about their Freedom Toasters and stuff (I was saying how I like scribbling down user interfaces, and he said their current UI is a bit terrible and is being reworked in Python and GTK. Which is what I was thinking of making one in!). I also saw him about in the hotel and train station too. Overall it was an amazing event, and I want to say a big thank you to Gareth Qually (wow, couldn't believe I eventually found his site!) (even though he'll probably never read this) because I didn't get chance at your talk because I was being a bit of a pussy, but anyway: Thank you for trying the apps, reading documentation, messing around and experimenting, providing very useful feedback and most of all not saying "Linux is shit, it doesn't run Photoshop". Thank you thank you thank you thank you, I wish there were more professionals out there willing to experiment and generally mess around with things they don't know in order to find out stuff, rather than forking out masses of money for things and then becoming blind to the existence of anything else. Cheers for the great talk too, by the way.

So yes, I'm home. And my packaging app is nearly working at a prototype stage. I seem to be in good books with Harriet's Mum for getting her some perfume for her birthday which also makes the chances of me going round soon a bit higher, which would be nice 'cause I haven't seen Harriet in an eternity (a few weeks) as she couldn't come to LRL due to the birthday thing and other stuff, and I have some stuff to give her for generally being ace and everything (well done on your exams and things by the way!).

So yes, I think I'll leave it there. No N800 for me, but now the OpenMoko thingie has come out, so the N800 is SOOOO last month (I promised myself that if I did win one I'd give it back to the LUGRadio crew to donate to a worthy developer, as long as it wasn't Adam :) )

Saturday, 7 July 2007

Red Lights Of Death. All I can say is ROFL.

In other news, *sniff* oh God, *sob*... I can't even bring myself to... *blows nose* a rights abusing media whore might have to think of something new to keep the money rolling in! I don't think I can even begin to feel the hardship and suffering she must be going through right now. What a cruel world this is.

PS: I wrote this from within the bollock-licking Blogger.com interface, which has now decided that letting me write something in the "Title" field is obviously asking too much.

Friday, 6 July 2007

Aren't I Clever?

I was reading a few forum threads about AROS when I saw the topic of multi-touch screens raised, with a link to an Intructables tutorial for building one (with some nice links). However, I read the guide and watched the video, but couldn't help thinking that there had to be a more accurate way of making one, so I sat down for 10 minutes with some paper and a pen and went through a few ideas. After dismissing some ideas which clearly aren't scalable I think I've actually come up with a pretty neat and easy solution. I'm obviously not going to detail its inner workings here, but I'll build a prototype as soon as I have time to do a little testing. Sheffield would probably be a good place to do this, since Sandbach isn't really known for its DIY/craft shopping scene.

Oh by the way, stumbled along this too.

Oh yeah. LUGRADIO LIVE!!!! W00t!

Ugly Mug

I'm a little vexed at the current implementation of the Mugshot client side application. The idea of Mugshot is to collect together as much of one's online activity as sensible into one place, then provide software and APIs to allow desktop applications to access online services and online services to access desktop applications. This is a good idea, I think, and I certainly prefer it to the whole browser-based mentality (Flash-based video players suck balls! They seriously do! Aside from the obvious proprietaryness they're slow, clunky, crash-prone, ugly, completely inaccessible and detached from the rest of the system and everybody keeps reinventing the wheel and making a load of 75% usable apps rather than working on the remaining 25%. Media players have been around for AGES, why not extend them to use online features? Windows Media Player has been doing this for ages (honestly it has. Just because nobody with half a braincell lets Windows Media Player through their firewall doesn't mean it *can't* open 5 Idiot Exploiter windows to the same gay porn site when attempting to find a codec for an Amiga conference video) and iTunes is an example of a player that does this in a way that people use, and of course there are those options for people with better things to do than suck collective corporate cock like Rhythmbox, Amarok, Banshee, etc. The "But it STREAMS!" argument doesn't hold water since we've had the likes of Real doing that on the desktop since before the last great realisation that the web isn't as orgasm-inducing as those with an agenda to sell promised. And as for embedding desktop media players inside a web browser... Gah, I give up on those people!). So, the problem with Mugshot? Well, like many Konqueror users will appreciate, it makes heavy use of Firefox. Now, despite what Microsoft might tell you, Firefox is not part of the GNU/Linux desktop (unlike Idiot Exploiter 7, which IS an integral part of Windows Vista (Note to self: Never contradict anything used in court as evidence to clear my name) and should therefore have all of its various bugs bundled together as part of Vista's!). Of course it *can* be, and usually is, but the two most ubiquitous desktop systems used on top of Linux are GNOME (with its Epiphany browser (which I use)), and KDE with its Konqueror browser, and therefore Firefox is always an add-on. Many Free Software distributors bundle Firefox with their systems by default, but they are still adding it themselves.

The problem I have at the moment is one of standardisation. There is a significant lack of cross-application APIs for high level stuff that users might give a crap about. Dbus is obviously a step in the right direction in this regard. I know, I know, but DCOP sucked precisely *because* it was part of KDE. Like Artsd. All of those petty squabbles were bound to split development into an us-and-them scenario, and along the way create different implementations of one-to-rule-them-all technologies (like inter-process communication buses and audio mixing servers (NOTE: I heard great thinks about PulseAudio on the Ubuntu development Wiki a while ago. I installed every PulseAudio package I could find in Ubuntu and guess what? I instantly lost all sound, applications refused to start due to no available audio channels, I ended up trying countless media players to watch Click because the lack of audio made me think it was a codec issue, etc. Know what fixed the issues *every* time? "killall pulseaudio". I just ended up uninstalling it (and when I shutdown I was shocked by the logout sound, which I forgot existed!))). Developers are finally starting to realise that there is more than their own little desktop niche out there, and the GNOME/KDE fanboism has cooled down somewhat recently (at least among developers) which has lead to more exploration of mash-up desktop systems based on "I like this program" and "This program does what I need/want" rather than "Well, at least it works without having to run 30 weird commands". Of course now that the lack-of-integrated-applications barrier to entry is dissolving more desktop systems are being created as a result (XFCE seems like quite a popular GTK alternative to GNOME these days, but I could never get used to the way its panels work. Of course the GTK bit is still an unfortunate artifact of the Free desktop's genesis, I shouldn't have to give a crap about what GTK and QT are). Personally I think the ever-increasing use of Freedesktop.org as an us-and-them Switzerland is also a boon. In my opinion visiting Freedesktop.org should be the first step in creating a desktop application/technology. Backend developers (things like Dbus) can check for any projects which do a similar job, and if they exist either extend it, fork it, create and register a new system with a compatible API, gouge out a more fundamental backend from the existing code and make a new project which abstracts itself, along with the gutted existing implemetation, on top of this new backend, whatever. Application developers can do the same thing, but focus more on the API stuff (backends with compatible APIs can usually be directly compared in different scenarios, since the implementation is hidden (that's the point) and the most efficient for a given limit can be used. Applications which are directly interacted with, however, is entirely up to preference. I am not saying one-messaging-client-to-rule-them-all, I am saying using the messenger you prefer should not be restricted by integration/basic features/etc., just like Miranda vs. Pidgin vs. Adium comes completely down to preference, as they all use libpurple as a backend and thus have the same capabilities (of course that particular example is complete bollocks as Miranda uses Windows's graphics toolkit and runs on Windows, Adium uses the Cocoa implementation of OpenSTEP and runs on OSX and Pidgin uses the GIMP ToolKit and runs on the various systems that GTK supports). With every popular project following the development of neighbouring technologies far more time could be spent doing cool stuff rather than reimplementing things which already exist, users could switch between different applications that do the same job without worrying about configuration or setup, because the backends would be the same (and if work is structured like this and more cool features and experimental ideas are tried then switching back and forth between applications is a must if anyone is going to bother trying all of these new features).

KDE4 looked like it was going to play fair with the stardardisation idea, but instead they seem to have gone for another custom layer of abstraction, this time on top of those that already exist making KDE apps capable of using the existing standards, but making KDE standards inaccessible to external software (eg. why does Decibel exist? It just does the same job as Telepathy as far as I can tell, but adds another layer on top of it. Of course I am no expert in this area, but if it does do something new then why make it part of KDE rather than as a separate project with its own merits? If I want to make an application which uses it users will need to install vast chunks of KDE to run Decibel to run my application, which shouldn't be needed). Plasma admittedly looks cool, but I would very much like to see implementations of standard ".desktop" files available on the work area and such.

What would all of this standardisation allow? Well, it would mean that Redhat developers can release a Mugshot program which works with all major browsers, since they would all use the same plugin architecture. Of course this would just reimplement a current feature (albeit in a better way), but if every level of the system was available via a known API then Mugshot's features would be truly limitless. No longer would Music Radar need to understand different media players, because every media player would send the same messages (probably through Dbus) about current song, play/pause, etc. Instant messaging could be properly integrated throughout the desktop. Collaboration on documents and other files could happen much more easily, since different word processors would all understand the same editing API.

Now, many people out there will find this very familiar. There is a good reason for this. It is called the UNIX philosophy!

PS: It's 1:14AM and I'm tired. I'll add link and clean it up later :)

Tuesday, 3 July 2007

Overengineering 4TW

I know Rhythmbox can display notification bubbles when it starts playing a song, but it has been hit and miss for m (using Enlightenment 0.16 as a window manager can sometimes be troublesome :( ), but after getting the Mugshot software working (as far as I can tell) I have been getting notifications. Rhythmbox is telling last.fm my song, and Mugshot is picking up on that and telling me. Pretty nifty, if a little OTT!

GNOME Blog Works!

Yes, I know. I am a genius. Anyway, just tried Ubuntu Feisty's package of gnome-blog and found that it can use Blogger's new API (it changed when Google bought them, thus making the older versions not work for accounts using the new API, like mine). This is a welcome relief since I no longer have to deal with the nightmare of writing blind (white-on-white == bad usability), and if a dodgy website (or browser) loses the Blogger page then I'd lost it all (as happened to me just :( ). Anyway, now that we have established that GNOME Blog works onto the main issues of the day:

The Free Software Society has now got a forum, located here. Thanks go to our secretary Harriet for that :) Of course there is still the Mugshot group as well (although their software could do with a little improvement, I'll download the source and see what I can do to add proper last.fm, jamendo.com and other integration).

Check out this video: Whilst being a slightly exaggerated parody it is still very insightful and funny too. Still has nothing on the master though, Prof. Eben Moglen, who recently gave a talk in Edinburgh. If you haven't seen any of his talks then you're missing out, he really is a powerful and passionate speaker who makes beautiful use of the English language.

Also, check out Frets on Fire, which has now had its non-Free songs and fonts removed and has been packaged for Debian (and therefore Ubuntu). It's made with Pygame BTW :)

Finally....... I'm going LUGRadio Live! Woooo!!!! I'll meet Jono Bacon and other people I have admired via HTTP for all these years (well, 2 or 3). Whilst some people I would like to chat with won't be there (namely Mirco), it could help me become more known throughout the community which would be good news networking-wise as president of the Free Software Society (hopefully my social networking will beat my ethernet networking, the height of which was getting ping to work and kicking my little brother's ass on Crack Attack).

I am pondering GUADEC as well, but accommodation would make it impossible for a week-long event :( (unless I am an extremely cheeky bastard to Jo, which I honestly try not to be)

Lawyers are our friends too...

... Well, at least some are. Check out Prof. Eben Moglen's latest talk stunning, as usual. You should check out his other talks too, because they are great to watch as he's a very powerful and persuasive speaker. Prof. Moglen was an accomplished programmer even when 14, and after restudying Law and History he became a Professor at Columbia University in the USA. He has a laudable vision which his work attempts to make real, a world of privacy and anonymity, freedom to use and improve all works represented in a digital fashion (ie. software, music and any other art form which can be shared freely for no cost thanks to computers and the Internets), a world where communication is uncensored, anyone can use the commonly owned electromagnetic spectrum thanks to computerised devices which allow multiple overlapping signals to coexist without interference, all described in his famous Dotcommunist Manifesto, and is steadily working towards such a world by firstly ensuring that the right of the individual to privacy outside of state control is maintained (eg. making sure encryption is not made illegal) which he accomplished in the early 90s by acting as defence for Phil Zimmerman's Pretty Good Privacy encryption system when it was attacked by the US government (these days the GNU Privacy Guard is a Free Software, and therefore more widespread, descendant of this), he then became lawyer for Richard Stallman's Free Software Foundation, and has recently stepped down as a leading figure in the FSF to nurture his newly created Software Freedom Law Centre. He has also worked with Larry Lessig and others on the Creative Commons project. Basically he knows exactly what he wants, and knows exactly how to get it.

Today I also found a humourus Google TechTalk video on a similar topic. Called 7 Ways To Ruin A Technological Revolution it outlines how the legal systems of the world seem to be blinkered towards "must make up new rights for authors, must extend and enforce those rights" without ever thinking of other ways to keep the flow of new and innovative ideas going, and even denying the existence of evidence that contradicts their purely empirical thinking. The quote from the World Intellectual Property Organisation is particularly amusing, but also quite horrifying, about how Open Source software should not be taken into account when dealing with "intellectual property" (copyright, patents, trademarks, etc.) law, since it doesn't fit the WIPO's world view about protecting and extending copyrights and such. I'm sorry but this seems just like the masses of FUD coming from corporations like Microsoft who claim Free Software/Open Source software don't respect intellectual property. Oh of course, because free software projects, which have all of their code freely available for anyone to study and look for any such infringements, and places such code under a series of copyright licenses (thus making Free and Open Source software intellectual property) don't have any respect for the system which makes them
work, and of course corporations like Microsoft and other proprietary software organisations, which keep their code hidden from any investigators, are the pillars of high moral standing that keeps the software industry respectful of the rights of others.