Simon Fell > Its just code > March 2003

Monday, March 31, 2003

Noah Mendelsohn has posted to xml-dist-apps an interesting peice about handling streaming in SOAP, particularly in intermediaries. I know I've seen this discussed in the past, but can't remember where, probably on soapbuilders or on DM's soap list.

Sunday, March 30, 2003

jchar != wchar_t

The show last night was pretty disappointing you didn't miss anything if you missed it. However I thought Prefuse 73 was much better than last time I saw him play.

Saturday, March 29, 2003

Is it just me, or does this not handle a the case where it attempts to use a keep alive connection, but the server's already closed it correctly ?
make a return visit to Bimbo's 365 club tonight.
Opps, Greg pointed out that the RSS feed was missing a title, fixed, thanks Greg.
After reading most of Essential ASP.NET, I sat down and re-worked most of the RESTLog code, its now structured much more cleanly than it was, an implementation of IHttpHandlerFactory does the bulk of the hardwork, and a custom configuration section stores all the relevant config data. The main index page, the monthly index pages and the item pages are now all template driven. To help prove I got it all right, I just converted my stories to use the RESTLog code, having different templates, everything is working great :). Anyone who's remotely serious about ASP.NET should have a copy of Fritz's book, it absolutely rocks!. Even though its a litle thing, one of my favorite new tricks from the book is using Response.Output.Write to do formatted writes.
I got my templatized rendering done using PageParser.GetCompiledPageInstance :)
That's anoying, why isn't it public ?
More - I was trying to use HttpNotFoundHandler to get ASP.NET's 404 page, its not public so you can't, so I wrote a handler that throws new HttpException ( 404, "foo") ; expecting to get a 404 response with the text "foo", but in fact I get ASP.NET's 404 page after all !

Friday, March 28, 2003

Given the glowing recommendations, I picked up a copy of Essential ASP.NET earlier. I just finished reading Keith's NET WS book, which overall I liked, I'll post more thoughts on that later.
Looks like there's a problem with the pinger, I keep getting this error back "The domain cannot be resolved."

Thursday, March 27, 2003

I got my RESTLog implementation finished, it now conforms fully the spec, I was expecting it to be fairly straightforward to implement, but was shocked at just how easy it was, it weighs in at around 500 lines of C#, of which at least half is the rendering code. next stop is to look at PageParser.GetCompiledPageInstance to see if I can templatize the actual rendering.
Richard is asking about DDE and Wonderware, wow that takes me back, I used to do a lot of work with WonderWare's Intouch product, along with a wide variety of other SCADA platforms and PLC's. IIRC Wonderware developed something called FastDDE, which MSFT eventually licensed from them, to become the DDE we all know and love today. I'm surprised its still using DDE, they were trying to kill it off and switch to OPC when I left the process control industry back in '97
to Dave and the rest of the Mindreef crew on the Jolt Productivity Award.

Wednesday, March 26, 2003

I like the way Joe's RESTLog client allows you to drag a link from the browser onto it, to allow you to edit that post, cool idea, in fact I like it so much, I'm going to do the same in Relaxer, my own RESTLog client app.
I have a winforms project open in VS.NET and have added a new schema, edited the schema the way I want it, now how do i configure VS.NET to run xsd.exe /c schema.xsd ?
this should ping now.
Looks like Lucas Marshall is running into the same problem I had trying to get the metaweblogApi in Radio to work when you have categories turn on.
I preserved my ability to track currently playing tracks when posting by adding a namespaced extension element to the item

Tuesday, March 25, 2003

After an interesting look at ASP.NET caching, caching is turned back on. If you've only every used the @OutputCache directive, you should do yourself a favor and checkout the HttpCachePolicy class.

Monday, March 24, 2003

I've switched the blog over to a RESTLog API style implementation I whipped up in. NET, I could battle the metaWeblogApi no longer. Pingback's and tracksbacks should still be working. Let me know if you spot any problems.
I say RESTLog API style because at this point its very similarto the RESTLog API, but doesn't yet implement the spec fully.
RESTLog API test post (curl powered!)

