Archive for the 'Linux' Category

Coming to America

Saturday, April 5th, 2008

I’ve been noodling about in Inkscape, and reading The Order Of The Stick, a webcomic. It’s got a unique visual style, which always makes me laugh, and I thought (despite my lack of artistic ability): I wonder if I could do that?

LugRadio Coming to America

(there’s the SVG too to look at, which is a better size, although it’s 1MB because of the embedded images)

I’m not brilliantly happy with Chris or Adam, but I think Jono and I came out OK :)

Maybe I should do a LugRadio webcomic.

Inkscape’s a really good tool, by the way. The people who do it should feel very proud. I am distinctly short of artistic ability, and I’ve barely used Inkscape before, and I managed to put that together in relatively short order. Good work, Inkscape team.

Oh, yes, and LugRadio Live USA is this Saturday. We’re coming to America. Get ready.

Editing a PDF (sorta) on Ubuntu

Monday, March 31st, 2008

I have more than once had to fill in a paper form for people in America. Obviously, doing such things is a huge pain, because actual paper mail — with stamps — isn’t just so last century, it’s the century before that. You know, the one with robber barons and Lord Kelvin and workhouses. Put a stop to it. Email. Email, I tell you. It’s gonna catch on, just you wait.

Anyway, a fair few American corporations (and, wouldjabelieveit, the American government too) provide PDF versions of their forms so you can download them and print them out at your leisure. They’re still designed to be printed and written on, though — they’re not officially PDF “forms” in the sense that the PDF reader can give you textboxes and an FDF file to fill them in, they’re just PDF documents. Nonetheless, I find myself wanting to be able to open them up in OpenOffice.org and edit them.

Now, you can’t do that. (Well, you might be able to, but it’s hard.) All I actually need to do is overtype them. So what I do is:

  1. Convert the PDF to an EPS file with pdftops: pdftops -eps AmericanGovernmentForm.pdf (the pdftops program is in the poppler-utils package)
  2. Create a new empty document in OpenOffice.org and drag the new .eps file onto it, which will embed it as an image
  3. Use Insert | Frame to draw a text frame on top of the new image (set it to have no border; set the background colour to anything other than No Fill and transparency to 100%)
  4. Overtype onto the form in the text frame
  5. Export as PDF to get a PDF version with your text in
  6. Email it to the government

No stamps. Their evil must be stopped.

NetworkManager and phones and data plans

Sunday, March 2nd, 2008

Dan Williams:

NetworkManager mobile broadband support…can most likely use your GSM mobile phone…if you add the appropriate stuff to the HAL .fdi file.

Blimey, that’s excellent. What would be required to get .fdi files for loads of phones into HAL by default, so it Just Works out of the box? For a given mobile phone model, will the serial port always have the same settings, or does it depend on who your phone company is and so on as well? It’d be brilliant to have this all working with no configuration required.

