Bug Vanquisher

18 October 2007

It also goes by ‘Wait’

Filed under: Computer Theory, Things in life — Tanveer Badar @ 4:34 PM


They all spell the same. They all mean the same. They mean try as you may, it will not let you for a whole host of reasons.

Get introduced to the second name of the wonderful machine, the marvelous invention ‘computer’.

For the last hour, I have been building the latest release of boost. Yet my computer won’t let me do anything else.


I wonder has our waiting for anything to be done has increased or not? Even with the ever faster computers and more and more computing power available at our finger tips, with the advent of multi-core processors, nearly every body can be seen waiting for something to finish, some download to complete, some compiler to stop whining about the dredged code or have his heart’s desire to spit all those informative message about how it thinks a variable may be truncated during assignment.

We wait for our word processors to save the documents, watch those LEDs blink as the computer boots,  wonder what’s taking it so long to shutdown, curse while those GBs of RAM get written to disk if hibernating or read back during resume operations. And don’t be astounded when visual studio takes forever to refactor code even when the changes are confined to a single function, go to any lengths to optimize (not improve) OLTP performance.

Even with broadband availability, our needs have expanded even more disproportionately.

Work expands to exhaust (and demand more) resources allocated to it.

Now, we seek even bigger downloads, Ajax based websites take forever to load on those dial-up connections. Ever tried facebook, with the plethora of pictures on every page, mounds of javascript at your service you better have had a broad band connection.

And a big factor in consumer oriented markets like desktop operating systems and application is to only improve the perceived speed of some operation yet never inspect code like this

Message message = …;//get from somewhere

// A paramter has only one value, missing break after substitute call
foreach( Parameter parameter in parameters )
    IList values = GetAllValues( );
    foreach( Value value in values )
        if( value.Id == parameter.ValueId )
            message.Substitute( parameter , value );

They will go overboard to recommend things like

· Consider adding un-managed splash screen to show before the WPF app start. This will present the user with some UI and improve perceived responsiveness. Check blog later for a sample that demonstrates how this can be done.

[Improving WPF applications startup time]

With the release of Visual Studio 2008, Microsoft build tools will finally have multiprocessor build support, with MSBuild having /maxcpucount:n and cl having /MP:n as the relevant options. Just as the added generics after MSDN filling pages about how dangerous templates are for everyone’s health during .net framework 1/1.1 timeframe. So, I may expect boost to build a little faster next time I try that labor intensive (ahem! actually, only waiting for the damn thing to finish) operation.

It has been ages since multi-core processors came out. Hyper threading is a fact of history we take for granted these days. Multiple processors in one form or another are a norm rather than exception, yet it is hard to find properly written programs which can take advantage of even the most basic form of concurrency available. Having two processors in the bare minimum you can have but programs in the wild (and by wild I mean currently in heavy usage, not just written by your average Joe) blissfully ignore and have only one thread.

Herb Sutter rightfully said about these issue we will face increasingly in the future, with our processor clocks going no where.

We are shifting more and more towards ease. Ease of development, ease of use, ease of deployment, ease of availability, any ease you can fit in. Gone are the days when a redirector had only 128 byte foot print in low memory. Gone is the time when Windows ran happily in 4 MB of RAM.

So, I’ll see you around when you will be waiting for my next post because I will be waiting for something else to finish.

1 Comment »

  1. […] One major feature I still miss is to properly support partial and complete specialization. Even during writetext implementation for udts I faced that challenge of how the user will be able to pass template parameter information to base classes and member variable declarations. Expect to see these issues fixed in a future update as someone does have to wait. […]

    Pingback by Major Changes in CPPCodeProvider « Bug Vanquisher — 4 November 2007 @ 6:52 PM

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at WordPress.com.

%d bloggers like this: