<?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>Fuzzy Tolerance</title>
	<atom:link href="http://fuzzytolerance.info/feed/" rel="self" type="application/rss+xml" />
	<link>http://fuzzytolerance.info</link>
	<description>Computers are getting smarter all the time.  Scientists tell us that soon they will be able to talk to us.  (And by ‘they’, I mean ‘computers’.  I doubt scientists will ever be able to talk to us.)</description>
	<lastBuildDate>Mon, 08 Mar 2010 23:25:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>TED Talk: Tim Berners-Lee</title>
		<link>http://fuzzytolerance.info/brains/ted-talk-tim-berners-lee/</link>
		<comments>http://fuzzytolerance.info/brains/ted-talk-tim-berners-lee/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 23:24:04 +0000</pubDate>
		<dc:creator>Fuzzy</dc:creator>
				<category><![CDATA[Brains]]></category>

		<guid isPermaLink="false">http://fuzzytolerance.info/?p=1054</guid>
		<description><![CDATA[Tim Berners-Lee (yes, that Tim Berners-Lee) gave a great TED Talk called The Year Open Data Went Worldwide. And it&#8217;s all about maps. OpenStreetMap gets a special mention.

]]></description>
			<content:encoded><![CDATA[<p>Tim Berners-Lee (yes, <a href="http://en.wikipedia.org/wiki/Tim_Berners-Lee">that Tim Berners-Lee</a>) gave a great TED Talk called <em>The Year Open Data Went Worldwide</em>. And it&#8217;s all about maps. <a href="http://www.openstreetmap.org/">OpenStreetMap</a> gets a special mention.</p>
<p><!--copy and paste--><object width="446" height="326"><param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param><param name="allowFullScreen" value="true" /><param name="wmode" value="transparent"></param><param name="bgColor" value="#ffffff"></param><param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/TimBerners-Lee_2010U-medium.flv&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/TimBerners-Lee-2010U.embed_thumbnail.jpg&#038;vw=432&#038;vh=240&#038;ap=0&#038;ti=788&#038;introDuration=16500&#038;adDuration=4000&#038;postAdDuration=2000&#038;adKeys=talk=tim_berners_lee_the_year_open_data_went_worldwide;year=2010;theme=new_on_ted_com;theme=what_s_next_in_tech;theme=the_rise_of_collaboration;theme=a_taste_of_ted2010;event=TED2010;&#038;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /><embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="446" height="326" allowFullScreen="true" flashvars="vu=http://video.ted.com/talks/dynamic/TimBerners-Lee_2010U-medium.flv&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/TimBerners-Lee-2010U.embed_thumbnail.jpg&#038;vw=432&#038;vh=240&#038;ap=0&#038;ti=788&#038;introDuration=16500&#038;adDuration=4000&#038;postAdDuration=2000&#038;adKeys=talk=tim_berners_lee_the_year_open_data_went_worldwide;year=2010;theme=new_on_ted_com;theme=what_s_next_in_tech;theme=the_rise_of_collaboration;theme=a_taste_of_ted2010;event=TED2010;"></embed></object></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Ffuzzytolerance.info%2Fbrains%2Fted-talk-tim-berners-lee%2F&amp;linkname=TED%20Talk%3A%20Tim%20Berners-Lee"><img src="http://fuzzytolerance.info/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://fuzzytolerance.info/brains/ted-talk-tim-berners-lee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using GeoServer, Openlayers, and CQL Filters</title>
		<link>http://fuzzytolerance.info/code/using-geoserver-openlayers-and-cql-filters/</link>
		<comments>http://fuzzytolerance.info/code/using-geoserver-openlayers-and-cql-filters/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 16:17:03 +0000</pubDate>
		<dc:creator>Fuzzy</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://fuzzytolerance.info/?p=1050</guid>
		<description><![CDATA[I received a request this week to put Census Questionnaire Centers (QAC) on a web app ASAP. In case you don&#8217;t follow the Census&#8217; every move:
Questionnaire Assistance Centers (QACs) are spaces, donated by community partners, where staff from the Local Census Office or the partner organization are available to answer questions about completing the questionnaire, [...]]]></description>
			<content:encoded><![CDATA[<p>I received a request this week to put Census Questionnaire Centers (QAC) on a web app ASAP. In case you don&#8217;t follow the Census&#8217; every move:</p>
<blockquote><p>Questionnaire Assistance Centers (QACs) are spaces, donated by community partners, where staff from the Local Census Office or the partner organization are available to answer questions about completing the questionnaire, provide special language assistance and answer general questions.</p></blockquote>
<p>This is a short term thing &#8211; the QACs are only open for 4 weeks or so &#8211; and the only initial requirement was dumping the points on the map and showing information when you click on them. So I dumped the shape file into Postgres, published the layer with GeoServer, and added it to an app as a vector layer (KML). </p>
<p>For the most part this code was proudly pilfered from one of the OpenLayers samples. Here we&#8217;ll add the layer to the map and set some select events. I made the census_qac_layers a global variable so I could get at it later. Note I took out the enormous URL so the page wouldn&#8217;t explode, but <a href="http://maps.co.mecklenburg.nc.us/geoserver/wms?service=WMS&#038;version=1.1.0&#038;request=GetMap&#038;layers=postgis:census_qac_centers&#038;styles=&#038;bbox=1405179.0,467211.969,1507521.0,641978.0&#038;width=299&#038;height=512&#038;srs=EPSG:2264&#038;format=application/vnd.google-earth.kml+xml">this was it</a> (it will probably ask you to pull it up in Google Earth).</p>
<pre class="brush: javascript">

// QAC Centers for Census
    census_qac_centers = new OpenLayers.Layer.Vector(&quot;Census QAC Centers&quot;, {
        projection: map.displayProjection,
        strategies: [new OpenLayers.Strategy.Fixed()],
        protocol: new OpenLayers.Protocol.HTTP({
            url: &quot;http://enormous-url&quot;,
            format: new OpenLayers.Format.KML({
                extractStyles: true,
                extractAttributes: true
            })
        })
    });
    census_qac_centers.setVisibility(false);
    map.addLayer(census_qac_centers);
    select = new OpenLayers.Control.SelectFeature(census_qac_centers);
    census_qac_centers.events.on({
        &quot;featureselected&quot;: onFeatureSelect,
        &quot;featureunselected&quot;: onFeatureUnselect,
        &quot;stopClick&quot;: true
    });
    map.addControl(select);
    select.activate(); 
</pre>
<p>And here are the onFeatureSelect and onFeatureUnselect functions we referenced. They&#8217;ll handle creating the popups.</p>
<pre class="brush: javascript">
/* Functions for Census QAC Centers */
    function onPopupClose(evt) {
            select.unselectAll();
        }
        function onFeatureSelect(event) {
            var feature = event.feature;
            // Since KML is user-generated, do naive protection against
            // Javascript.
            var content = &quot;&lt;h2&gt;&quot;+feature.attributes.name + &quot;&lt;/h2&gt;&quot; + feature.attributes.description;
            if (content.search(&quot;&lt;script&quot;) != -1) {
                content = &quot;Content contained Javascript! Escaped content below.&lt;br /&gt;&quot; + content.replace(/&lt;/g, &quot;&lt;&quot;);
            }
            popup = new OpenLayers.Popup.FramedCloud(&quot;chicken&quot;,
                 feature.geometry.getBounds().getCenterLonLat(),
                 new OpenLayers.Size(100,100),
                 content,
                 null, true, onPopupClose);
            feature.popup = popup;
            map.addPopup(popup);
        }
        function onFeatureUnselect(event) {
            var feature = event.feature;
            if(feature.popup) {
                map.removePopup(feature.popup);
                feature.popup.destroy();
                delete feature.popup;
            }
        }
</pre>
<p>Done and done. Our map now has the pox, and each pustule will pop up the QAC information. I gave the KML output a little styling, which is literally as simple as dropping a couple of files like this in your layer folder (here&#8217;s description.ftl):</p>
<pre class="brush: text">

${partner_na.value} &lt;br /&gt;
${street.value} &lt;br /&gt;
${phone.value} &lt;br /&gt;
Hours: ${hours.value} &lt;br /&gt;
&lt;br /&gt;
Langauges served: ${language_s.value}
</pre>
<p>Being at least nominally an <a href="http://agilemanifesto.org/">agile</a> guy, I (a) release early and often and (b) fully expect changes. So we tossed it out there, looked at it, and decided it didn&#8217;t make sense to show all the QAC&#8217;s at once. What people would really want to do is show just the locations that support their language. I don&#8217;t want to click through 111 locations hunting for a QAC that supports Hindi.</p>
<p>The last thing I wanted to do was make a bunch of separate layers/views/styles for different languages, and an individual QAC can support multiple languages, further complicating the matter. </p>
<p><a href="http://www.loc.gov/standards/sru/specs/cql.html">CQL</a> to the rescue.</p>
<blockquote><p>CQL, the Contextual Query Language, is a formal language for representing queries to information retrieval systems such as web indexes, bibliographic catalogs and museum collection information. The design objective is that queries be human readable and writable, and that the language be intuitive while maintaining the expressiveness of more complex languages.</p></blockquote>
<p>CQL was developed by the Library of Congress and OGC used it as a basis for its filter encoding spec (I *think*). GeoServer fully supports the OGC filter encoding sped, but sending it over HTML makes for a horrid mess, as you writing and URL encoding XML. GeoServer also supports plain old CQL, which is quite a bit easier. I needed to add a line to the layer declaration to hold a CQL_Filter parameter.</p>
<pre class="brush: javascript">

// QAC Centers for Census
    census_qac_centers = new OpenLayers.Layer.Vector(&quot;Census QAC Centers&quot;, {
        projection: map.displayProjection,
        strategies: [new OpenLayers.Strategy.Fixed()],
        protocol: new OpenLayers.Protocol.HTTP({
            url: &quot;http://enormous-url&quot;,
            &#039;params&#039; : { &#039;CQL_FILTER&#039; : &#039;&#039;},
            format: new OpenLayers.Format.KML({
                extractStyles: true,
                extractAttributes: true
            })
        })
    });
</pre>
<p>Next I made a standard HTML radio button list, with the value being the language.</p>
<pre class="brush: html">

&lt;input type=&quot;radio&quot; name=&quot;qac_centers&quot; value=&quot;English&quot;&gt; English&lt;br /&gt;
&lt;input type=&quot;radio&quot; name=&quot;qac_centers&quot; value=&quot;Arabic&quot;&gt; Arabic&lt;br /&gt;
&lt;input type=&quot;radio&quot; name=&quot;qac_centers&quot; value=&quot;Chinese&quot;&gt; Chinese&lt;br /&gt;
&lt;input type=&quot;radio&quot; name=&quot;qac_centers&quot; value=&quot;French&quot;&gt; French&lt;br /&gt;
</pre>
<p>Etc. Now for some jQuery goodness.</p>
<pre class="brush: javascript">

    // Census QAC Stuff
    $(&quot;input[name=&#039;qac_centers&#039;]&quot;).attr(&quot;checked&quot;, false)
    $(&quot;input[name=&#039;qac_centers&#039;]&quot;).change(
        function()
        {
            census_qac_centers.setVisibility(true);
            filterval = &quot;language_s like &#039;%&quot; + $(&quot;input[name=&#039;qac_centers&#039;]:checked&quot;).val() + &quot;%&#039;&quot;;
            census_qac_centers.refresh({
                force: true,
                params: {
                    &quot;CQL_FILTER&quot;: filterval
                }
            });
        }
    );
</pre>
<p>Let&#8217;s walk through this. First, we set all the radio buttons to be unchecked (Firefox likes to remember that stuff from session to session). Next we detect whenever a change occurs (i.e. a radio button is checked) and run a function. We set the layer to visible, grab the language value of the checked radio button, and create the CQL filter. It&#8217;ll end up looking something like this, where language_s is the field name we&#8217;re querying:</p>
<pre class="brush: sql">
language_s like &#039;%Spanish%&#039;
</pre>
<p>I&#8217;m doing a like operation because the field has a comma delimited list of languages it supports. This next bit does the heavy lifting.</p>
<pre class="brush: sql">
census_qac_centers.refresh({
      force: true,
      params: {
                    &quot;CQL_FILTER&quot;: filterval
                }
 });
</pre>
<p>Here we take the CQL_FILTER parameter we added to the layer, and we&#8217;re dropping in the CQL we created. The layer is refreshed with the new URL, and only the features that match our CQL filter will come back. A user clicks on German, only the German QAC&#8217;s show up.</p>
<p>The CQL Filter option is available on any layer in GeoServer (not just vector), and with the parameter option in OpenLayers it&#8217;s very easy to dynamically change the content of a layer. We were able to turn around this request in an extremely short amount of time (a couple of hours, a large portion of which was navel-gazing design) and in a way that&#8217;s easy to extract from the application when the QAC&#8217;s go away in a month.</p>
<p>You can view it on <a href="http://maps.co.mecklenburg.nc.us/geoportal/">GeoPortal</a>, second accordion tab on the left.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Ffuzzytolerance.info%2Fcode%2Fusing-geoserver-openlayers-and-cql-filters%2F&amp;linkname=Using%20GeoServer%2C%20Openlayers%2C%20and%20CQL%20Filters"><img src="http://fuzzytolerance.info/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://fuzzytolerance.info/code/using-geoserver-openlayers-and-cql-filters/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Google Adds Photos to Street View, Nearby to Search</title>
		<link>http://fuzzytolerance.info/news/google-adds-photos-to-street-view-nearby-to-maps/</link>
		<comments>http://fuzzytolerance.info/news/google-adds-photos-to-street-view-nearby-to-maps/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 17:27:59 +0000</pubDate>
		<dc:creator>Fuzzy</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://fuzzytolerance.info/?p=1042</guid>
		<description><![CDATA[Well, that didn&#8217;t take long.
Google has added photos from Flickr, Panoramio and Picasa to Street View. One had to figure this was coming, given the fanfare around Bing&#8217;s recent addition of Flickr photos. Check out this historic area in Prague.
Both Bing&#8217;s and Google&#8217;s photo integration offerings have different strengths. Bing&#8217;s Photosynth allows for a 3D-ish [...]]]></description>
			<content:encoded><![CDATA[<p>Well, that didn&#8217;t take long.</p>
<p><a href="http://fuzzytolerance.info/wp-content/uploads/2010/03/Selection_001.png"><img class="alignright size-full wp-image-1043" title="Street View" src="http://fuzzytolerance.info/wp-content/uploads/2010/03/Selection_001.png" alt="" width="400" height="354" /></a>Google has added <a href="http://google-latlong.blogspot.com/2010/02/navigate-your-way-through-user-photos.html">photos from Flickr, Panoramio and Picasa to Street View</a>. One had to figure this was coming, given the fanfare around Bing&#8217;s recent addition of Flickr photos. Check out this <a href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=plaza+orologio&amp;sll=50.086157,14.424641&amp;sspn=0.005528,0.010933&amp;ie=UTF8&amp;radius=0.24&amp;filter=0&amp;rq=1&amp;ev=zi&amp;hq=plaza+orologio&amp;hnear=&amp;ll=50.086246,14.423579&amp;spn=0,359.989067&amp;z=17&amp;layer=c&amp;cbll=50.087946,14.420348&amp;panoid=82hnZwtGL0RU9b_cEU1zlg&amp;cbp=12,137.62,,0,5.79">historic area in Prague</a>.</p>
<p>Both Bing&#8217;s and Google&#8217;s photo integration offerings have different strengths. Bing&#8217;s Photosynth allows for a 3D-ish feel you don&#8217;t get in Street View. Street View allows for the integration of a lot more pictures, essentially adding area that the Street View cameras couldn&#8217;t get at, like pedestrian areas or this view of the same plaza <a href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;g=sf&amp;ie=UTF8&amp;hq=Old+Town&amp;hnear=Old+Town,+110+00+Prague-Prague+1,+Czech+Republic&amp;lci=com.panoramio.all&amp;layer=c&amp;cbll=50.087079,14.420607&amp;cbp=12,0,,0,5&amp;photoid=po-12475129&amp;ll=50.087079,14.420607&amp;spn=0,359.994995&amp;z=18">from the top of a tower</a>. And while it&#8217;s only significant to a percent or two of us, Street View is usable from Linux (Flash), while I haven&#8217;t had any luck with Bing (Moonlight FOSS implementation of Silverlight). In any event, I think we all win in this race.</p>
<p><a href="http://fuzzytolerance.info/wp-content/uploads/2010/03/Selection_002.png"><img class="alignleft size-full wp-image-1044" title="Google Nearby" src="http://fuzzytolerance.info/wp-content/uploads/2010/03/Selection_002.png" alt="" width="212" height="511" /></a>Google also added a <a href="http://googleblog.blogspot.com/2010/02/refine-your-searches-by-location.html">nearby option</a> to its standard search page, which is extremely handy. Google can derive your location by IP or you can specify your location.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Ffuzzytolerance.info%2Fnews%2Fgoogle-adds-photos-to-street-view-nearby-to-maps%2F&amp;linkname=Google%20Adds%20Photos%20to%20Street%20View%2C%20Nearby%20to%20Search"><img src="http://fuzzytolerance.info/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://fuzzytolerance.info/news/google-adds-photos-to-street-view-nearby-to-maps/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>News Roundup &#8211; Vancouver Maps, ESRI FedUC, FOSS Pirates</title>
		<link>http://fuzzytolerance.info/news/news-roundup-vancouver-maps-esri-feduc-foss-pirates/</link>
		<comments>http://fuzzytolerance.info/news/news-roundup-vancouver-maps-esri-feduc-foss-pirates/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 17:58:18 +0000</pubDate>
		<dc:creator>Fuzzy</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://fuzzytolerance.info/?p=1034</guid>
		<description><![CDATA[First up in the news this month is maps of Vancouver and the winter Olympics. Google updated their 3D imagery for the Olympics, and you can get a good tour using this KML file. How do you get street view on the slopes you ask? You use one of these:

For web based maps, I have [...]]]></description>
			<content:encoded><![CDATA[<p>First up in the news this month is maps of Vancouver and the winter Olympics. Google updated their 3D imagery for the Olympics, and you can get a good tour using this <a href="https://sites.google.com/site/sketchupvideo/sketchup-blog-download-files/2010_VancoverOlympicGames.kml">KML file</a>. How do you get street view on the slopes you ask? You use one of these:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/UJ4pgcrJU8c" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/UJ4pgcrJU8c"></embed></object></p>
<p>For web based maps, I have to agree with <a href="http://www.mcwetboy.net/maproom/2010/02/new_york_times_4.php">The Map Room</a> &#8211; the <a href="http://www.nytimes.com/interactive/2010/02/09/sports/olympics/2010-olympics-venue-map.html?ref=sports">NY Times site</a> has the nicest site I&#8217;ve seen.</p>
<p>There was a lot of news out of the ESRI FedUC this month. After reading summaries and summaries of summaries, aside from the usual round of ArcGIS desktop improvements, it looks like the big new items are:</p>
<ul>
<li>ESRI is partnering with Amazon to offer cloud rental of AGS on their EC2 service. This is a good move for ESRI and its customers, though you&#8217;ll need an ELA to qualify. Rent-what-you-need cloud space is ideal for CPU-stomping AGS, though we&#8217;ll need some metrics to see what the long term cost savings would be.</li>
<li>Volunteered Geographic Information, or VGI (must we hyphenate everything?), ala OpenStreetMap. Surveying, Mapping and GIS has a <a href="http://surveying-mapping-gis.blogspot.com/2010/02/esri-and-volunteered-geographic.html">good summary</a> of the topic and the concerns involved. Hopefully it&#8217;ll involve direct integration with projects like OpenStreetMap and not reinventing/branding the wheel.</li>
<li>Support for the iPhone. According to <a href="http://www.spatiallyadjusted.com/2010/02/24/reflections-on-the-2010-esri-feduc/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+spatiallyadjusted+(James+Fee+GIS+Blog)">James Fee</a>, they basically took their old slideshow and did a find-replace on Windows Mobile with iPhone. Anybody stuck with Windows Mobile doing data collection out in the field should be dancing in the streets.</li>
</ul>
<p><a href="http://arstechnica.com/science/news/2010/02/cell-phones-show-human-movement-predictable-93-of-the-time.ars">Ars</a> cites a study showing just how spatially boring we humans are. Researches collected customer cell phone location information from cell phone providers found that you can predict someone&#8217;s location and movement patters up to 93% of the time. Just threw your cell phone in the back of a moving chicken truck with out of state plates? They probably predicted you&#8217;d do that too. If you&#8217;re wondering how people can get that information from your cell phone without asking you, check <a href="http://arstechnica.com/telecom/news/2009/12/sprint-fed-customer-gps-data-to-leos-over-8-million-times.ars">this out</a> and prepare to freak.</p>
<p><a href="http://fuzzytolerance.info/wp-content/uploads/2010/02/you_suck_bunny.jpg"><img class="alignleft size-full wp-image-1035" title="you_suck_bunny" src="http://fuzzytolerance.info/wp-content/uploads/2010/02/you_suck_bunny.jpg" alt="" width="151" height="242" /></a>And finally, in the <em>are-you-kidding-me</em> department, big content has asked the Office of the US Trade Representative to <a href="http://www.technollama.co.uk/encouraging-open-source-could-land-you-in-trouble">denounce countries that encourage FOSS</a>. The International Intellectual Property Alliance, which is made up of such luminaries as the RIAA and MPAA, asked USTR to add Brazil, India, Indonesia, Philippines, Thailand, and Vietnam to its 301 list (countries we give meaningful frowns to) because they encouraged the use of open source software. As an example (via <a href="http://arstechnica.com/open-source/news/2010/02/big-content-condemns-foreign-governments-that-endorse-foss.ars?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss">Ars</a>),</p>
<blockquote><p>Indonesia&#8217;s policy &#8220;weakens the software industry and undermines its long-term competitiveness&#8221; because open source software &#8220;encourages a mindset that does not give due consideration to the value to intellectual creations [and] fails to build respect for intellectual property rights.&#8221;</p></blockquote>
<p>Many US agencies, including the Department of Defense, have also endorsed using FOSS. The IIPA apparently forgot to put the US on the list of countries we should denounce.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Ffuzzytolerance.info%2Fnews%2Fnews-roundup-vancouver-maps-esri-feduc-foss-pirates%2F&amp;linkname=News%20Roundup%20%26%238211%3B%20Vancouver%20Maps%2C%20ESRI%20FedUC%2C%20FOSS%20Pirates"><img src="http://fuzzytolerance.info/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://fuzzytolerance.info/news/news-roundup-vancouver-maps-esri-feduc-foss-pirates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using @font-face For Better Typography</title>
		<link>http://fuzzytolerance.info/code/using-font-face-for-better-typography/</link>
		<comments>http://fuzzytolerance.info/code/using-font-face-for-better-typography/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 20:35:39 +0000</pubDate>
		<dc:creator>Fuzzy</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://fuzzytolerance.info/?p=1027</guid>
		<description><![CDATA[I&#8217;ve been on a big web design kick lately, so I thought I&#8217;d do a quick post on using @font-face for custom typography on your web page.
@font-face has been around since CSS2, and the first browser to take advantage of it was Internet Explorer 4(!). It fell out of favor for quite a while, for [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been on a big web design kick lately, so I thought I&#8217;d do a quick post on using @font-face for custom typography on your web page.</p>
<p>@font-face has been around since CSS2, and the first browser to take advantage of it was Internet Explorer 4(!). It fell out of favor for quite a while, for two reasons:</p>
<ul>
<li><em>Licensing</em>. Yes, fonts are licensed believe it or not, and since rendering your font means downloading the font to the user&#8217;s PC, that&#8217;s a problem. For the overwhelming majority of fonts sitting on your PC (my Linux brethren notwithstanding), you aren&#8217;t allowed to stick them on your web site.</li>
<li><em>Formats</em>, which is related to licensing. Microsoft came up with the EOT format, which tries to get around the licensing problem via DRM-ish stuff. Nobody bit on that solution. There was TrueDoc, a format used by Netscape, but when they were unable to open source those bits it faded into history. Then there are SVG, TrueType, OpenType, and WOFF formats. Good grief! No wonder they can&#8217;t agree on a HTML5 video codec.</li>
</ul>
<p>In today&#8217;s world, most browsers (Webkit/Safari/Chrome, Firefox, Opera) support both TrueType and OpenType fonts, so that is your target format. We&#8217;ll talk about Internet Explorer in a bit. For this example we&#8217;ll use the excellent <a href="http://www.josbuivenga.demon.nl/fontin.html">Fontin</a> font. Drop it somewhere in your web site directory &#8211; here we&#8217;ll say we stuck them in a folder called <em>fonts</em>.</p>
<pre class="brush: css">

@font-face {
font-family: &quot;Fontin&quot;;
src: local(&quot;Fontin&quot;), url(fonts/Fontin-Regular.otf) format(&quot;opentype&quot;);
}
</pre>
<p>Here we&#8217;re creating our own font family, which we&#8217;re naming &#8220;Fontin&#8221;. Note we didn&#8217;t have to call it Fontin just because that&#8217;s the name of the font &#8211; any old name will do.  Next we&#8217;re specifying the source for the font, with two options. The first tells the browser to look on the local machine for a font called Fontin and use it if there is one, saving the user a download. You may not want this if there are a lot of disparate versions of the font you want to use floating around, but Fontin is stable. The second source argument tells the browser to grab the font from the web server.</p>
<p>Specify the Fontin range of fonts (regular, bold, and italic) like so:</p>
<pre class="brush: css">

@font-face {
font-family: &quot;Fontin&quot;;
src: local(&quot;Fontin&quot;), url(fonts/Fontin-Regular.otf) format(&quot;opentype&quot;);
}
@font-face {
font-family: &quot;Fontin&quot;;
src: local(&quot;Fontin&quot;), url(fonts/Fontin-Bold.otf) format(&quot;opentype&quot;);
font-weight: bold;
}
@font-face {
font-family: &quot;Fontin&quot;;
src: local(&quot;Fontin&quot;), url(fonts/Fontin-Italic.otf) format(&quot;opentype&quot;);
font-style: italic;
}
</pre>
<p>Now I&#8217;ll set up a fontin class that we can add to whatever tags we want to use that font in. Note I give alternate, bail-out fonts in the font family stack just in case.</p>
<pre class="brush: css">

.fontin {
font-family: Fontin, Arial, Helvetica, serif;
font-size: 14px;
}
</pre>
<p>Internet Explorer still only supports the EOT format, but that isn&#8217;t too big of a problem. First, you&#8217;ll need to convert your TTF or OTF font file to an EOT format. There are a lot of ways to do that, but this <a href="http://onlinefontconverter.com/">site does</a> a bangup job, even going directly from OTF to EOT. Then we&#8217;ll add another line to our @font-face blocks.</p>
<pre class="brush: css">

@font-face {
font-family: &quot;Fontin&quot;;
src: url(&quot;fonts/Fontin-Regular.eot&quot;);
src: local(&quot;Fontin&quot;), url(fonts/Fontin-Regular.otf) format(&quot;opentype&quot;);
}
@font-face {
font-family: &quot;Fontin&quot;;
src: url(&quot;fonts/Fontin-Bold.eot&quot;);
src: local(&quot;Fontin&quot;), url(fonts/Fontin-Bold.otf) format(&quot;opentype&quot;);
font-weight: bold;
}
@font-face {
font-family: &quot;Fontin&quot;;
src: url(&quot;fonts/Fontin-Italic.eot&quot;);
src: local(&quot;Fontin&quot;), url(fonts/Fontin-Italic.otf) format(&quot;opentype&quot;);
font-style: italic;
}
</pre>
<p>Notice the extra src line in each @font-face block pointing to the EOT files? That&#8217;s all that is required. Browsers ignore CSS lines they don&#8217;t understand, so IE picks up on the EOT and ignores the rest, and vice versa for the other browsers.</p>
<p>Font embedding is a great way to add a typographic flare to your web site, but don&#8217;t overdo it. Downloading the font files is time and bandwidth for your users, and with these sorts of things, less is often more.*</p>
<p><em>*The great lesson of <a href="http://www.d-9.com/">District 9</a> &#8211; a few well done special effects beats a two hour CGI crapstorm. This applies equally well to web design.</em></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Ffuzzytolerance.info%2Fcode%2Fusing-font-face-for-better-typography%2F&amp;linkname=Using%20%40font-face%20For%20Better%20Typography"><img src="http://fuzzytolerance.info/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://fuzzytolerance.info/code/using-font-face-for-better-typography/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make Smarter &#8211; GWS, Motivating Workers, and Real Time Disaster Mapping</title>
		<link>http://fuzzytolerance.info/brains/make-smarter-gws-motivating-workers-and-real-time-disaster-mapping/</link>
		<comments>http://fuzzytolerance.info/brains/make-smarter-gws-motivating-workers-and-real-time-disaster-mapping/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 16:38:00 +0000</pubDate>
		<dc:creator>Fuzzy</dc:creator>
				<category><![CDATA[Brains]]></category>

		<guid isPermaLink="false">http://fuzzytolerance.info/?p=1024</guid>
		<description><![CDATA[There are slim pickings in the make smarter department this past month, but there were a few things that jumped out at me.
First, via Vector One, Cynthia Dietz, Map Librarian at the University of Stony Brook NY, wronte an excellent paper called Geospatial Web Services, Open Standards, and Advances in Interoperability: A Selected, Annotated Bibliography. [...]]]></description>
			<content:encoded><![CDATA[<p>There are slim pickings in the <em>make smarter</em> department this past month, but there were a few things that jumped out at me.</p>
<p>First, via <a href="http://www.vector1media.com/vectorone/?p=4726&amp;utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+vector1media/vectorone+(Vector+One)">Vector One</a>, Cynthia Dietz, Map Librarian at the University of Stony Brook NY, wronte an excellent paper called <a href="http://purl.oclc.org/coordinates/a8.htm">Geospatial Web Services, Open Standards, and Advances in Interoperability: A Selected, Annotated Bibliography</a>. From the abstract:</p>
<blockquote><p>This paper is designed to help GIS librarians and information specialists follow developments in the emerging field of geospatial Web services (GWS). When built using open standards, GWS permits users to dynamically access, exchange, deliver, and process geospatial data and products on the World Wide Web, no matter what platform or protocol is used.</p></blockquote>
<p>Next up, via <a href="http://www.infoq.com/news/2010/02/what-really-motivates">InfoQ</a>, comes an interesting piece from the Harvard Business Review titled W<a href="http://hbr.org/2010/01/the-hbr-list-breakthrough-ideas-for-2010/ar/1">hat Really Motivates Workers</a>. Most studies have found <a href="http://fuzzytolerance.info/brains/the-science-of-motivation/">it isn&#8217;t money</a> that motivates workers, but the other assumption, that it&#8217;s recognition, isn&#8217;t the case either.</p>
<blockquote><p>In a recent survey we invited more than 600 managers from dozens of companies to rank the impact on employee motivation and emotions of five workplace factors commonly considered significant: recognition, incentives, interpersonal support, support for making progress, and clear goals. “Recognition for good work (either public or private)” came out number one. Unfortunately, those managers are wrong.</p></blockquote>
<p>As it turns out, they found the #1 motivator for employees is <em>progress</em> &#8211; the sense that people are making headway in their jobs or are overcoming obstacles.</p>
<p>Finally, ESRI put out a good video on their <a href="http://www.youtube.com/user/esritv">YouTube channel</a> called <a href="http://www.youtube.com/watch?v=iO_T_3Jw2qg">Social Media and Geo-Services: Real-time modeling of the disaster situation in Haiti</a>. It showcases some of the abilities of ArcGIS Explorer, which is my mind is one of ESRI&#8217;s best, least hyped products.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/iO_T_3Jw2qg" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/iO_T_3Jw2qg"></embed></object></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Ffuzzytolerance.info%2Fbrains%2Fmake-smarter-gws-motivating-workers-and-real-time-disaster-mapping%2F&amp;linkname=Make%20Smarter%20%26%238211%3B%20GWS%2C%20Motivating%20Workers%2C%20and%20Real%20Time%20Disaster%20Mapping"><img src="http://fuzzytolerance.info/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://fuzzytolerance.info/brains/make-smarter-gws-motivating-workers-and-real-time-disaster-mapping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Augmented Reality Maps (Bing)</title>
		<link>http://fuzzytolerance.info/news/augmented-reality-maps-bing/</link>
		<comments>http://fuzzytolerance.info/news/augmented-reality-maps-bing/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 01:14:02 +0000</pubDate>
		<dc:creator>Fuzzy</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://fuzzytolerance.info/?p=1017</guid>
		<description><![CDATA[Here&#8217;s the TED talk on upcoming Bing map features that has been in the news lately. In a nutshell, MS Worldwide Telescope and Flicker geotagged image integration with a demo of a live video overlay. It&#8217;s an impressive demonstration. The coolest bit is the Flickr image integration &#8211; it&#8217;s doing some kind of SIFT operation [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s the TED talk on upcoming Bing map features that has been in the news lately. In a nutshell, MS Worldwide Telescope and Flicker geotagged image integration with a demo of a live video overlay. It&#8217;s an impressive demonstration. The coolest bit is the Flickr image integration &#8211; it&#8217;s doing some kind of <a href="http://www.google.com/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;ved=0CDgQFjAA&amp;url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FScale-invariant_feature_transform&amp;ei=Ypx4S7OqHsWVtgfl_bzECg&amp;usg=AFQjCNFk6gkwicFS699i5PHi45e2zG4j7g">SIFT</a> operation to get the Flickr image in the exact right place on the background imagery.</p>
<p><!--copy and paste--><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="446" height="326" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="wmode" value="transparent" /><param name="bgColor" value="#ffffff" /><param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/BlaiseAguerayArcas_2010-medium.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/BlaiseAgueraYArcas-2010.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=766&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=blaise_aguera;year=2010;theme=new_on_ted_com;theme=a_taste_of_ted2010;theme=the_creative_spark;event=TED2010;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /><param name="src" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" /><param name="bgcolor" value="#ffffff" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="446" height="326" src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" flashvars="vu=http://video.ted.com/talks/dynamic/BlaiseAguerayArcas_2010-medium.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/BlaiseAgueraYArcas-2010.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=766&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=blaise_aguera;year=2010;theme=new_on_ted_com;theme=a_taste_of_ted2010;theme=the_creative_spark;event=TED2010;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" bgcolor="#ffffff" wmode="transparent" allowfullscreen="true"></embed></object></p>
<div id="attachment_1018" class="wp-caption alignleft" style="width: 350px"><a href="http://fuzzytolerance.info/wp-content/uploads/2010/02/Selection_003.png"><img class="size-full wp-image-1018 " title="Selection_003" src="http://fuzzytolerance.info/wp-content/uploads/2010/02/Selection_003.png" alt="" width="340" height="161" /></a><p class="wp-caption-text">Doh!</p></div>
<p>Unfortunately, when I head over to Bing Maps I get one of these.</p>
<p>Thank you, Microsoft. No luck trying to run it via <a href="http://www.mono-project.com/Moonlight">Moonlight</a>, Novell&#8217;s open source Silverlight implementation, either. <em>Sigh</em>.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Ffuzzytolerance.info%2Fnews%2Faugmented-reality-maps-bing%2F&amp;linkname=Augmented%20Reality%20Maps%20%28Bing%29"><img src="http://fuzzytolerance.info/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://fuzzytolerance.info/news/augmented-reality-maps-bing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amazing Sand Painting</title>
		<link>http://fuzzytolerance.info/rant/amazing-sand-painting/</link>
		<comments>http://fuzzytolerance.info/rant/amazing-sand-painting/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 18:11:28 +0000</pubDate>
		<dc:creator>Fuzzy</dc:creator>
				<category><![CDATA[Opinion & Rant]]></category>

		<guid isPermaLink="false">http://fuzzytolerance.info/?p=1015</guid>
		<description><![CDATA[Some things are so amazing, they just have to be shared. Sand painting over a light box by Kseniya Simonova, who won Ukraine&#8217;s version of &#8220;America&#8217;s Got Talent.&#8221; It&#8217;s an interpretation of Germany&#8217;s invasion and occupation of Ukraine during WWII, and you can tell from the audience&#8217;s reaction how emotional the subject is there. Thanks [...]]]></description>
			<content:encoded><![CDATA[<p>Some things are so amazing, they just have to be shared. Sand painting over a light box by Kseniya Simonova, who won Ukraine&#8217;s version of &#8220;America&#8217;s Got Talent.&#8221; It&#8217;s an interpretation of Germany&#8217;s invasion and occupation of Ukraine during WWII, and you can tell from the audience&#8217;s reaction how emotional the subject is there. Thanks to my sister for passing it along.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/vOhf3OvRXKg&amp;feature" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/vOhf3OvRXKg&amp;feature"></embed></object></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Ffuzzytolerance.info%2Frant%2Famazing-sand-painting%2F&amp;linkname=Amazing%20Sand%20Painting"><img src="http://fuzzytolerance.info/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://fuzzytolerance.info/rant/amazing-sand-painting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash Takes It in the Teeth</title>
		<link>http://fuzzytolerance.info/rant/flash-takes-it-in-the-teeth/</link>
		<comments>http://fuzzytolerance.info/rant/flash-takes-it-in-the-teeth/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 02:01:14 +0000</pubDate>
		<dc:creator>Fuzzy</dc:creator>
				<category><![CDATA[Opinion & Rant]]></category>

		<guid isPermaLink="false">http://fuzzytolerance.info/?p=1012</guid>
		<description><![CDATA[It&#8217;s been a bad couple of weeks for Flash.
First you had some quotes from Steve Jobs of this ilk:
Apple does not support Flash because it is so buggy. Whenever a Mac crashes more often than not it&#8217;s because of Flash. No one will be using Flash. The world is moving to HTML5.
Ouch.
Adobe quickly put out [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a bad couple of weeks for Flash.</p>
<p>First you had some quotes from Steve Jobs of this ilk:</p>
<blockquote><p>Apple does not support Flash because it is so buggy. Whenever a Mac crashes more often than not it&#8217;s because of Flash. No one will be using Flash. The world is moving to HTML5.</p></blockquote>
<p>Ouch.</p>
<p>Adobe quickly put out a statement that they never ship Flash with known crash bugs (I&#8217;m not sure whether they did themselves any service with that remark), and then someone quickly proved they did. If you click on <a href="http://flashcrash.dempsky.org/">this link</a> your browser will likely explode. It&#8217;s a Flash bug first reported in 2008. Only the 10.1 beta is safe.*</p>
<p>With support for HTML5 video and canvas, Flash is in trouble. If you&#8217;re using anything but IE, check <a href="http://mugtug.com/sketchpad/">this out</a>. No Flash or Silverlight or Java here &#8211; just HTML5 canvas and JavaScript. The biggest supports under the Flash tent are market share, the lack of a specified coded for HTML5 video and, ironically, Internet Explorer, since they don&#8217;t offer much in the way of HTML5 support yet. If there was a HTML5 standard video codec and IE supported it, I don&#8217;t think their market share would last long. Big sites like <a href="http://www.youtube.com/html5">YouTube</a> are already experimenting with HTML5 video (h.264). And with breakout gadgets like the iPhone and (less likely) iPad not supporting Flash, consumers will demand alternatives.</p>
<p>Every time I hear about devs (some of my co-workers included) choosing the Flex API for AGS I have to bite my lip. With the life span of web mapping sites they&#8217;re probably more than safe going with Flash &#8211; it&#8217;s slide will likely be long and slow. But I think that slide is becoming inevitable.</p>
<p><em>*btw, if you have a supported graphics card the 10.1 beta will hit the GPU rather than clobber your CPU. It&#8217;ll keep your media center PC from eating itself.</em></p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Ffuzzytolerance.info%2Frant%2Fflash-takes-it-in-the-teeth%2F&amp;linkname=Flash%20Takes%20It%20in%20the%20Teeth"><img src="http://fuzzytolerance.info/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://fuzzytolerance.info/rant/flash-takes-it-in-the-teeth/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How I Made the Cloud Thing</title>
		<link>http://fuzzytolerance.info/code/how-i-made-the-cloud-thing/</link>
		<comments>http://fuzzytolerance.info/code/how-i-made-the-cloud-thing/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 16:53:51 +0000</pubDate>
		<dc:creator>Fuzzy</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://fuzzytolerance.info/?p=1007</guid>
		<description><![CDATA[I&#8217;ve already been asked several times how I did the floating cloud bit in the header, so here it goes. Fair warning: if you were expecting some miraculous bit of coding here you&#8217;re going to be sorely disappointed.
First, I&#8217;m using jQuery for this, so stick a reference to the Google CDN in your head.


&#60;script type=&#34;text/javascript&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve already been asked several times how I did the floating cloud bit in the header, so here it goes. Fair warning: if you were expecting some miraculous bit of coding here you&#8217;re going to be sorely disappointed.</p>
<p>First, I&#8217;m using jQuery for this, so stick a reference to the Google CDN in your head.</p>
<pre class="brush: html">

&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;

&lt;/script&gt;
</pre>
<div id="attachment_1008" class="wp-caption alignleft" style="width: 309px"><a href="http://fuzzytolerance.info/wp-content/uploads/2010/02/cloud.png"><img class="size-full wp-image-1008" title="cloud" src="http://fuzzytolerance.info/wp-content/uploads/2010/02/cloud.png" alt="" width="299" height="173" /></a><p class="wp-caption-text">Happy cloud is happy.</p></div>
<p>Next, you need an image to go blundering about on your web page. If you don&#8217;t want it to obscure the page underneath it, you&#8217;re going to have to do some creative transparency. Here I made a cloud with a radial shading so the edges are less transparent than the middle. But you could use or make anything you want here. I used and recommend <a href="http://www.inkscape.org/">Inkscape</a> if you don&#8217;t have a favorite vector graphics editor yet.</p>
<p>We&#8217;re going to use the image as a background to a div, which you should stick in whatever container div you want the image to roam around in, probably at the bottom. I stuck it in a div creatively named &#8220;page-head&#8221;.</p>
<pre class="brush: html">

&lt;div id=&quot;cloud&quot;&gt;&lt;/div&gt;
</pre>
<p>Now let&#8217;s style that div a bit.</p>
<pre class="brush: css">

/* moving image */
#cloud {
position: relative;
top: 10px;
left: 0;
width: 299px;
height: 173px;
background: transparent url(img/cloud.png) no-repeat scroll 0 0;
}
</pre>
<p>Nothing special here. Use the top property to move the image up or down to where you want it. Note I&#8217;m setting the left property even though I&#8217;m starting it the default (0). This is important as you&#8217;ll see in a minute.</p>
<p>Now on to the JavaScript.</p>
<pre class="brush: javascript">

$(document).ready(function() {
animateCloud();
});

function animateCloud() {
$(&quot;#cloud&quot;).animate({
&#039;left&#039;:  $(&quot;#page-head&quot;).width() - $(&quot;#cloud&quot;).width() - parseInt($(&quot;#cloud&quot;).css(&quot;left&quot;)) }, 50000, &#039;linear&#039;, function() {            animateCloud();        });
}
</pre>
<p>When the page is ready, we call the animateCloud function. From there we&#8217;re running a jQuery animation where we change the left property of the could by the container width &#8211; the width of the cloud image &#8211; the current left property of the image. So when the image is at the starting position, we get the width of the container &#8211; the width of the cloud div, since the starting left property of the cloud is 0. This is why we had to specify the position even though it&#8217;s 0 &#8211; if you didn&#8217;t, jQuery would return a NaN for this value. So the image goes across the screen over the course of 50 seconds (50000ms), and when it gets to the end it calls itself again. This time we set the left to 0, since container width &#8211; cloud div width &#8211; cloud div left property will equal 0. Back it moves, calls itself, ad nauseam.</p>
<p>Told you you&#8217;d be disappointed.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Ffuzzytolerance.info%2Fcode%2Fhow-i-made-the-cloud-thing%2F&amp;linkname=How%20I%20Made%20the%20Cloud%20Thing"><img src="http://fuzzytolerance.info/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://fuzzytolerance.info/code/how-i-made-the-cloud-thing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
