tech
This feed contains pages in the "tech" category.
It's not often you see something that manages to perpetuate stupid beliefs about gender at the same time as demonstrating yet another way to invade someone's privacy with Javascript, but this article manages it. Apparently, it looks at your browser history and guesses whether you're male or female based on the sites you've visited. Now, I'm not convinced that there's a significant gender bias for most sites, and looking at the results it looks like a sizable proportion of them were wrong ("oh noes ur site thinkz im a gurl!!!!111"). It bugs me that people even bother, though.
What's more concerning, as Simon points out, is that apparently any site that can use javascript (i.e., any site you don't disable it for) can find out what sites you've been to just by creating a link and checking whether the CSS style is :visited. I think I'm going to have to install NoScript again, despite having to use Javascript for work...
The problem: I have files that are shared by more than one repository. Specifically, the TermiSoc constitution and security policy both contain a logo and LaTeX style, which should be identical.
The solution: remote branches.
This is probably really obvious to anyone who already knows Git, but I had trouble working it out from the available documentation, so I'll record it for posterity. I was somewhat hampered by the fact that my previous experience has been with Darcs, where you can pull from any repository to any repository, and expect everything to work just fine.
First, you'll need to set up the repositories: one for the shared files, and however many to share these files amongst:
cd style git init git add *; git commit -m "import." cd ../document git init git add *; git commit -m "import."
Then, add the remote branch:
git remote add style ../style git fetch style git branch style style/master git merge style
Simple.
To update:
cd ../style vi termisoc.sty git commit -m "blah" termisoc.sty cd ../document git checkout style; git pull style git checkout master; git merge style
This can probably be improved upon, but that's the way that worked for me. You can probably also edit on the style branch in the document repository, and push from the style branch to the style repository, but it's late and I couldn't get it to work properly. I shall have to experiment at some point.
From Twitter Blog:
Masai tribesman Joseph Kimojino (@maratriangle on Twitter) is using Twitter as one way of raising awareness for the Mara Triangle wildlife park. For more information, read Life, Death and Twitter on the African Savannah.
Recently I've been thinking about ease of use of interfaces. As you may know, I've a Flickr account where I post my photographs; I also have a deviantART account for the same purpose.
Generally, when I take pictures, I post any that are reasonably good to Flickr without even thinking about it. I can use the web form and upload five at a time, or I can mail them in; I have my own script for mailing them that I may post at some point.
Uploading to deviantART requires me to use the web form and upload one at a time, and go through a lot of rigmarole that's not necessary with Flickr --- for example, Flickr lets you set a default CC licence for your pictures; deviantART does allow you to specify one, but you must do it individually for each picture; it's not possible to set a default.
I didn't really consciously think about it; I just uploaded them to Flickr because it's easy.
It's also easy to do things with them; Flickr, like any good Web 2.0 site, has an API that I've hardly even begun to look at, but it means I can follow my friends' activity from the comfort of my mail client, and any new photos get shown on my Facebook profile. deviantART has RSS feeds, but most of them are so well-hidden as to be completely useless.
Something to think about for my final-year project, or any other web stuff I happen to write in the future --- multiple access methods for data, both incoming and outgoing.
It's that time of year again; I've got two exams coming up, plus one I've already taken. Not as many as some people, but still. Of course, life would be much easier if not for the fact that the only way to find this out was by getting the list of exams and grepping for modules I'm taking. Despite having spent craploads of money on the new portal, the exam timetable is a big HTML file containing a list of every exam in every faculty. Last year, it was an Excel spreadsheet. Is this progress?
The thing is, the portal knows what modules you're enrolled on; surely there's some way of telling it "this module has this exam", and then having it notify people as appropriate?
So, the last piece of coursework is out of the way and, barring two exams and a demo, that's the end of another academic year. Whether I've passed or not remains to be seen, of course.
On Monday I have an interview at Plymouth Marine Labs, for a year-long work placement with the Remote Sensing and Modelling groups. If I get the place, I'll be developing software to deal with various scientific data. They use mostly GNU/Linux, which will be a nice change from the Uni's Microsoft-whoredom (they use Fedora Core 6, from the looks of their mail headers, but it's better than nothing :).
If I don't get it, I'll just get a temp job over the summer again and carry on to my final year, but it'd be cool to work there and good to get a break from academic work for a while.
On the 30th of April, I'm planning to head up to Cambridge to hear a lecture by Richard Stallman; details here, or TermiSoc plans here. Since I've never been to Cambridge before, and getting from the station to the building in which the lecture is to be held involves a 3+ mile trek across the city, I predict fun times to be had for all.
On the 1st of May, I take over as TermiPresident. Scary. I have plans for the society over the coming year, but they're sekrit. TermiSoc's end-of-term celebration is the 18th of May, though we're not completely decided what's going on. It will likely involve a) beach, b) drinking, c) music, d) burning of foodstuffs, or e) any or all of the above. Attendance is mandatory for TermiSoc members, except for the bit where that was a lie. Non-members are also welcome to come along, though why you'd want to is beyond me. :)
As far as techie stuff goes: I want to get vox populi into a useful state, and get termibot past the prototype stage. I've had ideas for a few other things I could do; more details forthcoming once I have slightly more concrete plans for them.
For the last few days I've been using MPD as my media player---it's a dæmon that runs and plays music, and various clients connect to it and offer graphical and non-graphical frontends to it (I can recommend Sonata, too, if you want a graphical frontend).
Anyway, there were a few niggles with it---my previous player, Quod Libet, made it very easy to play only music by a certain artist, or only music from a certain album. MPD, like most music players, is based on playlists, rather than a big library o' crap (or rather, you do have a library, but things have to be in a playlist to be played, unlike QL where playlists are optional).
So, I went looking. Lo and behold, I came across Joey Hess's mpdtoys, which includes a script to create playlists for every album and artist, plus a load of useful stuff along those lines. He also mentioned mpd-dynamic, which makes sure your playlist is never empty. This means you can, for example, select an album to play; once it's done, it'll go back to playing randomly. This is, actually, nicer than Quod Libet, in my opinion, though the UI could use a little work (since dozens of playlists isn't always particularly useful---this is a limitation of MPD, really).
Dan made some comments (via private email) on my previous rant about GoogleTalk. He pointed out that there aren't any references to this on the web---nobody complaining about being unable to connect, and so on. A little digging lead me to this page on Google's support site, which details the DNS changes that need to be made to point a Jabber client to a different server.
So, in short, it's not exactly Google's fault, except as far as their system is crazy. However, people using Google Apps on their own domain, and using Google Talk specifically, for the love of $DEITY please set your DNS up correctly.
I can't remember if I've posted this before, but either way: Encourage Women in Linux FAQ.
Read it. Seriously.
Just a brief comparison between what Firefox looks like by default and its actual useful graphical elements (by useful I mean "useful to me", not to the rest of the world).
- The menu bar isn't usually needed; it could be hidden and shown temporarily by means of a keypress.
- Forward and Back buttons are useful, but it's much faster to just use a shortcut key. Hide them. Ditto Refresh.
- Stop and Home are so rarely used that they don't deserve space. Hide them, use shortcut key if necessary.
- Even more so for the Go button---I don't recall ever using it, since it's so much easier to hit Enter (you have, after all, just been typing the address in anyway).
- The Search bar would be useful, but its functionality is duplicated by the Address bar, since if you type in something not recognised as a URL, Firefox passes it to Google.
- The Bookmark Bar is a waste of space; if I want bookmarks I'll use the Bookmark menu.
That leaves us with the Status Bar and the Address Bar. Why not combine them to save space (the Status Bar is rarely used, even less so whilst the Address Bar is being used); click on the Status Bar to enter a URL, or use a keyboard shortcut.
If you're a VI user, you may be interested in Vimperator; dirty Emacs users may likewise be interested in Conkeror. Both hide all the unecessary GUI crap and leave you with more space for actual content, and add sensible (Vimperator) or insane (Conkeror) keybindings. Then if you get a decent window manager, you don't have to have any of the silly clicky crap there either.
(Photos hosted by Flickr.)
P.S.: No, it's not fullscreen mode; it's Vimperator, which both hides everything and adds keybindings for basically everything I'm likely to need, as well as a command-line interface similar to what you get in VI when you press :.