So, I just finished reading the The Book of Qt4 and it has almost convinced to do more C++ programming again. I say almost because there are Python binding for Qt4, so I’ll just use Python instead. However, I did sit down and write several simple applications with it and I must say it is the most well thought out, well designed C++ library I have ever seen. I’ve written several X apps (Motif), MFC, wxWidgets, and several other apps using some obscure toolkits and I must Qt4 is absolutely the best GUI framework I’ve ever seen. The signals and slots paradigm is awesome and exactly the loose coupling that GUI developers need. I wish Java had something similar… I could definitely use it on a project or two right now.
Several of our projects have grown to the point where the test suite and/or the full suite of builds has become time consuming. Moreover, we’ve been faced more and more with the need and desire to have a set of “official” builds that we use for testing. The current scheme of embedding the version number in the binary doesn’t include enough information to let a tester know where the binary came from. That includes which developer as well as which revision of what branch in the source tree. So I finally got a build server cobbled together (actually two: one for Windows and one for Linux). Myself and one other co-worker did a pretty exhaustive survey of build servers and finally settled on one: Quickbuild. We did so mainly because it seemed the easiest to configure, authenticated against Active Directory, and could support multi-platform builds.
I just got finished reading an interesting book call Beautiful Code. The editors sought out a number of developers and asked them to author chapters about what they felt was the most beautiful code they had seen. Karl Fogel, of Subversion fame, had a chapter about Subversion’s delta editor (congrats to Karl!). There were some interesting stories about some optimization techniques, testing, and even style. But that one that stood out the most was the final chapter of the book: Writing Programs for “The Book” by Brian Hayes. That chapter wholly lined up with my vision of beautiful code. In the chapter, Brian states:
Probably one of the most difficult tasks in front of me at this point in my career is managing people. Unlike some of my counterparts, I was not born with the social side of my brain intact. :-) What I mean is that the social skills that I have are learned, and not instinctive. It took a lot of personal strength and mistakes to get where I’m at, and will take a lot more to get where I need to be. But one book that I’ve read recently was more insightful than I could have possibly imagined: Managing Humans: Biting and Humorous Tales of a Software Engineering Manager by Michael Lopp. Michael Lopp spends the entire book running through semi-fictiional stories that would hit home with any reader. He’s got a wonderful writing style, and his insight into management is inspirational. But, the best part of his book is not just how he handled difficult situations, but that he captured his thought process. For those of us who don’t have that innate ability to grok other people, it was amazing to see how that thought process works. For me, it was very inspiring to see a way to manage that wasn’t based on a dictatorship–not that I practice it, but it is something that I see all too often. I hate the idea of being a dictator, especially when I work with many very smart people. Now I see a goal that’s a lot more clear to me. Thank you Michael Lopp. You can purchase the book from here. And no, I don’t get any sort of money for doing this. I just believe Managing Humans is an amazing book.