Saturday, December 16, 2006

Tools for Visual Studio 1.0.2 GA released.

Today we have released MySQL Tools for Microsoft Visual Studio 1.0.2 GA --a downloadable plug-in for Visual Studio 2005 that allows Windows developers to quickly build MySQL data-driven applications with Visual Studio. With this plug-in, developers will be able to create, modify and manage MySQL database objects with an easy-to-use interface from within the Visual Studio IDE. This product is delivered as a package compatible with Visual Studio 2005 and delivers the following features:

  • DDEX (Data Designer Extensibility) compatibility
  • Ability to work with MySQL objects (tables, views, stored procedures, etc) from within Server Explorer
  • Support for MySQL versions 4.1 and higher

This product will only work correctly with Connector/Net 5.0.2 and higher.

This release does not include the ability to work with the DataSet designer but we will be making a beta of 1.1 available shortly that will include this functionality. MySQL Tools for Visual Studio binaries are currently available under a no-charge license. We plan to release the source code and are currently determining what license the source code will be placed under. The plug-in can be downloaded from

Thank you for your time and effort in checking out this product. Please don't hesitate to use the following resources for posting your bug reports, questions, or concerns.

Bugs: (use the Connector/Net category)

Thank you!
Reggie Burnett

Friday, December 15, 2006

How many "rights" do I actually have?

Man I get so tired of hearing or reading someone make some stupid claim that they have a right to "X".  There was a post on Digg recently where some guy claimed he had a "right" to DVD playback on his Linux machine.  As John Stossel would say, "give me a break!"  Earlier I read someone say that they had a right to demand that retailers sell them a machine without any software installed.  Are you kidding me?

You have a right to what you have a legal license for, whether that license be GPL, proprietary, or other.  I'm a fan of Linux and really hope that LotD takes off and seriously challenges Vista and OS/X.  However, we do not have a "right" to DVD playback unless we have purchased that right either by having it baked into our OS of choice or buying an add-on codec pack.

The author of the post made some lame comment claiming that a user should have the right to playback his or her DVD because they already paid for it.  This is just stupid. The movie industry is under no obligation to make sure your DVDs playback on your computer.  That's what DVD players are for.

If you have an OS that doesn't have the DVD codecs in the package, then stop your whining and do like everyone else and just pay for a DVD player package.

Friday, December 1, 2006

No wonder we're confused

All this time I was under the impression that boatloads of spam in our inboxes help promote porn but now I learn that hard drives promote porn.  Huh?  Well, I guess by that same logic the driveshaft in my car promotes car accidents.  Don't believe me?  Take the driveshaft out of your car and see how many car accidents that car is involved in.

It's really sad that we've come to a point where noone is responsible for themselves.  Everybody wants to be on Oprah and blame the neighbor, the dog, the parents, and the teacher.  Anyone but themselves.

And now it is apparently not your fault if you watch porn.  After all, the monitor just kept showing it long after you wanted to stop watching.  That damn hard drive just kept holding on to it long after you wanted it gone.  And let's not excuse Internet Explorer (insert your favorite browser here).  I believe you when you say you entered and the browser took you instead to the porn site of the day.  They're sneaky that way.

I guess I just think things are simpler than that.  Guns don't promote gun violence, pointing and shooting them at another person does.  Cars don't promote car accidents and deaths, drinking alcohol and then driving them does.  And your hard drive doesn't promote porn.  Now, if you'll excuse me I've got about hundred porn-promoting spam messages to go delete before my hard drive wakes up.

Monday, November 6, 2006

MySQL Connector/Net 5.0.2 has been released!

MySQL Connector/Net 5.0.2 Beta has been released.  MySQL Connector/Net is an all-managed ADO.Net provider for MySQL.  While this release is suitable for any version of MySQL, it is strongly encouraged that this release not be used on any production data. 