Sunday, March 23, 2003

Harry Pierson has some comments on my previous WS-Addressing item.
Ha. Randy just forwarded me this as a solution to the heat problems that he's been experiencing on his new Powerbook 12".[The Furrygoat Experience] Wow, Randy has lots of problems with his new 12" powerbook. I have a 9 month old 15" PB at work, which is great, other than the keycap imprints in the LCD (a common problem). The sooner OSX runs on Intel hardware the better.

Saturday, March 22, 2003

I got the de-duper working, so now blogToaster is being feed from both and As is event driven rather then polling like I'm doing for, you should notice that you get toasted much quicker if the blog pings
I hooked up to the notification interface, I should get a callback when this post pings them. Update: Cool, it worked!. now comes the task of trying to de-dup the notifications with the data I'm polling out of
There's a lot of power in uniform interfaces, for one, it means I can write a single tool that should work with any server that implements that uniform interface. In reality, it seems that the various XML-RPC based blogging API's are slightly uniform interfaces, all the implementations are kind of the same, but different, for example, Moveable Type doesn't implement metaWeblog.getCategories, Radio's implementation of blogger.getUsersBlogs doesn't return a blogname value in the response. In metaweblog.getRecentPosts, Radio and MoveableType return different types for the userid value. I have an even greater respect now for the number of different webloging tools that NetNewsWire supports.

Friday, March 21, 2003

I was hoping to see an MSXML4.0 SP2 to fix up the last remaining schema handling problems in the WSDL Wizard, but nothing seems forthcoming, so I've released the 2.0 version of the WSDL Wizard as is. I'll have to switch out parsers for the next release.
Oh, the irony, the Microsoft folks are busy singing the praises of WS-Addressing, for its transport independentness whilst their primary web services stack is for all practical purposes hopelessly tied to HTTP.

Thursday, March 20, 2003

Put together a first cut release of ZakBlog a metaWeblog API client application, tested with Radio and Moveable Type (requires .NET)
I installed Moveable Type last night on my Redhat box, took about an hour from starting to first post, most of this time soaked up by my Linux newbie status more than anything else. I did some test posts from ZakBlog to MT, unfortunately no two bloggerApi / metaWeblog API implementations seem to work the same way, or even use the same message structs, but you already know this, I'm not the first (and won't be the last) to rant about that. I live in hope that the rounds of discussions of a soap based blogging API result in something more concretely defined.
Joe Bork says that Microsoft just announced the .NET Compact Framework for the SmartPhone. [ Robert Scoble: Scobleizer Weblog ] To be clear they "Microsoft also today gave an early demonstration of .NET Compact Framework for a future version of Smartphone." i.e. don't rush out and buy that SmartPhone yet

Wednesday, March 19, 2003

Wow, Feedster is doing some quick indexing, my last post already appears in a search for smartphone! It must be hooked into the notification service.
Scoble is talking about .NET CF and SmartPhone. Btttzzzz, first problem, there is no .NET CF for the SmartPhone 2002 platform. (see my earlier post on this)

Tuesday, March 18, 2003

I installed redhat8 on a spare box earlier, for some reason though it doesn't seem to have made the boot manager it installed bootable, so i'm currently booting from the floppy. Any ideas ? has a fan out interface. Sounds a lot like my weblogs watcher backend which is effectively a fan out service for I'll probably take a look at implementing the same interface as for consistency.

Monday, March 17, 2003

Just updated this to v0.2, now it'll ping any number of servers that implement the XML-RPC interface. By default it pings and enjoy!
Notified that your weblog has updated. But got error The server,, returned error code 1: Minimum time between pings not reached. Go have a martini and try again in a bit.
I'm updating blogping.root so that it can ping any number of ping servers.
Whilst its great that Dave is upgrading the hardware running, I've never seen the term federated used to mean what Dave describes. It appears that I'm not the only one. BTW, blogping.root will let you ping from Radio an additional ping server in addition to

Sunday, March 16, 2003

