GPL licenses in installers

I’ve bitched before, but only in a general sense, about the GPL licenses in installers. Specifically, I should not be required to agree to the GPL to install a piece of software. Personally, I feel that once I have a piece of software, I shouldn’t have to agree to anything to install it, but that’s a different story.

The GPL is explicit about the fact that you can do anything with the software once you have it, because it doesn’t cover use. It covers distribution, so if I don’t give the .dmg to anyone else, I don’t need to agree to the GPL.

I also want to mention this fantastic groklaw article here, about the GPL, because it’s great.

konfabulator

I’m a mac user. I have a blog. Union law therefore requires me to mention Konfabulator. It lets you put ‘widgets’ on your desktop – little image / XML / javascript components that do stuff like calendars and clocks and cuteness.

It’s all too unbearable for words. I used it for almost 4 hours before it drove me crazy. I have tools that do all this stuff. The default widgets are just not compelling. The one thing that would make it bearable would be if I (a) the widgets were on a layer behind the desktop icons, and not fully-fledged windows, so they don’t keep popping to the foreground on top of my other windows, and (b) if I could lock the layout so I can’t click on them and they won’t take the focus. But then they just become ‘further for macos’. Which would be a good thing, actually.

Oh, and the widgets aren’t configurable. Hell, resizable would do, I really need a frikking battery meter taking up half my visible screen area. And yeah, all the default colour choices are fine, I don’t need to change the colod of the stock ticker (stock ticker? Why do these things always have a stock ticker?) so it’s not INCREDIBLY UGLY. Sigh.

2lmc weigh in

programming languages

Programming languages have grammar. There are languages like perl, where the grammar is composed almost entirely of random ‘$’ and ‘%’ symbols scattered throughout the code. And there’s languages like AppleScript, where the grammar is practically english, making it much nicer to read than perl. Hah, perl is often called a ‘write-only language’, it’s so incomprehensible.

But I loathe Applescript, and I think perl is luuurvely. And it’s for this exact rule. I can use computers. I’m a geek. And I’m prepared to learn a new grammar. That’s fine, and it’s a specialist grammar, and programming is like that, I’ve learnt a heap of these things. But english-like programming languages are confusing. I can speak english. I know how it works. In english, you can rearrange words and have the sentence still make sense. Try doing that in Applescript. Grammars that look like english, but aren’t actually english, annoy the hell out of me.

Why Mac OS X packages are annoying

So, an experiment. Take a folder on your Mac OS X computer, and let’s hypothetically assume it’s a folder full of really important documents that you mustn’t lose. Now, rename the folder. For some reason, the name you want for the folder is ‘Really important files for my .app’ because.. uh.. dunno, you’re developing an application and you need to store files for it. Or something. Unlikely, sure, but possible.

But wait! It didn’t work! The finder just stripped off the ‘.app’ from the end of the folder name. Darn. Oh, well, these things happen. Lets get back to work… Hang on. I can’t open the folder any more. I double click on it, and nothing happens. what’s going on?

This is a truly stupid behaviour. The finder didn’t strip the ‘.app’ extension, it’s hiding it, because it thinks that the folder is now an application package. Now, application packages are a truly wonderful idea that I’d be incredibly impressed by if I hadn’t seen them 10(?) years ago in RISCOS. But your folder here isn’t an application package, it’s just a folder with a silly name.

I’m not sure where the stupidity lies here. The finder should not let you rename a folder like that, for a start. But using file extensions on a folder name to indicate that the folder is actually a fundamentally diferent sort of object (from a user point of view) is also stupid. As is the fact that you can’t rescue the folder once you’ve done it except through the terminal. Which is an advanced user concept, damnit, and I shouldn’t have to use it EVER. Hell, the only way you can even see your files again is to right/control-click and select ‘show package contents’. Of course. What a simple, basic-user findable concept.

Now, blech has pointed me at a little app for OS 9, at least, that can fix this problem – Package First Aid.

But this is almost a whole other rant. When there’s an application that exists to repair an OS fuck-up, this should be a bad thing. In the same vein, windows XP has superb system state rescue code, so you can roll-back to earlier versions. You need it because it’s so easy to completely destroy the system. Rather than fix the problem, they just produce really nice looking band-aids.

In the same way that the finder shouts at me if I change the file extension on something, it should at least shout at me if I perform a potentially destructive (and it is destructive from the point of view of a non-expert user) operation on a folder. Especially one so non-obviously destructive.

fast computers

there aren’t any fast computers. Some computers are faster than other computers, but owning a faster computer merely lets you run a more advanced operating system and suite of software, and slows down the actual speed of the computer till it’s the same as always. There’s always the thought ‘I could run, say, Windows 3 on this machine and it would fly‘, and you could, but there’s a reason no-one uses Windows 3 any more, and it’s Trumpet winsock (oh, the memories).

every new version of windows (I’m using windows as an example for the moment, but don’t get hung up on it, we can and will apply this to other things) has features the last one didn’t. I could be mostly happy with windows 2000, say. But Windows XP does this really nifty thing when you put a blank CDs in, it’ll open an explorer window and you can drag files into it and burn them to CD, so you don’t have to mess with awful 3rd party crap. Or when you plug a digital camera in it’ll do the right thing, and again you don’t have to mess with nasty 3rd party camera drivers. (yeah, yeah, stifling innovation, waffle waffle waffle. Have you ever used the obscenity Canon try to foist off on you as an interface?)

So on a decent machine with a CD burner that will take it, I’ll install Windows XP. And so the more powerful machine will be slowed down by the overhead of trying to look like a huge boiled sweet. I’ll live with this, because I get other benefits. But it’s annoying.

