Browser usage

Somebody said on Planet GNOME that sites ought to publish their browser usage.  I have taken this to heart, such as I can, and added a short codex to Joule, a site I set up five years ago to track friending and defriending on LiveJournal.  (Well, Joule isn’t exactly the size of Wikipedia, but it’s the largest thing I have control of.)  It shows the requests for the last day:

18369 RSS hits (51.41% LJ, 3.55% Google Reader), 4735 HTML hits (32.73% Firefox, 16.14% IE, 3.76% Safari); 29 Google hits

Friday was a bad day to push this live, really, because traffic always spikes on Monday.

Anyway, the important thing is that Firefox has been the dominant browser on Joule for a long time now. I don’t know why. And I’m also showing RSS versus HTML requests; it shows that HTML now only accounts for 20% of the traffic, although this may just be because the cache control is more honoured for HTML. Google Analytics also tells me that 15% or so of my users are in Russia, which given LJ’s demographics isn’t surprising. I suppose I should translate the site to Russian.

By the way, if any of you have access to a server running LJ’s codebase and wouldn’t mind testing something for me, I’d appreciate it a good deal.

Scripting in applications

I was interested to read Havoc’s post about scripting in applications.  I’ve often said that, as with any other right, the right to modify your software is no good if you can’t use it– and if you need to know what a compiler is, most people throw up their hands in horror and say, “But I’m not a programmer!”, whereas typing a few lines of magic into a textbox somewhere is a gentle introduction.  After all, the first one’s always free.

(But I do have to wonder whether it would be a sensible idea to allow, say, Metacity to bind keys to JavaScript scripts.  If it would, aren’t we turning into Sawfish?)

Another question: What are the benefits of doing this in-process, rather than having each program expose a D-BUS API which can be called by some kind of central daemon?  Would we want the script engines in each program to be able to signal the other programs in case a user wanted to write script to say “play Bach when I load my work spreadsheet”, or would each scripting environment be able to access only the one application?  When the user wrote any one script, would they be presented with it as part of a given application, or would it be possible to write platform-wide non-application scripts?

I think that rather than doing this piecemeal, we should consider a platform-wide policy about what language(s) are acceptable, so that people can transfer their skills from one part of the desktop to another.  They don’t necessarily have to be good to write large and complicated programs in, but they do have to be non-threatening , which JavaScript manages pretty well (consider the success of BASIC in the eighties, which raises other spectres).

I may be asking silly questions.  I often do.

And… it’s the daily update.

Life: I was so tired after work last night that I fell asleep in the guest room at about nine o’clock. I still feel rather tired– I don’t know whether sleeping on my own for once meant that I slept more deeply– but I do remember my dreams, which I normally never do. Perhaps that’s a good sign in general, but I did have to put up with their being nightmares. First I dreamed about having to sit an important exam, and even though I’d studied hard I still knew nothing about the subject. It was pretty horrible, and I was very relieved when I woke, but then I fell asleep and dreamed about being in England and journeying down to see my parents. The journey was disastrous, and then when I got there, instead of being pleased to see me they were angry I’d been away for so long as though they’d been expecting me back after school and I hadn’t returned for six years.

It’s autumn here. I love the autumn, but I’ve been sneezing all day. I resolve to buy honey from a local farmer (I know of one) and eat it every morning in the hope that that will build immunity.

Sis was having a yard sale at her house; nearby, my habit of walking around streets reading bumper stickers uncovered a Stalin quote on a parked car, which is certainly a first. At the yard sale, I found a community singing songbook from the thirties– Wikipedia doesn’t seem to have an entry on community singing, but it was a fashion back then to get your whole town together in a big hall, and then sing “D’ye ken John Peel” or something. The war pretty much killed it off. Rio sold some of her old things and made $11, so we went to the shops and she spent it on badges and bracelets and so on. She also found herself a backpack with some skulls on it and some purple hairdye, again. Purple really suits her.

Links: I really and truly want to live in a world where all resumes look like this and all workplaces are worthy of them.

I think this is rather wonderful– Penguin (the publisher) has started a dating website, but they tell you about it in an advertisement printed at the end of the book, so you can go to their site and find soulmates who want to stay up late at night in a coffee shop staring into your eyes and slowly stirring their coffee while they discuss characterisation in Doctor Zhivago or foreshadowing in Ivan Denisovich.

A poster of (pencil-drawn) cats who look like all the regenerations of the Doctor.

Hearing about this WiTricity malarkey is rather annoying me, and do you know why? I wanted to investigate the idea for my A-level Physics coursework back in ’92, and was told I couldn’t because it was “just science fiction”. Okay, I was an A-level student and they are postdocs at MIT and fifteen years forward in time, but I wanted to write a report on whether it was possible, and if it wasn’t, why not. You know Tesla himself said it was a possibility. I think it would have bumped me up at least a letter grade :(

Nargery: I have been writing a program in Python, and today I learned that “for” loops do not introduce a new scope, so if you make a closure inside a for loop, you can’t bind to the control variable. But if your lambda function has a formal parameter which is initialised to the value of the control variable, that works just fine. Thanks to the #python folks for helping me there. Did you know that?

I need to talk to some of the GTK people about whether they think GTK taking over theming/frame drawing from Metacity is a good plan for 2.28. Is gtk-list the place to do that?

Reformatting

A discussion on d-d-l today reminded me of a thought I had a few weeks ago.  At the moment, source code control works on lines, as though we were still using punched cards.  This means that you can’t reformat your source code if you decide you want, say, a different number of spaces in your indentation.

What I would like is a wrapper around checkout and commit scripts which understood how to tokenise various programming languages.  Then when you checked something out, it would look in a configuration file to see how you prefer your source code formatted, and do all the indentation as necessary.  When you checked it back in, it would undo that and store one token per line. That way, there would never be an argument about indentation again, and more importantly, blame would show who last modified each token, not each line.  It’s not as though lines had any major significance in many programming languages.

I wonder whether I could persuade the bzr people to consider this.

Inbox Zero, and Pulp

Part the first:

tthurman@dorothy:~> ls -l /var/spool/mail/tthurman
-rw------- 1 tthurman dev 0 2008-08-17 23:42 /var/spool/mail/tthurman

See that? ZERO! NOTHING IN MY MAILBOX! It had 5,700 mails last week, and after some hard final work on the last half-dozen tonight I have finally achieved a state of Inbox Zero. Now to keep it that way.

Part the second:

Someone just said they didn’t know about the Britpop band Pulp. Here are some songs of theirs which are worth listening to. I put this here in order to show it to them, and in case anyone else wants to know.

Common People: A rich girl tells the narrator that she wants to try slumming because she thinks that “poor is cool”. The narrator points out that it’ll only be superficial and she’ll never know the true hopelessness of being poor (“Still you’ll never get it right / Cos when you’re laid in bed at night / Watching roaches climb the wall / You could call your dad and he could stop it all”). Also memorable for “drink and dance and screw because there’s nothing else to do”. Watch for the Yellow Submarine references in the video. Probably their most famous song.

Sorted for E’s and Wizz: about going to a rave in a field somewhere in Hampshire. Often protested about (the Daily Mirror ran a headline “BAN THIS SICK STUNT”) by people who miss what a gritty picture of superficiality it paints. Broadcast versions often water the lyrics down a lot.

Disco 2000: The song is about a guy who arranges to meet up with a friend of his from school years later. They were very good friends and he secretly had a crush on her but he never admitted it, and when he meets her again she’s married with a kid. Or maybe he’s only just arranged it and they’re still kids and he’s imagining what will happen. I love this song but I have never understood what the video has to do with it: it’s about picking up people in bars.

There are other pretty good songs, but those are the ones I wanted to say that the person should check out. Do You Remember The First Time (about losing your virginity) almost made it into the list.

Part the third:

This is the card Amy sent us (possibly slightly NSFW).

Discovery

Discovery:  I am a morning person.  No, really.

It seems to have taken thirty-odd years to find this out.  Well… that’s not really true.  When I was in primary school, my parents made a rule that permission to use our BBC Micro should rotate daily among the three children, but there was an exception that between 6am and 9am I always had first refusal.  So between the ages of about eight and about eleven, I would get up at 6am every day and code.  In my teens, of course, I reverted to the typical teenager pattern of staying up until three or four in the morning to code instead, and the old practice was forgotten.

I have recently been able to get a lift into work at seven, and that’s meant rising at six, and I’ve found how inexact my belief was that I dislike mornings.  It’s actually that I dislike getting up.  It’s dreary and icky and you might have been having a dream you didn’t want to leave, and you have to undergo the daily birth from your blanket cocoon into the cold and unwelcoming world.  So who can wonder that I was attracted to the idea of putting it off for a while?

But, praise Drogo, there is caffeine in the morning to focus your mind, there is stretching to unfurl yourself from your pupal state, and there is the promise of your inbox and newsfeeds to tempt you to your desk.  Now, though, the difficulty lies in getting up on days I don’t have to.  I believe it’ll make it harder to get up on ordinary days if I lie in.

I know some of you reading this have set daily practices in the mornings, such as saying the Office.  Whether or not I wanted to do that or anything like it, I was always impressed by anyone with the ability: my early mornings and late evenings have been the least organised parts of my days.  I’ve been getting a better handle on having the middle part focussed; it needs to spread to the rest of my life as well.

Organising myself

Skin to StreetLifehackery: As part of the latest push to organise myself, I decided to try this idea about getting your inbox down to zero.  While I wasn’t looking after it, it had grown to about 5,700 messages.  After half an hour’s labour this morning, it’s down to 27, and I hope to bring that to zero by the end of the day.  (I haven’t read or used any of the Inbox Zero ideas, although I’m sure I ought to, and probably will soon.)  If I didn’t answer a message from you, I may have missed it in the noise.  Either I will answer it soon, or I accidentally deleted it with my tag-delete command of doom.  You are invited, as a general rule, to pester me again if it’s been more than a week.

AWN has a useful to-do list display which shows me the number of things left to do today in a severe number in the dock, and glares at me trying to make me feel bad about it getting larger than five.

Slight nargery: I suppose famous bloggers must get this all the time, but it’s always interesting when someone posts about something you post and you get to read their opinions at length; someone I don’t know posted his opinion about the themes post I made the other night on the Metacity blog, which meant I got an insight into what theme authors think about how things are– a particularly interesting insight, since, for reasons I haven’t ever discovered, theme authors and window manager maintainers don’t generally have much contact.  I wonder what solutions there are to that problem.

Photo credit: Christopher Peplin, cc-by-nc-nd.

My life continues along

My life continues to be interesting. I should post about it more, shouldn’t I? Work’s been busy, though, but that’s a good thing.

I posted some things over at the Metacity blog about the future of themes and the theme format. Please go and read it and share your thoughts.

I post a lot more there than I do here. Occasionally I will post something there and mention it over here, and people will say “Oh, I didn’t see that. Why isn’t the Metacity blog on Planet GNOME?”. And I’ll tell them that the official policy is that people go on p.g.o and projects go on p.g.o/news, which admittedly nobody much reads, and then they ask me why and I say, “I don’t know, that’s just how it’s set up.” I realise that most projects other than Metacity don’t post much other than their release announcements, but the Metacity blog is frequently-updated and chatty. So I tell the people that for myself, I’d rather like it if there’d be an exception to the people/project planet division for Metacity, or at least have one page that people knew about with everything on it, but it’s not up to me.

Here is my tech thought of the day: I would like it if browsers had a button like the wonderful Universal Edit Button which appeared when the page advertised a link rel=”alternate” of an audio type. Then you could click it and hear the page being read to you. It would be like the button which often appears on Wikipedia pages, only in a standard form everywhere. I may actually implement this.

Buying beer tonight, I was delighted to be carded. Nevertheless, it is ten years since I started doing any postgrad work and thus my Commemoration, which almost everyone else in the world calls a reunion, is coming up. It is beginning to look likely that I will be there. Anyone in the vicinity of Cambridge (the original one) who knows me and wants to say hello at some point in late September should make themselves known.