<?xml version="1.0" encoding="ISO-8859-1"?><!-- OPML generated by OPML Editor v10.1a8 on Wed, 31 Jan 2007 22:18:40 GMT -->
<opml version="1.1">	<head>		<title>31.opml</title>		<dateCreated>Wed, 31 Jan 2007 13:59:54 GMT</dateCreated>		<dateModified>Wed, 31 Jan 2007 22:18:38 GMT</dateModified>		<ownerName>Tom Morris</ownerName>		<ownerEmail>bbtommorris@gmail.com</ownerEmail>		<expansionState></expansionState>		<vertScrollState>1</vertScrollState>		<windowTop>44</windowTop>		<windowLeft>345</windowLeft>		<windowBottom>643</windowBottom>		<windowRight>936</windowRight>		</head>	<body>		<outline text="&lt;a href=&quot;http://www.tbray.org/ongoing/When/200x/2007/01/30/XML-2&quot;&gt;Tim Bray&lt;/a&gt; links to discussions of XML 2. I'm not sure about the ideas put forward for XML 2. Perhaps what we need is some kind of error-handling format which would describe how lenient one should be about errors for different applications. Perhaps this could be an extension to, oh, XSL or XSD/RNG? The push to develop non-XHTML HTML seems daft. We seriously need to get to grips with the fact that HTML is dead and XHTML should take it's place. And yes, I know that my blog isn't properly validating XHTML." created="Wed, 31 Jan 2007 14:46:52 GMT"/>		<outline text="Wow. Sitening has released &lt;a href=&quot;http://aws.typepad.com/aws/2007/01/new_php_interfa.html&quot;&gt;open source PHP5 classes&lt;/a&gt; for Amazon's Web Services - S3, EC2, SQS and Mechanical Turk. They look pretty simple, and save one from writing lots of lines of libcurl. SQS looks useful if one were writing, say, a distributed, cross-platform spider or scutter." created="Wed, 31 Jan 2007 14:27:54 GMT"/>		<outline text="&lt;a href=&quot;http://news.bbc.co.uk/1/hi/england/london/6316245.stm&quot;&gt;Oyster soon to be acceptable on London train network&lt;/a&gt;. Finally. I'm still buying a daily train + zone 1-6 ticket. I do like the fact that paper tickets are less traceable than Oyster. I can pay cash for a paper ticket, use it and throw it away at the end of the day. Not much opportunity for identity theft. But, since it's not broken, we better replace it. If you have an Oyster card, you &lt;i&gt;should&lt;/i&gt; be able to pay for trips on London trains with it, and pay the same rate you would pay for a Tube journey but travel overground." created="Wed, 31 Jan 2007 14:22:39 GMT"/>		<outline text="&lt;a href=&quot;http://teethgrinder.co.uk/blog/web-2.0-and-life-2.0/&quot;&gt;Teethgrinder&lt;/a&gt;: &quot;I think mySpace is web 2.0 disguised as web 1.0... I'm looking forward to Life 2.0, I hope they've improved the character setup options at the start. At the moment it seems like the character abilities such as strength, magic and health are all random numbers.&quot;" created="Wed, 31 Jan 2007 14:12:36 GMT"/>		<outline text="Web annoyance of the day: Google's StopBadware.org announcements. Occasionally, one will click on a link in search results and up pops a Google page that says &quot;Warning - visiting this web site may harm your computer!&quot;. Of course, since I'm not using Internet Explorer or Windows, it most likely &lt;i&gt;won't&lt;/i&gt;, but there's no way of actually continuing to the website without manually editing the URL. Can't you guys put a hyperlink to the relevant page so that those of us who know that the super-dangerous page won't harm anyone can actually click through to it? I mean, &lt;a href=&quot;http://www.throwingbeans.org/this_site_may_harm_your_computer.html&quot;&gt;this guy isn't dangerous&lt;/a&gt;." created="Wed, 31 Jan 2007 14:04:45 GMT"/>		<outline text="&lt;a href=&quot;http://blogs.msdn.com/ie/archive/2007/01/30/working-together-for-a-better-web.aspx&quot;&gt;Molly&lt;/a&gt; has been hired - on contract - by The Borg to work on Internet Explorer. Which is probably why the last two times I met Molly, she was talking about the importance of &quot;interoperability&quot; rather than the importance of standards. &quot;;-&gt;&quot; I'm hoping that Molly's presence at Microsoft might help get everyone moving towards XHTML, and XHTML2 specifically. The move to an XMLized web will help us on the path to syndication, open data and the Semantic Web being realised." created="Wed, 31 Jan 2007 13:59:54 GMT"/>		<outline text="Unofficial MySpace API" created="Wed, 31 Jan 2007 20:41:57 GMT">			<outline text="Today, I launched an unofficial MySpace API. It's a way of getting data out of MySpace in a variety of XML formats. Three to be specific - a raw XML format, RSS 2.0 and OPML 2.0. The RSS format is there to provide a feed of new comments that have been posted to a MySpace profile." created="Wed, 31 Jan 2007 20:42:01 GMT"/>			<outline text="The API supports gathering data from either a person's MySpace name or from their FriendID. Their name is what comes at the end of the URLs people give out (eg. myspace.com/foo would be 'foo'), while the FriendID is a long ID number. My API takes both, and in the OPML and RSS version, it uses FriendIDs to point to other profiles." created="Wed, 31 Jan 2007 20:43:32 GMT"/>			<outline text="The URL structure is as follows:" created="Wed, 31 Jan 2007 20:46:07 GMT"/>			<outline text="xml.opiumfield.com/myspace/&lt;b&gt;username&lt;/b&gt;/&lt;b&gt;format&lt;/b&gt;" created="Wed, 31 Jan 2007 20:46:11 GMT"/>			<outline text="Username can be either the username as it appears in the URL or the FriendID. Format can be either 'xml', 'rss' or 'opml'. The OPML is designed to be &lt;a href=&quot;http://www.grazr.com&quot;&gt;Grazed&lt;/a&gt;, so don't go importing it in to your aggregator because not much will happen. &quot;;-&gt;&quot;" created="Wed, 31 Jan 2007 20:46:29 GMT"/>			<outline text="I will hopefully be adding new functionality to this API as we go on, but none of the existing stuff should change. It may take a little while for the OPML version to get updated - there's a little bit of disconnect between writing Python and writing XSL. Hopefully, I'll be adding FOAF soon." created="Wed, 31 Jan 2007 20:46:48 GMT"/>			<outline text="If you want to build applications on top of this, &lt;i&gt;please&lt;/i&gt; use the raw XML and don't try to reverse engineer the other feeds. The raw XML is there so that you can get as much information as possible." created="Wed, 31 Jan 2007 20:56:16 GMT"/>			<outline text="There is a lot of stuff which gets &lt;i&gt;excluded&lt;/i&gt; though - I don't include HTML inside comments, for instance. If you want to get the full dancing baby, flaming skull, MIDI, Web 1.0 effect, you need to go to the person's profile. I just pull text out. I don't get friends other than the &quot;Top&quot; friends. This is not because I don't want to. I'd love to get a person's complete friends list, but it's all hidden away in highly obfuscated, JavaScript heavy code that blows my head to pieces." created="Wed, 31 Jan 2007 21:27:10 GMT"/>			<outline text="If you've got suggestions for data you'd like me to pull out of MySpace, please contact me and I'll try and extract it. To make my life easy, use something like &lt;a href=&quot;http://safariguide.net/&quot;&gt;Safari Guide&lt;/a&gt; or &lt;a href=&quot;https://addons.mozilla.org/firefox/1095/&quot;&gt;Firefox XPath Checker&lt;/a&gt; and produce me an XPath to the data that you want." created="Wed, 31 Jan 2007 21:30:50 GMT"/>			<outline text="It's all built using Python, &lt;a href=&quot;http://www.crummy.com/software/BeautifulSoup/&quot;&gt;BeautifulSoup&lt;/a&gt; (which rocks, btw - it seems like the sanest way to do HTML and XML parsing in any language I've seen) and a few XSLT 1.0 stylesheets to turn the raw XML in to RSS, OPML etc. The more I code in Python, the more I like it. I wish my web host would support it better - I'm currently putting it in to a cgi-bin and have some proxy scripts in PHP to handle things." created="Wed, 31 Jan 2007 20:50:42 GMT"/>			<outline text="&lt;a href=&quot;http://www.haloscan.com/comments/tommorris/unofficialMyspaceApi23400/&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;postCount('unofficialMyspaceApi23400');&lt;/script&gt;&lt;/a&gt; | &lt;a href=&quot;http://www.haloscan.com/tb/tommorris/unofficialMyspaceApi23400/&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;postCountTB('unofficialMyspaceApi23400'); &lt;/script&gt;&lt;/a&gt;"/>			</outline>		</body>	</opml>