<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Broken Links</title>
	
	<link>http://www.broken-links.com</link>
	<description>Thoughts on web development and technologies by Peter Gasston</description>
	<lastBuildDate>Sat, 13 Mar 2010 01:56:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/PeterGasstonsGeekBlog" /><feedburner:info uri="petergasstonsgeekblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>PeterGasstonsGeekBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>The importance of semantics on the web</title>
		<link>http://feedproxy.google.com/~r/PeterGasstonsGeekBlog/~3/0G0FaetgEiw/</link>
		<comments>http://www.broken-links.com/2010/03/03/the-importance-of-semantics-on-the-web/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 10:14:44 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Basics]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[aboutness]]></category>
		<category><![CDATA[findability]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=690</guid>
		<description><![CDATA[We, as website makers, quite often advise our clients to avoid generic link text (read more,click here, etc.), and explain that more verbose descriptions help give context to users with screen readers. But using semantic link descriptions actually helps everyone.

I recently read Peter Morville's fantastic book, <a href="http://books.google.com/books?id=xJNLJXXbhusC">Ambient Findability</a>, which defined really well the motivation to use semantic descriptions for links: they give the target page <a href="http://en.wikipedia.org/wiki/Aboutness">aboutness</a>.]]></description>
			<content:encoded><![CDATA[<p>We, as website makers, quite often advise our clients to avoid generic link text (read more,click here, etc.), and explain that more verbose descriptions help give context to users with screen readers. But using semantic link descriptions actually helps everyone.</p>
<p>I recently read Peter Morville’s fantastic book, <a href="http://books.google.com/books?id=xJNLJXXbhusC">Ambient Findability</a>, which defined really well the motivation to use semantic descriptions for links: they give the target page <a href="http://en.wikipedia.org/wiki/Aboutness">aboutness</a>.</p>
<p><span id="more-690"></span></p>
<p>Simply defined, <strong>aboutness</strong> is the quality of meaning; what something is about is defined by its aboutness. To extend an example from Morville’s book, let’s regard a web page which contains W.H. Auden’s poem, <a href="http://www.davidpbrown.co.uk/poetry/wystan-hugh-auden.html">Funeral Blues</a>:</p>
<blockquote><p>
He was my North, my South, my East and West,<br />
My working week and my Sunday rest,<br />
My noon, my midnight, my talk, my song,<br />
I thought that love would last forever; I was wrong
</p></blockquote>
<p>Although <em>we</em> know that the poem is about death, the word itself doesn’t appear in the poem; so how could a search engine that indexed the page know what it was about, and return it in the results of a search on that topic?</p>
<p>In order to gain some context, the search engine will look at the text of the links to that page*; so a link with the text ‘read more’ will provide no context whatsoever, whereas a link with the text ‘W.H. Auden’s poem about death’ provides aboutness.</p>
<p>And it’s not just for our link text that semantics are important; the same principle applies with HTML — your markup gives aboutness to your content. So if you’re a front-end coder, be sure to at least use appropriate container elements (the <a href="http://html5doctor.com/">HTML5 Doctor</a> can help with this), and if you want to go further take a look at the likes of <a href="http://microformats.org/">Microformats</a> and <a href="http://www.w3.org/TR/xhtml-rdfa-primer/">RDFa</a>.</p>
<p>* Search engines look at more than this, of course, but this is the most obvious example.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=0G0FaetgEiw:KSA3i6tCaIU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=0G0FaetgEiw:KSA3i6tCaIU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=0G0FaetgEiw:KSA3i6tCaIU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=0G0FaetgEiw:KSA3i6tCaIU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=0G0FaetgEiw:KSA3i6tCaIU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=0G0FaetgEiw:KSA3i6tCaIU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=0G0FaetgEiw:KSA3i6tCaIU:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PeterGasstonsGeekBlog/~4/0G0FaetgEiw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2010/03/03/the-importance-of-semantics-on-the-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.broken-links.com/2010/03/03/the-importance-of-semantics-on-the-web/</feedburner:origLink></item>
		<item>
		<title>Help wanted: Webkit multi-columns</title>
		<link>http://feedproxy.google.com/~r/PeterGasstonsGeekBlog/~3/wQHh0TLGFz4/</link>
		<comments>http://www.broken-links.com/2010/02/16/help-wanted-webkit-multi-columns/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 20:09:51 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[multiple columns]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=701</guid>
		<description><![CDATA[I’m writing about the CSS3 Multi-column layout module and I notice that WebKit supports a series of proprietary properties: –webkit-column-break-after, –webkit-column-break-before, and –webkit-column-break-inside. However, despite the documentation saying that they’re implemented in Safari 3+, I can’t seem to get any of them to work.
Has anyone reading this ever seen an example of these in action? [...]]]></description>
			<content:encoded><![CDATA[<p>I’m writing about the CSS3 Multi-column layout module and I notice that WebKit supports a series of proprietary properties: <code>–webkit-column-break-after</code>, <code>–webkit-column-break-before</code>, and <code>–webkit-column-break-inside</code>. However, despite the documentation saying that they’re implemented in Safari 3+, I can’t seem to get any of them to work.</p>
<p>Has anyone reading this ever seen an example of these in action? I’ve searched for demos but have found nothing. If you know anything about this, please leave me a comment; your help would be gratefully appreciated.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=wQHh0TLGFz4:JftKauvXLgQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=wQHh0TLGFz4:JftKauvXLgQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=wQHh0TLGFz4:JftKauvXLgQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=wQHh0TLGFz4:JftKauvXLgQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=wQHh0TLGFz4:JftKauvXLgQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=wQHh0TLGFz4:JftKauvXLgQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=wQHh0TLGFz4:JftKauvXLgQ:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PeterGasstonsGeekBlog/~4/wQHh0TLGFz4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2010/02/16/help-wanted-webkit-multi-columns/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.broken-links.com/2010/02/16/help-wanted-webkit-multi-columns/</feedburner:origLink></item>
		<item>
		<title>The Uncanny Valley and Realism in UI Design</title>
		<link>http://feedproxy.google.com/~r/PeterGasstonsGeekBlog/~3/D_RRZ2h7Xoc/</link>
		<comments>http://www.broken-links.com/2010/01/25/the-uncanny-valley-and-realism-in-ui-design/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 23:54:01 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[IA & UX]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[prototyping]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[ux]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=697</guid>
		<description><![CDATA[Last year I began exploring the idea of the uncanny valley as it applies to creating prototypes, using a panel from Understanding Comics as an illustration. Lukas Mathis at UX Magazine has had a similar idea, but explored it in much more depth and with greater clarity.
]]></description>
			<content:encoded><![CDATA[<p>Last year I began exploring the idea of <a href="/2009/07/17/on-the-uncanny-valley-creating-prototypes/">the uncanny valley as it applies to creating prototypes</a>, using a panel from <em>Understanding Comics</em> as an illustration. Lukas Mathis at UX Magazine has had a similar idea, but <a href="http://uxmag.com/design/realism-in-ui-design">explored it in much more depth and with greater clarity</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=D_RRZ2h7Xoc:AUbHvAnEpNg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=D_RRZ2h7Xoc:AUbHvAnEpNg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=D_RRZ2h7Xoc:AUbHvAnEpNg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=D_RRZ2h7Xoc:AUbHvAnEpNg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=D_RRZ2h7Xoc:AUbHvAnEpNg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=D_RRZ2h7Xoc:AUbHvAnEpNg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=D_RRZ2h7Xoc:AUbHvAnEpNg:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PeterGasstonsGeekBlog/~4/D_RRZ2h7Xoc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2010/01/25/the-uncanny-valley-and-realism-in-ui-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.broken-links.com/2010/01/25/the-uncanny-valley-and-realism-in-ui-design/</feedburner:origLink></item>
		<item>
		<title>Building Preloaded.com: The Front-end</title>
		<link>http://feedproxy.google.com/~r/PeterGasstonsGeekBlog/~3/alEXk3oajpg/</link>
		<comments>http://www.broken-links.com/2010/01/21/building-preloaded-com-the-front-end/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 15:53:37 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[glow]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=686</guid>
		<description><![CDATA[This post discusses the redesign project of my employer’s own website, Preloaded.com, and is cross-posted from there with permission.

At the beginning of the redesign project we agreed some design tenets: the new site should be a best-practice showcase and an opportunity to learn and use some of the latest web technologies; and it should employ existing services where practical.]]></description>
			<content:encoded><![CDATA[<p><em>This subject of this post is the redesign of my employer’s website, <a href="http://preloaded.com/">Preloaded.com</a>, and is cross-posted from the Preloaded blog with permission.</em></p>
<p>At the beginning of the redesign project we agreed some design tenets: the new site should be a best-practice showcase and an opportunity to  learn and use some of the latest web technologies; and it should employ existing services where practical.</p>
<p><span id="more-686"></span></p>
<p>To achieve the former we targeted users with the most modern web browsers, using the <a href="http://en.wikipedia.org/wiki/Progressive_enhancement">graceful (or progressive) enhancement</a> method to ensure that even with older technology, no-one would be left unable to read all of the site content.</p>
<p>The most obvious example of this is in the design of the buttons; users with a decent browser (e.g. Firefox or Safari) would see these with rounded corners — because these browsers are capable of producing them natively with the CSS3 <em>border-radius </em>declaration — while users of other browsers (e.g. Internet Explorer) would see them square:</p>
<p><img src="http://preloaded.com/site_media/uploads/blog/preloaded_frontend/comparison.jpg" alt="" width="475" height="243" /></p>
<p><em>Browser comparison. Top: Safari 4; Bottom: Internet Explorer 8</em></p>
<p>While all users see the same content, those with a modern browser are rewarded with a slightly improved experience. We used other variations of this method elsewhere throughout the site.</p>
<h2>Technology</h2>
<h3>Web Fonts</h3>
<p>In order to achieve brand consistency we had a font in mind which we were going to implement using the <a href="http://cufon.shoqolate.com/">Cufón</a> Javascript technique. During the process of adding this the font foundry clarified their licensing, excluding this font from online use in this way, so we had to scrap it and look for a different angle.</p>
<p>While we were trying out various alternatives using Flash and Javascript (we now know more about font licensing and implementation than we ever wanted to), a new solution presented itself. Using <a href="http://www.fontsquirrel.com/fontface/generator">Font Squirrel’s web font generator</a> and <a href="http://paulirish.com/2009/bulletproof-font-face-implementation-syntax/">Paul Irish’s bulletproof syntax</a> we were able to use the browsers’ own built-in font support (with <em>@font-face</em>) and achieve our desired result for 95% of our users; the other 5% will see a standard system font, as per the graceful en­hance­ment method.</p>
<h3>Glow</h3>
<p><a href="http://www.bbc.co.uk/glow/">Glow</a> is a BBC-developed Javascript library, with a jQuery-like syntax but a focus on interface widgets, which makes it easy to create animations and UI elements for websites. Having already used it briefly on a project earlier in the year, we decided it would be a good fit for what we wanted — and something new to learn.</p>
<p>The image carousel on the homepage was made with Glow, as was the slide-down contact details on each page, and the lightbox overlay effect for screenshots on the case study pages.</p>
<p>The only drawback we found with Glow was a bug in their carousel rendering in IE8; this meant that we had to force <a href="http://blogs.msdn.com/ie/archive/2008/08/27/introducing-compatibility-view.aspx">compatibility view</a> for IE8 to display as IE7, but it’s something we’re hoping to change after the next Glow release.</p>
<h3>HTML5</h3>
<p>Under the bonnet we used some cutting-edge code to mark up our content. HTML5 is a very new specification and still somewhat in a state of flux, but we used it in two different ways:</p>
<p>First was to provide semantic structure to the pages with the new structural elements (the definitions of which are still being discussed, so may not be completely correct — <a href="http://html5doctor.com/">HTML5 Doctor</a> was an invaluable resource for this).</p>
<p>Second, and of more impact to the user, was using <em>sessionStorage</em> to take advantage of the opportunities for storing data in the user’s browser. We used this in conjunction with Glow to create the carousel and slide-down effects; if you have a modern browser these are created only once and held in the browser’s storage, whereas older browsers create them anew each time you visit the page — this leads to the site being somewhat snappier in modern browsers.</p>
<h2>Conclusion</h2>
<p>Working with brand new and cutting edge features meant spending time chasing down false leads and up blind alleys, but was a great way of learning and gave us invaluable experience to take into the sites we make for our clients in future.</p>
<p>There are still one or two changes which we’ll be rolling into the site in the coming months, but if you spot any problems — or just want to talk more in-depth about the methods and techniques we’ve used — don’t hesitate to leave a comment.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=alEXk3oajpg:ylqPVHg2R1g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=alEXk3oajpg:ylqPVHg2R1g:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=alEXk3oajpg:ylqPVHg2R1g:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=alEXk3oajpg:ylqPVHg2R1g:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=alEXk3oajpg:ylqPVHg2R1g:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=alEXk3oajpg:ylqPVHg2R1g:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=alEXk3oajpg:ylqPVHg2R1g:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PeterGasstonsGeekBlog/~4/alEXk3oajpg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2010/01/21/building-preloaded-com-the-front-end/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.broken-links.com/2010/01/21/building-preloaded-com-the-front-end/</feedburner:origLink></item>
		<item>
		<title>Opera 10.5 has support for CSS transforms</title>
		<link>http://feedproxy.google.com/~r/PeterGasstonsGeekBlog/~3/TEhWbq3KSnw/</link>
		<comments>http://www.broken-links.com/2009/12/22/opera-10-5-has-support-for-css-transforms/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 20:28:30 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=680</guid>
		<description><![CDATA[The Opera team have released a very early preview of their next browser, which features an updated version of their Presto rendering engine. Opera 10.5 will support CSS transforms and transitions, so I’ve updated the demos on my old post, Anime with CSS and WebKit, to reflect that.
]]></description>
			<content:encoded><![CDATA[<p>The Opera team have released <a href="http://labs.opera.com/news/2009/12/22/">a very early preview of their next browser</a>, which features an updated version of their Presto rendering engine. Opera 10.5 will support CSS transforms and transitions, so I’ve updated the demos on my old post, <a href="/2008/07/11/anime-with-css-and-webkit/">Anime with CSS and WebKit</a>, to reflect that.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=TEhWbq3KSnw:KAmG7BKwC5s:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=TEhWbq3KSnw:KAmG7BKwC5s:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=TEhWbq3KSnw:KAmG7BKwC5s:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=TEhWbq3KSnw:KAmG7BKwC5s:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=TEhWbq3KSnw:KAmG7BKwC5s:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=TEhWbq3KSnw:KAmG7BKwC5s:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=TEhWbq3KSnw:KAmG7BKwC5s:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PeterGasstonsGeekBlog/~4/TEhWbq3KSnw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2009/12/22/opera-10-5-has-support-for-css-transforms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.broken-links.com/2009/12/22/opera-10-5-has-support-for-css-transforms/</feedburner:origLink></item>
		<item>
		<title>Firefox 3.6 uses the W3C File API</title>
		<link>http://feedproxy.google.com/~r/PeterGasstonsGeekBlog/~3/OH2xPnr_Dv4/</link>
		<comments>http://www.broken-links.com/2009/12/15/firefox-3-6-uses-the-w3c-file-api/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 22:23:04 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[OS]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[file api]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[firefox 3.6]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=670</guid>
		<description><![CDATA[Last month the W3C released a working draft of the <a href="http://www.w3.org/TR/FileAPI/">File API</a>, which <q cite="http://www.w3.org/TR/FileAPI/">defines the basic representations for files, lists of files, errors raised by access to files, and programmatic ways to read files</q>. The Firefox team <a href="http://hacks.mozilla.org/2009/12/w3c-fileapi-in-firefox-3-6/">have already implemented much of it</a>, and have released a series of impressive demos on <a href="http://hacks.mozilla.org/">hacks.mozilla.org</a>, which you can see if you have a recent beta of Firefox 3.6 (or a nightly trunk build).]]></description>
			<content:encoded><![CDATA[<p>Last month the W3C released a working draft of the <a href="http://www.w3.org/TR/FileAPI/">File API</a>, which <q cite="http://www.w3.org/TR/FileAPI/">defines the basic representations for files, lists of files, errors raised by access to files, and programmatic ways to read files</q>. The Firefox team <a href="http://hacks.mozilla.org/2009/12/w3c-fileapi-in-firefox-3-6/">have already implemented much of it</a>, and have released a series of impressive demos on <a href="http://hacks.mozilla.org/">hacks.mozilla.org</a>, which you can see if you have a recent beta of Firefox 3.6 (or a nightly trunk build).</p>
<p>The four demos shown to date display different (although related) aspects of the API, showing first <a href="http://hacks.mozilla.org/2009/12/multiple-file-input-in-firefox-3-6/">multiple file uploads</a>, then a <a href="http://hacks.mozilla.org/2009/12/file-drag-and-drop-in-firefox-3-6/">drag and drop upload interface</a>, next adding <a href="http://hacks.mozilla.org/2009/12/uploading-files-with-xmlhttprequest/">progress information</a> (although this doesn’t work for me), then <a href="http://hacks.mozilla.org/2009/12/firefox-36-fileapi-demo-reading-exif-data-from-a-local-jpeg-file/">reading EXIF data from a JPEG image</a>. You can imagine how these combined would be used for native drag and drop uploading to Flickr, for example.</p>
<p>The File API plays a big part in integrating the browser more tightly with the OS, particularly when combined with the drag and drop functionality, and I’m sure it’s only a matter of time until the other browsers implement this. Congratulations to the Firefox team for their work on this, and hacks.mozilla.org for some great demos.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=OH2xPnr_Dv4:exvTYurFGA8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=OH2xPnr_Dv4:exvTYurFGA8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=OH2xPnr_Dv4:exvTYurFGA8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=OH2xPnr_Dv4:exvTYurFGA8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=OH2xPnr_Dv4:exvTYurFGA8:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=OH2xPnr_Dv4:exvTYurFGA8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=OH2xPnr_Dv4:exvTYurFGA8:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PeterGasstonsGeekBlog/~4/OH2xPnr_Dv4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2009/12/15/firefox-3-6-uses-the-w3c-file-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.broken-links.com/2009/12/15/firefox-3-6-uses-the-w3c-file-api/</feedburner:origLink></item>
		<item>
		<title>CSS gradient syntax: comparison of Mozilla and WebKit (Part 2)</title>
		<link>http://feedproxy.google.com/~r/PeterGasstonsGeekBlog/~3/ZBgyMCNGIWo/</link>
		<comments>http://www.broken-links.com/2009/11/30/css-gradient-syntax-comparison-of-mozilla-and-webkit-part-2/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 19:23:11 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[syntax]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=649</guid>
		<description><![CDATA[In <a href="/2009/11/26/css-gradient-syntax-comparison-of-mozilla-and-webkit/">the first part of this post</a> I gave a potted history of the differing syntaxes, and provided an overview of how that affected linear gradients. In this second part I'm going to look at radial gradients.

Here the syntaxes diverge slightly more, with WebKit requiring more values than Mozilla; while that adds some flexibility, it also increases the complexity.]]></description>
			<content:encoded><![CDATA[<p>In <a href="/2009/11/26/css-gradient-syntax-comparison-of-mozilla-and-webkit/">the first part of this post</a> I gave a potted history of the differing syntaxes, and provided an overview of how that affected linear gradients. In this second part I’m going to look at radial gradients.</p>
<p>Here the syntaxes diverge slightly more, with WebKit requiring more values than Mozilla; while that adds some flexibility, it also increases the complexity.</p>
<p><span id="more-649"></span></p>
<p>I’ll be using the same page of examples, which you’ll need to view in Safari / Chrome (or other WebKit derivative) or Firefox 3.6 (beta 3+):</p>
<p><a href="/tests/gradients/">CSS Gradients comparison: Mozilla &amp; WebKit</a></p>
<h2>Radial gradients</h2>
<p>As with linear gradients, the key differentiation between the <a href="https://developer.mozilla.org/en/CSS/-moz-radial-gradient">Mozilla syntax</a> and the <a href="http://developer.apple.com/mac/library/documentation/AppleApplications/Reference/SafariCSSRef/Articles/Functions.html">WebKit syntax</a> is that the latter requires a start and end point, whereas the former is constrained by the bounding box.</p>
<p>You can see in this first example (<strong>Radial 1</strong>) that the Mozilla syntax is much shorter when making a simple two-colour radial gradient:</p>
<pre>-moz-radial-gradient(green, yellow);
-webkit-gradient(radial, center center, 0, center center, 70.5, from(green), to(yellow));</pre>
<p>In Mozilla’s case I set only start and end <code>color-stop</code>s; for WebKit I must specify a position (<em>50% 50%</em>) and radius (<em>0</em> — I’ll explain that later) for the start point, and a position (<em>50% 50%</em>) and radius (<em>70.5</em>) for the end point, as well as the <code>color-stop</code>s.</p>
<p>As far as I can see the radius value has to be a value in pixels, so in order for the end radius to be the diagonal of the square (where Mozilla defaults to) you need to use the calculation<em> (side)(sqrt(2))</em> — or, do what I did and use this <a href="http://easycalculation.com/area/square.php">online calculator</a>.</p>
<p>In the next example (<strong>Radial 2</strong>) I’ve offset the center of the gradient and set it to end at the furthest edge of the containing box:</p>
<pre>-moz-radial-gradient(40% 40%, farthest-side, green, yellow);
-webkit-gradient(radial, 40% 40%, 0, 40% 40%, 60, from(green), to(yellow));</pre>
<p>And then used the same center offset but constrained the radius to the distance of the nearest wall (<strong>Radial 3</strong>):</p>
<pre>-moz-radial-gradient(40% 40%, closest-side, green, yellow);
-webkit-gradient(radial, 40% 40%, 0, 40% 40%, 40, from(green), to(yellow));</pre>
<p>As you can see, Mozilla takes a series of constants using natural language — <code>farthest-side</code>, <code>closest-side</code>, <code>contain</code>, etc — to set the limits of the gradient, where WebKit accepts only pixel values. The advantage to the former approach is that the syntax is simpler and no calculations are required; the disadvantage is that if you want to create a radial gradient that is smaller than the limits of the containing box, you have to combine it with the <code>background-size</code> property.</p>
<p>Next (<strong>Radial 4</strong>) I’ve set the center of the gradient to the top-right corner, using three colours equally distributed; here’s where you can start to see the WebKit syntax start to become really unwieldy:</p>
<pre>-moz-radial-gradient(right top, green, yellow, blue);
-webkit-gradient(radial, right top, 0, right top, 141, from(green), color-stop(50%, yellow), to(blue));</pre>
<p>With WebKit I again have to specify start and end points (with radii), and also specify the stop position of the middle colour. Both outcomes are the same, but the Mozilla syntax is significantly easier.</p>
<p>One aspect of WebKit’s syntax which allows for more flexibility in a gradient is the start point and end point; by providing two separate values you can set the start gradient at a different point to the end gradient, as well as providing different radius values, allowing for effects that Mozilla can’t easily replicate (<strong>Radial 5</strong>):</p>
<pre>-moz-radial-gradient(60% 60%,circle contain,yellow,green 75%,rgba(255,255,255,0));
-webkit-gradient(radial,45% 45%,5,60% 60%,40,from(yellow),color-stop(75%, green),to(rgba(255,255,255,0)));</pre>
<p>You can see how that is rendered here (Mozilla on the left, WebKit on the right):</p>
<p><img src="/wp-content/uploads/2009/11/radial_gradient.png" alt="Comparison of CSS gradients" width="200" height="100" /></p>
<p>Achieving the same effect is only possible in Mozilla by using multiple values on the <code>background-image</code> property, <del datetime="2009-11-30T22:04:27+00:00">along with <code>background-size</code></del> (<strong>Update:</strong> This isn’t necessary; see <a href="#comment-35677">Tab Atkins Jr’s comment</a>, below).</p>
<h2>Conclusions</h2>
<p>While the (original) WebKit syntax does allow for a few effects that the simpler Mozilla implementation can’t easily copy, I think these are really edge cases and the simplicity of the newer syntax is more than ample compensation. It seems the CSS WG agree, which is why the simple syntax is to become an official proposal; I hope the WebKit team accept the proposal and implement it soon.</p>
<p>It was suggested that I also compare these with <a href="http://msdn.microsoft.com/en-us/library/ms532997%28VS.85%29.aspx">Internet Explorer’s Gradient filter</a>, but that’s a browser-specific implementation that has no chance of becoming a standard, so I didn’t feel it was suitable for this article; perhaps in a future extension.</p>
<p><strong>Update:</strong> Just after I finished this article, <a href="http://hacks.mozilla.org/2009/11/css-gradients-firefox-36/">Mozilla Hacks published an in-depth look at the new syntax</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=ZBgyMCNGIWo:KKE3hBAISSQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=ZBgyMCNGIWo:KKE3hBAISSQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=ZBgyMCNGIWo:KKE3hBAISSQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=ZBgyMCNGIWo:KKE3hBAISSQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=ZBgyMCNGIWo:KKE3hBAISSQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=ZBgyMCNGIWo:KKE3hBAISSQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=ZBgyMCNGIWo:KKE3hBAISSQ:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PeterGasstonsGeekBlog/~4/ZBgyMCNGIWo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2009/11/30/css-gradient-syntax-comparison-of-mozilla-and-webkit-part-2/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		<feedburner:origLink>http://www.broken-links.com/2009/11/30/css-gradient-syntax-comparison-of-mozilla-and-webkit-part-2/</feedburner:origLink></item>
		<item>
		<title>CSS gradient syntax: comparison of Mozilla and WebKit</title>
		<link>http://feedproxy.google.com/~r/PeterGasstonsGeekBlog/~3/zXGtgj7yUeg/</link>
		<comments>http://www.broken-links.com/2009/11/26/css-gradient-syntax-comparison-of-mozilla-and-webkit/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 15:48:32 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[browsers]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[standards]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[gradients]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[webkit]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=624</guid>
		<description><![CDATA[CSS Gradients were <a href="http://webkit.org/blog/175/introducing-css-gradients/">originally proposed by the WebKit team</a> in April 2008, modified from the syntax proposed for <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#colors-and-styles">the Canvas element of HTML5</a>. In August of this year, Mozilla announced <a href="/2009/08/08/new-background-rules-in-firefox-3-6/">an implementation slightly modified from that of WebKit</a> would be in the next version of Firefox (3.6).

Since then, however, the <abbr title="CSS Working Group">CSS WG</abbr> have discussed a <a href="http://www.xanthir.com/:4bhipd">different syntax</a>, and <a href="http://www.w3.org/blog/CSS/2009/10/01/resolutions_79">a resolution passed</a> to add this to the <a href="http://www.w3.org/TR/css3-images/">Image Values module</a>. <a href="http://weblogs.mozillazine.org/roc/archives/2009/11/css_gradient_sy.html">Mozilla have decided to implement the new syntax</a>, which is simpler than WebKit's but less flexible.

In this article, which will be split into at least two parts, I'm going to compare the two syntaxes.]]></description>
			<content:encoded><![CDATA[<p>CSS Gradients were <a href="http://webkit.org/blog/175/introducing-css-gradients/">originally proposed by the WebKit team</a> in April 2008, modified from the syntax proposed for <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#colors-and-styles">the Canvas element of HTML5</a>. In August of this year, Mozilla announced that <a href="/2009/08/08/new-background-rules-in-firefox-3-6/">an implementation slightly modified from that of WebKit</a> would be in the next version of Firefox (3.6).</p>
<p>Since then, however, the <abbr title="CSS Working Group">CSS WG</abbr> have discussed a <a href="http://www.xanthir.com/:4bhipd">different syntax</a>, and <a href="http://www.w3.org/blog/CSS/2009/10/01/resolutions_79">a resolution was passed</a> to add this to the <a href="http://www.w3.org/TR/css3-images/">Image Values module</a>. <a href="http://weblogs.mozillazine.org/roc/archives/2009/11/css_gradient_sy.html">Mozilla have decided to implement the new syntax</a>, which is simpler than WebKit’s but less flexible.</p>
<p>In this article, which will be split into at least two parts, I’m going to compare the two syntaxes.</p>
<p><span id="more-624"></span></p>
<p>Throughout both parts, I will be referring to the following demo page; you’ll need to be using Safari 4, Chrome, or Firefox 3.6beta3+ in order to see it working:</p>
<p><a href="/tests/gradients/">CSS Gradients comparison: Mozilla &amp; WebKit</a>.</p>
<p>The first and most noticeable difference is that the Mozilla implementation uses two properties – <code>–moz-linear-gradient</code> and <code>–moz-radial-gradient</code> – whereas WebKit use only a single property – <code>–webkit-gradient</code> – with two type values: <code>linear</code> and <code>radial</code>. That should become clearer as I progress.</p>
<p>Please note that I’ve tried to use the simplest syntax possible for all examples, but there may be occasions where I’ve slipped up. Feel free to correct me.</p>
<h2>Linear gradients</h2>
<p>The <a href="https://developer.mozilla.org/en/CSS/-moz-linear-gradient">Mozilla syntax</a> accepts three different properties: start point, angle of direction, and colour stops. <a href="http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariCSSRef/Articles/Functions.html#//apple_ref/doc/uid/TP40007955">WebKit’s</a> also takes three (excluding type: linear, as mentioned previously): start point, end point, and colour stops.</p>
<p>So a simple left-right gradient change (<strong>Linear 1</strong>) between two colours in Mozilla:</p>
<pre>-moz-linear-gradient (left, green, yellow);</pre>
<p>The <em>left</em> value sets the default position to the middle of the left-hand side (<em>0deg</em>, <em>0 50%</em> or <em>left center</em> does the same); the line then goes horizontally out passing from green to yellow in equal proportion.</p>
<p>To get the same pattern in WebKit:</p>
<pre>-webkit-gradient (linear, left center, right center, from(green), to(yellow));</pre>
<p>The start point is at <em>left center</em> (I could use unit values or percentages as Mozilla does, but not an angle), the end point at <em>right center</em>, and it also passes from green to yellow in equal proportion.</p>
<p>We can tweak those values slightly to get a diagonal gradient from the bottom left corner (<strong>Linear 2</strong>); for Mozilla I specify an angle, for WebKit I set new start and end points:</p>
<pre>-moz-linear-gradient(45deg,green,yellow);
-webkit-gradient(linear,left bottom,right top,from(green),to(yellow));</pre>
<p>I’ll tweak those values again to make a bottom-top gradient with an extra colour (<strong>Linear 3</strong>):</p>
<pre>-moz-linear-gradient(90deg,green,yellow,blue);
-webkit-gradient(linear,center bottom,center top,from(green),color-stop(0.5, yellow),to(blue));</pre>
<p>The big difference here is that Mozilla distributes the three colours proportionally, whereas WebKit’s <code>color-stop</code> function requires that I set a stop point — I’ve used <em>0.5</em> here, although I could have used <em>50%</em>. The <code>from</code> and <code>to</code> functions are shorthand for <code>color-stop</code> values <em>0</em> and <em>1</em> (or <em>100%</em>), respectively.</p>
<p>I don’t have to distribute the colours evenly, however; by changing the value in the colour stop I can choose my own ratio. In the final example (<strong>Linear 4</strong>) I’ve set the yellow to begin 25% along the length of the gradient:</p>
<pre>-moz-linear-gradient(90deg,green,yellow 25%,blue);
-webkit-gradient(linear,center bottom,center top,from(green),color-stop(25%, yellow),to(blue));</pre>
<p>For Webkit I only have to update the <code>color-stop</code> value; for Mozilla, I have to specify it.</p>
<h2>Conclusions</h2>
<p>There are a few differences in the syntaxes for linear gradients, but they’re not major; Mozilla use an angle value, where WebKit use a point-to-point system. I’d say Mozilla’s is the easier to grasp purely because of its brevity, but it’s not that important. In the second part of this article I’ll talk about radial gradients, and it’s there that the differences in implementation become more pronounced.</p>
<p><strong>Update:</strong> <a href="/2009/11/30/css-gradient-syntax-comparison-of-mozilla-and-webkit-part-2/">Part 2 of this article, about Radial Gradients, is now available</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=zXGtgj7yUeg:yp02epiABr0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=zXGtgj7yUeg:yp02epiABr0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=zXGtgj7yUeg:yp02epiABr0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=zXGtgj7yUeg:yp02epiABr0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=zXGtgj7yUeg:yp02epiABr0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=zXGtgj7yUeg:yp02epiABr0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=zXGtgj7yUeg:yp02epiABr0:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PeterGasstonsGeekBlog/~4/zXGtgj7yUeg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2009/11/26/css-gradient-syntax-comparison-of-mozilla-and-webkit/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://www.broken-links.com/2009/11/26/css-gradient-syntax-comparison-of-mozilla-and-webkit/</feedburner:origLink></item>
		<item>
		<title>Mozilla release Bespin Embedded preview</title>
		<link>http://feedproxy.google.com/~r/PeterGasstonsGeekBlog/~3/7FIQfT-GAAs/</link>
		<comments>http://www.broken-links.com/2009/11/18/mozilla-release-bespin-embedded-preview/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 10:27:07 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[bespin]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=622</guid>
		<description><![CDATA[Mozilla’s Bespin is a code editor built using web technologies. It’s still in its infancy, but shows promise. A new release, Bespin Embedded, lets you use the basic editor functionality on your own websites, using just a couple of lines of Javascript. If you don’t want to download it yourself, I’ve got a working demo. [...]]]></description>
			<content:encoded><![CDATA[<p>Mozilla’s <a href="https://bespin.mozilla.com/">Bespin</a> is a code editor built using web technologies. It’s still in its infancy, but shows promise. A new release, <a href="http://mozillalabs.com/bespin/2009/11/13/bespin-embedded-first-preview-release/">Bespin Embedded</a>, lets you use the basic editor functionality on your own websites, using just a couple of lines of Javascript. If you don’t want to download it yourself, <a href="/tests/bespin-embedded/">I’ve got a working demo</a>. The editor doesn’t really do much at the moment, so this is really only a proof of concept.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=7FIQfT-GAAs:NqCwhD9fuiE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=7FIQfT-GAAs:NqCwhD9fuiE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=7FIQfT-GAAs:NqCwhD9fuiE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=7FIQfT-GAAs:NqCwhD9fuiE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=7FIQfT-GAAs:NqCwhD9fuiE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=7FIQfT-GAAs:NqCwhD9fuiE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=7FIQfT-GAAs:NqCwhD9fuiE:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PeterGasstonsGeekBlog/~4/7FIQfT-GAAs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2009/11/18/mozilla-release-bespin-embedded-preview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.broken-links.com/2009/11/18/mozilla-release-bespin-embedded-preview/</feedburner:origLink></item>
		<item>
		<title>Using the GeoLocation API</title>
		<link>http://feedproxy.google.com/~r/PeterGasstonsGeekBlog/~3/WHCG6YQAid4/</link>
		<comments>http://www.broken-links.com/2009/11/11/using-the-geolocation-api/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 00:32:42 +0000</pubDate>
		<dc:creator>Peter</dc:creator>
				<category><![CDATA[Scripting]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[geolocation]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[safari]]></category>

		<guid isPermaLink="false">http://www.broken-links.com/?p=613</guid>
		<description><![CDATA[With the <a href="http://www.brandon-hall.com/workplacelearningtoday/?p=7870">rapid growth of the mobile web</a>, location-aware services are very much in-demand; the <a href="http://dev.w3.org/geo/api/spec-source.html">GeoLocation API</a> was proposed to cater to this need.

Implementation is spotty at the moment; Firefox 3.5 supports it, as does Safari for iPhone (although not on the desktop, <abbr title="as far as I can see">AFAICS</abbr>). But it's so <a href="https://developer.mozilla.org/en/using_geolocation">simple to use</a>, I've no doubt it will be adopted rapidly.]]></description>
			<content:encoded><![CDATA[<p>With the <a href="http://www.brandon-hall.com/workplacelearningtoday/?p=7870">rapid growth of the mobile web</a>, location-aware services are very much in-demand; the <a href="http://dev.w3.org/geo/api/spec-source.html">GeoLocation API</a> was proposed to cater to this need.</p>
<p>Implementation is spotty at the moment; Firefox 3.5 supports it, as does Safari for iPhone (although not on the desktop, <abbr title="as far as I can see">AFAICS</abbr>). But it’s so <a href="https://developer.mozilla.org/en/using_geolocation">simple to use</a>, I’ve no doubt it will be adopted rapidly.</p>
<p><span id="more-613"></span></p>
<p>I’ve put together <a href="/tests/geolocation/">a small demo of the GeoLocation API</a> in action; it uses data from the Arts Council England website, so visitors from outside of England won’t get any meaningful results from this, I’m afraid. Visitors from England will probably get best results using a mobile device (such as an iPhone).</p>
<p>First, the JavaScript function tests that the browser supports the API:</p>
<pre>var hasGeoLocation = navigator.geolocation ? true : false;
if (hasGeoLocation === true) { ... }</pre>
<p>If so, it requests the current position from the browser using the <code>getCurrentPosition</code> method (the user will have to give permission for this) and passes the result into a function:</p>
<pre>navigator.geolocation.getCurrentPosition(function(position) {
    getJSON(position.coords.latitude,position.coords.longitude);
});</pre>
<p>This result is used in the latitude and longitude attributes of the coords object, which I then use for the rest of my function (using <a href="http://docs.jquery.com/Ajax/jQuery.getJSON">jQuery’s getJSON function</a> to mine microformatted data from <a href="http://www.artscouncil.org.uk/map/">the map page</a> of the Arts Council England website, transforming it using <a href="http://microformatique.com/optimus/">Optimus</a>, then parsing it back into HTML for my demo).</p>
<p>There’s a lot more to this, of course; the API is quite extensive, covering altitude and heading as well as lat/long, and there’s a massive amount of <a href="http://en.wikipedia.org/wiki/Geotagging">geotagged</a> data available (<a href="http://flickr.com/">Flickr</a> photos, for example). Hopefully my demo serves as an example of how easy it is to make the move into the mobile space.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=WHCG6YQAid4:6T1133M30vs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=WHCG6YQAid4:6T1133M30vs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=WHCG6YQAid4:6T1133M30vs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=WHCG6YQAid4:6T1133M30vs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=WHCG6YQAid4:6T1133M30vs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?a=WHCG6YQAid4:6T1133M30vs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/PeterGasstonsGeekBlog?i=WHCG6YQAid4:6T1133M30vs:V_sGLiPBpWU" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/PeterGasstonsGeekBlog/~4/WHCG6YQAid4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.broken-links.com/2009/11/11/using-the-geolocation-api/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.broken-links.com/2009/11/11/using-the-geolocation-api/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.412 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-03-13 01:56:48 -->
