Tech Support in a Web 2.0 World

Wednesday, April 30, 2008

This morning, I came across Brian White's blog post praising Best Buy for their efforts to connect their customers with a Geek Squad branded site. It is a model built upon the backs of thousands of technical support evangelists operating under web 2.0 do-goodisms and according to since 2006, their site has grown to over 700,000 pages.

While I find it quite interesting, I just don't get it. What motivates these do-gooder techs to spend their evenings and weekends helping strangers?

Continue reading...

Twitter Facebook Digg Tech Support in a Web 2.0 World Bookmark Tech Support in a Web 2.0 World  at

C++0x: The Lambda Expression Debate

Sunday, April 27, 2008

The next C++ standard (C++0x) will have lambda expressions as part of the standard. N2550 introduces them. It's a short document, and it's not too painful to read. Go ahead and click it.

Like many new C++ standards, it's not clear yet how the new feature is going to be used. Michael Feathers has already decided not to use them. At least one other person seems to mostly agree. I, on the other hand, am with Herb Sutter who seems excited enough about the feature to imply that MSVC10 will have support for it. This is going to be a great feature. Incidentally, Sutter has mentioned an addition to C++/CLI in the past that would add less sophisticated lambda support for concurrency. I suspect he's serious about adding the support soon.

There have been many times when I've desperately wanted to avoid defining a one-off functor or function in my code. In fact, there have been times when I've been desperate enough to actually use Boost.Lambda! This standard is a clear win over Boost's attempts to deal with the limitations of C++03.

Continue reading...

Twitter Facebook Digg C++0x: The Lambda Expression Debate Bookmark C++0x: The Lambda Expression Debate  at

Linux the Flavor of Choice in Brazil?

Thursday, April 24, 2008

I was scanning my home page today and I noticed this:

aseigo: Deploying KDE to 52 million young

The above link is a blog post pointing out the impact of this:

Open Source Diary: ProInfo and Linux Educacional - KDE in Public Schools in Brazil

Basically, KDE Linux will be distributed for free to "53,000 labs serving some 52,000,000 students" in the public educational system of Brazil. These posts contain links to the actual project including the proposed software offerings and screenshots of the very clean desktop interface.

I was immediately struck by how ground-breaking this is, then I started thinking about Microsoft. For a company that earns about a gillian in revenue each year, they really haven't stepped up to the plate when it comes to education. I mean they may offer student discounts or some similar middle ground capitulation, but certainly no free hand-outs!

Who stepped up to the plate?? The open source community.

What does this mean for the open source community? More importantly, what does this mean for Microsoft? With the open source movement gaining steam at an exponential pace, how much heat (if any) is Microsoft feeling from it. One thing is for sure, you won't see Microsoft bundled on any lab systems in Brazilian schools any time soon!!

Comments (2)
Twitter Facebook Digg Linux the Flavor of Choice in Brazil? Bookmark Linux the Flavor of Choice in Brazil?  at

The Next JavaScript...

Wednesday, April 23, 2008

ECMAScript 4.0 (ES4) is on its way. This will be the next standard for JavaScript. It's not going to be usable on web pages for a while, though. In fact, I suspect I won't be using it on my web page for at least 5 years. The problem is simple: as long as people still use older browsers, you won't be able to assume that people have it.

However, the features in it are an interesting look at what the standards committee thinks is wrong with the current JavaScript. This is not a minor patch release. This is a dramatically overhaul of the current JavaScript (ES3). Oh, they've included a lot of minor things that are simply broken in ES3. These changes are certainly interesting, but today I'm going to talk about their major focus. They want to make it easier to develop large applications in JavaScript. Clearly, they understand that people are starting to develop large applications for web browsers, and they feel that there are problems with the currently available technologies for this.

I don't have any experience with developing what I'd call a large JavaScript application, but we are starting to develop an extension of PC-Doctor for Windows that uses JavaScript in numerous places to control its behavior. In my dreams, I imagine that it will eventually become a large application made up of plugins that run on JavaScript.

Let's go through the major features that the committee thinks I'll need as our technology gets bigger...

Continue reading...

Twitter Facebook Digg The Next JavaScript... Bookmark The Next JavaScript...  at

The Cost of Complexity

Tuesday, April 15, 2008

This article is going to have more questions in it than answers. It's about a problem in software development that I'm not sure I've worried about enough. I've certainly thought about it for specific cases, but this is the first time I've tried to think about the problem in general.

My main question revolves around the cost of complexity in software. There is certainly a large cost in making software more complex. Maintenance becomes more difficult. Teaching new employees about the project becomes harder. In the end, you will get fewer engineers who understand a complex project than a simple one.

Unfortunately, almost any non-refactoring work will add to the complexity of a project. However, some changes can have a large effect on the complexity in a short period of time. Adding a new library or technique to the code base, for example, will make it so that the new technology will have to be understood by people working on the project.

