Tuesday, November 30, 2004

New language features

There's an overview of the new language features in VB.NET 2.0 on MSDN.

Looks very interesting. There are some really cool features in there, like:

  • XML Commenting
    I've already used his to a certain extent with the VBCommenter powertoy and find it quite cool. I find it really helpful. I'm a bit of an inconsistent commenter, and this adds a bit of structure and a bit of consistency to my commenting. And I'm a cheap toy whore. It's really handy to use it with NDoc for making nice MSDN-style documentation as well, though.

  • TryCast
    Not too much to say about this, apart from cool! What's that you say? No need to wrap all my casts into a try/catch block? No need to typecheck every object that gets passed into my methods? I'll have some of that!

  • Operator Overloading
    Ah yes. Operator overloading. Very handy. Eliminate whole swathes of code with a single operator. Sweet!
It's not all good, though. There are a couple of things in there that, certainly at the moment, I can see being really heavily abused.

Some of them include:
  • Partial Types
    What? Split the same class over several files? Although I can see some potential for this being quite useful, I also envisage people using it to implement some sort of weird file-based architecture to their code. Namespaces? We don't need no stinking namespaces! I have visions of something like this:
    File: SavingMethods.vb
    Partial Class Widget
    Public Sub SaveToDB(Thingy as IWidget)
    'Lots of DB Code here
    End Sub
    End Class


    Partial Class InheritedWidget
    Public Sub SaveAsXML(Thingy as IWidget)
    'Lots of XML Code here
    End Sub
    End Class

    Eugh!
    Note to self: You've said it now. I can guarantee you'll catch yourself doing it at some point. Remember to slap yourself silly for it when you do!

  • Default Instances for forms
    Yes. Here's an idea. Let's try and make VB.NET just like VB6. Forms you don't have to instantiate? Yeah! I'm sure it fits in nicely with the rest of the entire sodding language. Do I want an exception to that rule? Of course I do! I want to have to instantiate every reference type except one. I'm sure I'll never trip myself up.(</sarcasm>)
OK, so I don't have to use any of the stuff I don't want to. If I want to put my classes all together, then I can (and probably will). If I want to skip the line "Dim theform as new Form1" then I will.

It's just some things that were occurring to me as I was reading about it. All in all, though, I'm really looking forward to getting to play with VB.NET 2.0, and VS 2005. Sad, I know.

Oh yeah, and another note to self: If you're going to have an image illustrating how XML Comments appear in intellisense, you'd better have an image that shows the comments being shown by intellisense.

Sorry about the length. It was just on my mind and wanted to get off.

Friday, November 26, 2004

Some things bother me...

And this is one of those things.

Do you ever see something, or read about something that for no apparent reason sticks in your mind and won'g go away? Well this is one of those things.

It all started many years ago, when I first saw the movie WarGames, with Matthew Broderick, Ally Sheedy and the guy from 9 to 5.

