category_name=blog
Software Developers are Human Beings
December 7, 2009 | Comments Off
Over on the “Shaping Software” site they just posted a short article titled “Lessons in Software from Eric Brechner.” Eric is the Director of Development Excellence on the Engineering Excellence team at Microsoft. The article focuses on his insights about what attributes shape developers into software engineers. He suggests that strength and balance attributes are important. Briefly, they are enumerated as follows:
Strength attributes
- Insightful
- Reflective
- Principled
Balance attributes
- Serving and advocating
- Eecution and slack
- Trust and risk
I really enjoy reading articles like this where the author focuses on the human side of software engineering. As Eric says, You can’t accomplish anything truly impactful alone.
I think it is worth the time to read through this article! Highly recommended.
Better than Google: Real answers for Programmers, System Administrators and IT Professionals
June 7, 2009 | Comments Off
Technology is more complex now than ever. It seems like the diversity of topics a programmer, system administrator or IT professional must have some familiarity with grows exponentially. In the office it is all to common to hear someone say “Did you google it?” or “I found a post that looks like it might be related on google.” when trying to sort out complex technology issues.
Google is good, but real people working together, sharing their experience with each other and documenting the results for others to take advantage of works even better. Two sites that should be in every technologists bookmark list are stackoverflow and serverfault.
You can think of these sites as social networking communities with very focused areas of interest. Anyone can post a question to a site, anyone can provide an answer, and everyone votes on the best answers. Comments can be added to questions or answers, folks develop “street cred” by providing useful answers and eventually become recognized by their peers as knowledgeable on specific topics.
Stack Overflow is a collaboratively edited question and answer site for
programmers – regardless of platform or language. It’s 100% free, no
registration required.
Server Fault is a collaboratively edited question and answer site for system
administrators and IT professionals – regardless of platform. It’s 100% free,
no registration required.
Book Review: RESTful Web Services – Web services for the real world
May 17, 2009 | Comments Off
RESTful Web Services
Web services for the real world
By Leonard Richardson, Sam Ruby
May 2007
Pages: 446
ISBN 10: 0-596-52926-0 | ISBN 13: 9780596529260

