Gnoso

Making ideas come true.

---------------------------------------------

Microsoft Opens the .NET Kimono

October 3rd, 2007

Scott Guthrie, a General Manager in the Developer Tools Division at Microsoft announced today that the .NET framework source code will now be published openly. It’s a great move by Microsoft. I have to say in general that I think the .NET development platform is one of the best technical products Microsoft has released in the past 10 years. SQL Server is the only product that may be close competition.

Opening the framework source code is a huge win for developers and is a no-brainer for Microsoft in my opinion. Developers already use tools like Reflector to decompile the IL code for the .NET framework and figure out what it’s doing. So, the contents of the code are not all that secret anyway. The boost for developers though is that they can debug problems in their own code better when they understand the expectations of the framework. The .NET framework libraries are well documented in general, but even so, I’ve found myself decompiling parts of the framework to solve tricky debugging problems.

It’s also not without precedent. In the past, Microsoft included the source code for MFC and ATL. I’m not sure that programmers would have accepted those frameworks as well as they did if Microsoft had not been open with the code.

Way to go Microsoft and Scott! This is a win for .NET developers all over.

What the Heck is NCover?

September 28th, 2007

I get asked quite often by my friends what I’m doing at Gnoso. I think I’ve gotten better at explaining it, but given the technical nature of the product, it’s hard to explain to people who aren’t software developers. For those of you that are interested, I’ve put a post on the NCover blog that is a basic introduction to code coverage. Maybe it will answer some of your questions.

The What? Why? When? and How? of Code Coverage

NCover goes Gold

September 19th, 2007

Today’s the day we bring NCover 2.0 into the world. Go check it out at the NCover web site. If you are developing on the .NET platform and are using an agile development process, you’ll find it very useful. In short, NCover provides a quantitative measurement of the quality of your tests.

Thanks to the Gnoso development team (Alan, Stephen, Brad & Logan), Grant Drake and Orange Coat for a fabulous launch effort. You can look forward to more great things from the NCover team as we go forward.

Digging A Pit of Success

September 8th, 2007

Peak of Success

I first heard of the Pit of Success metaphor a few years ago when Rico Mariani was credited with the idea. The concept struck a chord in my mind and I’ve often used it as a device to help myself make decisions about product design.

The basic principle is this… Most products are designed to help an end-user accomplish a goal. It could be anything from shaving a beard or writing a document to operating a ship. A product may offer alternative methods for accomplishing the goal, but the designer must strive to make success the most likely outcome.

  1. Peak of Success - This type of product requires the user to navigate a complex field of decisions as they strive to reach the pinnacle of success while using the product. Each step requires additional effort and any misstep means a fall to the bottom, where they must navigate their way back towards the summit. Once the user is successful, they may feel a sense of euphoria having gained mastery of a difficult product — that’s the definition of a geek — or, more likely, they feel frustrated because the product is so difficult to master. The user is drained of energy from the exertion and expertise required to reach the peak.
  2. Pit of Success - This type of product may have many winding routes to success, but they all naturally point towards the most successful outcome. Any mistake results in a quick trip to a default successful conclusion (which may not be exactly the route the user wanted to take, but it’s where they wanted to end up). Upon successfully using the product, the user is surprised at how quickly and efficiently they achieved their goals. They find that the product is one of the most enjoyable ones they use.

These descriptions are admittedly a bit exaggerated, but they get the point across. When deciding what features you should add to a product or what decisions you are requiring the user to make, think about the metaphor above. Is the user likely to stumble into success naturally? Or will they have to be a product expert to get there? Make the job easy and your customers will thank you.

BMW Delivery - Smiles Included

August 27th, 2007

BMW Welt
I had the opportunity last year to take delivery of a new BMW in Munich, near the plant (in Dingolfing) where it was manufactured. While in Germany I toured the Dingolfing plant and the Munich plant which is adjacent to the BMW headquarters. Right next to the headquarters a monstrous construction project was underway. Now, a year and half later, BMW is ready to unveil the $250 million BMW World, a museum and delivery center. Next year, you’ll get to pick up your automobile at the new delivery center. Even while it was under construction, it looked like a modern art masterpiece. Needless to say, the German car companies are in better shape than our Detroit denizens. As an interesting side note, the new BMW World is right across the autobahn from the Munich olympic village. It’s a short walk and a interesting spectacle.

European Skyline

If you are ever in the market for a new BMW, you should consider the European Delivery option. It will save you money (possibly enough to pay for the trip depending on the cost of the car and your frugality). You arrange everything through the local dealer, and you even pick up the car at the local dealer after it’s shipped stateside. You’ll get to drive on the German autobahn (and all over Europe) and it’s just a great overall experience. I’ll do it again if the opportunity presents itself.

Being a Lucky Opportunist

August 14th, 2007

The Roman philosopher, Seneca, is credited with the quote, “Luck is what happens when preparation meets opportunity.”

I’ve always liked that saying. I think it rings true in a lot of cases.  Marc Andreessen has an interesting commentary on the concept of luck on his blog.  I second that.

Technology As A Lever: Make Mistakes Faster

August 9th, 2007

If you’ve been watching the financial markets for the past two weeks, you’ve seen the massive swings in the stock market. Just this week, the Dow has been down 250+ points and up 250+ points on consecutive days. Today the spread between the high and the low of the day was 480 points. I’ve been following the markets closely for years, but it’s been quite a while since we’ve seen that kind of volatility. The economy is doing reasonably well, oil prices are dropping, corporate earnings are high and interest rates are historically low. Of course, the sub-prime mortgage market is self-destructing. The threat of liquidity drying up in the credit markets has seemed to trigger the volatility of late, but most Wall Street analysts are downplaying the scope of the problem. Certainly, the sub-prime mortgage lenders are paying the price for their reckless lending over the past few years. We’ll have to wait and see if it spreads into the consumer markets. However, I am not an economist and that is not the point of this post.

One theory that has been floated recently is that “quant” funds are fueling the volatility. In the past 5 years, a huge amount of money has flowed into quantitative trading funds where sophisticated computer programs monitor the equity markets and trade automatically without direct human intervention. I’ve heard estimates of 25-30% of the market being traded by these kinds of funds. Sometimes it is referred to as “program trading.” In the past 5 years these funds have grown rapidly because they’ve seen good success. In fact, one of the leaders in executing automatic trades for “quant” funds is Automated Trading Desk, here in South Carolina. Computer algorithms are lightning fast, trading within milliseconds, and trade without emotion (Wall Street’s twins, fear and greed). This is all fine as long as the models hold. When the market hits periods of huge volatility however, the market may trade irrationally and break the rules.

Rumors are flying that Goldman Sach’s (a firm not known for losing money) lost between 8 and 16% of the value of their premier quant fund in the month of July, and other firms are losing their shirts as well. The problem is that they cannot unwind these positions overnight and depending on how huge the funds are, they may not be able to get out without seriously thrashing the market. Further, as the value of their positions fall, they get margin calls from their lenders forcing them to sell positions to liquidate capital. Many Wall-Streeters are saying that these program trades are to blame for the wild swings we’ve seen this week as they try to rebalance their portfolios.

My real point is this. Every once in a while we get a rude reminder that computer algorithms are still not very good at coping with the unknown. Automated algorithms may best humans by a long shot in the majority of cases, but once they wander outside their limited view of the world, watch out. The same computer that will help you make split second winning trades all year long could also leverage you into a losing trade that wipes you out before you even know what happened.

Technology is a lever that raises the stakes. We’d better learn fast.

700 MHz Wireless: Who Serves the Public Interest?

July 31st, 2007

Today, the FCC published a news release announcing that they’ve revised the rules for the upcoming 700MHz wireless spectrum auction. Apparently, they’ve adopted the first two of Google’s four proposed openness rules for the auction.

Licensees will be required to allow customers, device manufacturers, third-party application developers, and others to use any device or application of their choice on their networks in this band, subject to certain conditions.

…also…

The licensees of the Upper 700 MHz Band C Block of spectrum will be required to provide a platform that is more open to devices and applications. This would allow consumers to use the handset of their choice and download and use the applications of their choice in this spectrum block, subject to certain reasonable network management conditions that allow the licensee to protect the network from harm.

The actual rules and regulations regarding this spectrum are yet to be published and we don’t yet know what the “subject to” conditions will be, but at least we’ve moved a step in the right direction. Both the open camp (Google, Frontline Wireless) and the closed camp (AT&T, Verizon) are cautiously praising the FCC’s action, so the FCC basically managed to split the middle.

Part of the issue here is that none of these companies serve the public interest. These companies serve their shareholders (as they should) and the wireless providers benefit most by having a closed network. Consequently, they can lock out competitors over the long run and offer service at high prices long after their costs have plummeted.

Google is famous for its “do no evil” motto, but even Google doesn’t spend $4.6 billion without a shareholder benefit. Google stands to gain by putting open Internet access in more mobile users’ hands. The mobile Internet experience today is horrible. It’s slow and spotty and the mobile browser software we have is pretty much awful. The iPhone is the first mobile browser that is spectacular (yes, I’ve joined the iCult), but it’s really only at its best on a WiFi connection. You might contend that software is not the wireless companies’ fault, but I disagree. On our PCs web browsers are updated constantly. You can choose from 3-6 popular browsers and use the one that matches your needs. When is the last time your mobile provider gave you a choice of web browser, or sent you an update? At best, the providers take 6-12 months to implement a software update when the handset vendors release it, and even then you have to buy a new phone most of the time to get it. The iron grip that wireless providers hold over their networks and devices is partly to blame for the software stagnation. The other problem for Internet companies like Google is that since the handsets are completely controlled by the wireless companies, the network provider can easily hinder people from using Google’s services. We’ve already seen cases like this already in the news and I’m sure there will be more in the future. Network neutrality is nowhere to be seen on the phone network.