If you have a linksys WET11 and plan to plug a hub/switch into its LAN port, make sure you've got the 1.4.3 firmware installed, otherwise it dies horriblely.
Got the turbonet installed, telnet, ftp and tivoweb up and running, and I dropped an extra 80 gig drive in whilst I had the cover off. Just for grins, I might try and get tclSOAP up and running on it.
Just posted, its now using PocketHTTP as its core HTTP engine, the MIME support has been tweaked to cope with responses that are missing the start attribute on the content type, and there are now built binaries for the PocketPC 2002 emulator.

Saturday, March 15, 2003

Just commited to CVS a working PocketHTTP for the PPC2002 Emulator.
Good golly it's raining hard right now. I think I need to start working on that Ark. [snellspace] We had lots of wind and rain last night, but despite forecasts for rain all weekend, its been a pretty nice day so far.
Thanks to Sergei Bobronnikov, there's now a set of working PocketSOAP builds for the PocketPC 2002 Emulator (grab it from CVS if you're desperate!)

Friday, March 14, 2003

Anyone know if the eMbedded Visual Tools 3.0 - 2002 Edition includes any bug fixes, or have they just shuffled around the bundled SDKs?
Mozilla 1.3 is released, all the buttons on my mouse now work as expected <vbg>
Richard has some thoughts on exceptions in ASP.NET WS. I think you really should send exception info as a soap:Fault, so that all the infrastructure pieces involved know something went wrong and can do the right thingtm
Tim makes a welcome return to the land of bloggers, and Becky (Happy Birthday!) joins the growing list of borg bloggers !.

Thursday, March 13, 2003

Even though I want to follow Dons advise and not read the spec, I really want to know what WS-Addressing does that xsd:anyURI is missing. BTW, what's with the MSDN link within a link URL's anyway, haven't you heard of mod_rewrite ?
WS-ReliableMessaging was published this morning. [Yasser Shohoud Blog] Its hilarious that Don "less spec's, more code" Box is co-author on YAWS spec. I guess in Don's defense he said read less specs, nothing about not writing any !

Wednesday, March 12, 2003

Anyone have YATT working with a linksys wireless card ?
I've been trying out Syndirella for a while, I quite like it, although its still missing a few things, I'm torn between switching back to Radio, or switching to Syndirella. Either way they're both memory hogs!
taskman screen shot showing memory usage
.....Perhaps what Macromedia should do is introduce the "FlashGUI" SDK, which would have a GUI-centric editor and GUI-specific APIs for quickly building the view system of an app. Even better would be if the FlashGUI library was skinnable, so that as an app developer I can focus on functionality, and independently a graphics designer could customize the look and feel of the GUI elements. Maybe this is already available, but if it is, it definitely needs better marketing... [] In my experience I wouldn't remotely recommend trying to build a desktop application with Flash MX. There's a reason all you ever see Flash used for is wizzy animations.

Tuesday, March 11, 2003

Yup, that's right 21 again, well, ok, I admit it, that's actually 0x21. You too can be 21 each year, just have to find the right numbering system!. Time to go play with my new toy.

Monday, March 10, 2003

My TurboNet should turn up tomorrow. Looking forward to seeing what you can do with a networked Tivo.
I know someone recently was ranting about the casing of attribute names in OPML htmlUrl vs htmlurl, but I can't find the post now. Anyway Chris Pirillo ran into a problem trying to import his OPML into blogToaster, so it will now happily accept either htmlUrl or htmlurl. Enjoy!
"Web services are like a super bus" The CapeScience guys do a switch.

Saturday, March 8, 2003

