Tuesday, May 30, 2006

Did you know that TempDB's collation isn't necessarily the same as your database's collation? Do you care?

Why, yes, you do.

  • We all know that you can set the default collation for a SQL Server instance when you install it, right?
  • We all know that you can set the default collation for a database when you create it, right? (and it defaults to the instance's setting)
  • We mostly all know that you can set the collation for a table when you create it, right? (and it defaults to the database's setting)
  • Some of us even know that you can set the collation for an individual column, right? (and it defaults to the table's setting)

Now, quick, what happens to temporary tables? They're created in TempDB, of course. What collation is applied to those tables? The default collation for TempDB, of course.

Oh... I see, so if my instance is case insensitive (most are), and my TempDB hasn't been ALTERed to a specific collation (most haven't), then when I create a temporary table from my case-sensitive database I am about to be surprised in a very subtle way... It's as easy as CREATE TABLE #temp COLLATE database_default to prevent this.

Kimberly L. Tripp has the details, it is a must-read: Changing Database Collation and dealing with TempDB Objects.

Wednesday, May 24, 2006

MSDN Product Feedback Center

From Eric Lippert

Now, since this is an error case, surely we can simply fix the bug. We'd be turning a case which is presently an error into something which works. Turning broken code into working code is by definition not a breaking change -- a breaking change is turning working code into broken code, or working code with different semantics.

Someone should tell that to whoever closed this (still lurking) bug: TypeConverter for value types (such as int, bool, short, etc.) return true to IsValid, even if the value is not valid

Mort, Elivis and Einstein, can't we all just build stuff?

For getting up and running this is pretty true. However, there are ongoing wars between the RAD (everything’s declarative) camp and the non RADs. Just hope you don’t get caught between the two when trying to figure out a good solution to a particular problem.

[Via Ryan Williams]

This really resounds with me today. I've been using ASP.Net 2.0, Atlas, Atlas Control Toolkit, the CSS Controls Adapters and they just don't all hang together well. The message is confused too, we've got open-source on ACT and CSSCA (yeah!), but not on Atlas or the Atlas Extenders (boo!). Don't even get me started about the confusion between WPF, Click-Once or "traditional" ASP.Net.

No wonder we're all out here still creating the same set of applications (CRM, CMS, Order Entry, Portals, Aggregators, Forums, etc.) over and over instead of building something new.

Tuesday, May 23, 2006

Let's see, would I rather code in C# or Java?

Me, I like C# a lot more. But that cool new tool from Google that lets me code in Java and it runs as JavsScript on the client browser intrigues me.

But, just in time Nikhil Kothari saves the day!

How about a C#-to-Javascript compiler that is hooked into the Atlas library. Check out the Script# Prototype

Friday, May 19, 2006

I want to see Woven Hand again... (and Eventful is a REALLY awesome site)

I was looking into the client-side aggregation features of eventsites. Unfortunately, eventsites requires FireFox, so I couldn't really play much. I did, however, look into the architecture described in this pair of articles by webkitchen. This clever application uses Google Maps for the event location mapping API, uses Flickr for photos from the event. It uses evdb.com as the background event distributed-database. I actually like the eventful.com site that exposes this database. It is really easy to use and packed with features. I added some venues in my home town, added a couple events and performers and even created some "demands" for shows from bands I really like. Those demand can be exposed on your own site for others to click on and "increase the demand". I like this idea a lot. Maybe Microsoft could use this setup for polling the development community for features we want, instead of this monstrosity.

Anyway, here's my demands for Woven Hand and Over The Rhine showing a couple of styles available. The nicest thing is the way this whole site works to make life easy both for users AND for developers using the API exposed at evdb.com.

A Context-Bound Thread Queuer

Avner Kashtan has posited a wonderful class that lets you bind operational contexts of any kind to the another thread via the ThreadPool.QueueUserWorkItem. This makes it really easy to store away contextual information (like a WCF OperationContext) that is then used during the pooled-thread's execution of the work item. Read on [here]

Tuesday, May 16, 2006

Speeding up the C# Source Code Editor

Roland Weigelt points out a great tip for speeding up the C# source code editor. I also suggest assigning an icon to the toolbar and setting the display style to "Default Style" to get just the icon.

Wednesday, May 10, 2006

Code Monkey like Tab

This is so true (click the link labelled Code Monkey). Thanks again from Jonathan Coulton.

Monday, May 08, 2006

Too much time, or just dedicated?

Of course I watched this. Thankfully someone saved me the time of reversing it so I can see how amazing his dedication really is.

I'm sharing my feed list

If you want to see what I read every day feel free to checkout my list here: here.

Courtesy of Share Your OPML.

Now if they only would respect my carefully crafted folder structure.

p.s. I'm #52 on the Most Prolific list as of this posting. I'm not sure if that's a good thing or not...