Codeguru Update eNewsletter – November 4th, 2008 Network
Tuesday November 4, 2008

This Week’s Topics

Comments from the Editor

Today is a great day to be an American. We
get to vote for our next president. Not only that, regardless of the
outcome (assuming one of the two major parties’ candidates will win), the
vote will be historic.

Also historic for this week is an upgrade to the discussion forum on
Codeguru. If all goes as planned, the discussion forum software will be
upgraded on Wednesday evening. There won’t be any major changes that
you’ll notice; however, the software will have better security and will
allow us to use a few AJAX features.

In this newsletter, I post hot threads that
are happening in the discussion forum on Codeguru. One hot
thread this
week is on multi-core processors. This is an area I’ve
been focused on for a couple of years now due to the impact these
processors will make. It is interesting to see some of the
misunderstandings around multi-core systems.

In the hot thread on the site, such a misunderstanding started the
conversation. That misunderstanding centered on the issue of a computer
only using half its power to run a program. It wasn’t using the full
power. This was a direct result of a program running on just a single core
of a dual-core program. The result is that the one core was fully
utilized, but the other was not. This resulted in 100% use of the core,
but only 50% usage of the entire processor. As noted in the thread, if
this were a quad-core system, only 25% of the processor’s power would have
been used.

As a developer, you have to be aware of the impact of multi-cores on
your programs. There is a paradigm shift you need to be aware of when
architecting your programs. Microsoft, Intel, and others have tools to
make coding your applications to multi-core systems easier, but it is
still up to you to determine what parts of an application can be
architected to run concurrently or in parallel. A processor’s logic or API
will not be able to figure that out on its own.

In many cases, threading has been used in the past to break an
application into pieces so it could run concurrently or in parallel. It is
interesting to note that with the tools that are coming, you should not be
thinking in terms of threads, but rather in terms of
tasks. You will want to architect your programs with tasks in
mind. A task would be a piece of logic that can run at the same time as
others. Thus, you can identify a task that can be parallelized or run
concurrently. Then, you also can identify contingencies that these tasks
might have.

Bottom line, multi-core processors are changing the way we architect
many of our applications. Today, you need to consciously think about what
the impacts are and plan them into your applications. The tools are
already getting better at making this easier, but there is still a ways to
go before thinking about multi-core falls to the wayside in the same way
that thinking about memory did in the early 90s.

We are at a point where a historic change in how programs are
architected is about to happen. Parallelism and concurrency are part of
the new frontier. That future looks bright for gaining power in our
applications. Let’s hope the historic changes happening in America with
the election today also lead to a bright future!

Until next week…

Bradley L. Jones

Recently Published Books

For those of you keeping up by reading
books. The following are just a few of the new books that have been
recently released. If you’ve read any of these, feel free to write a
review to be posted on CodeGuru. See the submission

Visual Studio Tips

By Sara Ford for Microsoft Press
240 pages for $29.99
Ways to Improve Your Productivity

Effective C#

Bill Wagner for Addison-Wesley
300 pages for $44.99

Silverlight 2

Jeff Scanlon for Apress
350 pages for $39.99

New & Updated Articles on CodeGuru

Following are short descriptions of new
articles on CodeGuru. If you are interested in submitting your own article
for inclusion on the site, then you will find guidelines here.

Features in Visual Studio 2010 and the .NET Framework

Learn about several features relevant to developers in Visual
Studio 2010 and the .NET Framework 4.0, such as parallel programming, XSLT
debugging, new ASP.NET features, and new VB.NET and C# features that
include the Chart control, XSD Designer, Lambda Expressions, and optional

Tip: It’s 2:00 a.m. Do You Know What Your Processes Are

By Jay
Monitor the health of the processes running on your system.

Programming in Visual C++ 2010 CTP

By Marc Gregoire
The CTP build of Visual
C++ 2010 includes a new library to help you write native parallel code.

from Microsoft PDC 2008

By Bradley Jones
A few tidbits from PDC 2008. Azure,
Silverlight, WPF, Windows 7, and much more!

Up Your Reflection Processes

By Paul Kimmel
Use Reflection.Emit to
speed up Reflection intensive processes by writing one general algorithm
that emits a specific solution.

Discussion Groups

out the CodeGuru discussion forums

Forums include Visual C++, General C++,
Visual Basic, Java, General Technology, C#, ASP.NET, XML, Help Wanted, and
much, much, more!


problem using JavaScript (scripting)

How to make sure that 1 item is always selected? (VC++)

Vista’s CPU limitation of 50%?

New Articles on

Programming with Java: Getting Started

By Richard G. Baldwin
Getting started
with a new technology can be daunting. Learn how you can benefit from a
Java multimedia library and a lightweight Java IDE named DrJava, which has
the ability to interactively evaluate Java code.

String Literal Overhead with Eclipse

By Scott Nelson
Every J2EE web
application can get an immediate performance boost by eliminating common
and unnecessary overhead that uses an uncommon Eclipse setting and a
little discipline.

Improving Your Kanban Change Request Process

By Eric Landes
Many times. a new process
is introduced and after the initial introduction, those productivity gains
slide back. But the Kanban process (really, any lean process) is designed
to allow teams to introduce improvements continuously to their process,
thus continually improving productivity.

More by Author

Must Read