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 http://fixya.com 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 fixya.com 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?
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.
Thursday, April 24, 2008
I was scanning my home page today and I noticed this:
The above link is a blog post pointing out the impact of this:
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!!
Wednesday, April 23, 2008
Let's go through the major features that the committee thinks I'll need as our technology gets bigger...
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?
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.
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.
Wednesday, April 9, 2008
Upon arriving to work this morning, sitting in my Inbox was the following email from a one Dennis R. Mortensen, COO at IndexTools:
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.
Dennis R. Mortensen, COO at IndexTools
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 http://www.pathname.com/fhs/pub/fhs-2.3.html). 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.
Monday, April 7, 2008
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.
(Page 1 of 2, totaling 13 entries) » next page