Note to my boss: This is meant to be a factual article on my trip to the Microsoft Asia Pacific Developer’s Conference. Where there is a difference between my reimbursement claims and this article, this article is playing fast and loose with the truth and my claims are completely factual, including the cognac bill.
Day One (I’m no steenking C programmer)
I got up, after barely getting to sleep. Being a habitué of the night has the downside of being mean and ugly when a red eye special is necessary to get some where. I got a lift with my dad to the airport at the ungodly hour of 4.45 am. Usually, I get a cab when travelling to and from the airport but my Dad was working as it’s not that far from the Ansett maintenance base where Dad works to the airport terminal.
The one benefit of being up at that hour, as early risers and system administrators know, is the beautiful sunrises that often accompany bitterly cold mornings. It wasn’t too bad, but it was certainly a cold Monday morning in Melbourne. I got on the plane after picking my ticket up from the counter with all my stuff in a carry on bag. So did everyone else. The plane’s hold must have been empty.
Little did I know it but I was seated in zoo class with one of the presenters, Mark Hammond from Skippynet. Both of us being experienced travelers, we didn’t geek out, but instead looked bored when the attendants ran through the safety video. I’m really glad that no one else bothered to watch either, so that in the case of a real emergency, it’ll be the blind (through osmosis of ignoring the flight attendants over the coarse of a few hundred flights) leading the blind.
I pack lightly on a meal flight. I had my trusty EMF source to screw the flight systems (my CD player) in case I wanted to be lead by the blind in an early morning romp through a nearby hillside. I love airline food. There I’ve said it. I’ll eat anything but caviar and asparagus, but airline food is fabulous in Australia. I gobbled down what is most likely to have been scrambled eggs, bacon (probably), and tomatoes (it was red). I think the grey fat coated shiny thing was a sausage that would have done Cut Me Own Throat Dibbler proud, but was yummy anyway. Of course, the orange juice in those tiny foil covered cups is designed to coat you in orange juice when turbulence hits. The conspiracy theorist would say they have it designed into the auto pilot way points … 55 kms north, jiggle up and down, turn 25 degrees right, jiggle some more and fly for 80 kms… I was well on to my second cup of coffee when I got splashed. Those who know me know that this is not unusual in of itself. At least I had a decent excuse instead of “oh, I missed when I was quaffing the coffee”.
After landing, I queued jumped the taxi line by accident. I found an empty one that was leaving and I jumped in whilst he was in traffic. Cabbies never say no to a well dressed fare, so only when I realized that it was really easy getting a cab I asked if it was busy, and he told me that he was going to join the cab queue when I jumped in. Oh well. Saved me about 10 minutes.
Got to my hotel to find that I was screwed. The travel agents had made a booking but the hotel wanted a credit card imprint to let me in the room. After spending about 30 minutes leaving voicemail for my boss to fax his authorization through, I was really pissed off, so I let them make an imprint of my Visa card. I really wanted to dump my stuff, but even after that, I couldn’t get into the room until after lunchtime. Lesson 1: come the day before after 4 PM, and you don’t have accommodation worries.
After having a good coffee in the hotel’s cafe, I descended on the local McDonald’s across the street and had breakfast number two while I waited for the doors to open. In the end, I ended up having an argument with an Asian developer about the impending doom of Apple while we drank the crap coffee. The doors finally opened at 10 am for registration, a full three hours after I got there. As it turns out, I could have slept in and got some badly needed beauty sleep.
It was chaos up on the second floor – they were not ready for us and worst of all, the coffee wasn’t on, and the demo machines weren’t ready. As I have the attention span of a small kitten on three dozen catnip tabs, I was bored. I had run out juice on my CD player, the Asian dude (he was from Singapore) wouldn’t believe that Apple would still be around next year, and I didn’t know anyone. Eventually, we were allowed to register and get our show bags. To keep us around, Microsoft weren’t going to give us the CDs of NT 5.0 and so on until the last day. Good move. There were some mighty boring sessions. The show bags came with a BFB (Big Fat Book™) on Visual Basic, and I bought a BFB on Visual C++ 5.0 because I was a little lost in that huge IDE. Both books have helped me since.
I was starting to feel a little tired despite the large quantity of oxygenated caffeine in my blood stream. I went to Mark’s session on Preparing your application for VBA Hosting, which was very interesting, and a good introduction to the technical tone of the conference. If you spend a little bit of time exposing your app to COM or COM+ (basically extend your object model to external applications), with a little bit of work, you can use the VBA DLL’s as your app’s scripting language. This allows even dumb users to use the VBA macro recorder to script your app. Even better, you can use VBA to write significant portions of your application (such as Wizards, etc) extraordinarily quickly. Users can then use a language that they know to extend your application in ways you haven’t yet thought of, especially if you allow your application to embed objects (an OLE container or server). Mark demonstrated this to us, and it is very nifty. The licensing terms for the VBA DLL’s are generous considering that this is Microsoft we’re talking about.
Next, I went to the first session on Windows CE Technical Overview. Windows CE is pretty cute, but let me tell you, the Libretto 70CT I typed part of this document on runs Office 97 and Linux, whereas CE will never run these two. But CE will be successful despite the lack of technical excellence. We learnt that Microsoft re-implemented Win32 in a light form, one that can run in as little as 128 KB of RAM. Why don’t they shove that under Windows 95’s hood? Because it can’t run diddly squat in 128 KB of RAM besides maybe a toaster. And most toasters are quite comfortably programmed into a less than 400 gate FPGA for much less cost than WinCE and 128 KB of RAM.
The CE hand held devices that we know need around 2 MB to run, and more to stash your stuff. CE’s goal is to be everywhere in the embedded and consumer market. Maybe they’ll succeed in the high end hand held market, but I doubt that the embedded market are going to fall for a Win95 look a like when they still have very cheap small footprint embedded processors. Currently, WinCE is available on four platforms, x86 (emulator), two variants of a Hitachi Super-H, and I believe a Motorola 68k embedded processor. Windows CE is being ported to a much faster Super-H, the baby PowerPC’s and the Strong ARM. Both of the latter will give an average Pentium a good run for their money in terms of performance, and in the Strong ARM’s case, the MIPS per watt of power consumed is phenomenal. No wonder Apple has been using it in the Newton all these years.
Being a foodie, I live for food. Lunch was a disappointment because it was little finger food items. I felt like popping downstairs for a McFeast. I had lots of orange juice just in case it ran out.
After lunch was the keynote speaker, Moshie Dunie, the VP of Microsoft. Moshie had one and a half hours to kill, and I was bored pretty much straight away. He has a funny accent, but that’s okay. I waded through the morass of marketing until the marketing turned into geek ambrosia. They demonstrated the new NetPC’s and Scott wosshisname from Sun should be scared. From a system administration perspective, NetPC’s are better than sex. Well, better than #hottub. They showed a NetPC booted and logged in, and the performance was okay (perfectly acceptable for lusers from a BOFH perspective). Then they pulled the plug, and they got another NetPC from the audience (hah! As if they are just lying around), plugged it in, and turned it on. Four minutes later, it had remote booted (and cached) NT 5.0 to the log on screen. Less than 20 seconds later, they had logged in, and were double clicking a document on the desktop they had placed there less than a few minutes before pulling the plug on the previous NetPC. I love these beasties, and I can’t wait to deploy them, as it will reduce our workload when replacing a PC by around a day. The users can’t dick with them, and they don’t have any user serviceable parts. Then they demonstrated Hydra. Hydra is Microsoft’s multi user version of NT they bought back from an outside developer (Citrix). True to form, they made a new protocol to communicate with the clients based around H.320 (more particularly, NetMeeting). But they booted an old clunker from DOS and less than 10 seconds later it was like it was running NT 5.0 as if it were a Pentium Pro (which the server was). Hydra will have automatic load balancing, and some fault tolerance. If a server carks it, the users just have to reconnect to the application cluster and they can resume from the last save. The message to developers was to learn how to be good network citizens again, and use the Class store to stash registry items. This automatically allows clients to work with Active Directory and means that truly diskless workstations will again be possible. Microsoft asked us to follow the rules, and then promised us that they would follow the rules with their own software like Office. Maybe pigs will fly before this will happen, but you never know.
They demonstrated the power of Active Directory Services, and some nifty tractor applications, like a Web based organization chart, which was pulling all the data from the ADS. The ADS will lock ISV’s into Microsoft’s platform, but it will make corporate life so much easier than it is today. Imagine NDS, but able to store much much more, with two way LDAP exposure, and Kerberos authentication. ADS allows administrators to install applications against the directory, and as long as the applications expose COM+ objects and use proper registration methods, they will be self installing and self healing. No longer will users have to put up with dialogs asking what application can open a file with extension such and such. If the association is available by installing an application from the ADS in your container, and the user has permission to install it, it will be installed automatically the way you as the system administrator likes it, and the user’s object or file opened. If you write your application properly, this even works for objects, and will install only those portions needed for the object. In other words, this is System Administration nirvana.
Then after a small break, I attended the Component Services session. I fell asleep many times and from the number of hard kicks I got I must have snored pretty loudly. It’s a bit embarrassing because I was in the front row and Tracey Trewin, the presenter knew her stuff. I was major pumpkin from the night before that had never been, so I needed sleep desperately. From the stuff when I was awake, COM+ will become the premiere distributed remote procedure call by dint of all those visual basic programmers out there alone. There are many, many benefits to using COM+, and the least of them is that your app is fairly easily scriptable in VBScript. If your app needs to be scriptable, you owe it to yourself to check out COM+. All you have to do is establish your object model in COM, and you can do really neat things with the object properties, include write those wizards in VB in no time flat to give your product that shiny Win32 feel.
After copious quantities of orange juice during the break, I went to the ZAW Architecture and Desktop Management session. If you’re a system administrator, you owe it to yourself to check out NT 5.0’s ZAW capabilities. Imagine never having to touch client workstations again! It’s not quite zero, like the name implies, but it’s a lot closer than it is now. To make full use of ZAW, applications will have to be 95/NT aware, in that they don’t mind being run without a properly configured local registry (i.e. they can restore or create a non-existent HKLM key for themselves), and they use HKCU for the user’s settings. If they use the class store, they get the Active Directory for free, and with a little more work, you can be NT 5.0 friendly – and as a bonus, you get the Designed for NT 5.0 logo. The main benefit from the system administrator’s point of view, is that NT 5.0 logo’d programs will self install, self heal, and generally be much better network citizens than before. With some NetPC’s even missing a hard drive (something that WestPac forced on Microsoft – blame WestPac for that), and most NT 5.0 workstations in a corporate environment having no local hard drive storage, most applications will need to be aware of where exactly they can stash stuff.
After the last session for the day, I went to my hotel room, finally dumped my stuff and freshened up. Then, I returned for the food. Naturally, I was happy that it was a buffet, but I was a little disappointed with the lack of tables. It made it pretty hard to eat. However, being the trouper I am, I managed. I even went as far as two Magnum ice creams. I talked to many of the developers and caught up with the presenter who I had caught the plane with. I talked to some of the Microsoft developers about what it’s like to work for Microsoft. They seemed to like it, but I don’t think it is for me. As some wit has previously said, Microsoft employees enjoy working only half the day – and they get to pick which twelve hours that half is.
Being absolutely buggered, I went back to my hotel room early, but since I was now in my normal waking hours, I had that disconcerting jet lag that comes from being up too early in your own time zone. So I watched TV and read until 1 AM. Raiding the feeble pleasures of the minibar (why they call these stupid little fridges a minibar I will never know) was always going to be part of the game plan.
Day Two (the good stuff approaches)
Awaking unnaturally early again at 6.30 am without the help of the two alarm clocks I had brought, I went and had McDonald’s for breakfast. Egg McMuffins are the best thing to wake up to, unless you are a vegetarian like I am again (this week).
The first session was Networking and Distributed Services in Windows NT 5.0 – Active Directory. It basically talked about what you need to do to leverage and use the ADS. Applications don’t need to do much really, beyond acknowledge policy keys (yes, well behaved apps heed policies… finally) and use the registry like you were supposed to when Windows NT 3.1 first came out. They talked about smart cards as being an authentication method, but this only marginally ties in with the ADS. Applications that store stuff in the class store get a lot of free rides from ADS, and makes NT 5.0 a very compelling story for any corporate with more than five desktops.
By accident I went to the Class Store Architecture and how to write COM applications to the Class Store session. This session was excellent, but a little dry (there’s no helping for it when you’re discussing COM). The session focused on what the Class store gave applications free of charge, and what ISV’s have to do to leverage it. The major bonus that I found was that the class store allows system administrators to leverage policy much more than they can do today, and apply it to all the computers that participate in that particular Organizational Unit (OU). It also allows you to stash per user data easily, and store per-domain configuration much easier than before in a standardized way. If you use the Class Store, and register a proper Global Unique Identifier (GUID), your application finally does away with the limitations of the three-letter extension for the most part, replacing it with a largish unique identifier.
Sunita Shrivastava ran the next session on Designing Applications to make effective use of Clustering, and unfortunately for her, her audience left gradually (and noisily) throughout the session. I really felt for her, as the topic was dry, and although she was trying to go through the MSCS features, which many will need to use, especially in the dry run phase that exists now (two node fail over, rather than Tandem-tough zero context failure fault tolerance). All her demos didn’t work, and she didn’t enamour the audience when she professed not to know C++, and all her VB demos failed. The “fault tolerant” notepad.exe worked, however, but that required no programming. She really needed to dry run her demos in future, and maybe take a public speaking course to improve her confidence in the face of a bored and hostile audience. In the end, about ten of us interested developers were left, out of an initial audience of close to eighty.
The best session in the entire conference in my opinion was the Universal Data Access session. This was a broad introduction to Active Data Objects. Why would data vendors be interested in ADO? The main reason is that ADO finally fixes the main problems with ODBC, and all the descendants that were put out to allow Microsoft applications easy access to your data. The really cool thing is that you can do SQL joins on disparate data very easily, including flat text files. I’m looking at doing an ADO data provider for our PICK system, which will mean that we can finally get the data out and put in a decent robust intermediate solution whilst our mainframe PICK system takes it’s last few wheezing breaths towards extinction. And not a day too soon. PICK is first against the wall when the revolution comes, and it’s coming very fast at your nearest health care outlet. ADO is a powerful new tool, and one that promises and delivers much to the average corporate whose data is stuck in proprietary systems.
After that, there was one more session, on Internet Client Services, which was trying to get you to write your applications to be IE 4.0 dependant, which isn’t in our game plan. So I took a Microsoft MCSE Windows NT Workstation exam at Sylvan Prometric’s stand. I had talked myself into it since they were only half price at $67.50. I felt that even though I hadn’t studied, I had a good chance at passing, which I did. Feeling pretty confident with my skill set, I took the core NT Server exam the next day, and passed that too (again with no study). I was feeling good, and the exams were cheap, so I took the NT Server Enterprise exam. To my surprise, I passed that too. This saved about $205 and several weeks’ worth of study. Normally, it’s moderately hard to pass these exams, so I got a big head, which is good, as I am a complete and total legend. As you can tell, I’m modest too. In actual fact, knowledge of the product is far more important than studying a text; paper MCSE’s are not yet common (although it is possible), unlike the derided CNE which can be passed by study alone.
That night’s dinner was to be held at the Sega World video arcade in Darling Harbor. I’m sorry, but in my personal opinion, Sega World is crap. It had few redeeming features, and it was good that there was plenty of PC’s to play with and lots of free booze. There was finger food again, which made me desire a quick trip to McDonald’s to fill up on before I got really pissed. Luckily enough, I got really pissed and spent a good part of the evening not noticing the lack of food and thinking how good these Sega Mega drive based games really are. NOT! They threw us all out at 11 PM, which sort of annoyed me, not because I wanted to stay, but because the booze hadn’t run out yet. I joined some New Zealanders who took me back to their hotel. We sat in the bar, getting sozzled on our various poisons (I had a triple Cointreau on ice – it was their room service tab, not mine). We had a brush with fame with an ABC broadcaster who I tried to engage in conversation. Unfortunately, he was into classical music (funnily enough he is on ABC FM out of Adelaide on Thursday evenings and does the occasional Sunday night special, and no he’s not Christopher Lawrence). Simon someone. Aw god. Anyway, after figuring out that we really didn’t have much in common (what does one cultured ABC presenter have to do with four drunken NZ yobbo developers and one half sozzled Australian? Not much. He uses Windows 95 at home, but that’s about it). We left Simon to his own devices and the rest of us went upstairs to one of the dude’s bedrooms, and we made whoopee with his room service bill and the porno channel. We all chucked in two bucks to watch some crap American soft porn and we thought it was good because we were pissed. At around 2 AM, I retired to my hotel. The joy of the junket…
Day Three (the end is in sight)
9 AM start? Who are they kidding? I had a slow long room service breakfast and made it to the Developing for the WinCE session on time. I was one of the very few. I don’t recall much of that session, but it must have been okay, because I have notes with questions I asked Sharad Mathur, the development manager for WinCE. The main point was the tool chain and how to actually develop for WinCE. The main tool was VC++ cross compilers, and it did work. The best way to debug was to develop for the emulator; on most developer PC’s the emulator will be considerably faster than an actual WinCE device. And you get color.
Building Component Applications with Tracey Trewin was as dull as her first session. I slept at the back this time, and no one bothered to kick me. For those of you who are developing component based software, this is a very important topic, but I’m sure you already knew this. The main thrust of this session was using DCOM to get distributed component services for pretty much the same price as not using DCOM at all. The slides I have are very compelling, but I don’t recall much of this session.
To allow me to pass a couple of exams, I skipped the Exchange Introduction to Collaboration Data Objects, as we are very unlikely to develop this class of Exchange infrastructure in house.
At the tea break, they finally gave us our CD packs. The conference was $795, and for that, you got three days worth of seminars from some of Microsoft’s finest developers, and the best bit was 14 CD’s which included lots of beta test bunny software, like Windows 98 beta 1, Windows NT 5.0 beta 1, and so on.
Martin Duursma from Citrix Systems Australia presented the last session, The Microsoft Hydra Server. It was a very cool session. For those of you who like multi user boxes, Hydra turns NT into one of these as well. The bonus from following the rules about the Class store and ADS is that you pretty much get Hydra compatibility for free and corporates all over the world will love you. Of course, being from Citrix, he spent a good portion of the session explaining why you should buy Picasso, Citrix’s Hydra implementation rather than Microsoft’s. The same rules apply for devlopers, however, whether you target Picasso or Hydra. The main one is to use HKCU for user specific data. The best bit was when they got an old DOS clunker to log into an NT 5.0 Server. Very cool.
As he was doing the credits slide, there was a general exodus to the exits until they mentioned the prizes. Since I had passed three exams, I won a prize. Some f#^$er did four (why he attended the conference I don’t know) and he got a Windows CE hand held. I got Microsoft Golf. Ripped off. J
Then we made for the exits. I jumped in the first cab to the airport and then waited there for about an hour because there was a problem with the plane. I finally got home about 9.30 PM, made peace with my guard kitten (she hadn’t seen me since Sunday) and slept like a baby for ages and ages.