At one point, all the main protagonists are holed up in the top secret military bunker place, with Maurice out of Northern Exposure. As the tension mounts, and nobody's sure whether there really is a full scale nuclear bombardment headed into America, or whether it's just a figment of a big computer's imagination, they raise their military status thing from DefCon 3 to DefCon 2. Very Tense. Only one step away from all out global war. When the status changes, the bunker locks itself down. I'm assuming automatically. One of the big things that happens is that a huge (and I'm talking HUGE) big metal door (presumably proofed against every Bad Thing known to man) closes and locks. Hardcore. Nothing's geting in or out of that place until the door opens again.

Now, I'm assuming that they keep this door locked for the duration of the war, as well as until any fallout's cleared. In short, they could be there for some time.

Since this giant, heavy, computer-controlled very locked dor is the only way in or out of the bunker, I'm sure everyone who works there knows exactly how hard it's going to be to get out. They know that if they hear the Big Door close, it's time to call the wife and tell her that they might be a few years late for dinner (and I'm guessing let her know that if it all goes tits up, they loved her, and there were so many things they wanted to tell her, but there just wasn't enough time).

Now, as the door's closing, one guy runs in to catch it before it's locked altogether. He's quite a young guy, in a uniform, carrying a sheaf of papers. The thing that's beenbugging me for the past 11 years or so is:

WHAT WAS SO IMPORTANT THAT IT COULDN'T BE FAXED OR PHONED IN IN THOSE PAPERS?

That's it. I just wanna know what was so important that, in the event of a potential Buck Rogers-style nuclear holocaust, he had to run to catch the door before it closed for an indeterminate amount of time, sealing him off from his family and miscellaneous extra loved ones for the rest of their lives.

It's one of those insomnia inducing questions that rears its ugly head when I'm just about to nod off for the night and keeps me up until 3am when my body finally gives up pondering it.

My bet is that he's some sort of accountant. 'I don't care that there's nobody on the planet left to pay. You still have to sign off these invoices!' That sort of thing. I hope that in the event of a real war, his mother's last thoughts were 'Well at least Simon's been saved by doing his duty for his country.'

Either that, or it was some top-notch pr0n that he wanted to save from vaporization.

What do you reckon he needed to dive into the bunker for?

Thursday, November 25, 2004

Bandy Wagon

Bandwagons are great. When I grow up, I want o be on every bandwagon going. I want to:

  • Protest about things I know nothing about
  • Get morally outraged about things because the newspaper told me to
  • Subscribe to whatever wacko diet is current, because some D-list celeb says it helped him/her lose a few pounds
To this end, I've started already.

Joe Stagner's having trouble convincing his bosses that blogs actually get read by real people. Hop on the wagon. Give him a click. Everybody else is doing it. And that, as we all know, is good enough reason to do anything. Go now!

As a sidenote, if you don't (yet) know who Joe Stagner is, check out his episode of DotNetRocks. He's a sound Geezer.

Quick. Dirty. Stoopid.

But quite educational.

Can you even name 112 languages? I got as far as about 9.

Well, no matter whether you can or you can't, you too can learn how to say "Oh my god, there's an axe in my head!" in all 112 (YEs 112 count them!) languages, including Ancient Egyptian, Visigothic, or even (and this is realy wierd!) Welsh.

They're all here.

"Deus Meus! Securis in capite meo est." (Latin)

I also know another bit of Latin Let me know if the grammar's wrong...
"Semper in excreta summus. Solum profundun variat!"
- Always in the s**t. Only the depth changes!

Just wanted to share.

GUI History

There are precious few resources out there (it seems) for designing interfaces. My perennial favourite, the IArchitect Hall of Shame is out of date, although a lot of the principles underlying it still apply, as reflected at Pixelcentric's site, and UI Patterns and Techniques gives a good overview on common ways of interacting with users..

But for a bit of history, and to put where we are in terms of GUI's now into a bit of context, I've just found the GUIdebook which not only gives a good overview of what's about at the moment in terms of GUI's, but also a bit of an overview of where they've come from, and how they've developed over time.

I'll most likely be spending quite a bit of today (between my 'regular' work) reading up on that.

Just wanted to share.

Wednesday, November 24, 2004

Screaming Fan

At the time of writing this, my blog was the 4th site that comes out of google when you search for Geoff Maciolek.

Wonder where the line is between blog and fan-site...

Geoff still has great hair. People have even (apparently) commented that it's 'Arty'. Now whilst it's finely sculpted, and certainly beautiful, sadly my 'Hair as Art' biases run too deep to describe it as arty (i.e. covered in, smeared with, or containing art).

Not, as far as I'm concerned, arty, but Geoff's hair still rocks.

Tuesday, November 23, 2004

Cheap Toyness

The very observant of you will have noticed that I've got a picture of me on my blog's front page.

For those of you who read this through an aggregator, you might also notice that I've changed my RSS feed to RSS 2.0. Yes. I am a cheap whore who's easily impressed by cheap toys. If you haven't guessed already, the only reason I changed the RSS format was so that my picture appeared in RSSBandit.

If either of you want me to change it back, let me know. I only did it for some cheap toyage. I'm sorry.

Monday, November 22, 2004

Pointless, I know...

But one thing I've been wondering for ages is whether or not Nancy Davolio is or was actually a real person.

She must be one of the most famous people in the world.

Looks like I might have to change the title of my blog...

One of the comments on this post here caught my attention. It's by Daniel Moth who says:

"I understand what you are doing from a business perspective: Driving the professional community to C#; just come out and state it please so we can all stop talking and arguing about it."
. I had a couple of thoughts about it...
  1. Refactoring's not that hard to do, if you do it as you go along. Granted, it means that your initial rate of progress might be a little lower, and it certainly looks odd when you're putting quick prototypes together, but at the end of the day, it's not that arduous a task. That said...
  2. It is a bit of a bugger when the CSharpies get tools that VB people don't
  3. This prioritizing of features like 'My' and stuff like that does give the CSharpies more ammo to sling at VB types. Which is a shame.
  4. It's a relatively minor feature, if you ask me. If you can't change your variable names using search/replace then it's your own fault!*
Those were the first thoughts I had.

Why do I think I might change the name on my blog? Well. One of the things I was really impressed with about VS 2005 is that (as far as I know) VS Standard (i.e. Cheapskate) Edition supports multiple languages. So, when I eventually get it, I'm going to be able to start working with C# as well as VB. No doubt I'll always keep a preference, but hey, one of my favourite things about VB.NET was that it's all .NET. It's all just coding against the framework, and so any differences between one and the other are just syntax. And I can deal with syntax.


*Yes, yes, yes. I know refactoring isn't just about changing variable names, it's l about taking out regularly used bits of code and slinging them in their own methods (among other things...) Changing variable names was just the first thing that came to mind at the time.

Computer stores

It takes a lot to get me to go to computer stores. Usually, I only go in there if:

a) I'm desperate for something and can't wait for next day delivery
b) I know exactly what I'm after, know they've got it in stock, and am desperate to carry something home in a box
c) I'm buying something I'm not too sure about, so I can safely return it under their retail-model-based fairly lax returns policy