It’s not just Windows. Gnome 2, say, is slower than Gnome 1. But it’s much nicer. Mac OS X is a bit slower than Mac OS 9 (a bit slower. Just a little bit). I have a mac laptop now that’s 3 times the speed of the last laptop I had. It’s about the same speed to use. Certain things have changed – I can scroll web pages now and not have to worry about redraw speed, which is nice, but the slowness has moved into other things. App-switching can be sluggish sometimes. Performing certain functions in apps can be slow. But it’s so nice, and I’m sure not running linux on this thing, not after the pure slickness that is OS X, it would be unbearable. So my machine is the same speed as the last one.

(Anyone saying I need more memory is missing the point. There’s >300 megs in here, linux would fly… I know MacOS wants memory, that’s my point)

AudioFile::Identify::MusicBrainz

After much muttering back and forth between blech and I, I have written and released AudioFile::Identify::MusicBrainz. The old MusicBrainz client relied on the C library they distribute, which was silly for something that sent and recieved pure RDF, so a pure-perl implementation was just begging to be written.

So, upsides, it works, there’s exactly one sort of query you can send it, but that’s fine, it’s the important one – you can say ‘I know this about a track, tell me more’. The next step is to give the user a nice choice, and then let them write the updated information back into the ID3 tag.

Downsides, I’m not using ‘real’ RDF parsers, I’m using XML::DOM. This worries me, frankly, I’d much rather do the right thing, but I get a headache trying to make the perl RDF stuff work. There’s an RDF::Simple out there now, though, so maybe I’ll try that…

I’m going to get a reputation here for stupidly long module names, you know.

Blog-Mail convergence

Muttley caused this train of thought. Blame him.

Thoughts for a blogging toy

Here’s something I might do. Every time I post a blog entry, people on a list could get a mail with the subject, contents, etc, just like I actually just sent the thing to a mailing list. People can reply to the mail, and their replies get put as comments on the blog entry, as well as mailed to the rest of the list. People posting comments from the web page, their comments go out to the list. So if you ignore the mail aspect, it’s a traditional blog, and if you ignore the blog aspect, it’s a traditional mailing list, albeit with the caveat that only the owner of the blog can start a thread. And hell, that’s optional, you could allow free posting…

Once you do that, of course, the blog could be viewed as merely a web based archive for the mailing list, just with a much nicer web interface than most mailing list archives. Blogging software has put a lot of effort into managing date-based information archives, much more than mailing lists. On the other hand, mailing lists have put much more effort into managing threaded conversations than blogs have.

This blurs the line about what it is, of course. I’d probably initially implement it as a blog, with a bit of mail glue attached, but I suspect the more elegant way would be to have a mailing list with a very sophisticated web archive attached to it, one that handles threads as entries, and that allows you to post to the mailing list through the archive page. The distinction between the two rapidly becomes moot, of course.

Hmmm. Must play with siesta

(later) More Rambling

So, muttley has rambled as well. Interesting. He has some ideas about multiple blogs tying together somehow that I’m not seeing a way of making work in my head, and I hate talking about things I can’t construct a nice working mental model of, but he’s right, it would be nice to have a system of mutliple blogs tied together. Like this.

You get thread ownership problems, though. As things stand, I control a conversation on my blog completely. (well, if I had comments working yet…). That’s ok if the blog is also a mailing list, because I’d control the mailing list server completely as well. But if, say, threads I started were hosts on my blog, and threads paul started were hosted on paul’s blog, we get issues of potential censorship, and people picking the thread to comment on based on who’s blog the start thread was on.

That issue asside, it’s quite easy to adapt the first model espoused above to this sort of thing. All the participating blogs would send stuff to the same mailing list, and the mail reciever would use some smarts to determine which mails were replies to which blogs, and post comments appropriately. All doable. For the second, more elegant, solution, where the blog is merely one way of representing the ‘message’ objects that the back-end understands, we’d either need to host all the blogs in one place, or have a distributed server, or something. Not sure.

Tell you what. I’ll actually implement something at some point, and we’ll see how easy the collaborative stuff is then.

Blogging and Content Management

I’ve been toying with architectures for the Ultimate Content Management Application, a bit of vaporware that’s suffering from Second System Effect before I even come up with a coherent plan, and to do this I’ve been looking at content management systems. Well, ok, I’ve been trying to look at content management systems, because almost everything I find that a) calls itself a content management system and b) is free, is not a CMS, it’s a bad slashdot clone that lets you take the dates off the entries. I’m sure there’s more to content management than there is to a blog, but I can’t find any evidence to the contrary. Of course, there might be expensive things out there that do what I’m imagining, but nothing I can download. Which is no bloody good, I want to play with a Real App.

This is in weird contrast to this megnut which complains that most blogging engines are bad content management systems that let you display date-based lists of entries and call themselves blogs. Weird. So, are there any CMSes out there I can play with? Preferably written in perl…

thanks to blech for the megnut link.

blogroll

Ah ha! I have a blogroll. Ph33r me.

In other news, Template::Plugin::XML::Simple is really nifty.

<p class="code">
[% USE blogroll = XML.Simple('/export/home/tomi/web/jerakeen.org/blogroll.opml') %]
&lt;p class=header&gt;blogroll&lt;/p&gt;
&lt;p&gt;
[% FOREACH section = blogroll.body.outline %]
  &lt;a href="[% section.htmlUrl %]"&gt;[% section.text %]&lt;/a&gt;
  [% UNLESS loop.last %]&lt;br /&gt;[% END %]
[% END %]
&lt;/p&gt;