It is now available in source and binary form from the Connector/Net download pages at and mirror sites (note that not all mirror sites may be up to date at this point of time - if you can't find this version on some mirror, please try again later or choose another download site.)

Changes in this release (changelog):

Bugs fixed

  • Bug #23268 System.FormatException when invoking procedure with ENUM input parameter
  • Bug #23538 Exception thrown when GetSchemaTable is called and "fields" is null.
  • Bug #23245 Connector Net 5.01 Beta Installer produces Antivirus Error Message
  • Bug #23758 Unable to connect to any server - IPv6 related
  • Bug #22882 Registry key 'Global' access denied
  • Bug #18186 Problem with implementation of PreparedStatement

Other changes

  • Increased speed of MySqlParameterCollection.IndexOf(string) orders of magnitude (parameter name lookups are now strict on use of parameter marker)
  • Improved character set mappings
  • Turned MySqlPoolManager into a static class and added a static ctor to avoid any race conditions related to initializing the hashtable.
  • Added 'Ignore Prepare' connection string option for disabling prepared statements application-wide
  • Added Installer class to provide custom install type procedures such as modifying machine.config
  • A nicer exception is displayed if you have added a parameter without the parameter marker.
  • Load Data Local InFile is working again
  • Installer now gives the user the choice of creating start menu items and registering the provider in the GAC.


We have added a new connection string option named 'Ignore Prepare'. It is a boolean option and its default value is true. This option, when true, instructs the provider to ignore any calls to MySqlCommand.Prepare(). We decided to do this because we have discovered some inconsistencies with server side prepared statements which can lead to incorrect or damaging results. If you are sure you want to use server-side prepared statements, then you can add 'ignore prepare=false' to your connection string and it will behave as before.


Highlights of the 5.0.x Connector/Net releases:

Support for ADO.Net 2.0 interfaces and subclasses

Re-architected to improve speed and flexibility
The internals of the provider have been improved to allow column values to be retrieved without boxing in many cases.  Also, the internal changes have enabled the future inclusion of embedded and client library support.

Implemented Usage Advisor
The Usage Advisor first appeared in Connector/J.  We have now implemented that feature in Connector/Net.  Enabling it causes the provider to check both your queries and how you read the results and report to you if it thinks you are using the provider in an  inefficient manner.  It checks such things as using a query without an index, not reading all the columns or rows from a resultset, etc.

Implemented asynchronous query methods
The MySqlCommand object now supports asynchronous queries.  This is implemented using the BeginExecuteNonQuery and EndExecuteNonQuery methods.  BeginExecuteReader and EndExecuteReader are now included.

Implemented stored procedure metadata caching
We now cache the metadata that is retrieved during stored procedure and stored function execution.  This cache data is used for subsequent executions of that stored routine.

Added PerfMon hooks
This release includes PerfMon hooks to monitor stored procedure cache hits and misses.  We are looking at adding additional hooks in the first beta release.

Removed use of SharpZipLib library
We have replaced use of the SharpZipLib library with the deflate support available with .NET 2.0.

Support for embedded server and client library has been removed
For those of you that have seen my presentations on 5.0, we decided to remove these features to help get 5.0 out the door more quickly.  These features will reappear in a later version of the product.

Thank you for checking out this release of Connector/Net. 


Live Map Search more accurate than Google maps

This morning I decided to look up where my wife and I need to vote tomorrow.  We recently moved and had to call the county clerk to determine the correct polling place.  Punching the address into Google maps, I noticed something odd.  The area pointed to can't be place to vote.  Instead, it's a small pasture where horses graze.  I know because it's right down the road from my house.  Here's the image with the arrow:


Trying this in Microsoft's Live Local map server, I got the following image.  Notice how the pushpin is on the other side of Roy Cole Rd.  This is correct.  The area pointed to by the pushpin above is a firehall and the place where we will be voting.  I'm not saying that Microsoft's maps are always more


I'm quite certain others can find many examples where Google Maps are more accurate but after this little test I just might be more likely to use Live Maps in the future.

Sunday, November 5, 2006

MySQL Conference 2007 Call for Papers about to close

I blogged about this earlier but the MySQL Conference for 2007 is fast approaching and the call for papers is about to close.  November 7th is the deadline so you've only got two days left to send in those great presentation ideas.  I'm submitting a couple of sessions so hopefully I'll see you there!

Saturday, October 21, 2006

Sorry but I have to comment

The wires are ablaze with news that some Los Angeles members of the Boy Scouts of America can earn the "Respect Copyrights" patch.  Apparently this patch is a product of teamwork between the BSA and the MPAA and involves such activities as learning about P2P file sharing systems, attend a movie and sit through all the credits and later list all the people that might be hurt by stealing the movie, along with several other requirements.  There has been a steady stream of negative comments about this story including one along the lines of "the MPAA is recruiting the BSA to do it's dirty work".

First, this story is not an attack on the BSA and so I will not dwell on my many years of service in the BSA except to say that I have been an assistance ScoutMaster and currently serve as ScoutMaster and know the BSA to be the finest club for young men on the planet.

Second, I want to say that I agree with the stories I've read that make the case that the requirements of the patch leave out several key areas including fair use, public domain items, as well as legal use of P2P file sharing system.  Apparently one of the requirements of the patch involves encouraging friends to run some "Parent File Scan" on the home computer.  While I know very little about this software, it apparently lists all the file sharing tools that are on a computer along with media available to these tools whether legally obtained or not.  This amounts to asking the kids to spy on their parents or siblings and is completely wrong and cannot be defended.

My main reason for commenting is that I find this whole scenario reflecting a certain prevailing feeling that any form of DRM is wrong and should not be allowed.  I agree that current DRM forms fail completely and violate fair use in a number of ways but that does not change the fact that an artist who works hard to create an album or movie has a right to protect that content and expect a return on their investment.  What's unbelievable is that people are honestly outraged that we are teaching our children that taking something that doesn't belong to them is wrong.  Ripping a CD or movie that you don't own is absolutely no different than walking into a Wal-Mart and pocketing a CD off the rack.  We would never allow our children to do this and yet we scream and yell when the RIAA and MPAA try to stop the same thing.

Moreover, how many people do you know that buy a CD , rip the music to a computer in the house, and then download that music to one or more portable music devices.  At some point, the music might be playing on the home computer and in all of the portables at the same time which is a clear violation.  And yet so many never even consider that.

I have as much dislike for the RIAA and MPAA as the next man and it does seem like this patch is slanted more to the goals of the MPAA and less to actual teaching of all aspects of file sharing.  Nevertheless, being outraged that some Scouts are out there teaching each other that it's wrong to steal is just stupid.

Friday, October 20, 2006

MySQL Connector/Net 1.0.8 RC has been released


MySQL Connector/Net 1.0.8 RC has been released.  MySQL Connector/Net is an all-managed ADO.Net provider for MySQL.  While this release is suitable for any version of MySQL, it is strongly encouraged that this release not be used on any production data. 

We are making this release available as an RC because there were significant changes made to the provider beyond just simple bug fixes.  Due to this, we felt it prudent to ask for feedback from the community before declaring the provider safe for production use.  We plan to release the next version (1.0.9) as GA within the next 2-3 weeks incorporating any feedback we get from the community.

It is now available in source and binary form from the Connector/Net download pages at and mirror sites (note that not all mirror sites may be up to date at this point of time - if you can't find this version on some mirror, please try again later or choose another download site.)

This release includes many bug fixes along with the following enhancements/changes:

  • Implemented a stored procedure cache.  By default, the connector caches the metadata for the last 25 procedures that are seen.  You can change the number of procedures that are cached by using the 'procedure cache=<size>' connection string setting.  You can disable the procedure cache by setting a zero size. 
  • Executing stored procedure now no longer requires the user to have a select privileges on the mysql.proc table.
  • Shared memory connections now work as expected.
  • Queries containing a large number of parameters now run many times faster than before.  As an example of the performance gains seen, an internal testing app that needed more than 30 minutes to execute using 1.0.7 now completes in less than 8 seconds.
  • We are no longer providing binaries compiled with .NET 1.0.  We are doing this for a couple of reasons.  First, we believe the majority of our users are using .NET 1.1 or 2.0.  Also, removing .NET 1.0 binaries reduces the number of frameworks we have to test thereby reducing the time it takes to verify releases.  If 1.0 is needed by a sufficiently large number of users, we are willing to re-evaluate this decision.
  • The ICSharpCode ZipLib is no longer used by the connector and is no longer being distributed with it.

The installer for this release installs the assembly into the Global Assembly Cache (GAC) without giving you an option to not do this.  In the GA release (1.0.9), the installer will include an option to not register the provider in the GAC. 

Also, the installer attempts to install both 1.1 and 2.0 binaries into the respective GAC.  If you do not have both frameworks installed, the installer will give an error.  This will be fixed in the final product but for now you can work around this by doing a custom install and choosing the version of the driver for the framework you want to install.

Thank you for checking out this release of Connector/Net. 

Sunday, October 8, 2006

First impressions of Vista RC2 x64

Very, very fast.  It seems quite a bit faster than any of the RC1 builds.  They've fixed the 8237 SATA driver so my sound and mouse no longer skip during disk activity.  It still is not perfect since firing up Media Center for the first time caused some skipping and popping of Pandora playback but it cleared up quickly and so far has not returned.

Install was a bit unstable.  It blue screened during install giving some error related to "Drive Power State".  I had upgraded the firmware on my LiteOn DVD-RW drive just the day before so it might have something to do with that.  The install wasn't trashed however.  I just restarted the machine and it restarted the install stage it was in.  No sweat.

So far, all my apps are working flawlessly and are just flying.  Aero seems a bit faster than with 5600 or 5728 but is still sluggish for me as my Experience Index is 2.0 caused mainly by my aging video card. 

It's clear that this build includes quite a few optimizations that did not exist in previous builds.  I question the wisdom in introducing the optimizations in what is said to be the last public release before RTM but it's clear that Vista is shaping up to be a fine replacement for XP.  It's true that Microsoft ripped out alot of the cornerstone features of Vista but what they left is a good foundation for followup work.

Wednesday, October 4, 2006

MySQL Tools for Visual Studio 1.0.1 beta has been released.

Today we have released MySQL Tools for Microsoft Visual Studio 1.0.1 beta -- a downloadable plug-in for Visual Studio 2005 that allows Windows developers to quickly build MySQL data-driven applications with Visual Studio. With this plug-in, developers will be able to create, modify and manage MySQL database objects with an easy-to-use interface from within the Visual Studio IDE. This product is delivered as a package compatible with Visual Studio

2005 and delivers the following features:

  • DDEX (Data Designer Extensibility) compatibility
  • Ability to work with MySQL objects (tables, views, stored procedures, etc) from within Server Explorer

It is critical that this release only be used with Connector/Net 5.0.1. After installing Connector/Net 5.0.1, you will need to make a small change in your machine.config file. This file should be located at %win%\Microsoft.Net\Framework\v2.0.50727\CONFIG\machine.config (%win% should be the location of your Windows folder). Near the bottom of the file you will see a line like this:

<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient"
        description=".Net Framework Data Provider for MySQL" 
        type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data"/>

It needs to be changed to be like this:

<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient"
        description=".Net Framework Data Provider for MySQL"
        type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data,
        Version=, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>

Note that this change is only necessary due to a small bug in the installer for Connector/Net 5.0.1 that will be corrected for 5.0.2.

Several bugs have been fixed since the first release of these tools, and we have added preliminary support for MySQL 4.1. There are a number of known problems with the support for MySQL 4.1 that will be addressed before the GA release.

We are planning on including tighter integration with Visual Studio's DataSet Designer in the 1.1 GA release. This will include the ability for users to create typed datasets that they can reference from within their code. This is a very important feature for us and one we are working hard to provide.

MySQL Tools for Visual Studio binaries are currently available under a no-charge license. We plan to release the source code and are currently determining what license the source code will be placed under. The plug-in can be downloaded from

Thank you for your time and effort in checking out this product. Please don't hesitate to use the following resources for posting your bug reports, questions, or concerns.

Bugs:  (use the Connector/Net category)

Thank you!
Reggie Burnett

Monday, October 2, 2006

Does anyone read the Constitution anymore?

It now appears that our fearless leaders are pushing through legislation that will make it easier than ever to remove your freedom from you.  Mr. Bush is wanting the ability to jail anyone he wants for as long as we wants without charging them.  This is in addition to several other points in this new legislation that are all allegedly designed to help win the war on terror.  This is terrible legislation and nothing good can come from it.  However, my point is the hypocrisy of the left.  They will have no trouble declaring that everyone has a right to universal healthcare, a right to an education, and a right to a home.  We as American citizens have none of these rights.   While government run universal healthcare would be a deathblow to this country, privately run universal healthcare would be a welcome privilege.  So, too, is an education or a home.  You have several rights as outlined by the Constitution.  Freedom to assemble, freedom to practice religion, freedom to protest, freedom to own a gun, along with many others.

While the left is rightfully fearful of this new legislation, we should all be reminded that the left among us will cheerfully rewrite the constitution as well.  Don't let them get away with it either.  Know the documents that founded this country.  It's your right!

MySQL Connector/Net 5.0.1 has been released.

MySQL Connector/Net 5.0.1 Beta has been released. MySQL Connector/Net is an all-managed ADO.Net provider for MySQL. While this release is suitable for any version of MySQL, it is strongly encouraged that this release not be used on any production data. This release is feature complete with the exception of DTC support in System.Transactions.

It is now available in source and binary form from the Connector/Net download pages at and mirror sites (note that not all mirror sites may be up to date at this point of time - if you can't find this version on some mirror, please try again later or choose another download site.)

Highlights in this release:

Support for ADO.Net 2.0 interfaces and subclasses
(this release now includes foreign key support)

Re-architected to improve speed and flexibility

The internals of the provider have been improved to allow column values to be retrieved without boxing in many cases. Also, the internal changes have enabled the future inclusion of embedded and client library support.

Implemented Usage Advisor
The Usage Advisor first appeared in Connector/J. We have now implemented that feature in Connector/Net. Enabling it causes the provider to check both your queries and how you read the results and report to you if it thinks you are using the provider in an inefficient manner. It checks such things as using a query without an index, not reading all the columns or rows from a resultset, etc.

Implemented asynchronous query methods
The MySqlCommand object now supports asynchronous queries. This is implemented using the BeginExecuteNonQuery and EndExecuteNonQuery methods. BeginExecuteReader and EndExecuteReader are now included.

Implemented stored procedure metadata caching
We now cache the metadata that is retrieved during stored procedure and stored function execution. This cache data is used for subsequent executions of that stored routine.

Added PerfMon hooks
This release includes PerfMon hooks to monitor stored procedure cache hits and misses. We are looking at adding additional hooks in the first beta release.

Removed use of SharpZipLib library
We have replaced use of the SharpZipLib library with the deflate support available with .NET 2.0.

Support for embedded server and client library has been removed
For those of you that have seen my presentations on 5.0, we decided to remove these features to help get 5.0 out the door more quickly. These features will reappear in a later version of the product.

The installer for this release installs the assembly into the GAC and registers the provider with machine.config. Because of this, you need to run the installer as a member of the administrators role. There is also a bug known in this release that applications using this build of the connector, when run on Vista, require administrator mode. We are looking into this issue for the next release.

Wednesday, September 27, 2006

Holy cow! Is it that time again?

Yup.  It's time to start thinking about another MySQL Conference.  The Call for Participation is now up and I've been told that we will definitely have a Windows/.NET track again this year.  The Conference will be held at the same location as last year from April 23 to April 26, 2007.  Our conferences have grown every year and I expect this year to be no different, so get those proposals in before the November 7 deadline and hopefully I'll see you there!

Maybe I'm just cranky

What on earth is going on with mail clients in Windows?  I'm running Vista but the same problem exists with pre-Vista systems.  In Vista we have Outlook Exp Windows Mail.  Now, Vista has been in development for several decades now (it seems) so one would think Windows Mail would be finely tuned with several cool new features.  How about RSS reading?  How about much better reply quoting (see Thunderbird)?  How about the option to have most recently updated threads bubble to the top like with Outlook?  No, no, and no.  Ok, I get it.  It's just weak enough to only be  useful for mom and dad but any serious user should consider Outlook.

If that's the case then what's the deal with Live Mail Desktop?  Another email client?  No wait.  Another crappy email client.  This one is worse than Windows mail (if that's possible).  Let me count the ways..

  1. Advertising bar that apparently doesn't go away unless you subscribe to some kind of pro account.  It's actually not very big but even on a 1280 x 1024 screen I feel cramped.
  2. Pointing it at my corporate IMAP account shot memory usage up to 170 megs and the app became totally non-responsive.  It may have eventually come back; I didn't wait around to see.
  3. Selecting the option to group my emails by conversation does... nothing.
  4. Moving over the email list turns the email icon on each item into a checkbox.  What for?  Got me.
  5. You would think that a brand new email client that runs on Vista would detect that its running on Vista and use the spankin' new Contacts folder right?  Bzzt.  No, it uses  your contacts from Hotmail.  So, now I have how many places where I have contacts?  Hotmail, Windows contacts, and Outlook contacts.  Priceless...
  6. The fun isn't limited to contacts either.  There is a nice calendar button in Live Mail Desktop.  Clicking it, I was sure that Windows calendar would show.  Uh, nope.  It shot me over to Hotmail calendar which is not even in the top 10 of best web calendars.  Again, how hard would it be to have Sync center keep my Hotmail calendar and contacts synced with my Vista desktop and have Live Mail Desktop use the local contacts and calendar.  Would have made too much sense.

I simply could go on and on about how bad Live Mail Desktop is.  Here's a thought.  Instead of having two crappy mail clients (Outlook Express/Windows Mail and Live Mail Desktop), combine the teams and create one kick-butt mail client that works with the major web mail players, uses Vista features when run on Vista, and gives some serious competition to Thunderbird in the free email client market.  Then again, maybe I'm just cranky.

Build 5728 good but still not RC1

Running Vista x64 build 5728 here and while things are pretty stable it is clear that Microsoft is still committing large amounts of code.  Here's a list of things that are not working that well:

  • VIA 8237 SATA drivers still suck.  Great they I can install Vista on an SATA driver without installing an OEM driver during install, but after reboot there are so many IRQ requests across the bus that the mouse skips and the sound cuts out all the time.  Installing the Windows XP x64 driver from MSI fixed it.
  • Installing the latest NVIDIA drivers seemed to work ok although it had no effect on my Windows Experience Index.  However, running Windows media center failed with a black screen and essentially locked up the machine.  Vista kept telling me that a kernel driver had failed and had successfully recovered but the machine was essentially unusable.  I was able to logoff to kill media center.  One bright spot here is that rolling back to the WDDM Microsoft video driver did not require a reboot.
  • Media Center seems to be working ok although the guide seems a bit more jittery than 5600.
  • Windows Calendar loses its font settings after being used for awhile.  The UI controls start using a chunky, bold font.
  • This may not be a bug but its really confusing.  I use two Dell 19" LCD screens side-by-side and I have some wide screen backgrounds that I've wanted to use with Vista.  In Windows Server 2003, I pick the background and it fills both screens, treating them both as a single screen.  With Vista, the non-tiled option scrunches the background on to both screens.  Choosing the tiled option (which should scrunch) actually displays the background spanned across both screens.  It's working for me but this can't be right.
  • Sync Center still is a complete no-show.  I've heard that it works for Windows Mobile 5 devices but I have not yet heard any official statement that pre-5 devices will not be supported.  I can sync media and program files but not contacts, calendar, or emails.

Tuesday, September 19, 2006

It's just great innovation, man!

As I'm sure you are aware by now, Python 2.5 has just been released.  Let me first just send out some big kudos to the python community for actually releasing a product in a timely manner.  As "others" have yet to discover, there is a benefit to not waiting 5 years between releases.

However, my real point behind this post is to ask everyone to count how many times they will hear some Windows blogger or Windows-centric news site complain that the Python community stole the "with" concept from C#.  I'm guessing it will be pretty close to zero.  Now, what if Microsoft had implemented the with keyword after some other languages?  Yeah, you know what would have been said.

If Microsoft acquires or copies technology then everyone complains that they never invent anything.  Let some open source guys copy something and it's just great innovation, man! 

BTW, how long till this Python thing runs its course?  Ruby (the next thing) seems to already be displacing it somewhat.  I still don't  understand how a language that uses characters you can't see to control program flow can be truly successful.  We'll see...

Xgl is cool but it takes more than that

I normally run Windows Vista RC1 x64 but recently decided it was time for my semi-annual Linux test.  This is where I install the latest released version of a popular Linux distro and attempt to use it for as long as I can stand.  The idea of a free (as in speech) desktop is appealing but it's a non-starter if it holds me back in any way.  Remember I said that I normally run Windows so I am referring to holding me back in any way that I'm not used to.

Anyway, the candidate was Ubuntu 6.06 and I only used it for a few hours.  Two of those hours were spent trying to get my dual-screen setup working.  Another hour was spent getting Skype to work (it did work but I had to google for several posts and then force install some packages).  Evolution crashed every time it exited.  My USB headphone worked but only after I logged out and back in.  Even then I could not get my main speakers and the USB headphones to work at the same time.  I was not able to play any of my ripped music, which is encoded to either MP3 or WMA (yes I know there are solutions for this but by this time I had lost interest).

Lately we've heard alot about XGL and all of it's eye candy.  Larry recently blogged on this and posted a link to the shell team's blog.  This post specifically talks about there not being "floppy" windows in Vista.  While including links to some cool demos from 2003, the gist of the post is that while wobbling  your windows is technically possible, it might not be the right thing for the shipping product.  The point is made that Microsoft has issues to consider that a Linux vendor can't possibly imagine.  The videos in the link clearly show that technically Microsoft has everything they need to shake, rattle, and roll Windows anyway you want.  I also think Larry is right that we will likely see DWM hacks for Vista that add wobbly windows and all sorts of other goodies.

ESR recently suggested that the Linux community needs to make compromises in order to more directly challlenge the Microsoft monopoly.  He's right.  The gap is widening and wobbly windows is not nearly enough to close it.

Thursday, September 14, 2006

Would love to try out Max

The Max team has released a new version of their product that includes some nice RSS reading features.  A coworker of mine asked me if I had tried it out just a day or so after it was released so it must interesting.  Of course I wouldn't know.  I would explain if I could.

My first attempt at installing Max was on Vista RC1 x64.  It promptly told me that x64 systems were not supported.  Later I tried installing on Vista RC1 x32.  Bzzt.  XP SP2 is required.  So I dig around and find the Max MSI file and, using Orca,  convince it that installing is ok.  After installing, it explained to me that I needed a newer version of .NET 3.0.  Huh?

Let me see if I get this right.  Microsoft works for 5 years to build an OS that seems to barely be an upgrade to XP.  Vista RC1 is the first build that comes with .NET 3.0 baked right in and Microsoft is pulling out all the stops to show the world that Vista and .NET 3.0 are the way and the light.  And yet an app that is an excellent demonstration of .NET 3.0 doesn't work on Vista?  Are you kidding me?

I have *tons* of apps (both managed and unmanaged) that work and have worked on all the versions of Vista and don't seem to care if you are on x32 or x64 but _somehow_ this photo sharing and RSS reading tool is so coupled with the system that it can't possible run on x64 or on Vista RC1.  After reading in the Max forums, someone from the Max team posted that in fact Max works on Vista but they didn't want to expose the users to any potential bugs so they disabled it.  Where do they get these people?  I"m running Vista RC1 and reading email on Outlook 2007 beta 2.  I surf web pages on FireFox beta 2 and use Google which, we all know, is always in beta.  Find bugs?  Believe me, that's what you want us to do.

Thursday, September 7, 2006

RC1 Rocks!

My last post on the less than stellar quality of the SATA drivers notwithstanding, my overall experience with RC1 has been great.  Speed is excellent, stabilty is great, and media center is now working!

I now have a dual-tuner PVR 500 complete with FM tuner working smoothly under RC1 media center.  So far everything I've tried to install and run has worked great.  Still trying to get VMWare Server to work but no luck so far.  That's ok, I've got Virtual Server R2 beta 2 to play with.

The next thing is getting drivers installed for my OfficeJet 6110 and Canon S900.

Oh, I almost forgot.  There is one thing that's not working.  Sync center apparently still does not allow syncing calendar and contacts to PocketPC or Smart Phones.  That particular feature seems to be going backward.  Beta 2 would at least bring up Sync Center and tell me that Outlook was not configured.  Now, Sync Center doesn't even appear when I plug in my smart phone. 

Aside from not being able to sync my calendar and contacts to my phone, I'm very pleased with my new daily workstation.

SATA drivers in RC1 suck

So finally Windows has SATA drivers baked in.  I've been told that not all chipsets are supported but many are.  Mine is a VIA 8237 and RC1 installs just fine without loading any OEM drivers at install time.

The problem is that the drivers for my system were causing terrible stuttering and skipping the audio.  It as also causing the mouse to skip sporadically.  A little research shows that lots of folks have been having this issue so I think it reaches beyond VIA 8237 systems. 

A quick update of the SATA drivers to the XP64 drivers from my board's manufacturer's website and all was smooth again.

Wednesday, September 6, 2006

PVR 500 supported right in Vista 5536. Sweet!

I have this Hauppauge PVR 500 dual-tuner TV card that is apparently completely incompatible with my VIA-based Athlon XP 1700+ system.  So I decided to slap it into my dual opteron box running Vista 5536.  As I was rebooting after installing the card, I was wondering if the official Hauppauge drivers would install properly.  No worries!  Vista notified me that it had drivers for them and they installed perfectly.  Cool.

A few minutes later and I had media center up and running and connected to my XBox 360.  The interface seems snappier on the 360 as well.  Now, all is not sweet in the land of milk and honey.  Tuning TV worked but everytime it tried to record it would just repeat the first few seconds over and over.  Oh well, guess I'll try RC1.

Thursday, August 24, 2006

Computer lockup solved!

For the past few days I've been experiencing random reboots and freezes on my daily development machine.  I'm pretty busy so I ignored it initially but lately it had started happening much too frequently so I had to do something about it.

I spent a fair bit of time checking sensors and monitoring the temperature on the box thinking it was a heat issue.  It wasn't until I picked up a third hard drive and tried to install it that I realized what was going on.  After installing the drive the computer would not start.  It would shut down as soon as it started.  Power.  Power supply was toast.

So a trip to Best Buy this morning turned up nothing by Dynex junk so a slightly longer trip to CompUSA yielded an Antec TruPower 2.0 500W unit.  Nice if somewhat older unit.  Sleeved cables, modular plugs, and being an Antec very quiet and solid power.  System back up and running perfectly.

BTW, I started to install Windows Server 2003 on my new hard drive (I intend to use it as my primary OS disk) but ran into the issue of Win2003 not supporting SATA disks and requiring you to use a floppy for the drivers.  Are you kidding me?  This was an R2 ISO and it still requires a floppy.  I haven't used a floppy since...  well, I can't remember.  That is ridiculous.  So, I just whacked on an install of Vista 5472!  Yeah, I know.  I'll probably be scrounging for a floppy drive here in a few days.  In any case, the weird thing is that Vista 5472 seems better now.  Hmmm.  Glass is working, window effects are working, almost everything feels better, snappier.  All I changed was the power supply.   Strange...

Tuesday, August 22, 2006

Do apples really taste better?

My first computer was almost a Macintosh.  Almost.  The year was 1988 (or was it 1989?) and I was in the market for my first personal computer.  I remember standing in the computer store and watching a Mac II run some flavor of Mathematica and trying to figure out how I was going to pay for it.  Well, I bought a 286 instead and the rest, as they say, is history.

The reason I bring this up is because I've recently been thinking about Apple and Microsoft and what drives their image.  For almost the past two decades and certainly for the past five years of OS X, we have heard that Macintosh computers are simply better.  The UI is more intuitive, the networking is faster, the system is safer.  Better.

And yet Windows still runs the world.  Don't even try to compare this to VHS-Betamax.  Apple has far better marketing than Microsoft.  I mean, really, do you remember the Microsoft dinosaur ad?  Sheesh.  So, if Apple has better hardware, better software, and better marketing, what's the problem?

The problem is choice.  I'm not even going to consider hardware here because I think most people don't really care what their computer looks like and the ones that do will buy Apple.  The choice I am speaking of is software.  Apple does an excellent job with their software but they have to convince you to use the apps that come bundled with the os.  Yes there are third party apps but not many.  It's almost funny to hear people who use OS X talk about the apps they use and they are almost always the built-in ones.  iChat, iPhoto, iDVD, etc.  Ask a set of Windows users what apps they use and every list will be different.

I recently read a blog post that talked about the superiority of the quad-binary approach Apple is taking to the 32-64 bit issue.  Seems truly elegant until you realize that while you wait for a quad-binary version of Photoshop, every Windows user out there can still run a 5 year old version of Photoshop on Vista x64 (ok I have not tried that but I bet you it works).  The fact that my kids can still take a game written a decade ago and insert it into their XP or Vista computer and it "just works" truly gives me choice.  The fact that Microsoft so effectively cultivated the developer community so many years ago has given me choice.  Want a RSS reader?  You have about 50 to choose from.  Email client?  Hundreds available.  Web browser?  Tons.  Sure, some of them aren't great but they each have their own quirks that endear them to their users.

I have more to say on the technology side of this discussion but I'll save that for a future post.

Henry Ford once said you can have any color you like as long as it's black.  Well, the cars in my driveway are blue and gold.  Apple makes sleek hardware and nice looking software and as long as they can continue to convince users that their apps are best, they will continue to dominate their 2% slice of the world.

Wednesday, August 16, 2006

ADO.Net vNext CTP bits are out

If you want to play with the next generation of ADO.NET, now's your chance.  The ADO.Net team has released the August CTP for download.

The bits are young and fresh but they give you an idea of where Microsoft is heading.  I can't commit to a timeframe, but we are working on the next generation of our .NET provider which will be compatible with vNext.

Note: The May LINQ CTP is a pre-requisite.

Tuesday, August 15, 2006

Live Mail Desktop beta is crap

Microsoft is a puzzle.  As good as Live Writer is, Live Mail Desktop is just the opposite.  It's terrible.  I had high hopes that this was going to be the Outlook Express replacement we have all been seeking for a decade now.  Maybe they still plan for it to be, but if that's the case they better snag some of the guys from the Live Writer team.

Want some evidence of its crapacity?  I pointed it at my work IMAP account (which Thunderbird handles without breaking a sweat) and, after 10 minutes of watching it wiggle and sizzle, killed it.  It had managed to consume 130 megs of RAM on its way to downloading about 10% of my email.  Truly groundbreaking work.

I was never able to find a way to close the right hand pane which appears to either show a search dialog or advertisement.  Like I really need more of that!  Besides its inability to do anything useful, it appears to not even be original.  Once you start opening option dialogs, they look very similar to you know what.  Yup, you guessed it.  Our old friend Outlook Express.

Microsoft needs to have a unified visual style for their apps and they need to put some serious effort in creating a quality mail client for the non-Outlook users.  Either get serious about Desktop Mail or can it and make Windows Mail what it can be.  One or the other, but not both.

Monday, August 14, 2006

And they wonder why we have little faith?

So, attempting to use Vista 5472 for daily work has been interesting to say the least.  One example was my attempt to install the latest drop of  Sounds simple enough.  Even Vista should be able to handle that.  Hmmm....

After downloading I proceeded to use the Extract All... option to unzip the downloaded file.  Except the binary installer inside the zip always unzipped to about 1 meg in size and would just report "Program too big to fit in memory" when you try and run it.   After repeating the above steps a few times, I googled and installed a free tool named FreeZip.  Freezip integrated into the Explorer and unzipped my download perfectly the first time.

Now I understand that writing unzip utilities is very difficult and requires tremendous resources but one would think that if anyone had the resources to get it done, it would be Microsoft. 

That's sarcasm for those of you who like fruit on your boxen.

Are they really this dumb?

I just got back from spending two weeks attending a couple different Microsoft developer events.  It's easy to come away from events like these very excited about what products are coming and what technologies we'll get to work on.  It's equally easy to come away confused on how so many smart people can be so totally clueless.

I could write volumes on this subject but an example my wife showed me last night shall suffice.  We recently moved one of our other computers upstairs for the kids so she was removing Age of Empires III from her laptop.  The uninstall dialog was classic.  The title bar said "Setup" (a word directly related to installing a product).  The first line said "Uninstalling Age of Empires III".  The second and last line said something like "Setup is preparing the installation".  So is it installing or uninstalling?  Yes I know that AoE III came from a different developer but it's a Microsoft game.

I've got about 10 blog posts swirling in my head on this topic right now so you'll hear more in the coming days and weeks. 

BTW, this post was my first with Live Writer.  So far it looks pretty nice.  It's a Microsoft product though so when I hit the publish button I'm expecting it to tell me that it can't save the post because the title ends in a question mark.  :)

Thursday, August 10, 2006

Paul get's it right.. and wrong

By now most of you have read
Paul Thurrott's treatment
of Job's keynote at WWDC.  As usual, Paul makes excellent points and
treats his subject matter with respect and fairness.  His main point is
that Apple copies features just like Microsoft does and he’s right about
that.  He also points out that continuing to wonder what Microsoft was
doing (I admit that I’ve done that) during the 5 years of Vista wasteland
is silly and perhaps even ignorant.  Of course Microsoft has been quite
busy during those years shipping other versions of Windows.  I mean, come
on, do we really think that if Microsoft was only focused on a single
client-focused version of Windows that they could not have shipped it
sooner.  Right on, Paul.

But, Paul misses the point as
well.  Well, to be honest, I’m not sure missed it as much as he didn’t
make the point.   The main thing that Apple is doing much better than
Microsoft right now is driving innovation in an iterative way.  Being a
software developer for the last 15 years, it’s obvious to me that
disappearing from my customer base for years and building something that I
think my users will like is extremely risky.  You see, customers and users
have a peculiar way of being.. well… peculiar.

How many releases of OS X have
been made in the past 5 years?  Five?  Paul makes the comment that
none of these releases were “major”.  That’s probably
true but there seemed to be several changes in each release that was not “trivial”. 
And the upside to a greater number of releases is that you get to hear what
users are saying as you go.  They may hate a certain new tool that was introduced. 
Better to know now than after a team spends another two years on that

Is there anyone out there that
really believes that Microsoft could not have delivered minor releases of XP
(not CTPs) that included updates to the tools and the kernel?  Paul makes
the comment that Outlook Express has existed for over a decade.  True. 
It is also true that it has sucked for over a decade.  Why not release
truly useful updates to Outlook Express in an XP interim release?  Why not
ship the DVD maker tool we are seeing in Vista in an XP interim release? 
Why can’t the new Windows calendar app be included in an interim release?

The point is that the main
features of Vista could have been released in multiple, smaller releases during
the past 5 years.  Sure, there are major kernel changes that take a lot longer
to incubate and those lead to major releases.  There has to be some reason
to bump the major version number.

Ballmer has promised that we
would never again have to wait so long for a Windows update.  That’s
good but I believe that unless Microsoft adopts the agile way of developing
software throughout the organization and moves to smaller OS releases that can
be released more quickly and with more predictability, Apple’s OS X will
continue to be the envy of the Windows world.


Tuesday, August 8, 2006

This takes me back

Like so many others, I cut my programming teeth on Turbo Pascal 3.0 and
above.  It's very exciting to hear about the return of the Turbo
products.  The adventures of TurboMan video was
somewhat entertaining.  Go Borland!  Competition is great.

Lap around Microsoft Research

They've been there for a while but I had a few moments a couple of days
ago and installed some of the toys found at Specifically, I
tried out the virtual desktop power toy, the timezone toy, and Scalable
Fabric. Of the three, the time zone tool is the only one still
running. That's because I work with people all over the world and so
it's handy to have quick access to their current time.

The virtual desktop power toy sort of worked. I got 4 different
desktops but I couldn't drag between them so it felt very awkward.
Scalable Fabric is a very cool idea although the implementation felt
half done. It certainly felt research quality, which is all it was
advertised to be. I guess my beef is why don't we see more of this
materialize in the final Windows product? We use XP for years and then
wait more years for Vista and we still don't have any cool built-in
virtual desktop manager? We still can't do any better than the age-old
folder metaphor?

Apple is making hay these days about Time Machine. While Windows has
had this core feature for a few years now, Microsoft needs to understand
that in a consumer level OS it has a lot to do with presentation. I
have no doubt that Time Machine is not technically better than Previous
Versions, however it sure looks cooler. Message to Microsoft: we like
that you spend billions on research. Just move some of the more visible
projects into the final product.

MySql Connector/Net 5.0.0 Alpha 1 has been released!

Yes, that's right. You can start looking for airborne swine! We have released the first drop of Connector/Net 5.0! While there were reasons why this release took so long to get out, I'll take a page from Ballmer's book and commit to you that it won't happen again. In any case, this release has lots of goodies baked in.

  • ADO.Net 2.0 support
  • Usage Advisor
  • PerfMon hooks
  • Completely virtualized execution pipeline (this will support use
    of the client library and embedded server later)
  • Faster execution
  • Type safe methods on MySqlDataReader completely avoid value boxing
  • Procedure metadata caching
  • New option for not resetting the connection on pool checkout
  • And much more!

There are a few things broken or missing in this first code drop. Here is the current list.

  • Connecting via shared memory or using compression
  • Load data local in file is not working
  • Use of System.Transactions
  • Foreign key support in GetSchema

We encourage all Mono or .NET developers to try out this new release and give us feedback. It can be found at and mirror sites (note that not all mirror sites may be up to date at this point of time - if you can't find this version on some mirror, please try again later or choose another download site.)

Monday, August 7, 2006

Newsflash! I'm an administrator

Ok so I finally got tired of hitting the remind me later button when asked
if I wanted to download the Windows desktop search update when starting
Outlook. I valiantly tried this on my x64 desktop only to discover that
there isn't a 64 bit build available. No problem, my laptop is XP SP2 so
this should be a breeze.

Near the end of the install, this message pops up. Access denied. Huh? It
had asked me if I wanted it to close Outlook automatically (I said yes) so I
figured that Outlook had disobeyed (it had). I forcefully closed Outlook
and tried again. Bzzt. Access denied. Hmm. Ok, must be some files in
use. Reboot. Bzzzt. Access denied.

After some googling, running Regmon, and trying unsuccessfully to turn on
verbose logging (which I now remember is STILL on), I got it installed. The
problem? Some of the registry keys under HKCR did not allow administrators
to read or write them. You read that right. The most powerful entity in
the universe (on this computer) can't read or write those keys. So my
question is "who the hell is supposed to write them if users and
administrators can't?"

Newsflash Microsoft! Administrator means I can do ANYTHING I want on my
computer. A small warning might be in order but I should not be disallowed.
Now we can argue about whether running as admin is smart but the fact
remains that as long as I am running as administrator, I should not EVER
have security issues with what I am doing.

Ok, I'm calm now. Sanity can resume....

Wow Outlook sucks as an IMAP client

Yes we've all known this for some time but it just boiled over for me
this morning. I'm here at building 20 on the Microsoft campus getting
read to begin the August VSIP dev lab and I had about 50 emails that I
needed to process. This should be an easy procedure. Delete a few,
read most, reply to some, etc. There's but one problem. We are not
using Exchange so Outlook can't manage to behave. It sometimes just
"goes away" when you click on a folder. Oh it usually returns about 10
minutes later but how frustrating is that?

For some time now I've had this working system where when I've had a lot
of email to process I shut down Outlook and fire up Thunderbird. I
can't really stand staying with Thunderbird because I enjoy having my
calendar and to do items on my smart phone too much but it's really
frustrating knowing that Microsoft could write a good IMAP client if
they wanted to. I'd almost respect them more if they would just come
out say that they are intentionally going to build a crappy IMAP
client. Then at least you could say they suck honestly.

Tuesday, August 1, 2006

Pure desire?

I just read the press release
on Microsoft’s new “Vista Industrial Design Toolkit” and
really want to applaud Microsoft for this.  It’s really shameful
that with as many great hardware companies as there are building computers,
that Apple still kicks the crap out of all of them.  Are all the artistic
people working at Apple?  Yes, I know that the biggest problem is the
unwillingness to spend the R&D money it takes to build a truly innovative
case, however, Apple has shown that people are willing to pay for that. 
With this move, Microsoft is taking a stand that computers can and should start
being cool.  Still, when my computer starts being an “object of pure
desire” it’s time to step away….


Thursday, July 20, 2006

dasBlog and DotNetNuke happy at last!

I've been using dasBlog to host my blog for over two years and been planning on using DotNetNuke to manage the content of my main site (yes I know I have no content there yet).  I initially tried to use the blog module for DNN but I like the advanced features of dasBlog too much.  I _really_ like the mail to weblog feature!

So, some months ago I attempted to get dasBlog running as a child app under DNN.  I managed to get it mostly working.  I had to copy over most of the DNN assemblies into the dasBlog bin folder and make some small tweaks to the dasBlog web.config.  Even then, the admin bar would not work.  I used this scenario for several months.  However, today I decided to upgrade to DNN 4.3.3 and sat down to finally get dasBlog playing nice with DNN.

The first thing that fails when you attempt to load the blog website (dasBlog as a child web under DNN which is the root web) is a failure to find the namespaces listed in the DNN config file.  My first attempt at solving this was to use the remove element for the pages/namespaces collection and remove all the DNN namespaces for the dasBlog web.  This failed.  So, to fix the error, I copied the DotNetNuke.dll assembly to the dasBlog bin folder. 

The next error was a failure to find the UrlRewriter class.  Previously I had just copied over all the DNN binaries to the dasBlog bin folder to silence these errors.  This time, however, I added remove elements to the httpModules collection. One remove element fo reach DNN module listed.  And that worked! 

That's all I had to do.  So now, dasBlog works dandy as a child web under DNN 4.3.3.  The admin bar is working as well (I'm writing this from the admin section).


Wednesday, June 7, 2006

My XBox 360 has died. Long live my XBox 360!

I've fallen victim to the flashing red lights of doom. 
Yes, Virginia, my Xbox 360 has died.  And let me just say requiring $129
to fix a known manufacturing issue after 90 days is a total rip.  However
I have my stick it to Microsoft card in the form of a 1 year service plan
purchased with my Xbox.  So I’m off to find a service center and
renew my service contract!


IE7 x64 seems to be more stable

I guess uninstalling everything but the kitchen sink must have helped.
Seriously, I think uninstalling Google desktop did the trick. Never before
was I able to run IE7 x64 for more than a few minutes without it crashing.
I've now been running it over about 15 minutes, using multiple tabs, and
otherwise abusing it. No crash.

The funny part is that Outlook 2007 seems faster as well! Now if MS would
just come out with an x64 version of WDS I would be set.

Monday, June 5, 2006

Where did the status bar go?

Visual Studio 2005 seems to work perfectly under
Vista beta 2 but for some reason it no longer has a status bar.



Anyone know why this is?

Wednesday, May 31, 2006

TestDriven.NET working on Vista beta 2.. finally!

TestDriven.NET is a
tool that I use religiously.  It is simply indispensable and so when it
failed to work under Vista beta 2 I was about to declare defeat and head back
to Windows 2003.  Thankfully, Jamie (the author of TestDriven.NET) helped
me work out the problem and it turns out it was likely my fault!  So what


Well, I installed Visual Studio .NET 2003 and Visual Studio
2005 before attempting to install TestDriven.NET.  I ran both systems to
make sure they worked and then proceeded to install TD.Net.  After
installing, any attempts to activate the add-in would result in an error
message stating that the CLSID could not be located. 


The problem, I think, is that I installed TD.Net as administrator. 
This is easy to understand because Vista’s LUA system is whacked. 
My user is in the admin group but does not have admin rights.  Makes sense? 
Right….  But that’s another post.  Anyway, since the user
you create during Vista install doesn’t have full admin rights, it
becomes easy to right click and run as administrator anything you think may
need admin privs.  I think this is what I did.  This, by itself, is
not enough to wreck the install however.  The other part is that TD.NET,
by default, installs for the current user.  So, when the install was done,
I (as my regular non-admin self) could not load the proper CLSID since it had
been installed as admin.  A quick reinstall of TD.Net, this time
indicating that I wanted it installed for all users, did the trick.


Lesson learned?  Remember that the admin user under
Vista is a different user, not you with admin rights.  Also, don’t
run everything as admin.  Be sure you have to run it as admin before you



Tuesday, May 30, 2006

First impressions of Vista beta 2

Been spending a little time with Vista beta 2 and have, so
far, been pretty pleased.  It’s still a bit early to know if I can
use it for my day-to-day work but I can report that most of what I need to use
is installed and working.  Here’s what I’ve seen so far.


Applications I have tried:







The URGE inclusion with Media Player 7 is awesome. 
Within minutes of being up and running in Vista, I was watching videos of the
ACM award winners with my credit card nowhere in sight.


At one point during my first day with Vista I used the
Microsoft Update site to download an updated network driver.  As it was
installing, I actively refused to start any other apps knowing that I was about
to reboot my system.  After a bit I became distracted by some emails and
IRC conversations and then noticed that my IRC client had gone offline and that
the music I was streaming from URGE had stopped.  I poked around inside
media player attempting to find out the problem.  In a few moments the
network resumed and assumed it was just some really nasty network
congestion.  And then I saw this dialog:



The update that was successfully installed was my network
driver.  Yes, yes, I know that Linux has done this for years but it’s
good to see that Vista is  finally capable of this sort of update.


Test of dasBlog mail to weblog


Monday, May 8, 2006

IE7 Win64 instability

Is it just me or is the 64 bit build of IE 7 beta 2 very
unstable?  I've disabled all the non-standard extensions and it still
crashes sporadically and frequently.  It's quite stable on my XP SP2
laptop.  My desktop is running Windows Server 2003 R2 x64.


Thursday, April 27, 2006

Hmm. Here's hoping it runs better than it installs

Finished up my sessions here at the MySQL Users Conference and decided I
would take a moment to install the freshly minted RC1 of Windows Power
Shell.  <pause while booming voice resonates/>

I had Monad beta 2 on this laptop so the installer politely told me I had to
remove that first.  No problem.  Uh, well.  There is a
problem.  Monad beta 2 on this machine was the first beta 2 shipped that
was built against .NET beta 2.  I've since removed that and upgraded to
Visual Studio 2005 and the RTM version of .NET 2.0.  The uninstaller
quickly alerted me to this fact and declared flatly that it could not remove

Not really wanting to uninstall VS 2005 and reinstall .NET beta 2, I played
around with editing my machine.config to get the uninstaller happy.  After
several failed attempts, I simply decided to blast the monad install folder and
rip out the registry key.  I checked the GAC and saw no signs of MSH in
there so maybe I'm safe.  Proceed to install.

Bzzt.  About 70% through the installation, the installer declared that
it was having network difficulty reading from msh_setup-i386.msi.  There's
really two problems with that.  I'M NOT INSTALLING OVER A NETWORK AND THE
MSI IS NOT NAMED MSH_SETUP_I386.MSI!  Sheesh, is it really this hard to
release a product that installs.  Holy crap who's building this

So I made a copy of my PowerShell-i386.msi installer and named it
msh_setup-i386.msi.  The installation of PowerShell completed successfully
then.  I hope.  I'm still waiting for the other shoe to drop. 

Wednesday, April 26, 2006

Pretty interesting read

This article brings up
some good points related to supporting an OS from an OEM

Tuesday, April 25, 2006

Repeat after me: decouple, decouple, decouple

Just saw the post on /. about the release of PowerShell RC1.  Exciting
but then I read this:

"PS won't be shipped with Vista or Windows Server 2007 but it will debut
with Exchange 12."

Huh?  PowerShell will ship with Exchange?  Ok, I understand that
Microsoft has to sell products to stay in business but they could still sell
Windows, Office, Exchange, and all their other products while decoupling major
components such as Explorer, Internet Explorer, PowerShell, and several
others.  By decoupling these, it does several things not the least of which
is forcing their devs to develop more rigid interfaces between the components
and allowing Microsoft to ship these components on a schedule different than the
base products. 

Who among us would not love to have a shell circa 2006 instead of the crappy
Windows explorer we have now?

What's next?  The only way to get the HD-DVD addon for XBox360 is to buy
Biztalk 2007?

Monday, April 24, 2006

VSIP goodnes

I'm working on a Visual Studio package for MySQL and discovering that it is
possible to write hundreds of pages of documentation and still not be able to
answer some of the most basic questions.  Microsoft does it over and over

In this case I'm using managed code to create a custom editor for our
database objects (think Server Explorer).  I don't want to register a file
extension.  After considerable trial and error, I got  a chunk of code
working.  This code called IVsUIShellOpenDocument.InitializeEditorInstance
and IVsUIShell.CreateDocumentWindow and my editor appeared.  However, it
would not prompt to save when the window pane was closed.  GetDocumentInfo
showed an edit lock on my document but UnlockDocument could not remove it.

I replaced this code with simpler code that called
IVsUIShellOpenDocument.OpenSpecificEditor and my documents suddenly started
prompting to save properly.  I had wanted to avoid going this route because
it requires an editor factory class that I thought was unnecessary.  Oh
well.  Unnecessary working code is better than sleek busted

Saturday, April 22, 2006

Heading to the UC

In a few hours, I'll hop a plane to Santa Clara for the 2006 MySQL Users
Conference.  There will be many great MySQL people so I'm sure there will
be excellent blog coverage the entire week.  I'll try to post a few
thoughts myself.

Oh, and in case anyone missed it, the Visual Express products are now free
permanently.  On Windows, I expect Visual C++ Express to be the preferred
"free" tool for building MySQL.  As of right now, we build MySQL on Windows
using Visual Studio 2003.

Monday, April 17, 2006

Someone is always damaged

This morning I read some reports on the reaction to Sun's recent discussion
on open source DRM.  The reaction from the Stallmanites was not
surprisingly negative.  From what I gather, no DRM is the only solution
that would be acceptable however this has left me somewhat confused. 
Perhaps someone could leave me a comment and help me understand how this is
supposed to work.

Here's what I've got so far.  Stallman cites four basic freedoms. 
The freedoms to run the program you wish, to change said program, to distribute
said program, and to distribute said changes.  These freedoms fit neatly
into a software world but are being applied to the digial media and DRM

Apparently, according to Stallman, I should have the right, as the consumer,
to share with all my friends the music and movies I am listening to or
watching.  This sounds like a great deal.  No more heading down to the
music store to pick up that latest cd and no more grumbling because the one song
you like is not released as a single so you are forced to buy the whole crappy
album.  If I want a song in my collection, I simply fire up my BitTorrent
client and grab a copy.

Except what about the rights of the band or artist that produced the
music?  Living in Nashville and being friends with people who have made it
big in music, I can tell you that they work hard to produce good albums. 
What about their rights?  What rights do they have?  I suppose
Stallman would argue that they should give their music away and make money on
concerts.  However, doesn't that impose restrictions on their rights? 
Isn't that denying some of their freedoms for our sake?  What if they don't
want to spend months on the road away from their families?  What if they
want to simply participate in the normal producer-consumer cycle and produce an
item that has a worth such that someone is willing to give them money for

Do you see where this is going?  With no way to protect the content,
music producers will simply stop producing professionally recorded discs of
their music and they will only perform live concerts.  In this
scenario, we all lose.

Tuesday, April 11, 2006

Somebody has to look down the road

I just read this
on how Wal-Mart controls the content of video games with it's
massive retailing power.  They "force" game studios to create certain types
of games by refusing to carry what they perceive to be objectionable
content.  Good for them.

I'm not for censorship and I firmly believe in a person's right to enjoy
whatever type of entertainment they wish (currently legally allowed) however
those individuals that slam corporations like Wal-Mart for refusing to carry
certain items are just not seeing the big picture.  They will cry that
rights are being violated, which is stupid.  Wal-Mart certainly isn't
obligated to carry every game made and it's the game studios (wise) decision to
not develop a game that Wal-Mart will not carry.  It's simply

Maybe I'm wrong.  Maybe it is better if Wal-Mart carried all the games
that are made.  Perhaps society would be better off if we had more games
involving nudity, sex acts, cop killing, prostitution, and vulgar language and
behavior.  You think I'm kidding?  Look at the BMX XXX game, or the
Grant Theft Auto series.  Game studios would make far worse if they could
get by with it.  Maybe there is a place for X-rated and very violent games
in our society but the store shelf at Wal-Mart in front of every 8 year old on
the planet is not it.


Monday, April 3, 2006

I'm sorry

I deeply apologize for the objectionable material that
was recently placed on my site.  It was not my doing but was my
fault.  I failed to properly secure my ongoing test of DotNetNuke and some
idiot took advantage of that.  I think I've removed all traces of this hack
and secured the enty points and I'll keep a close watch on the site for further

Again, I'm sorry.


Monday, March 27, 2006

BitKeeper with Services for Unix

For several days, some of the bk commands have been
failing on my machine with the following error message:

Missing filename ("/bin/more - \?" for help)

Today I finally took the time to reseach what was causing
this.  The cause, as it turns out, was that bk was finding /bin/more as
part of SUA but the argument syntax was apparently not compatible. 
However, because bk found it, it tried to use it rather than fall back to it's
own built-in less.exe.  I was not using SUA, so a quick uninstall had me
going again.


Venice - Days 4, 5, and 6

There are lots of cool museums here, or so they tell
me.  We didn't go to a single one.  It was more fun just wandering
through the old city, eating great food, and marveling at a place that has never
seen automobiles.  We had access to a great two-bedroom, two-bath apartment
in the middle of the San Marco sestiere.  We walked or took the waterbus
everywhere we went.

We did manage to make it to Piazza San Marco and feed the birds.  Well,
feed is not quite right.  You hold the food while they attack you which is
actually quite fun!

Here we are in the Dosoduro sestiere.  We were looking for a good place
to eat lunch and a nice passerby offered to take our picture.

Venice is a wonderful city and everyone agreed that they
would have loved a few extra days!

Rome - Day 3

March 22nd
Today we hit the Vatican again to
attempt the dome ascent but discovered a great gathering outside that shutdown
the Basilica  until 1pm.  The Pope was speaking to the people so we
headed to the Sistine Chapel instead.  It would take days to examine
everything in the Vatican Museums but we zipped through in just over 3
hours.  Here's a snap from inside Capella Sistina.  Yes, I know
cameras were not allowed but everyone was doing it .


Rome - Day 2

March 21st
This morning we were hit with the first
real problem of not being in the city.  No access to a local pastry shop
for breakfast.  So we wound up eating in the hotel.  A few eggs,
croissants, and small glasses of orange juice apparently cost more than 50
euro.  Who knew?

We tackled St. Peter's basilica in the morning.  Amazing.  Pictures
simply can not express the magnitude of what you are seeing.  The immense
size, the history, and the architecture are all incredible.  We got in line
for the climb to the dome but Jacob started crying so we left and said we would
come back.  We never made it.  We simply don't build things like this
anymore which is a real shame.

After eating some lunch, we decided to hit the colosseum.  It had been
closed the day before so we wanted to get their well before it closed.  A
taxi ride and four tickets later and we were strolling through the ancient Roman
colosseum.  Magnificent!  Alot of it had been taken apart and use for
other monuments (such as St. Peter's basilica) but you could still see the basic
structure and imagine an immense crowd cheering as gladiators fought in the
arena.  This site just gives you chills!

Katie was anxious to see the Spanish Steps and the Trevi Fountain (both
featured in her favorite movie - Roman Holiday) so we hopped a taxi and went to
both of those.  The steps were covered up with chain smoking teenagers so
that was a downer.  The fountain was crowded too but we tossed a few coins
into the fountain to insure our return.  After a typical Roman dinner it
was back to the hotel for some sleep.

Here I am tossing a coin into the fountain.

Rome - Day 1

March 20th
We grabbed a couple of train rides from Sorrento to Rome
this morning.  The first train was a commuter from Sorrento to
Naples.  Not a fun ride.  Hard plastic seats and very crowded. 
Promply upon reaching Naples, some old man convinced us that he worked for the
station and politely helped us to our Eurostar seats.  About the time I was
thinking what a helpful chap he had been was just moments before he pulled me
aside and came just short of mugging me for 20 euro.  I got away by only
giving him $20 USD and regretted even doing that.  I hate being
taken.  My wife's new phrase, sela, echos through my brain.

Pleasant ride into Rome, 20 euro taxi ride to the hotel, and we are
set!  The hotel is the Crown Plaza over near the Vatican.  I was
originally concerned that using a hotel outside of city center would somehow
diminish our experience but looking back I don't think that was the case. 
We really enjoyed having access to the hotel staff and use of the courtesy
shuttle into and out of the city.

We tried to do some sightseeing on this first day but it was after 4 when we
got into the city and most of the attactions closed at 4:30.  We chose
instead to wander around inside the Trastevere area which is known for it's good
food.  We found a ristorante that we wanted to eat at but it did not open
until  7:30.  This is pretty common for Roman establishments. 
Open early, close from around 2pm to 7pm and then reopen until about 11. 
So we made our way back toward the shuttle pickup and ate at the first little
shop we came to. 

Sorrento Dev Con - Farewell Dinner

I've returned from vacation and will be posting the blog drafts I've got
stuffed in my outbox.  The snaps below are from the farewell dinner at the
end of our Dev Con in Sorrento, Italy.  Great music, great food, and

Tomorrow my family and I are attending the Pompeii excursion (I've already
blogged about the running water there!).  We are going to follow that with
3 days in Rome and 3 days in Venice (blogs to follow).

And, of course, the night would not have been complete without a number from

Pompeii had running water

Not even 50 years ago, you could easily find families here in the US that did
not have running water and would go to a central water source such as a well for
their needs.  The people of Pompeii had run lead water pipes to the various
fountains around the the city to allow for drinking water.  Folks, this is
at least 2000 years ago.  Maybe they were just smarter back then.  But
then they used their own city streets for sewage so there goes the theory of
them being smarter.  Ha!

They also had places that were essentially bars.  Areas that had small,
barrel-like containers of drink that people could walk up to and quench their
thirst.  Made me wonder if each one had their own Cliff Claven (the
know-it-all guy that no one likes) or if there is this one guy who every time he
walks up, they all yell "Claudius, what is vp?". 

Oh, and from all the signs around the city, the men of Pompeii were very
"lucky".  If you don't know what I mean by that, do some research into what
the men of that city thought would bring them luck.  Here's a hint: 
you only need one hand.

Wednesday, March 15, 2006

Pizza and Karaoke

It's Wednesday at DevCon 2006 and the dinner activity tonight was pizza and
karaoke.  The pizza was pretty good but the
entertainment was even better.  Sans alcohol I'm not much of a singer, but
I found out tonight that MySQL has tons of great vocal talent. :-p


Patrick G was the star of the

Patrik B, of course, did it "his way".

Mark (left) and Jim (right) were my non-singer compadres.

And Eric (in the tye dyed shirt) shows us what happens when you apply a
little alcohol.  :-)

I just don't get it

I read alot of blogs.  Some of them agree with me politically and some
of them don't.  Often I find the ones that don't entertaining and I'm
especially fond of the blogs that bash George Bush.  He's certainly not a
great president and I can't vouch for his honesty but, just like with Bill
Clinton, I don't assert to be true what I don't know to be true.

Did the Clinton's have anything to do with Foster's death?  I have no
idea and you'll never hear me say otherwise.  Did he lie under oath about
Monica Lewinsky?  Yup, that I know.  He admitted it.  The war in
Iraq certainly could have been handled better but did  George Bush
*intentionally* mislead Congress and the American people?  I don't know and
they don't either.  Remember, we are talking about facts, not opinions.

Recently I've seen blogs asserting that Bush is borderline racist because he
knew of Katrina 1 day before it hit.  From what I gather, the federal
government is completely responsible for my safety.  I guess when the next
tornado comes ripping by my house I should wait outside for the FEMA bus (wonder
if I should wear something bright so they see me?)  Of course it's
silly.  The folks of New Orleans, including the mayor and governor of
LA, also knew Katrina was coming and chose to stay.  By the way,
parts of Alabama and Missippi were hit much harder than New Orleans but they
didn't seem to have the same problems.  I know this because I went down and
led cleanup crews one weekend and talked to the folks there.

Is the federal government there to help us?  Yes.  However, when
things go south it's very easy to point the finger at the Prez, especially when
you don't happen to agree with anything he stands for.  Could he and our
disaster response teams have done better?  Yes, again.  However the
mayor, governor, and people of New Orleans are the most responsible for not
repairing levees and attempting leave sooner.

Why the Get methods do not convert data

Alot of people ask
me why Connector/Net does not allow converting of field values to various
primitive types simply by calling the appropriate GetXXX methods on the
datareader.  To better understand what they are asking, consider the case
where you have a table with the first column of type int32.  For whatever
reason, you've decided that you want that value to be in a long primitive. 
So you do what seems logical and call GetInt64() on the reader object.  You
are then greeted with an odd InvalidCast exception.  This seems strange
considering that an int32 primitive can easily be cast to an int64 primitive
simply by using the appropriate cast syntax.  Indeed this does seem odd
until you understand what is going on under the hood.


When Connector/Net
reads the resultset values off the wire, it parses that data into the
appropriate primitives based on the field type reported by MySQL.  So INT
columns are parsed to an Int32 primitive, TINY columns are parsed to a byte
primitive, and so on.  When one of the Get methods (such as GetInt32,
GetInt64, GetBool) is called on the MySqlDataReader object, that method takes
the index given, accesses the appropriate field object, and reads the
value.  Here is where it gets interesting.


The first approach
to implementing these Get methods might be to do the


val = fields[index].Value


However, there is a
problem with this code.  It will create a box to hold our value type and
that takes cycles.  In fact, in tests I've run it can be quite significant
and when you think of sites that are doing millions of hits per day, every cycle
counts.  Casting to object is definitely out of the question.  To
avoid the boxing, I've setup a set of classes that map directly to MySQL
primitives with each class having a value property of that primitive


To return to our
original question, to allow someone to convert an int32 column to int64 simply
by calling GetInt64 would require the GetInt64 method to perform a conversion in
every case.  It might only convert to itself (Int64) or it might convert to
the type being requested (Int32).  While this is possible, I believe this
overhead for every call to the Get methods is unwarranted.  First, you can
always cast the returned value to the type you need as


longval = (Int64)reader.GetInt32(index);


The second reason
why I don't believe it's a good idea is that it can hide the real structure of
your database.  If you have an Int32 column and you are needing to retrieve
that value into an Int64 primitive, then perhaps you should reconsider the types
used in your database.

Monday, March 13, 2006

Putty should be flexible, right?

So I'm here in Sorrento, Italy at our dev conference and struggling mightily
to get a good clone of the 5.1 repository on my box.  You see I'm using
BitKeeper with plink (ala Putty) as the SSH tunnel.  The wireless
connection on my Inspiron 6000  keeps going down and coming back up and
this is something that plink simply can't stand. 

So I installed OpenSSH for Windows (yes the abandoned project that is sort of
being maintained).  Worked first time.  Apparently the stock ssh
client that comes with cygwin (and therefore with OpenSSH for Windows) is much
more tolerant of unstable network connections. 

Thursday, February 23, 2006

Vista 5308 is here!

Downloading from MSDN right now!  I hope it's a bit more stable and I'm
looking forward to playing with the side bar.

Also, anyone know any good Pocket PC RSS sync software?

Tuesday, February 7, 2006

Windows Nonsense Issue #7652

I use Windows Server 2003 x64 R2 for my daily work since I'm very focused on
the .NET framework but sometimes Windows gives you a little glimpse into it's
internal workings.  I give you exhibit A.

Should I be expecting an upgrade to my recycle bin soon?  It's clearly

VMWare plays the free card

Virtualization has been a key part of my development process for the last
couple of years.  I've used Virtual PC since way before Microsoft bought it
but usually just to check how a web app looks under an ancient build of
IE.  Developing code here at MySQL means that code needs to work under
Windows and Unix and since I run Windows Server 2003 x64 R2 as my main OS I need
to run some flavor of Linux under some virtualization software.

Before I shifted to an x64 build of Windows, that choice was Virtual
PC.  Why?  It came with my MSDN so it was an easy choice.  The
Linux support under Virtual PC is understandably non-existent but since my needs
were relatively small I didn't have any problems.  Enter Windows x64
and exit Virtual PC.  Yup, not x64 compatible.

No problem. VMWare runs perfectly on x64 (and if I had the right generation
of Opteron I could even run x64 guest OS) so for the past little while I've been
using Workstation 5 and 5.5 (various betas and RTM).  Then comes the
announcement that Microsoft Virtual Server can be had for $99.  Wow, that's
a great price.  Now if it just didn't suck for running X on Linux. 
Yes I know about the support for Linux they just announced but with VMWare's
newest announcement I don't really care.

Yesterday VMWare topped the $99 pricetag by giving the server product away
totally free.  You read that right.  If you have not already done so,
head on over here and get your copy. 
VMWare has certainly raised the bar in the virtualization market.  Now
let's see what Microsoft does.

Monday, January 16, 2006

What a crappy couple of days

Finally back to where I started, sans *ALL* my blog entries.  Holy crap this sucks!  A couple of days ago I decided that I would experiment with DotNetNuke.  A couple of failed install attempts later and I was asking the very helpful staff at my hosting provider to install it for me (which they did).   What they also did was delete everything on my site before they did the installation!

No problem, right?  Just do a quick restore from tape.  Bzzzt.  The daily backup for today has just overwritten the daily backup for yesterday.  Ok, no problem.  You have weekly backups too, right?  Bzzzt.  Your data is gone and there is nothing we can do about it.  Crap.  Yes, I know.  Keep your own backups.  Make that #246 on the list of things I need to do. 

In any event, I've reinstalled dasBlog and reuploaded my old site.  The blog has the same address so any subscriptions should still work though old links will certainly not work.

On the bright side, Jacob is doing great.  He's already gained back to his birth weight at only 8 days old and is eating and sleeping tons (which helps my sleeping).  Construction is also going great on the kids floor (hope to provide some pics later).