Hike in the East Bay – Get a Commerative T-Shirt!
January 25, 2009 | Comments Off
EBRPD is celebrating its 75th Anniversary and has partnered with Kaiser Permanente and the Regional Parks Foundation to make the Trails Challenge program free* for everyone (while supplies last). In an effort to go “green,” this year’s program will be hosted completely online. Register to receive the 2009 guidebook filled with 20 of the best hikes in the Regional Parks, an organic T-shirt, and commemorative pin for those who complete the challenge.
Sign up and Get Out There. See you on the trails!
Mac Market Share Increasing!
January 17, 2009 | Comments Off
I was at the local library today to do a couple hours programming in a quiet environment without the normal distractions of my home office. To my surprise when I looked around I saw a sea of Apple MacBook and MacBook Pro laptops. Sure, there were a few Toshiba or HP laptops too, but the majority of the machines in the room had shinning bright Apple logos on the screens.
My unscientific survey in the library today yielded the following numbers:
| System | Count |
|---|---|
| White MacBook | 2 |
| Unibody 13″ Macbook | 1 |
| 15″ MacBook Pro | 2 |
| 12″ PowerBook | 1 |
| Toshiba | 1 |
| HP | 2 |
| IBM | 1 |
That breaks down to 60% Apple, 40% Microsoft.
Now that’s what I like to see! Maybe the recent discussion on the macsb about Mac market share isn’t so far fetched after all. Here are a few interesting links:
Who knows if this is all true or not. With the recent announcement that Steve Jobs will be taking a six month leave of absense from Apple due to health concerns the future for Apple is less clear than it once was. I’m sure Apple will do just fine over the next 12-18 months since there are a number of products already in development. The big concern has to be about the sort of innovations that Apple can concieve of and execute on after the current pipeline runs dry. Will there be other folks at Apple with the same vision and forsight as Steve Jobs? Probably, but it is far from certain.
Atleast for now it seems like the market share for Apple will continue to climb. Microsoft will have to hit a home run with the new Windows 7 operating system if they want to fend off the onslaught of Mac OS X. Being a long time developer on both platforms I can say that from my point of view having more users on the Mac makes me happy! I look forward to developing, releasing and selling more applications on the Mac platform.
Nokia places Qt under LGPL License – Sweet!
January 14, 2009 | Comments Off
I have been a big fan of the Trolltech Qt Framework for a number of years. It is a fantastic way to build high quality cross-platform desktop applications in C++. For the past six years it seems like every project I work on has included a rich desktop GUI application of some sort. Each time this need would arise I would start the process of selling the idea of using the Qt Framework for the project. The biggest hurdle was always the per-developer cost for the commercial license of the framework. I would hear things like
Just use MFC. It’s free and we don’t really see a need for the application to be cross-platform anyway.
or sometimes I would hear
Use the GPL version of Qt and just keep it under the radar until we are sure the application will be released to our customers.
It was always frustrating to try and make the case that Qt was a better solution than MFC for UI, was more comprehensive for general development than other frameworks, and that it was worth planning for the possiblity of releasing the applications for Linux or Mac as well as Windows. In the end each project did adopt the Qt Framework, but it really was a distraction to try and justify the use.
Thankfully with the purchase of Trolltech by Nokia we are seeing a change in the licensing terms for the Qt Framework. Starting with the 4.5 release it looks like the framework will be placed under the LGPL license making it much easier to adopt as part of commercial development efforts.
Here are a couple links that discuss the development further:
and you can read the news directly from Nokia on the Qt Licensing Terms page.
This new development on the licensing front and the recent inclusion of WebKit into the Qt Framework make me very optimistic about a long and prosperous future for developers who know the Qt Framework! Thank you Nokia!
Software Design: Want vs. Need
January 13, 2009 | Comments Off
I am always surprised at how short-sighted some folks are who design software. It seems like there is no shortage of people who feel that you just have to listen to your customers to build great software. In my experience, if all you do is build what the customer says he/she wants then your software will likely be obsolete in a year (maybe even less time) and your customers will ultimately be very unhappy with you.
To build great software you have to listen intently to what the customer is saying so you can identify the pain and suffering that usually lies unexpressed just below the surface of comments like “All I need is a widget that does X.”
Check out what BusinessWeek magazine had to say about this phenomenon:
“It’s really hard to design products by focus groups. A lot of times, people don’t know what they want until you show it to them.”
– BusinessWeek, May 25 1998
Probably my favorite quote about building great software came from someone on the team that built the NeXT computer. I think they really understood what it takes to build quality systems (software and hardware) that last.
“It took us three years to build the NeXT computer. If we’d given customers what they said they wanted, we’d have built a computer they’d have been happy with a year after we spoke to them – not something they’d want now.”
– Someone on the NeXT Team
It all comes down to making a decision to apply your knowledge and understanding of technology to address the immediate problems for the customer and to push beyond so you can give the customer a system they can grow with. The ultimate measure of success is when a user says “Hey, now I need to do Y with the widget.” and you can reply with something like “Okay, this is how you do that with the system we built.” If you find yourself replying with something more like “Hmmm, we could add that to the software but it will cost you.” then you are doing it wrong!
Setting up Unit Testing in Xcode 3.1
July 28, 2008 | 2 Comments
Xcode includes OCUnit, so you don’t need to get a copy. But, you might want to take a look at their website (http://sente.epfl.ch/software/ocunit/) for information and tutorials on how OCUnit is intended to be used.
If you are planning on doing Test Driven Development (TDD) you may also want to get the following packages:
- OCMock – OCMock is an Objective-C implementation of mock objects. (http://www.mulle-kybernetik.com/software/OCMock/)
- Hamcrest – library of matchers for building test expressions (http://code.google.com/p/hamcrest/)
Other good articles on Xcode Unit Testing that I came across:
- Unit Testing with OCUnit – http://www.macdevcenter.com/pub/a/mac/2004/04/23/ocunit.html?page=1
- Test Driving Your Code with OCUnit – http://developer.apple.com/tools/unittest.html
- Xcode unit testing articles – http://chanson.livejournal.com/tag/unit+testing
- Unit Testing with Xcode – http://www.stiefels.net/2007/05/01/unit-testing-with-xcode/
By reading through the documents references above I was able to get OCUnit up and running for one of my projects. It took a bit of experimentation, but in the end it looks like OCUnit will work just fine for doing TDD in Xcode with Objective-C. Anyone wanting to try out TDD should give it a try. The benefits for your project are significant. Go for it!
What a bump!
July 17, 2008 | Comments Off
Tonight I was looking at the stats for this blog, mostly because I was curious if any of my recent post have been picked up by google searches or not. Well, the answer to that question is mostly no, but I’ll keep on writing about things I find important.
What really caught my eye was this graph:

Notice anything special about July 11th? Yup, that’s the day the iPhone 3G was released. I happened to be one of the brave soles that tried to upgrade my iPhone 2.5G, and I wrote about the problems that ensued. It looks like you just have to talk about the iPhone if you want to drive traffic to your blog!
You can’t keep a good class library down … MFC gets reprieve from death sentence!
July 15, 2008 | Comments Off
A few years ago I was working at a company where we built applications using Visual Studio 6 and MFC. The applications had been around for about 10-12 years, and were all showing their age. Customers were beginning to request updated user interface features like they were seeing in modern Microsoft products such as Office and Internet Explorer. Sadly, we could not deliver these user interface enhancements easily because MFC was not getting any attention from Microsoft.
In late 2002 Microsoft was pushing the .NET Framework, C# and WinForms as the heir apparent for Win32, C++ and MFC. Converting a decade of legacy C++ MFC code to .NET and WinForms just wasn’t an option. We all felt like Microsoft had just abandoned us for greener pastures.
Our solution at the time was to start a long difficult process of moving away from MFC toward a cross-platform class library built by Trolltech, called Qt. In many respects this turned out to be a good decision since it meant we could begin to seriously consider offering our applications on Windows, Linux and the Mac instead of just on Windows. Still, it felt like Microsoft had hung us out to dry.
The WinForms classes just were not rich enough to build complex desktop applications at the time. Many of the conveniences we had come to rely upon from the MFC class libraries were missing and it would have been up to us to roll our own alternatives had we gone down the WinForms route. I think Microsoft was too focused on building web applications to devote sufficient resources to WinForms.
Here we are six years later and Microsoft has announced that they are providing a MFC Feature Pack for Visual C++ 2008 that will add significantly to the capabilities of the MFC class libraries. I can hear MFC development teams all across the Internet celebrating this change in stance from Microsoft.
Here are a couple links to information from Microsoft on the topic:
Couple MFC with a good third-party widget library like the toolkit offered by CodeJock Software and you have everything necessary to build some awesome new desktop applications.
Long Live MFC!






