Friday, February 02, 2007

Updated blog template

I thought I'd refresh the look of the blog with a new template that includes liquid flow. Hopefully this view is cleaner than the last.

I also took to opportunity to upgrade to the newer version of Blogger. It's working really well and is much quicker to post and edit messages.

Tuesday, December 19, 2006

Visual Studio 2005 Vista Update Beta

Visual Studio 2005 Service Pack 1 Update for Windows Vista Beta is now available - requires Visual Studio 2005 Service Pack 1.

For more info see Visual Studio on Windows Vista.

Monday, December 11, 2006

XNA Framework Redistributable Released

To coincide with the release of XNA Game Studio, Microsoft has also released the XNA Framework Redistributable. The XNA Framework Redistributable allows games developed using Microsoft XNA Game Studio Express 1.0 to run on Windows XP SP2 (note that this does not include Windows Vista – which will be added in an update next year).

XNA Game Studio Express Released

Microsoft has released XNA Game Studio Express. For more information see XNA on Channel 9.

Thursday, December 07, 2006

Keima HQ Included in Live Data Update

Microsoft has updated their bridseye data. For more information see the Windows Live Local Blog (shouldn't they update the blog name to the official Windows Live Search Maps).

The main update (at least for me) is they've included our company HQ (Keima):

They've also immortalised my R32 (this is the silver one, not the deep blue R32). BTW: my flat is about two thirds of the way up and nearest to the camera.

Incidentally, this is the building that Jack is standing on in Torchwood:

The birdseye view is great, but the grid approach is really annoying. Good news:

"For all you Birds Eye fans - good news! We'll be releasing an update this month with a lot of Birds Eye improvements and among them will be the death of the grid :-)"

(from Frank Gehry's Architecture via Birds Eye).

Wednesday, December 06, 2006

Microsoft Book Search

During the mid nineties, the UK had a limited debate on what the government should do to celebrate the new millennium. In the end, the government of the day (Conservatives under John Major) and taken forward by Labour under Tony Blair decided to construct a big tent in the middle of London: the Millennium Dome. I was not impressed (and my poor friends have had to put up with me whinging about it for over a decade now). You see, I wanted another project which I was convinced would mark the new millennium, set up research for the next century and allow the UK to give something to the whole world. That idea was to digitize the British Library and make it available to all over the Internet. I thought that such a database, coupled with a good search engine and APIs would be perfect for research, would be ripe for data mining, and just good fun to browse.

Well Microsoft has now done this (so I'll have to find something else to whinge about – not that I'm short of subjects): Microsoft Book Search.

It's in beta at the moment and isn't perfect (e.g. the pages are not selectable text), but it shows what can be done. Most of the searches I've done have all resulted in the option to download the entire book (unlike Google Book Search, Microsoft are only using out-of-copyright books or books whose publishers have granted them the rights to publish). For example, I searched for the term astrophysics and found this book The Riddle of the Universe which has a link to download the entire book.

One interesting thing in the pipeline, according to Danielle Tiedt, the general manager of Live Search Selection for Microsoft, is full integration with web content (via Windows Live Search).

Friday, December 01, 2006

Programmable Matter

The T-1000 from Terminator 2

I've just come across the concept of programmable matter from last year's IEEE Computer. The Claytronics project is a joint effort between researchers at Intel and Carnegie Mellon University.

The core concept of programmable matter is nanoscale, programmable, sensing, locomotive entities called catoms (claytronic atoms – not strictly correct; they have more in common with complex cells).

Download the original article: Programmable Matter.

Note this is not a new concept. Nanomorphs were proposed by science fiction writer David Pulver. They have similar properties to claytronics.

Thursday, November 30, 2006

Communications - The Next Decade

Ofcom has today published a series of essays by academics, politicians and regulators that examine the effect of convergence on the global communications sector. This can be bought (soon) from The Stationary Office or downloaded today direct from Ofcom: Communications – The Next Decade.pdf.

There's a mix of articles here from a number of people of differing backgrounds. One of the central themes that most seem to share is the convergence of telecoms, internet and television. All will converge around internet technologies with all IP networks.

I particularly enjoyed Peter Cochrane's essay: The Future of Regulation – Not. His view, which I agree with, is that a reduction in regulation of spectrum is now possible as new digital technologies replace analogue and networks become all IP based. Other technologies, such as MIMO and beam-steering antennas also reduce electromagnetic pollution making the spectrum lock-out of other service providers unnecessary. The internet is a perfect example of where we should be heading. However, we are not quite there yet. It will take another decade, but it will be essential if we are to achieve the most effective use of our spectrum. Unfortunately, due to political reasons and not technological reasons, I doubt this will happen. Ofcom themselves recently gave a reason why: Economic Impact of the Use of Radio Spectrum in the UK.pdf. This study estimates the net impact made by radio spectrum using firms to be in the range of £37 billion in contribution to UK GDP and 240,000 in contribution to employment. This represents 3 per cent of total UK GDP and 0.8 per cent of total workforce jobs. Of course, such spectrum costs are an effective tax on the consumer (e.g. UK 3G Mobile Auction of 2000) but it is unlikely that any government would have the political will to give up such a "tax".

Tuesday, November 28, 2006

XNA on Channel 9

Frank Savage demonstrates XNA on Channel 9: Looking at XNA - Part Two. One of the coolest things is watching him setting a breakpoint within Visual Studio 2005 whilst debugging a game running on an Xbox 360. It is also cool to see the demo game that comes with XNA Studio runs at 1080p. All of this from managed DirectX running on the .NET Compact Framework (the Compact version runs on the Xbox 360) running on an Xbox 360 (and only using a single core of the three available).

Note that XNA Game Studio Express will require Visual Studio 2005 Service Pack 1 and Visual Studio 2005 SP1 Update for Windows Vista to be applied to Visual C# Express if Xbox 360 games are to be developed on Windows Vista. (See the XNA Team Blog and "Soma" Somasegar's Blog for more information.)

Monday, November 27, 2006

Goggle Data Copyright

Is it me, or has a copyright message appeared on all the tiles downloaded from Google Maps? I've mainly been using Windows Live Search Maps, so could be mistaken.

Here is an example from Google Maps (this is a building near our Keima offices that shows up the copyright markings clearly):

and the same area from Windows Live Search Maps:

Perhaps it's always been there, but it is very distracting. Perhaps this is connected to the recent shutdown of the open source Gaia (see Ogle Earth: From Gaia with love)

Friday, November 24, 2006

Open Command Window Here

Here's a neat trick I just stumbled across: On Windows Vista, you can Shift/Right-click on a folder to get the Open Command Window Here:

This will open a Command Prompt window with the working directory set to that folder:

Visual Studio 2005 and Tracepoints

Tracepoints in Visual Studio 2005 are such a great debugging tool. Here's a summary of some of the useful things I've picked up relating to tracepoints. (At the moment, I've only used tracepoints in C#. Some points I bring up below relate to the .NET Framework, so will not work with unmanaged C++.)

Inserting a tracepoint

Two methods I know of:

  • Right-click the source line and select Breakpoint / Insert Tracepoint
  • Right-click an existing breakpoint and select When Hit and check Print a message when the dialog is displayed.

Either way, you'll see the following dialog (click for a better view):

Once you press OK, you'll see a diamond marker in the code:


Information added to the Print a message textbox is shown in the Output window. You could do this with in-code trace messages of course, but the beauty of using tracepoints is the code does not need to be edited (requiring a re-compile and possibly introducing a bug) and the message can be changed at any time during a debugging session.

Text entered directly into the message textbox can be a simple text message ("I've entered MyMethod"), contains special keywords ("Function: $FUNCTION") or expressions ("MyVariable = { MyVariable }").

The special keywords are (most shown in the explanatory text on the dialog):

  • $ADDRESS – the current instruction
  • $CALLER – previous function name
  • $CALLSTACK – the call stack
  • $FUNCTION – the name of the current function
  • $PID – the process ID
  • $PNAME – the process name
  • $TID – the thread ID
  • $TNAME – the thread name

There are two additional keywords not shown in the dialog

  • $FILEPOS – the current file position
  • $TICK – the CPU tick count in hexadecimal

There is no control over the output, so $FUNCTION contains the full signature including the namespace, classname and the types of any parameters.

Text in braces ('{' and '}') is evaluated. This can contain any code, so you can have something like:

  • Time: { DateTime.Now.ToLongTimeString() }

Yes, you can reference various classes from the .NET Framework. Or you could call a function or method:

  • Function returns: { MyMethod() }

So, using something like:

Func: $FUNCTION, Time: { DateTime.Now.ToLongTimeString() }, zoom: { zoom }

Will show up in the Output window every time this code is encountered:

Func: Keima.SetZoomLevel(int), Time: "16:31:55", zoom: 1
Func: Keima.SetZoomLevel(int), Time: "16:31:59", zoom: 3
Func: Keima.SetZoomLevel(int), Time: "16:32:02", zoom: 5
Func: Keima.SetZoomLevel(int), Time: "16:32:17", zoom: 9
Func: Keima.SetZoomLevel(int), Time: "16:32:20", zoom: 11

I've found a few restrictions:

  • Everything is output to a single line in the Output window (although $CALLSTACK outputs to multiple lines – adding '\n' etc doesn't help).
  • The messages only go to the Output window. It would have been nice to output to a file.

Managing tracepoints

The best way to manage tracepoint is to use the normal Breakpoints window (chord: Ctrl-D, B).

You can right-click a tracepoint to disable it or convert a breakpoint into a tracepoint (by selecting When Hit).

Thursday, November 23, 2006

Low power FM transmitters soon to be Legal in UK

Ofcom today confirmed that low power FM transmitters that help "connect" audio devices such as MP3 players will become legal in the UK from 08 Dec 2006. Just in time for Christmas!

Wednesday, November 22, 2006

Microsoft XML Notepad 2007

Microsoft has released XML Notepad 2007.

Features include:

  • Tree View synchronized with Node Text View for quick editing of node names and values.
  • Incremental search (Ctrl+I) in both tree and text views, so as you type it navigates to matching nodes.
  • Cut/copy/paste with full namespace support.
  • Drag/drop support for easy manipulation of the tree, even across different instances of XML Notepad and from the file system.
  • Infinite undo/redo for all edit operations.
  • In place popup multi-line editing of large text node values.
  • Configurable fonts and colors via the options dialog.
  • Full find/replace dialog with support for regex and XPath.
  • Good performance on large XML documents, loading a 3mb document in about one second.
  • Instant XML schema validation while you edit with errors and warnings shown in the task list window.
  • Intellisense based on expected elements and attributes and enumerated simple type values.
  • Support for custom editors for date, dateTime and time datatypes and other types like color.
  • Handy nudge tool bar buttons for quick movement of nodes up and down the tree.
  • Inplace HTML viewer for processing <?xml-stylesheets instructions.
  • Built-in XML Diff tool.

Tuesday, November 21, 2006

Improved KML Handling for Google Maps

James Fee points out that the latest updates to Google Maps have improved KML handling. Amongst other things, Google Maps now supports image overlays. Here is a Google example:

As James mentions, this is good for commercial organisations without a license for Google Earth. They can still view the results of applications that export KML.

Power Increases for UK Wi-Fi Rejected

In July 2006 Ofcom initiated a consultation on higher power limits for license exempt devices. One idea was that rural devices could have higher power limits. I'm not sure what Ofcom were thinking here, but I thought this was clearly unworkable:

  1. The increased interference on Bluetooth would make rural areas no-go regions for hands-free users;
  2. Wi-Fi devices would have to be location aware in order to meet standards.
  3. Consumers in rural areas don't need higher power. Current power restrictions allow standard Wi-Fi devices to cover a standard house and even larger houses can be covered by WDS compatible APs.
  4. Wi-Fi hotspot providers can use mesh.

Thankfully common sense has prevailed and they have rejected increasing the power limits for 2.4 GHz.

R32 Adverts

I own a fifth generation Volkswagen R32 :

so was amused to see these adverts appear recently:

I was not so amused to see that what is supposed to be the most powerful production Golf has a potential rival, the R GTI:

Whereas the R32 has 250 bhp, the R GTI has 400 bhp! Mine does 0 - 62mph (0 - 100 km/h) in 5.8 seconds, this beast can do it in 3.8 seconds. The biggest problem with the R GTI will be grip. The R32 solves this over the GTI by having larger, wider wheels driven through all four wheels (with an adaptive Haldex differential). With "only" 250 bhp, the R32's power-to-weight ratio is at the limit of what can practically be kept on the road. Often, with a quick start, the fronts will start to lose grip before the electronics throw all the power to the rears. So I'm not sure I'll be tempted by the R GTI. (Having said that, Volkswagen solved the problem with the most powerful production car, the 1000+ bhp Bugatti Veyron.) Perhaps, I'll be tempted by the other Golf-based car due in 2008, the Scirocco:

MapCruncher 3.01

There's been a minor update to MapCruncher to fix a bug with handling PDF transparencies. The updated version is here.

Update: it's now been updated to MapCruncher 3.02 to fix a bug in computing the default zoom render level for very small source images.

US EV-DO Approaches 100%

Chetan Sharma reports that Sprint and Verizon have completed their EV-DO Rev. 0 rollout and now have national coverage in the US. This is remarkable for two reasons:

  1. They only stared the upgrade a year ago;
  2. Sprint's plans to have 100 million users covered by Q4 2008 with WiMAX needs to occur at a similar, if not faster, pace.

Note that Sprint claims a similar rate for EV-DO Rev. A with initial rollout beginning end of October 2006 and being completed by Q4 2007. That's pretty good going.

Saturday, November 18, 2006

Virtual Earth 3D 1.1 Update

Virtual Earth 3D has been updated to 1.1 (download here). I'm not sure if I'm imagining it, but it seems faster. I don't think the SDK or iSDK has been updated. Note that Microsoft's maps team have produced Virtual Earth MapControl 3.2, Virtual Earth MapControl 4.0, Virtual Earth 3D 1.0 and Virtual Earth 3D 1.1 in two weeks. That's pretty good going!

MapCruncher 3.00

MapCruncher has been updated to version 3.00 ( - see this changelog). The main changes include: improvements to the stability; support for Virtual Earth 3D; projection fix for maps that covered large areas; and fixes for the stale tiles that would accumulate within the cache.