Wednesday, June 20, 2007

Lenovo Battery Recall

My new laptop's battery is part of the Lenovo battery recall. You know, because they spontaneously catch on fire and stuff.

I went through the process of submitting my shipping information, and received the following confirmation:

Thank you for placing your order for a replacement battery. We have received your order and will ship your replacement as soon as supply is available. Please allow up to 4 weeks for your replacement battery to arrive.

Boy, I'm glad that they're rushing it to me! I hope this one doesn't flame up in the next 4 weeks.

UPDATE/FYI/ETC: The details about the recall, which was issued months ago (as a reader pointed out), can be found here:

Tuesday, June 19, 2007

UAC Deactivated

I'm sorry Microsoft. I had to do it. I just joined the growing ranks of developers out there who deactivated UAC on Vista.

I gave it a try. I really did! I didn't even mind answering all of the "Are you sure?" prompts whenever I tried to do anything (it's really not as bad as what that "Hi, I'm a PC... and I'm a Mac" commercial makes it out to be).

The final straw for me was the inability to work with files on my hard drive unless they were in certain directories (folders). For whatever reason, when I copied my "C:\Dev" directory structure from a backup onto my hard drive, I couldn't edit any of the files. As a developer, this is a pretty bad thing to have happen.

Even a simple change to an XML file using Notepad would not overwrite the existing file. I tinkered around for 30 minutes trying to get this one task to work, playing with things like changing the NTFS owner of the file and directory tree. No luck.

Alas, the need for productivity superceded the security benefits. Deactivating UAC allowed me to overwrite files in my source directory.

And now, back to work!

Monday, June 18, 2007

Making SQL Server Management Server work on Windows Vista

Under Windows XP, I could define a "Stored User Name and Password" that would use a domain wildcard. That is, I could say "DOMAINX\*" and then the provided user/password would work for any computer that was a member of DOMAINX.

Note: The "Stored User Name and Password" interface is available from the User Accounts control panel, select a user (under XP; the current user is auto selected under Vista), and then click "Manage my Network Passwords" on the left.

This feature was particularly useful to me, as a consultant with a laptop that is not part of my client's domain. I log onto the laptop as a local user, yet I had the ability to seamlessly access any domain resource without being prompted for credentials. This mechanism also allowed me to override individual servers, just in case I needed to use a different user/password for specific situations.

It seems that Vista, either by design or due to a bug, does not allow this concept of domain wildcarding - at least in respect to NetBIOS or LM or any related technology. This particularly crippled me in that I could not connect to any of the SQL Servers at this location using SQL Management Studio.

Using a network packet sniffer (Ethereal), I could see that the SQL Server was challenging my client for domain credentials, but my client would reply with local credentials instead. The end result:

Login failed for user '(null)'. Not associated with a trusted SQL Server connection (18452).

I sent a few emails off to a few Microsoft folks that I knew, and then began to play around while waiting for any sort of response.

The first signs of success started when I mapped a network drive to any fileshare on the domain, just to kick-off a domain-specific connection. Then, I created one password rule per SQL Server that I wanted to connect to, and finally forced the SSMS connection to use Named Pipes. Cumbersome, but it seemed to work (albeit, a little flaky on boot-up, because the mapped drive would not automatically reconnect for some reason, requiring me to remap it before things started to work).

I then stepped back, and remembered the "RunAs" command. By creating a new shortcut to SQL Server Management Studio using my network credentials, I am able to consistantly force SSMS to authenticate with the SQL Servers using my domain user every time, including over TCP/IP (instead of Named Pipes).

The shortcut runs the following (all one command, broken up for readability):

C:\Windows\System32\runas.exe /netonly /user:domainx\myusername
"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\VSShell\Common7\IDE\SqlWb.exe"

This is the workaround that I'll be using until MS fixes the "Stored User Names and Passwords" feature (or explains why the Vista behavior is different than the XP behavior as far as domain wildcards go).