Just spotted a bug in the pingback client. It doesn't look at the link of the post
I are a good speler [Sam Ruby] very slick!
A few folks have already mentioned this, I just tried it out, didn't like it. It wouldn't show any existing posts from my blog, not sure if that is by design, or a side affect of it requiring categories, and them just being turned on (I don't know if this will put all the existing posts in the home page category). The post editing tool is the same annoying html form thing that Radio already uses.
My current project has me coding in C++, Java & Flash, so I've been spending some quality time using Eclipse. Jumping back into VS.NET last night really highlighted all the cool things Eclipse does like the popup suggestions for fixing compile errors, click on the right one, and it even makes the code changes. But the one I missed the most is the background compile / syntax checking, I'd do a build in VS.NET see an error, goto the code and fix it and then wonder why it was still sitting there with squiggly lines, and the error in the task list, doh!, they don't get updated until you build again.
And speaking of Flash, Macromedia have been pushing Flash as a tool for building client applications, I'm yet to be convinced, its been a pretty painful process so far.
Ted has a post detailing how to use a private JRE install for a java based app to side step versioning issues. This is great stuff, I used Ted's earlier white paper on the subject to do a private JVM on a current project. If you're a Java guy you need to be reading Ted's blog.
Starting to take shape nicely
zakblog screen shot

Friday, March 7, 2003

I was trying to find out why NNW is much faster at populating the recent posts list than WinBlog, I see that NNW uses a metaWeblog.getRecentPosts call whereas WinBlog does blogger.getRecentPosts followed by metaWeblog.getPost for each post. I didn't even know there was a metaWeblog.getRecentPosts, why isn't this doc'd on the MetaWeblog API page ?. Are Evan and Dave having some perverse competition to see who can have the most under-specified spec spread across a bunch of random pages ??
Wow, OSX really really doesn't like it when you wake it up with network shares not being available that were mounted when it went to sleep.
Found this sample, seems to work :) Now about drawing those squiggly lines...
Can't upstream because "Can't find a sub-table named "9283"." Huh ???
Thanks to Richard for the spell checker pointer. I'm not sure I want to be round tripping to some external service for spell checking, but I'll give it a go. Update It's broken, and not going to be fixed

Wednesday, March 5, 2003

I was able to whip this up in VS.NET using XML-RPC.NET in short order, it really needs a spell checker widget though (hey, MSFT wake up!, there's a spell checker API bundled in OSX)
WinbBog screen shot
cool, the support for optional struct members in XML-RPC.NET works just like I was expecting :)
Why does calling the Radio implementation of this with
        <string /> 
