Note: This column represents the opinions
of the writer and as such, is not purported as fact
At last,
the contents of Aardvark's "million-dollar ideas" notebook
are revealed for all to see!
|
|
A seemingly well coached Bill Gates has taken the stand in an attempt to
avert a US court from handing out stiff punishments for Microsoft's
breach of anti-trust laws.
Top of Bill's reasons why the company should not be forced to open up
its software is the claim that the individual components are so tightly
integrated that such changes are effectively impossible.
But hang on... didn't we hear a similar claim from Bill's boys a couple
of years ago -- only to have them shown up as nothing but hype?
This time however, I really think that Bill is telling the truth -- and
that explains why MS Windows and other Microsoft applications are such
a wonderful playground for hackers, virus writers and other malevolent
sods.
Need Cutting-Edge Copy?
As NZ's longest-running online commentator, I'm looking for
extra syndication opportunities for this daily publication -- or I'm happy
to write casual or regular material specifically to order for print or
Net-based publications. If you're
interested, drop me a line
|
|
Unless things have changed a whole lot since I was a programmer,
one of the key strategies when trying to write software that is correct, robust,
reliable and easy to maintain -- is modularity.
In fact the concept of "modular programming" has been a cornerstone of the software
industry for as long as I can remember.
An essential element of producing modular code (with all the desirable attributes listed
above) is to compartmentalise functionality such that its internal workings
are accessed through a well-defined and well documented interface.
Modular programming also promotes another desirable trait -- reusability.
This means that instead of duplicating the code for a commonly used operation,
it can be turned into a module and re-used whenever that function is required
throughout the program. Older (FORTRAN or BASIC) programmers will have
implemented such reusable components as "subroutines."
When Pascal and C arrived on the scene, these little snippets became procedures
or functions. And, with the arrival of object-oriented languages, some of them
morphed into objects that are defined by "classes."
These small modular, re-usable bits of code are then used to create larger,
more functional modules which, in turn, are used to create even larger,
even more functional modules - and so on -- until you have the top-most layer
which is the application itself.
(Note for experts: I realise that I've described the "bottom-up" method when top-down
is far more commonplace -- but the concepts of nested modularlity are the same).
The end result is that any program, or part of that program consists of a
well defined and organised group of modules that cooperate in a well-defined
manner. Changing or removing a single part of a program can then be done with
full understanding of the effects and minimal disruption to the rest of the
code.
Now that we've finished the brief history of programming I'll get back to the
point I'm trying to make.
Well designed software doesn't consist of a huge monolithic block of code such
as the one Mr Gates appears to be claiming has been used to build Windows.
Large lumps of code little in the way of modular structure are notoriously
hard to build, test and debug.
Now can you see where I'm headed?
This morning we have yet another report of an expert uncovering multiple
flaws in Microsoft's IE6 web-browser -- the very browser that Microsoft says
is too tightly integrated into Windows to remove.
Now I'm sure that Microsoft didn't set out to create a huge, unmanageable
block of code that ignored many of the basic rules of good programming -- but
even the best project can degrade into an unmanageable mess of
endless, poorly documented interdependencies if care isn't taken.
What's more, this degradation from nice modular system into a monolithic mess
often happens in response to the need to fix bugs and add functionality
to very tight deadlines. Such pressure often forces programmers to break
the rules and take shortcuts in order to keep the marketing and management
teams happy.
Unfortunately, once you start such a downhill slide it becomes a vicious
circle that can be impossible to break.
So, are Microsoft's seemingly endless list of security holes and bugs a direct
result of abandoning one of the oldest and most basic of programming disciplines
perhaps? Maybe they don't want to share their code because they'd die of
embarrassment?
Come on Bill -- If your code is up to spec then you should be able to rip out
any single module of your OS or applications and allow third-party replacements
by simply publishing the programming interface specifications.
XTRA Double-charging For Over-Cap DSL Traffic
I spoke to Matt Bostwick over at XTRA yesterday to try and get some answers
to the issues raised in recent Aardvark columns regarding their crazy
caching proxy server.
Following that conversation it appears that Aardvark is no longer being over-cached
(hooray) -- but many of the other overseas sites I rely on for news still are.
If you're an over-cap DSL user who is paying $0.10-$0.20 per MB to access
overseas websites be warned -- if you want the latest version of pages from
these sites you will actually be paying DOUBLE the price thanks to XTRA's
cache.
Yes, when you enter the URL of a site that is being incorrectly cached by
XTRA you will get the last cached version. To get the LATEST version you will
have to hit refresh. XTRA will charge you the going rate for BOTH copies -- so
you're paying twice. In effect, XTRA may have ripped you off the first time by
selling you an old version which, in the case of news, might be already
well out of date.
So -- XTRA have slapped a bandaid on their ill-mannered caching proxy to
address my own copyright issues -- but they're still rorting
over-cap DSL users who just want to access up-to-date content from
other international websites.
Is this incompetence or just a smart way to earn extra money?
I'm not going to provide XTRA with a long list of sites that should also
be excluded from their caching proxy-server's grubby little hands. I want
them to revise their caching rules to put the interests of their customers
ahead of the desire to engage in gross profiteering.
This whole issue has generated a raft of correspondence from readers -- and
several have asked "why are you picking on XTRA" -- which is a valid question.
Well XTRA is NZ's largest ISP so its caching practices are likely to have
more effect than those of any other ISP. Secondly, I'm not in a position to
comment on the caching practices of any other ISPs because I don't use them
and therefore can't test them.
Have Your Say
As always, your comments are welcomed. Please remember to select
"For Publication" if you want them included on this site.
Have your say.
Add Aardvark To Your Own Website!
Got a moment? Want a little extra fresh content for your own website or
page?
Just add a
couple of lines of JavaScript
to your pages and you can get
a free summary of Aardvark's daily commentary -- automatically updated
each and every week-day.
Aardvark also makes a summary of this daily column available via XML using
the RSS format. More details can be found
here.
Contact me if you decide to use either of these feeds and
have any problems.
Linking Policy
Want to link to this site? Check out Aardvark's
Linking Policy.
Did you tell someone else about Aardvark today? If not then do it
now!
|
|
|