Archive for March, 2010

XBox 360 Halo3 Reach code generator

Thanks to @NWMTUG for this excellent XBox Game!

Eh hem, but I don’t have an xBox, so it’s for sale.

Categories: Uncategorized

Read Wii Game DVD from windows

Got a Wii game on DVD, but forgotten it’s title? Using ImgBurn here’s how

Open up imgBurn, press discovery.

You get some disc info on the right hand side:

Current Profile: DVD-ROM

Disc Information:
Status: Complete
Erasable: No
Sessions: 1
Sectors: 2,294,912
Size: 4,699,979,776 bytes
Time: 510:00:62 (MM:SS:FF)
Supported Write Speeds: 2x, 4x, 6x, 8x

TOC Information:
Session 1… (LBA: 0)
-> Track 01  (Mode 1, LBA: 0 – 2294911)
-> LeadOut  (LBA: 2294912)

Pre-recorded Information:
Manufacturer ID: DAXON016S

Physical Format Information (Last Recorded):
Disc ID: 0@P-!-00
Book Type: DVD-R
Part Version: 5
Disc Size: 120mm
Maximum Read Rate: Not Specified
Number of Layers: 1
Track Path: Parallel Track Path (PTP)
Linear Density: 0.267 um/bit
Track Density: 0.74 um/track
First Physical Sector of Data Area: 196,608
Last Physical Sector of Data Area: 2,491,519
Last Physical Sector in Layer 0: 0

Performance (Write Speed):
Descriptor 1…
-> B0: 0x00, B1: 0x00, B2: 0x00, B3: 0x00
-> EL: 2297888 (0x00231020)
-> RS: 2,770 KB/s (2x) – WS: 2,770 KB/s (2x)
Descriptor 2…
-> B0: 0x00, B1: 0x00, B2: 0x00, B3: 0x00
-> EL: 2297888 (0x00231020)
-> RS: 5,540 KB/s (4x) – WS: 5,540 KB/s (4x)
Descriptor 3…
-> B0: 0x00, B1: 0x00, B2: 0x00, B3: 0x00
-> EL: 2297888 (0x00231020)
-> RS: 8,310 KB/s (6x) – WS: 8,310 KB/s (6x)
Descriptor 4…
-> B0: 0x00, B1: 0x00, B2: 0x00, B3: 0x00
-> EL: 2297888 (0x00231020)
-> RS: 11,080 KB/s (8x) – WS: 11,080 KB/s (8x)


Press Tools > Drive > sector viewer >

Then at LBA 0, offset 0020 you see the Game name i.e. "101-in-1 Party Megamix Wii"

Categories: Uncategorized

Hello World for Palm Pre

Created with ares, just dropped a "Hello World" label on the form, then pressed Run.

You need to have Sun Virtua Box, and the Palm Emulator installed an running.