Result in a link value of "table: 2 items" ? I went and checked in weblogData.root, it is actually a string with that value, not a table with 2 items.
I just posted some updates to the PocketSOAP FAQ.
Wow, Syndirella's use of HTTP/1.1 makes it impressively fast. Wonder if there are plans for it to include a weblog editor frontend ala NNW ? I didn't try it out, but did notice when flicking through the code that it'll try and listen on 5335 so that the "subscribe in radio" mug links work, cool. My only complaint so far, is that there's no total unread items count in the main window.
DBinSJ [Don Box's Spoutlet] Turns out i can't make this after all, sorry guys, catch you next time around.
I'm in love with the weblog editor gizmo in NetNewsWire, Brent you rock! Someone needs to port NNW to Windows.
Question for anyone who know's swing, given this class
import javax.swing.JOptionPane ;
class foo
 public static void main(String [] args)
  int btn = JOptionPane.showConfirmDialog(null, 
   "hello world!", 
  System.out.println("button was " + btn ) ;
how do i make it exit once I've clicked one of the buttons on the dialog ? update found this thread on exiting swing apps, If this is true, then it seems like a lame ass design descision to me.
Advocating a new approach?. It is amusing to see that Network World views me as a REST backer. Thanks go out to Dave Chappell for forwarding me this link. [Sam Ruby] Why is it always pitched as REST vs SOAP, when you can use REST and SOAP together ?

Tuesday, March 4, 2003

Crash Different. Okay, this has to be the most amusing switch parody I've ever seen. I laughed my ass off. [Jeremy Zawodny's blog] That's hilarious, I needed that, I'm still battling (2nd week!) trying to get an OSX equivilent of MessageBox to work reliably.
Wow!, i can't beleive how much functionality Sam managed to get out of 110 odd lines of python. I did notice a strange bug where the titles appear in reverse order to the articles.

Monday, March 3, 2003

Ethan Brown reminded me of a couple of things that needed fixing in YATT, so there's a new build up. One outstanding issue that a few people have reported is that it doesn't capture any data on their systems. I've seen this on someone's laptop but haven't yet been able to pin it down.
We’re trying something new—new for us—we’re bundling NetNewsWire and UserCreations Spring. You can buy them together for just $39.95...... [] Awesome, two of the coolest OSX apps for the insanely low price of 40 bucks.
Sanjiva confirms my earlier thoughts that WSDL1.2 can't really describe SOAP encoded messages. Please Please provide a consistent set of features across the specs, either drop SOAP encoding from SOAP 1.2, or add soap encoding support to WSDL, but don't leave us with different specs doing different subsets. Shouldn't the WSA folks be keeping these things all lined up and pointing in the same direction ?

Sunday, March 2, 2003

I've just posted PocketXMLRPC v1.1 RC1, a version that uses PocketHTTP for its HTTP transport. This brings HTTP/1.1 support to PocketXMLRPC.

Saturday, March 1, 2003

I just tweaked the Radio aggregator to do conneg by sending the relevant Accept header. I've posted details to radio-dev hopefully the Userland folks will fold the change back into the real thing.
I asked a while back about turning off the referer header in the Radio aggregator. I just had a dig around, and whilst there's no GUI for it, if you open aggregatorData.root and goto aggregatorData.prefs and change appSignatureUrl to an empty string, that'll do the job.
I've just released PocketHTTP v1.0, it runs on PocketPC and Win9x/2K/XP and includes support for SSL, proxies, compression, redirects, session cookies, persistent connections and chunked encoding.
Making good progess, have both Win32 & PocketPC builds up and running. Going to glue it up to PocketXML-RPC next. Update Painless so far, the perf increase when both ends are using HTTP/1.1 is pretty dramatic.
About the necessity for advanced Web Services support on mobile devices. We need WS-* support for mobile devices. WSE for .NET Compact Framework is a must for a lot of customers. [Christian Weyer: Web Services & .NET] Yeah, a WSE.CF would be nice, of course the first thing they would have to do is fix the dumb DIME implementation that buffers the entire request in memory first (what were they thinking???).
I've just checked in conneg support for Aggie. It sends this accept header "application/rss+xml, application/rdf+xml, text/xml;q=0.9; */*;q=0.1" the last 2 entries are to deal with servers that are configured to send RSS as text/xml (or not configured and send it as application/octet-stream) and that support conneg out the box (e.g. Apache)
I've seen Content Negotition for RSS mentioned in a number of different places recently, the biggest issue being the chicken & egg situation of no sites supporting it, so the tools don't support it, so no sites support it. So, following DJ's lead, in an attempt to start the ball rolling this weblog is now conneg enabled for RSS
GET /weblog/ HTTP/1.1
Accept: application/rdf+xml
Accept-Encoding: deflate
User-Agent: PocketHTTP/0.1

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Sat, 01 Mar 2003 16:40:33 GMT
Cache-Control: public
Expires: Sat, 01 Mar 2003 17:10:34 GMT
Last-Modified: Sat, 01 Mar 2003 16:40:34 GMT
Vary: Accept
Content-Type: application/rdf+xml
Content-Length: 24986

<?xml version="1.0"?>
<!-- name="generator" 
  content="rdf.root/0.7.3 (" -->
<rdf:RDF xmlns:rdf="http:....

GET /weblog/ HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/, application/msword, */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
If-Modified-Since: Sat, 01 Mar 2003 15:58:40 GMT
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
Connection: Keep-Alive

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Sat, 01 Mar 2003 16:42:47 GMT
Cache-Control: public
Expires: Sat, 01 Mar 2003 17:12:47 GMT
Last-Modified: Sat, 01 Mar 2003 16:42:47 GMT
Vary: Accept
Content-Type: text/html; charset=utf-8
Content-Length: 22581

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
<html lang="en">....
As my RSS feed is RSS1.0, both application/rdf+xml and application/rss+xml are supported.