Why ".net" is crap.

I know I am supposed to be '.: dotNuts about dotNet :.' And I am, I really am, but the name '.net' really annoys me.

'.net', the name, is so very dumb. It's dumb in a number of ways.

[Continues, with 3 examples]

  1. It is ambiguous. Ambiguity is bad.

    The word "Net" has numerous meanings already. Worse yet, "Net" is an abbreviation for "internet". This leads to the misunderstanding that ".Net" applications must have something to do with the internet. This in turn makes it harder to convince people to upgrade their pre-.Net applications.

  2. It's already taken, by a Top Level Domain, no less!

    Friends of mine have been in a number of rock bands over the years. Whenever they think of a new name they first check on Google to see if the name is already taken. Microsoft's marketers, on the other hand, are so stupid that they not only failed to check if ".Net" was taken, but they chose a name that was obviously taken.

  3. You can't google it!

    When you search for ".net", google treat it as simply "net". Hence, searching at Google for anything related to .net is a heck of a lot harder than it would be if they'd chosen a better name.

What's a better name, then?

Oh, don't ask me. I just like to complain a lot :-)

 

<Rant topic='Hungarian'>Damn I get mad about stuff!

Some things get me really fired up.

Not your typical high school debating issues (abortion, euthenasia, religion, ho hum?) -- but Hungarian naming standards. Now that's a fiercesome topic! Full of emotion! A political minefield!

Oh I've tried to code without Hungarian. I've followed the new standards. But it's a crock! A marketing foible!

Getting rid of Hungarian is just a terrible piece of 'Fashion' that will later be looked back on with regret.

'Well we've got .Net now, so we'd better make all of our code look minimalist, clean and non-technical...'

'Everything's an object, you know, like Java, so let's do what sun does'

[Rant continues, with comparisons...]

You may feel that for an API (a public API that you are going to foist onto other people) will *look* better if you avoid hungarian. That's kind of true.

But in such a case the details of your API are largely a marketing exercise and have little to do with 'Maintainability.'

But for real code, the guts of your code, the sort of code you write every day and work with every day, nothing can beat Hungarian.

Arguments I've seen against Hungarian

  1. "Hungarian makes code harder to read. for example: m_dblPrice vs Price."

    No, it isn't harder to read, it's more informative and easier to understand.
    "Price" alone tells you much much less than "m_dblPrice".
    The reader's digest condensed version of "Slaughterhouse 5" is a quicker read too. But that doesn't make it better.
    To a seasoned developer, "m_dblPrice" is easier to read than just "Price". Your mind is not distracted by questions like, "hang on, is this the pricing object? or the price parameter? or the local static price variable? or the module level... let me just hover over it, or right click on it and then... oh!" You get the idea.

  2. "With Intellisense you can find out the type and scope of a variable more easily than previously."

    Not as easily as you can with Hungarian, baby!
    You can only find out one variable at a time
    Without Hungarian, you have to actively seek that information out.
    Intellisense doesn't help if the code is printed out, or pasted into an email, or provided on a web page, or being viewed in any other way. (You probably read a lot of code outside of the IDE, just like I do.)

  3. "It takes longer to write "m_dblPrice" than it does to write 'Price'"

    Yes but it's quicker to use and maintain, because you can find it faster.
    Roland Weigelt has excellent pictures that demonstrate this.

  4. "In Hungarian, if you change the type of the variable then you have to change the name. What a mess!"

    This is a very good point, and I concede it utterly.
    However, in Whidbey, refactoring support promises to be a lot better.
    You will be able to rename a variable with ease.

  5. In Hungarian, if someone puts in the wrong prefix, it will mislead you.

    True enough. But FX-Cop can gobble up problems of this sort. You needn't lose any sleep over it.

The main reason I've seen for ditching hungarian is:

"But this is the new way."

Come here and say that! I dare you! You'll feel the stinging wrath of my sarcastic wit! You will be sorry, dunderhead.

</Rant>

 

I'm rich!

