The King’s Speech
Well, it’s been an interesting could of days. I had planned to go off to the magnificent – or, so I’m told – town of Røros, but alas, Anika and I weren’t feeling our best last Saturday and couldn’t stomach the two hour bus trip. I’m actually quite bummed about it, since I really was looking forward to seeing what my co-workers described as “the place where Norwegians go to feel Norwegian”. Oh well, next time.
Instead of spending the day in a scenic town relaxing and soaking up the atmosphere, I ended up making myself useful and constructed our new Ikea furniture that we bought last week, with some birthday money sent to me from my parents. The best way to describe the construction of a piece of Ikea furniture is “it’s like LEGO for adults, but one of those knockoff discount kits that only make one thing and all the pieces don’t quite fit”. I managed to give myself a bunch of blisters, but in the end we now have tables (yay!) and precious, precious chairs (huzzah!). Putting this together with the bed we bought previously, we now have about two thirds of a home filled with super cheap but super utilitarian furniture.
My co-worker Alfonso was conveniently moving house on the weekend, and offered me a free microwave on Monday night if I was willing to pick it up. Since it wasn’t too far away from our house, I gratefully said yes. When I arrived, said microwave looked like this:
But closer to home, it felt more like a 10 ton weight, and gave me a severe case of Gorilla-arm. It didn’t help that at the halfway point lay Den Gode Nabo, which tempted me dearly to just chuck it in the river and have a drink instead to cool down. Instead I managed to take it the rest of the distance home, and it’s now sitting in our apartment.
Speaking of Monday night, my boss at work asked me to give one portion of the monthly “AMAC” call, which is an initialism whose meaning is lost to me but is basically a call made out all the FAEs (Field Application Engineers – think Avon sales ladies, except bearded blokes with bags of electronics instead of makeup) from the global Atmel applications teams. The goal of the call is to keep everyone up to date with new advancements like the just released Atmel Studio 6 beta. My speaking part was short, but Kristian thought it would be a good learning experience for me. Nothing like sitting in a room nervously with a speakerphone, a hushed silence and a bunch of PowerPoint slides to give yourself a real “The Kings Speech” vibe. I’ll forever remember my friend Thomas looking over the global email invite list and uttering some words of comfort: “oh, that’s a lot of people”. Thanks Thomas.
It ended up going better than I expected, but I’m definitely happy to leave presentations up to the professional presenters where I can.
In LUFA news, I’m still evaluating the best test strategies I can add to the repository to help keep a high code quality, and automate checks where I can. I’m going to look into some unit testing frameworks soon, but right now I’m writing some custom standard build tests, to build various modules in various configurations, and do a few sanity checks on the code. The goal is to get the code into a state where it can easily be ported to other C99 conformant compilers in the future, although that is a distant goal right now as I have a million other more pressing tasks to accomplish. This week I discovered a particularly cool free piece of software called CPPCheck, a static code analyzer for C/C++ code. I’ve tried to use tools like Lint before in the past with terrible results, but CPPCheck worked first time. After running it through the entire LUFA codebase I found just one real error in an unused application and a few benign warnings, resulting in a surprisingly small changeset to correct the discovered issues. Well worth the small amount of effort to integrate into the code base.
Further down the track I want to start adding in some additional tests – unit tests on the various sub-modules of LUFA, semi-automated functional tests and other similar tests. Getting XMEGA support in is a priority, but so is maintaining a good quality of code for the existing source tree. All very exciting stuff, inspired by the internal systems I now use every day to do the same with the slightly bigger ASF project. Well, not the static analysis, that’s not being used yet.