The running theme here is desperation. I normally avoid them like the plague.

Reading this article about what makes up the ideal computer store reminded me of a conversation I heard one in my local shop.

Customer: Can you tell me how many internal drive bays there are in this case?
Assistant: I'm sorry, I'm not allowed to advise on individual components
Customer: Well can I open up a box to look myself?
Assistant: I'm afraid we're not allowed to do that
Customer: Well can I take the back off the display model and have a look?
Assistant: I'm afraid we're not allowed to make any modifications to any of the individual components
Customer: I'm don't want to change it, I just want to have a look inside
Assistant: I'm afraid we're not allowed to do that
Customer: So how am I supposed to know what I'm buying
Assistant: You'll have to read the description on the packaging
Customer: But there is no packaging. It's a case. It comes in a cardboard box
Assistant: hmmmm.
Customer: Do you know how many internal drive bays it has.
Assistant: Yes.
Customer: Well can you tell me?
Assistant: I'm afraid I'm not allowed to advise on individual components

Now I'm not going to get into a argument about anything, except the policies surrounding this poor assistant. I really felt for him. He knew exactly what he was talking about. He knew the answer to the question. He wasn't allowed to tell the customer because that was the store's policy (it was a big chain one).

Now I know exactly why this is, and it sucks.

Basically, in order to avoid either:

a) Hiring and training staff so they know what they're on about; or
b) Getting shedloads of returns from disgruntled customers who have been wrongly advised by staff who didn't really know what they were on about

The store has a policy not to tell anyone anything, except what it says on the product description cards on the shelves. This way, they can hire anyone they want, regardless of skill, knowledge, or any of the things that make us who we are and unleash them on the unsuspecting computer-buying public.

It really does suck. But hey, I guess I don't have to talk to them.

Just wanted to share. I'm sure I'll write something worth reading shortly. Been studying quite a little bit about English Query. It looks really cool. I didn't even know it existed, either! What a stroke of genius.