This is the source of the main-chrome.js file

    name: "main",
    dropTarget: true,
    type: "Palm.Mojo.Panel",
    h: "100%",
    styles: {
        zIndex: 2
    chrome: [
            name: "label1",
            label: "Hello World",
            type: "Palm.Mojo.Label",
            l: 0,
            t: 77,
            h: 77,
            hAlign: "center",
            vAlign: "center"

Categories: Uncategorized

Mobile version of Google Translate

Here’s some code to plug into Google Transate in C# – Not using the API:

 /// <summary>
        /// Translate Text using Google Translate
        /// </summary>
        /// <param name="input">The string you want translated</param>
        /// <param name="languagePair">2 letter Language Pair, delimited by "|".
        /// e.g. "en|da" language pair means to translate from English to Danish</param>
        /// <param name="encoding">The encoding.</param>
        /// <returns>Translated to String</returns>
        public static string TranslateText(string input, string languagePair, Encoding encoding)
            string url = String.Format("{0}&langpair={1}&quot;, input, languagePair);

            string result = String.Empty;

            using (WebClient webClient = new WebClient())
                webClient.Encoding = encoding;
                result = webClient.DownloadString(url);

            string strRegex = @"’#fff’..(?<Text>[ws+]+)";
            Match m = Regex.Match(result, strRegex);
            return m.Groups["Text"].Value;

Orginal version from, but I fixed his regex.

Check out for a demo

Categories: Uncategorized

WithFollow link from wordpress

Found how to get a With-Follow link from, two pages away from a PR7. Hopefully WordPress doesn’t read this post! 🙂

But, the author URL is with-follow (no rel=nofollow), so if you author a widget, and supply a url, then this will pass rank from WordPress to your site.

Another trick to this, is tag the plugin with a one of the following popular tags:
    *  widget (1410)
    * Post (1059)
    * plugin (850)
    * admin (798)
    * posts (774)
    * sidebar (718)
    * comments (609)
    * images (462)
    * google (444)
    * page (432)
    * links (431)
    * twitter (423)
    * rss (360)

This means that your plugin will get a link from the front of the plugins page, for a week ("Rss" is the best tag for this).

Categories: Uncategorized

Sending SMS from Silverlight

I downloaded VS 2008 SP1, and the Silverlight SDK. Dissappointed to see that there was no obvious "design view" for silverlight, I guess Microshaft wants us all to buy Expression Blend, so I just created a canvas with a giant button in XAML

<UserControl xmlns:dataInput="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Input"  x:Class="HelloSilverlight.MainPage"
    xmlns:d="; xmlns:mc=";
    mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
  <Grid x:Name="LayoutRoot">
     <Button Content="Send SMS" Click="Button_Click"></Button>

Added a reference to

Added using HelloSilverlight.FreebieSMS; to the namespace includes.

Then, this as the event handler

 private void Button_Click(object sender, RoutedEventArgs e)
            // Button clicked
            sendSmsSoapClient SMS = new sendSmsSoapClient();
            SMS.SendSmsAsync("Bob", "00447866069537", "00447866069535", "Test from Silverlight", "en-GB");

All downloadable from

Categories: Uncategorized

When not to use affiliate data feed XML

Many affiliate programs give away their product databases, in the hopes that you can sell their stuff better than they can, but it certainly is not the way to create generic content.

I downloaded Beepy’s product database at, Here’s an excerpt of the XML

w995-black.jpg</largeimageurl><brand>Sony Ericsson</brand><condition>New</condit
ion><location>UK</location><shortdescription>With a model number like 995, you g
et the impression Sony Ericsson want you to know this is a high-end, top quality
 product. So surely with a tag like this, the W995 makes the tea, takes out the
dustbin and prepares a lovely four course meal for you. OK, so it doesn’t do any
 of those things, but this is one phone which brings the best of both the Walkma
n and CyberShot range of phones together in one fantastic package, whilst even f
inding space to squeeze in one of the most requested Sony Ericsso</shortdescript

I picked a phrase that was relatively unique in the description, then put it into google.,+the+W995+makes+the+tea%22&start=20&sa=N&fp=819eb60ddcc41d13

66,700 exact matches.

of which on 37 got listed, and the other 66,663 got stuffed into the supplemental index.

ergo, if you created a site with this content, you have a 99.9% chance of ending up in the supplemental index.

Categories: Uncategorized

WordPress fails to install on Microsoft web app installer

Installing the Worpress plugin
Press install
Install the Web Platform Installer
Select Web Applications > All > WordPress
I Accept
Administrator username ‘root’
password: xxx

Failed; when installing MYSQL .NET connector
(Action=ManagedWebInstall,ActionType=3073,Source=BinaryData,Target=CAQuietExec,CustomActionData="C:Windows\Microsoft.NETFrameworkv2.0.50727installUtil.exe" /LogToConsole=false /LogFile=  "C:Program FilesMySQLMySQL Connector Net 5.2.5Web ProvidersMySql.Web.dll")
MSI (s) (C0:74) [15:27:06:666]: Invoking remote custom action. DLL: C:WindowsInstallerMSI5048.tmp, Entrypoint: CAQuietExec
CAQuietExec:  Microsoft (R) .NET Framework Installation utility Version 2.0.50727.4016
CAQuietExec:  Copyright (c) Microsoft Corporation.  All rights reserved.
CAQuietExec:  The installation failed, and the rollback has been performed.
CAQuietExec:  Error 0xffffffff: Command line returned an error.
CAQuietExec:  Error 0xffffffff: CAQuietExec Failed


Categories: Uncategorized

Live example of a SimpleDB site

My experiment with Amazon’s SimpleDB lead me to put up a site called Airport, which is a site that uses FAA data, stored in a AWS SimpleDB database, read back using the code snippets in previous posts.

The case sensitivity is a pain, since the selects have to match the case of the data, and paging is a problem, since the tokens are huge. and they tend to break IIS
see then press "Next" and it says Bad request. – Worked on my development server ! grr.

I did add a filter by tail number also which is quite new… might add to it, if people use it.

Categories: Uncategorized

Running Select statements against the Amazon SimpleDB in C#

  public static DataTable SimpleDBSelect(string query, ref string nextToken, out bool eof)
            NameValueCollection appConfig = ConfigurationManager.AppSettings;

             AmazonSimpleDB service = AWSClientFactory.CreateAmazonSimpleDBClient(


            SelectRequest queryRequest = new SelectRequest();
            queryRequest.SelectExpression = query;
            if (query == null)
                eof = true;
                return null;
            queryRequest.NextToken = nextToken;         // Seed for where to start reading
            SelectResponse queryResponse = service.Select(queryRequest);
            DataTable dt = new DataTable();
            if (queryResponse.IsSetSelectResult())
                SelectResult selectResult = queryResponse.SelectResult;
                List<Item> itemList = selectResult.Item;
                // Create the columns and name them
                dt.Columns.Add("ItemName", Type.GetType("System.String"));
                if (itemList.Count > 0)
                    for (int i = 0; i < itemList[0].Attribute.Count; i++)
                        dt.Columns.Add(itemList[0].Attribute[i].Name, Type.GetType("System.String"));
                    // Now add the data
                    foreach (Item item in itemList)
                        DataRow dr = dt.NewRow();
                        List<Amazon.SimpleDB.Model.Attribute> attributeList = item.Attribute;
                        dr["ItemName"] = item.Name; ;
                        foreach (Amazon.SimpleDB.Model.Attribute attribute in attributeList)
                            dr[attribute.Name] = attribute.Value;
            if (queryResponse.SelectResult.NextToken != null)
                nextToken = CleanseToken(queryResponse.SelectResult.NextToken);
                eof = false;
                nextToken = null;
                eof = true;
            return dt;

Adapted from Mike Culver’s code on Amazon. Note that SQL statements are CaSe SeNsItiVe!

Categories: Uncategorized