I'm affluent, bloated, comfortable, easy, fat, filthy rich, flush, gilded, in clover, independent, loaded, moneyed, opulent, plush, propertied, prosperous, rolling, stinking rich, swimming, upscale, uptown, wealthy, well-heeled, well-off, well-to-do!!

Thanks to the magic of the Amazon referer program, I have now amassed $4 in discount vouchers.

Hence, this blog can no longer be seen as a drain on my time and mental faculties, but rather a gushing stream of filthy lucre.

The $4 was produced by links I provided in the (mildly popular) .Net remoting article I wrote just before christmas. It's the only page at secretGeek that has any affiliate links. I helped in the sale of three books, including one by the excellent Mike Gunderloy (so hopefully Mike can afford a few more racoon traps now).

After doing the mathematics, I determined that, were I to place links to amazon on every single page of this site, I could expect to rake in around 87 big one's every month. With those 87 dollars I could take up smoking, or save toward that pink tractor factory I always dreamt of. The mind is boggled.

So if, in the next few weeks, you notice little affiliate links popping up everywhere at secretGeek. Don't be alarmed. I haven't turned into a greedy corporate pig. I already was one.

 

'Try again after midnight'? Yeh, right!

If you've visited secretGeek in the last few days, there's a good chance that all you found was this message:

The daily bandwidth limit for this customer has been exceeded. Try again after midnight, EST.

('Midnight EST,' in case you're stuck wondering, is Midnight in New York, Eleven PM in US central states, 10 PM in Arizona, 5 AM in London [unless they're on summer time, in which case, 6 AM] and 3 PM in Brisbane, Australia, where I am sitting in my cubicle typing this.)

Thanks for your patience if you've put up with this behaviour and *haven't* un-subscribed. I'd give you lollies and other bribes, but alas, i'm stingey.

[Continued..]

To get around the bandwidth issue, i've done a bunch of things. I've trimmed the Index page, trimmed the Rss, trimmed the Menu files; and the CSS file is smaller now too. But the problem persists!

Next step is to change the name of my RSS feed from "RSS.XML" to "RSS.ASP" That way I can use server-side script to monitor the traffic a little better. I'll do this as soon as I get the chance and I'll make it easy for you to switch over, if you do subscribe to my feed.

After that, the plan is to start **paying** for bandwidth. I have a strong hatred of giving money to people. But I've pushed Brinkster's excellent free service as far as it will go. So i'm on the prowl now for an ISP that will give me over 30 megs of space and allow me at least 100 meg of traffic each day. I need support for ASP and ASP.net. Brinkster is, of course, one option -- but I may choose a server closer to Australia.

In addition, this site will be finally getting a real domain name -- details to be announced at a later date.

Thanks for sticking around! Loves you all!

 

Technical Writing: 10 Mistakes you don't wanna make

color, UX,

These are not the most common mistakes -- but they may be the nastiest.

  1. Avoid personal pronouns, and reminiscence:
  2. Avoid stale or dated metaphors:
  3. Beware of similes:
  4. Avoid Florid Speech:
  5. Avoid religious topics:
  6. Don't assume your reader to be technically ignorant:
  7. Avoid offensive pronouns:
  8. Avoid Personalization (anthropomorphism) :
  9. Cut overlarge words; break over-long sentences:
  10. Avoid the "not un-" construct (this example courtesy of Orwell) :

Actually, I quite like a few of those... Particular metphors and similes...

 

Dogfooding Your Mother-In-Law

'Dogfooding' is an excellent principle. (in short: developers *use* the software they write, and they use it every day. That way they find and fix usability issues very quickly).

My proposed extension to dogfooding is called, "DogFooding your Mother-in-Law".

The practice has nothing to do with putting your mother-in-law through a mincing machine and feeding her to your pets. (though that may be the topic of a future post.)

Here's the idea: if you want to get real usability feedback about new software that you've written, then install it on the machines of your friends and family-members. Have it launch on startup. When your mother-in-law calls you six times in a weekend to ask how such-and-such-a-feature works, you'll actually start to *care* about fixing that usability bug.

