Archive for the ‘computers’ Category

Joel on economics

Tuesday, January 4th, 2005

I just came across the blog, Joel on Software (am I the last to find it?). Let me point you to a couple of his articles on economics.

Camels and Rubber Duckies 12-15-04
Strategy Letter V 6-12-02

I just loved these! Real world discussions about how products are sold, with a bit of computer humor and sarcasm that makes it a great read.

One quote that just rang so true for me, concerning whether or not to switch browsers:

“Despite the fact that Mozilla has all the features I want and I’d love to use it if only to avoid the whack-a-mole pop-up-ad game, I’m too used to hitting Alt+D to go to the address bar. So sue me.”

It’s always the little things that I use day-to-day that I enjoy. And if that changes, then I’m forced to re-adjust. And I don’t like to re-adjust. (Don’t get me started on all the things they changed in Visual Studio.NET… sigh)

I also really like his take on Open Source Software.

Headline: IBM Spends Millions to Develop Open Source Software.

Myth: They’re doing this because Lou Gerstner read the GNU Manifesto and decided he doesn’t actually like capitalism.

Reality: They’re doing this because IBM is becoming an IT consulting company. IT consulting is a complement of enterprise software. Thus IBM needs to commoditize enterprise software, and the best way to do this is by supporting open source. Lo and behold, their consulting division is winning big with this strategy

So true. Corporations aren’t supporting open source out the goodness of their hearts.

I’ll definitely be following this blog.

The MHZ ceiling

Monday, January 3rd, 2005

This is the article I’ve been waiting for. I wrote about this before, but I wasn’t happy with the article I referenced. It was too hardware focused and doesn’t get to the real problem for software developers. Finally, an article has appeared by Herb Sutter, a really bright MS developer that explains the problem we are going to face over the next couple of years.

The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software

Found through Larry Osterman’s blog, which sheds some more insight into the problem:
Moore’s Law Is Dead, Long Live Moore’s law

To me, Larry’s blog has too much of a ‘doom and gloom’ feel to it. Not a good way to start the new year. :)
I don’t know if the chip manufacturer’s have hit a brick wall on the speed barrier. It seems like every time I read something to this effect, a major new breakthrough is invented and it gives us another 5 years to invent something else.

Anyhow, even if Moore’s Law is dead, the problem still exists. Herb Sutter does an excellent job of describing the problem we will face in the next couple of years. Bottom line is, multi-threaded programs are hard to write. Once you think you’ve solved all the race conditions, something pops up and bites you. As he says, “The vast majority of programmers today don’t grok concurrency”.

I have been suspecting this problem for some time now. Just look at the unoffical specs for the new consoles coming out. They are all multi-core chips. Think of a machine with 6-8 virtual cpus. On the desktop, hyperthreaded multi-core CPUs will be common in a years time. How do you write good code that fully utilizes these processors?

Unfortunately, I don’t think Herb Sutter’s article goes far enough to provide solutions. It is simply an alarm to make people sit up and recognize the problem. (Not exactly his fault, it’s the first article I’ve found that identifies the problem)

I am going to be looking forward to more articles like this in the near future. What can we do to make multi-threaded apps easier to write? Will it be a new software paradigm? Will it be a new programming language (as Herb points out, “the ISO C++ standard doesn’t even mention threads, and does so intentionally”)? Depending on how fast we hit the MHZ ceiling, it maybe necessary to find a solution very soon.

C++.NET

Thursday, December 16th, 2004

These articles show why I think C++.NET will never become more than a wrapper language (turning C++ apps into .NET modules).
.NET was designed for C# and VB… there’s just too many freedoms in C++ that can be exploited, and these articles are evidence of that.
The Type of a String Literal Revisited…
The String Literal Returns
This is not necessarily a bad thing. Personally I think it’s quite cool that you can take a C++ app and write a C++.NET wrapper for it and have it work in any .NET language. But I wouldn’t want to develop full-time in C++.NET. Too many crazy odd issues.

Conducting a beta test

Wednesday, December 15th, 2004

If you ever find yourself needing to conduct a beta test… first of all, congratulations. That means you have a product almost ready for market. That’s an achievement all by itself. This article is a post-mortem on a beta test that was conducted for a product. Interesting lessons that can be learned.
How To Run A Beta Test… Or Not?

The once great ZDNet

Tuesday, December 14th, 2004

Take a look at this article:
Does the ‘Halo 2′ effect threaten broadband?

What a stupid article. No wonder I no longer subscribe to PC Magazine, and I no longer read zdnet.
How could they write something so stupid? There is absolutely no way that the Halo 2 users are using up the majority of the bandwidth in the world. Also, the article even states that essentially latency is latency. If you’re playing with someone on the other side of the world, you’re going to have latency no matter what. What can an ISP do about it?
Fear and doubt. That’s the only purpose of this article. Makes me mad to think that people will read that and think that the Internet will “fill up” with people playing Halo 2. Sigh…

No longer single CPU

Monday, December 13th, 2004

Thread Level Parallelism - Design Decisions on Ace’s Hardware

I hesitate to recommend this article. It has some good points, but quite a few bad points. I’ll share:

  • It’s too long
  • It’s too hardware centric (I’m a software guy. I care most about how to write software for the new CPUs)
  • I don’t agree with his view of the “low-end” (2 proc servers) market or the games or console market. He seems to indicate that Hyper-Threading is useless at the bottom end. Also, he seems to think that dual-core has no use in the home market. But then he makes an exception for the PS3 (contradicting himself, in my opinion).
  • I don’t agree with his view of marketing and licensing issues. Software vendors have already said that they won’t stand in the way of multi-core CPUs. They’ve indicated that they would be flexible.
  • I bring this article up because:

  • Just like 64-bit processors, systems with multiple CPUs (or multiple cores) are coming soon (or already here!)
  • We need to write code to support this. On a Hyper-Threaded dual-processor system, the OS sees 4 CPUs! When you run Doom3 on it for example, it’s only using 25% of the CPU. What a waste! When dual-core CPUs come out, it’ll be even more important to find a way to keep those CPUs busy.
  • The CPU terminology is getting confusing. We’ve got multi-processor, multi-core, and multiple threads per core. Add Hyper-Threading to the mix, and it gets hard to sort everything out.
  • Microsoft Interview Questions

    Friday, December 10th, 2004

    I love these. The questions Microsoft asks during an interview are famous for being not quite “normal”. Here’s a site that’s put together a list of some of the more famous ones. How many can you answer?
    Interview Questions

    What question was I asked on my interview? “How would you QA test a toaster?” My answer was no good. You probably could have guessed that though because I don’t work at Microsoft. :(

    C# - const vs static readonly

    Thursday, December 9th, 2004

    What is the difference between const and static readonly?
    I was recently wondering about this, and lo and behold, this article came up. Just what I wanted!

    Longhorn and non-admin users

    Wednesday, December 8th, 2004

    I have a long entry here about running your Windows machine as non-admin. In there I made a casual observation that it seems like people within Microsoft are finally committed to making running as non-admin possible within Windows. Since then, I found an article about Longhorn that actually says they are committed, and describes some of the things they are doing so that running as non-admin is actually possible.
    All Windows developers should read this:
    Security in Longhorn: Focus on Least Privilege

    Phantom console

    Tuesday, December 7th, 2004

    Investment bank sues Infinium

    This is sort of surprising. I saw them at E3 last year, and they had a huge booth and it almost seemed like they had a real product. But vaporware is vaporware… We’ll see if the Phantom sees the light of day.