« April 2005 | Main | June 2005 »

May 31, 2005

Help Your Neighbor Stay Safe (and off your DSL)

(Originally Posted in the spring of 2005)
While at the Developer Connections conference I talked with Dan Appleman as I’m a fan of his book written for (and partially by) teens: “Always Use Protection: A Teen’s Guide to Safe Computing”. It’s a great resource for those of us that have neighbors, friends, family and in-laws that are trying to setup networks in their homes and ask us for support.

This is a book about computer security and privacy, written especially for amateurs trying taking advantage of all the Internet has to offer. It goes beyond the "beware the dangers of chat room" warnings you're already aware of and tells you not only how to protect your computer form the latest invasions of viruses, worms, and Trojans, but also how to fight back and actually do something about them. It also shows how to set a wireless WEP key and MAC filtering as well as other not-so-intuitive ways to protect data.

Take a look or get your neighbors to read it—perhaps they won’t call at 9:30 at night to come over and get their new laptop to see the wireless net. Of course, you could tell them to simply log on to their neighbor’s wireless access point—I'm sure there are several visible unsecured networks out there…

Motorola Woes and the MPX220

(Originally posted 3/31/2005)

Anyone who knows me knows that I don’t appreciate poor customer support. Since I work with many high-tech toys and tools, I’m constantly running up against really good, really bad and really average customer service. A few weeks ago I wrote an editorial about my Buffalo WAP and how well they treat their customers. This week I wrote about the Hyatt in Orlando whose service is about as good as it gets. However, in the last month I’ve spent countless hours trying to get Motorola to give me a straight answer about my MPX220 phone and the 98500 Bluetooth car kit. One of the reasons I spent the extra money for the MPX220 is Bluetooth.

Since I could not convince my spouse (or myself) that it makes sense to buy a new Bluetooth-equipped car, I decided to research the Motorola site for a compatible bluetooth hands-free kit. I settled on the 98500 as their site said it was designed for the phone. I bought it from a company on the Internet that gave me a good deal. Motorola thinks this was my first mistake—I should have bought it from them. I found a local (well-respected) shop to install it and they (Magnolia) did a great job on a busy morning. When I fired up the device, it would pair and I could make/receive calls over the remote speaker and microphone. Unfortunately, I could not “train” the device with the phone as stated in the instructions. After repeated attempts I found that the MPX220 would not interface with the device. My daughter Fred’s phone worked fine, but the MPX220 would not. After two long calls to Motorola, they insisted that the two devices would “certainly” work together. No, the person on the phone didn’t say that—they had to ask their “supervisor” each question I asked while I waited 10, 20 or 30 minutes on hold. I guess they figured I would give up. I didn’t. They suggested that I return the phone. After another week of waiting, I got a new phone and tried again. No change. I got back on the phone with Motorola and they still insisted that the phone and the device would work as advertised. I was told by a supervisor that they would research the problem and call me back. She didn’t. I called back a week later and talked to another supervisor who said she would take up the matter personally—she didn’t. I waited two more days and called again and was transferred around until I had spoken to half their staff. After several escallations I was finally connected to someone that said that the phone does not support the Bluetooth car kit after all—despite what their web sit says. While the phone supports voice dialing, it does not do so over Bluetooth. They said that they think that’s why the phone won’t work with the Bluetooth car kit. They also said they’re changing the web site. They haven’t so far. I guess I need to file a suit to get their attention.

Oh, I also asked for help over their Internet site. What a joke. They have an automated response system that scans your message for keywords. It sends you a list of web sites that have information about these items while promising to get back to you with a response in “two business days”. It’s been a month with no response. I guess they don’t care about their customers—like too many high-tech companies.

If I were you, I would think twice before buying another Motorola anything. They don’t know how their own equipment works with their own accessories, their staff is poorly trained and they don’t meet their commitments to service. The MPS220 phone is not that hot either. It’s average—just average. The MPX220’s camera is poor, the sound is poor and the phone itself is rude. When you shut it down (as when you want to avoid making noise in church), it plays an obnoxious tune. If I wasn’t contemplating a SQL CE book, I would have bought a phone that actually works as advertised.

May 27, 2005

SQL Express Edition: Isolating Users From Themselves

May 27, 2005 • Vol.27 Issue 21
Page(s) 22 in print issue

As promised, I want to talk about a rather interesting concept that Microsoft’s SQL Server team is introducing. Although this approach might never see the light of day (we still don’t have a firm ship date for SQL Server 2005), it needs to be addressed before it is cast in concreteif it’s not too late already.

Let’s lay some groundwork first. SQL Server Express Edition (SSEE) is to be the free version of SQL Server 2005. You can download it from the MSDN subscriber site or pick up a copy in Hong Kong next time you're out that way. When SQL Server 2005 goes live, it will be downloadable from everywhere. (I fully expect it to be stuck to the side of cereal boxes.) It's been totally redesigned: The governor has been pulled, the maximum database size has been doubled, and it includes most of the new features of SQL Server 2005 Workgroup Edition, another new SKU that sits between the Express Edition and the now more expensive Standard Edition. This means all of the T-SQL and CLR features being introduced in SQL Server 2005 will be included in the SSEE edition. This way it can provide a “real” database alternative to the JET engine used (and abused) by Access developers and lightweight client applications.

