Skip to main content

Revised website

More than five years since the last update! Yikes.

What have I been up to? Well, I finished my PhD in May 2013, did two post-doctoral contracts (in Singapore and Japan), then gave up on academia and returned to Vancouver in May 2015 to work for my brother's company, Tarsnap Backup Inc. Since then, my main focus has been my health.

I've made significant changes to my diet, started practicing yoga, lifting weights, and get at least 7 hours of cardio per week. I fell in love with ballroom and swing dancing, and these days I spend more time dancing than I do on music!

Speaking of music, my violin-playing has improved dramatically -- I've played in all four (main) string sections of the West Coast Symphony Orchestra (the best non-professional orchestra in Vancouver), and plan to play in each section at least once per season. I'm teaching violin and cello, and coaching a string quartet. I've started composing music again (after a gap of a decade), primarily for my students.

It's not all good news, though. I'm still struggling with perfection-fueled procrastination, a la "Perfect is the enemy of good"). This website is a perfect example of it: 5 years ago, I decided that I should switch to a static website generator and stop writing in raw HTML. That prompted an incredible number of hesitations: Which generator should I use? Which markup language? How can I tweak the markup and/or generator to produce the HTML I want? Can I add a CSS file to fix stuff, or must I edit the template's default CSS, or must I edit the template itself? Which web hosting provider should I use? Does it have HTTPS? etc.

I finally said "enough is enough", so I'm going ahead with the revised website right now, despite all the remaining problems. Or rather... I said that three days ago. Even when I started removing whole sections of the website (e.g., music, teaching, software), it still took me days to get this out the door! My plan is to make incremental updates to the website, trying to work with "blocks of time" rather than "perfect chunks of update". I'll pick some weekly time (say, "Wednesday morning before teaching"), work on the website, and then upload the latest version regardless of whether I'm fully satisfied with it or not.

Artifastring 2.0

After over a year of development, I have released Artifastring 2.0. This includes higher-quality output, an incredible amount of optimizations (up to 100x realtime), and now has multiple distinct instrument sounds: 5 different violins, 2 viola, and 3 cellos.

Most of the speed improvements are thanks to the Eigen C++ template library for linear algebra. In particular, this enabled me to easily write SIMD code rather than using floats.

Other bits of interest are the realtime OSC server and an interface for the Control (OSC) app. Users with iOS or Android tablets can control the physical modelling with their fingers! I'm hoping to have a video in a few days, although I still need to find somebody with a video camera. Before you get too excited, I should add that this is a proof-of-concept of the communication between tablet and computer; I haven't put any thought towards the actual GUI or ease of control. My focus is on finishing my thesis, so if anybody is interested in making better interfaces, go nuts!

There's sure to be rough edges left in this release. I'm trying to force myself to accept "the perfect is the enemy of the good". I'm having huge problems writing my thesis because whenever I write down what I've done, I think of possible flaws, which immediately prompts me to spend a week or two performing experiments which justify what I've done (or else demonstrate a real problem, in which case I spend another week or two changing even more!).

With that in mind, I expect a 2.2 release to happen within the next month or two. Of course, if more people test the 2.0 version and report problems, I'll have more confidence (and more motivation!) to get the 2.2 release out there.

Ubuntu ssh agent admitted failure

Ubuntu 10.04 LTS has a serious bug in ssh/ssh-agent/something which causes it to fail to log in to a system even if you have your ssh identies set up. This caused me an hour of panic before I found a workaround. I'm putting it here in case somebody else has the same problem and google finds this for them. (tl;dr: use )

I swap between two laptops and a desktop regularly. I have a shared dotfiles git repository, so my normal settings are fine -- but that won't work for stuff like email passwords, or even email. My current setup is to use an sd card for personal stuff. (yes, my stuff is in an encrypted loop-back partition on that card; I'm not crazy!)

A few days ago (just after returning to Glasgow), I started having read errors on the card. This was particularly sucky because although I'd bought a new 16gb card while in Vancouver, I hadn't gotten around to carrying that new card, so I was using my old 8gb card. I was planning on doing it "soon", but I definitely started to kick myself for not getting it set up sooner.

That said, it was only about 24 hours since I'd made a backup of the sd card anyway, and there hadn't been any truly important emails in that time. (I know the story should go "... but I didn't mind, because I'm using my brother's tarsnap backup service", but it was actually about 3 days since I'd backed up in tarsnap)

Fortunately, when I put the card in a different laptop, it read it just fine. I copied stuff over, checked that things seemed ok, and then started using the new card regularly. Everything seemed fine for a day or two, when I discovered that I couldn't log in to various servers. At this point, I turned to tarsnap to get a backup of my ssh directory, thinking that I'd gotten some freaky bitrot in my private key but nowhere else. No joy.

But wait, it gets worse! Take a look at this:

gperciva@gperciva-desktop:~$ ssh -v
OpenSSH_5.3p1 Debian-3ubuntu7, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to [] port 22.
debug1: Offering public key: /home/gperciva/.ssh/id_dsa
debug1: Server accepts key: pkalg ssh-dss blen 817
Agent admitted failure to sign using the key.

LOLwut? Server accepts key, agent admitted failure to sign in using the key?!

After a bit of stumbling around, I found a ssh bug report from 2008 in the ubuntu database. Apparently you can work around it by setting SSH_AUTH_SOCK=0. You can also do some weird stuff with something called "seahorse", but I think I'll just export the variable.