Archive for January, 2005

Fish Face

Thursday, January 20th, 2005

Isn’t it funny how the real world mimicks the games we play? First it was the Tokyo sewer that came straight out of Half-Life 2, now it’s real fish that looks just like Seaman!

Check out the Fish Face!

Assembly optimizations

Thursday, January 20th, 2005

I’ve mentioned articles before theorizing that CPUs are hitting a ceiling in terms of processor power, so we should concetrate more on optimizing our programs.

But after reading this next article, I’ve come to the conclusion that processors are too complex for hand-optimization anymore. Raymond Chen, Optimization is often counter-intuitive

I don’t think it will be possible to keep up with the technology being built into the latest CPUs. It’s just so complex. Just let the compiler handle it.

It’s sad to think that the whole art form of assembly language will practically disappear. It makes books like Michael Abrash’s Black Book more of a history book rather than something you could actually use.

Place the State

Friday, January 7th, 2005

Starts off hard, but it gets easier the further you get along. Share your score!

Place The State

I got 43 perfect, 86%, Average Error 39 miles, time 329 seconds.

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.