June 2004 - Posts

While everyone else is getting all hyped about VS'05 Beta (which, I admit, is incredibly exciting), I'm going to take this opportunity to hype up one of my absolute favorite development tools: QBasic. While I haven't used this tool in nearly a decade, I still think it's great that it's now available for MSDN Subscribers. It may have been there before, but I'm pretty sure I would have noticed it ...

I believe QBasic is the best environment to teach kids programming. Visual Basic and friends have way too much overhead with windows, buttons, events, etc. Just think how hard it would be to teach programming a little game within the first lesson. In QB, with just a few PRINT, INPUT, and IF statements, you can write a choose-your-own adventure game with ease. As TheDailyWtf points out today, I think that's what kids really want to do anyway. That sure as hell was the first thing I did when I got my hands on GWBasic ...

I came across this comment in a the newsgroups today ...

I personally recommend against modules, which are a pre-OO [object Oriented] feature. Instead,
go ahead and create a Public class with Public Shared subs and/or Functions.

... and thought it would be a good time to clear up this popular misconception. Modules in VB.NET are indeed object-oriented. The VB.NET compiles a module as a class with a private constructor and sets all of the methods and fields to be shared. There's about as much sense in avoiding Modules in VB (for the sake that they don't seem OO) as there is in avoiding members of the Microsoft.VisualBasic namespace (because they're not in the System namespace). And I can assure you that there is not a whole lot of sense in that.

As a Visual Basic programmer, if you refuse to use Modules, Left(), Right(), etc. because you feel they are too BASIC-ish, then senslessly not utilizing the full power of VB. The namespace is not there just for backwards compatability reasons - it's part of the whole Basic philosophy that simple, common operations should be as easy and straightforward as possible. Left(myString,4) is a bit easier to read and use than If myString.Length > 4 Then myString.SubString(0,4) Else myString. And of course, the builtin function does the exact same thing in the exact same time (minus the function calling, which is pretty insignificant anyway).

Posted by Alex Papadimoulis | 22 comment(s)
Filed under:
Just incase you've never heard of them before, I posted an article on smart clients that I wrote a long while back for the boss after going to a smart client seminar. It's a short, high level overview of the concept.

TheDailyWTF.com:

Yesterday, Larry Osterman had to go and take the fun out of yesterday's WTF. So Larry (and everyone else) I hereby issue a challenge for you to justify the actions of Programmer X, as described by reader Jakeypoo:

I'll be the first one to admit that I'm relatively new to programming.  "I'm relatively new to programming."  There.  So far be it from me to criticize what could well be a masterfully architected piece of software, so I won't color this.  I'll just present the facts [...]

And I'll repeat my offer ;-) ...

I'm tossing in a couple GMail invites for good submissions. So go on and share your pain and frusteration with everyone else. And hey, you may just end up with yourname@gmail.com! Err, not that specific address (it was taken, I tried). But something just as cool!

Posted by Alex Papadimoulis
Filed under:

It's that time of the day again.

Some programmers feel that the code they produce is as much artwork as it is function. I guess I can agree with that, especially after viewing Anges Martin's The City at my local art museum, which reminds us that anything can be art. And with art comes creativity. So I'll bet that's what the author of this piece of code [...]

Read the whole thing at TheDailyWTF.com. Oh, would anyone object if I stop cross posting? Just leave a comment if so.

Posted by Alex Papadimoulis | with no comments
Filed under:

Your daily TheDailyWTF WTF Teaser:

I didn't have any non-support-related or non-code-snippet submissions, and I'm trying to shoot for a bit of variety here :-). So, here's a WTF from yours truly.

For the past year or so, I've been working with a client to develop some rather complex web-based software to allow dieticians and their patients to manage a special diet that is supposed to help people with severe allergies. To populate our database, we copied the USDA's Nutrient Database, which has over 6,000 records, and had the client categorize and delete entries that she didn't want in the system. Interestingly enough, some of the “foods“ in the 2,200 remaining records were Beaver, Horse, Opossum, and of course, my absolute favorite [...]

Posted by Alex Papadimoulis
Filed under:

Just incase you're not feeling like typing in TheDailyWTF.com:

For those not aquianted with NIH, it stands for Not Invented Here and refers to the tendancy of programmers to avoid using third party tools because, after all, it's something that they could write themselves. I'd bet that it's something that we're all guilty of doing at least once or twice. But I can honestly say that I have never developed my own version of a built-in function, unlike the author of this VB6 function [...]

Posted by Alex Papadimoulis
Filed under:

Your partial cross post from TheDailyWTF.com:

I've been programming for quite a long time - since I was about twelve or so. Of course no one in there right mind would hire a seventeen year-old programmer (even one with five years experience), so I got a job as a PC support technician. And like many other technician-wanna-be-developers, I absolutely hated it. But in retrospect, I did get some pretty fun stories out of it. Although none as entertaining as this one, from Brent Railey's Technician Support days:

We sold a computer to an elderly lady who took it home. We had tested it, and it worked great at the store. But, when she got it home, she could not get it to turn on.

[...]

Posted by Alex Papadimoulis
Filed under:

From, of course, TheDailyWTF.com:

I've had the pleasure of working with a developer who strongly believes that all classes external to your assembly (even core framework classes) should be wrapped in an internal class. The idea goes something like this. If your external class ever changes and the author decides to make it not backwards compatable ... and the new version of the class is actually required, you only have to change your wrapper class once instead of having to [...]

I'm going to stop cross posting pretty soon. So don't forget to get your subscription on.

Posted by Alex Papadimoulis
Filed under:

For those who missed the Slashdot Post:

Jeff Reifman, a columnist for Seattle Weekly, has written a toe-curling editorial analysis of Microsoft's past and current missed opportunities, contrasted with its financial success, while covering in fair depth some of the most serious threats to their business model. Beyond the many choice quotes, I've found this article to be a very interesting read from somebody who has not only been on the inside, but also significantly developed his professional career thru Microsoft solutions."

And for those willing to read the 5,000+ word article, feel free to comment here. Don't worry, no -5, Not Anti-M$ mods here ;-).

Here's my comment:

Seems to me that Mr. Reifman is disgrunted former employee who just couldn't hack it. I mean, just look at his opening paragraph:

"10 minutes of my day rebooting ... Microsoft Outlook 2003 hangs for me about once a day ... Word 2003 ... every line in the document gets a bullet ... shut down is more of a request than a command—it might, it might not ... Internet Explorer stopped opening for me."

My God. That's definately an Überincompetent user problem. Even my grandma doesn't have any of those problems. And she's on 98 First edition.

More Posts Next page »