What I really want to know is how much can this cost of complexity be mitigated? Besides switching libraries to add, what can be done to decrease the cost? My question is based on the assumption that some complexity is essential. So, given that you're going to add a new library to the code base, for example, what can be done to reduce the cost?

Continue reading...

Twitter Facebook Digg The Cost of Complexity Bookmark The Cost of Complexity  at

Teenagers and Technology

Tuesday, April 15, 2008

Technology presents new challenges in raising well rounded kids. I think technology has always been challenging for parents even back to my grandparents days. Kids will always want to do the new and exciting things rather than what they are supposed to be doing and what is good for them. Homework and chores are always challenged by technology.

Horses and books got my grandpa in trouble. My Dad's generation was the first to have cars. When I was growing up, my parents had to deal with TV and early video games. Now my wife and I are dealing with computers, the internet, and cell phones.

Continue reading...

Twitter Facebook Digg Teenagers and Technology Bookmark Teenagers and Technology  at

Package Manager for Mac

Monday, April 14, 2008

Why doesn't Mac OS have a standard package manager?

This was final thought Sunday night as I flipped my MacBook shut and stumbled off to bed. I finally got around to configuring my MacBook as my primary development machine this weekend. It's been 3-4 months since I got my MacBook and I've since converted the two other PC's in my house into Linux machine (Debian and Ubuntu). With that conversion mostly complete it was time to get cracking on making my MacBook into the web development powerhouse for which it was intended. OK, before anyone says anything - it took me 3 months because I had a Lego Star Wars addiction - Don't judge me!

So after installing Xcode, MacPorts and then Ruby, rubygems and postgresql - I then reconfigured my Eclipse to use the port installed version of Ruby and gems. Which is when I realized that the pre-installed Ruby and gems was not in any way connected to the Mac port installed version. Well, that's inefficient - I thought.

Why doesn't macports just link into what is already installed and go from there? In fact why isn't macports pre-installed so developers can hit the ground running?

I still think Mac OS is a great platform for development - particularly web apps - but if it came with an integrated package manager it would be awesome.

Twitter Facebook Digg Package Manager for Mac Bookmark Package Manager for Mac  at

Upon arriving to work this morning, sitting in my Inbox was the following email from a one Dennis R. Mortensen, COO at IndexTools:

Hi there,

I hope this email finds you well.

It gives me great pleasure to inform you that IndexTools has positively agreed to be acquired by Yahoo! today. We firmly believe that our technology platform combined with Yahoo!’s extensive offering of on-line marketing services will provide our partners and clients with an unsurpassed marketing tool set.

So how does this affect you?

We would ask you to give us the opportunity to present this in more detail on Tuesday 15th April 2008. In the meantime, it is very much business as usual! Please be assured that, for the time being, our services will continue as normal and there will be no disruptions to your account.

We appreciate that you’ll have many questions and we look forward to providing you with answers to these early next week.

Until then, have a good week and look forward to speaking to you soon.

Kind regards

Dennis R. Mortensen, COO at IndexTools

Continue reading...

Twitter Facebook Digg Yahoo + Indextools = Microsoft Acquisition? Bookmark Yahoo + Indextools = Microsoft Acquisition?  at

Running Rails on Debian Etch

Monday, April 7, 2008

As the company Rails evangelist one of my challenges has been working out a consistent and understandable deployment strategy. One of the biggest challenges is that I may not have access to the root user acct. Additionally we are generally required to stay within the Etch distro, going with Lenny (testing) requires special approval. A final challenge is that compilers are not allowed on the production server.

The "Ruby gem problem" is the result of not having access to the root user acct. On development servers Ruby gems are easily managed using the root acct with the "gem" command. But without root on the production server, how do get our gems installed? Well, you might think we can just request the owner of the root acct to install gems, but not so fast - the gem command does not place files in accordance with the Linux FHS (see And furthermore, the manager of the server has no interest in keeping track of Ruby gems and managing them seperately. If it's not related to "apt", you've got some explaining to do.

Continue reading...

Twitter Facebook Digg Running Rails on Debian Etch Bookmark Running Rails on Debian Etch  at

The visitor pattern from the GoF is frequently overlooked by programmers who are used to object oriented programming. However, in some cases, it is significantly cleaner and easier to use than an overridden function. Unfortunately, it's easier to misuse as well, and, when it is used poorly, it can be a real mess.

I was going to tell you about my static analysis project and how I'm using the visitor pattern there. Then I took a glance at the wikipedia article on the visitor pattern. It's clearly written by a OOP fanatic who's never seen the alternatives, so I'm going to contrast my implementation of visitor with the one there.

The contrast is useful because wikipedia's implementation is written using object oriented principles. Part of my goal with this post is to explain about OO alternatives. My implementation is written using compile time polymorphism rather than runtime polymorphism. As we'll see, this is significantly prettier and more flexible than runtime polymorphism.

Continue reading...

Twitter Facebook Digg The Visitor Pattern as an Alternative to OOP Bookmark The Visitor Pattern as an Alternative to OOP  at

(Page 1 of 2, totaling 13 entries) » next page