Creating A Unique DBMS Platform

One of the issues Microsoft had to resolve was getting the engine installed on a system that might have multiple independent users, each of whom might need his own unique copy (instance) of the master and application database. It also needed a way to create a safe platform that would be less vulnerable to attacks from worms and viruses. Installation will always be an issue for Windows applications, as “ordinary” users don’t have rights to install or modify anything. (Just ask my wife who complains about her inability to “fix” her system.) Another problem was to create a system that permitted an application to install (attach) the user database when it was first used, and not have to worry about this again until it came time to uninstall the application. Then the system needs to be able to extricate the installed user database without the use of wire cutters or other destructive means.

Tuning SSEE With The ConnectionString

How is this done? Well, to start with, ADO.NET adds a couple of new keywords to the ConnectionString. The ConnectionString is the set of parameters passed to ADO that tells it how to find and access the target data source, as well as identify the user. It also contains settings for a number of options, including how long to wait for the connection to complete and, in this case, the name of the user database to attach. This keyword (Attach-DBFilename) points to a user .MDF file which contains the preconfigured and prepopulated SQL Server database. When the ADO Open method sees this keyword, it tells SQL Server to attach this file and install it as a new databaseat least the first time. Each subsequent time the application runs, SQL Server determines if this is the same file it attached the first time and simply opens the existing database. When you use the default AutoClose option, SQL Server automatically disconnects from the data file when the last user closes his connection. This permits an uninstall application to delete the file and not disturb SQL Server.

Another ConnectionString option is used to create an entirely separate instance of the server. By specifying “User Instance=True” along with the “AttachDBFilename=”, ADO (and SQL Server) make a copy of the master, model, tempdb, and user databases and write them to the user area on disk. This disk region is not visible to other (nonadministrator) users. The connection open method then fires up this unique instance and provides unrestricted access to the user database. This entirely new approach is hoped to protect both SQL Server’s databases and the user database from other users, as well as provide a way to permit the user to log in as system administrator without worrying that they might cause problems that would impact other users or other databases.

SSEE Can Replace MSDE, Too

Sure, it’s possible to install SSEE and configure it to have a single shared instance or multiple instances, some or all of which can be made visible or invisible to your intranet or to the Internet. By default, all of the switches and settings to make SSEE visible are disabled. You’ll have to jump through several hoops to make SSEE more like its bigger and more expensive cousins. Yes, you can use SSEE as a Web host or in a typical client/server rig and expect it to handle dozens to hundreds of users. But as you can see, SSEE is, at least initially, configured to be a reliable, fast, and foolproof single-user DBMS engine to replace MSDE (its immediate predecessor) and JET. That said, keep in mind that Microsoft is likely working on another lighter DBMS for the Windows client desktop. SQL Server CE comes to mind . . .

May 23, 2005

re: Refactoring

Hi, thanks for the nice comments about Refactor! for VB2005.

We also have a version that supports C#, and VB.NET on VS2002, 2003 and 2005, a handfull of extra refactorings not in the VB2005 edition and an extensibility API for building custom refactorings.

May 13, 2005

re: Haunted Keyboard -- Backspace and Delete key stop working (Whidbey)

Thanks Bill, laughed so hard that I woke up my wife... now I'm in the poop.
That'll teachme to read your blog in bed at 3 in the morning....

Haunted Keyboard -- Backspace and Delete key stop working (Whidbey)

I was just informed of a fix for what I call the “haunted keyboard” bug in Whidbey (April CTP/Beta 2). It occurs after having pinned one of the windows (like the Server/Database Explorer). Sometimes the backspace and delete key (and perhaps others) stop working. The other keys on the keyboard seem to work but you can't remove anything... strange. Anyway, to fix it, (thanks to Bill McCarthy) you need to set focus on the pinned window's tab and press Alt-Enter and set focus back to the editor window. It also helps to stamp your foot (right foot) three times and shout “Begone thou evil spirit! Never darken my backspace key again!

July 2, 2005: I just found this same problem on the June CTP. It's apparently harder to find than they thought...

May 12, 2005

re: The MPX-200 Another Failed Motorola Product

Would you buy a Sony car or a Toyota toothbrush ?

My last phone was a 3G Motorolla A835. I am never buying another. This was the most shocking phone. The UI was poor. The software crashed. The phone was slow. The phone was cheaply built and bulky. You couldn't download mp3s onto it and set them as ring tones, nor download pictures and set them as your background (This might have been the Provider).

In short. If you want a good phone to play with but don't want a chunky PDA phone then get a nokia with symbian OS. I have installed loads of Java apps on it including a gameboy emulator etc..

May 11, 2005

re: SQL Server Express Edition, the Profiler and User Instances

