# Monday, August 16, 2004

The East of Toronto .NET Users Group is meeting tomorrow night, Tuesday the 17th. Come and hear Dwayne Lamb and discover all the wonders of adding location information to a mobile application. Please register at gtaeast.torontoug.net so we know how many to expect.

Come out and get a look inside Microsoft's latest addition to the MapPoint family of products - Microsoft MapPoint Location Server. With MLS's SOAP interface, developers can easily integrate the real-time location of a mobile phone into their applications. Fleet management, Mobile CRM, asset tracking, buddy finding and much more are now possible. MLS's Plugin architecture allows for integration with a number of sources of real-time location information from Wireless operator networks to Wi-Fi hotspots and GPS devices. Come out and hear about the new location services that mobile operators are offering and find out how .NET programmers can integrate them into their solutions.

Dwayne Lamb, Visual Byte Inc. is a 15-year veteran of the computer industry and an experienced technology instructor, writer, presenter and developer. Through his work at Visual Byte, and his active involvement in the developer and user communities, he has become a leader and industry specialist in the area of mobile application development and design and has been recognized by Microsoft as a Mobile Device MVP.

In other exciting user group news, I have a room through the fall for the group -- in the same building, but a different room. Starting with the September meeting (which will feature a presentation on building applications for mobile devices from the MSDN Canada team) we will be in UA 2120. But tomorrow it's still UA 1350. See you there!


Monday, August 16, 2004 12:47:11 PM (Eastern Daylight Time, UTC-04:00)  #    
# Friday, August 06, 2004

Clearly some sort of internal milestone has been reached by the C++ product team, because Stan and Herb are blogging again. Stan has quite a long entry on why C++/CLI supports both templates and generics, from an insider/designer point of view. It's not a skim-through-while-you-eat-your-breakfast post, but if you care about C++ you'll be glad you read it.


Friday, August 06, 2004 9:02:00 AM (Eastern Daylight Time, UTC-04:00)  #    

Admit it, you'd like a Tablet PC, wouldn't you? Then you could know what Julie Lerman and other ink-lovers are talking about all the time.  Or if you already have one, with a second one you could give it away and get someone else hooked on tablet development. Well, Carl Franklin of .NET Rocks (and my fellow RD) wants some insight into what developers care about, and he's willing to give away this lovely Toshiba M200 to get it. Fill out a quick and confidential survey and you're all set. Contest ends August 26th, so don't dilly-dally.


Friday, August 06, 2004 6:53:29 AM (Eastern Daylight Time, UTC-04:00)  #    
# Wednesday, August 04, 2004

I get a lot of fake bounce messages these days, either because mail that was spoofed as being from me has bounced or because viruses are pretending to be bounce messages. I also get a fair number of OOF and vacation messages from strangers, for much the same reasons I suppose. I ignore them, and usually delete them unread. But this one I read, because it had no attachment and I didn't know what the subject (Congés) meant. What I found is worthy of mention:


Je serais de retour de congés le 23 août 2004.

En mon absence, je vous invite à contacter Steve xxxxxxxxx (xxxxxxxxx@xxxxxxxx.fr).

Coordonnées du standard : 01 41 97 xx xx

Je me tiens à votre disposition à mon retour.



(I elided the name and email of the standin, Steve, and the phone number.) Just look at the phrasing! He invites me to contact Steve. He's going to put himself at my disposition on his return. He even signs it Cordially! Is it just that the French language lends itself to that kind of phrasing, or is didier a truly gracious person? I'll never know. But if I ever get a vacation, I think I will be wording my message a little differently now...


Wednesday, August 04, 2004 10:18:56 AM (Eastern Daylight Time, UTC-04:00)  #    
# Wednesday, July 28, 2004

Almost two months ago now, Joel Semeniuk blogged about responding to RFPs and how awful it is. The thing is, it's really hard to keep a business larger than one person afloat without ever responding to them. And once in a while, you get the contract, which is fantastic but keeps you from blogging :-).

Gregory Consulting is in the midst of not one but two contracts landed through RFPs right now, and I just can't help myself, I'm responding to another, this to get on a Vendor of Record list for, er, a major provincial government. About two years ago this ministry built a list and the RFP had a due date for responses of December 23rd. The first  Q & A session was full of questions about the deadline, would it be postponed, and the answers were oh no, absolutely not, there's plenty of time for you to make a good response in that time. Every Q & A after that, the same question, the same answer. Until two weeks before the deadline when they announced a four week or so extension. So here we go again in 2004 and the due date was July 29th, and the Q & A literally complained “the government is ruining my vacation” and the answer was “we are ruining our own as well but there will be no extension.” Again and again people asked and were told the deadline was immutable.