Thursday, June 07, 2007

Wrapping up Tech Ed

While the conference is not yet over, the energy level is certainly winding down. Today is the last day of the Expo, so I have been making my rounds to say goodbye to all of the people who I have worked with in previous sponsorships (for CodeMash and Day of .NET in Ann Arbor).

One vendor (AvePoint) totally missed an opportunity that they had. Today, they raffled off a Ducati motorcycle, so at the time of the drawing, 1-2 Thousand people congregated in the aisle around their booth. This crowd assembled a full 15 minutes before the drawing, and were simply standing there with nothing to do (I was in that crowd, btw). AvePoint had the PERFECT opportunity to give a quick sales presentation to a very captive audience, but they did nothing of the sorts. Next year, perhaps? (And bring some amplification to the event, plskthx).

One of my favorite vendors, Red Gate Software, gave me a demo of upcoming changes to their SQL Compare tool. What's exciting for me is that SQL Compare will now include the ability to use scripts as source or destination schema. So, you can reverse engineer your development database and generate individual SQL script files for each object in the schema. Or, you can start with individual scripts (i.e., one per table or proc, etc) and push changes to the database. The greatest utility of this that I see is the ability to easily capture your database change history into source control (especially with Subversion and TortoiseSVN, which works at the filesystem/Windows Explorer level). Direct SCCM capabilities should come in a future release, they say. :-)

Last night at the influencer party, Javier Lozano (Iowa .NET User Group) and I spoke in depth about what it takes to organize a small-to-midsized conference, like a Day of .NET or a CodeMash. Look for some good things to come out of the Iowa area over the coming year!

All in all, I didn't get a sense of anything big on the horizon. All of the new product releases weren't accompanied with great fanfare, and as a result, I'm just not leaving here as excited as I was last year. Don't get me wrong: there's a lot of cool things coming out, but I think they could have been hyped more than what they are.

Lastly, I leave you with an observation: Microsoft did an outstanding job at marketing Silverlight as a new technology that has never been seen before (my observation). When you peel back the covers, though, it's nothing more than the latest iteration of the Java Applet or ActiveX control paradigm. If you start thinking of Silverlight in this way, instead of a totally new whizbang all-containing platform, then I think you'll be more successful in implementing the technology in your solutions.

I cannot wait to get back home so that I can [finally] install Visual Studio 2008 ("Orcas") and SQL Server 2008 ("Katmai") and begin to work with the new things that I've seen here.

(Attendee party tonight! See you there!)

Wednesday, June 06, 2007

Sky Diving.... Indoors?

Jason Flying

This evening, I was invited to the Central Region's gathering at an indoor skydiving place (thanks Drew and Josh). This is a huge vertical wind tunnel that you actually "fly" in, due mostly in part to the 120+ MPH wind that is generated right under you.

Our time per flight was about 90 seconds. According to the instructor, a normal freefall from an airplane (before you deploy your chute) is about 60 seconds.

Dustin Campbell was also in the same group that was in the airlock at the same time, so I have his pictures on the DVD's that were provided to us as a keepsake:

Dustin Flying

Tuesday, June 05, 2007

Tech Ed: Day 1 Wrap Up/Day 2

For me, one of the bigger product announcements this year is SQL Server 2009 (Katmai). I'm trying to take in as much content as I can, because I definitely see some of my trademark presentations being changed to account for new functionality.

For instance, and I've been thinking a lot about this over the past few months, but just haven't articulated it:

SQL Server is evolving into much more than just a transactional data system. It's becoming its own data platform. Not every database has to be highly tuned to support millions of transactions per second, and as a result, you can begin to move more of the data processing locally (by means of SQLCLR, or by taking advantage of XML processing on the server, etc). By doing so, you eliminate the need to transfer data across the wire before starting to take action upon it, which is a good thing in my book. YMMV, depending on your particular situation.

