September 2, 2008 @ 22:59
You know you’ve failed as a geek and a blogger when even your not-that-geeky-but-still-legendary ex-pastor has even posted about Google Chrome.
Of what they’ve revealed so far I’m pretty excited:
- Open-source under a BSD license (can this interoperate with Qt?)
- Using Webkit
- A fairly rigorous test sweet meaning it should actually work on a decent number of sites
- Using a public source-code repository
- A process per-tab and per-plugin to stop the whole browser crashing
- Google Gears built in (hopefully increasing its use)
- Linux and Mac versions in the works
- A fast JIT Javascript engine
Even if people don’t like the browser its nice that this is being developed in the open and that this tech is being available to people under a liberal license. Personally, if it actually works as well as claimed I can see it becoming my primary browser. I’m not certain what the GUI engine is but it looks like something home-brew from what little look I’ve had at the source code.
To be honest, I wish I was still using Konqueror instead of Firefox but sadly Konqueror is too unstable and unsupported by too many sites for it to be usable for my daily work. Hopefully this will change when Webkit is a fully supported backend but until then looks like it’s non-KDE browsing for me
Until then, roll on the Linux version of Chrome!
Posted in Software Development
3 Comments »
August 10, 2008 @ 13:44
So the first day of Akademy is over and my morning drowsiness has subsided sufficiently that I felt I should inform the one person that reads my blog about the goings on.

Yesterday was pretty fun, saw a lot of great talks and met a lot of awesome people. My particular favourites were Celeste’s usability talk, Peter Siking’s printer dialog usability talk and the Plasma Frenzy (is it just me or does that sound like a scifi themed wrestling match?).
The talks were interesting and I was positive on almost everything that was said. The only thing that slightly twinged my pragmatism was the suggestion that GNOME and KDE collaborate more on underlying libraries. I suggested to the speaker that the reason we hack using GTK/Qt is because they are far, far less painful than writing straight C/C++ and that until KDE is willing to depend on glib or GNOME on Qt I doubt we are going to see a lot of the developers developing cross-DE solutions.
The social event in the evening was a good laugh. Held in a brewery, I managed to make the stupendous faux pas of asking for Stella when they have some stupid selection of local beers there. Whoops. I particularly enjoyed recanting with Riddell the complete list of everything awesome about Scotland and particularly didn’t enjoy being repeatedly whipped in the nipple by Adriaan’s jockey whip (why the hell he has that with him I’ll never know…).
Looking forward to the rest of today’s talks and starting the furious coding on Monday!
Posted in My Life, Software Development
No Comments »
July 24, 2008 @ 00:26
At my awesome new job I’ve had the luck of giving technical interviews to our software engineering applicants.
I’ve really enjoyed the process and been doing quite a lot of reading from wise people like Joel Spolsky on the type of things that you should and shouldn’t be asking in an interview.
Two of the most important things Joel emphasises are that it is essential to have an applicant writing code in the interview and that you are better to not hire a good software engineer than hire a bad one. Thankfully our judgement has seemed good on the latter as everyone working at Mendeley seem to be not only great people but all of our software engineers (including me!) are really passionate about writing software that is more than just “good enough“.
I’ve found Joel’s first point an interesting conundrum. How should you get people coding in an interview? Obviously I’m not going to detail our exact interviewing process on my blog but I personally believe that getting the applicant to write out a solution to a simple algorithmic problem on paper (while you watch them) is a great way of seeing how they approach a problem, how quickly their mind works and how careful they are with validating their requirements. It’s interesting the sheer variation in the above exercise from people with very similar academic backgrounds and length of experience, even when asked a very simple algorithmic problem.
It’s an interesting experience as an interviewer looking at personally appeals to me about a candidate. This is by no means an exhaustive list or even that all of these indicate a good software engineer but just my own thoughts:
- A very solid technical understanding is obviously crucial. On these lines, however, I think it is important to not oversell yourself. Nothing is worse than someone claiming to be an “expert” in a technology and they don’t have more than a basic understanding of it. If your understanding is basic and you’re being interviewed, that’s ok. Just sell your other attributes. If it was a requirement, you wouldn’t have got this far!
- If there’s one thing I think is the number one attribute in a software engineer it’s the drive to learn new technologies and techniques. If software is clearly more than just a job to you and you are reading software blogs, listening to software podcasts or contributing in OSS outside of work, chances are you are going to take more pride in your work than someone to writing software is just a 9-5.
- No matter how good someone is technically, if they aren’t going to fit in the team then they shouldn’t be hired. The last thing you want is a new member disrupting the social dynamic of a group of people that currently get along. I think everyone wants to work with people that they’d be happy to talk to outside of work so if you’re a likeable person than that reflect well on you.
Also, as an interviewee I’ll share some of what has annoyed me in interviews:
- If you don’t ask me any technical questions, you probably have some software engineers in your team that suck at programming. I don’t really want to work with people like that.
- Please don’t keep me waiting for weeks only to tell me I didn’t get the job based on something that I said in my original CV/cover letter I sent to you.
- If I don’t get a job I want constructive criticism so I can improve myself.
I try to keep the latter points in mind when interviewing people so as not to annoy others as I was annoyed.
I’d be grateful for anyone else’s input as either an interviewer or interviewee.
Let the argument commence!
Posted in My Life, Software Development
No Comments »
July 17, 2008 @ 01:50
My sound card (a Creative Sound Blaster Audigy 2) has got lots of inputs, especially with the nice drive bay expansion port.
Unfortunately, the default ALSA device seems to have no way to access the “Line 2/Mic 2” channel on the front drive-bay expansion which I use for recording due to it seemingly being the lowest-noise channel.
If you point JACK’s “Input Device” to “hw:0,2” then it will pick up the 16 channel inputs and you can connect them nicely to be able to access this port (channels 9 and 10) in JACK-enabled applications.
I’m currently working on some voice acting for The Nameless Mod (which is looking like it’s going to be spectacular, check it out) and the best program I’ve found to do this recording in is Audacity. Audacity however seems to stubbornly refuse to let me use it’s JACK support (which is apparently buggy beyond use currently anyway).
I found that if I point Audacity to record 16 channels from “hw:0,2” then I can access all the Audigy’s input channels (as JACK does) but unfortunately this means that every time I record I get all 16 channels (a PortAudio limitation from what I can tell from the source). This isn’t ideal as it means, to record a bunch of lines in rapid succession, I need to spend huge amounts of time deleting the unwanted 15 other channels. As it’s not possible to select the channels to record from Audacity I needed to get a little more creative and ended up with this:
pcm.mic2 {
type plug
slave.pcm "hw:0,2"
slave.channels 16
ttable.0.8 1
ttable.1.9 1
ttable.8.0 1
ttable.9.1 1
}
If you add the above to your “~/.asoundrc” or “/etc/asound.conf” then you will find that in Audacity’s “Recoding” dropdown you will now have the option “ALSA: mic2“. This is simply the same as “hw:0,2” but with the 9th channel swapped with the 1st and the 10th swapped with the second, thus allowing you to select “2: Stereo” or “1: Mono” from the “Channels” dropdown and get the Line/Mic 2 input(s) in Audacity without the need to constantly delete unwanted tracks.
Enjoy!
Note: You probably also want to ensure that Audacity records at the Audigy 2′s native rate or 48000Hz and using a 16-bit sample format.
Posted in Music, Software Development
No Comments »