|
||||||
And the Winner Is...I closed the polls on my contest at midnight (Pacific Time; apologies to my readers in Hawaii who thought they had three more hours to enter) on February 1. Next, I went through the 100+ entries and disqualified those that were over 100 words or lacked originality. I forwarded the remaining 26 to my boss, who volunteered to help me judge (she’s a sucker for a good contest: she also loves American Idol). She narrowed it down to eight, and from there I agonized over three. The winner of the free copy of Visual Studio 2005 Team Suite with MSDN Premium Subscription is... John Dukovich of Green Moon Solutions! It was a difficult decision. I like that John works for non-profit and socially-responsible organizations, and his company may actually be able to take advantage of Team System’s features. Congratulations to John, and thanks to everyone who entered. Just a reminder that if you’re a teacher or student, you may qualify for free or dramatically discounted Microsoft developer tools through the MSDN Academic Alliance program, and if you run a software company, you can join the Empower for ISVs program. Contest UpdateIt’s been three days since I announced my Visual Studio Team Suite / MSDN Premium giveaway. Since then, I’ve noticed that several other MVPs are planning similar giveaways. Come back often (or subscribe); I’ll alert you to any additional contests I discover. I’ve received 67 comments so far and I have to say, I’m a little disappointed. The majority of comments say, essentially, “I really want it but I can’t afford it.” Come on, people! This isn’t a raffle; you need to give us a reason to choose you over someone else. A few have resorted to threats (“Choose me or else I’ll use Java/Linux”), promises (“Choose me and I promise to learn how to use it”), or pity (“Choose me or my children will starve.”) I was hoping to hear, “I work for this charity/non-profit” (I did get a couple of those) and/or, “I could really use these specific features of VSTS...” There have been a few standouts: Aidan is working on an innovative Web project that deserves some attention. And I enjoyed Adam Wright’s poem. No promises, guys, but you made a favorable impression. FYI, if you want the software because you’re a starving student or running a startup, Microsoft offers significant discounts to both academic institutions and software companies. If you don’t score a free copy from an MVP, you should check those out. Update: Patrick Santry, owner of WWWCoder.com, is giving away several VSTS/MSDN licenses. Update 2: XML guru Oleg Tkachenko has licenses to give away and is looking for ideas. Contest: Win Visual Studio 2005 Team Suite with MSDN Premium SubscriptionMicrosoft has generously given me (and, presumably, other MVPs) a few licenses to Visual Studio 2005 Team Suite with MSDN Premium Subscription “to share with other individuals of [my] choosing in the community.” Now, I’m under no delusion that this is sheer altruism on Microsoft’s part; I’m sure they want to drive adoption of VSTS (and I want more readers!) Regardless of the motives involved, however, I have cool software to give away, and that’s where you come in. In the comments to this post, tell me in 100 words or less why you should receive one of these licenses. I’ll keep the comments open until January 31, at which time a panel of judges (to be determined) will select a winner. So, make us laugh, make us cry, give us goosebumps. Convince us that you deserve a free copy of this $10,000 software package (and in case you don’t win, start sucking up to other developer MVPs you know!) Myth-Busting BustingThe Classic VB petitioners have posted a FAQ page explaining their goals and the motivations behind them. (Hint: Contrary to what you may have read elsewhere, the impending end of mainstream support for VB6 is not the primary issue!) On the lower portion of that page is a section titled, “Myth Busting” which includes a myth of its own: To take a trivial example, there is no defensible reason why a QuickSort algorithm should need to be rewritten because you have a new compiler for a language targeting a new platform. Is it true that a VB6 QuickSort algorithm must be rewritten in order to recompile it for .NET? Let’s see… Here’s a VB6 QuickSort implementation I found on the Web: Public Sub Quicksort(ByRef list() As Integer, ByVal min As Long, _
ByVal max As Long)
Dim med_value As Long
Dim hi As Long
Dim lo As Long
Dim I As Long
' If min >= max, the list contains 0 or 1 items so it is sorted
If min >= max Then Exit Sub
' Pick the dividing value
I = Int((max - min + 1) * Rnd() + min)
med_value = list(I)
' Swap it to the front
list(I) = list(min)
lo = min
hi = max
Do
' Look down from hi for a value < med_value
do while list(hi) >= med_value
hi = hi - 1
If hi <="" lo then exit do
loop
if hi <="" lo then
list(lo) ="" med_value
exit do
end if
' swap the lo and hi values
list(lo) ="" list(hi)
' look up from lo for a value >= med_value
lo = lo + 1
Do While list(lo) < med_value
lo ="" lo + 1
if lo >= hi Then Exit Do
Loop
If lo >= hi Then
lo = hi
list(hi) = med_value
Exit Do
End If
' Swap the lo and hi values
list(hi) = list(lo)
Loop
' Sort the two sublists
Call Quicksort(list, min, lo - 1)
Call Quicksort(list, lo + 1, max)
End Sub
And here’s the same implementation in VB.NET: Public Sub Quicksort(ByRef list() As Integer, ByVal min As Long, _
ByVal max As Long)
Dim med_value As Long
Dim hi As Long
Dim lo As Long
Dim i As Long
' If min >= max, the list contains 0 or 1 items so it is sorted
If min >= max Then Exit Sub
' Pick the dividing value
i = Int((max - min + 1) * Rnd() + min)
med_value = list(i)
' Swap it to the front
list(i) = list(min)
lo = min
hi = max
Do
' Look down from hi for a value < med_value
do while list(hi) >= med_value
hi = hi - 1
If hi <="" lo then exit do
loop
if hi <="" lo then
list(lo) ="" med_value
exit do
end if
' swap the lo and hi values
list(lo) ="" list(hi)
' look up from lo for a value >= med_value
lo = lo + 1
Do While list(lo) < med_value
lo ="" lo + 1
if lo >= hi Then Exit Do
Loop
If lo >= hi Then
lo = hi
list(hi) = med_value
Exit Do
End If
' Swap the lo and hi values
list(hi) = list(lo)
Loop
' Sort the two sublists
Call Quicksort(list, min, lo - 1)
Call Quicksort(list, lo + 1, max)
End Sub
Can you spot the difference? (If you intend to point out that Integers and Longs are different sizes in VB6 and VB.NET, please include an example demonstrating how that difference affects the algorithm’s behavior.) Here’s another:
Ahem. What prevents VB6 developers from supporting their customers with bug fixes and application enhancements in VB6? Nothing. That’s exactly how my employer is supporting its customers’ VB6 code. Create Great .NET User InterfacesI'll be speaking on the above subject at a meeting of the .NET Developers Association in Redmond, WA next Monday, July 12. Here's the blurb: Even the most beautifully coded application will flop if people hate to use it. And they will, if its user interface is not designed with their goals in mind. What makes a great UI? How can you apply the principles that work so well for the guts of an application to its front end? I'll show you specific techniques (with code!) that you can use immediately to reduce complexity for your users and improve your presentation layer's efficiency and maintainability. More details here. Next Monday is also my first day at a new job, so it'll be a busy day: work until 3 p.m., drive to Redmond, give my talk, drive home, and go to work Tuesday. Yikes! Department of Redundancy DepartmentI first learned of the release of Visual Studio 2005 Beta 1, as well as Express Editions and the MSDN Feedback Center, shortly after midnight this morning. Since then, I've seen it reported by dozens of bloggers, and the day is young. ('We blog more by 8 a.m. than most people do all day.') If you're a .NET blogger and you haven't yet written about today's new releases, please don't! What is the thought process that leads one to blog about an event of this magnitude? 'If I don't blog this, nobody will hear about it!' Or perhaps, 'Ooh, if I hurry and blog this, I'll be the first, and I'll get lots of links and notoriety!' Please. Before you post (not just today, every day), I urge you to peruse the home page at weblogs.asp.net or do a search at Technorati. If you don't have anything to say that hasn't already been said several times, do us all a favor and step away from the keyboard. Thank you. I have a dream...Julia Lerman laments the VB.NET stigma and C# elitism being perpetuated by the trade press. In particular, she refers to this editorial in asp.netPRO magazine. I found that editorial troubling as well. In it, Elden Nelson writes: Whether it's just or not, C# developers make more money, get work more easily, and enjoy more prestige than VB developers. He then recommends that VB.NET developers learn C# at their earliest opportunity, presumably to cash in on the cachet. Now, I don't disagree that it's a good idea for VB developers to learn C#. But I do object to asp.netPRO's tacit endorsement of language bigotry. What if the editorial had said: Whether it's just or not, white developers make more money, get work more easily, and enjoy more prestige than minority developers (Or, as one of the commenters on Julia's blog suggests, "...male developers make more money, etc. than female developers")? If the situation is 'not just,' as Nelson implies, why isn't he working to change it? A Solution to the VB.NOT CrowdUnhappy with the state of VB.NET? Here are two things you can do about it:
Readers Respond to "Is Inheritance Overrated?"I've received some good feedback from my article, "Is Inheritance Overrated?" The real issue, it seems, isn't inheritance, but rather strong typing. One of the requirements of this project is that it be more or less self-maintaining: new content types will be added fairly often; my bosses don't want me to have to go spelunking in the code every time that happens. An advantage of my generic framework is that the app's users can maintain the system simply by creating templates and editing data; few (if any) changes to the underlying code will be required. David Bayley thinks the generic framework will be more difficult to maintain than a strongly-typed object model. What do you think? Is Inheritance Overrated?I had looked forward to using implementation inheritance for the first time in my current project. Is it just me, or is inheritance more trouble than it's worth? [Read more] |
Presentations
Create Great User Interfaces
Articles
UX Tip of the Week: Why Message Boxes Are EvilEasy RSS in VB.NET Is Inheritance Overrated? A Tale of Tabbed Pages Categories
.NETBlog Career Cycling Geek Humor Microsoft Music Personal Rants Reading Software Tech Travel Usability VB Archives
January 2010June 2009 March 2008 December 2006 August 2006 April 2006 February 2006 January 2006 December 2005 September 2005 June 2005 May 2005 March 2005 January 2005 December 2004 September 2004 July 2004 June 2004 January 2004 August 2003 July 2003 May 2003 April 2003 March 2003 February 2003 January 2003 December 2002 November 2002 Misc
Talk to MeSubscribe |
|||||