In session yesterday, they made a point that the cost of storage is quickly approaching zero, which means that we're going to have more storage than we'll ever be able to use. Suddenly, you don't need to have all of the questions that you'll be asking about your data before you store it.

For instance, let's say that you acquire a piece of data in XML format. You have several tables defined in the system, and shred the XML in order to extract the data that you need. But, you also discover that the XML has more data than you're using (more information than the tables are set up to hold). Just because you don't have a use for that extra information today doesn't mean that you have to throw it away. Go ahead and shred it to populate your tables, but then keep a copy of the XML intact. If you need to later query all of the XML for data that you never thought you would need, you have it (and SQL Server makes it easy to do so).

SQL Server 2008 will also come with support for "Policies". Like the same concept in Windows, etc, a Policy is just a rule that is executed at runtime (query time). Let's say that you don't want anyone to create tables in the "DBO" schema. Just create a policy, and the server will enforce it for you. (That's great, and all, but I'm not really a DBA, so I'm hoping that there's utility for this functionality beyond that).

Also, SQL Server 2008 comes with built-in support for spacial geometry. Do you have two geocodes and want to know how far apart they are? No problem! Find all stores within 50 miles of your customer location? Just put it in the WHERE clause. Have a complex polygon, maybe with "holes" or "rings" in it, and need to know if a point is within the polygon? Supposedly, it's a breeze with Katmai.

Last, there's "UPSERT" support. This is the ability to either perform an INSERT or an UPDATE on a table, depending on whether the data already exists or not. UPSERT is actually implemented using the MERGE statement, as in the following simple example (provided to me by Christian Kleinerman, Group Program Manager for Microsoft SQL Server):

MERGE dest_table
USING src_table ON (src_table.keycol = dest_table.keycol)
UPDATE SET dest_table.datacolumn = src_table.datacolumn
INSERT VALUES (src_table.keycol, src_table.datacolumn)

Disclaimer: These were handwritten notes, and I haven't tested on a Katmai installation yet to ensure that I transcribed his example verbatim

Today, I sat in a pretty cool session led by Karen Liu (that's Dr. Karen Liu, Ph.D, btw, who likes Raytracing, so she's got to be cool in my book!) of the Visual C# IDE Team where she demonstrated some useful features in the new IDE. My take on it: There's nothing that I saw that CodeRush and Refactor! can't do. You'll definitely be happier if you bought the Developer Express product to supplement the out-of-the-box experience that OrcasVisual Studio 2008 provides.

That's it for now... Don't expect any more entries this week (so you'll be pleasantly surprised when I do in fact write one).

Monday, June 04, 2007

TechEd: 64-bit Question Game Show

I had forgotten all about this until I walked past the "Virtual Tech Ed" glass booth this afternoon: Carl and Richard will be hosting a "64-bit Question" game show at 6PM this evening (during the Expo party).

BTW: Carl is sitting inside of that glass room at the moment with his flashing laptop, looking out at people passing by. It somewhat reminded me of an exhibit at a natural history museum. ;-)

Tech Ed: Day 1

This morning's keynote was... just okay. As is typical with Microsoft keynotes, there was a Hollywood theme to the presentation that kept introducing itself, and this year's theme was Back to the Future. They actually had the Delorian and "Doc" (Christopher Lloyd) there on stage with Bob... That was the highlight of the morning, IMHO. If you slept through the keynote, just watch the beginning of it online, and you'll be caught up. ;-)

This morning, I've been walking around the convention center to get a handle on how things are layed out. I stopped by the INETA booth and talked with Chris (Pels) and Nancy for a little while, and then Nancy introduced me to Kate Gregory (super nice lady from east of Toronto).

The wi-fi here seems to be a bit spotty, not so much the signal strength, but just getting an address. I'm forced to compose this blog post from one of the CommNet terminals.

On to lunch and then a tour of the Expo hall...

Sunday, June 03, 2007