The consumer benefits more from an open network than a closed one. I think Google’s goal in changing the rules before the auction was to balance the value of the wireless spectrum so the bidding would be on a level playing field. An open wireless network is not as valuable to the service provider as a closed wireless network, thus the telcos can afford to spend a lot more on the spectrum than Google can. Google now has to decide how much money it is willing to spend to fend off the telephone companies.

From my seat, I certainly hope that the open side wins.

Beautiful Code

July 28th, 2007

Beautiful Code Cover

I just finished the book Beautiful Code. This book is a must-read for any serious software engineer. Beautiful Code was edited by Andy Oram and Greg Wilson and published by O’Reilly. It’s basically a compilation of essays written by various programmers each telling a story about a project that demonstrates beauty in its design or implementation.

As in any other context, the attributes that make software beautiful vary widely from topic to topic, but that is part of the appeal of the book. The 37 authors include Brian Kernighan, Tim Bray, Yukihiro Matsumoto and Charles Petzold. Topics range from regular expressions and gene sorting to computational geometry and software transactional memory. Aside from the common theme, there is no attempt to make the chapters homogeneous. Each is an essay, told by a different author as they relate their experiences.

Here are some excerpts…

“Professor Stephen Hawking can only press one button, ” was the one-line spec we were given. - When a Button Is All That Connects You to the World - Arun Mehta

Martians have zero tolerance for ugly software. For CIP, the notion of beauty is not so much about elegant algorithms or programs that you can stand back and admire. Rather, beauty is embodied in a complex software structure built by master builders who knew just where to pound in the nails. Large programs can be beautiful in ways that small programs are not… - A Highly Reliable Enterprise Systems for NASA’s Mars Rover Mission - Ronald Mak

Among the pearls of wisdom and wackiness chronicled in Steven Levy’s classic history Hackers: Heroes of the Computer Revolution (Doubleday), my favorite is this one by Bill Gosper, who once said, “Data is just a dumb kind of programming.” The corollary, of course, is that code is just a smart kind of data-data designed to trigger processors into performing certain useful or amusing acts. - On-the-Fly Code Generation for Image Processing - Charles Petzold

I once heard a master programmer praised with the phrase, “He adds function by deleting code.” Antoine de Saint-Exupery, the French writer and aviator, expressed this sentiment more generally when he said, “A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away.” In software, the most beautiful code, the most beautiful functions, and the most beautiful programs are sometimes not there at all. - The Most Beautiful Code I Never Wrote - Jon Bentley

Tell Me the Good Stuff, Please!

July 13th, 2007

I get my news almost exclusively from the web. Weblogs are my primary source of news and I have several hundred in my subscription list that I peruse daily. My list includes both corporate and personal weblogs. I subscribe to some traditional news sources to make sure I stay up to date with current events, and I watch the personal blogs of people that I find smart or interesting. For example, Forbes magazine and the Wall Street Journal are some of the ones I pay attention to. I find that it’s much easier to stay up to date on a wide range of topics in a much shorter amount of time this way. Of course, if I’ve already heard a certain piece of news, I just skip over it and lose little time in the process. The only real exception is when I’m in the car. Generally I listen to CNBC on Sirius radio while I’m driving and that keeps me up to date on the corporate/financial world.

I recently subscribed to a local newpaper’s RSS feed in my blogreader. Since I rarely read the actual newspaper (never acquired the habit), I thought this would be a great way to stay up to date on those news items that show up in the newspaper but don’t make it to the blogs. You know, the local news stories or special interest articles…

Well, after a couple of weeks, I can’t help but notice that over half of the news items in the newspaper’s feed are terribly negative. There are an overwhelming number of news items about car wrecks, fires, criminal activity, deaths and scandals. Maybe I’m in the minority, but I really don’t care to read that kind of news. In fact, I typically don’t read those articles anyway. I just scan by the headlines. The problem is that the newspaper generates a large number of articles every day, so I end up filtering through a lot of these headlines when I sit down to catch up on what’s happening. After reading a series of these headlines, I often feel a sense of gloom lingering over me.

I wonder if anyone else has this same reaction… As a society, are we really that interested in the morbid events that occur around us? I realize that these things happen, of course, but I don’t want it brought to my attention constantly. I have a couple of ideas about the source of this phenomenon.

  1. I wonder if it is easier to report the negative events because they are easy to find (scan the police blotter; monitor the emergency services; troll through court records). Negative stories invoke the morbid curiosity (that “rubber-necking” tendency) in all of us. Who knows? Positive stories may not sell as well. This is an argument traditionally leveled against the media, and I don’t know if it is completely fair or not.
  2. Or, is it the format itself? In a newspaper, what we pay attention to is influenced by the position of the article (plastered on the front page or buried on page 6). The space devoted to the article, font sizes and layout all affect the attention that we are induced to give. In an RSS feed every article is given the same billing, whether it is important or not.

I tend to think in this instance that the format is to blame. Every story is given the same level of priority, even though some deserve it more than others. I’m not sure how to fix this problem, but maybe the newspaper could provide a “tragedy-filtered” feed that is toned down a bit?

Any other ideas? Food for thought…