(PS. Dan, I couldn’t use OpenID to log in to leave this as a comment on your site; it didn’t recognise http://www.kryogenix.org/ as an OpenID for some reason.)

Media players and the TV

Saturday, January 26th, 2008

I’ve spent a while trying to get Elisa to work on the computer attached to my TV (a PPC Mac Mini running Ubuntu). Video was slow and jerky, and there was a strange white bar graphical glitch. Anyway, after fighting all day with it, compiling the latest version of Elisa and so forth, I eventually gave up and installed MythTV. And it works perfectly.

I don’t really want MythTV. I prefer GStreamer-based applications, because I think GStreamer is the way forward, and Myth does a mountain of stuff that I don’t want, like watching live television; all I want to do, for the moment, is watch recorded video files. I like Elisa’s interface more than Myth’s. I’m more able to write Elisa plugins than I am for Myth.

Still, Myth (using VLC as the playback program) works fine, and Elisa doesn’t, and I don’t think Elisa will get better; it seems that the problem might be the open source ATI drivers, which aren’t (apparently) as good as the closed source ones. I can’t run the closed source drivers, though, because they don’t exist for powerpc, which is what the Mac Mini is (even ignoring that I don’t want to run them because they’re closed source). So MythTV it is. There is probably a lesson here.

Making the arrow keys work in VLC

Saturday, January 26th, 2008

One of my big flaws with the VLC media player is that you can’t use the arrow keys to skip backwards and forwards in a video. It turns out that this is because the left and right arrow keys are already configured to mean “navigate around a DVD menu” and you can’t configure a key twice. So, if you need to use VLC for something, and you want the arrow keys to work, go into the settings and set the DVD navigate options to something other than Left and Right. Then configure “jump forwards” and “jump backwards” to Right and Left, and then it’ll work. God knows why it has to be this way, but at least if you do that it works.

Epiphany download icon

Tuesday, January 8th, 2008

Did you know that Epiphany puts a little icon in the notification area while it’s downloading stuff?

epiphany download icon

Well, you might have mentioned it to me, because I didn’t know. Anyway, that’s really cool. A couple of minor issues with it; firstly, the icon has a right-click menu with only one option, “Show downloads”. Since left-clicking the icon shows and hides the download window, I can’t think what the point of the right-click context menu is; surely right-click should just do the same thing as left-click? (Bug #508151 submitted.)

Secondly, and not really an Epiphany problem; I’d love to see the “downloads” window go away, to be replaced by a “Downloads” folder which has Special Nautilus Magic when displayed. The folder could show partial downloads in progress, with how long there is to go, a clickable link to the page it was being downloaded from, etc, etc. This requires some heavy co-operation between Epiphany and Nautilus (although it might be doable as a Nautilus extension; having said this, I can’t find a way to add a top bar (like Deleted Items has or the CD burner has) to a Nautilus folder from an extension), and I’m certainly not the first person to suggest it, but I think it’d be deeply cool.

Epiphany

Wednesday, December 5th, 2007

A little while ago I decided to try out Epiphany instead of Firefox as my main browser.

It’s excellent. It’s a proper Gnome application, which Firefox isn’t — it just fits in to my desktop because it has a proper Gnome interface, and I really like that. It starts up and runs way faster than Firefox does; it doesn’t crash like Firefox does; it does everything. Huge applause for the Epiphany team, I say. Install the epiphany-browser package on Ubuntu to get it. It uses the same rendering engine as Firefox, so the whole web still works perfectly.

I’ve heard a fair few people bitch about not having access to Firefox extensions, but, frankly, it turns out that I don’t actually need any of them. Epiphany actually comes with a load of extensions (install epiphany-extensions on Ubuntu to get them) and there are third-party extensions too if you like. I’ve changed my opinion on this; I did think that it was bad that extensions need to be written in C or Python rather than XUL/JavaScript, but hey.

Of course, the one big missing thing for me, when I have my web hacker hat on, is Firebug, which is the greatest web development tool that’s ever existed. Wish that existed.

Epiphany is also the default browser in the next release of Gobuntu, which is what I run, so I’d have been migrating to it anyway — it’s jolly pleasing to note that it’s actually better, too.

Gobuntu

Tuesday, October 23rd, 2007

This weekend I upgraded my machine to Gobuntu, the entirely-free-software (but see below) version of Ubuntu 7.10 Gutsy Gibbon. Since I’m specifically named as the use case (!) it seemed like the right thing to do. First, the good news: it all seems to be working fine. Since I was doing a clean install (again, see below), and because my laptop has an AMD Turion chip in it, I went for the 64-bit version. (Thanks to Dave Morley for taking the time to tell me whether the 64-bit version was worth it.) Everything works; no problems at all. Good work, the Gobuntu team.

I have a few extra things worth mentioning, though.

First, like Mark Pilgrim, I’m disappointed that the issue with Firefox’s non-free logos wasn’t resolved before release. Apparently the solution will be to replace Firefox with Epiphany, the Gnome browser which is based on Gecko, the Firefox rendering engine. At that point people will hopefully be able to move to the unbranded “Firefox”, which seems to be called “Iceweasel” or something similar; I don’t really like using Epiphany, because I want lots of Firefox extensions that aren’t available for it. This seems like a good solution in general, though, and it’s what I assumed would be the case in Gobuntu; I’m slightly surprised that it wasn’t.

Second, there doesn’t seem to be an upgrade path from Feisty, the last version of Ubuntu, to Gobuntu Gutsy. That’s really annoying. Now, possibly there is such an upgrade path; possibly just upgrading to ordinary gutsy and then installing the gobuntu-desktop package would work. However, I couldn’t find anything, anywhere, to say that that was the case; does that package remove all the dubiously-free stuff that Gobuntu doesn’t contain? I don’t know. Gobuntu’s very new, so it’s entirely understandable that there’s not a lot of documentation yet (I had to hunt around rather a lot to find the official Gobuntu page so that I could link to it!), but it was pretty disappointing that it wasn’t clear how to install it. (I eventually decided to go with a clean install, because then I could be sure that I wasn’t running anything non-free, and because I wanted to take the opportunity to move to 64-bit, and because I liked the idea of being sure that I hadn’t made configuration decisions three years ago that were adversely affecting me now).

Third, and not a complaint, there’s no live CD for Gobuntu yet. I personally think that’s fine; again, Gobuntu’s new, and at least initially it’s probably not destined for “ordinary” users; having people like me use it for this release should shake any obvious bugs out of it ready for the next release. My ideal eventual goal is that people install Gobuntu by default, but we’re a way away from that yet. All the hardware on my laptop that I care about works fine (the wireless card doesn’t work, but then I wasn’t using it anyway, and the video card doesn’t do 3d acceleration, but I can live without that for now). This leads on partially to…

Fourth, also not a complaint, Gobuntu allows you to install non-free software once you have it itself installed. There was something of a furore about this on the Gobuntu mailing list, but I can’t think why. The distribution is, at the moment at least, destined for people who want to ensure that they’re using entirely Free software, and are prepared to deal with limitations (like no wireless) to make that so. I personally am not going to install any non-free software, even if it’s offered. The idea that Gobuntu should not allow non-free installations from the Ubuntu archive implies that the plan is to somehow trick people into running Gobuntu without realising it, so that they must be forced to stay on the straight-and-narrow path of free-software-only. I don’t need forcing; I choose it. Let’s have some faith in people.

All in all, I found it to be pretty successful. My experience hasn’t got any worse since Feisty (and I get the advantage of improvements made in gutsy), but now I have a warm comforting satisfied feeling that I know that my machine is entirely Free. Thanks for that warm feeling, Gobuntu and Ubuntu communities: I like it.

Gnome filepicker windows

Tuesday, September 25th, 2007

From the Ars Technica review of Gnome 2.20:

GNOME’s file dialogs are still extremely weak in many respects. For instance, the file dialogs still do not support even basic file management tasks like renaming and deletion. The file dialogs also lack adequate support for thumbnail display. Dialogs in some applications will show a thumbnail for one item at a time, but the file dialog windows do not display thumbnails next to individual files in the list—a feature that can be found in both KDE and Windows. It’s a serious deficiency that has long detracted from the general usefulness of GNOME’s file dialogs. In many cases, when I use a file dialog in GNOME, I find myself opening up a Nautilus browser and navigating to the same path so that I can see thumbnails or perform file maintenance tasks before saving or loading.

A long time ago, there was a patch for Gtk produced by the ROX team that added a draggable icon to the Gtk filepicker window — to save your document, just drag that icon to a Nautilus window. Those of you who remember RISC OS might remember that that’s the way you saved files there:

Saving a file by dragging an icon

There are a few UI problems with filepickers, as mpt pointed out a while back, and the drag-icon-to-save model neatly avoids them. There are, of course, issues: the main one is that in order to properly implement drag-and-drop saving, apps should use the freedesktop X Direct Save protocol, which I think means that every app must be patched to allow its saving to be accessed as a stream (so you can “save” a file directly into another application). I might be wrong about that being hard, though — my C-fu is not strong, which is pretty high on the list of reasons why I’m not trying to make this happen already.

The Tango project’s Window Experiments mockups have the draggable icon living in the top corner of the window itself, which seems like a great idea to me.

Is anyone working on this? I’d love to see whether it works out in practice.

Tracking bugs for sorttable

Friday, September 14th, 2007

I get lots of people mailing me for help with things I’ve written, and sorttable is way up at the top of the list. People find it useful, which is good, and they mail me to say thanks. I like that. On the other hand, they also mail me to say that there are a few things it doesn’t do. Now, they’re right; there are a couple of bugs that slipped through, and more importantly there are a couple of things that never crossed my mind until people started asking whether sorttable could handle them — loading tables with Ajax, tables with zebra stripes, that sort of thing. I’m now at the stage where in my “sorttable unprocessed” folder I’ve got over 150 emails, and an awful lot of them are about the same things.

So, a bug tracker seemed like a good idea. However, I don’t want one where everyone can submit bugs into it. I get little enough time to hack on projects as it is, without having to triage bugs as well. So, I wanted something which was basically read-only; a place where I could point people to say “look, here, the problem you have identified is a known issue, and I am planning on fixing it, and you can subscribe to this and get notified when I do fix it”.

So: the sorttable bug tracker.

It’s shamelessly borrowed from the PuTTY wishlist in almost all particulars, right down to the differing levels of priority. Simon Tatham actually pointed me, when I asked, at the code they use to run that wishlist. I had a couple of extra wrinkles I wanted to add, though, and their code is in Perl and I’m not much cop at Perl, so I built my own very similar thing. You can read my spec for a read-only bug tracker if you like; essentially, the bugs themselves are in a (secured) folder in my Subversion repository as RFC822-style files, and then there’s a little collection of scripts which know how to build a static HTML collection of bugs for the project. I’d like to make the scripts available so other people can do the same thing, but they’ve got passwords hardcoded into them (because the bug area in svn is secured, because there are bugs in projects that I can’t make public). If I can think of a way of making the code available, I’ll do it, but it’s relatively trivial anyway.

At the moment I’m only tracking sorttable bugs in here, but I’m gradually going to bring all my other projects that are me-develop-you-use things into it. It’s not suitable for something like Jackfield, which will eventually develop more of a community around it (and will therefore be a lot more collaborative); sorttable isn’t a big enough deal to be a community-maintained project, but I do need somewhere I can point people at when they say “why doesn’t it handle Ajax-created tables?”, and now I have that somewhere.

Which video card should I buy?

Monday, September 10th, 2007

Dear Lazyweb: I’ve got a desktop machine, which I use sometimes at home. It’s plugged into a flatscreen monitor. The machine has an old Trident CyberBlade video card in it, which won’t drive the flatscreen at anything higher than 1024×768, which is pretty annoying. So, I’d like to buy a new video card for it. However, I’m horribly confused by video card stuff. Which card should I buy? It needs to be supported by free software drivers (i.e., not require the nvidia or fglrx binary drivers), but it does not need to do anything very exciting; I don’t play games on the machine, for example. It’d be nice to have the 3D compiz stuff, too. As far as I know, Intel don’t sell separate cards, which leaves me with ATI or nVidia; I keep hearing that “older” ATI Radeon cards are well supported by free software drivers, but I don’t know whether that includes enough 3D support for compiz, and I don’t know precisely what “older” means: ATI’s product range confuses the hell out of me. I’ve got no problem buying something from eBay, so it doesn’t have to be a card that is currently on sale in shops. Any advice gratefully accepted.

Jackfield and Python talk

Sunday, September 9th, 2007

My slides from my Jackfield and Python talk at Pycon UK are available.

A few people have started hassling me to provide packages for Jackfield, my port of Apple’s Dashboard to Linux, so people can more easily try it out. What do you think, gentle reader? I’ve got very little time to work on Jackfield at the moment, and I felt that a better use of my time would be to try and make it run more Dashboard widgets, rather than to make the installation process easier — my thought was that the ease-of-installation process is critically important, but it’s critically important to users, and Jackfield isn’t meant to have users yet because it’s not close enough to being ready. Tell me what you think: should there be Debian packages, Ubuntu packages, Fedora RPMs? The point was made that there’s a lack of contributions from other people precisely because it’s too hard to install, and I found that a relatively compelling argument. So, let me know what you think in the comments.

All busy on the Western front

Friday, September 7th, 2007

Stone me I’m busy. Bah. Haven’t even had time to write some things up here. However, my collection of kept-unread things in Google Reader has reached high enough proportions that I have to do something about it, so this gets a few things off my list.

A post about the stuff I discussed at LugRadio Live — whether it might be reasonable to make “be permissive about IP” be the default for Linux distributions and make the Americans and others in oppressive IP regimes do the legwork to remove what they consider to be “patent-infringing”, rather than all of us non-Americans suffering for it — is stacked into the holding pattern and circulating over Heathrow, incidentally.

Recent interesting things

Google Reader finally lets you search past posts
Thank god for that. Finally. Finally.
ATI open graphics specs and open source the driver for video cards
This is a pretty big deal, this one. At first blush it looks as if two of the three leading graphics card manufacturers (ATI and Intel)* will now have good support in open source. I imagine someone at nVidia has at least noticed that this has happened. More openness of this sort cannot be a bad thing. Well done ATI, I say.
I should note a couple of small reservations: it’s only for their newer cards (i.e., not most of the ATI cards that are out there), and it’s not as simple as them just open sourcing their existing fglrx binary driver. They’re providing a library to access the BIOS on the card, but most importantly they’re providing specifications for the cards. It’s still down to the open source community to write the driver itself, but we’ve historically not had a problem with that (and ATI are funding the initial writing of this driver!). Phoronix has more detail on what ATI are actually doing — the important quotation is “The aim of this open-source driver is not to overtake the fglrx driver but rather is designed for those who just want a working desktop with 3D capabilities and basic video playback. This new driver is ideal for FOSS enthusiasts” — the point here is that if you want the very best performance from your ATI card you’ll still need to go proprietary, but there’s now enough information that the open source code will be able to provide the things that a lot of people are clamouring for — 3d acceleration, video acceleration, 3d desktop effects. Well done, ATI, I say. Obviously I’d like to see it all being Free, but I’m confident in the open source community’s ability to build a great driver (maybe even a better driver than the binary one?) based on having the information they’ve asked for, and now they’ve got it. Blizzard’s thoughts are informative.
@media Ajax 2007
I’m really looking forward to speaking at @media Ajax this year. The list of speakers is pretty cool, indeed, including some people I’ve never had the chance to meet. As usual, details of events I’m going to be at are on my events page.
Separated at birth
John “jQuery” Resig says that he’s “baffled” by why I referred to him as John “Kelly Osbourne” Resig in an earlier post. Well, the camera doesn’t lie.

John Resig and Kelly Osbourne

On the other hand, John did an excellent Google Tech Talk on building a JavaScript library, so don’t hold it against him.

Convert a physical Linux box into a VMWare virtual machine
Useful, although convoluted. Parallels lets Mac people virtualise from a bootable partition, so you can either boot into your image or run it as a VM inside another OS. Can we do that under Linux? It’d save my dad rebooting into Windows to make his scanner work.

A few recent things

Monday, August 20th, 2007

Haven’t posted much in the last few weeks: haven’t had much time.

First, photos. Guadec 2007, my holiday in San Francisco, a few from Linux World while I was in SF, and three of the Men with Bigger Stones in Edinburgh.

Jeremy Garcia from LinuxQuestions Tim looking like a spanner Michael Vogt on the beach in Birmingham A tram in San Francisco

Next: random stuff I’ve read about that looks good.

  • The Fedora team are building an “experimental” desktop spin. This is a really, really cool idea. A chance to do cool stuff that people might not like but could be a radical improvement. I’ve talked on LugRadio in the past about how incremental improvement is safe and easy but won’t win the war, and this sort of experimentation is exactly what I think we need. Great idea, fedora team. I’d like to be involved but I’m worried I don’t have time.
  • Brad from LiveJournal posts a set of musings on portability of data between social networks, which has sparked lots of discussion on the associated mailing list.
  • Webilder automatically cycles your desktop background through pretty Flickr pictures. I’m using it. This is cool enough to freeze nitrogen.
  • Another Blender film. Excellent. I must pre-order this one. Hopefully this time it won’t be as weird as Weird Jack McWeird the Weird, like Elephant’s Dream was.
  • Luis Villa gives me a beating about regaining my respect for Mark Shuttleworth’s commitment to free software. I, personally, think that Gobuntu is not a stooge distro, but it remains to be seen whether it’s actually pushed as an important thing when gutsy is released or whether it’s buried in some back alley bit of the website. I agree totally about there being no Launchpad source, indeed. As to why Shuttleworth isn’t investing in OLPC, well…you can only do so much at once. OLPC are indeed building a free software laptop. On the other hand, it’s not a free software laptop that I, Stuart, will be able to buy; someone ought to be trying to persuade people to make existing Western laptops run only free software as well. OLPC is a valuable project, indeed, but it’s not the be-all and end-all. Whether the Ubuntu/Dell deal, etc, counts as doing this depends on your point of view.

Oh, and in a couple of days I go to Italy for a week (note to burglars: no I don’t). Sun, sea, sand, pizzas. I love Italy. I’ll be near Lake Garda; I would say that if anyone lives near there then I’d love to meet up, but I suspect I might get into some trouble from the family if I disappear to talk about LugRadio. Italian people, if you want to meet up anyway, let me know!

Guadec tomorrow

Saturday, July 14th, 2007

Tomorrow morning, and for the rest of the week, I’ll be at Guadec. I’m speaking about the web and the desktop and Jackfield on Sunday, and LugRadio are Official Media Partners (ya, rly!) for the whole event, which means that we’ll be bagging people and dragging them into our secret recording studio room for interviews and whatnot. If you’re going to be there, say hello or grab me for a beer or something.

The respect re-build

Saturday, July 14th, 2007

I was starting to worry a bit about Canonical and Mark Shuttleworth — my fears that Ubuntu was becoming just a little bit more non-free every day, that they weren’t really pursuing the goals that I’d like to see them pursue. Obviously, they aren’t obliged to do what I say — I suspect that Shuttleworth’s opinion would be that I am welcome to make myself eight hundred million dollars and start my own Linux distribution if I don’t like the way he does it — but I’m deeply, deeply pleased to see that I was wrong all along. First, there’s Gobuntu, the promised totally-free version of Ubuntu, as part of the next Ubuntu release. (I’ve already tried a nightly, and, er, tasksel failed during the installer. I’d file a bug but I’m not sure where to put it; there seems to be no Gobuntu product in Launchpad.) Fantastic news; I’ll leave it a little while to stabilise and then try it (or I’ll try it very soon if someone can tell me where I should send bug reports). It’s Guadec this week, so I can’t afford to sod up my (working, free-drivers only) laptop before I do my talk, but I want to help with Gobuntu.

Second, Mark’s also flagged the idea of being able to buy a laptop filled with free-software-supported hardware. Those of you who listen to LugRadio will know that I’ve whittled on repeatedly about how people don’t want to install Linux, they want to just buy a computer that works. It’d be so good if I could just go and buy a laptop that works, the next time I need a laptop, something which supports all the cool stuff that the free desktop can do. I’m pretty tired of people saying “I don’t like Linux, my OS X just works”, when half the problem there is that if I tried to install OS X on some random arbitrary computer it wouldn’t have any drivers there either. Having “Linux-specific” laptops isn’t by any means the only approach we should take, but if they existed it’d be such a good way to get things out to people — someone says “I’d like to try Linux, I’ve booted it a bit and it seems good and I want to buy a machine” and I point them at this. Greatness. I’ve signed up to the mailing list; hope there’s some discussion there soon.

In brief, then: sorry for doubting you, Mark. Those of you reading who are busy preparing the word “fanboy” in a retort — yeah, I am a fan, a fan who’s just had his faith renewed.

Now, when can I buy an OpenMoko phone that seamlessly integrates perfectly with my Ubuntu desktop?

My new network is unstoppable

Wednesday, June 6th, 2007

My internal network — connecting together 6 machines, a JetDirect printer sharer, wireless, the phones, and my cable modem — used to all be wired together through two 10baseT hubs. Throughput was horrible; one or both of the hubs were broken. I’ve just replaced the two hubs with one 16-port 10/100/1000 switch, and my network is now between ten and one hundred times faster in my testing!

It’s now fast enough, for example, that the computer plugged into the TV can show films and TV programmes that are stored on another computer on the network!

You might be thinking: yeah, whatever dude, this is not exciting, of course it does that. Well, the hell with you, anyway. I think it’s exciting.

Anyway, this means that something I’ve been thinking of doing for a while leaps up my priority list. One of the 6 computers is a server: an old tower case machine with 90GB of storage in it made up of scrounged hard drives I had lying around. I use it as the server for my home backup system, and it does a good job. However, since I can now play media across the network (exciting! it is!), I could use it as the storage place for all our films and TV and music and games and whatnot. However, it’s old and a bit noisy, so it’d be nice to get rid of it. I still need whatever I replace it with to be an actual server, though, not just a NAS-style stack o’ discs, so I don’t want a Buffalo Terastation or similar — it not only needs to run the rsync server but I also plan on having it be used for BitTorrenting stuff I’d like to watch and to be always on for downloading things.

Can anyone think of a better alternative than buying a Linksys NSLU2, installing the Unslung firmware, and plugging a big USB hard drive into it? That looks like a powerful and cheap way to do it, as far as I can tell.

Jokosher one of the 15 open source projects to watch

Thursday, May 17th, 2007

According to this Datamation article by Matt Hartley, Jokosher is one of the 15 open source proejcts worth watching.

Where Jokosher stands out beyond other audio applications is that it provides for easy inclusion of a fantastic new GUI. This allows the ability to distinguish one track from another with the help of icons and other visual references…Feels like Audacity with regard to simplicity, but has a full set of features and seems to be more fun to use from a visual perspective.

Good work the Jokosher team!

One Python, singing in the darkness

Tuesday, May 8th, 2007

Mod-python is an Apache module which loads one copy of Python at Apache startup, and then all subsequent Python web applications use this one Python interpreter. It means that you don’t incur Python startup times every time you visit a URL, and it’s really useful. (There are similar-but-different approaches, such as FastCGI and SCGI; they all basically involve running one Python interpreter, though.)

Lazyweb: Would it be possible to do this for the Linux desktop? Have one Python running and have it run all the applications that use Python? I don’t know how you stop a crash in one application crashing all unrelated applications, but the modpython people have presumably solved this problem. Python isn’t significantly slower than C for most actual applications, which are event-driven anyway, but startup is certainly slower; it’d be rather nice to have that startup wait go away.

fspot2lj - export F-Spot photos to your LiveJournal photo hosting

Saturday, April 28th, 2007

fspot2lj is for exporting your F-Spot photos to your LiveJournal photo hosting at pics.livejournal.com. It’s not yet finished, but it works well enough to have exported all my photos and resize them all to 800×600 at the same time. It pays attention to F-Spot tags and creates LiveJournal galleries from them.

It uses my Fotobilder Python bindings (which come pckaged with it). You’ll also need Python, PyGtk, the Python SQLite bindings (which come with recent Pythons), the Python Imaging Library (called python-imaging under Ubuntu), and obviously you’ll need some photos in F-Spot.

You can check it out from Subversion with svn checkout http://svn.kryogenix.org/svn/fspot2lj/trunk/ or download it. Bug reports and complaints in the comments here for now. And yes, I know it’s a bit slow at checking the uploads.

FotoBilder LiveJournal photo gallery Python bindings

Saturday, April 28th, 2007

In order to move my photo gallery to LiveJournal, I needed to import lots of photos. This is doable one-at-a-time on the web, but like all good web apps, FotoBilder (which is the software that runs pics.livejournal.com) has an API which you can work with. There don’t seem to be any Python bindings, though, so I’ve written some. Go get fotobilder.py. Note that it’s not a complete implementation; I’ve only provided the stuff I need (UploadPic, UploadPrepare, a few other things). There are some niceties about it, like that you never have to worry about handling challenges because it does all that for you. Nonetheless, it seems to work for what I needed it for.

You’ll also need to get ProgressReportingHTTPConnection.py. This is a modification of the HTTPConnection object in Python’s httplib, which is part of the standard library, so that it can report progress on uploads. If you need to use httplib to send data to a remote server and you want a progress bar, using ProgressReportingHTTPConnection.py makes it easy. Simply use it like httplib.HTTPConnection but pass a function to the constructor as progress_callback; httplib will call your function with every 2KB of upload done.

Update: licenced under the GPL v2.0.

Speaking at Guadec

Friday, April 27th, 2007

My Guadec 2007 talk has been accepted! I’ll be speaking on the Sunday warmup day about the web and the desktop and Jackfield. One more thing to add to my list of events I’ll be at. Thanks to Ross Burton and the Guadec team.

Jokosher VoIP work accepted for Google Summer of Code

Thursday, April 12th, 2007

Michael “Elleomea” Sheldon has been accepted by the Google Summer of Code to work on VoIP integration into Jokosher. This is excellent news. I put together a spec for how I’d like to see VoIP work in Jokosher a little while ago, and I’m eager to actually see it happen. Nice one Elleo; this makes Jokosher even better!

Ubuntu 7.10 to be properly Free (if you want)

Thursday, April 12th, 2007

Mark Shuttleworth:

Ubuntu 7.10 [the version about to go in development, due for release October 2007, codenamed "Gutsy Gibbon" - sil] will feature a new flavour - as yet unnamed - which takes an ultra-orthodox view of licensing: no firmware, drivers, imagery, sounds, applications, or other content which do not include full source materials and come with full rights of modification, remixing and redistribution. There should be no more conservative home, for those who demand a super-strict interpretation of the “free” in free software. This work will be done in collaboration with the folks behind Gnewsense.

Yaaaaaaaaaaaaay! I’ll be able to use Ubuntu and not feel slightly bad about it, because it’ll no longer be a little bit pregnant but it’ll be the loveliness of Ubuntu, with all the care and attention paid to my experience as a user. There can be no better news. Good work, Mark S and the Ubuntu team.

Those of you who are thinking “who the fuck cares?”, read my previous request for this to happen and particularly Freedom vs Features to find out why I care. You should also read Jono Bacon’s Features vs Freedom; if you fall on his side of the fence rather than mine, that’s fine, because in October we’ll both be able to be Ubuntu users without a problem. We can both be part of the conversation.

Gaim nicer notifications with libnotify on Ubuntu 6.10 Edgy

Sunday, April 8th, 2007

Gaim (now renamed to Pidgin, but the version I’m using isn’t that new) comes with a “guifications” plugin to do “notifications”, those little popup “toast” messages to tell you that someone’s messaged you, someone’s logged on or off, all that sort of thing. However, guifications is ugly and doesn’t look like the rest of my desktop, and there is a proper notification thing for Linux, called libnotify. Some bright spark has written a Gaim plugin to use libnotify for notifications, but it’s not available in Ubuntu edgy. It is, however, in the development release, Ubuntu feisty. Here’s how to install it (and this acts as a very tiny HOWTO for how to install stuff from an Ubuntu release other than the one you’re on).

Basically, this involves building the package from the source code. First, then, you have to tell Ubuntu that it can get source code from Ubuntu feisty. Go System > Administration > Software Sources. In the Third Party tab, click Add, and put in the APT line: textbox:

deb-src http://gb.archive.ubuntu.com/ubuntu/ feisty main universe

Add Source, Close, and Reload when it tells you that the information about available software is out of date.

Ubuntu's Software Sources window helps you configure where software comes from

Next, you need to get the Gaim libnotify package. I’m assuming here that you’ve built packages before; if not, you’ll need to install build-essential from Synaptic (or with sudo aptitude install build-essential in a terminal).

Create a temporary folder to do the build in (Places > Home Folder, then right-click in your home folder window and say Create Folder, and call the new folder tmp).

In a terminal (Applications > Accessories > Terminal), change into your created temporary folder

cd tmp

and install first the things you need to build the package

sudo aptitude install libnotify-dev gaim-dev fakeroot cdbs

(you could also install those three packages from Synaptic if you prefer), and then fetch and automatically build the gaim libnotify package

fakeroot apt-get --build source gaim-libnotify

That will take a little while. Once it’s finished, go back to your Home Folder window and look in the tmp temporary folder you created. There should be a file called gaim-libnotify_0.12-1_i386.deb

Run that file. The Package Installer window will pop up; click Install Package. This will install the new notifications (it may ask for your password to do the installation).

Now, you need to enable the plugin. If Gaim isn’t running, run it (Applications > Internet > Gaim Internet Messenger), and right-click on its notification-area icon; choose Plugins:

In the Plugins window, tick Libnotify popups. Remember to untick Guifications if you were using it before! Close the Plugins window. I then had to quit Gaim (right-click the notification-area icon, Quit) and restart it before the new notifications worked properly. But, lo and behold, nice pretty notifications when someone logs in!

Christian Heilmann sends me a message
Tiny Matt Revell signs off

WebKit browser on Linux

Sunday, April 8th, 2007

Update: the trivial WebKit browser is now included in Ubuntu. Simply install libwebkitgdk0d on Ubuntu gutsy (just click the package name there to install it if you’re running gutsy now) and then run /usr/lib/WebKit/GdkLauncher to get a simple WebKit browser for testing your code.

You too can test WebKit, Apple’s web rendering engine and the thing that makes Safari work, on Linux. The KDE teams have been working hard on making it work inside Qt, the KDE widget set, and indeed it does work! A few simple steps are required.

First, check out the WebKit source code. There is loads of it, so this will take a while. You’ll need Subversion for this.

svn checkout http://svn.webkit.org/repository/webkit/trunk WebKit

That will give you a folder called WebKit. You’ll now need a few requirements; the key one is Qt4. On Ubuntu 6.10 (edgy), get this like so:

sudo aptitude install libqt4-dev

Now build your Qt-based WebKit browser:

QTDIR=/usr/share/qt4/ WebKit/WebKitTools/Scripts/build-webkit

Finally, run it:

WebKit/WebKitBuild/Release/WebKitQt/QtLauncher/QtLauncher about:blank

I created a menu entry to run it (right-click on the Applications menu, say “Edit Menus”). Now I can test stuff in WebKit!

Note that the Subversion version of WebKit is miiiiiiiiles ahead of what Safari is using in released versions of Mac OS X, so don’t think that just because something works in your little WebKit browser it’ll work in Safari. Nonetheless, cool.

IEs4Linux

Sunday, April 8th, 2007

Testing web stuff in Internet Explorer is an unfortunate necessity. It’s a lot easier if you go get IEs4Linux, which with one command installs IE5, IE5.5, and IE6 on Linux using Wine. Nice.

The latest beta version is easier to install (graphical rather than command-line) and also installs IE7 (in a rather hacked weird way); when it goes stable I shall be using it!

Good work Sérgio Luís Lopes Júnior!

Matthew Garrett facts

Monday, February 26th, 2007

The man, the legend, Matthew Garrett now has his own Matthew Garrett Facts at angryfacts.com.

Find out what motivates the angriest man alive. Marvel at how he can be so tall and so thin all at once. Ask him which laptop he’d recommend, like he’s never heard that question before. Wonder at how he’ll soon be Dr. Matthew Garrett, if you please.

“Matthew Garrett invented the eye.” Pure class.

Belkin Wireless-G USB adapter in Ubuntu 6.10 Edgy

Wednesday, February 14th, 2007

I’ve got a Belkin F5D7050 wireless USB adapter. It didn’t work under Ubuntu. This is because Edgy ships an old fucked version of the driver. If Ubuntu is loading the “rt73usb” driver, and it’s not working for you, that’s why. Download and install the CVS version as per the Ubuntu wiki instructions and it works perfectly. Superb.

Jackfield talk at Skycon

Monday, January 22nd, 2007

As mentioned in these pages before, the LugRadio team are going to SkyCon in Limerick, Eire on February 16th-18th 2007. They asked me to do a talk, as also mentioned, and after polling my gentle readers I’ve decided that the most interest is in Jackfield. So, if you’re interested in Jackfield, try and get along to Limerick next month.

This does also mean that I’ll carve out some time to fix the D-Bus stuff and generally do some more work on the project, which should make some people happy!

Writing a Jokosher extension: a rambling essay

Saturday, December 30th, 2006

Jokosher is an extensible bit of software. We knew that we’d never be able to
think of all the stuff that people would want to do with an audio editor, so
we’ve set up Jokosher so that people can write their own extensions to it. So
if you want to do something particular, something very specific, something we
don’t like, or something we just haven’t got around to yet, you can roll up
your sleeves and do it yourself. This is the story of how I built the
Freesound extension, which lets you easily browse the comprehensive library
of sampleable Creative Commons licenced stuff at the Freesound system
and then easily drop the samples you like into your Jokosher project.

Jokosher extensions are, basically, tiny separate programs that can talk to
Jokosher itself in certain specific ways. So, the Freesound extension isn’t
really an extension so much as it’s a graphical browser for Freesound, which
happens to know how to talk to Jokosher a bit. For the moment, let’s pretend
it’s a separate program without any Jokosher bits at all. It works like this:

  1. The program starts up
  2. It checks to see if it knows what your Freesound username and password are
  3. If it doesn’t, it pops up a dialog for you to enter them, and then saves
    them away for next time when you do type them in
  4. It shows a window containing a search box and a Go button
  5. When you type something to search for in the search box, it runs a query
    at Freesound using your username and password, and the thing you searched for,
    and gets back some XML describing matches
  6. It puts a list of all the matches in the window, each with a description
    (that it gets in the XML), and a little waveform image (that it gets in the
    XML), and a play button (that it creates itself, but that plays the file directly
    from a URL that it gets in the XML)

…and that’s it. The integration with Jokosher only comes in two parts;
firstly, starting it up, and secondly, allowing you to add samples that
it’s displaying to a Jokosher project.

The first part’s pretty easy. Jokosher allows an extension to add itself
to Jokosher’s Extensions menu. The way you do this is pretty simple.

To write a Jokosher extension, you need to first create a Python file. In
order for that Python file to *work* as a Jokosher extension, it needs to
define certain things. Those things are:

Three variables, EXTENSION_NAME, EXTENSION_DESCRIPTION, and EXTENSION_VERSION
Two functions, startup() and shutdown()

So, to make a Python file into an extension, you add something like this
to the bottom of it:

def startup(API):

	pass

def shutdown():

	pass

EXTENSION_NAME = "Freesound search"

EXTENSION_DESCRIPTION = "Searches the Freesound library of " +\

  "freely licenceable and useable sound clips"

EXTENSION_VERSION = "0.01"

The variables are needed so that Jokosher knows what your extension is called,
and can display a useful description to the person using it.

When Jokosher starts up, and loads your extension, it calls your extension’s
startup() function, and it passes it one object: above, we’ve set the startup()
function to call that passed parameter “API”. The API object is how extensions
can talk to Jokosher. Now, it’s important to note that you don’t make your
extension do all its work in the startup() function. That gets called as
Jokosher itself starts up. Instead, we want the Freesound extension to add
a menu item to Jokosher’s Extensions menu, and then when the user clicks that
menu item we start doing the work. The API object has a function called,
amazingly, add_menu_item() to do exactly that. So, our startup function
should actually be:

def startup(API):
	menu_item = API.add_menu_item("Search Freesound", callback_function)

What this will do is add a menu item “Search Freesound”, and when the user
clicks on it it’ll call callback_function(), which is defined in our extension
somewhere.

Another minor thing is that anything you do in the startup() function has
to be un-done in the shutdown() function. The reason for this is that shutdown()
gets run if a user disables your extension. In our case, we need to remove
that menu item, which is done using the menu item’s destroy() method. So,
change startup() so that menu_item is a global variable (so it’s available to
shutdown() as well), and change shutdown() so it removes it:


def startup(API):

	global menu_item

	menu_item = API.add_menu_item("Search Freesound", mainwindow.menu_cb)

def shutdown():

	menu_item.destroy()

That takes care of hooking the extension into Jokosher; the user can now start
up and use anything that the extension can do. (Since this little discussion
is about how to write Jokosher extensions, we won’t discuss how exactly the
extension talks to Freesound. Just take it as read.) The part that’s left is:
how do you get samples from the extension into your project itself?

The way the user does it is to drag a sample from the extension window onto
an instrument in Jokosher. Now, Jokosher understands dragged-and-dropped files;
you can drag a music clip from Nautilus or from Firefox or from any other
application straight onto a Jokosher instrument and it’ll work. So the
Freesound extension just has to know how to allow users to drag things from it.
Technically, this is called being a drag source. How to do this in Python
is described in the PyGtk Tutorial — basically, you use
code something like this:


e.drag_source_set(gtk.gdk.BUTTON1_MASK, [('text/plain',0,88)],gtk.gdk.ACTION_COPY)

e.connect(”drag_data_get”, self.returndata, sample)

…

def returndata(self, widget, drag_context, selection_data, info, time, sample):

	selection_data.set (selection_data.target,8, sample.previewURL)

where “e” in the first snippet is the widget displaying the sample, and
“sample” is our actual Sample object which we’ve created from the FreeSound
XML. In essence, the Freesound extension works like Firefox; when you drag
a sample to a Jokosher instrument, Jokosher says “what’s this thing you’ve
dragged to me?” and the extension says “it is a URL at Freesound”; Jokosher
then thinks “aha, I know how to load URLs”, and loads the sample from that
URL.

This is a good example of how working with the Jokosher team can be important
for extensions. Jokosher didn’t, when I started writing it, know how to load
a sample from a URL (it only knew how to load one from your hard drive). To
make it work, that needed to be added to Jokosher. (In this case, I added it
myself, because I’m a Jokosher developer, but if I wasn’t then the team would
have happily added it for me.) The Extension API, the way that extensions talk
to Jokosher, deliberately isn’t complete; we’ve put the infrastructure in place
but we haven’t tried to think up everything that everyone would want to do.
Instead, if you’re writing an extension and you realise that you need Jokosher
to be able to do something that it currently can’t for your extension to work,
talk to us: we’ll add that extra part to Jokosher so that your extension works.

This has been a relatively brief summary of writing a Jokosher extension, but
hopefully it’ll give you some ideas. Now you can get extending!

Quick Jackfield update

Friday, December 22nd, 2006

Not much news on Jackfield at the moment, because I’ve been highly tied up with Jokosher and a few other things, but I thought I ought to note that I’m aware that people want to see it. I was actually quite surprised; most people who expressed a preference either by mail or by comment as to what they’d like to see me talk about at SkyCon said Jackfield. At the moment, I’m trying to get it to work across different D-Bus versions, which is fiddly and awkward.

I’ve also been nudged about integrating it with Beryl. I like the idea of this, but I can’t do that work; I don’t have accelerated 3D, so no compiz or beryl for me. If someone else wants to look at that I’d be quite happy to talk about how I see the integration working, but making Jackfield operate properly with software I don’t have isn’t all that high on my priority list :-)

Geek Christmas crackers

Thursday, December 21st, 2006

Last night was the Wolves LUG Christmas bash, which was a great laugh. Traditionally, I do two things at the Christmas bash; I do a stand-up performance of the gorilla joke, which is a not very good joke that they all make me tell anyway, and I do some Christmas crackers with geeky mottoes in. This year, the mottoes were the following, if you’re doing something similar. Suggestions for next year are invited.

  • Look out behind you!
  • This fortune intentionally left blank
  • A very merry LUG Christmas
  • The world ends tomorrow AND YOU MAY DIE
  • Hope you like your Novell t-shirt
  • The Windows User Group down the road is more popular
  • Never trust an operating system you don’t have sources for.
  • Every time I think that perhaps we are an advanced race, I turn around and read ramblings on Slashdot, and realize I was wrong.
  • Geeks aren’t interested in politics because government doesn’t double its efficiency and speed once every 18 months.
  • Some software money can’t buy. For everything else there’s Micros~1.
  • Linux - It is now safe to turn on your computer.
  • Linux is like a wigwam: no gates, no windows and Apache inside. (Chinese proverb c. 610 B.C.)
  • sudo apt-get moo
  • got root?
  • I never finish anyth
  • </cracker>
  • help! I am imprisoned in a cracker factory
  • $ man curry
  • w00t
  • j00 r 0wned
  • stfu n00b
  • I am a cracker virus. Please pass on to the person next to you.
  • I’m blogging this.
  • meh.
  • SYN
  • ACK
  • you have opened the wrong cracker
  • crackr 2.0 beta

I’d also like to thank SitePoint, Fedora, and Novell for kindly sending me some free loot to give out to everyone. It was all appreciated, and now the bloke who runs the curry house we were in has an OpenSuSE hat, so thanks for that!

Free Ubuntu

Wednesday, December 13th, 2006

I use Ubuntu Linux. Have done since the day it was released. And I like it. However, I’ve had more than one argument with Jono about what I perceive as its increasing move towards encouragement of non-free software. I don’t want to get into that argument right now, so simply take it as read that I’m concerned about it, and feel free to consider me wrong for being concerned; I don’t mind.

Some people will be saying at this point: what about GNewSense? That’s Ubuntu with all the non-free stuff removed, isn’t it? Well, yes, it is. I’d like to use it. However, I can’t, for (as ever) two reasons.

The first is that there is no upgrade path from Ubuntu to GNewSense. If I want to move, I have to do a fresh install of GNewSense. that means reconfiguring everything to work the way I like it to work. If you’re thinking that I can just back up my configuration and copy it over to my new gnewsense installation, then, well, perhaps, if I knew where it all was. I don’t have records of every config file I’ve changed; I don’t know where they all are; I don’t know if all my configuration will work on GNewSense because I don’t know what I’ve tweaked. I was surprised that I can’t just add the GNewSense stuff to my list of software repositories and tell my machine “go ahead and upgrade”. Apparently that’s not a goal for the GNewSense team; OK, no problem. I’m not going to tell them how to run their project. It strikes me that a reasonable proportion of their potential userbase is people who already use Ubuntu but want a genuinely Free version, but I don’t want to assume that everyone’s like me.

The second reason is that GNewSense is based on dapper, Ubuntu 6.06. I’m running edgy, the newer version, Ubuntu 6.10, and I don’t want to lose the improvements that edgy brought me. Now, again, I’m sure that that’s not a deliberate decision but just a lack of time on the part of the GNewSense development team, but this reason and the other one lead me to not be in a position to shift to GNewSense.

So, what’s the alternative? Well, I can’t really see how making a completely Free version of Ubuntu wouldn’t just involve (a) removing some packages and (b) rebuilding a few packages. I just don’t know which ones. I was hoping that I’d be able to find that out from the GNewSense people too, with the goal of me writing a “Free My Ubuntu” script which does all the removals for you: to get a completely Free Ubuntu without any restricted kernel modules, simply download real Ubuntu and run the script and you’re done. However, the GNewSense team’s workflow is oriented around you building a whole distribution using Ubuntu as a base, rather than about you taking an existing Ubuntu installation and turning it into GNewSense (or any custom version you’ve made) and so they don’t really have that sort of script.

Some people (different people to the ones who suggested GNewSense above) may now be foaming at the mouth about how I’m a free software zealot who’s standing in the way of progress, and that Ubuntu is Free, and that I should just shut up. Again, feel free to consider me wrong; I won’t mind. I’m not suggesting that Ubuntu isn’t Free enough for you, I’m just saying it isn’t enough for me, and luckily, because of the nature of open source software, I have the ability and the permission to take the 99.5% of Ubuntu that I like and combine it with 0.5% of my own stuff to create my own perfect operating system.

What I’d really like to see, in the fullness of time, is this entirely-Free approach be supported by Canonical and the Ubuntu distro, so there are no restricted modules, I don’t get offered the choice between free and non-free video drivers, that sort of thing. My wireless card won’t work, and I’m happy with that. Of course, I can understand why Canonical aren’t devoting a lot of resources to that, and I can understand and sympathise with the arguments in favour of the (very few) compromises in the direction of non-Free software that Ubuntu, the distribution have made (binary drivers being an example here, to increase market share and make it look as good as everyone else), and that Canonical, the company, have made (the commercial repositories, for example). If someone comes up with Frubuntu, or GNewSense changes its goal, I’ll happily move to them; in the interim, I’m thinking about, and trying to work out, what the best way is of stripping all non-Free things, binary firmware blobs, etc away from my Ubuntu installation. Feel free to comment on why you think I’m wrong but bear in mind that I have heard most of the arguments against before. I’d welcome help and suggestions here on how to do what I’m doing; in particular, if you have a comprehensive list of things with a disputed Free status then I’d be very interested in seeing it.

The Jokosher Solar System

Tuesday, December 12th, 2006

Last night myself and Jono were invited to West Yorkshire Linux User Group to talk about Jokosher. We did it in three sections: Jono spoke about the origins of the project and where it’s going next, we did a very quick demo so people could see what it looked like, and I did a section. My section was named “Jokosher Solar System“, and it was about all the other sub-projects that are part of the Jokosher universe but aren’t the audio editor itself. We’ve got a website, some discussion forums, documentation, bug tracking, and loads of other things. The point behind it all was that, although most of our development effort goes into Jokosher itself, you need all these other supporting projects going on in order to turn it from a good bit of software into a good bit of software that people can use.

We’ve tried hard, and are still trying hard, to foster a community around Jokosher; there are dozens, hundreds, of projects out there on SourceForge or wherever which seem good but never got anyone using them, because they didn’t know about them or they had nowhere to file a bug or no way of talking to the developers or to other users of the project. This sort of thing is really important, and we’re concentrating on it. If you’re the sort of person who might eventually be a hacker on Jokosher, you could go through the following process:

finding out about it → using ittalking about itfiling bugs about it or requesting new featurescontributing to the documentationrunning the bleeding-edge versionwriting a Jokosher Extension → making changes to code → becoming part of the development team

No-one is expected to do that, not at all, and you don’t in any way have to do it in that order, but we really want to make it easy for people to take that next step up, to go from being a Jokosher user to becoming part of the Jokosher community, and then to helping to improve Jokosher for the next release if they want to go that far.

Anyway, the presentation. It’s called Jokosher Solar System, and you can view it in your web browser (thanks to S5). I’d be happy to come and tell other people about all the stuff around Jokosher (or anything else you want me to talk about); just contact me for details.

Speaking at Skycon

Friday, December 8th, 2006

As mentioned a few days ago, the LugRadio team are going to be at SkyCon in Limerick in February 2007. Since we’re there anyway, they asked me if I’d like to do a talk. I said I was happy to, and they asked me to choose a subject.

Now, those of you who read this a lot will have noticed that the stuff I write about tends to be a mix of Linux and the web, and a mix of hard technical information and windy philosophising. So, that suggests something of a framework. If I were speaking somewhere and you were attending, what would you like to see me talk about? It strikes me that the talk could be about Linux or the web, and be either technical of philosophical. Your combinations therefore break down as something like:

The web + technical
This would likely be heavily DOM Scripting focused; JavaScript’s a growth area and it’s What I Do to a large extent. Think of this as something along the lines of bits of DHTML Utopia in talk format.
The web + philosophical
Where’s the web going? What’s the best way to use all this Ajax technology? What’s on the horizon? Why are we wasting web technology? That sort of thing.
Linux + technical
This’d likely focus on some bit of Linux software I write, like Jackfield or Jokosher; technical detail again of how we did the Extension API in Jokosher, for example, or a demo of Jackfield and what’s coming up for it, or some other bit of software I participate in.
Linux + philosophical
This is the sort of thing we talk about on LugRadio a lot. How’s the Linux desktop shaping up? Where does it need to go to be better? What’s the vision for the future? Why should you care?

What would you like to see me talk about? Maybe it’s something completely different to everything above. Post your comments now!

Jokosher Next

Monday, November 27th, 2006

Yesterday we had a Jokosher developers meeting to work out what should be worked on for the next release. After some boisterous discussion we’ve got a list of specifications for it! I’m avoiding making reference to a version number for Jokosher Next because it’s still unclear whether it’s 0.3 or 0.9 or 1.0. I’m pretty excited about the feature list: we’ll have better installation (we know that the current installation stuff is a bit of a pain, even given the magic runscript for Ubuntu) when we don’t require CVS GStreamer (and I need to talk to the autopackage guys), and we’ll have mixdown profiles. I’ve started drafting a spec for mixdown profiles, which will be refined by Lots O’People before it gets implemented, but this is another thing which will fulfil Jokosher’s promise to do stuff and be really usable at the same time.

It’s gonna be exciting. We got some good press for the 0.2 release, although there are still (amazingly) a few bugs with it, and I intend to put out a new version of the runscript to make installation on Ubuntu better. This next release doesn’t contain much wild-and-crazy new stuff, but it should get even more usable and have fewer bugs.

Something that’d be highly cool, if you’re interested in getting involved with Jokosher and you can write, is to help us with documenting it. We’ve got a user documentation area at userdocs.jokosher.org, which is there so you can write down the stuff that you do with Jokosher and fix any problems you found with the manual. Take a look, and write up what you do, or make the manual better, and you’ll likely end up as part of the Jokosher doc team!

Jokosher top application on GnomeFiles

Monday, November 20th, 2006

Cor, look at that. In the Top Rated section on GnomeFiles.org, the top app is…Jokosher!

Jokosher 0.2 released!

Monday, November 20th, 2006

Yes! The Jokosher train rolls onward. We’ve just put out version 0.2 of what will eventually be the best audio editor in the whole world.

Jokosher: audio production made simple

Featuring user-createable Extensions, volume fades that actually work and also look rather pretty, effects, GStreamer fixes, and a lot more besides. Go get it.

Broadcom wireless working in Ubuntu Edgy

Thursday, November 16th, 2006

My Broadcom bcm4318 wireless card is now working properly in Ubuntu, by which I mean that it’ll get a DHCP address and doesn’t require loads of weird hacks and fail half the time. Well done the bcm43xx Linux driver people!

PNRP and Linux

Tuesday, November 14th, 2006

Anyone know anything about this PNRP thing where Microsoft Vista machines will have their own “domain name” without registering with DNS? In particular, does it use some MS-specific stuff that’ll stop anyone else using it? I’ve read the spec but I don’t really understand it…

Jackfield and Beryl

Monday, November 13th, 2006

DraXus tips me off that people are looking to mix up Beryl and Jackfield. Beryl is the new uber-eye-candy compiz, the flashy 3d and other mad graphical effects window manager for Linux, and some people are talking about wanting Dashboard-ish widgets for it…and Jackfield was suggested. Blimey. I need to get some more time to spend on it…

D-Bus 1.0

Friday, November 10th, 2006

J5 releases D-Bus 1.0.

Well folks the time is finally here and the D-Bus library has come of age. Today it is my proud honor to announce to the world D-Bus 1.0.0 code named “Blue Bird”. With this we now have an API/ABI Policy which will be strictly followed. Thank you all who have helped out through patches, bug reports and well wishes.

This should make Jackfield much easier, since most of the reason that people can’t get it to start up is because of the D-Bus stuff. I might just make it depend on1.0, since it’s not going to actually be finished in any way before 1.0 hits distros anyway.

Moving Jokosher to Launchpad

Wednesday, November 1st, 2006

The Jokosher project tracks its bugs and does development stuff through a hosted Trac installation at Python Hosting. They offer free Trac installs for open source projects, which is pretty useful. However, we were having some pretty serious problems with bug spam. There are Trac plugins to help with this sort of thing, but Python Hosting don’t let you install plugins to their free Trac installs (which isn’t too unreasonable a policy, to be honest). Since we need people to be able to file bugs, we had three options open to us:

  1. Open up anonymous bug submission or account signup on our Trac, and try and stay on top of deleting the bugspam. Don’t wanna do that, because it’s really annoying.
  2. Write a separate bug form, which people use to submit bugs, and have that submit the bugs for them (by giving it an account on our Trac that it can log into). I had about 90% of this done, but it was pretty fiddly and susceptible to breakage (because it had to pretend to be a web browser to submit the bugs)
  3. Move bugtracking somewhere else.

After some consideration, we’ve decided on option 3. Where we’ve gone is Launchpad. We were already handling Jokosher translations through Launchpad anyway, so it made sense to move there (our other major options were running our own Trac or the Gnome bugzilla). A few issues have come about while looking at the move.

Firstly, there doesn’t appear to be a bug import. I’m still talking to the Launchpad developers about this, but there isn’t any easy way of importing bugs from an existing system. I think this is pretty important; for Launchpad to succeed in the goal of managing lots of projects, it’s gotta be easy to move your existing project from wherever it is at the moment to Launchpad, and that means importing the existing bugs. It wouldn’t matter to us (although it might matter to others) if the import went through a “translation” format: imagine a textfile which listed all the bugs in it, where you get your existing system to dump out all the bugs to that text format and teach Launchpad to import that format. Moveable Type sorted this out for weblog posts some time ago, and it makes it relatively easy to do imports; most weblogging systems support the Moveable Type export format. The Launchpad hackers could even write scripts that dumped a Trac or Bugzilla or Mantis set of bugs into the format, to make things easier. (Obviously it’d be easier still if the import process merely asked where your current bug system was and then did the import itself (by screenscraping or whatever), but then it’ll only work for systems that the Launchpad guys have catered for.)

Secondly, the whole Launchpad concept of teams and projects and products is pretty confusing. Now, I understand why they’ve done it; you need a pretty complex set of data structures to represent and handle a project like Ubuntu, where there are many teams working on many bits of software with many people in them. However, Jokosher’s not like that. It would be highly handy if, when you sign up a “product” (which is Launchpad-speak for one particular software program), there was a “simple” version where you specified the name of the product and the core devs and it took care of creating a bug team, a driver, a product, and linked them all together for you.

It’s also pretty heavily tied in to bzr as a source code control system. We’re a Subversion project, and likely to stay that way for the near future at least, so we need to keep using our external SVN hosting (at Python Hosting, for which we’re still very grateful).

I’m still undecided about Launchpad, I think. On the one hand, it’s pretty cool. On the other, it’s pretty confusing at times. I’m given to understand that it’s being worked on and the next version will Win Big, which is great news.

As one final point, I do like the fact that you can run a project and get external hosting for all the key software management bits; bugtracking, source code, specs, releases, everything. That’s great. I like that. We need to get more of that on the desktop, as I have remarked before.

Jokosher freeze

Wednesday, November 1st, 2006

Well, Jokosher is frozen for 0.2. All the features that are going in are now in, and the next two weeks are for art, documentation, and bugfixes before the release. This is quite exciting; 0.2 is actually, I believe, properly usable (although it’s still not as comprehensive as some competitors) in a way that 0.1 (which was really a technology demo) was not. I particularly like the extensions code, from a technical point of view, although obviously actually playing music is rather more important. Things I intend to work on in the next couple of weeks:

  • The simple bug submitter on the Jokosher website, so people can submit Jokosher bugs (at the moment they can’t submit them directly to us because we’ve turned off anonymous submission and account signup on our bugtracker to prevent spam)
  • Documentation on how to write a Jokosher extension

Some sort of official writeup of what 0.2 does will be coming (although it’ll be on jokosher.org).

Jackfield doesn’t work under Ubuntu Edgy 6.10

Saturday, October 28th, 2006

If you’re trying Jackfield and you’re running Ubuntu Edgy 6.10, you may have discovered that it doesn’t work. The D-Bus API has changed again. I’ll be updating Jackfield shortly; news will appear here when done!

Fonts and xchat

Friday, October 27th, 2006

Couple of outstanding things:

Are you annoyed by how xchat-gnome in edgy hangs for ages when you connect to a server, because it’s popped up the channel list? Yeah, so am I. Set it to auto-join a channel (doesn’t matter which one, so make one up if you want) in Edit > Preferences > Networks > (network) > Edit > User and Channels and it’ll stop doing it. David Trowbridge and the xchat-gnome people are aware of how annoying this is and they’re doing something about it.

Are you also annoyed by having blurry anti-aliased TTF fonts* in gnome-terminal? The font I really like for terminal windows is ProFont, which looks really, really clear at tiny sizes like 7pt, because it’s a bitmapped font (also called a PCF). Normally, you make a font available to your apps by dropping it in the .fonts folder*, but bitmapped fonts aren’t enabled by default. From a terminal, run sudo dpkg-reconfigure fontconfig-config on edgy (that might be just sudo dpkg-reconfigure fontconfig on other distros or dapper), and go through the questions (choosing the default answers), but tell it that you want to enable bitmapped fonts when it asks. Then download the ProFont (bitmap font) for Linux/UNIX (new version) and put the .pcf files in your .fonts folder in your home directory (which you might have to create). You’ll have to restart any terminals you have open, but then ProFont will be available for you to use as a font (and in all your other apps too).

Woo, Edgy

Friday, October 27th, 2006

Woo, Edgy!

Looks pretty. Love the Firefox 2.0.

The upgrade fucked up half way through, though. That wasn’t good. More work to do there, Ubuntu people. Bug filed, anyway.

Memory scanner for Linux

Thursday, October 26th, 2006

I need to buy some memory for a desktop computer. Now, I hate buying memory because I never know what to buy. EDO, DDR, SD, PC133, PC100, it’s all completely meaningless. People say; buy the right RAM to go with your motherboard. And find out what your motherboard is by opening the case. Then download some PDF manual from a very slow site in Taiwan and read it. And I still never know what to buy.

Surely, I thought, it is possible to work out what my motherboard is from software, and cross-reference that with some Big List Of Allowed RAM somewhere on the web to have a small program that, when I run it, says “Go and buy PC133 SDRAM; you have two memory slots and each can take up to 512MB”. You could even sell advertising space on it to RAM manufacturers if you were of a mind to, so when someone runs it they get a discreet little thing which says, underneath the description of what to buy, “click here to buy this specific item from Stuart’s House Of RAM” or som