<?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>70's Futurisitic Technology &#187; Mozilla</title>
	<atom:link href="http://ozten.com/psto/category/webdev/mozilla/feed/" rel="self" type="application/rss+xml" />
	<link>http://ozten.com/psto</link>
	<description>Programming focused drivel</description>
	<lastBuildDate>Tue, 20 Jul 2010 20:31: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>Federated Social Web Summit Notes</title>
		<link>http://ozten.com/psto/2010/07/19/federated-social-web-summit-notes/</link>
		<comments>http://ozten.com/psto/2010/07/19/federated-social-web-summit-notes/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 00:11:41 +0000</pubDate>
		<dc:creator>ozten</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[fsws]]></category>

		<guid isPermaLink="false">http://ozten.com/psto/?p=313</guid>
		<description><![CDATA[I attended the Federated Social Web Summit yesterday. I saw some old friends and met lots of new ones.
Here is a quick brain dump of what I caught:
These people

first did a lightening talk about these projects

We then broke out into sessions. Most of my day was dominated by low level discussions of the protocols and [...]]]></description>
			<content:encoded><![CDATA[<p>I attended the Federated Social Web Summit yesterday. I saw some old friends and met lots of new ones.<br />
Here is a quick brain dump of what I caught:<br />
These people<br />
<a href="http://federatedsocialweb.net/wiki/People"><img src="http://ozten.com/wordpress/wp-content/uploads/2010/07/Fsws_people.jpg" alt="Collage of People" title="Fsws_people" width="600" height="413" class="aligncenter size-full wp-image-314" /></a><br />
first did a lightening talk about these projects<br />
<a href="http://federatedsocialweb.net/wiki/Projects"><img src="http://ozten.com/wordpress/wp-content/uploads/2010/07/Fsws_projects_accepted_updated.jpg" alt="Collage of Projects" title="Fsws_projects_accepted_updated" width="617" height="478" class="aligncenter size-full wp-image-315" /></a></p>
<p>We then broke out into sessions. Most of my day was dominated by low level discussions of the protocols and formats that could shape the Federated Social Web. These include:</p>
<ul>
<li><a href="http://code.google.com/p/webfinger/">Webfinger</a></li>
<li><a href="http://code.google.com/p/salmon-protocol/">Salmon</a></li>
<li><a href="http://activitystrea.ms/">ActivityStreams</a></li>
<li><a href="http://code.google.com/p/pubsubhubbub/">PubSubHubub</a></li>
<li><a href="http://portablecontacts.net/">PortableContacts</a></li>
<li><a href="http://microformats.org/">Microformats</a></li>
</ul>
<h2>Salmon FTW, Webfinger WTF</h2>
<p><a href="http://www.flickr.com/photos/aaronpk/4806253252/" title="Federated Social Web Summit Breakout Sessions #fsws by aaronparecki, on Flickr"><img src="http://farm5.static.flickr.com/4116/4806253252_18fc27dc2b.jpg" width="500" height="299" alt="Federated Social Web Summit Breakout Sessions #fsws" /></a><br />
There was a session on private messaging. Blaine Cook proposed a method for subscribing to a feed which contains public and private entries. It used the From HTTP header, Webfinger and a Dialback to authenticate the request.</p>
<p>Next Bret Slatkin proposed a similar technique for sending a private message that used OAuth for authentication, which was much more complicated than <a href="http://federatedsocialweb.net/wiki/Privacy_over_PSHB,_Webfinger,_%26_Salmon">Blaine’s dial-back method</a>.</p>
<p>It turned out that these two ideas were Isomorphic. Then the term isomorphic was used about 20 times in the next 5 minutes. These ideas were seen as generalizations of the Salmon protocol. Speaking of which&#8230; Salmon’s public key crypto requirements were discussed as an impediment to adoption. The protocol has been simplified as much as possible, but many technologies have been doomed to obscurity due to the propeller head nature of properly implementing various schemes properly.</p>
<h2>Account Manager and Contacts in Firefox</h2>
<p>Dan Mills ran a session to ask “How can we change the client to make federation easier?&#8221;. There are some <a href="http://federatedsocialweb.net/wiki/Change_the_client_to_get_what_we_want">great notes</a>. It seems like Michael Hanson’s XPrefs concept is needed to avoid a centralized broker like <a href="http://xauth.org/spec/">XAuth</a>. Currently if you log into <a href="http://identi.ca">Identi.ca</a> and visit <a href="http://mozilla.status.net/paulbooker">Mozilla’s StatusNet</a> node and you want to follow Paul Booker, you have to type in your identi.ca url as it can’t discover that your logged in to a valid <a href="http://ostatus.org/">OStatus</a> node due to the same origin policy.</p>
<p>The importance of interoperability testing was discussed. I watched Evan Prodromou work with Diaspora team and I expect to see lots of work between Appleseed, Crabgrass, and other systems working together over these decentralized protocols. </p>
<p><strong>Update:</strong> &#8211; The standard test we&#8217;ll work towards passing by Sept 30th is <a href="http://federatedsocialweb.net/wiki/FSWS2010_Next_Meeting_and_FSWS2011#Notes">SWATv0</a>.</p>
<p>This meeting was in Portland&#8230; check out the photos below for your Portland moment of zen&#8230;</p>
<p><object width="400" height="300"><param name="flashvars" value="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fozten%2Ftags%2Ffsws10%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fozten%2Ftags%2Ffsws10%2F&#038;user_id=30663385@N00&#038;tags=fsws10&#038;jump_to=&#038;start_index="></param><param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=71649"></param><param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/slideshow/show.swf?v=71649" allowFullScreen="true" flashvars="offsite=true&#038;lang=en-us&#038;page_show_url=%2Fphotos%2Fozten%2Ftags%2Ffsws10%2Fshow%2F&#038;page_show_back_url=%2Fphotos%2Fozten%2Ftags%2Ffsws10%2F&#038;user_id=30663385@N00&#038;tags=fsws10&#038;jump_to=&#038;start_index=" width="400" height="300"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://ozten.com/psto/2010/07/19/federated-social-web-summit-notes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>You Might Be a Mozillian if&#8230;</title>
		<link>http://ozten.com/psto/2010/07/12/you-might-be-a-mozillian-if/</link>
		<comments>http://ozten.com/psto/2010/07/12/you-might-be-a-mozillian-if/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 19:20:05 +0000</pubDate>
		<dc:creator>ozten</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[moz10]]></category>

		<guid isPermaLink="false">http://ozten.com/psto/?p=285</guid>
		<description><![CDATA[Many people who are members of the Mozilla community, don&#8217;t give themselves permission to affiliate or consider themselves Mozillians. There was a lot of good conversations around Membership at the Mozilla Summit.
If you do any of the following&#8230; you should consider yourself a member of the Mozilla Community:

You&#8217;re passionate about a Mozilla project
You suggest to [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://ozten.com/wordpress/wp-content/uploads/2010/07/mozilla_community_logo_100.png" alt="mozilla community logo" title="mozilla community logo" width="100" height="69" class="alignleft size-full wp-image-301" style="margin: auto 10px 10px auto" />Many people who are members of the Mozilla community, don&#8217;t give themselves permission to affiliate or consider themselves Mozillians. There was a lot of good conversations around Membership at the Mozilla Summit.
<p style="clear: left">If you do any of the following&#8230; you should consider yourself a member of the Mozilla Community:</p>
<ul>
<li>You&#8217;re passionate about a Mozilla project</li>
<li>You suggest to others that they try a Mozilla product</li>
<li>You&#8217;ve advocated on behalf of user control for privacy, data, and code</li>
<li>You&#8217;ve explained why the Open Web is superior to proprietary technologies</li>
<li>You help <a href="https://support.mozilla.com/en-US/kb/Providing+forum+support">answer support questions</a></li>
<li>You promote new releases of Mozilla products via Twitter or Identica</li>
<li>You&#8217;ve uploaded artwork to the Mozilla <a href="http://creative.mozilla.org/">Creative Collective</a></li>
<li>You&#8217;ve entered a <a href="http://design-challenge.mozillalabs.com/">Design</a>, Jetpack, or other Challenge</li>
<li>You participate in a <a href="http://drumbeat.org/">Mozilla Drumbeat</a> project</li>
<li>You install Firefox onto School computers</li>
<li>You wear <a href="http://www.mozilla.org/foundation/openwebfund/">Mozilla t-shirts</a> and discuss these ideas with your friends and family</li>
<li>and many more</li>
</ul>
<p>You don&#8217;t have to be a hardcore C++ programmer to be a Mozillian. <strong>Teachers, bloggers, and internet enthusiasts</strong> are part of the Mozilla Community also! It took me a long time to realize this personally. Let&#8217;s help the next group of community members realize it sooner.</p>
]]></content:encoded>
			<wfw:commentRss>http://ozten.com/psto/2010/07/12/you-might-be-a-mozillian-if/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>sudoSocial Science Fair Notes</title>
		<link>http://ozten.com/psto/2010/07/12/sudosocial-science-fair-notes/</link>
		<comments>http://ozten.com/psto/2010/07/12/sudosocial-science-fair-notes/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 18:12:17 +0000</pubDate>
		<dc:creator>ozten</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[sudoSocial]]></category>
		<category><![CDATA[fair]]></category>
		<category><![CDATA[moz10]]></category>
		<category><![CDATA[science]]></category>

		<guid isPermaLink="false">http://ozten.com/psto/?p=287</guid>
		<description><![CDATA[I got some great feedback during Thursday&#8217;s Science Fair. Apologies in advance if I missed mentioning your name and feedback, some of my notes were a little illegible. Please leave a comment to capture your thoughts.

The terminology &#8220;Stream&#8221; is no good and confuses everyone. Describing the project as a stream editing and publishing platform is [...]]]></description>
			<content:encoded><![CDATA[<p>I got some great feedback during Thursday&#8217;s Science Fair. Apologies in advance if I missed mentioning your name and feedback, some of my notes were a little illegible. Please leave a comment to capture your thoughts.</p>
<p><a href="http://www.flickr.com/photos/freeed/4783681428/" title="Ozten explaining sudoSocial by Fred​, on Flickr"><img src="http://farm5.static.flickr.com/4143/4783681428_0aafbcc3f2.jpg" width="500" height="333" alt="Ozten explaining sudoSocial"></a></p>
<p>The terminology &#8220;Stream&#8221; is no good and confuses everyone. Describing the project as a stream editing and publishing platform is a non-starter. More work needed here.</p>
<p>On the other hand, people would get excited about specific use cases such as a Mozilla profile page or research topic page. </p>
<p>Luis Villa was excited about the possibilities of giving people control over their online identity.</p>
<p><abbr title="Zachary Weinberg">zwol</abbr> had some ideas around deployment from version control systems instead of tarballs to help user&#8217;s keep their installs patched.</p>
<p>Guillermo Movia thought that sudoSocial was just like <a href="http://www.feedly.com/">Feedly</a> and that he should be able to search content for items. I really enjoyed Guillermo&#8217;s lightening talk and thought his graphitti Add-on idea is in a very similar spirit to sudoSocial&#8230; which is to get more Designers involved with creating the web.</p>
<p>Ryan Snyder liked the idea of owning your own data and suggested pushing the project towards the direction Tantek Çelik has gone with his blogging engine.</p>
<p>Anant Narayanan had a cool idea for people to create FamilyStreams by linking together sources from various family members, so they could keep in touch.</p>
<p>Lucas Adamski responded to the idea that sudoSocial is a middle ground towards MySpace and liked the idea that people can completely control the look and feel of their profile.</p>
<p>Atul Varma visited for awhile (which is an honor) and we did a bunch of brainstorming. We talked about how his &#8220;daily edition&#8221; tool could be re-built on a platform like sudoSocial. He brought up Howard Reingold&#8217;s work around having non-programmer students use Yahoo Pipes to create radars and dashboards. He championed the idea of pushing client side elements into sudoSocial to increase hackability. We discussed his Tweetblog experiment.</p>
<p>A common theme was that <a href="http://groups.google.com/group/mozilla-labs-sudosocial/browse_thread/thread/2bb964af28c46755">the name sucks</a>. Join in and help name it. A related issue is that I&#8217;ve learned that it&#8217;s much better to talk about concrete use cases before talking about building a platform.</p>
<p>I wonder if the introduction shouldn&#8217;t focus on very specific ideas:</p>
<ul>
<li>A Mozilla profile page that you control</li>
<li>A Homepage Elixir (drop in replacement for homepages)</li>
<li>etc</li>
</ul>
<p>The science fair hosted several other Drumbeat projects and it was a good chance to discuss <a href="http://www.drumbeat.org/project/sudosocial">the Drumbeat model</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ozten.com/psto/2010/07/12/sudosocial-science-fair-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sudoSocial 0.4 Let&#8217;s build some themes</title>
		<link>http://ozten.com/psto/2010/06/30/sudosocial-0-4-lets-build-some-themes/</link>
		<comments>http://ozten.com/psto/2010/06/30/sudosocial-0-4-lets-build-some-themes/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 16:11:51 +0000</pubDate>
		<dc:creator>ozten</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[sudoSocial]]></category>

		<guid isPermaLink="false">http://ozten.com/psto/?p=277</guid>
		<description><![CDATA[This is a call for you to create some interesting themes using sudoSocial.
Many users have started customizing their CSS. Two people I wanted to highlight are Turmel Antoine and Charlie November, who have created some pretty cool themage.


To make customizing your HomeStream easier, there is a new release of
sudoSocial. This 0.4 release brings a new [...]]]></description>
			<content:encoded><![CDATA[<p>This is a call for you to create some interesting themes using sudoSocial.</p>
<p>Many users have started customizing their CSS. Two people I wanted to highlight are <a href="http://sudosocial.me/u/geekshadow">Turmel Antoine</a> and <a href="http://sudosocial.me/u/charlienovember">Charlie November</a>, who have created some pretty cool themage.</p>
<p><a href="http://sudosocial.me/u/geekshadow" title="Geekshadow's Home stream on sudoSocial"><img src="http://farm2.static.flickr.com/1279/4677994100_42e76cb473.jpg" width="500" height="265" alt="Geekshadow's Home stream on sudoSocial" /></a></p>
<p><a href="http://sudosocial.me/u/charlienovember" title="Charlienovember's Home stream on sudoSocial"><img src="http://farm5.static.flickr.com/4041/4677360885_289e161f9f.jpg" width="500" height="368" alt="Charlienovember's Home stream on sudoSocial" /></a></p>
<p>To make customizing your <a href="https://sudosocial.me/auth">HomeStream</a> easier, there is a new release of<br />
<strong><code>sudo</code>Social</strong>. This 0.4 release brings a new tab in the editor<br />
called &#8220;Page Widgets&#8221;. Here you can:</p>
<ul>
<li>Add HTML or Text around your profile</li>
<li>Add HTML or Text around your stream</li>
<li>Show/Hide the profile blurb</li>
<li>Show/Hide the &#8220;Follow Me on the Web&#8221; list of links</li>
</ul>
<p>Another change is that you can edit CSS directly from the &#8220;Design&#8221; Tab.</p>
<p>So let&#8217;s keep hacking on customized themes and sharing CSS/JavaScript with each other.<br />
<strong>We&#8217;ll take the best themes and make them part of sudoSocial for non-technical users</strong>, kind<br />
of like Personas for your sudoSocial stream.</p>
<p>Discuss themes and more in the <a href="http://groups.google.com/group/mozilla-labs-sudosocial">Mozilla Labs sudoSocial discussion group</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ozten.com/psto/2010/06/30/sudosocial-0-4-lets-build-some-themes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>4 Apps that are similar to sudoSocial</title>
		<link>http://ozten.com/psto/2010/05/23/4-apps-that-are-similar-to-sudosocial/</link>
		<comments>http://ozten.com/psto/2010/05/23/4-apps-that-are-similar-to-sudosocial/#comments</comments>
		<pubDate>Sun, 23 May 2010 17:24:36 +0000</pubDate>
		<dc:creator>ozten</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[sudoSocial]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[patchouli]]></category>

		<guid isPermaLink="false">http://ozten.com/psto/?p=210</guid>
		<description><![CDATA[Streams are so pervasive and so slippery, it&#8217;s easy to think that our goal in building sudoSocial is to build an &#8220;X&#8221; Killer.
Here are 4 applications that we&#8217;re not setting out to build:
A FriendFeed Killer
Cliqset, Jaiku, Google Buzz, Sweetcron, Pubwich, and other lifestreaming socialnetworks are pretty dope and I&#8217;ve followed this space for several years. [...]]]></description>
			<content:encoded><![CDATA[<p>Streams are so pervasive and so slippery, it&#8217;s easy to think that our goal in building <a href="http://sudosocial.me"><strong><code>sudo</code>Social</strong></a> is to build an &#8220;X&#8221; Killer.</p>
<p>Here are 4 applications that we&#8217;re not setting out to build:</p>
<h2>A FriendFeed Killer</h2>
<p><a href="http://cliqset.com/">Cliqset</a>, Jaiku, <a href="http://gmail.com">Google Buzz</a>, Sweetcron, <a href="http://pubwich.org/">Pubwich</a>, and other lifestreaming socialnetworks are pretty dope and I&#8217;ve <a href="http://lifestreamblog.com/">followed this space</a> for several years. I use them. I love them. But, it is possible none of these applications will ever achieve <a href="http://lifestream.aol.com/">mainstream adoption</a>, because they are hyper geeky. (That&#8217;s okay, it&#8217;s fun to live in the future).</p>
<p>Facebook&#8217;s &#8220;news&#8221; feature is a lifestreaming service for mainstream audiences. And they are killing it [sic].</p>
<h3>Okay, kinda</h3>
<p>I want to see more self-hosted lifestreams. I want to see them heavily customized by look and feel, through backend code, etc. I think that lifestreams could be the <strong>QBasic of the iPad generation</strong>. </p>
<h2>A Facebook Killer</h2>
<p>There is a lot of energy around creating a massive new suite of de-centralized, but integrated apps to replace Facebook. Candidates include:</p>
<ul>
<li><a href="http://joindiaspora.com/">Dispora</a></li>
<li><a href="http://elgg.org">Elgg.org</a></li>
<li><a href="http://noserub.com/">Noserub</a></li>
<li><a href="http://appleseed.sourceforge.net/">Appleseed</a></li>
</ul>
<p>I&#8217;d put established projects like <a href="http://status.net">Status.net</a> and <a href="http://drupal.org">Drupal</a> on the short list of hopefuls. This is a very exciting space, but <strong><code>sudo</code>Social</strong> is from the unix tradition of small tools that do one thing extremely well.</p>
<h3>Okay, kinda</h3>
<p>I think we have to chip away at de-centralizing the web (Facebook Like buttons arggh).</p>
<p>Once decentralized socialnetworking standards are baked, <strong><code>sudo</code>Social</strong> simply has to honor and champion them. </p>
<p>0.1 supports OpenID and I&#8217;m looking forward to <a href="http://www.salmon-protocol.org/">Salmon</a>, <a href="http://xauth.org/">XAuth</a> or other cross application protocols for solving the Commenting and Liking problems.</p>
<p>If I could harness <a href="http://www.nytimes.com/2010/05/12/nyregion/12about.html">the energy around the Dispora project</a>, I&#8217;d channel it into creating new social networking protocols for strengthening the OpenWeb.</p>
<h2>A Google Reader Killer</h2>
<p>Content aggregation is pervasive. Feed readers were the first killer app for syndicated website content. We are not trying to build one of these guys.<br />
The cutting edge here is things like <a href="http://www.feedly.com/">Feedly</a> or <a href="http://twittertim.es/ozten">TwitterTim.es</a> which try to cut down on information overload. It&#8217;s done via metadata and algorithms to determine which entries should rise above the noise.</p>
<h3>Okay, kinda</h3>
<p>With the <strong><code>sudo</code>Social</strong> platform, it should be possible to create something like <a href="http://hg.toolness.com/daily-edition">Atul&#8217;s daily edition</a>, which is a private stream of <strong>must read entries</strong>. </p>
<h2>Classic Lifestream Killer</h2>
<p>I guess you can&#8217;t have a &#8220;Classic Lifestream Killer&#8221;, since that category has never had a 800 lbs gorilla. I&#8217;m talking about the Freeman/Gelernter style <a href="http://cs-www.cs.yale.edu/homes/freeman/lifestreams.html">lifestreaming application</a>, something like <a href="http://research.microsoft.com/en-us/projects/mylifebits/">MylifeBits</a>. It would organize repositories of your entire digital life. Not tryin&#8217;a build it.</p>
<h3>Okay, kinda</h3>
<p>You will (eventually) be able to bulk import and export your data from sudoSocial, so this might be a good net to start fishing for your lifestream with.</p>
<h2>Why not?</h2>
<p>Each of these 4 applications are a massive pile of work. To deliver a polished and usable product they are millions of person hours to build from scratch.</p>
<p>I&#8217;ve asked myself&#8230; What is a reasonably sized community project that could create a tool that doesn&#8217;t already exist? </p>
<p>We&#8217;ve got some amazing Free/Open Source web applications. I think a missing piece is a mainstream publishing platform for streams, which allow you to curate content from across the web. It&#8217;s a tool that would compliment a webstack built out of <a href="http://wordpress.com/">Wordpress</a> + <a href="http://disqus.com/">Disqus</a> + <a href="http://plone.org/">Plone</a>, etc.</p>
<p>What are the goals that shape this project?</p>
<ul>
<li>Promote the <a href="https://www.drumbeat.org/">OpenWeb</a></li>
<li>Empower Individual to curate and publish their streams</li>
<li>Promote awareness of privacy issues</li>
<li>Explore how to do Free/Open Source cloud computing</li>
<li>Expand the diversity of the <a href="http://www.mozilla.org/about/mission.html">Mozilla Community</a></li>
</ul>
<p>Wow, that is kind of a mouth full. Ya, trying to keep it small and simple.</p>
<h2>Hey, But we should really build X!</h2>
<p>This is what <strong><code>sudo</code>Social</strong> means to me, but I can&#8217;t do anything without your help. What strikes you fancy? Where do you want to take it next?</p>
]]></content:encoded>
			<wfw:commentRss>http://ozten.com/psto/2010/05/23/4-apps-that-are-similar-to-sudosocial/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Checkout sudoSocial.me a new stream editor</title>
		<link>http://ozten.com/psto/2010/05/23/checkout-sudosocial-me-a-new-stream-editor/</link>
		<comments>http://ozten.com/psto/2010/05/23/checkout-sudosocial-me-a-new-stream-editor/#comments</comments>
		<pubDate>Sun, 23 May 2010 16:35:58 +0000</pubDate>
		<dc:creator>ozten</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[research]]></category>

		<guid isPermaLink="false">http://ozten.com/psto/?p=249</guid>
		<description><![CDATA[I&#8217;ve been working on a web application for hosting your profile page/homepage. You put RSS or Atom feed links in and it will pull together the content into a stream.
You can easily customize the CSS or JavaScript in the page. I also include Processing.js to help make the homepage hackable and easy to pimp out.
The [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/ozten/4631876711/" title="sudoSocial HomeStream by oztenphoto, on Flickr"><img src="http://farm4.static.flickr.com/3394/4631876711_1bb9479e9a_m.jpg" width="240" height="147" alt="sudoSocial HomeStream" style="float: right" /></a>I&#8217;ve been working on a web application for hosting your profile page/homepage. You put RSS or Atom feed links in and it will pull together the content into a stream.</p>
<p>You can easily customize the CSS or JavaScript in the page. I also include <a href="http://processingjs.org/">Processing.js</a> to help make the homepage hackable and easy to pimp out.</p>
<p>The name of the project is <strong><code>sudo</code>Social</strong>. It&#8217;s a play on two words:</p>
<ul>
<li><a href="http://www.urbandictionary.com/define.php?term=Sudo">sudo</a> &#8211; Giving you control of your social identity</li>
<li>psuedo &#8211; a fake social networking site, counterfeit</li>
</ul>
<p>Enough with the intro, check it out:</p>
<ul>
<li><a href="http://sudosocial.me/u/pattyokdemo">Patty O&#8217;s</a> homestream on sudoSocial.me</li>
<li>&#8220;MySpace Fugly&#8221; example of a customized and <a href="http://ozten.com/index-demo.html">embeded homestream</a></li>
<li><a href="https://sudosocial.me/auth">Log in and publish</a> your own stream</li>
</ul>
<p>This is the very first release, so it&#8217;s buggy and incomplete. The ultimate goal is to build a stream editing and publishing tool.<br />
<a href="http://www.flickr.com/photos/ozten/4631843747/" title="sudoSocial Stream Editor by oztenphoto, on Flickr"><img src="http://farm4.static.flickr.com/3386/4631843747_2c4ae0afcf.jpg" width="337" height="500" alt="sudoSocial Stream Editor" /></a></p>
<h2>Let&#8217;s Do This</h2>
<p>I&#8217;d love your help and feedback!<br />
I&#8217;m <a href="http://twitter.com/ozten">ozten</a> on Twitter and <a href="http://identi.ca/ozten">Identi.ca</a> so message me there.</p>
<h3>How can I play?</h3>
<p><strong>Designers</strong> &#8211; The Design Tab of the editor lets you change the CSS url. Copy the default style and start tweaking. Upload your designs to your personal website and then plug them in.<br />
<strong>Artists</strong> &#8211; Their is a Process.js textarea. Paste your Processing code into the box.<br />
<strong>JavaScript hackers</strong> &#8211; The Design Tab also lets you change the JS url.<br />
<strong>Application hackers</strong> <a href="http://github.com/ozten/sudosocial">The code</a> uses the standard <a href="http://www.mozilla.org/MPL/">Mozilla tri-license</a>.<br />
If you want to hack on the project without setting up the environment, I&#8217;ve created a <a href="http://www.virtualbox.org/wiki/Downloads">VirtualBox Appliance</a> which is up and running the code. Download <a href="http://sudosocial.me/torrents/torrents/sudosocial_0.1.zip.torrent">via Torrent</a> (1Gb) and run it inside of VirtualBox.</p>
]]></content:encoded>
			<wfw:commentRss>http://ozten.com/psto/2010/05/23/checkout-sudosocial-me-a-new-stream-editor/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>SXSW First Timer Take-Aways</title>
		<link>http://ozten.com/psto/2010/03/23/sxsw-first-timer-take-aways/</link>
		<comments>http://ozten.com/psto/2010/03/23/sxsw-first-timer-take-aways/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 04:00:42 +0000</pubDate>
		<dc:creator>ozten</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[SeFuSo]]></category>
		<category><![CDATA[SXSW]]></category>

		<guid isPermaLink="false">http://ozten.com/psto/?p=165</guid>
		<description><![CDATA[tl;dr
I&#8217;m back from my first time trip to Austin Tx and SXSW Interactive.
My friend Jeremy Britton from Zurb Interactive inspired me to write up a post on the week. He also told me my cold is SXSW Sars.
Activity Streams Meetup
A highlight for me was the Activity Streams meetup. It filled a huge gap in my [...]]]></description>
			<content:encoded><![CDATA[<h3>tl;dr</h3>
<p>I&#8217;m back from my first time trip to Austin Tx and SXSW Interactive.</p>
<p>My friend <a href="https://twitter.com/jebritton">Jeremy Britton</a> from <a href="http://www.zurb.com/">Zurb Interactive</a> inspired me to write up a post on the week. He also told me my cold is SXSW Sars.</p>
<h3>Activity Streams Meetup</h3>
<p>A highlight for me was the Activity Streams meetup. It filled a huge gap in my research when Chris Messina talked about Activity Theory in <a href="http://www.slideshare.net/factoryjoe/activitystreams-is-it-getting-streamy-in-here">Is it getting Streamy in Here</a>. <a href="http://twitter.com/ToddBarnard">Todd Barnard</a> brought a first edition copy of Yrjö Engeström&#8217;s tomb to the meet-up. <a href="http://krynsky.com/">Mark Krynsky</a> introduced me to <a href="http://www.zengestrom.com/">Jyri Engeström</a> and I felt like quite a <strong>dolt</strong> for not knowing this history. I&#8217;ve grabbed a copy of <a href="http://www.amazon.com/gp/product/0262513315?ie=UTF8&#038;tag=ozten-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0262513315">Acting with Technology: Activity Theory and Interaction Design</a> and I&#8217;ll read it during my trip to Turkey.</p>
<h3>Mozilla SXSW Happy Hour Party</h3>
<p><a href="http://www.flickr.com/photos/king-molan/4432477930/in/set-72157623470880899"><img src="http://farm5.static.flickr.com/4015/4432477930_a85d7b5fcc_m.jpg" width="240" height="180" align="right" /></a>Another highlight was <a href="http://www.wired.com/underwire/2010/03/sxsw-2010-photos-saturday/">the Mozilla Party</a>. Unlike your typical cave dwelling hacker&#8230; I actually like some marketing activities and had a blast meeting people and handing out <a href="http://rockyourfirefox.com">Rock Your Firefox</a> t-shirts. The Jetpack for Learning Design Challenge was judged and it was great to meet the hackers. <a href="http://brian.kingsonline.net/talk/">Brian</a> and I finally met face to face and battled for our surname.</p>
<p>Speaking of hackability&#8230;</p>
<h3>Webhooks / View Source Has A Posse</h3>
<p>Jeff Lindsay gave a great talk about how and why you should <a href="http://www.slideshare.net/progrium/sxsw-evented-web">integrate Webhooks into your web applications</a>. This talk, in true SaturdayHouse fashion, was a jam session that covered all sorts of crazy topics. Some of the best ideas involved <strong>enabling the next gen programmers</strong>. Where will the <code>BASIC</code> of our next gen be? </p>
<p>It could be the web, because <a href="http://my.sxsw.com/events/event/5005">View Source Has A Posse</a>. This was a great discussion on how 90% of internet programmers learned by tinkering. Copy and paste, although a crude first step, is a massively enabling technology. Focusing on performance and programming in the large really threatens the View Source culture. View Source tools need to catch up to deployment tools or we&#8217;ll end up with:</p>
<blockquote><p>It&#8217;s like you open the hood of your car and there is another hood under there to open.</p></blockquote>
<p> The talk was lubricated by Tequila. If any panel members agreed, they had to drink!</p>
<h3>Networking while Rome is burning</h3>
<p><a href="http://www.flickr.com/photos/wigfur/4446996236/" title="Unicorns like the beer. by Patty OK, on Flickr"><img src="http://farm5.static.flickr.com/4018/4446996236_ea0185438f_m.jpg" width="240" height="180" alt="Unicorns like the beer." align="left" /></a> Okay, I&#8217;m a big nerd and went to almost every 9:30am session and consumed talks through 5pm. I talked to dozens and dozens of people who <i>caught one or two sessions a day</i>. Hmm. Weird. I&#8217;d skips sessions for BOF and open space style sessions, but 1 or 2 session? I think I&#8217;m doing it wrong or SXSW is mostly about getting hammered. I&#8217;d rather go to a resort town for that kind of flow. Why be surrounded by marketers and 20k other people in Downtown Austin?</p>
<p>Don&#8217;t get me wrong, I&#8217;m no tea-tottler and had plenty of Shiner Bock, Austin Amber, and Karaoke till 3am Saturday night&#8230; I just still got my learn on most of the week.</p>
<p>This partying is a metaphor for our lack of focusing on what really matters.</p>
<p>Bruce Sterling had a great quote for SXSW. While there is global warming, a financial crisis, and other serious problems to tackle&#8230; we&#8217;re all walking around with iPhones and networking while Rome burns. A great and classic talk by Sterling, very witty and insightful.</p>
<h3>Shiny, Shiny Add Privacy and Security Later</h3>
<p>Sterling warned us of the future&#8230; where we live in the future we&#8217;ve built. ouch. The youth aren&#8217;t makers and don&#8217;t know what it was like, before we tore down the walls of the old world. They will whine, they will tear us down, and we&#8217;ll have to help them move forward without being bitter and grumpy. Ugh, <i>sounds like fun</i>.</p>
<p>He cautions that a world build out of small pieces loosely join will have plenty of rattling bones and bugs.</p>
<p>This was a minor but important theme through my SXSW. Jaron Lanier is both one of us (contemporary technologist) and one of these future whipper snappers, due to accidents of history. He gave a great talk explaining his ideas behind <a href="http://www.amazon.com/gp/product/0307269647?ie=UTF8&#038;tag=ozten-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0307269647">You Are Not a Gadget</a>. The talk was good, because it wasn&#8217;t easy to listen to. I got really angry a couple of times and thought&#8230; my god this guy doesn&#8217;t understand anything about computers. Sadly he knows more than I ever will, but he&#8217;s also able to step outside of our status quo and try to keep pushing the ideals of Ted Nelson and to make sure Artists are getting paid and have a place in society. Extremely tough questions and problems.</p>
<p><a href="http://www.flickr.com/photos/wigfur/4448151471/" title="Jaron Lanier by Patty OK, on Flickr"><img src="http://farm5.static.flickr.com/4001/4448151471_299d080a65_m.jpg" width="240" height="135" alt="Jaron Lanier" align="left" /></a>Something that resonated in Lanier&#8217;s talk was that our software isn&#8217;t very social and that it&#8217;s incredible hard to <a href="http://www.nowtoronto.com/daily/story.cfm?content=174061"> be a teen in the Facebook world</a>. There&#8217;s no space to reinvent yourself while you already crystallized into a profile page and defending your position in the pecking order.</p>
<p><a href="http://www.flickr.com/photos/ozten/4440537881/" title="Sketchmoters Dana Boyd by oztenphoto, on Flickr"><img src="http://farm3.static.flickr.com/2768/4440537881_2ec0e5edf6_m.jpg" width="240" height="135" alt="Sketchmoters Dana Boyd" align="right" /></a>Which leads into another challenger to blind technologists&#8230; <a href="http://www.danah.org/papers/talks/2010/SXSW2010.html">Dana Boyd&#8217;s keynote</a> was excellent. She talked about real world privacy gaffes and the underlying theory of why this happens. She pointed out that when implementing software, privacy isn&#8217;t a <i>set it and forget it</i> feature. We have to constantly pay attention to social norms, the interaction of all software features, and the nuances of the data we are exposing. A great example &#8211; making something that is public <strong>more public</strong> can be a violation of privacy was such a powerful reality check for me.</p>
<p>SXSW, and our larger tech world, is technologists running as fast as they can after the new shiny. That is what we do. We&#8217;ll add the privacy and security features on later&#8230; along with the business model. <a href="http://gowalla.com/">Gowalla</a> and Four Square were buzzed to be the most important ideas at SXSW. Let&#8217;s chase the geolocation shiny&#8230;</p>
<p>Why are we letting 3rd parties collect this data? What is the long term value? For whom? Who do they share it with? For how long?</p>
<h3>Context, Filtering and Search</h3>
<p>I&#8217;m starting to get older. Doh. Now I see the patterns. Chasing the shiny leads to market leaders who flip their startups for big cash. Then these market leaders product will eventually get commoditized or won&#8217;t exist because they were built on short term value and there is no reason for them to exist. If we don&#8217;t focus on building real services with real long term value. So how could these location check-in&#8217;s be of short term value? Advertising, Johnson, <strong>Advertising</strong>.</p>
<p>The <a href="http://my.sxsw.com/e/583">Making content relevant to me</a> session had the best panel. Some key ideas:</p>
<ul>
<li><a href="http://hunch.com">Hunch.com</a> has correlated whether someone likes iceberg lettuce with whether they are Republicans or not and it holds for a surprising number of people</li>
<li>They know if you&#8217;d switch from a PC to a Mac, based on if you&#8217;d like to dance</li>
<li>Douglas Merrill talked about how hard it is to anonymize a dataset, as the <a href="http://userweb.cs.utexas.edu/~shmat/netflix-faq.html">Netflix prise dataset was de-anonymised</a></li>
<li>Companies are sharing these datasets as Recommendation engines become SaaS</li>
<li>Every search you make on Google is <a href="http://pattyryan.tumblr.com/post/450169096/making-content-relevant-to-me-sxsw">targeted via 200 axis</a> so the ads will be relevant to you. Turns out geo data is much richer than cookies and HTTP referrers.</li>
</ul>
<p>Also Sam Altman from the <a href="http://my.sxsw.com/e/583">The Life Graph</a> session stated that given 2 or 3 days of Four Square check-ins, you can identify someone with 90% accuracy, because the fingerprint of where people live and work is pretty unique.</p>
<p>I used Gowalla all week and am no Luddite. But we should pause and reflect&#8230; We&#8217;re building some amazing shiny tools, but to what end?</p>
<h3>Synthesis</h3>
<p>Lots of other sessions worth mentioning, but I&#8217;ll leave off with some ideas.</p>
<p><a href="http://www.flickr.com/photos/ozten/4439300186/" title="Devo the internet and you by oztenphoto, on Flickr"><img src="http://farm5.static.flickr.com/4051/4439300186_16073e80be_m.jpg" width="240" height="135" alt="Devo the internet and you" /></a></p>
<p>DEVO&#8217;s session was Ironic and revealing. They are devolved genius, so I&#8217;d expect no less. They are using all of these advanced marketing technologies to create their next album.</p>
<p>Lots of Open Web sessions. The open web is winning. We web developers missed the boat on the iPhone (before the native SDK) and we better get ready to throw down some View Source on the iPad. We&#8217;ve got to keep pushing for better tools and keep choosing open platforms over sterile ones. Why doesn&#8217;t the next Adobe Flash CS target HTML5? I meet a lot of potential customers.</p>
<p>Social Networks without SocialObjects are missing the point. Our SocialGraphs are an artifact, not the means to an end. We need to pay attention during every step of building something. We should be mining Sociology to build better social software instead of mining machine learning to build better advertising machines. To end with another Sterling quote: <strong>You should&#8217;ve open sourced food and shelter first!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://ozten.com/psto/2010/03/23/sxsw-first-timer-take-aways/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Teaching HTML with Hypertext Fiction</title>
		<link>http://ozten.com/psto/2009/10/04/teaching-html-with-hypertext-fiction/</link>
		<comments>http://ozten.com/psto/2009/10/04/teaching-html-with-hypertext-fiction/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 22:42:05 +0000</pubDate>
		<dc:creator>ozten</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[826Seattle]]></category>
		<category><![CDATA[HypertextFiction]]></category>

		<guid isPermaLink="false">http://ozten.com/psto/?p=135</guid>
		<description><![CDATA[Continuing a project I worked on during Mozilla Service Week, I&#8217;ve been working on my curriculum for a workshop I will be teaching in Nov for the first time. The class is called Where the Wild Things Could Be&#8230; and will be through the 826 Seattle writing workshop. It will have about 8 students that [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing a project I worked on during <a href="http://mozillaservice.org">Mozilla Service Week</a>, I&#8217;ve been working on <a href="http://docs.google.com/View?id=d4pgw7p_8crvqggfw">my curriculum</a> for a workshop I will be teaching in Nov for the first time. The class is called <strong>Where the Wild Things Could Be</strong>&#8230; and will be through the <a href="http://www.826seattle.org/">826 Seattle writing workshop</a>. It will have about 8 students that are 11-14 years old.</p>
<p><a title="Working on Hypertext Fiction Fun by oztenphoto, on Flickr" href="http://www.flickr.com/photos/ozten/3981144867/"><img style="float:right; border: none; margin-left: 0.7em" src="http://farm4.static.flickr.com/3467/3981144867_70998e199a_m.jpg" alt="Working on Hypertext Fiction Fun" width="180" height="240" /></a>The goal is to teach HTML. Hypertext Fiction, like the Choose Your Own Adventure book series, is a narrative with multiple story paths and endings. The web is a natural medium for this type of story. I&#8217;m hoping that teaching kids how to write hypertext fiction is a natural way to teach them how to create HTML.</p>
<p>A major impediment to learning the basics of HTML is all the web publishing cruft:</p>
<ul>
<li>Text editors</li>
<li>Files</li>
<li>FTP</li>
<li>Hostnames and Hosting</li>
</ul>
<p>All of this crap is an accident of history and seems like a big stumbling block, before you get to the juicy stuff of HTML, CSS, and JavaScript.</p>
<p>The approach I&#8217;m taking is to create a web application that paves over these four problems. The student will have create a short page name and then get an edit box. This gives them a body tag and let&#8217;s them create from there. Saving the page publishes it. Linking involves using the &#8220;short page name&#8221; of another page in your HTML code.</p>
<p>This workshop is only 2 hours, so I will focus on teaching hypertext fiction basics and the following HTML tags: A, P, UL, and LI. Students will use Sticky Notes and a whiteboard to coordinate the story and page flow.</p>
<p>I&#8217;ve looked around a little for a web application, but nothing is perfect, so I&#8217;ll probably write my own. <a href="http://www.rollyourownhypertext.com/about">R.Y.O.H</a> is a clever new project, but doesn&#8217;t allow HTML coding and it&#8217;s quite a bit different than my wireframes. Wordpress is too distracting. Wikimedia is close but doesn&#8217;t allow HTML and I don&#8217;t want to just teach wiki markup. Do you know of a good hypertext fiction web tool?</p>
<p>I&#8217;m creating the <a href="http://docs.google.com/View?id=d4pgw7p_8crvqggfw">curriculum online</a>. I&#8217;d love feedback. I&#8217;ll post and link to more materials as I create them. Steal my work. Improve it.</p>
]]></content:encoded>
			<wfw:commentRss>http://ozten.com/psto/2009/10/04/teaching-html-with-hypertext-fiction/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>A Sketch of PO LiveEdit</title>
		<link>http://ozten.com/psto/2009/08/14/a-sketch-of-po-liveedit/</link>
		<comments>http://ozten.com/psto/2009/08/14/a-sketch-of-po-liveedit/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 22:21:32 +0000</pubDate>
		<dc:creator>ozten</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://ozten.com/psto/?p=115</guid>
		<description><![CDATA[Frédéric Wenzel  has a great series of L10n blog posts going and there has been a lot of discussion of L20n work at Mozilla. I ping’d Fred to check in and share an idea with him&#8230; 
What if you could directly edit the copy on the staging server of a website and have it [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://fredericiana.com/">Frédéric Wenzel</a>  has a <a href="http://blog.mozilla.com/webdev/category/localization/">great series of L10n blog posts</a> going and there has been a lot of discussion of L20n work at Mozilla. I ping’d Fred to check in and share an idea with him&#8230; </p>
<blockquote><p>What if you could directly edit the copy on the staging server of a website and have it transparently save your changes in the background without messing with PO files, SVN access, etc</p></blockquote>
<p>You&#8217;d eliminate lots of problems that localizers have&#8230; and provide a richer, fun editing environment.</p>
<p>Like any idea worth building&#8230; I found out it’s already been invented <img src='http://ozten.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  A few months back when I pitched this idea to Stas Malolepszy, he mentioned that <a href="http://diary.braniecki.net/">Gandalf</a> already thought of the idea and <a href="http://labs.braniecki.net/mozilla/webl10n/">built a prototype</a>. </p>
<p>I’m realizing that this has been sitting in my TODO list for too long and I’m better off doing a brain dump in this blog post. Here’s my take on the idea:</p>
<h2>Design Constraints:</h2>
<p>Keep po files as the backing store<br />
Work as much as possible with existing gettext tools<br />
Use direct object manipulation for the UI - pick strings directly from page, see live updates</p>
<h2>Requirements:</h2>
<p>Let localizer view a web page and pick a string to translate<br />
Display an editor widget that sit on top of or beside the page<br />
Display the msgid and msgstr. In practice this is the English String and the Localized version.<br />
As they type, redisplay the page with their updated translation<br />
Provide a revert button<br />
Provide a save button. Save persists this string back to the po file server which commits the change to SVN.</p>
<h2>PO LiveEdit at 10,000 feet</h2>
<p><img src="http://ozten.com/wordpress/wp-content/uploads/2009/08/POLiveEdit.jpg" alt="POLiveEdit 10&#039;000 foot diagram" title="POLiveEdit 10&#039;000 foot diagram" width="677" height="875" class="aligncenter size-full wp-image-117" /><br />
<strong>PO Enhanced HTML</strong> &#8211; In PHP or other web code, instead of making calls to gettext methods, a set of wrapper methods would be used which add metadata to the HTML output. This would basically add the msgid to a span tag that surrounds the output of the msgstr. This would extra metadata wouldn’t affect the display, but would capture the semantics of a localized string.<br />
Old PHP code<br />
<code>&lt;p>&lt;?= _(‘Be the Difference’); ?&gt;&lt;/p&gt;</code><br />
outputs<br />
<code>&lt;p&gt;Fai la differenza&lt;/p&gt;</code></p>
<p>New PHP cde:<br />
<code>&lt;p&gt;&lt;?= _w(‘Be the Difference’) ?&gt;&lt;/p&gt;</code><br />
outputs<br />
<code>&lt;p&gt;&lt;span id=‘md5_58cbc46092296cbe517d748685f52838’&gt;Fai la differenza&lt;/span&gt;&lt;/p&gt;</code></p>
<p><strong>PO Edit Client </strong>- This editor would use the msgid or some other token (such as the md5 hash of the msgid) from the enhanced html, to retrieve the information for an individual string and display it for editing. The comments, English translation, and Current localization string would be displayed. The editor would be aware of the current locale which is a page. It would be a live editor where changes would be reflected in the web page as you type.</p>
<p><strong>PO Edit Web Service</strong> &#8211; The server manages the collection of messages.po files for a web application. It&#8217;s provides read and write access to the PO Edit Client, one string at a time. It manages commits to SVN and conflict management. </p>
<h2>Technology:</h2>
<p>So three are three components to build&#8230; PHP gettext wrapper libraries, which are pretty trivial and produce the enhanced metadata in the HTML, a Server and a Client which lives within the browser.</p>
<h3>Server</h3>
<p>Either a stand-alone python server using Stas and Zbigniew’s [https://wiki.mozilla.org/Silme Silme library], or integrated into an existing web based L10n tool like [http://en.wikipedia.org/wiki/Pootle Pootle], it would provide a REST web service for editing po files by locale and msgid.</p>
<h3>Client</h3>
<p>The client can be built as either:<br />
Pure JavaScript included from the page<br />
Addon &#8211; Firefox/Fennec Extension</p>
<p>Pure JS has the benefit of working with any browser (Safari on iPhone, IE 6 in corporate dungeon, etc). It has the negative affect of introducing L10n only code that you wouldn&#8217;t want to push to production. It adds another integration point to every app.</p>
<p>The Addon has the benefit of being totally isolated from the specific web application&#8217;s codebase, which makes for easier adoption. The client would have the ability to use the PO Edit WS without any same-origin policy limitations. Downsides are that it&#8217;s requires Firefox or Fennec and it is an extra step for localizers.</p>
<p>Either way, a simple textarea will be a good start for a prototype. Localizers will be loosing any features of their current text editor (say POEdit), but they will gain rich &#8220;preview&#8221;. For a prototype, the addon route could be built out of an existing extension, such as <a href="http://ajaxian.com/archives/jetpack-02-slidebars-jetpackfuture-and-persistent-storage">Jetpack Slidebar</a> or Ubiquity pageLoad command, since it&#8217;s a more rapid development env.</p>
<h2>Considerations:</h2>
<p>The devil is in the details, here are some design decisions.</p>
<p>By default, does this introduce a new requirement for a L10n preview environment? Or is the web application in a testable state? Adding String metadata changes the web application and invalidates it for QA, unless you ship this metadata in the production version also. The &#8216;right&#8217; thing to do would be to introduce a localization step into the SDLC, but this might lower adoption. Or you could focus on making the implementation of the String metadata really light weight, so it would have minimal overhead and not need an additional phase, since it could ship to production and other applications can invent new uses for this metadata.</p>
<p>Exposing hard to reach state: Many strings are hidden behind a hard to reach sequence&#8230; such as error messages. A common practice in web app development is to expose every part of the app through testing hooks. Many large applications grow these features through time, such as allowing testers special query string parameters for each error condition to simulate the error. Another example is web apps with emails; provide urls so that each email is a click away w/o actually running through the registration process. These kinds of hooks would make translation easier and you&#8217;d have to list them somewhere so it&#8217;s easy to find them all. These become a requirement for a live web editor, unless you make the user jump through steps to reach all the states of the UI.</p>
<h2>Out of Scope(?) but on the Radar</h2>
<p>A real-time synchronization between the client and server would be ideal, so that multiple localizers could see who was editing a string and to reduce conflicts. <a href="http://morgamic.com/">Mike Morgan</a> and Fred have suggested <a href="https://bespin.mozilla.com/">Bespin</a> which is a freaking awesome idea.</p>
<h2>Wrapping up</h2>
<p>If we had a web based live editor for translating sites, this could be a huge win for localizers and the people of earth. Translating a website is one of the most painful and dangerous workflows I’ve seen. You know we have an amazing community, if they are willing to put up with the draconian toolchain we have today. Throwing everything out, is simply not an option, but if we can make a small evolutionary improvement towards a live preview edit workflow which hides revision control systems and text files&#8230;</p>
<p>There are plenty of sticky corner cases and whiz bang features one can dream up, but I think building a prototype for this is a tractable problem. I did some brainstorming with Fred this morning and he had lots of other cool ideas and good observations on how this would work in practice.</p>
]]></content:encoded>
			<wfw:commentRss>http://ozten.com/psto/2009/08/14/a-sketch-of-po-liveedit/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Mozilla WebDev Libraries</title>
		<link>http://ozten.com/psto/2009/06/22/mozilla-webdev-libraries/</link>
		<comments>http://ozten.com/psto/2009/06/22/mozilla-webdev-libraries/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 16:10:05 +0000</pubDate>
		<dc:creator>ozten</dc:creator>
				<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://ozten.com/psto/?p=82</guid>
		<description><![CDATA[Nothing earth-shattering here&#8230; but I wanted to capture some ideas that the webdev team has discussed in terms of how we share our code between projects and with the community at large.
Of course 100% of our code is open source, but we want to do a better job of letting others use and contribute to [...]]]></description>
			<content:encoded><![CDATA[<p>Nothing earth-shattering here&#8230; but I wanted to capture some ideas that the <a href="http://blog.mozilla.com/webdev/">webdev</a> team has discussed in terms of how we share our code between projects and with the community at large.</p>
<p>Of course 100% of our code is open source, but we want to do a better job of letting others use and contribute to our libraries.</p>
<div id="attachment_85" class="wp-caption alignleft" style="width: 238px"><img class="size-full wp-image-85" title="typical_project_layout" src="http://ozten.com/wordpress/wp-content/uploads/2009/06/typical_project_layout.jpg" alt="Screenshot of a typical project layout" width="228" height="651" /><p class="wp-caption-text">Screenshot of a typical project layout</p></div>
<h2>A typical project</h2>
<p>Let’s talk about a theoretical new project <strong>foomo</strong> which is the code behind Foo.mozilla.org. This project may reuse a couple libraries as well as host it’s own code. Let’s assume this is a project has the layout pictured to the left:</p>
<p>In <code>bin</code> we have various Python and shell scripts which are executed via cron or CLI. These scripts depend on the <code>config</code> directory for configuration and the <code>lib</code> for libraries of code. I won’t focus on the bin part of the project, but it could follow the pattern below, but using a Pythonic packaging idiom.</p>
<p>Let’s assume that the web directory houses a <a href="http://kohanaphp.com/">Kohana PHP</a> project. Under the <code>web/application</code> directory there are typical these project specific directories: <code>config</code>, <code>controllers</code>, <code>helpers</code>, <code>hooks</code>, <code>libraries</code>, <code>models</code>, and<code>views</code>.</p>
<p>In addition to <code>application</code>, Kohana also provides <code>modules</code> and <code>system</code> directories. Let say that <code>foomo</code> project reuses a Mozilla WebDev PHP library <strong>barlib</strong> library it will be located under <code>modules</code>. <code>system</code> is where Kohana stores it&#8217;s framework code that is overridden by <code>modules</code> and <code>application</code> code. But how do we manage <code>foomo</code> and <code>barlib</code> codebases?</p>
<h2 style="clear: left;">Version Control</h2>
<p>The authoritative code repositories for this website would be in atleast two places.<br />
If we keep all the code for <code>foomo</code> under one project, say <code>svn.mozilla.org/project/foomo</code>, this makes it easy to deploy and manage. The mainline of application specific code would be changed from here.<br />
The second codebase is for the library <code>barlib</code>. The mainline of development would happen on <code>github.com/projects/barlib</code>. Let&#8217;s look at the source code layout of <code>foomo</code> and <code>barlib</code> to see how they relate.<br />
<div id="attachment_89" class="wp-caption alignleft" style="width: 226px"><img class="size-full wp-image-89" title="web_modules" src="http://ozten.com/wordpress/wp-content/uploads/2009/06/web_modules.jpg" alt="foomo's module directory contains barlib" width="216" height="348" /><p class="wp-caption-text">foomo&#39;s module directory contains barlib</p></div><br />
<div id="attachment_106" class="wp-caption alignright" style="width: 215px"><img class="size-full wp-image-106" title="barlib_source_tree2" src="http://ozten.com/wordpress/wp-content/uploads/2009/06/barlib_source_tree2.jpg" alt="barlib's project layout" width="205" height="238" /><p class="wp-caption-text">barlib&#39;s project layout</p></div></p>
<p style="clear: both">So <strong>foomo&#8217;s</strong> <code>web/modules/barlib</code> on the left is a subset of <strong>barlib&#8217;s</strong> development tree on the right. A read only copy of this <code>dist</code> directory, heck even just a tarball distribution of it, comes from github and lands in foomo’s <code>web/modules/barlib</code>. As we want to enhace <code>barlib</code>, we work in that codebase on the right. <code>barlib</code> is it’s own project, so development includes running it’s tests, etc and then creating a release version to be imported back into <code>foomo</code>, on the left, as needed.</p>
<p>Keeping the official repository for reusable libraries separate introduces some disadvantages, but is worth it.<br />
Disadvantages:</p>
<ul>
<li>More complexity and administrative overhead</li>
<li>Requires more discipline</li>
<li>You have to manage dependencies between libraries and apps</li>
<li>Increases development costs</li>
</ul>
<p>Advantages:</p>
<ul>
<li>Encourages Reuse</li>
<li>Removes barriers for community contribution</li>
<li>Makes QAing and releasing components possible</li>
</ul>
<h2>All Growed Up</h2>
<p>As code in <code>foomo</code> solidifies or another project wants to use chunks outside of just <code>foomo</code>, the various pieces of code can be pulled out into a module and moved from <code>web/application</code> to <code>web/modules/&lt;library name&gt;</code>. We’ll have to re-QA foomo after this code extraction, but we will gain the benefit of reduced development on the second project and anyone who needs it won’t have to pick through <code>foomo</code> internals to copy and paste the tasty chunks. If the second project is a <a href="http://cakephp.org/">CakePHP project</a>, then all it will need to do is write CakePHP wrappers analogous to the very this Kohana specific layer of <code>barlib</code>.</p>
<h2>Everything Cannot Be Reused</h2>
<p>Not ever line of code can be reused. A lot of web development is about crafting a very specific solution. Localization, error handling, and coding conventions introduce challenges. That said, we should spend the extra time it takes to publish and integrate dynamite WebDev libraries.</p>
]]></content:encoded>
			<wfw:commentRss>http://ozten.com/psto/2009/06/22/mozilla-webdev-libraries/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