That's an interesting observation. Yes, I supposed that would be an issue, but consider that this feature only works on the Express edition and assumes the "user" would be a traditional Windows user--not an ASP client. It's designed to work with Windows XP etc...

re: SQL Server Express Edition, the Profiler and User Instances

If I had to guess, I would say the "User Instance=True" flag was created specifically for web hosting companies, to allow clients to have there own instance of SQL with virtual no possible way to cross contaminate.

May 10, 2005

re: Refactoring

I looked at this site and I can tell right away that it's going to be very useful. Sure I'd like a license. Thanks for all your help with the BLOG. I'll get back to fixing that as soon as I meet my next deadline...

SQL Server Express Edition, the Profiler and User Instances

I was working with the new SQL Server Express Edition lately and was reminded that the Profiler is programmed to deny connections to this edition. Ah, I think this  decision will unnecessarily challenge those who try to diagnose deployed SQL Express applications. Since you have to buy the SQL Server Workgroup (or better) edition to get the Profiler, I don’t see any reason what-so-ever to prevent its use against the Express edition.  I can certainly see not including it (or some other tools) with the SSEE, but to disable the Profiler is not going to do anything but generate more PSS calls. If I had my way they would enable Profiler to access SSEE--at least to a point. It does not need all the bells and whistles, just enough to see what's getting executed T-SQL-wise.

I've also been experimenting with “User Instance=True” in the ConnectionString. In case you hadn't noticed, this option is pretty bold. What it does is create a separate (seemingly invisible) instance of SQL Server by physically copying master, model, tempdb and your user database file(s) to the user's private diskspace. This is done once--when the connection is first opened. The user can then log on as SA and do whatever they want to the database, master or whatever as it will have no effect on the “real” master etc. or other user instances. Interesting. I also noted that this option is not permitted with “non-Express” versions of SQL Server so you'll have to build a connection string specifically for your deployed SSEE target instance. This approach is interesting for scenarios where the application needs a private, stand-alone SQL Server engine a bit more robust than JET or SQL Server CE.

May 09, 2005

re: MSDN Search Application

Oh my Bill - this is awesome !!!

re: MSDN Search Application

Oh... at the rate it's going some months after Whidbey/Yukon RTM I expect.

re: MSDN Search Application

When does your new book come out?

re: Motorola Woes and the MPX220

My MPX is a piece of crap. Moto rushed it to market. Shame on them.

re: MSDN Search Application

I dug into the code behind the scenes. It's using ADO classic without building a JET database to somehow pull down the data. My program uploads the ADTG files to SQL Server where are real query engine can make quick work of the search.

re: MSDN Search Application

I thought I was the only person on the planet that couldn't get MSDN to find squat.com.

Talk about a hunk-o-junk!!

May 08, 2005

The MPX-200 Another Failed Motorola Product

When I got my Motorola MPX-220, I gave my daughter George the MPX-200. It seemed to work fine for awhile until just recently when it started dropping calls--over and over again. It failed to take calls as well so incoming calls kept going to voicemail. Clearly it’s busted. Product support? A sad joke. She finally tossed it in frustration and is looking for a more reliable brand with real customer support.

This time, when as shop for a new phone we’ll pretend to be customers looking for technical (post sales) help. If the support person was understandable and could answer a question without having to read a script, we kept them on the list.

Sure, every piece of equipment we buy has issues. These phones, computers, cameras and toasters we acquire are often extremely complex and in some cases pretty fragile. What makes the biggest difference between one product and another is the service after the sale. Just because the salesperson speaks understandable English (or your native tongue) that does not mean the support person will be as easy to understand or as interested in keeping your business.

I also think that Microsoft will have a tougher time penetrate the Windows Mobile market with companies like Motorola supporting their software. Fortunately, there are alternatives.

re: Motorola Woes and the MPX220

I had the previous model (MPX200) and found it to be a great disappointment. The operating system was hard to use and unstable, the phone looked plastiky, the screen was poor and the entire thing broke after 2 months. That was my last Motorola...

May 06, 2005

re: Motorola Woes and the MPX220

You're right. Motorola's Customer Service is atrocious. It took me two months and many hours (at least 50) to get a firmware upgrade for the MPx220 that Motorola could have let me download from their website. They even have the firmware download application there, but when it connects to Motorola it faults out.

So, I had to send the phone to Texas. It took Motorola nearly three weeks, during which I had to do without the phone, to get the firmware upgrade.

My guess is that middle managers at Motorola are allowed to conspire to defeat customers' reasonable expectation perhaps because they see their customer as being Cingular or Comcast or other direct distributors. What they don't realize is that they hurt those who they DO regard as their customer when they abuse the end customer.

Maybe Motorola will become as irrelevant as General Motors is rapidly becoming. This seems to be a trend for American companies that spend more effort on brand image and less effort on brand substance.

May 02, 2005

re: Where’s Bill?

Don't know the error by heart. It's just during setup, three components installed (framework, vs,...) and one failed (sql server ex). I had the webdev Beta V 1 also before but i followed microsofts' removal instructions.