<?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>bits and bikes &#187; my software</title>
	<atom:link href="http://bitsandbikes.aribadernatal.com/category/bits/my-software/feed/" rel="self" type="application/rss+xml" />
	<link>http://bitsandbikes.aribadernatal.com</link>
	<description>Compute, commute. Rinse and repeat.</description>
	<lastBuildDate>Sun, 08 Jan 2012 03:30:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>The iPhone solves the bus-stop problem</title>
		<link>http://bitsandbikes.aribadernatal.com/2009/11/22/the-iphone-solves-the-bus-stop-problem/</link>
		<comments>http://bitsandbikes.aribadernatal.com/2009/11/22/the-iphone-solves-the-bus-stop-problem/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 05:30:29 +0000</pubDate>
		<dc:creator>Ari Bader-Natal</dc:creator>
				<category><![CDATA[Bikes]]></category>
		<category><![CDATA[Bits]]></category>
		<category><![CDATA[enjoying the commute]]></category>
		<category><![CDATA[my software]]></category>

		<guid isPermaLink="false">http://blog.greaterbayshell.com/?p=152</guid>
		<description><![CDATA[<a href="/wp-content/uploads/2009/11/prediction.jpg"><img class="right" title="prediction" src="/wp-content/uploads/2009/11/prediction-300x196.jpg" alt="prediction" width="300" height="196" /></a>
My bike has had a flat tire for longer than I'd care to admit, so I've been commuting recently by foot and by bus. This leaves me with plenty of time to think, but mostly just thoughts about walking and/or taking the bus.

If you've spent time waiting for erratically-timed buses, you know this question well: <em>Will I get there faster if I continue waiting or if I start walking?</em> You can look to recent literature in recreational mathematics for some general guidance on this dilemma [<a href="http://arxiv.org/pdf/0801.0297v3">1</a>] [<a href="http://arxiv.org/pdf/0802.3653v1">2</a>]. But while waiting may pay off for the lazy mathematician, I like to get some exercise in the process. So here's a twist on the problem: <em>How far can I walk without missing the next bus?</em> I'll propose three practical solutions...]]></description>
			<content:encoded><![CDATA[<p><a href="/wp-content/uploads/2009/11/prediction.jpg"><img class="right" title="prediction" src="/wp-content/uploads/2009/11/prediction-300x196.jpg" alt="prediction" width="300" height="196" /></a></p>
<p>My bike has had a flat tire for longer than I&#8217;d care to admit, so I&#8217;ve been commuting recently by foot and by bus. This leaves me with plenty of time to think, but mostly just thoughts about walking and/or taking the bus.</p>
<p>If you&#8217;ve spent time waiting for erratically-timed buses, you know this question well: <em>Will I get there faster if I continue waiting or if I start walking?</em> You can look to recent literature in recreational mathematics for some general guidance on this dilemma [<a href="http://arxiv.org/pdf/0801.0297v3">1</a>] [<a href="http://arxiv.org/pdf/0802.3653v1">2</a>]. But while waiting may pay off for the lazy mathematician, I like to get some exercise in the process. So here&#8217;s a twist on the problem: <em>How far can I walk without missing the next bus?</em> I&#8217;ll propose three practical solutions:</p>
<ol>
<li>Walk backwards, so you can spot the bus as soon as it becomes visible. When you do, make a run for the closest stop (preferably in the direction of your destination.)</li>
<li>Move to a city that displays bus arrival predictions at bus stops. Run to the first such display, check out the next arrival prediction, and do some quick mental math as you start to walk.</li>
<li>Live somewhere that offers <a href="http://www.datasf.org/page.php?page=about">open access to city datasets</a> including <a href="http://datasf.org/story.php?title=nextmuni-xml-data">real-time bus location and prediction feeds</a>. Write the following iPhone application, and then email me when it&#8217;s ready.</li>
</ol>
<p><em>App description &#8211; </em>Given your current location (determined by GPS), your walking speed (based on past commutes), and your destination and bus route (stored in preferences or assumed based on time-of-day), it calculates two commute options and displays each with an estimated time of arrival. The first option minimizes your commute duration while maximizing the portion traveled by foot, and the second option minimizes your foot-only commute time. For example:</p>
<blockquote><p>Your best commute options today are:<br />
* ETA 8:55am &#8211; Walk to Church St, then get on #48. (0.5mi exercise)<br />
* ETA 9:05am &#8211; Walk directly. (2.5mi exercise, saves $2.00)</p></blockquote>
<p>Any takers? Seems like it would be a great candidate for the <a href="http://datasf.org/showcase/">DataSF App Showcase</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://bitsandbikes.aribadernatal.com/2009/11/22/the-iphone-solves-the-bus-stop-problem/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Contributing to the Grockit blog</title>
		<link>http://bitsandbikes.aribadernatal.com/2009/02/10/contributing-to-the-grockit-blog/</link>
		<comments>http://bitsandbikes.aribadernatal.com/2009/02/10/contributing-to-the-grockit-blog/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 14:14:09 +0000</pubDate>
		<dc:creator>Ari Bader-Natal</dc:creator>
				<category><![CDATA[Bits]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[educational technology]]></category>
		<category><![CDATA[Games for learning]]></category>
		<category><![CDATA[my software]]></category>

		<guid isPermaLink="false">http://blog.greaterbayshell.com/?p=48</guid>
		<description><![CDATA[<a href="http://www.grockit.com/"><img class="left" title="Grockit logo" src="http://blog.greaterbayshell.com/wp-content/uploads/2009/02/color_vertical.png" alt="" width="145" height="120" /></a>I posted an entry on the <a href="http://www.grockit.com">Grockit</a> <a href="http://blog.grockit.com">blog</a> today, about how aim to build a learning platform that we is both both peer-powered and data-driven. My goal is to contribute a new post each week or so, which you can find here: <a href="http://blog.grockit.com/author/ari/">http://blog.grockit.com/author/ari/</a>.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.grockit.com/"><img title="Grockit logo" src="http://blog.grockit.com/wp-content/themes/grockit-new/images/logo.png" alt=""  /></a><BR/><BR/>I posted an entry on the <a href="http://www.grockit.com">Grockit</a> <a href="http://blog.grockit.com">blog</a> today, about how aim to build a learning platform that we is both both peer-powered and data-driven. My goal is to contribute a new post each week or so, which you can find here: <a href="http://blog.grockit.com/blog/category/learning/">http://blog.grockit.com/blog/category/learning/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://bitsandbikes.aribadernatal.com/2009/02/10/contributing-to-the-grockit-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moving from the Bay State to the Bay Area</title>
		<link>http://bitsandbikes.aribadernatal.com/2008/06/21/greaterbayshell-is-moving-from-the-bay-state-to-the-bay-area/</link>
		<comments>http://bitsandbikes.aribadernatal.com/2008/06/21/greaterbayshell-is-moving-from-the-bay-state-to-the-bay-area/#comments</comments>
		<pubDate>Sun, 22 Jun 2008 06:36:08 +0000</pubDate>
		<dc:creator>Ari Bader-Natal</dc:creator>
				<category><![CDATA[my software]]></category>

		<guid isPermaLink="false">http://blog.greaterbayshell.com/?p=46</guid>
		<description><![CDATA[<A HREF="http://www.flickr.com/groups/sanfrancisco/pool/"><IMG SRC="http://farm1.static.flickr.com/32/53674487_03a011d36e_m.jpg" class="left"></A> Following my acquisition of <A HREF="/2008/04/12/phd-cycling-socks/">these socks</A>, I've actively been on the lookout for interesting opportunities in <A HREF="http://www.cs.brandeis.edu/~ari/dissertation/">my field</A>. I'm excited to have found something great in the works at <A HREF="http://www.grockit.com/">Grockit</A>, and will be joining Farb and his team there next month. More details in the weeks to come... ]]></description>
			<content:encoded><![CDATA[<p><A HREF="http://www.flickr.com/groups/sanfrancisco/pool/"><IMG SRC="http://farm1.static.flickr.com/32/53674487_03a011d36e_m.jpg" class="left"></A> Following my acquisition of <A HREF="/2008/04/12/phd-cycling-socks/">these socks</A>, I&#8217;ve actively been on the lookout for interesting opportunities in <A HREF="http://aribadernatal.com/dissertation/">my field</A>. I&#8217;m excited to have found something great in the works at <A HREF="https://grockit.com/">Grockit</A>, and will be joining Farb and his team there next month. More details in the weeks to come&#8230; This blog will most likely be quieter for the next few weeks, after which I plan to continue posting at my breakneck pace of 50 posts every year. </p>
]]></content:encoded>
			<wfw:commentRss>http://bitsandbikes.aribadernatal.com/2008/06/21/greaterbayshell-is-moving-from-the-bay-state-to-the-bay-area/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Big Book of Apple Hacks&#8221; is now shipping</title>
		<link>http://bitsandbikes.aribadernatal.com/2008/04/20/big-book-of-apple-hacks-is-now-shipping/</link>
		<comments>http://bitsandbikes.aribadernatal.com/2008/04/20/big-book-of-apple-hacks-is-now-shipping/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 20:55:51 +0000</pubDate>
		<dc:creator>Ari Bader-Natal</dc:creator>
				<category><![CDATA[Bits]]></category>
		<category><![CDATA[my software]]></category>

		<guid isPermaLink="false">http://blog.greaterbayshell.com/2008/04/20/big-book-of-apple-hacks-is-now-shipping/</guid>
		<description><![CDATA[<A HREF="http://www.amazon.com/gp/product/0596529821?ie=UTF8&#038;tag=cpucycling0a-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0596529821"><img src="http://www.oreilly.com/catalog/covers/9780596529826_cat.gif" class="left" /></A> Chris Seibold's new O'Reilly book, the "Big Book of Apple Hacks," is now available (from <a href="http://www.oreilly.com/catalog/9780596529826/">O'Reilly Media</a> or from <a href="http://www.amazon.com/gp/product/0596529821?ie=UTF8&#38;tag=cpucycling0a-20&#38;linkCode=as2&#38;camp=1789&#38;creative=9325&#38;creativeASIN=0596529821">Amazon</a><img src="http://www.assoc-amazon.com/e/ir?t=cpucycling0a-20&#38;l=as2&#38;o=1&#38;a=0596529821" style="border: medium none  ! important; margin: 0px ! important" border="0" height="1" width="1" />.) While I haven't seen it quite yet, I am familiar with at least one portion of the book: My blog post on <a href="/2007/12/11/user-initiated-privacy-for-web-applications/">User-Initiated Privacy for Web Applications</a> is included.  ]]></description>
			<content:encoded><![CDATA[<p><A HREF="http://www.amazon.com/gp/product/0596529821?ie=UTF8&#038;tag=cpucycling0a-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0596529821"><img src="http://www.oreilly.com/catalog/covers/9780596529826_cat.gif" class="left" /></A> Chris Seibold&#8217;s new O&#8217;Reilly book, the &#8220;<a href="http://www.amazon.com/gp/product/0596529821?ie=UTF8&amp;tag=cpucycling0a-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596529821">Big Book of Apple Hacks</A>,&#8221; is now available. While I haven&#8217;t seen it quite yet, I am familiar with at least one portion of the book: My blog post on <a href="/2007/12/11/user-initiated-privacy-for-web-applications/">User-Initiated Privacy for Web Applications</a> is included.<br />
This contribution describes a simple way for end users to maintain the privacy of their personal data when using web applications. <A HREF="http://aribadernatal.com/scripts/PageAxe/">Page Axe</A> is a small program for Mac OS X that offers this, but the idea is not platform-specific.</p>
<p>I&#8217;m looking forward to see what else is in the book!</p>
]]></content:encoded>
			<wfw:commentRss>http://bitsandbikes.aribadernatal.com/2008/04/20/big-book-of-apple-hacks-is-now-shipping/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PhD (wool socks)</title>
		<link>http://bitsandbikes.aribadernatal.com/2008/04/12/phd-cycling-socks/</link>
		<comments>http://bitsandbikes.aribadernatal.com/2008/04/12/phd-cycling-socks/#comments</comments>
		<pubDate>Sat, 12 Apr 2008 22:17:40 +0000</pubDate>
		<dc:creator>Ari Bader-Natal</dc:creator>
				<category><![CDATA[Bits]]></category>
		<category><![CDATA[my software]]></category>

		<guid isPermaLink="false">http://blog.greaterbayshell.com/2008/04/12/phd-cycling-socks/</guid>
		<description><![CDATA[<a href="http://www.amazon.com/gp/product/B001SY83SI?ie=UTF8&#038;tag=cpucycling0a-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=B001SY83SI"><img src="/wp-content/uploads/2008/04/phd_socks_200.jpg" alt="PhD Cycling socks" class="left"/></A> After successfully defended my <A HREF="http://aribadernatal.com/dissertation">dissertation</A> yesterday, these new socks fit well!]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.amazon.com/gp/product/B001SY83SI?ie=UTF8&#038;tag=cpucycling0a-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=B001SY83SI"><img src="/wp-content/uploads/2008/04/phd_socks_200.jpg" alt="PhD Cycling socks" class="left" /></A> After successfully defending my <A HREF="http://aribadernatal.com/dissertation">dissertation</A> yesterday, these new <a href="http://www.amazon.com/gp/product/B001SY83SI?ie=UTF8&#038;tag=cpucycling0a-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=B001SY83SI">socks</A> fit well!</p>
]]></content:encoded>
			<wfw:commentRss>http://bitsandbikes.aribadernatal.com/2008/04/12/phd-cycling-socks/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>User-Initiated Privacy for Web Applications</title>
		<link>http://bitsandbikes.aribadernatal.com/2007/12/11/user-initiated-privacy-for-web-applications/</link>
		<comments>http://bitsandbikes.aribadernatal.com/2007/12/11/user-initiated-privacy-for-web-applications/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 04:27:46 +0000</pubDate>
		<dc:creator>Ari Bader-Natal</dc:creator>
				<category><![CDATA[Bits]]></category>
		<category><![CDATA[my software]]></category>

		<guid isPermaLink="false">http://blog.greaterbayshell.com/2007/12/11/user-initiated-privacy-for-web-applications/</guid>
		<description><![CDATA[<IMG SRC="/img/blog/200px/Picture-15.jpg">

Web-based applications are becoming increasingly popular, offering a variety of compelling advantages over desktop-based applications, both to developers and to users. These applications are platform-independent, accessible from any Internet-connected computer, offer offsite data storage, and often provide integrated tools for collaboration and sharing. One major tradeoff, however, is <a href="http://www.nytimes.com/2007/10/07/technology/07frame.html" target="_blank">a loss of privacy</a>. But this doesn't mean that we need to give up on privacy (or give up on web applications.) We just need to think more creatively...]]></description>
			<content:encoded><![CDATA[<p><IMG class="left" SRC="/img/blog/200px/Picture-15.jpg"><strong> A version of this blog post is included in an Chris Seibold&#8217;s new O&#8217;Reilly book: <a href="http://www.amazon.com/gp/product/0596529821?ie=UTF8&amp;tag=cpucycling0a-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596529821">Big Book of Apple Hacks</a></strong>.</p>
<p><a href="http://www.amazon.com/gp/product/0596529821?ie=UTF8&amp;tag=cpucycling0a-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0596529821"><br />
<img class="right" src="/wp-content/uploads/2007/12/app_hacks.jpg" width="120" height="146" alt=""  /></a><img style="border: medium none  ! important; margin: 0px ! important" src="http://www.assoc-amazon.com/e/ir?t=cpucycling0a-20&amp;l=as2&amp;o=1&amp;a=0596529821" border="0" alt="" width="1" height="1" class="right"/><br />
Web-based applications are becoming increasingly popular, offering a variety of compelling advantages over desktop-based applications, both to developers and to users. These applications are platform-independent, accessible from any Internet-connected computer, offer offsite data storage, and often provide integrated tools for collaboration and sharing. One major tradeoff, however, is <a href="http://www.nytimes.com/2007/10/07/technology/07frame.html" target="_blank">a loss of privacy</a>. As users adopt web-based applications, their personal data (e.g. emails, address books, calendars, to-do lists, etc.) slowly migrates from the privacy of their computer to instead live on various web-app provider&#8217;s servers scattered across the Internet. While some of these web applications allow a user to <a href="http://www.google.com/support/calendar/bin/answer.py?answer=37499&amp;topic=8601" target="_blank">flag certain data as &#8220;private&#8221;</a>, this is a very limited notion of privacy, referring only to whether the web-application provider will share user data with other parties (such as other users.) The implicit message here is that the user&#8217;s data is always accessible (i.e. not private) to the company or individuals providing the web-application. This is a step back from the level of privacy afforded by desktop-based applications and should be recognized as such. But this doesn&#8217;t mean that we need to give up on privacy (or give up on web applications.) We just need to think more creatively.</p>
<p><a href="http://www.amazon.com/gp/product/0967584418?ie=UTF8&amp;tag=cpucycling0a-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0967584418"><img class="left" src="http://ecx.images-amazon.com/images/I/51YQDY5D4DL._AA240_.jpg" alt="" width="120" height="120" /></a> After reading Peter Wayner&#8217;s book, <a href="http://www.amazon.com/gp/product/0967584418?ie=UTF8&amp;tag=cpucycling0a-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0967584418"><strong>Translucent Databases</strong></a><img style="border: medium none  ! important; margin: 0px ! important" src="http://www.assoc-amazon.com/e/ir?t=cpucycling0a-20&amp;l=as2&amp;o=1&amp;a=0967584418" border="0" alt="" width="1" height="1" />, on Jon Udell&#8217;s recommendation (see <a href="http://www.infoworld.com/article/03/06/20/25FEprivacydb_1.html">Achieving translucency</a>), I saw that &#8220;translucent&#8221; database designs (<a href="http://www.wayner.org/books/td/faq.php" target="_blank">?</a>) could directly address this issue. Unfortunately, many (most?) web-application databases are not being designed translucently (more by Udell <a href="http://www.infoworld.com/article/06/09/06/37OPstrategic_1.html">here</a> and <a href="http://weblog.infoworld.com/udell/2006/09/11.html#a1522">here</a>). But if your web-application&#8217;s database wasn&#8217;t designed for translucency, is this a lost cause? I&#8217;m going to argue that it isn&#8217;t, and will show how <em>you</em>, the user of web applications, can initiate database translucency yourself, and thereby protect the privacy of your hosted personal data whenever you desire.</p>
<p>What do I mean by <strong>user-initiated database translucency</strong>? <em>Think of it as BYOC: Bring Your Own Crypto.</em> The idea here is for you, the user, to encrypt your personal data <em>before</em> it finds its way onto the web application server. As long as the encrypted data is considered valid by the application (e.g. doesn&#8217;t violate string-length or legal-character limitations), the application will continue to work as it did before, but the personal data will remain private. Then, when you&#8217;re later interested to view some of this data, the decryption and viewing can be done offline. If you do this right, your data will remain usable to you in the context of the web application without ever being visible (unencrypted) to the web application provider.</p>
<p>I&#8217;ll describe one approach to implementing this idea, which you can download and test out. Many others approaches are possible, and I&#8217;ll throw out a few ideas to get things started. <em>If you implement one, please email me and post a comment below.</em></p>
<p><a href="http://code.aribadernatal.com/PageAxe/"><strong>Page Axe</strong> (</a><a href="http://code.aribadernatal.com/PageAxe/"><code>http://code.aribadernatal.com/PageAxe/</code></a>) is a Mac OS X (i.e. &#8220;offline&#8221;) application that I wrote to demonstrate this idea. Upon running for the first time, Page Axe generates and saves a randomly-generated 256-byte key (via <code>openssl rand -base64 -out /path/to/key 256</code>). After that, any text typed into the Page Axe text box is encrypted with this key using the AES-CBC cipher algorithm (via <code>openssl enc -aes-256-cbc -a -salt -pass file:/path/to/key</code>). This encrypted text is copied to the clipboard, ready to be pasted into a text field in your web application. Page Axe also allows for viewing of this encrypted data. Copy and paste the encrypted text from the web application to Page Axe, and the text is decrypted (via <code>openssl enc -d -aes-256-cbc -a -pass file:/path/to/key</code>) and displayed for you to read again. At it&#8217;s core, it&#8217;s simply moving text between trusted desktop-land and untrusted browser-land in a way that guarantees that data privacy is maintained.</p>
<p>Here are a few screenshots of the <a href="http://code.aribadernatal.com/PageAxe/">Page Axe</a> application in action:</p>
<p><a href="/img/blog/800px/Picture-6.jpg"><img src="/img/blog/200px/Picture-6.jpg" border="1" alt="" /><br />
Simple interface for encrypting and decrypting text.</a></p>
<p><a href="/img/blog/800px/Picture-11.jpg"><img src="/img/blog/200px/Picture-11.jpg" border="1" alt="" /><br />
Encrypted text is pasted into a web application.</a></p>
<p><a href="/img/blog/800px/Picture-14.jpg"><img src="/img/blog/200px/Picture-14.jpg" border="1" alt="" /><br />
The encrypted text can then be decrypted offline.</a> Select a block of text from the web application that includes encrypted private data, and Page Axe will locate, decrypt, and display the private data in the context of the entire text block using <a href="http://www.growl.info/" target="_blank">Growl</a>.</p>
<p><a href="/img/blog/800px/Picture-15.jpg"><img src="/img/blog/200px/Picture-15.jpg" border="1" alt="" /><br />
Alternative UI hooks are possible, such as this Quicksilver trigger for text decryption.</a></p>
<p><a href="http://code.aribadernatal.com/PageAxe/">Page Axe</a> is only one implementation of this concept of user-initiated privacy for web applications, written as a full-blown desktop application. Alternatively, one might alternatively figure out how to implement this as a Firefox Add-On, a bookmarklet, a platform-independent Java application stored on a portable USB (flash) drive, or perhaps something else. As long as the user&#8217;s private data is never accessible through the DOM to the &#8220;untrusted&#8221; web application, you&#8217;ve got a valid implementation.</p>
<p>I think one fascinating possibility here would be to incorporate this technique into applications designed to automatically sync offline and online data. Consider, for example, <a href="http://spanningsync.com/">Spanning Sync</a>, an application designed to provide two-way syncing between Apple&#8217;s iCal desktop application and Google&#8217;s web-based Calendar application. Imagine a new &#8220;Keep data private&#8221; checkbox, which causes offline data to be encrypted before being uploaded to Google&#8217;s servers and causes online data to be decrypted again after being downloaded. (For access to Google&#8217;s web application data on-the-go, a mobile implementation like Page Axe would provide access.) This example shows how data translucency can be initiated post-hoc via the web application&#8217;s published API! Many interesting possibilities exist here.</p>
<p>In summary, the move towards web-based applications comes at the expense of our privacy, but with the techniques outlined here, you can reclaim the privacy of your data any time you like!</p>
]]></content:encoded>
			<wfw:commentRss>http://bitsandbikes.aribadernatal.com/2007/12/11/user-initiated-privacy-for-web-applications/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Berry.app: Never released, but still fun</title>
		<link>http://bitsandbikes.aribadernatal.com/2007/12/03/berryapp-never-released-but-still-fun/</link>
		<comments>http://bitsandbikes.aribadernatal.com/2007/12/03/berryapp-never-released-but-still-fun/#comments</comments>
		<pubDate>Mon, 03 Dec 2007 20:23:11 +0000</pubDate>
		<dc:creator>Ari Bader-Natal</dc:creator>
				<category><![CDATA[Bits]]></category>
		<category><![CDATA[my software]]></category>

		<guid isPermaLink="false">http://blog.greaterbayshell.com/2007/12/03/berryapp-never-released-but-still-fun/</guid>
		<description><![CDATA[<IMG SRC="http://aribadernatal.com/scripts/Berry/Berry.png"  width="100" height="100" class="left">Its original purpose was to let me run certain small scripts on my home computer from my very low-tech cell phone. From here, Berry (originally Hackberry) eventually grew a full syntax for requests, a nice GUI, an SDK, a security model, and many new ways to connect. In addition to the original SMS communication channel, six more input channels and nine more output channels were later added (e.g. IM messaging, Skype, Quicksilver.) Talk about feature creep.]]></description>
			<content:encoded><![CDATA[<p><IMG SRC="http://aribadernatal.com/scripts/Berry/Berry.png"  width="100" height="100" class="left">Berry turned out to be several things: an exercise in software architecture, a taste of the frustrations and joys of Applescript Studio, a victim of feature creep, a lesson in interface design, a waste of time, and a whole bunch of fun.</p>
<p>Berry is lighter fare than my <a href="/2007/11/15/coevisualizer/">Coevisualizer research software framework</a>: Its original purpose was to let me run certain small scripts on my home computer from my very <a href="/2007/11/27/the-50000-minute-cell-phone/">low-tech cell phone.</a> From here, Berry (originally Hackberry) eventually grew a full syntax for requests, a nice GUI, an SDK, a security model, and many new ways to connect. In addition to the original SMS communication  channel, six more input channels and nine more output channels were later added (e.g. IM messaging, Skype, Quicksilver.) Talk about feature creep.</p>
<p>The general idea here is not new or unique. You can find software aiming to reach the same goal in many places, from startups (e.g. <a href="http://www.soonr.com/web/front/home.jsp">Soonr</a>), shareware developers (e.g. <a href="http://www.fromconcentratesoftware.com/Share/">Share</a>), and even open source projects (<a href="http://code.google.com/p/telekinesis/">Telekenesis</a>). Now that I&#8217;m posting screenshots of Berry, we can add a &#8220;vaporware&#8221; category to this list.</p>
<p>Here are a few screenshots. I&#8217;ll try to add some annotations later&#8230;</p>
<p><a href="/img/blog/800px/screen1.jpg"><img src="/img/blog/200px/screen1.jpg" /><br />
An enabled Receiver will listen for Berry-formatted requests, and will ask Berry to process them.</a></p>
<p><a href="/img/blog/800px/screen2.jpg"><img src="/img/blog/200px/screen2.jpg" /><br />
An enabled Action can be performed by specifying it in any Berry request.</a></p>
<p><a href="/img/blog/800px/screen3.jpg"><img src="/img/blog/200px/screen3.jpg" /><br />
An enabled Responder can be used to send back the results of a Berry request.</a></p>
<p><a href="/img/blog/800px/examples.jpg"><img src="/img/blog/200px/examples.jpg" /><br />
Notice that I haven&#8217;t updated the code in a year and a half.</a></p>
<p><a href="/img/blog/800px/otherwindows.jpg"><img src="/img/blog/200px/otherwindows.jpg" /><br />
The internal/development interface is packed with a few example Berry requests.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bitsandbikes.aribadernatal.com/2007/12/03/berryapp-never-released-but-still-fun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coevisualizer: Software for coevolutionary simulations</title>
		<link>http://bitsandbikes.aribadernatal.com/2007/11/15/coevisualizer/</link>
		<comments>http://bitsandbikes.aribadernatal.com/2007/11/15/coevisualizer/#comments</comments>
		<pubDate>Thu, 15 Nov 2007 19:19:13 +0000</pubDate>
		<dc:creator>Ari Bader-Natal</dc:creator>
				<category><![CDATA[Bits]]></category>
		<category><![CDATA[my software]]></category>
		<category><![CDATA[research computing]]></category>

		<guid isPermaLink="false">http://blog.greaterbayshell.com/2007/11/15/coevisualizer/</guid>
		<description><![CDATA[<IMG SRC="http://aribadernatal.com/scripts/Coevisualizer/logo.jpg" class="left">Recently I've been spending time experimenting with (and extending) my coevolutionary simulation software, Coevisualizer, which I now use to model Teacher's Dilemma-driven learning. ... The teacher ends up consistently providing "appropriate" challenges for their student, even as the student's abilities change.]]></description>
			<content:encoded><![CDATA[<p><IMG SRC="http://aribadernatal.com/scripts/Coevisualizer/logo.jpg" class="left">Recently I&#8217;ve been spending time experimenting with (and extending) <a href="http://aribadernatal.com/scripts/Coevisualizer/" title="Coevisualizer" target="_blank">my coevolutionary simulation software, Coevisualizer</a>, which I now use to Teacher&#8217;s Dilemma-driven learning. The blue line represents the increasing ability of a learning student, and the red marks the distribution over difficulty of problems posed to that student by a teacher who is motivated by the game-theoretic structure of the Teacher&#8217;s Dilemma.  The result? The teacher ends up consistently providing &#8220;appropriate&#8221; challenges for their student, even as the student&#8217;s abilities change.</p>
<p><a href="/img/blog/800px/ObjectivePopulationView.jpg"><img src="/img/blog/200px/ObjectivePopulationView.jpg" border="1" /></a></p>
<p><a href="/img/blog/800px/Populations399.jpg"><img src="/img/blog/200px/Populations399.jpg" border="1" /></a></p>
<p><a href="/img/blog/800px/ProgressView.jpg"><img src="/img/blog/200px/ProgressView.jpg" border="1" /></a></p>
<p><a href="http://aribadernatal.com/scripts/Coevisualizer/" title="Coevisualizer" target="_blank">More about Coevisualizer (including download)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bitsandbikes.aribadernatal.com/2007/11/15/coevisualizer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
