I am looking for work

I am an experienced .NET (C# and VB) developer now looking for work in London. I have most recently worked on a number of high profile web sites, and also have experience in smart client development (in retail and prison management).

Below is a selection of projects that I have worked on over the past year, while working at Agency.com London:



Sky+ in the UK when you’ve only got one satellite feed

30 March 2009

So I recently moved flat and used to have Sky+ in the old flat. Sky+ (which is the same as MySky in NZ) needs two feeds from the satellite dish, so you need a dual LNB. I have one feed coming down from what I think is a communal dish on the roof of the building. I have actually quit Sky because it’s too expensive, but it’s still running till the end of the billing month so I may as well use it.

But, oddly, not all channels will work. I rang up Sky and they are going to resend the codes or whatever to authorise the smart card, but it hasn’t worked (yet).

The odd thing is that the channels that don’t work (I get a message telling me to call them to upgrade my subscription on channels like Sky Sports and even Five) can record using the Sky+ feature, and I can play them back as well. Doesn’t make much sense to me.

I imagine though that it has something to do with polarity. The channels that don’t work are horizontal. But some channels that are horizontal do work.

It’s very odd, and I don’t really mind seeing I am getting rid of the subscription, but I thought I’d write something here to see if someone else had a similar complaint and maybe someone will offer a solution. I might get a splitter and some more cable and plug the cable into both inputs on the back of the box. It may well fix the problem, but both LNBs will only be able to see the same polarity anyway, so that could just break everything. We will see!

UPDATE: Once the card was reauthorised, it worked properly. So obviously nothing to do with polarity.

Technology ,

AJAX history with ASP.NET AJAX 1.0

27 March 2009

If you are still using the original ASP.NET AJAX 1.0 release, you may be looking for a way to use .NET 3.5 SP1’s “history” feature of the ScriptManager control.

A while back, Nikhil Kothari wrote a component called UpdateHistory, which looks like what was integrated into 3.5 SP1. It certainly solved my problem.

Combine it with HttpUtility.ParseQueryString and you’re onto a winner!

Technology , ,

Removing the Send Feedback link on Windows 7 Beta

2 March 2009

I accidentally keep clicking on the Send Feedback link that appears next to the minimise button on Windows 7 Beta. It actually appeared in the Windows Vista beta, as well.

Anyway, to get rid of it, you need to change a registry value:

Key: HKEY_CURRENT_USERControl PanelDesktop
Name: FeedbackToolEnabled
Type: DWORD
Value: 0

Thanks to http://www.mydigitallife.info/2008/12/08/hack-to-remove-and-disable-send-feedback-tool-in-windows-7-beta/ for that tip.

Technology

Google has a new favicon

11 January 2009

In an attempt to get to the top of people’s blog search results (give me a job, I’m a web developer in London), I thought I would point out that Google has a new colourful favicon. That is, the icon that appears in the address bar/favourites/bookmarks menu in your browser.

That is all!

Technology

Making your own virtual machines for VMware Player

11 January 2009

IfVMware Player is a free, cut down version of VMware Workstation which enables you to run virtual machines created with other VMware products. But you can’t create your own new VMs with it. At least, not within the interface.

Here are a few links to help you create a new virtual machine for use with VMware Player. For example, if you want to try out the Windows 7 Beta:

http://www.ffnn.nl/pages/articles/linux/vmware-player-image-creation.php explains how to create a .vmx file (the VMware configuration file) and provides a couple of blank .vmdk (VMware virtual disks) that you can download – they’re a couple of KB each – you won’t be downloading 10GB of 0s!

To add a sound card, add the following lines to the .vmx file:

sound.present = "TRUE"
sound.virtualDev = "es1371"
sound.fileName = "-1"
sound.autodetect = "TRUE"

(Thanks to http://kelvinchufei.blogspot.com/2007/01/add-sound-card-driver-in-vmware.html)

And if you are installing Windows 7, then you need at least 512MB of memory in your virtual machine. I’m trying with that amount… not sure it will be pleasant!

Technology

VMware Server 2.0 – using your own SSL certificate

24 December 2008

The default installation of VMware Server 2.0 uses a self-signed certificate for the web-based management console, VMware Infrastructure Web Access. (Notice how they copied the Microsoft fashion of naming the web based tool, like Outlook Web Access and Project Web Access.)

But you may want to use a different certificate. One that browsers in your organisation will actually recognise. I couldn’t find any information on the web, so went hunting in the config files.

The location of the certificate and key are specified in the file /etc/vmware/hostd/config.xml. The default location is /etc/vmware/ssl/.

You may want to create your own certificate authority (CA). I followed the Ubuntu Server Guide’s instructions, but apart from file locations, those instructions will probably do for any installation of OpenSSL.

Once I had set up the new certificates, I had to reboot the machine. Restarting VMware didn’t do it, but that was probably because I didn’t restart the right service. Rebooting definitely worked.

With my new certificate, IE7 still prompts me for a client certificate to present, but pressing cancel to that box gives you a proper secure session without the ugly red security warning by the address bar. With Firefox it works fine.

I haven’t investigated the prompt for a client certificate in IE yet, but if you know and want to save me the trouble of figuring it out for myself, please post a comment!

Technology , , ,

Cloning VMware machines loses network connection

23 December 2008

I have been setting up a whole swag of virtual machines to do my bidding. Ideally I would use ESXi but it doesn’t support my choice of server – my old laptop (Toshiba Tecra M5).

So I am back to using VMware Server. Since I last used it, VMware Server 2.0 has been released. It features a web-based management interface, which is quite good, though it uses a self-signed certificate that causes browsers to complain. I will eventually figure out how to replace it with a real certificate (or rather, one that my personal trusted certification authority has issued) and post the instructions here.

But that’s not what this post is about. My operating system of choice at the moment is Ubuntu Server 8.04 LTS. Yes, 8.10 is out, but I don’t want to download another CD image. I am in New Zealand, the land of data caps, after all. I have created a base install of Ubuntu, and want to clone it and use it as a base for other virtual machines.

Installation is simple.

Copying the virtual machine is simple:

cp -r [source_directory] [destination_name]

Then it’s a matter of renaming the virtual disk (for consistency’s sake – it’s not mandatory):

vmware-vdiskmanager -n [source_file.vmdk] [destination_file.vmdk]

Following that, I edit the .vmx file, and change references to the .vmdk file and the virtual machine name that is displayed in the management interface. Otherwise you’ll end up with multiple machines with the same name, and that gets confusing.

Once you add the machine to the inventory, VMware Server will realise that it’s a clone of an existing machine, and will ask you to confirm that. If you say it is a copy, it will regenerate some IDs, like the NIC’s MAC address. And this is where we run into trouble.

With a new MAC address, the system thinks there’s a new device in there. Which is virtually true. It leaves the existing configuration (from the base image) as eth0, and sets up the “new” NIC as eth1. Which is fine. But eth0 will never work, and it’s better (I think) for the first NIC to be eth0.

I found a solution here:

Re: Eth0 disapears in VMware and Ubuntu Server


I think that the best thing is delete the eth0 line from /etc/udev/rules.d/70-persistent-net.rules and change eth1 to eth0 in the eth1’s line

I mean, my file was

# This file was automatically generated by the /lib/udev/write_net_rules

# program, probably run by the persistent-net-generator.rules rules file.

#

# You can modify it, as long as you keep each rule on a single line.

# PCI device 0×1022:0×2000 (pcnet32)

SUBSYSTEM==”net”, DRIVERS==”?*”, ATTRS{address}==”00:0c:29:b0:1a:59″, NAME=”eth0″

# PCI device 0×1022:0×2000 (pcnet32)

SUBSYSTEM==”net”, DRIVERS==”?*”, ATTRS{address}==”00:0c:29:38:15:ba”, NAME=”eth1″

but now is

# This file was automatically generated by the /lib/udev/write_net_rules

# program, probably run by the persistent-net-generator.rules rules file.

#

# You can modify it, as long as you keep each rule on a single line.

# PCI device 0×1022:0×2000 (pcnet32)

SUBSYSTEM==”net”, DRIVERS==”?*”, ATTRS{address}==”00:0c:29:38:15:ba”, NAME=”eth0″

Salute

Frank Abel

Thanks Frank – that fixed it.

Some other things to think of:

You will want to change the host name of your new virtual machine, probably. You do that by editing the /etc/hostname file. But if you do that, and the new host name isn’t resolvable by DNS, you may run into troubles, especially using sudo on a default installation of Ubuntu (and probably other distros as well). So, before you change the hostname, it’s advisable to add an entry in /etc/hosts for the new host name.

I have run into trouble by changing /etc/hostname and then being unable to edit any other file, including /etc/hosts, because sudo requires that your machine’s hostname be resolved. It’s for this reason that my new rule is to create a password for root as soon as the OS is installed:

sudo passwd root

Other things I need to do when cloning the machine are editing network settings in /etc/network/interface (I am using static IP addressing) and DNS servers in /etc/resolv.conf. Then reboot and you have a clean system with its own “identity”.

Technology ,

Phone + Fire Eagle + Google Maps = high tech spy tracking system

1 December 2008

Fire Eagle is a service from Yahoo! that gives you access to location information. It’s not very sophisticated. You tell Fire Eagle where you are, and then applications (after the appropriate authorisations have been made) can use your location data.

Of course, you don’t want to be typing in your location into a web site every time you move, so there are a lot of applications that figure out your location and tell Fire Eagle. There are many of them, and the one that I have used on my Nokia E71 is the Fire Eagle mobile updater for J2ME. Every minute, it checks my phone’s GPS and sends its location to Fire Eagle.

With my old Palm Treo 750V, I used Mologogo, which tried to guess my location based on cell tower information. Its accuracy isn’t that great (usually to within a kilometre) but it’s good enough to play around with.

More mobile updaters are available here.

So Fire Eagle knows where I am. What use is this?

Well, I built a Google Maps-based tracking system. You authorise Fire Eagle accounts with the application, and then every minute or so the map will update showing the location of those people.

It’s not a very effective spy tool, because you’ll either need to spend a few hundred dollars on a GPS-enabled device and plant it on your target, or gain access to the target’s phone, put a Fire Eagle updater on it and then authenticate that user with the application. But it’s still possible. And cool.

I wrote it the backend (which is pretty simple) in .NET because that’s what I’m good at, but seeing that this server isn’t Windows, I have rewritten it in PHP, and added simple site registration so that anyone can use it and become a spy. (I wrote that paragraph before I had actually done the PHP version – took about 4 hours in the end.)

So, go to http://arunstephens.com/spy/ to become a spy!

If any government agencies find this useful, please let me know!

Technology , , , , ,

Facebook lost some data

30 November 2008

I’m not sure how widespread this was, but I got an email from Facebook saying:

Subject: Please reset your email notification settings.

Unfortunately, the settings that control which email notifications get sent to you were lost. We’re sorry for the inconvenience.

To reset your email notification settings, go to:

http://www.facebook.com/editaccount.php?notifications

Thanks,

The Facebook Team

And on the Facebook home page, this appears at the top:

image

Apparently, it’s quite widespread, but that’s only amongst people who have written about it in blogs, etc.

No matter how widespread it is, it’s a pretty huge stuff up. They lost a lot of data. Presumably they underwent a rather large data migration. And it must be easier for them to ask users to redo their settings rather than to restore them from a backup.

But is the bad PR worth it? If they are this careless with email settings (which could actually have some effect under anti-spam legislation – if you’ve already opted out of some types of communication and they start sending it again, even despite this notification, they could be in trouble), who’s to say they aren’t going to be this careless about things like advertising payments?

Technology

Windows Azure Development Storage with real SQL Server

28 November 2008

I don’t have SQL Server Express, I’ve got the real deal. Development Storage for Windows Azure assumes you are using SQL Server Express with the instance name SQLEXPRESS.

Thanks to this article I now know that you just need to edit the config file for DevelopmentStorage.exe, which is usually located in C:Program FilesWindows Azure SDKv1.0binDevelopmentStorage.exe.config.

There are two spots to modify. The first is the connection string (XPath: /configuration/connectionStrings/add/@connectionString) and the second is the dbServer attribute of the Table service (XPath: /configuration/developmentStorgeConfig/service/service[@name='Table']/@dbServer).

And then it will work. Enjoy!

Technology , , ,