Monday, October 6, 2008

Citroën Stops Teasing and Finally Reveals GTbyCITROËN

Citroën, one of France's largest manufacturers, has been teasing us for weeks with shots of their mystery concept car. The photos that have been dribbling out have shown a white (it's the new black!), highly stylised vehicle mostly shrouded in a red sheet with the Gran Turismo branding on it.

Well, they finally revealed the whole car at the Paris Motor Show and we even know its name: GTbyCITROËN. Yes, the name looks like a typo but that really is it... all mashed up like that.

I'm not a big fan of Citroën's production car designs but this beast blew me away. What makes this concept car even more interesting is that it is already available to play in Gran Turismo 5: Prologue on the PS3. Loading up the game now will let you download a set of new vehicles including the GTbyCITROËN. Citroën says the car was "a partnership between Citroën and Polyphony." Polyphony of course being the people behind the hugely successful Gran Turismo game series on Playstation 2 and 3.

In the game the new GT concept is a hybrid EV powered by hydrogen fuel cells with 646 bhp (481 Kw) from the main engine plus an additional 136 bhp (101 Kw) from hydrogen-power. The 3,000-pound two-seater takes a virtual 3.6 seconds to get from 0 to 100 kmh so it's fast, but not THAT fast. Of course anyone can make up whatever they want in the game world so we'll just have to wait and see what the real deal can do.

Plenty of photos of the real thing and the virtual thing over at Autoblog.

Saturday, October 4, 2008

What Are You Eating?

I thought it was a little passe to bash McDonalds but I just couldn't help but share this.

What you see here is a McDonalds burger (obviously) but what makes it interesting is that it is from 1996. The 12 year old burger looks the same today as it did back then. The white specs on the patty are crumbs from the bun.

Karen Hanrahan over at Best of Mother Earth keeps it as a prop for her talk about nutrition where she educates parents on what they should be feeding their kids, and going by this, she's not big on Maccas.

Have a read about this amazing burger from the past on Karen's blog. She has a comparison photo of this burger with a new one plus the high tech storage container she keeps it in.

Wednesday, October 1, 2008

Sony's 0.3mm Super-Thin OLED Screen

While the LCD manufacturers are having a wang-measuring contest with their slim displays Sony comes out with this OLED (Organic Light-Emitting Diode) prototype that just blows everyone away.

Because OLED doesn't require any backlight like LCD the screen can be as thin as, well, the screen!

The screen in this image is that paper-thin (literally!), slightly bent thing in the glass case. Of course what we can't see is the power source and other bits and pieces like a TV tuner but it's cool nonetheless.

OLED's biggest hold-back at the moment is the size, especially when plasmas and LCDs are past the 100" mark (that's 2.5 meters diagonally) but it's just a matter of time before things get bigger and less expensive. That said OLED gives amazing contrast as well as very little power consumption.

More screen bending photos over at Engadget.

SQL Server 2008 Full Text Search Weirdness

Sorry to the non-tech readers but I just had to post this one.

After hearing Greg Low's session at Tech.Ed on Full-Text Searches in SQL Server 2008 I thought I'd upgrade from 2005 to take advantages of the new features. The biggest difference between 2008 and 2005's FTS is that the indexing etc. is now done in the database instead of palming it off to the operating system (2005 used Windows Search for FTS).

So after a switch to SQL Server 2008 CTP on new hardware running Windows Server 2008 I found that one of my searches that ran well under 1 second in 2005 was taking over 10 seconds in 2008. As you may have guessed I was a little flabergasted.

Basically the query is searching for cars (models) that have the search string in their name or the search string is in the car's manufacturer name. Using "lambo" as a test it should return all the Lamborghinis in the database.

Original Inner Join Query

SELECT * FROM Model WITH (NOLOCK)

INNER JOIN Manufacturer WITH (NOLOCK) ON Model.ManufacturerId = Manufacturer.ManufacturerId

WHERE CONTAINS(Model.*, '"*lambo*"') OR CONTAINS(Manufacturer.*, '"*lambo*"')

ORDER BY Model.StartOfProduction DESC, Model.ModelName


Now before you get carried away with those "SELECT *"s in there, this is early days and I'm using LINQ to SQL.

Anyway, my first thought was that the FTS indexes were out of whack after coming across from 2005. I remembered Greg saying something about 2008 not rebuilding the indexes on import unless you explicitly told it to. I set the server to rebuild indexes on import and reimported the database. The query was down to a scorching 5 seconds or so. Still far from an improvement over the >1 seconds on 2005.

A few emails to and fro with Greg, an upgrade to the hardware (more RAM) and to SQL Server 2008 RTM and the very same query was now taking over 20 seconds! And it was in this darkest hour that I stepped back and looked at the problem from afar and realised I should just stop bashing my head against the wall.

What I needed from the query was a list of cars that either have a matching name or a matching manufacturer name. So instead of using an inner join with a Contains() I used Union which allows you to take the results from multiple queries and output them as one table.

New Union Query

SELECT ModelId ... (explicit list of columns)

FROM Model WITH (NOLOCK)

WHERE CONTAINS(Model.*, '"*lambo*"')

UNION

SELECT ModelId ... (explicit list of columns again)

FROM Model WITH (NOLOCK)

INNER JOIN Manufacturer WITH (NOLOCK) ON Model.ManufacturerId = Manufacturer.ManufacturerId

WHERE CONTAINS(Manufacturer.*, '"*lambo*"')

ORDER BY Model.StartOfProduction DESC, Model.ModelName


It's a little more complex than the original query but now it's back to running at under 1 second. *phew*

Big thanks to Greg for putting up with my nattering and for passing this on to the SQL Server product group to see if they can figure out what's going on with the inner join query.

THE END