Tech Ed Orlando: Day 0

I'm in beautiful Orlando, staying at the Hilton in the Walt Disney World Resort. This hotel is on the conference shuttle route, and Keith Elder is also here with his wife Ellen.

Getting to this point wasn't without incident, though. First off, since my employer paid for the flight, I had to make reservations with the company's travel agency. Despite my desire to fly Delta TOL-ATL-MCO, they wanted me to take Northwest TOL-DTW-MCO. That flight was actually cheaper with the connection, if you can believe it, than if I drove to DTW and just took the second leg flight by itself... So, I agreed.

Well, I showed up at the airport bright and early (well, not so much bright, since the SUN WASN'T UP YET!!!), and find that the first leg had been cancelled. Luckily, Northwest had already booked me onto a Continental flight. TOL-CLE-MCO. When I check in at the Continental desk, I learn that the flight is oversold. I'm instructed to wait on the side with other people who were in the same situation. 60 minutes left until that flight leaves...

The first two of those folks were bumped to Delta. Yep, they got to fly my desired TOL-ATL-MCO route. I chuckled to myself, thinking that I would get my way after all. Then it was my turn to check in, and as luck would have it, the flight was no longer oversold, so I was forced to take the Continental route... :(

Going through security, I was told to step into a special line. Then some big TSA guy walks towards me, pulling on a pair of rubber gloves! Despite all of the horror stories that I had heard about cavity searching and whatnot, he only patted me down while another agent went through my carry-on belongings.

I made it onto the small turboprop commuter plane (16 seater?) which flew me to Cleveland, passing by Cedar Point on the way, and flying low over Jacob's Field on our final approach. I actually like these low-and-slow flights, especially when I have a window seat (on this bird, all seats were window seats).

Then the flight to Orlando: You know, the home of Disney World. Parents take their kids to Disney World, and a "kid" can mean a pleasant 8-year old just as much as it can mean a screaming 1-year old. Well, on this 737-800, there were 1-year olds all around me, and not a one wanted to sit still or be quiet. That made for an relaxing 2-hour flight (I'm using a little thing that we call "sarcasm" here).

Oh, did I mention that before the flight even began, we were stuck at the gate with the doors closed because the sorting room had lost 8 bags for my flight... Did I also mention that this was a 45-minute delay waiting for those bags? I didn't? Hmmmm...

I arrived at MCO about 45 minutes late (go figure), and headed down to the car rental counter. There I stood in a line for an hour! But, when I did finally make it to the counter, I learned that my "intermediate" car that the travel agency booked turned out to be this cool charcoal-colored Mustang! Wowsers! Not a convertible, though...

I've done a bit of exploring around the area of the hotel, as I tend to do in all new cities. Since Tina isn't here with me, I don't have to worry about getting lost. I'm impressed by the different plant and wildlife here, especially the little lizards and spanish moss growing on trees. Also, the grass here isn't the fescue that I'm used to at home, which I thought was interesting.

Here at the Hilton, there are regular bus stops to take you to the various Disney parks in the area. I thought that it would only be natural for the Tech Ed shuttle to also stop at that entrance. So, I waited on a bench for about 45 minutes. After three Disney shuttles came and went, I gave up and asked the hotel. It seems that there's a "Convention Entrance" where the Tech Ed busses stop. Glancing at my bus schedule that the front desk gave me, I do see handwriting that says "Microsoft Transportation Convention Entrance".... Oh, so THAT'S what that means... :-/

Registration at the venue was extremely easy, thanks to a large number of staffers. Get in line, approach a staffer, provide your ID, they print a badge, and then you walk down to the "Materials" section to pick up your laptop bag (a convertible backpack/man purse concept, it appears) stuffed with marketing slicks and whatnot.

That was enough excitement for me, so I returned to the hotel to compose this blog post and then work on loading software onto my newly paved laptop. Party with Palermo tonight!