<?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>Barklund.org &#187; Mashup</title>
	<atom:link href="http://www.barklund.org/blog/category/trends/mashup/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.barklund.org/blog</link>
	<description>work smarter when building current web trends</description>
	<lastBuildDate>Wed, 26 May 2010 09:49:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Why events suck in ActionScript 3</title>
		<link>http://www.barklund.org/blog/2010/05/07/events-suck-actionscript-3/</link>
		<comments>http://www.barklund.org/blog/2010/05/07/events-suck-actionscript-3/#comments</comments>
		<pubDate>Thu, 06 May 2010 22:04:45 +0000</pubDate>
		<dc:creator>Barklund</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Trends]]></category>

		<guid isPermaLink="false">http://www.barklund.org/blog/?p=788</guid>
		<description><![CDATA[I&#8217;ve had it with events in ActionScript 3! They are annoying to structure, annoying to extend, annoying to dispatch but most importantly annoying to consume &#8211; and I consume events a lot more than write or dispatch my own. But! The idea of listening for stuff I really do like. I have some ideas about [...]


Related posts:<ol><li><a href='http://www.barklund.org/blog/2009/11/23/link-sharing-spam-facebook/' rel='bookmark' title='Permanent Link: Link sharing spam on Facebook'>Link sharing spam on Facebook</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<div id="attachment_804" class="wp-caption alignright" style="width: 336px"><a href="http://www.barklund.org/blog/wp-content/uploads/2010/05/ignoring_the_event.png"><img src="http://www.barklund.org/blog/wp-content/uploads/2010/05/ignoring_the_event.png" alt="" title="Ignoring the event" width="326" height="93" class="size-full wp-image-804" /></a><p class="wp-caption-text">I actually took this from production code!</p></div>
<p>I&#8217;ve had it with events in ActionScript 3! They are annoying to structure, annoying to extend, annoying to dispatch but most importantly annoying to consume &#8211; and I consume events a lot more than write or dispatch my own.</p>
<p>But! The idea of listening for stuff I really do like. I have some ideas about how this could be done a lot easier. Oh, and please stick around until the very end of this post.</p>
<p><span id="more-788"></span></p>
<h3 id="toc-background">Background</h3>
<p>For those who can&#8217;t remember exactly, events in AS3 are consumed by listening for certain events and passing a function, that will be called when this event occurs. The function will <strong>always</strong> be invoked with the event type, that you listen for &#8211; and only that argument will be given to the callback. You cannot define extra arguments in any way or not accept the event argument. Let&#8217;s for example listen for when the use clicks a button &#8211; which is the <code>MouseEvent.CLICK</code> event (of type <code>MouseEvent</code> of course):</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #004993;">init</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
  <span style="color: #6699cc; font-weight: bold;">var</span> myButton<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Sprite</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Sprite</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
  ...
  myButton.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">CLICK</span>, buttonPressed<span style="color: #000000;">&#41;</span>;
  ...
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> buttonPressed<span style="color: #000000;">&#40;</span>me<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">MouseEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
  <span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;the button has been pressed, hurray&quot;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>We abidingly accept the <code>me:MouseEvent</code> argument even though we don&#8217;t intend to use it.</p>
<p>The event object has information about the event, about who sent it, information related to the bubbling nature of events (that very few people ever use in ActionScript 3) and additional specific attributes only relevant for specific events. For instance, if we have several buttons representing different related actions, we can examine the <code>event.target</code property to see which of the dispatcher send the event:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> selectRed<span style="color: #000000; font-weight: bold;">:</span>ColorButton;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> selectGreen<span style="color: #000000; font-weight: bold;">:</span>ColorButton ;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> selectBlue<span style="color: #000000; font-weight: bold;">:</span>ColorButton;
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #004993;">init</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
  ...
  selectRed.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">CLICK</span>, selectColor<span style="color: #000000;">&#41;</span>;
  selectGreen.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">CLICK</span>, selectColor<span style="color: #000000;">&#41;</span>;
  selectBlue.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">CLICK</span>, selectColor<span style="color: #000000;">&#41;</span>;
  ...
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> selectColor<span style="color: #000000;">&#40;</span>me<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">MouseEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
  <span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">color</span><span style="color: #000000; font-weight: bold;">:</span>ColorButton = me.<span style="color: #004993;">target</span> <span style="color: #0033ff; font-weight: bold;">as</span> ColorButton;
  <span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight: bold;">!</span><span style="color: #004993;">color</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
    <span style="color: #0033ff; font-weight: bold;">throw</span> <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Error</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;color selected was not actually a color&quot;</span><span style="color: #000000;">&#41;</span>;
  <span style="color: #000000;">&#125;</span>
  <span style="color: #0033ff; font-weight: bold;">switch</span> <span style="color: #000000;">&#40;</span><span style="color: #004993;">color</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
    <span style="color: #0033ff; font-weight: bold;">case</span> selectRed<span style="color: #000000; font-weight: bold;">:</span> <span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;you chose a red Papa Smurf&quot;</span><span style="color: #000000;">&#41;</span>; <span style="color: #0033ff; font-weight: bold;">break</span>;
    <span style="color: #0033ff; font-weight: bold;">case</span> selectGreen<span style="color: #000000; font-weight: bold;">:</span> <span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;you chose a green Papa Smurf&quot;</span><span style="color: #000000;">&#41;</span>; <span style="color: #0033ff; font-weight: bold;">break</span>;
    <span style="color: #0033ff; font-weight: bold;">case</span> selectBlue<span style="color: #000000; font-weight: bold;">:</span> <span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;you chose a blue Papa Smurf&quot;</span><span style="color: #000000;">&#41;</span>; <span style="color: #0033ff; font-weight: bold;">break</span>;
  <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Here, we do use the <code>MouseEvent</code>-object, but we cast the target property to the type we expect it to have and then we need to check, if the cast went well. Because, technically we could have used the same function as a listener for something else somewhere else (even though we know we didn't) and thus <code>target</code> could have been something entirely different.</p>
<h3 id="toc-personal-experiences">Personal experiences</h3>
<p>I've just checked a recent, larger project with 185 (home-made) classes. In general I try to minimize my event usage, but a lot of things I have to use events for event though I don't really need them, so I ran a simple script counting how many times I had a function that took an event as an argument, and how many of these actually used the event object. The result was 121 functions accepting an event as argument (10 of those had default null values), and in only 4 of those I actually used the event argument (one of them a <code>KeyboardEvent</code>, the others were all the same home-made <code>PageEvent</code>). 83 of the events accepted were <code>MouseEvent</code>s (which is no surprise), and never was the <code>me:MouseEvent</code> variable used in the function body.</p>
<p>Then, I tested an even earlier project from before I started minimizing event usage (almost maximized it back then). It consisted of 50 (home-made) classes. It had 113 functions (a lot more per class than the above) accepting event arguments (16 of those defaulting to null) and 74 of those were <code>MouseEvent</code>s. And this time around, I used the event argument 25 times, but 18 of these usages were accessing <code>event.target</code> or <code>event.data</code> and casting it to the right class. Thus, yes I did use the event argument in some cases (22% of the time I accepted an argument), but in most of them I still had to do manual casting of the <code>event.target</code> (or <code>event.data</code>) attribute to get the type I knew I was accessing. This leaves only 7 "true" usages or about 6%. Please see the background section about why using the event object for casting only just moves the problem around and makes the code even more verbose.</p>
<h3 id="toc-dream-scenario">Dream scenario</h3>
<p>So, what would I like instead? Something intelligent, that allows me to accept the arguments I need <em>when</em> I need them. For instance, take this snippet here:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">close</span><span style="color: #000000; font-weight: bold;">:</span>CloseButton;
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #004993;">init</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
  <span style="color: #004993;">close</span>.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">CLICK</span>, closeDialog<span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> closeDialog<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
  someDialog.fadeToOblivion<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>It is simple, I do not need any argument, so I do not expect one.</p>
<p>A often used situation is when you have several instances of the same type and attach the same listener to all of these, then you use the event argument's target attribute for switching on which instance was invoked and handling the result correspondingly:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> downloadLowRes<span style="color: #000000; font-weight: bold;">:</span>DownloadButton;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> downloadMediumRes<span style="color: #000000; font-weight: bold;">:</span>DownloadButton;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> downloadHighRes<span style="color: #000000; font-weight: bold;">:</span>DownloadButton;
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #004993;">init</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
  downloadLowRes.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">CLICK</span>, <span style="color: #004993;">download</span><span style="color: #000000;">&#41;</span>;
  downloadMediumRes.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">CLICK</span>, <span style="color: #004993;">download</span><span style="color: #000000;">&#41;</span>;
  downloadHighRes.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">CLICK</span>, <span style="color: #004993;">download</span><span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #004993;">download</span><span style="color: #000000;">&#40;</span>db<span style="color: #000000; font-weight: bold;">:</span>DownloadButton<span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
  <span style="color: #0033ff; font-weight: bold;">switch</span> <span style="color: #000000;">&#40;</span>db<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
    <span style="color: #0033ff; font-weight: bold;">case</span> downloadLowRes<span style="color: #000000; font-weight: bold;">:</span> <span style="color: #004993;">open</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;file_360p.avi&quot;</span><span style="color: #000000;">&#41;</span>; <span style="color: #0033ff; font-weight: bold;">break</span>;
    <span style="color: #0033ff; font-weight: bold;">case</span> downloadMediumRes<span style="color: #000000; font-weight: bold;">:</span> <span style="color: #004993;">open</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;file_720p.avi&quot;</span><span style="color: #000000;">&#41;</span>; <span style="color: #0033ff; font-weight: bold;">break</span>;
    <span style="color: #0033ff; font-weight: bold;">case</span> downloadHighRes<span style="color: #000000; font-weight: bold;">:</span> <span style="color: #004993;">open</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;file_1080p.avi&quot;</span><span style="color: #000000;">&#41;</span>; <span style="color: #0033ff; font-weight: bold;">break</span>;
  <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>The function expects a reference to the button clicked - not to an event, who references the button clicked, because only the actual button reference is necessary.</p>
<p>Finally, a more elaborate example of different other component listeners expecting just what they need and nothing else:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #004993;">init</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
  <span style="color: #009900;">// listen for selections in a dropdown</span>
  countryDropdown.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">SELECT</span>, selectCountry<span style="color: #000000;">&#41;</span>;
&nbsp;
  <span style="color: #009900;">// listen for checkbox changes</span>
  acceptTermsCheckbox.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">CHANGE</span>, acceptTerms<span style="color: #000000;">&#41;</span>;
&nbsp;
  <span style="color: #009900;">// listen for focus changes between password input fields</span>
  passwordInput.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">FocusEvent</span>.<span style="color: #004993;">FOCUS_OUT</span>, checkPasswords<span style="color: #000000;">&#41;</span>;
  passwordConfirmInput.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">FocusEvent</span>.<span style="color: #004993;">FOCUS_OUT</span>, checkPasswords<span style="color: #000000;">&#41;</span>;
&nbsp;
  <span style="color: #009900;">// listen for three different radio buttons changing</span>
  languageDanish.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">SELECT</span>, selectLanguage<span style="color: #000000;">&#41;</span>;
  languageSwedish.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">SELECT</span>, selectLanguage<span style="color: #000000;">&#41;</span>;
  languageNorwegian.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span>.<span style="color: #004993;">SELECT</span>, selectLanguage<span style="color: #000000;">&#41;</span>;
&nbsp;
  <span style="color: #009900;">// listen for submit button presses</span>
  submitButton.<span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span>.<span style="color: #004993;">CLICK</span>, submit<span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> selectCountry<span style="color: #000000;">&#40;</span>country<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">String</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
  selectedCountry = country;
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> acceptTerms<span style="color: #000000;">&#40;</span>accepted<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Boolean</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
  termsAccepted = accepted;
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> checkPassword<span style="color: #000000;">&#40;</span>fe<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">FocusEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
  <span style="color: #0033ff; font-weight: bold;">if</span> <span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight: bold;">!</span><span style="color: #000000;">&#40;</span>fe.<span style="color: #004993;">relatedObject</span> <span style="color: #0033ff; font-weight: bold;">in</span> <span style="color: #000000;">&#91;</span>passwordInput, passwordConfirmInput<span style="color: #000000;">&#93;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
    <span style="color: #009900;">// focus moved away from either input field</span>
    <span style="color: #009900;">// show mismatch alert if texts are not the same</span>
    passwordMismatchAlert.<span style="color: #004993;">visible</span> = passwordInput.<span style="color: #004993;">text</span> <span style="color: #000000; font-weight: bold;">!</span>== passwordConfirmInput.<span style="color: #004993;">text</span>;
  <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> selectLanguage<span style="color: #000000;">&#40;</span><span style="color: #004993;">language</span><span style="color: #000000; font-weight: bold;">:</span>LanguageRadioButton<span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
  <span style="color: #0033ff; font-weight: bold;">switch</span> <span style="color: #000000;">&#40;</span><span style="color: #004993;">language</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
    <span style="color: #0033ff; font-weight: bold;">case</span> languageDanish<span style="color: #000000; font-weight: bold;">:</span> <span style="color: #004993;">load</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;texts_da.xml&quot;</span><span style="color: #000000;">&#41;</span>; <span style="color: #0033ff; font-weight: bold;">break</span>;
    <span style="color: #0033ff; font-weight: bold;">case</span> languageSwedish<span style="color: #000000; font-weight: bold;">:</span> <span style="color: #004993;">load</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;texts_se.xml&quot;</span><span style="color: #000000;">&#41;</span>; <span style="color: #0033ff; font-weight: bold;">break</span>;
    <span style="color: #0033ff; font-weight: bold;">case</span> languageNorwegian<span style="color: #000000; font-weight: bold;">:</span> <span style="color: #004993;">load</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;texts_no.xml&quot;</span><span style="color: #000000;">&#41;</span>; <span style="color: #0033ff; font-weight: bold;">break</span>;
  <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> submit<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span>
  sendForm<span style="color: #000000;">&#40;</span>withParameters<span style="color: #000000;">&#41;</span>;
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>One notable example among the above is, that if an event is needed, you can always have it. I only dislike events, when I don't need them but have to accept them anyway. When I actually need it, they do come quite handy - like the <code>FocusEvent.relatedObject</code> used in the above example.<br />
<h3 id="toc-announcement">Announcement</h3>
<p>Actually, I have made the above work! It is a dirty, dirty triple-hack, but it feels quite sweet to use on both ends. I need to clean it up a lot, need to come up with a good name for it and need to benchmark it to see, that it doesn't kill performance (too much).</p>
<p>So please, stay tuned. But do not fear commenting on the above ideas anyway.</p>


<p>Related posts:<ol><li><a href='http://www.barklund.org/blog/2009/11/23/link-sharing-spam-facebook/' rel='bookmark' title='Permanent Link: Link sharing spam on Facebook'>Link sharing spam on Facebook</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.barklund.org/blog/2010/05/07/events-suck-actionscript-3/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Vimeo highly vulnerable to CSRF attacks &#8211; now fixed</title>
		<link>http://www.barklund.org/blog/2010/02/12/vimeo-vulnerable-csrf/</link>
		<comments>http://www.barklund.org/blog/2010/02/12/vimeo-vulnerable-csrf/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 00:33:36 +0000</pubDate>
		<dc:creator>Barklund</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.barklund.org/blog/?p=683</guid>
		<description><![CDATA[I recently found, that vimeo.com had a cross-domain policy, that allowed anyone to connect, which was an open invitation for CSRF attacks. I alerted them to the issue, and it has now been fixed. As has been said over and over, allow-all cross-domain policy files should never be used on domains, where users log on. [...]


Related posts:<ol><li><a href='http://www.barklund.org/blog/2009/07/15/sys-con-aral-balkan-stupidity-ignorance/' rel='bookmark' title='Permanent Link: Sys-Con once again attacks Aral Balkan with stupidity and ignorance'>Sys-Con once again attacks Aral Balkan with stupidity and ignorance</a></li>
<li><a href='http://www.barklund.org/blog/2009/11/23/link-sharing-spam-facebook/' rel='bookmark' title='Permanent Link: Link sharing spam on Facebook'>Link sharing spam on Facebook</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/10/re-youtube-january-2010-idea/' rel='bookmark' title='Permanent Link: Re-Youtube &#8211; January 2010 Ideas'>Re-Youtube &#8211; January 2010 Ideas</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p> I recently found, that <a href="http://vimeo.com/">vimeo.com</a> had a cross-domain policy, that allowed anyone to connect, which was an open invitation for CSRF attacks. I alerted them to the issue, and it has now been fixed.</p>
<p><span id="more-683"></span></p>
<p>As has been said <a href="http://shiflett.org/blog/2006/sep/the-dangers-of-cross-domain-ajax-with-flash">over</a> and <a href="http://shiflett.org/blog/2009/nov/facebook-myspace-and-crossdomain.xml">over</a>, allow-all cross-domain policy files should never be used on domains, where users log on. This leaves the site open for <a href="http://en.wikipedia.org/wiki/Cross-site_request_forgery">CSRF attacks</a> from flash clients on different domains, that can load pages from the target domain utilizing the user&#8217;s automated log-in and thus the flash load&#8217;s the pages, like the user himself would. This not only allows the flash file to (without the user knowing it) load all his private information from the target site, but potentially also post data to the site, which could include updating the user&#8217;s password, email, profile or in worse circumstances add/remove content or even make purchases, if the target site has any feature like that.
<p>This has been done against large sites like Facebook, MySpace, Adobe and Youtube &#8211; the latter was ironically <a href="http://www.vimeo.com/1762861">documented via a video on Vimeo</a> by Jeremiah Grossman.</p>
<p>In Vimeo&#8217;s case, you can &#8220;only&#8221; upload videos, but an attacker could actually perform any action on the user&#8217;s behalf, that the user himself could &#8211; including changing the user&#8217;s bio, add/remove videos, comment on/like other videos etc. I made a <a href="http://barklund.org/examples/fun_with_vimeo/fun_with_vimeo.html">small, seemingly innocent page</a>, that included a hidden flash element, which first loaded the user&#8217;s info from <a href="http://vimeo.com/settings/personal">vimeo.com/settings/personal</a> and then re-posted this info back to the same page adding an extra line to the bio &#8211; namely &#8220;You have been bwned&#8221;, as it can seen on <a href="http://vimeo.com/barklund">my vimeo profil</a>e.</p>
<p>Someone at vimeo has clearly seen this demo, (<a href="http://vimeo.com/julia">Julia Quinn has indeed</a>) and now <a href="http://vimeo.com/crossdomain.xml">the cross-domain policy only allows *.vimeo.com</a> (the new file is served with a Last-Modified timestamp of <code>Thu, 11 Feb 2010 23:32:05 GMT</code>, so the change is only an hour old). The strange thing is, that if you go back via <a href="http://web.archive.org/">the Wayback Machine from archive.org</a>, you can see, that they had much better security back <a href="http://web.archive.org/web/20070224144110/http://www.vimeo.com/crossdomain.xml">in 2007</a> and <a href="http://web.archive.org/web/20080610033603/http://www.vimeo.com/crossdomain.xml">2008</a> (html render fails, but view source), so I have no idea how such a relaxed policy suddenly appeared on their site. <a href="http://74.125.77.132/search?q=cache:Kssyyl60UAUJ:www.vimeo.com/crossdomain.xml">Google&#8217;s cache still show the allow-all policy</a> as it dates back to January 20th (again, view source to see contents).</p>
<p>I found this while playing around attempting to load videos from Vimeo directly in a custom FLV-player on a different host than vimeo.com and found that this was actually possible, as all videos from their site are hosted from av.vimeo.com and this has an allow-all cross-domain policy. And this makes sense, as this domain is only used for serving videos and nothing else &#8211; no cookies or authentication info shared to this domain.</p>
<p>I haven&#8217;t heard from Vimeo yet &#8211; neither stating that they are looking at the issue nor that it has been fixed. I only post this after now seeing, that it has been fixed.</p>


<p>Related posts:<ol><li><a href='http://www.barklund.org/blog/2009/07/15/sys-con-aral-balkan-stupidity-ignorance/' rel='bookmark' title='Permanent Link: Sys-Con once again attacks Aral Balkan with stupidity and ignorance'>Sys-Con once again attacks Aral Balkan with stupidity and ignorance</a></li>
<li><a href='http://www.barklund.org/blog/2009/11/23/link-sharing-spam-facebook/' rel='bookmark' title='Permanent Link: Link sharing spam on Facebook'>Link sharing spam on Facebook</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/10/re-youtube-january-2010-idea/' rel='bookmark' title='Permanent Link: Re-Youtube &#8211; January 2010 Ideas'>Re-Youtube &#8211; January 2010 Ideas</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.barklund.org/blog/2010/02/12/vimeo-vulnerable-csrf/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>NYT Article Trend Charts &#8211; January 2010 Ideas</title>
		<link>http://www.barklund.org/blog/2010/01/29/nyt-article-trend-charts-january-2010-idea/</link>
		<comments>http://www.barklund.org/blog/2010/01/29/nyt-article-trend-charts-january-2010-idea/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 08:00:47 +0000</pubDate>
		<dc:creator>Barklund</dc:creator>
				<category><![CDATA[January 2010 Ideas]]></category>
		<category><![CDATA[Mashup]]></category>
		<category><![CDATA[Trends]]></category>

		<guid isPermaLink="false">http://www.barklund.org/blog/?p=670</guid>
		<description><![CDATA[The twenty-nineth idea for my 365 social ideas is a classic mashup: CatScanner, a charting application and the New York Times Article Search. The charting application could very likely be the previously mentioned Infographic Charting Service for better results (it could actually be built into this service) or it could be build stand-alone using any [...]


Related posts:<ol><li><a href='http://www.barklund.org/blog/2010/01/09/comment-on-everything-january-2010-idea/' rel='bookmark' title='Permanent Link: Comment On Everything &#8211; January 2010 Ideas'>Comment On Everything &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/23/google-docs-application-january-2010-idea/' rel='bookmark' title='Permanent Link: Google Docs Application &#8211; January 2010 Ideas'>Google Docs Application &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/22/social-traffic-analyzer-january-2010-idea/' rel='bookmark' title='Permanent Link: Social Traffic Analyzer &#8211; January 2010 Ideas'>Social Traffic Analyzer &#8211; January 2010 Ideas</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>The twenty-nineth idea for my <a href="/blog/365ideas/" title="365 Social Ideas from Barklund.org">365 social ideas</a> is a classic mashup: CatScanner, a charting application and the New York Times Article Search. The charting application could very likely be the previously mentioned Infographic Charting Service for better results (it could actually be built into this service) or it could be build stand-alone using any classic charting API like Google Charts.</p>
<p><span id="more-670"></span></p>
<p>Creating cool charts displaying the frequency of articles about Obama vs. McCain or comparing the articles about Obama in his first year vs. previous presidents NYT coverage in their first year are common and quite easy to do. But as previously explained about Twitter Trends, you cannot find what you don&#8217;t know you&#8217;re looking for. Let&#8217;s say we want to see how many articles are posted in NYT about Democrats vs. Republicans. Well, you could search for popular names from both parties, or you could hope that the writers have tagged their articles correctly.</p>
<p>But we can do better than that, as the Wikipedia category system will give us names of most politicians from both parties. Thus we can use these lists to create large queries about all Democrats vs. all Republicans and receive these numbers correctly.</p>
<h4 id="toc-why">Why?</h4>
<p>This is a classic mashup displaying the power of combining commercial content (NYT articles) with crowd-sourced information (Wikipedia CatScanner) with generalized tools (charting API&#8217;s like Google Charts) with little effort for huge results. And this puts cretaing complicated charts back in the hands of everyone, not just the few who are good at both API&#8217;s and PhotoShop.</p>
<h4 id="toc-whats-next">What&#8217;s next?</h4>
<p>Do with this idea whatever you like &#8211; expand, implement, trash or forget. Just remember, that if you use it in anyway make sure to attribute me according to the Creative Commons Attribution 3.0 License, that all these <a href="/blog/365ideas" title="365 Social Ideas from Barklund.org">365 Social Ideas</a> are published under.</p>


<p>Related posts:<ol><li><a href='http://www.barklund.org/blog/2010/01/09/comment-on-everything-january-2010-idea/' rel='bookmark' title='Permanent Link: Comment On Everything &#8211; January 2010 Ideas'>Comment On Everything &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/23/google-docs-application-january-2010-idea/' rel='bookmark' title='Permanent Link: Google Docs Application &#8211; January 2010 Ideas'>Google Docs Application &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/22/social-traffic-analyzer-january-2010-idea/' rel='bookmark' title='Permanent Link: Social Traffic Analyzer &#8211; January 2010 Ideas'>Social Traffic Analyzer &#8211; January 2010 Ideas</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.barklund.org/blog/2010/01/29/nyt-article-trend-charts-january-2010-idea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Turn (Closed) Content Into an API &#8211; January 2010 Ideas</title>
		<link>http://www.barklund.org/blog/2010/01/28/turn-content-into-api-january-2010-idea/</link>
		<comments>http://www.barklund.org/blog/2010/01/28/turn-content-into-api-january-2010-idea/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 08:00:56 +0000</pubDate>
		<dc:creator>Barklund</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[January 2010 Ideas]]></category>
		<category><![CDATA[Online Rights]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.barklund.org/blog/?p=675</guid>
		<description><![CDATA[The twenty-eighth idea for my 365 social ideas is about the open web and about &#8220;forcing&#8221; classic websites to export their data. Imagine sites with lots of useful information, that is frequently updated, but is hidden away behind forms, in PDF&#8217;s or in hard-to-scrape tables. Then imagine a website, where you could provide this address, [...]


Related posts:<ol><li><a href='http://www.barklund.org/blog/2010/01/11/coordinate-proxy-january-2010-idea/' rel='bookmark' title='Permanent Link: Coordinate-Proxy &#8211; January 2010 Ideas'>Coordinate-Proxy &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/18/open-data-january-2010-idea/' rel='bookmark' title='Permanent Link: Open Data &#8211; January 2010 Ideas'>Open Data &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/04/social-subway-january-2010-idea/' rel='bookmark' title='Permanent Link: Social Subway &#8211; January 2010 Ideas'>Social Subway &#8211; January 2010 Ideas</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>The twenty-eighth idea for my <a href="/blog/365ideas/" title="365 Social Ideas from Barklund.org">365 social ideas</a> is about the <a href="/blog/2010/01/18/open-data-january-2010-idea/">open web</a> and about &#8220;forcing&#8221; classic websites to export their data. Imagine sites with lots of useful information, that is frequently updated, but is hidden away behind forms, in PDF&#8217;s or in hard-to-scrape tables. Then imagine a website, where you could provide this address, and give it some guidance as to how to input data in forms and how to interpret the results. And then imagine, that this website would act as a proxy with this interaction described as a simple, queryable API and then behind the scenes would fetch data from the original website.</p>
<p><span id="more-675"></span></p>
<p>There are of course a lot of legal issues, and such a service should probably obey robots.txt. And there should be a very clear opt-out possibility for websites that have been targeted in user-contributed additions &#8211; maybe even moderation before the services are publicly available. It should not be seen as an attack vector, as a proxy method for illegal purposes or anything like that, but simply as a way of &#8220;helping&#8221; free information to be used freely.</p>
<h4 id="toc-why">Why?</h4>
<p>A lot of data on the web is hidden in the so-called <a href="http://en.wikipedia.org/wiki/Deep_web">&#8220;deep web&#8221;</a> behind forms or in inaccessible parts of websites. With a service like the above-mentioned, this would suddenly not only become visible and indexable, but even queryable.</p>
<h4 id="toc-whats-next">What&#8217;s next?</h4>
<p>Do with this idea whatever you like &#8211; expand, implement, trash or forget. Just remember, that if you use it in anyway make sure to attribute me according to the Creative Commons Attribution 3.0 License, that all these <a href="/blog/365ideas" title="365 Social Ideas from Barklund.org">365 Social Ideas</a> are published under.</p>


<p>Related posts:<ol><li><a href='http://www.barklund.org/blog/2010/01/11/coordinate-proxy-january-2010-idea/' rel='bookmark' title='Permanent Link: Coordinate-Proxy &#8211; January 2010 Ideas'>Coordinate-Proxy &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/18/open-data-january-2010-idea/' rel='bookmark' title='Permanent Link: Open Data &#8211; January 2010 Ideas'>Open Data &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/04/social-subway-january-2010-idea/' rel='bookmark' title='Permanent Link: Social Subway &#8211; January 2010 Ideas'>Social Subway &#8211; January 2010 Ideas</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.barklund.org/blog/2010/01/28/turn-content-into-api-january-2010-idea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Infographic Charting Service &#8211; January 2010 Ideas</title>
		<link>http://www.barklund.org/blog/2010/01/26/infographic-charting-service-january-2010-idea/</link>
		<comments>http://www.barklund.org/blog/2010/01/26/infographic-charting-service-january-2010-idea/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 08:00:28 +0000</pubDate>
		<dc:creator>Barklund</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[January 2010 Ideas]]></category>
		<category><![CDATA[Trends]]></category>

		<guid isPermaLink="false">http://www.barklund.org/blog/?p=666</guid>
		<description><![CDATA[The twenty-sixth idea for my 365 social ideas is a new brand of charting service: A service designed for infographics, but with sharing, collaboration and synergy as an added side-effect. The idea is to create a site enabling users to create infographics of the simplest kind initially, but then expand this to even more complex [...]


Related posts:<ol><li><a href='http://www.barklund.org/blog/2010/01/07/app-idea-store-january-2010-idea/' rel='bookmark' title='Permanent Link: App Idea Store &#8211; January 2010 Ideas'>App Idea Store &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/18/open-data-january-2010-idea/' rel='bookmark' title='Permanent Link: Open Data &#8211; January 2010 Ideas'>Open Data &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/29/nyt-article-trend-charts-january-2010-idea/' rel='bookmark' title='Permanent Link: NYT Article Trend Charts &#8211; January 2010 Ideas'>NYT Article Trend Charts &#8211; January 2010 Ideas</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>The twenty-sixth idea for my <a href="/blog/365ideas/" title="365 Social Ideas from Barklund.org">365 social ideas</a> is a new brand of charting service: A service designed for infographics, but with sharing, collaboration and synergy as an added side-effect.</p>
<p><span id="more-666"></span></p>
<p>The idea is to create a site enabling users to create infographics of the simplest kind initially, but then expand this to even more complex ones. For starters, it could allow users to create tables of data defining row and column labels and then selecting icons, colors and values for cells and having this displayed as larger and smaller icons according to the values &#8211; like <a href="http://www.flickr.com/photos/25541021@N00/4100671193/sizes/o/">this chart of the &#8220;deadliest drugs&#8221;</a>. And allowing people to color-code maps of countries, cities or states according to some data would be quite simple to do as well &#8211; like <a href="http://i258.photobucket.com/albums/hh275/pizzler/Languages_of_Europe.png">this map of the origins and relationships of European languages</a>.</p>
<p>But more important than simply creating cool visualizations, each infographic has an input page. This page can only be edited by the original creator of the infographic, but it includes direct links to sources of information used. The site should use a simple url structure (<a href="http://bit.ly/pages/faq/" title="See second question">inspired by bit.ly</a>), where the short-code would give the actual image, but with a + added (like <a href="http://bit.ly/365ideas+">http://bit.ly/365ideas+</a>) it would be a link to the page describing all this background data.</p>
<p>And now comes the collaborative part: While only the creator can edit the data for the published infographic, anyone can copy the data to branch it as their own new infographic. These relationships will then also be displayed on the about page, as in &#8220;this is a spin-off of X and has Y spin-offs of its own&#8221;. Somewhat like the very nice ActionScript-programming website <a href="http://wonderfl.net">wonderfl</a>. Here you can e.g. see that <a href="http://wonderfl.net/code/d8be827191df7785f6b0b4b04c25ba9bf6f66abf">this creation of 250,000 particles</a> is a spin-off from another simulation and has itself spun off into new simulations.</p>
<p>In time, this could be extended heavily and should of course have a public API for creating infographics easily and freely. New types of infographics could be added along with more complex editors allowing you to play around with the data as you see fit. It should be free to do and should not require complex knowledge of Illustrator or Photoshop.</p>
<p>This idea about letting others built on your own ideas could actually be implemented by many sites. The new Firefox 3.6 has <a href="http://www.getpersonas.com/en-US/">&#8220;personas&#8221;</a>, which is a very light theme engine &#8211; that most importantly does not require restart! But why didn&#8217;t the developers add a very fast and quick branching mechanism? If you found a cool persona, but didn&#8217;t like the color of the top-bar &#8211; just branch it, change the top-bar color and publish as a new persona (with credit where credit is due of course linking back to the original).</p>
<h4 id="toc-why">Why?</h4>
<p>Simply: Infographics to the people! I&#8217;m not suggesting, that the creators of the coolest infographics aren&#8217;t brilliant. But they&#8217;re in the business because they both know how to find the data, how to present it and how to use the programs needed to create them. Let&#8217;s take the software knowledge part out of the equation and allow anyone with ideas and info to visualize it. And let&#8217;s do it openly and collaborate, not just publish a PNG and kill innovation.</p>
<h4 id="toc-whats-next">What&#8217;s next?</h4>
<p>Do with this idea whatever you like &#8211; expand, implement, trash or forget. Just remember, that if you use it in anyway make sure to attribute me according to the Creative Commons Attribution 3.0 License, that all these <a href="/blog/365ideas" title="365 Social Ideas from Barklund.org">365 Social Ideas</a> are published under.</p>


<p>Related posts:<ol><li><a href='http://www.barklund.org/blog/2010/01/07/app-idea-store-january-2010-idea/' rel='bookmark' title='Permanent Link: App Idea Store &#8211; January 2010 Ideas'>App Idea Store &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/18/open-data-january-2010-idea/' rel='bookmark' title='Permanent Link: Open Data &#8211; January 2010 Ideas'>Open Data &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/29/nyt-article-trend-charts-january-2010-idea/' rel='bookmark' title='Permanent Link: NYT Article Trend Charts &#8211; January 2010 Ideas'>NYT Article Trend Charts &#8211; January 2010 Ideas</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.barklund.org/blog/2010/01/26/infographic-charting-service-january-2010-idea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook Notes and Images for Competition Results &#8211; January 2010 Ideas</title>
		<link>http://www.barklund.org/blog/2010/01/25/facebook-notes-images-competition-january-2010-idea/</link>
		<comments>http://www.barklund.org/blog/2010/01/25/facebook-notes-images-competition-january-2010-idea/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 08:00:43 +0000</pubDate>
		<dc:creator>Barklund</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[January 2010 Ideas]]></category>

		<guid isPermaLink="false">http://www.barklund.org/blog/?p=660</guid>
		<description><![CDATA[The twenty-fifth idea for my 365 social ideas is a small simple idea: use Facebook notes or images combined with tags to display results of games. For instance, imagine a chess game, post the result of the game as a note on the game&#8217;s page with the final board, all moves made during the game [...]


Related posts:<ol><li><a href='http://www.barklund.org/blog/2010/01/15/twitter-gaming-mechanic-january-2010-idea/' rel='bookmark' title='Permanent Link: A Twitter Gaming Mechanic &#8211; January 2010 Ideas'>A Twitter Gaming Mechanic &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/13/game-console-api-social-connectivity-january-2010-idea/' rel='bookmark' title='Permanent Link: Game Console Progress API for Social Connectivity &#8211; January 2010 Ideas'>Game Console Progress API for Social Connectivity &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/21/game-of-life-january-2010-idea/' rel='bookmark' title='Permanent Link: Game of Life &#8211; January 2010 Ideas'>Game of Life &#8211; January 2010 Ideas</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>The twenty-fifth idea for my <a href="/blog/365ideas/" title="365 Social Ideas from Barklund.org">365 social ideas</a> is a small simple idea: use Facebook notes or images combined with tags to display results of games. For instance, imagine a chess game, post the result of the game as a note on the game&#8217;s page with the final board, all moves made during the game and both players tagged. Or simply post the final board as an image and tag both players as well.</p>
<p><span id="more-660"></span></p>
<p>It is a very simple idea, but the idea is to use profile tagging in a new way to indicate relationships to the displayed information in a way, that the users actually feel related to this. The great thing about using tagging is, that it can be done without the user has to accept it and it will be auto-posted to his friends&#8217; news feeds. But given that it can be done without asking the user, it should only be done if it is actually relevant for the user and not done just to get a viral effect and annoy users.</p>
<h4 id="toc-why">Why?</h4>
<p>It is a new way to use the Facebook platform for viral effects. It&#8217;s quite simple and does not require a lot of programming as it uses simple, existing features.</p>
<h4 id="toc-whats-next">What&#8217;s next?</h4>
<p>Do with this idea whatever you like &#8211; expand, implement, trash or forget. Just remember, that if you use it in anyway make sure to attribute me according to the Creative Commons Attribution 3.0 License, that all these <a href="/blog/365ideas" title="365 Social Ideas from Barklund.org">365 Social Ideas</a> are published under.</p>


<p>Related posts:<ol><li><a href='http://www.barklund.org/blog/2010/01/15/twitter-gaming-mechanic-january-2010-idea/' rel='bookmark' title='Permanent Link: A Twitter Gaming Mechanic &#8211; January 2010 Ideas'>A Twitter Gaming Mechanic &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/13/game-console-api-social-connectivity-january-2010-idea/' rel='bookmark' title='Permanent Link: Game Console Progress API for Social Connectivity &#8211; January 2010 Ideas'>Game Console Progress API for Social Connectivity &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/21/game-of-life-january-2010-idea/' rel='bookmark' title='Permanent Link: Game of Life &#8211; January 2010 Ideas'>Game of Life &#8211; January 2010 Ideas</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.barklund.org/blog/2010/01/25/facebook-notes-images-competition-january-2010-idea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Interest Groups on Foursquare &#8211; January 2010 Ideas</title>
		<link>http://www.barklund.org/blog/2010/01/20/interest-groups-foursquare-january-2010-idea/</link>
		<comments>http://www.barklund.org/blog/2010/01/20/interest-groups-foursquare-january-2010-idea/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 08:00:59 +0000</pubDate>
		<dc:creator>Barklund</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[January 2010 Ideas]]></category>
		<category><![CDATA[Mashup]]></category>

		<guid isPermaLink="false">http://www.barklund.org/blog/?p=635</guid>
		<description><![CDATA[The twentieth idea for my 365 social ideas is to combine the ideas of interest group websites like Meetup.com with location-aware services like Foursquare or Gowalla: Allow people with the same interests as you to see where you are available for talking about this interest. For instance, it is far more useful to know, that [...]


Related posts:<ol><li><a href='http://www.barklund.org/blog/2010/01/11/coordinate-proxy-january-2010-idea/' rel='bookmark' title='Permanent Link: Coordinate-Proxy &#8211; January 2010 Ideas'>Coordinate-Proxy &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/18/open-data-january-2010-idea/' rel='bookmark' title='Permanent Link: Open Data &#8211; January 2010 Ideas'>Open Data &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/21/game-of-life-january-2010-idea/' rel='bookmark' title='Permanent Link: Game of Life &#8211; January 2010 Ideas'>Game of Life &#8211; January 2010 Ideas</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>The twentieth idea for my <a href="/blog/365ideas/" title="365 Social Ideas from Barklund.org">365 social ideas</a> is to combine the ideas of interest group websites like <a href="http://meetup.com">Meetup.com</a> with location-aware services like <a href="http://foursquare.com">Foursquare</a> or <a href="http://gowalla.com/">Gowalla</a>: Allow people with the same interests as you to see where you are available for talking about this interest. For instance, it is far more useful to know, that one of your friends, acquaintances or a stranger is at some place nearby and willing to talk about needle point with you, than just knowing where one of your friends is without actually having anything to use that information for.</p>
<p><span id="more-635"></span></p>
<p>Foursquare and related services all have the problem, that simply telling where you are does not necessarily mean, that anyone reading where you are, are welcome to join you. Some days ago, I read about someone checking at a local restaurant, two friends dropped by only to awkwardly leave again shortly after, as there weren&#8217;t room for them. By introducing interest groups and by selecting actively, that the fact that you are at a certain location can be revealed to this interest group, you explicitly specify &#8220;and you are welcome to join me for discussion/networking/drinks/fun&#8221;.</p>
<h4 id="toc-why">Why?</h4>
<p>Revealing your location in a more or less specific position is one thing, but adding the information &#8220;and I&#8217;m revealing this to you because..&#8221; is almost as important. Some simply do it for bragging purposes, some for being known as the party girl and so on &#8211; and some do it for networking/socializing purposes, and these users would benefit from being able to attract like-minded people for heated discussions and sharing secrets about dog breeding, spelunking equipment or JavaScript libraries.</p>
<h4 id="toc-whats-next">What&#8217;s next?</h4>
<p>Do with this idea whatever you like &#8211; expand, implement, trash or forget. Just remember, that if you use it in anyway make sure to attribute me according to the Creative Commons Attribution 3.0 License, that all these <a href="/blog/365ideas" title="365 Social Ideas from Barklund.org">365 Social Ideas</a> are published under.</p>


<p>Related posts:<ol><li><a href='http://www.barklund.org/blog/2010/01/11/coordinate-proxy-january-2010-idea/' rel='bookmark' title='Permanent Link: Coordinate-Proxy &#8211; January 2010 Ideas'>Coordinate-Proxy &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/18/open-data-january-2010-idea/' rel='bookmark' title='Permanent Link: Open Data &#8211; January 2010 Ideas'>Open Data &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/21/game-of-life-january-2010-idea/' rel='bookmark' title='Permanent Link: Game of Life &#8211; January 2010 Ideas'>Game of Life &#8211; January 2010 Ideas</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.barklund.org/blog/2010/01/20/interest-groups-foursquare-january-2010-idea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twadio &#8211; January 2010 Ideas</title>
		<link>http://www.barklund.org/blog/2010/01/19/twadio-january-2010-idea/</link>
		<comments>http://www.barklund.org/blog/2010/01/19/twadio-january-2010-idea/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 08:00:21 +0000</pubDate>
		<dc:creator>Barklund</dc:creator>
				<category><![CDATA[January 2010 Ideas]]></category>
		<category><![CDATA[Mashup]]></category>

		<guid isPermaLink="false">http://www.barklund.org/blog/?p=634</guid>
		<description><![CDATA[The nineteenth idea for my 365 social ideas is another Twitter idea &#8211; about being able to be a DJ over twitter. It could be done so simple, and actually @kim_bach gave me the idea and somewhat started it himself. I will however expand a little on the idea. Any hashtag and any user (and [...]


Related posts:<ol><li><a href='http://www.barklund.org/blog/2010/01/15/twitter-gaming-mechanic-january-2010-idea/' rel='bookmark' title='Permanent Link: A Twitter Gaming Mechanic &#8211; January 2010 Ideas'>A Twitter Gaming Mechanic &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/01/twitter-follow-organizer-january-2010-idea/' rel='bookmark' title='Permanent Link: Twitter Follow Organizer &#8211; January 2010 Ideas'>Twitter Follow Organizer &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/04/social-subway-january-2010-idea/' rel='bookmark' title='Permanent Link: Social Subway &#8211; January 2010 Ideas'>Social Subway &#8211; January 2010 Ideas</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>The nineteenth idea for my <a href="/blog/365ideas/" title="365 Social Ideas from Barklund.org">365 social ideas</a> is another Twitter idea &#8211; about being able to be a DJ over twitter. It could be done so simple, and actually <a href="http://twitter.com/kim_bach">@kim_bach</a> gave me the idea and <a href="http://twitter.com/#search?q=%23koxbox">somewhat started it himself</a>. I will however expand a little on the idea.</p>
<p><span id="more-634"></span></p>
<p>Any hashtag and any user (and any combination of these) is their own radio station on twitter. Simply combine the twitter API with the <a href="http://grooveshark.com">grooveshark</a> or <a href="http://www.last.fm/api">last.fm API</a> and you could provide a place where people could enter either a hash tag or a twitter username and start listening to whatever songs are currently or previously tweeted that fit these criteria.</p>
<p>You could furthermore expand it to allow for &#8220;recording&#8221; dj sets. You could use the same hashtag for consecutive tweets and then other&#8217;s could &#8220;replay&#8221; this set by asking for your tweets with that hashtag from the given period. Then really could dj sets could be shared via this new service.</p>
<h4 id="toc-why">Why?</h4>
<p>Because, once again, twitter is where people are, there is currently millions of tweets about what people are listening to (the #nowlistening hashtag has been the <a href="http://whatthetrend.com/trend/%23nowplaying">top twitter trend</a> for quite some time now) and combining this with a music service API would be quite simple.</p>
<h4 id="toc-whats-next">What&#8217;s next?</h4>
<p>Do with this idea whatever you like &#8211; expand, implement, trash or forget. Just remember, that if you use it in anyway make sure to attribute me according to the Creative Commons Attribution 3.0 License, that all these <a href="/blog/365ideas" title="365 Social Ideas from Barklund.org">365 Social Ideas</a> are published under.</p>


<p>Related posts:<ol><li><a href='http://www.barklund.org/blog/2010/01/15/twitter-gaming-mechanic-january-2010-idea/' rel='bookmark' title='Permanent Link: A Twitter Gaming Mechanic &#8211; January 2010 Ideas'>A Twitter Gaming Mechanic &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/01/twitter-follow-organizer-january-2010-idea/' rel='bookmark' title='Permanent Link: Twitter Follow Organizer &#8211; January 2010 Ideas'>Twitter Follow Organizer &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/04/social-subway-january-2010-idea/' rel='bookmark' title='Permanent Link: Social Subway &#8211; January 2010 Ideas'>Social Subway &#8211; January 2010 Ideas</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.barklund.org/blog/2010/01/19/twadio-january-2010-idea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Data &#8211; January 2010 Ideas</title>
		<link>http://www.barklund.org/blog/2010/01/18/open-data-january-2010-idea/</link>
		<comments>http://www.barklund.org/blog/2010/01/18/open-data-january-2010-idea/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 08:00:29 +0000</pubDate>
		<dc:creator>Barklund</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[January 2010 Ideas]]></category>
		<category><![CDATA[Online Rights]]></category>

		<guid isPermaLink="false">http://www.barklund.org/blog/?p=633</guid>
		<description><![CDATA[The eighteenth idea for my 365 social ideas is a social web principle, but it is not new in any way. It is just another voice in the choir of web enthusiasts screaming for open data. However, most people scream at public institutions all over the world to open up their data for their citizens [...]


Related posts:<ol><li><a href='http://www.barklund.org/blog/2010/01/28/turn-content-into-api-january-2010-idea/' rel='bookmark' title='Permanent Link: Turn (Closed) Content Into an API &#8211; January 2010 Ideas'>Turn (Closed) Content Into an API &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/11/coordinate-proxy-january-2010-idea/' rel='bookmark' title='Permanent Link: Coordinate-Proxy &#8211; January 2010 Ideas'>Coordinate-Proxy &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/07/app-idea-store-january-2010-idea/' rel='bookmark' title='Permanent Link: App Idea Store &#8211; January 2010 Ideas'>App Idea Store &#8211; January 2010 Ideas</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>The eighteenth idea for my <a href="/blog/365ideas/" title="365 Social Ideas from Barklund.org">365 social ideas</a> is a social web principle, but it is not new in any way. It is just another voice in the choir of web enthusiasts screaming for open data. However, most people scream at public institutions all over the world to open up their data for their citizens to play around with. I would however like to extend this plea to corporations as well: if you have data, don&#8217;t know what to do with it and are allowed to share it, then please share it. Trust me, you&#8217;ll end up the winner in the long run, eventhough you&#8217;re giving assets away for free.</p>
<p><span id="more-633"></span></p>
<p>I could mention a few companies, that I would know have a lot of information that they aren&#8217;t sharing but have no idea what to do with. Or maybe they have thought of some small thing to do with it but miss out on the great huge possibilities it might contain. One such site is <a href="http://www.endomondo.com/login">Endomondo</a>, a very cool running (or any other moving sport) service for tracking your movement. It will gather information about who&#8217;s running where how fast etc &#8211; live! And they don&#8217;t even use it live &#8211; they only use it (currently) for calculating your distance and given you your previously run/driven routes on a map. I know <a href="http://www.microformats.dk/">a guy</a> or <a href="http://pe.ter.dk">two</a>, who would love to play around with such live data.</p>
<p>Another example is location-based games like the kind of <a href="http://foursquare.com/">foursquare</a> or <a href="http://gowalla.com/">gowalla</a>. I recently read about a larger competitor, who actually currently have more users &#8211; namely <a href="http://www.booyah.com/">mytown</a>. But they I checked it out, they have no open API and you cannot use the data you give them for anything else. And I&#8217;d rather give my location data to someone, who will allow me to re-use this data in any other fun application, that any other company might think of.</p>
<p>There are many many other examples of public and private institutions as well as small and large corporations, who have gathered really interesting data either directly or through crowd-sourcing, but have kept it to themselves. Please, share it &#8211; we will all benefit including yourselves!</p>
<h4 id="toc-why">Why?</h4>
<p>Because even though you might have thousand of employees who might be able to think up great stuff &#8211; the millions of developers world-wide can think up even more.</p>
<h4 id="toc-whats-next">What&#8217;s next?</h4>
<p>Do with this idea whatever you like &#8211; expand, implement, trash or forget. Just remember, that if you use it in anyway make sure to attribute me according to the Creative Commons Attribution 3.0 License, that all these <a href="/blog/365ideas" title="365 Social Ideas from Barklund.org">365 Social Ideas</a> are published under.</p>


<p>Related posts:<ol><li><a href='http://www.barklund.org/blog/2010/01/28/turn-content-into-api-january-2010-idea/' rel='bookmark' title='Permanent Link: Turn (Closed) Content Into an API &#8211; January 2010 Ideas'>Turn (Closed) Content Into an API &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/11/coordinate-proxy-january-2010-idea/' rel='bookmark' title='Permanent Link: Coordinate-Proxy &#8211; January 2010 Ideas'>Coordinate-Proxy &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/07/app-idea-store-january-2010-idea/' rel='bookmark' title='Permanent Link: App Idea Store &#8211; January 2010 Ideas'>App Idea Store &#8211; January 2010 Ideas</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.barklund.org/blog/2010/01/18/open-data-january-2010-idea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Twitter Gaming Mechanic &#8211; January 2010 Ideas</title>
		<link>http://www.barklund.org/blog/2010/01/15/twitter-gaming-mechanic-january-2010-idea/</link>
		<comments>http://www.barklund.org/blog/2010/01/15/twitter-gaming-mechanic-january-2010-idea/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 08:00:42 +0000</pubDate>
		<dc:creator>Barklund</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[January 2010 Ideas]]></category>

		<guid isPermaLink="false">http://www.barklund.org/blog/?p=610</guid>
		<description><![CDATA[The fifteenth idea for my 365 social ideas is about bringing classic games to Twitter in a quite simple, straight-forward way. The same mechanic can be used for simple games like Rock-Paper-Scissor or more complex turn-based board games like Monopoly, Chess or similar. But before actually taking about the idea, I might as well address [...]


Related posts:<ol><li><a href='http://www.barklund.org/blog/2010/01/17/helping-via-gaming-january-2010-idea/' rel='bookmark' title='Permanent Link: Helping via Gaming &#8211; January 2010 Ideas'>Helping via Gaming &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/01/twitter-follow-organizer-january-2010-idea/' rel='bookmark' title='Permanent Link: Twitter Follow Organizer &#8211; January 2010 Ideas'>Twitter Follow Organizer &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/25/facebook-notes-images-competition-january-2010-idea/' rel='bookmark' title='Permanent Link: Facebook Notes and Images for Competition Results &#8211; January 2010 Ideas'>Facebook Notes and Images for Competition Results &#8211; January 2010 Ideas</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>The fifteenth idea for my <a href="/blog/365ideas/" title="365 Social Ideas from Barklund.org">365 social ideas</a> is about bringing classic games to Twitter in a quite simple, straight-forward way. The same mechanic can be used for simple games like Rock-Paper-Scissor or more complex turn-based board games like Monopoly, Chess or similar.</p>
<p><span id="more-610"></span></p>
<p>But before actually taking about the idea, I might as well address the major concern many will respond with: Why even bring it to Twitter? And the short answer is, that is where many people spend a lot of time, so why not? (answering questions with questions is frowned upon, I know). Just like RSS-feeds are a great way of getting the news out and an easy way to follow what happens from small or large publishers, RSS has now been almost completely replaced with Twitter feeds and Facebook page statuses. And in that way, many external non-private interactions will be transferred to where people already are instead of other places, that users must also visit.</p>
<p>The idea is simple, have a central game master, that all participants must follow (to give the game master the possibility to direct message the participants), and then simply start the game by mentioning the game master, the other participants and the type of game. The game master will then mention all participants in return along with a game-specific hashtag, like #chess6f1G. If the game includes some private communications, this will be done in direct messages (like the faces of cards or chosen secret actions), but otherwise it will be done by the participants directly by simply tweeting what they do and add the game-specific hashtag. Every time any player does something, the game master replies with the current status as well as a link to an external site, where the current result/board can be seen.</p>
<p>If the game was Rock-Paper-Scissor for example, the game master starts the next round in a public tweet to all participants, the individual participants direct message the game master with their move, and when all moves are in, the game master announces the result, and then potentially starts the next round for the remaining participants. If the game was chess however, the players would simply tweet their moves publicly, and after each move, that game master will notify the opponent, that it is his move and provide a link to the current board. And if the game was Texas Hold&#8217;em No Limit Poker, the message flow would be different, but related.</p>
<h4 id="toc-why">Why?</h4>
<p>Gaming is always fun, and casual games in which you can excel over your friends with nothing at stake is a popular time-waster on many social networks &#8211; but not on Twitter due to the limited interface possibilities. With the above idea, simple or complex gaming could easily be introduced on twitter.</p>
<h4 id="toc-whats-next">What&#8217;s next?</h4>
<p>Do with this idea whatever you like &#8211; expand, implement, trash or forget. Just remember, that if you use it in anyway make sure to attribute me according to the Creative Commons Attribution 3.0 License, that all these <a href="/blog/365ideas" title="365 Social Ideas from Barklund.org">365 Social Ideas</a> are published under.</p>


<p>Related posts:<ol><li><a href='http://www.barklund.org/blog/2010/01/17/helping-via-gaming-january-2010-idea/' rel='bookmark' title='Permanent Link: Helping via Gaming &#8211; January 2010 Ideas'>Helping via Gaming &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/01/twitter-follow-organizer-january-2010-idea/' rel='bookmark' title='Permanent Link: Twitter Follow Organizer &#8211; January 2010 Ideas'>Twitter Follow Organizer &#8211; January 2010 Ideas</a></li>
<li><a href='http://www.barklund.org/blog/2010/01/25/facebook-notes-images-competition-january-2010-idea/' rel='bookmark' title='Permanent Link: Facebook Notes and Images for Competition Results &#8211; January 2010 Ideas'>Facebook Notes and Images for Competition Results &#8211; January 2010 Ideas</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.barklund.org/blog/2010/01/15/twitter-gaming-mechanic-january-2010-idea/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
