Archive for October, 2007

Windows Live Gallery: What The F***??

Update: I think I have worked out what the problem is now. I can’t really go into it in any great detail at the moment (and no, I didn’t f*** up) but suffice it to say, it’s not Live Gallery’s fault.

I submitted five of my plugins for resubmission to Windows Live Gallery, the changes that I made were concerning PluginHttpRequest. I got emailed about all 5 of them yesterday to say that none of them were approved . What the f***? Even more confusing was what the emails said:

"Your item appears to be either missing a valid signature or a valid certificate. You may also want to check the signature to make sure that it includes the date. Go to the FAQ section to see what the rejection codes mean and what the next steps are. "

Ok, so I went to their FAQ section to see what it said:

"Missing valid signature:
Your Windows Vista gadget doesn’t have a valid (The publisher of a file has been verified and the file doesn’t appear to have changed since it was digitally signed.) certificate or a valid digital signature (A way of digitally marking a message with the sender’s identity for purposes of verification. A digital signature may be bundled with any message, file, or other digitally encoded information, or transmitted separately.) associated with it."

What the f***? My Windows Vista gadget? I submitted Writer plugins!! Not gadgets! I think I’ll be emailing the Gallery guys about this, and gonna be annoyed if I have to resubmit all the modified plugins again!!


Whilst writing this I was listening to AerosmithShame On You



“World’s Biggest Backup Button”

Love it:

"all you really need to do is click the world’s biggest Backup button"

Nice little review of my backup utility over at the How-To-Geek blog.



Writing Plugins For Windows Live Writer – Using PluginHttpRequest Instead of HttpWebRequest

In a few of my plugins, I often find myself using System.Net.HttpWebRequest to get some data from a website, whether from a service or to access a specific part of a website. This is all very well and good, but what happens if you’re trying to use Windows Live Writer behind a proxy? Well with Writer itself, that’s not a problem, you just use the proxy settings to bypass it:

The only trouble is, although Writer is using those proxy settings, your plugin isn’t. Unless you do more work to set the proxy in the WebRequest, but that means hard coding the details into your plugin, which won’t really work, or creating a seperate set of settings for it, which again is a but cumbersome. Fortunately though, the Writer team have given us an answer for this. Embedded deep in the Writer APIs is a little class called PluginHttpRequest. What this class does is use the settings that are already configured in Writer. How cool is that!

Now, one important thing to note about this class: it is not exactly the same as HttpWebRequest, more like a very good substitute. If you have built a plugin that uses HttpWebRequest, you will still have to modify some of the code. To demonstrate this, I created a test plugin that will show the HttpWebRequest method, and the PluginHttpRequest method.

I created the basics of a quick plugin, and used the following UI:

The code behind the Test 1 button looks like this:

        private void button1_Click(object sender, EventArgs e)
            string s = "";
                // Create the HttpWebRequest
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                WebResponse resp = req.GetResponse();
                Stream st = resp.GetResponseStream();
                StreamReader sr = new StreamReader(st);
                s = sr.ReadToEnd();
            catch (Exception ex)
                s = "Failed to get information: \n" + ex.Message;
            textBox1.Text = s;

The code behind the Test 2 button looks like this:

        private void button2_Click(object sender, EventArgs e)
            string p = "";
                PluginHttpRequest prequest = new PluginHttpRequest(url);
                Stream presp = prequest.GetResponse();
                StreamReader sr = new StreamReader(presp);
                p = sr.ReadToEnd();
            catch (Exception ex)
                p = "Failed to get information: \n" + ex.Message;
            textBox2.Text = p;

As you can see, there is one step that is missed out when using the PluginHttpRequest, and that’s getting the WebResponse and getting the stream from that. This is where the PluginHttpRequest differs, in that the GetResponse() returns a Stream, not a WebResponse.

The results of these tests are as follows:

This is for me at home, not behind a proxy, see how they both work, now if I was behind a proxy, Test 1 will give a failure message in the textbox, but Test 2 (assuming you have Writer configured for your proxy), will show the same as it does above, the source code for

Now, this is only a basic example of how to use the PluginHttpRequest, and there are other properties to this class that can be levied. But if your plugin uses the methods described in Test 1, I would recommend migrating over to Writer’s native class, as it means your plugins will not only work for Joe Public, but also for those who are behind a corporate proxy, for example.

Test project source code:


PS, Expect a post soon with a list of my plugins that use the original HttpWebRequest class as they will have been updated and re-released.


Amazon Plugin Updated

I read a review of my Amazon plugin on a blog, and unfortunately, I never made a note of the blog entry (if you’re reading, leave a comment ), but they suggested that the title of the item should show just that, the title. The way the plugin worked originally was it got the title of the page, and Amazon, being the idiots they are, stuck so much crap in there it often made the title huge, including actors (for films), etc.

So, I have now changed that. The plugin will now only display the title, and only the title.

Source Code:

Leave a comment

Embedding Photo Albums

In the recent Windows Live Spaces update, you can now embed full albums in your blog/site from your Live Space:

So I figured with this change I should make a slight change to my Live Spaces Photo album plugin to allow you to embed the album, after all, it’s already got that information all ready for it. I made a slight change in the UI, and by slight, I mean I added one button

Once you have selected your album, just press the Embed Album button and it will insert it like this:

Source Code:



Help Required

Ok, I signed off on my first alpha release of version 4 of my Video plugin the other day, it was a nice feeling . Now I need some help. One of the biggest changes to this version is the inclusion of multilingual support, but for that to happen, I need people to help me translate. At the moment, the languages I have available are English (duh), Dutch, German and Italian. Now, when this plugin [finally] ships, I’d like to have French and Spanish ship as default languages with the plugin, but I need a good volunteer to do these translations.

If you think that person is you, please email me at wlm[at] and put "Translate Me" as the subject.

Now, the second thing I want help with is regarding what else to include in the plugin. Now, I already put out a request for suggestions for the plugin, but I would just like to reiterate that request, and this is suggestions for features for the plugin as well as video sites to include. These should either be left as comments on here or emailed to the above address with "Feature Request" as the subject.

I look forward to hearing from you


Whilst writing this I was listening to QueenSomebody To Love