Thursday, December 08, 2011
Celsius wins at 2011 UK IT Industry Awards
Wednesday, November 30, 2011
BBC Micro is 30 years old!
It's strange now that I'm based in Cambridge and occasionally bump into people who were involved with Acorn / Sinclair in the old days.
Wednesday, November 16, 2011
Silicon Valley comes to Cambridge
Friday, November 11, 2011
UK IT Industry Awards
Friday, September 02, 2011
The UK IT Awards are a platform for the entire profession to celebrate best practice, innovation and excellence. The shortlisted organisations have been selected based on their business success in the past 12 months, and demonstrable high levels of customer satisfaction and business benefits from the users of their products and services, with judges considering each on its merits in terms of professionalism, excellence, innovation and measurable success.
With the announcement of the finalists, David Clarke, Chief Executive Officer, BCS, The Chartered Institute for IT, said: “Congratulations to the finalists; the competition to reach this stage of our prestigious Awards is tough. Our Awards are central to our mission to recognise the innovation and professionalism of those working in IT and I’m delighted that every year we have such a variety of high quality entries. They are an excellent reflection of the impact IT has on so many aspects of our information society and the potential IT has to transform business, society and our lives.”
Abigail Waraker, Editor of Computing commented: “I would like to congratulate the finalists. The UK IT Industry Awards are rigorously judged and to be announced as a finalist is a great achievement.”
The award ceremony itself will take place in London on 10th November.
See http://www.ukitindustryawards.co.uk/ and Computing Magazine Article
Tuesday, December 28, 2010
Datacenter Leaders Award winner
Friday, July 02, 2010
Vodafone Sure Signal with Vigor 2820
In order to get my Vodafone Sure Signal to work with my Vigor 2820 router I needed to make the following changes on the Router. The Vigor 2820 is running firmware 3.3.4_232201.
The Sure Signal uses DHCP to get an IP address. I made sure I had allocated a fixed address using the LAN->Bind IP to MAC menu. The MAC address is shown on the Sure Signal serial sticker.
From the NAT->Open Ports menu I added an entry to the list of open ports
I named the entry “Vodafone Sure Signal”, entered the fixed IP address of the Sure Signal (192.168.65.2 in my case, yours will undoubtedly be different) and entered the following port numbers.
TCP Port 50
UDP Port 500
UDP Port 4500
Once all the settings were made it took about 15 minutes before the @ light stopped flashing slowly and the bottom green tick light came on.
The lights now look like this :
(all lights are on and not flashing)
And for the first time in 7 years I have a 5 bar 3G mobile signal at home!
Until now I’ve not been able to get any signal at all. Fantastic, I can finally use my phone!
New iPhone 4
My new Vodafone iPhone 4 arrived today. I was previously with O2 but switched to Vodafone so i could use their Sure Signal Femto Cell repeater.
I was worried that switching networks would be a problem. I’m pleased to report it was very straightforward.
I plugged the new iPhone4 into my PC. iTunes recognised the new phone and restored my old 3G settings. After about 30 minutes of copying files it was all working and my old number was working on the new network.
The only thing I had to do was re-enter my Wi-Fi and email passwords.
It was really easy despite changing networks.
The only annoying thing with Vodafone is that they do not seem to support visual voicemail on the iPhone 4. Apart from that moving networks was very easy.
Monday, May 10, 2010
URLScan blocks download of Click Once setup.exe file
I was setting up an IIS7.5 site to host a Click Once application yesterday. I found that URLScan was blocking the setup.exe file from being downloaded. Once I removed URLScan the clients could download setup.exe.
Friday, January 08, 2010
IIS7 SMTP Logging on Windows Server 2008
I’ve just noticed that SMTP logging on Windows Server 2008 does not work unless you add the “ODBC Logging” module to the Web Server role. It appears that the ODBC logging module must be added even if you are using a non-ODBC logging format.
Wednesday, October 07, 2009
WPF ComboBox select item when using ItemsSource
I have a WPF ComboBox that is databound to a Linq query.
var mylinqdata = from d in DataTable0.AsEnumerable()select new{Status = d.Field<string>(0).Trim(),Progress = d.Field<string>(1).Trim()};
dlg.cb_Status.ItemsSource = mylinqdata;
When data is bound to a WPF control using ItemsSource you must change the selected item using SelectedIndex. Here is the code I use.
dlg.cb_Status.SelectedIndex = mylinqdata.ToList().FindIndex(d => d.Status == loom.Status);
Here is the XAML of the ComboBox
<ComboBox Name="cb_Status">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Progress}"></TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Friday, October 02, 2009
Linq group by multiple columns
Here is a bit of linq to group by multiple columns. It’s not very well documented so I’ve included a sample below.The trick is to use an anonymous type after the group by clause.
var data3 = from d in db.Assembly_V2s
group d by new { Column1 = d.AssemblyID / 100, Column2 = d.Description.Trim() } into g
orderby g.Key.Column1
select new { Column1 = g.Key.Column1, Column2 = g.Key.Column2 };
Wednesday, September 23, 2009
HyperLinkField in GridView with multiple fields does not work
<asp:GridView ID="GV" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="CAM,Floor,Riser" DataNavigateUrlFormatString="HorzHandover.aspx?CAM={0}&Floor={1}&Riser={2}" Text="Handover"/>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# "Export.aspx?CAM="+Eval("CAM")+"&Floor="+Eval("Floor")+"&Riser="+Eval("Riser") %>' Text="Signoff"></asp:HyperLink> </ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
I think this is a bug in asp.net. HyperLinkField in GridViews with multiple fields do not seem to work at all. You have to turn column into a template to make it work (as shown above)
Thursday, August 27, 2009
Serving Silverlight 3 apps from IIS6
If you want to serve Silverlight 3 apps from an IIS6 server running on Windows Server 2003 you need to add the following three mime types (I added them at the server level). If you don’t make these changes the web page will show a blank Silverlight window. You can right click to get the Silverlight menu but your app does not run.
.xap application/x-silverlight-app
.xaml application/xaml+xml
.xbap application/x-ms-xbap
I discovered that IIS needs to be restarted before the settings take effect. To restart IIS run IISRESET from a command prompt.
Saturday, August 22, 2009
WPF auto fading error message
Here is a small control template to display an error message. The message will fade away after a couple of seconds. You set the message like this:-
Label1.Content = DateTime.Now.ToString();
Here is the xaml:-
<Window x:Class="TRM_Uploader.Window2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window2" Height="300" Width="300">
<Window.Resources>
<ControlTemplate x:Key="MyErrorMessage"
TargetType="{x:Type Label}">
<StackPanel Orientation="Horizontal"
Name="ErrorMessage">
<Border CornerRadius="4"
BorderThickness="0"
Background="Red"
VerticalAlignment="Center"
Margin="4,0"
BorderBrush="Transparent">
<Label Foreground="White"
VerticalAlignment="Center"
Padding="4,2"
FontWeight="Bold"
Name="Part1"
Visibility="Visible">Error</Label>
</Border>
<!-- This TextBlock accepts the content from the parent 'label'. It is not actually displayed, just used to bind data-->
<TextBlock Name="Part3"
Text="{TemplateBinding Content}"
Visibility="Collapsed"></TextBlock>
<!-- This TextBlock binds to the one above and triggers an animation when it gets updated. -->
<!-- Its required because TemplateBinding does not allow NotifyOnTargetUpdate -->
<TextBlock Margin="2"
Name="Part2"
Foreground="Red"
Padding="3"
Text="{Binding ElementName=Part3, Path=Text,NotifyOnTargetUpdated=True}"
VerticalAlignment="Center"></TextBlock>
</StackPanel>
<ControlTemplate.Triggers>
<!-- When Text property of Part2 is blank hide entire control-->
<Trigger SourceName="Part3"
Property="Text"
Value="">
<Setter TargetName="ErrorMessage"
Property="Visibility"
Value="Hidden"></Setter>
</Trigger>
<!-- This trigger is called when Part2 updates which in turn is updated by Part3's databind.
It uses animation to make the label fade away after a few seconds. -->
<EventTrigger SourceName="Part2"
RoutedEvent="Binding.TargetUpdated">
<BeginStoryboard>
<Storyboard TargetName="ErrorMessage">
<DoubleAnimation Storyboard.TargetProperty="Opacity"
Duration="0:0:0"
To="1.0" />
<DoubleAnimation Storyboard.TargetProperty="Opacity"
Duration="0:0:2"
From="1.0"
To="0.0"
BeginTime="0:0:1" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Window.Resources>
<StackPanel Orientation="Vertical">
<Label Template="{StaticResource MyErrorMessage}"
Name="Label1"></Label>
<Button Click="button1_Click">click to test</Button>
</StackPanel>
</Window>
And the c#
public partial class Window2 : Window
{
public Window2 ()
{
InitializeComponent();
}
private void button1_Click (object sender, RoutedEventArgs e)
{
Label1.Content = DateTime.Now.ToString();
}
}
Thursday, August 20, 2009
How to make a bootable USB memory stick in Windows 7
I spent ages on this last night without any success, tonight it took me about 60 seconds. Here is the trick.
First you need to download Windows Enabler from http://www.angelfire.com/falcon/speedload/Enabler.htm. This allows any disabled controls to be re-enabled. Install the program and click on its system tray icon to enable it. The Icon should show ‘on’ to show it’s working :
With Windows Enabler running you can go into Windows Explorer and format your memory stick (obviously this will erase everything on the stick). Normally the “create an MS-DOS startup disk” is disabled for everything except floppy disks but with Windows Enabler running you can click the disabled checkbox to use the option with any drive.
I think the file system needs to be set to “FAT”. Once formatted your stick will be a bootable MS-DOS 4.9.3000 boot disk. Easy!
IE image visibility bug
I found two very strange bugs in IE 8 yesterday (probably in other IE versions as well). I have an image and some text in a SPAN that is made visible with some JavaScript. Here is the HTML :
<img id="ctl00_ContentPlaceHolder1_Image3" src="Graphics/waiting.gif" align="middle" style="border-width:0px;visibility:hidden" />
<span id="ctl00_ContentPlaceHolder1_Label4" style="visibility:hidden">Please wait. Adding results to database.</span>
The Javascript attempts to change the visibility like this :
ctl00_ContentPlaceHolder1_Label4.style.visibility='visible';
ctl00_ContentPlaceHolder1_Image3.style.visibility='visible';
for SPAN tags this works. for IMG tags it has absolutely no effect!
The solution is a horrible hack :-
<script type="text/javascript">
function UploadComplete()
{
ctl00_ContentPlaceHolder1_Label4.style.visibility='visible';
document.all.ctl00_ContentPlaceHolder1_Image3.style.display='none';
document.all.ctl00_ContentPlaceHolder1_Image3.style.display='block';
document.all.ctl00_ContentPlaceHolder1_Image3.style.visibility='visible';
document.all.ctl00_ContentPlaceHolder1_Image3.src='waiting.gif';
window.setTimeout(TurnAnimatedGifBackOn, 500);
}
function TurnAnimatedGifBackOn ()
{
var tmp = document.all.ctl00_ContentPlaceHolder1_Image3;
if(typeof (tmp) == 'object')
{
tmp.style.visibility = 'visible'; tmp.src='waiting.gif';
}
}
</script>
To fix the problem the IMG tag has to have it’s display property toggled from ‘none’ and back to ‘block’.
The second bug is that animated gifs stop animating when a page post back occurs. To fix this problem I’ve used a timer to alter the image 500ms after the page post back. To get the animation working the src tag must be reloaded with the image url.
Other browsers do not seem to have this problem.
Enable Hardware Virtualization on Sony VGN-AR71ZU
It is really annoying to discover that Sony disable hardware virtualization and do not provide a bios setting to allow it to be re-enabled. This prevents you from being able to use Windows Virtual PC/MP Mode in Windows 7. I finally managed to hack the bios and now have full hardware virtualization!
Hacking the bios is actually trivial provided you know the right register to change. Chris Hay has a blog post which describes the change for a VGN-AR71ZU (bios = Phoenix R2090J8). (http://silverlightuk.blogspot.com/2009/04/enabling-hardware-virtualization-on.html)
The trouble I had was creating a bootable USB memory stick. I spent hours messing around last night with absolutely no success. In the end I gave up on the USB stick and found an old USB floppy drive. I downloaded the ms-dos 6.22 disk images from MSDN and made myself a set of three setup disks. I then booted off the floppy, exited ms-dos setup with F3 and ran SYMCMOS as described in Chris’s blog post. The process was not helped by the fact that the USB floppy would not work on Vista or Windows 7 so I had to create the ms-dos setup disks on an old XP machine.






