<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GizBuzz &#187; Web development</title>
	<atom:link href="http://gizbuzz.co.uk/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://gizbuzz.co.uk</link>
	<description>Technology, Computers, Web 2.0, Google, Microsoft, and just about anything else</description>
	<lastBuildDate>Thu, 29 May 2008 10:02:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Making your own OpenSearch plugins</title>
		<link>http://gizbuzz.co.uk/2007/making-your-own-opensearch-plugins/</link>
		<comments>http://gizbuzz.co.uk/2007/making-your-own-opensearch-plugins/#comments</comments>
		<pubDate>Mon, 19 Mar 2007 16:48:15 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Featured Post]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://gizbuzz.co.uk/2007/making-your-own-opensearch-plugins/</guid>
		<description><![CDATA[Peter takes a look at how to create OpenSearch plugins for Firefox, allowing you to use any search system from your Firefox search bar.]]></description>
			<content:encoded><![CDATA[<p>You may notice that a while back, I did a post on <a href="http://gizbuzz.co.uk/2007/search-gizbuzz-from-the-firefox-2ie7-search-box/">adding Gizbuzz to your Firefox/IE7 search box</a>. You might have wondered how I actually got that to work.</p>
<p>Well, I'm actually going to write a quick tutorial on how you make OpenSearch plugins (which is what that Gizbuzz one was). Normally, my tutorials are the realm of Gizbuzz's sister site <a href="http://fosswire.com/">FOSSwire</a>, but since this one has quite a lot of relevance to the web in general (not just free/open source software), I thought I'd put it on Gizbuzz.</p>
<p><a href="http://opensearch.a9.com/">OpenSearch is a standard</a> being pushed by Amazon's research arm, A9.com. To create a search plugin, you simply need to write a really short XML file containing instructions to the web browser on how to perform the search. The search plugins currently are supported in both Firefox 2.0.x and Internet Explorer 7. Unfortunately, Microsoft's implementation is sadly incomplete, so to retain full cross-browser support you can't use all features of OpenSearch.</p>
<p>Start off by opening up a text editor. Not a word processor, just use something like Notepad (or a dedicated code editor if you have one). Paste in the following as a template:</p>
<div class="igBar"><span id="lxml-1"><a href="#" onclick="javascript:showPlainTxt('xml-1'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-1">
<div class="xml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;opensearchdescription</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">"http://a9.com/-/spec/opensearch/1.1/"</span> xmlns:<span style="color: #000066;">moz</span>=<span style="color: #ff0000;">"http://www.mozilla.org/2006/browser/search/"</span><span style="font-weight: bold; color: black;">&gt;</span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;shortname<span style="font-weight: bold; color: black;">&gt;</span></span></span>My test search<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/shortname<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;description<span style="font-weight: bold; color: black;">&gt;</span></span></span>Searches a test website<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/description<span style="font-weight: bold; color: black;">&gt;</span></span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/opensearchdescription<span style="font-weight: bold; color: black;">&gt;</span></span></span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;inputencoding<span style="font-weight: bold; color: black;">&gt;</span></span></span>utf-8<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/inputencoding<span style="font-weight: bold; color: black;">&gt;</span></span></span> <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;url</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/html"</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">"get"</span> <span style="color: #000066;">template</span>=<span style="color: #ff0000;">"http://example.com/search?q={searchTerms}"</span><span style="font-weight: bold; color: black;">&gt;</span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/url<span style="font-weight: bold; color: black;">&gt;</span></span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>Let's have a look at each line in detail:</p>
<div class="igBar"><span id="lxml-2"><a href="#" onclick="javascript:showPlainTxt('xml-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-2">
<div class="xml">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;opensearchdescription</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">"http://a9.com/-/spec/opensearch/1.1/"</span> xmlns:<span style="color: #000066;">moz</span>=<span style="color: #ff0000;">"http://www.mozilla.org/2006/browser/search/"</span><span style="font-weight: bold; color: black;">&gt;</span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></opensearchdescription></p>
<p>This line starts off our document. Like the root <strong>&lt;html&gt;</strong> tag in a web page, it describes what type of document this is.</p>
<div class="igBar"><span id="lxml-3"><a href="#" onclick="javascript:showPlainTxt('xml-3'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-3">
<div class="xml">
<ol start="2">
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;shortname<span style="font-weight: bold; color: black;">&gt;</span></span></span>My test search<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/shortname<span style="font-weight: bold; color: black;">&gt;</span></span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>This line identifies the 'short name' of your search plugin. This is the name that will appear on the list of search providers and is the normal text used to identify this search plugin. Keep it nice and short and sweet ('Google', 'eBay' and 'Gizbuzz' are all nice, short names for this).</p>
<div class="igBar"><span id="lxml-4"><a href="#" onclick="javascript:showPlainTxt('xml-4'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-4">
<div class="xml">
<ol start="3">
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;description<span style="font-weight: bold; color: black;">&gt;</span></span></span>Searches a test website<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/description<span style="font-weight: bold; color: black;">&gt;</span></span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>This should be a slightly longer description of what exactly you are searching (for example 'Gizbuzz Blog Archive').</p>
<div class="igBar"><span id="lxml-5"><a href="#" onclick="javascript:showPlainTxt('xml-5'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-5">
<div class="xml">
<ol start="4">
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;inputencoding<span style="font-weight: bold; color: black;">&gt;</span></span></span>utf-8<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/inputencoding<span style="font-weight: bold; color: black;">&gt;</span></span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>Unless you have a specific reason to change this, leave it as it is.
<div class="igBar"><span id="lxml-6"><a href="#" onclick="javascript:showPlainTxt('xml-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-6">
<div class="xml">
<ol start="5">
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;url</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/html"</span> <span style="color: #000066;">method</span>=<span style="color: #ff0000;">"get"</span> <span style="color: #000066;">template</span>=<span style="color: #ff0000;">"http://example.com/search?q={searchTerms}"</span><span style="font-weight: bold; color: black;">&gt;</span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/url<span style="font-weight: bold; color: black;">&gt;</span></span></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>This is the line that actually makes it all happen, and it's the hardest line to set up (but still really easy). You need to fill the <strong>template</strong> element with a URL that will perform your search.</p>
<p>The easiest way to snag such a URL is to do this. Head over to the desired site and perform a search for something recognisable (like OPENSEARCHTEST). Now, copy the URL from your browser's location bar and paste it in.</p>
<p>Simply replace <strong>OPENSEARCHTEST</strong> in the pasted URL with <strong>{searchTerms}</strong>, and let OpenSearch do the rest.</p>
<p>If you can't see that in the URL of the search results page, you may have come across a site that uses a slightly different method of doing a search. I'm not going to go into how to work with these kind of searches in this tutorial, but I might follow up on this a bit later.</p>
<div class="igBar"><span id="lxml-7"><a href="#" onclick="javascript:showPlainTxt('xml-7'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">XML:</span>
<div id="xml-7">
<div class="xml">
<ol start="6">
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;"> </li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Finally, we close everything off. Save that file with a <strong>.xml</strong> extension and upload it onto a web server somewhere.</p>
<p>The one last step you probably want to do is to actually provide the ability to add your search plugin to a browser. There are two main ways to do this:</p>
<h3>Add it to the browser with metadata</h3>
<p>The first way is to add it to a web page's metadata. In the <strong>&lt;head&gt;</strong> section of your page:</p>
<div class="igBar"><span id="lhtml-8"><a href="#" onclick="javascript:showPlainTxt('html-8'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">HTML:</span>
<div id="html-8">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/link.html"><span style="color: #000000; font-weight: bold;">&lt;link</span></a> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"http://example.com/yoursearchplugin.xml"</span> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">"search"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"application/opensearchdescription+xml"</span> <span style="color: #000066;">title</span>=<span style="color: #ff0000;">"My search plugin"</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></a></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>Simply fill in the URL and a description of your plugin and then if you go to your site, you should notice the arrow on the search box will glow a different colour. Click this, and you should be able to add your new plugin!One potential pitfall - the URL for your plugin <strong>must</strong> be absolute (it must contain the <strong>http://</strong> and the full domain name as well as the path to the XML file).</p>
<h3>Add a button</h3>
<p>If you want your plugin to be more noticeable, you might want to make a button on your website, which, when clicked, adds the plugin. In your page, include the following JavaScript:</p>
<div class="igBar"><span id="ljavascript-9"><a href="#" onclick="javascript:showPlainTxt('javascript-9'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">JavaScript:</span>
<div id="javascript-9">
<div class="javascript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #003366; font-weight: bold;">function</span> addSearchProvider<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000066; font-weight: bold;">try</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">window.<span style="color: #006600;">external</span>.<span style="color: #006600;">AddSearchProvider</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'http://example.com/yoursearchplugin.xml'</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000066; font-weight: bold;">catch</span> <span style="color: #66cc66;">&#40;</span>e<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000066;">alert</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">"Currently, the search provider function requires either Firefox 2 or Internet Explorer 7."</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000066; font-weight: bold;">return</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Now make a button which calls this JavaScript when clicked:</p>
<div class="igBar"><span id="lhtml-10"><a href="#" onclick="javascript:showPlainTxt('html-10'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">HTML:</span>
<div id="html-10">
<div class="html">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #009900;"><a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">&lt;input</span></a> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">" Add to search box! "</span> <span style="color: #000066;">onclick</span>=<span style="color: #ff0000;">"addSearchProvider();"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"button"</span> /<span style="color: #000000; font-weight: bold;">&gt;</span></a></span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>Once again, fill in your URL in the JavaScript. The same absolute URL pitfall applies here too.</p>
<h3>Finishing up</h3>
<p>Once you've built your OpenSearch plugin and you're broadcasting it on a web page using either (or both) of the above methods, anyone using Internet Explorer 7 or Firefox 2 can add that search plugin. Once they have, they can just click the arrow on the search box, choose the new plugin and get searching straight away!</p>
<p>I think I've pretty much covered everything - apart from searches that use POST, and of course a couple of advanced topics (like how to add pretty icons to your search plugins). If people liked this, I'll make sure to revisit these topics in a future tutorial!</p>
]]></content:encoded>
			<wfw:commentRss>http://gizbuzz.co.uk/2007/making-your-own-opensearch-plugins/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Control the web from your IM</title>
		<link>http://gizbuzz.co.uk/2007/control-the-web-from-your-im/</link>
		<comments>http://gizbuzz.co.uk/2007/control-the-web-from-your-im/#comments</comments>
		<pubDate>Mon, 05 Mar 2007 07:30:19 +0000</pubDate>
		<dc:creator>Huw</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://gizbuzz.co.uk/2007/control-the-web-from-your-im/</guid>
		<description><![CDATA[
IMified, an instant messenging bot which allows you to easily control various different third party web services through their APIs (see explainer post) has risen to popularity over the past couple of weeks.
It's easy to see why - with IMified you can currently post to Wordpress, Blogger, Livejournal, Moveable Type and Typepad blog, keep yourself [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://imified.com" title="IMified"><img src="http://gizbuzz.co.uk/wp-content/uploads/2007/03/imifiedlogo.gif" alt="IMified" /></a></p>
<p><a href="http://imified.com" target="_blank">IMified</a>, an instant messenging bot which allows you to easily control various different third party web services through their APIs (<a href="http://gizbuzz.co.uk/2006/goggles-and-why-apis-can-help-build-great-applications/">see explainer post</a>) has risen to popularity over the past couple of weeks.</p>
<p>It's easy to see why - with IMified you can currently post to Wordpress, Blogger, Livejournal, Moveable Type and Typepad blog, keep yourself organised with Remember the Milk, Google or 30boxes calendar and Backpack and collaborate with Basecamp. That's on top of their own Todo, Reminder and Notes apps, all of which work very nicely.</p>
<p>The three services I'm making use of are IMified's own Reminders and Todo list functions, as well as using it to post to my personal blog. At first I was a little sceptical as to whether it was a gimmick or a genuinely useful product, but I have actually found it the latter.</p>
<p><a href="http://gizbuzz.co.uk/wp-content/uploads/2007/03/imifiedscreen1.PNG" title="IMified screenshot"><img src="http://gizbuzz.co.uk/wp-content/uploads/2007/03/imifiedscreen1.PNG" title="IMified screenshot" alt="IMified screenshot" align="right" hspace="10" /></a>IMified represents one of the good things about Web 2.0 - open architecture. It would be brilliant if this could be expanded so that over my IM I can have notifications of new email, updates on selected feeds and maybe even TV listings.</p>
<p>I'm particularly keen to see IMified and Twitter integration. A post about <a href="http://twitter.com">Twitter</a>, a 'nano blogging' service which allows you to answer the question 'what are you doing?' in 140 characters or less and recieve updates from your friends via IM, text message and web interface, is coming soon on Gizbuzz. Despite the fact that Twitter already uses IM, it would be nice to be able to use it from one bot which does everything.</p>
<p>Over time I would hope that more and more services would be added. At the moment, services must be added by the IMified team, and so perhaps they should look at developing an IMified API that would allow third party developers to integrate their systems into IMified without any help from IMified.</p>
<p>IMified is a service I'm really excited about, and I think it could do extremely well in time. On a sidenote, as far as I can tell, IMified is a side project for its developers and unfunded. I think it's an excellent example of how far a good idea can come without needing to enter the private equity game.</p>
]]></content:encoded>
			<wfw:commentRss>http://gizbuzz.co.uk/2007/control-the-web-from-your-im/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter Compromised</title>
		<link>http://gizbuzz.co.uk/2007/twitter-compromised/</link>
		<comments>http://gizbuzz.co.uk/2007/twitter-compromised/#comments</comments>
		<pubDate>Sun, 14 Jan 2007 22:04:42 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://gizbuzz.co.uk/2007/twitter-compromised/</guid>
		<description><![CDATA[Today a Twitter user who goes by the name "Bon" utilized a flaw in Twitter's code to post messages on other accounts (through the Twitter API).
Bon's exposure of the bug posted this message on hundreds of Twitter accounts:
Looking at Bon's Twitter page - http://twitter.com/x
Innocent enough, however the fear of hacking was in the air.  [...]]]></description>
			<content:encoded><![CDATA[<p>Today a <a href="http://twitter.com/x">Twitter user</a> who goes by the name "Bon" utilized a flaw in Twitter's code to post messages on other accounts (through the Twitter API).</p>
<p>Bon's exposure of the bug posted this message on hundreds of Twitter accounts:</p>
<blockquote><p>Looking at Bon's Twitter page - <a href="http://twitter.com/x">http://twitter.com/x</a></p></blockquote>
<p>Innocent enough, however the fear of hacking was in the air.  Soon after the initial run of posts, Bon (who's page appears to be victimized by the flaw as well) posted <a href="http://twitter.com/x/statuses/2852223">this message</a>:</p>
<blockquote><p>Hello everyone. Twitter has not been hacked. It has merely been taken advantage of. This is my little experiment. Everything is safe. Go back to bed.</p></blockquote>
<p>The messages continued however and there was no certainty as to whether private information (passwords) had been accessed.  <a href="http://allinthehead.com/">Drew McClellan</a> set aside those fears and <a href="http://twitter.com/drewm/statuses/2854833">posted this</a>:</p>
<blockquote><p>looked at Bon's page with curl <img src='http://gizbuzz.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  He's using a CSS url hack to post with the API. It uses the fact that your browser is logged in. Account not compromised</p></blockquote>
<p>As of right now Twitter appears to be back to normal.  Twitterers are twittering that they're sending emails in, so this issue should be resolved shortly.  </p>
<p>In the meantime, this begs the question - how much customization is too much?  At what point do we need to worry about compromising a user's security?  Of course, major sites like MySpace face this problem on a daily basis - in fact we reported on <a href="http://gizbuzz.co.uk/2007/gmail-xss-vulnerability/">a similar issue at Google</a> a few weeks ago.  The web 2.0 space demands customization - however there are obvious drawbacks.  It will be occurrences like these that help to define the line between security and creativity.</p>
<p><strong>Update:</strong> Jack from Twitter responds in the comments below, noting that Bon did in fact alert Twitter about the bug.  It is now patched!</p>
]]></content:encoded>
			<wfw:commentRss>http://gizbuzz.co.uk/2007/twitter-compromised/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>YouTube Redesigns (again)</title>
		<link>http://gizbuzz.co.uk/2006/youtube-redesigns-again/</link>
		<comments>http://gizbuzz.co.uk/2006/youtube-redesigns-again/#comments</comments>
		<pubDate>Thu, 07 Dec 2006 16:43:12 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://gizbuzz.co.uk/2006/youtube-redesigns-again/</guid>
		<description><![CDATA[YouTube has rolled out the latest element in its recent redesign efforts, now focusing on the upper "fold" of its site.

The San Bruno based site has recently made an effort to enhance their public image, likely due in part to the Google transition.  Their logo was enhanced to a more "web 2.0" style, with [...]]]></description>
			<content:encoded><![CDATA[<p>YouTube has rolled out the latest element in its recent redesign efforts, now focusing on the upper "fold" of its site.</p>
<div align="center"><a class="imagelink" href="http://gizbuzz.co.uk/wp-content/uploads/2006/12/youtuberedesign.PNG" title="YouTube Redesign"><img id="image526" src="http://gizbuzz.co.uk/wp-content/uploads/2006/12/youtuberedesign.thumbnail.PNG" alt="YouTube Redesign" /></a></div>
<p>The San Bruno based site has recently made an effort to enhance their public image, likely due in part to the Google transition.  Their logo was enhanced to a more "web 2.0" style, with gradients and reflections, and their interface went through a slight change.</p>
<p>One notable part of this redesign is that it's now extremely image intensive, something most Web 2.0 sites have attempted to drift away from using a combination of XHTML and CSS.  Surprisingly, most of YouTube's "mission critical" elements, portions such as the tabs along the top, or something as simple as an "Upload Video" link are now images.  From a web design standpoint, these parts could be effectively substituted with standard text (this would also decrease loading time/bandwidth, and no doubt they have problems witih that).</p>
<p>It's a dramatic change as well in YouTube's image, as they've largely dropped their red colouring (it's only prevalent in their logo and flash player).  It's an enigmatic change that leaves us asking where are they going next -- what are they preparing for?</p>
<p><em>Edited slightly to clarify a point, thanks to <a href="http://gizbuzz.co.uk/2006/youtube-redesigns-again/?preview=true#comment-7344">Sam in the comments</a> for pointing out my mistake.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://gizbuzz.co.uk/2006/youtube-redesigns-again/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Is Aptana what I have been looking for?</title>
		<link>http://gizbuzz.co.uk/2006/is-aptana-what-i-have-been-looking-for/</link>
		<comments>http://gizbuzz.co.uk/2006/is-aptana-what-i-have-been-looking-for/#comments</comments>
		<pubDate>Fri, 04 Aug 2006 21:53:51 +0000</pubDate>
		<dc:creator>Huw</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://gizbuzz.co.uk/2006/is-aptana-what-i-have-been-looking-for/</guid>
		<description><![CDATA[
Everyone's talking about Aptana, the new open source WebDev IDE on the block, currently in a 0.31 beta release. It's features are listed as:

Code Assist on JavaScript, HTML, and CSS languages, including your own JavaScript functions
Outliner that gives a snapshot view of your JavaScript, HTML, and CSS code structure
Error and warning notification for your code
Support [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="Aptana logo" src="http://gizbuzz.co.uk/wp-content/uploads/2006/07/aptana.gif" /></p>
<p><a href="http://www.technorati.com/search/aptana">Everyone's talking</a> about <a href="http://aptana.com">Aptana</a>, the new open source WebDev IDE on the block, currently in a 0.31 beta release. It's features are listed as:</p>
<ul>
<li>Code Assist on JavaScript, HTML, and CSS languages, including your own JavaScript functions</li>
<li>Outliner that gives a snapshot view of your JavaScript, HTML, and CSS code structure</li>
<li>Error and warning notification for your code</li>
<li>Support for Aptana UI customization and extensions</li>
<li>Cross-platform support</li>
<li>Free and open source. (Source available soon)</li>
</ul>
<p>It's the code assist function that got me most excited. I'm not a good web developer at all, and I love the code assist features in Visual Studio which really hold your hand through writing even tricky code syntax. In Aptana I was pleased to find that the feature had been very well executed, closing tags and quotes automatically, and providing useful suggestions. However, problems arose when I forgot a tag within which I wanted to nest a series of others, and so some sort of easy 'off switch' for the automation would be useful.</p>
<p>The only major feature which Aptana is lacking at the moment as far as I can see is PHP support. The developers say they are working on this, and once it is finished I have no doubt that Aptana will become a valuable part of many web devs, both professional and amateur.</p>
]]></content:encoded>
			<wfw:commentRss>http://gizbuzz.co.uk/2006/is-aptana-what-i-have-been-looking-for/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