I think Linux for the Desktop would streak ahead if the developers who work on it would Dogfood their Mothers-In-Law. Of course, unmarried developers may need to make-do by Dogfooding their Grandmother, Dogfooding their mother or dogfooding their (un-geeky) neighbours.

If I ever get around to writing 'the bedside book of development best practices' i will devote a page and a cartoon to DogFooding Your Mother-In-Law.

 

The four horsemen of the online apocalypse

The four horsemen of the online apocalypse do not ride on fearsome steeds. They zip around on Segways.

Horseman number 0 is Pestilence. (The online apocalypse has zero-based indices). She distributes Spam, Viruses, Trojans and Worms. She's an ultra-active apocalypso.

On Segway number 1 is War. He is responsible for everything from Denial of Service attacks to Browser Incompatabilities, to arguments between Linux and Microsoft, to privacy violations, to the war on peer-to-peer technology, to "Google bombs".

Segway Number 2 is Death. Death is service outages, expired support agreements, obsolete hardware, the dotcom collapse, and everyone at f*ckedcompany.com.

The final Segway, Segway number 3, is Famine. Famine is the words "No updates pending", "You have no new messages" and the words "This issue has not been addressed in the current release." Famine is a 56K modem when you need broadband, famine is Linux customer support, famine is your job being outsourced, famine is an IMG tag with no ALT text, famine is a cubicle with no air-conditioning and a Scoble post with no intelligible meaning.

Pestilence, War, Death and Famine. Now showing at a browser near you.

(by the way, here in Brisbane we just survived the most incredible storm. very apocalyptic)

 

It's the Little Things that Sh*t Me Most

sql,

Today's pet gripe: SQL Server Magazine.

This magazine claims to be "Magazine of the year".

Well, what do i think about that? I think it's a crock! A dirty, dirty crock!

While reading one of their articles, I clicked on "printer-friendly version". But, much to my chagrin, when I printed this so-called 'printer-friendly version' SOME OF THE WORDS WERE CHOPPED OFF! If that's their idea of "Friendly" then I'm glad they're no friend of mine!

When I looked into the problem a little deeper, I found it was caused by a criminally inappropriate used of the <PRE> tag. I've written about this particular nastiness in a previous entry (Open Letter To Technical Authors), but evidently the 'Magazine of the Year' wasn't listening that day.

Well, there you go SQLServer magazine: named and shamed. Suck it up, losers.

 

Live Mars Feed!

All week we've been getting some phenomenal high-resolution photos of Mars. Here's an amazing QTVR panorama! Unbelievable, it literally brings tears to my eyes.





Here's another photo taken just six hours later. The way the light changes, you'd guess it was a whole different season!!





The camera rotated 15 degrees to the south before taking this one





And this one, my personal favourite, was achieved by tilting the camera by 11 degrees higher.





But if you think sunset is romantic here on Earth, just wait until you see sunset on Mars!





The source files are 36 MB TIFFs. I've had to shrink and crop just a little to achieve these amazing images. Be sure to hit F11 to maximize your browser's window so you can see as much of the image as possible. I upsampled the images and am serving it with Aperio's image server software.


(Thanks to Ole Eichorn for the supporting text)

 

Anti-Trust: bad geek movie

Over the weekend I saw the film 'Anti-Trust', a tech-conspiracy thriller, staring Tim Robbins as a crazed billion-dollar software psychopath; a thinly-veiled cartoon of how the media likes to portray Bill Gates.

Tim Robbins character in Anti-Trust

(His name, 'Gary Winston' cleverly resembled the name 'Gates William.' Mind Blowing Stuff!) He wasn't really all that evil though. He just needed to chill-out a little, maybe browse through a copy of 'The Mythical Man Month', and lost that 'Ship-It!' mentality.

The main character, a young software developer, looked like a very serious version of Rory Blyth. (What a crock! Everyone knows real nerds don't look that geeky.)