I've been busy doing the work I landed but I settled down last night to pull the whole RFP package together so it could be printed and bound today and hand delivered tomorrow. And with a horrible sinking feeling I was realizing I had hours of work writing project profiles and filling out checklists. I got to the bit where you have to list all the addenda you have seen, popped up to merx to get the most recent addenda (I've been busy, remember?) and -- hey! This thing closes August 19th now!

At least I found out before I stayed up all night.


Wednesday, July 28, 2004 6:42:12 AM (Eastern Daylight Time, UTC-04:00)  #    
# Wednesday, July 21, 2004

Last night Adam Gallant came (from his sickbed) to speak on game and media development at the East of Toronto .NET User Group. For the summer, we meet in a snazzy new lecture hall at the University of Ontario Institute of Technology. Adam wanted to draw some diagrams -- with a pen, on paper. That's pretty low tech. But so everyone could see what he was doing, the room has a document camera hooked up to the projector. Fun toys!

You can see in the background there are both whiteboards and blackboards as well. It was never like this when I was a student (my University of Waterloo student number, which I still know, starts 77.)

It will really hurt to give up this room in September when the students come back. Sigh.


Wednesday, July 21, 2004 9:42:53 AM (Eastern Daylight Time, UTC-04:00)  #    
# Monday, July 19, 2004

The East of Toronto User Group is meeting tomorrow at Durham College / OUIT once again. Please come and see Adam Gallant talk about game and media development:

A lot of software developers have realized the benefits of moving to the managed code environment provided by .NET, and are writing applications using C# and VB.NET. However, one of the most of the most exciting new technologies available to .NET developers is the availability of Managed DirectX, which provides managed access to building rich 3D application and games to .NET developers. Not a poor second cousin, Managed DirectX provides almost identical performance as native DirectX code. In this session, we will introduce DirectX concepts, the Managed DirectX classes, and demonstrate a managed game written in C#.

Please visit http://gtaeast.torontoug.net/UG_Events/627.aspx to register.


Monday, July 19, 2004 2:32:52 PM (Eastern Daylight Time, UTC-04:00)  #    
# Wednesday, July 14, 2004

On Monday night, folks who were in town for the partner conference came out to dinner with some locals. As always when RDs gather, I learned some things and laughed a lot. Here are a few snaps:

Craig Flannagan, MSDN Guy and RD-looker-after in Canada is in the foreground. Then we have Scott Howlett of Toronto, and hiding behind a HUGE bottle of wine is Thomas Lee from the UK.

Here we have Patrick Hynds of New England, Ryan Storgaard who lives in either Calgary or Vancouver (it's complicated,) and Patrick's boss Bruce.

And at this end of the table it's Adam Gallant, my local DE and buddy, Jonathan Zuck of the Association for Competitive Technology, and Patrick again, who managed to have his eyes closed in both pictures.

Thanks everyone for joining us, it was a great evening!


Wednesday, July 14, 2004 9:16:43 AM (Eastern Daylight Time, UTC-04:00)  #    
# Thursday, July 08, 2004

Here's a strange thing that happened yesterday. An ASP.NET app, written in VB.NET, was only intermittently dealing with its events, such as button clicks. At first it seemed to be that the event was handled if we were debugging, and not handled if we were not. But that turned out not to be the case.

Whenever you're faced with weirdness -- and let's face it, an event that sometimes is handled and sometimes is skipped counts as weirdness -- the knowledge base is your friend. A team member found 314965, which is a C# version of the problem. Although no-one could find a VB KB article, these are our symptoms, and more importantly this fix was a fix.


A control event on a Microsoft Visual C# .NET Web application form may not fire. The event does not fire if you wire the control event imperatively, that is, if you double-click the event from the Events view and then add the code.


Add the event to the HTML code behind the form, that is, wire the control event declaratively.
“Wire the control event declaratively” means put an onxxx= attribute in the HTML:
<asp:Button id="Button1" runat="server" oninit="Button1_Init" Text="Button1"></asp:Button>
Instead of oninit you might have onclick or whatever event you have an issue with. Also, make your handler function public rather than private.
Moral of the story: there are two. First, it isn't always you. I can't tell you how many emails I've received telling me “there must be a bug in Microsoft's C++ optimizer, because my debug builds work beautifully but my release builds blow up.” Experienced C++ programmers mutter or shout “memory problem” when we get such emails: you're overwriting something or leaking or just generally not handling memory well; debug and release builds have huge differences in allocation, initialization, and other memory work when you're using unmanaged C++. Most of the time, it's you. But every once in a while, it's not you. And a quick search through the knowledge base is one way to see if it's you or not. Second, just because you're writing in VB doesn't mean that C# KB articles don't apply to you. Never be a language snob.
ps: of course I program in VB sometimes. What else would I use to create ASP.NET apps?
Thursday, July 08, 2004 9:48:33 AM (Eastern Daylight Time, UTC-04:00)  #