<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en">
<head>
  <title>the all-thing</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="stylesheet" href="/static/style.css" type="text/css" />
  <link rel="alternate" type="application/rss+xml" title="the all-thing RSS feed" href="/index.rss" />
  <link rel="alternate" type="text/plain" title="the all-thing in plain text" href="/index.txt" />
  <script type="text/javascript" src="/static/mootools.js"></script>
  <script type="text/javascript" src="http://music.masanjin.net:9292/waxiest.js"></script>
</head>
<body>

<div id="main">
  <div id="header">
    <h1><a  href="/">the all-thing</a></h1>
    
  </div>
  <div id="sidebar">
    <h3>Recent comments</h3>

    <ul class="sidebar-list">
    
    <li><b><a  href="/whisper-0.5#58174069c046a78e55f02ef81da81e74">Dominique Julia</a></b>
        <i><a  href="/whisper-0.5">Whisper 0.5 released</a></i>
           one week ago
    </li>
    
    <li><b><a  href="/ruby-ncurses-and-thread-blocking#8fa2a0f392d7c0562d630e4936407c11">William Morgan</a></b>
        <i><a  href="/ruby-ncurses-and-thread-blocking">Ruby, Ncurses and blocked threads</a></i>
           three months ago
    </li>
    
    <li><b><a  href="/git-wtf-bf06ab7-released#533654a7a229569e27a6d0afd716c444">William Morgan</a></b>
        <i><a  href="/git-wtf-bf06ab7-released">git wtf bf06ab7 released</a></i>
           three months ago
    </li>
    
    <li><b><a  href="/git-wtf-bf06ab7-released#b7b7a905477674eb6985b34a964a0dca">Joao Nelas</a></b>
        <i><a  href="/git-wtf-bf06ab7-released">git wtf bf06ab7 released</a></i>
           three months ago
    </li>
    
    <li><b><a  href="/ruby-ncurses-and-thread-blocking#b00001114360ac152f87d4ac2a6e0c5b">Ollivier Robert</a></b>
        <i><a  href="/ruby-ncurses-and-thread-blocking">Ruby, Ncurses and blocked threads</a></i>
           three months ago
    </li>
    
    </ul>

    <h3>Authors</h3>
    <ul class="sidebar-list">
    
      <li><a class="author" href="/by/William+Morgan/">William&nbsp;Morgan</a>&nbsp;(65) </li>
    
    </ul>

    <h3>Tags</h3>
    <ul class="sidebar-list">
    
      <li><a class="label" href="/label/releases/">releases</a>&nbsp;(15) </li>
    
      <li><a class="label" href="/label/whisper/">whisper</a>&nbsp;(13) </li>
    
      <li><a class="label" href="/label/git/">git</a>&nbsp;(9) </li>
    
      <li><a class="label" href="/label/stats/">stats</a>&nbsp;(8) </li>
    
      <li><a class="label" href="/label/trollop/">trollop</a>&nbsp;(6) </li>
    
      <li><a class="label" href="/label/ruby/">ruby</a>&nbsp;(6) </li>
    
      <li><a class="label" href="/label/sup/">sup</a>&nbsp;(6) </li>
    
      <li><a class="label" href="/label/git-wtf/">git-wtf</a>&nbsp;(4) </li>
    
      <li><a class="label" href="/label/vm/">vm</a>&nbsp;(4) </li>
    
      <li><a class="label" href="/label/mathml/">mathml</a>&nbsp;(3) </li>
    
      <li><a class="label" href="/label/continuations/">continuations</a>&nbsp;(3) </li>
    
      <li><a class="label" href="/label/ditz/">ditz</a>&nbsp;(3) </li>
    
      <li><a class="label" href="/label/proglang/">proglang</a>&nbsp;(2) </li>
    
      <li><a class="label" href="/label/optimization/">optimization</a>&nbsp;(2) </li>
    
      <li><a class="label" href="/label/benchmarks/">benchmarks</a>&nbsp;(2) </li>
    
      <li><a class="label" href="/label/rubinius/">rubinius</a>&nbsp;(2) </li>
    
      <li><a class="label" href="/label/inlining/">inlining</a>&nbsp;(2) </li>
    
      <li><a class="label" href="/label/ubuntu/">ubuntu</a>&nbsp;(2) </li>
    
      <li><a class="label" href="/label/fibers/">fibers</a>&nbsp;(2) </li>
    
      <li><a class="label" href="/label/ritex/">ritex</a>&nbsp;(2) </li>
    
      <li><a class="label" href="/label/ruby1.9/">ruby1.9</a>&nbsp;(2) </li>
    
      <li><a class="label" href="/label/ncurses/">ncurses</a>&nbsp;(1) </li>
    
      <li><a class="label" href="/label/javascript/">javascript</a>&nbsp;(1) </li>
    
      <li><a class="label" href="/label/media/">media</a>&nbsp;(1) </li>
    
      <li><a class="label" href="/label/vim/">vim</a>&nbsp;(1) </li>
    
      <li><a class="label" href="/label/classification/">classification</a>&nbsp;(1) </li>
    
      <li><a class="label" href="/label/massachusetts/">massachusetts</a>&nbsp;(1) </li>
    
      <li><a class="label" href="/label/greasemonkey/">greasemonkey</a>&nbsp;(1) </li>
    
      <li><a class="label" href="/label/wine/">wine</a>&nbsp;(1) </li>
    
      <li><a class="label" href="/label/readme/">readme</a>&nbsp;(1) </li>
    
      <li><a class="label" href="/label/ancient-greek/">ancient-greek</a>&nbsp;(1) </li>
    
      <li><a class="label" href="/label/web/">web</a>&nbsp;(1) </li>
    
      <li><a class="label" href="/label/current+events/">current&nbsp;events</a>&nbsp;(1) </li>
    
    </ul>

    <h3>Other formats</h3>
    <ul class="sidebar-list">
    <li><a href="/index.rss"><img src="/static/rss-badge.png"/></a></li>
    <li><a href="/index.txt">plain text version</a></li>
    </ul>

    <h3 class="waxiest.author.original">Who is this man?</h3>
    <h3 class="waxiest.author.beautiful" style="display:none">I must find out more about this beautiful creature</h3>
    <h3 class="waxiest.author.beautifulbig" style="display:none">I MUST FIND OUT MORE ABOUT THIS BEAUTIFUL CREATURE</h3>
    <h3 class="waxiest.author.originalbig" style="display:none">WHO IS THIS MAN?</h3>

    <script type="text/javascript">
      var w = waxiest();
      w.optimizeHTMLSection("author", ["original", "beautiful", "beautifulbig", "originalbig"]);
    </script>

    <a href="http://masanjin.net" onClick="w.goalReached('greeting')">William Morgan</a>
  </div>
  <div id="content">
    <h2><a  href="/old13">Rethinking Sup part II</a></h2>

<div class="byline">
  <a  href="/by/William+Morgan/">William Morgan</a>,
  <span title="19 months ago">July 20, 2008  1:58pm</span>
</div>

  <div class="labels"><span class='label'><a  href="/label/sup/">sup</a></span> </div>


<p class='first'>In <a href="http://all-thing.net/2008/06/rethinking-sup.html">Rethinking Sup part I</a>, I
concluded that Sup the <span class="caps">MUA</span> is an evolutionary dead end, and that the future
lies in Sup the Service (<span class="caps">STS</span>). But what does that mean?</p>
<p>One thing I want to make clear it does <em>not</em> mean is any abandonment of the Sup
curses UI. That particular &#8220;user experience&#8221; has been refined over the past few
years to become my ideal email interface. It would be silly to throw that away.</p>
<p>What <em>will</em> happen to the curses code is that it will become one client among
(hopefully) many. Once there&#8217;s a clear delineation between UI and backend, you
can make a UI choice independent of making a choice to use Sup in the first
place. You can run <code>sup-curses-client</code> if you want. Or you can build
a web interface, or an Openmoko interface. Working with ncurses has always been
the least enjoyable part of Sup, so maybe I&#8217;ll actually enjoy learning
Javascript.</p>
<p>What backend functionality will <span class="caps">STS</span> actually provide? If I were simply
reworking Sup into a client and a server, the obvious answer would be &#8220;a
searchable, labelable, threaded view of large amounts of email&#8221;.</p>
<p>But reworking Sup is a great time to extend its original goals. In particular,
I would love for <span class="caps">STS</span> to handle to other types of documents besides email. I&#8217;ve
always used my inbox as a mechanism for writing notes to myself. I&#8217;ve
experimented briefly with reading <span class="caps">RSS</span> feeds through it. I&#8217;d like <span class="caps">STS</span> to support
email, of course, but not to be limited by it.</p>
<p>My grand vision: <em><span class="caps">STS</span> will be a searchable, labelable, threaded view of large
numbers of documents.</em></p>
<p>You can throw whatever you want in there, and <span class="caps">STS</span> will store it, thread it, and
let you label and search for it. Email, <span class="caps">RSS</span> feeds, notes, jabber and <span class="caps">IRC</span> logs,
web pages, RI documents—I want you to be able to throw them all in there. I
want you to be able to annotate any of those things by adding notes and
threading them against the original objects. Basically I want <span class="caps">STS</span> to be the
primary tool you use for organizing and recalling all the textual information
you&#8217;ve ever encountered in your life.</p>
<p>Cool, huh?</p>
<p>There&#8217;s another convenient benefit to this transformation: no one will expect
<span class="caps">STS</span> to act like a <span class="caps">MUA</span>. <span class="caps">STS</span> does its own storage. You add your email and your
other documents to the server and then you can throw those files away (or not).
There are no more questions of supporting <span class="caps">IMAP</span> or various mbox dialects or &#8220;why
doesn&#8217;t Sup  treat Maildir correctly&#8221;. The files are in <span class="caps">STS</span>, and once they&#8217;re
their, they&#8217;re out of your hands. You&#8217;ll be able to export them, of course, and
if you&#8217;re crazy you might be able to write an <span class="caps">IMAP</span> <em>server</em> translation layer
for <span class="caps">STS</span>, but there will be no more expectation of realtime Maildir handling. As
I explained in part I, that&#8217;s a game I don&#8217;t want to play.</p>
<p><span class="caps">STS</span> is a grander vision than a <span class="caps">MUA</span>, and it no longer has to be hobbled by the
constraints of being expected to act like one.</p>
<p>Some other nice benefits of reworking Sup into <span class="caps">SYS</span>:</p>
<ul>
	<li>You&#8217;ll be able to run multiple clients at once.</li>
	<li>It&#8217;s an opportunity to rework some things. For example, one of the most
noticeably slow operations in Sup (&#8220;Classic&#8221;) is assembling a large thread.
This is because I made a decision early on to do all threading at search time.
That made certain things easier (in particular, I could change the threading
model without having to rescan the entire index), but in retrospect the cost is
too high. <span class="caps">STS</span> will maintain document trees directly.</li>
	<li>I can replace Ferret with Sphinx. It&#8217;s been a good couple years, but the
periodic non-deterministic index corruption that&#8217;s been an issue for <a href="http://ferret.davebalmain.com/trac/ticket/279">over a
year</a> is an exit sign to me.
Working with Sphinx is nowhere nearly as nice as working with Ferret, but speed
and stability go a long way.</li>
</ul>
<p>I&#8217;ve been working on the code for <span class="caps">STS</span> on and off for the past couple weeks and
it&#8217;s slowly starting to come together. Once the major components have at least
been all sketched, I will host a git repo.</p>

<h4>Discussion</h4>
<a name="comments"></a>

<ul class="comment-tree">

  <li>
  
  <a name="old-comment-43"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author">John</td>
          <td class="comment-date" title="20 months ago"><a href="#old-comment-43">June 26, 2008 10:26am</a></td>
    </tr></table>
    <div class='comment-quote'>
<p>I believe this can be done without compromising the basic user experience,
which I would be very reluctant to do because it has been lovingly tweaked over
the years to be William&#8217;s Ideal Email Experience.</p>
</div><p class='first'>I love sup and I&#8217;m not bothered by any of the problems you describe so this
whole thread just seems philosophical and worrisome to me.  But I&#8217;m reassured
that you think you can do whatever without breaking the Ideal Email Experience.
Thanks again for sup!</p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-old-comment-43" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-old-comment-43' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='old-comment-43'/>
  <span class="form-result" id="form-result-old13-old-comment-43"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li><li>
  
  <a name="old-comment-42"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author">Anonymous</td>
          <td class="comment-date" title="20 months ago"><a href="#old-comment-42">July  3, 2008  7:54am</a></td>
    </tr></table>
    <p>I&#8217;m not sure not being able to move mails between stores and setting state is
such a big deal. But what is a showstopper, is that sup probably doesn&#8217;t save
the mails I send anywhere?</p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-old-comment-42" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-old-comment-42' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='old-comment-42'/>
  <span class="form-result" id="form-result-old13-old-comment-42"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li><li>
  
  <a name="old-comment-41"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author"><a href="http://masanjin.net/">William</a></td>
          <td class="comment-date" title="20 months ago"><a href="#old-comment-41">July  3, 2008  8:57pm</a></td>
    </tr></table>
    <p class='first'>Anonymous: Sup does save a copy of your send emails. Look in ~/.sup/sent.mbox.</p>
<p>Moving mails around between mailstores and setting state is a frequent request,
because people (rightly) expect Sup to behave like a regular <span class="caps">MUA</span> like mutt.</p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-old-comment-41" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-old-comment-41' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='old-comment-41'/>
  <span class="form-result" id="form-result-old13-old-comment-41"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li><li>
  
  <a name="old-comment-38"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author">Anonymous</td>
          <td class="comment-date" title="20 months ago"><a href="#old-comment-38">July  7, 2008  2:26pm</a></td>
    </tr></table>
    <div class='comment-quote'>
<p>Furthermore, Sup is aimed at the mailstores of the future (my present
mailstores), which are so big that mutt can&#8217;t handle them anyways.</p>
</div><p class='first'>Out of curiosity, what are your mailstores?  I ask because I&#8217;ve had to abandon
sup and go back to mutt, because anything over 50k messages, spread throughout
several Maildir mailstores, caused a <span class="caps">LOT</span> of instability and weird behavior in
sup, while mutt seems to handle everything without a hiccup.</p>
<p>Of course, I&#8217;m now growing ever-farther behind on keeping up with my mail,
since mutt makes it too easy to ignore things, but I had to make the trade-off
of &#8220;works&#8221; vs &#8220;global view&#8221;.</p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-old-comment-38" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-old-comment-38' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='old-comment-38'/>
  <span class="form-result" id="form-result-old13-old-comment-38"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li><li>
  
  <a name="old-comment-37"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author"><a href="http://masanjin.net/">William</a></td>
          <td class="comment-date" title="20 months ago"><a href="#old-comment-37">July 11, 2008 10:19am</a></td>
    </tr></table>
    <div class='comment-quote'>
<p class='first'>Out of curiosity, what are your mailstores? I ask because I&#8217;ve had to abandon
sup and go back to mutt, because anything over 50k messages, spread throughout
several Maildir mailstores, caused a <span class="caps">LOT</span> of instability and weird behavior in
sup, while mutt seems to handle everything without a hiccup.</p>
</div><p class='first'>I&#8217;ve always used mbox files. The only instability I&#8217;ve seen is Ferret&#8217;s
inevitable index corruption.</p>
<p>I don&#8217;t use Maildir, but I know a lot of people do. I&#8217;m surprised that you had
so much trouble because <span class="caps">AFAIK</span> they are all happy with it.</p>
<p>At any rate, I am in the midst of writing &#8220;Sup the Service&#8221; which should fix
these issues in that <strong>I</strong> will control how things are stored on disk. :)</p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-old-comment-37" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-old-comment-37' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='old-comment-37'/>
  <span class="form-result" id="form-result-old13-old-comment-37"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li><li>
  
  <a name="old-comment-36"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author">ryan</td>
          <td class="comment-date" title="20 months ago"><a href="#old-comment-36">July 15, 2008  4:10pm</a></td>
    </tr></table>
    <p class='first'>This makes a lot of sense. Is the follow-up to this post on the way? Have you
made any concrete decisions about sup&#8217;s future?</p>
<p>I ask because I&#8217;ve been meaning to try sup, and possibly switch over, for a
while now. This post stopped me in my tracks, though, since it implies that
sup&#8217;s future probably <em>isn&#8217;t</em> its current incarnation as a mail client.</p>
<p>Switching mail clients is a big thing. It&#8217;s at least a little traumatic for
most people, including me. If I&#8217;m going to do it, I&#8217;d like to know that I&#8217;m not
going to get stranded and have to switch again later.</p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-old-comment-36" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-old-comment-36' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='old-comment-36'/>
  <span class="form-result" id="form-result-old13-old-comment-36"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li><li>
  
  <a name="old-comment-35"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author"><a href="http://masanjin.net/">William</a></td>
          <td class="comment-date" title="20 months ago"><a href="#old-comment-35">July 15, 2008  6:07pm</a></td>
    </tr></table>
    <div class='comment-quote'>
<p>This makes a lot of sense. s the follow-up to this post on the way? Have you
made any concrete decisions about sup&#8217;s future?</p>
</div><p>The followup post is on the way, and Sup&#8217;s future is pretty concrete. I went on
vacation last week and spent a lot of time hacking on the foundation, so
progress is progressing.</p><div class='comment-quote'>
<p>Switching mail clients is a big thing. It&#8217;s at least a little traumatic for
most people, including me. If I&#8217;m going to do it, I&#8217;d like to know that I&#8217;m not
going to get stranded and have to switch again later.</p>
</div><p>I understand completely. <span class="caps">FWIW</span>, there will be an easy upgrade path to the new
Sup, and the interface will be the same, and it will be possible to get your
email back out of Sup if you decide it ain&#8217;t for you.</p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-old-comment-35" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-old-comment-35' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='old-comment-35'/>
  <span class="form-result" id="form-result-old13-old-comment-35"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li><li>
  
  <a name="old-comment-33"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author">Brendan</td>
          <td class="comment-date" title="19 months ago"><a href="#old-comment-33">July 20, 2008  3:12pm</a></td>
    </tr></table>
    <p class='first'>I&#8217;m a little scared by big grand software service visions.  There&#8217;s been lots
of failures to make big-ass browseable/searchable stores of one person&#8217;s
documents.  Well at least you&#8217;re constraining yourself to textual information
and it sounds like you have a specific use cases in mind.</p>
<p>case in point &#8230;</p>
<p><a href="http://chandlerproject.org/"><a href='http://chandlerproject.org/'>http://chandlerproject.org/</a></a>
your post makes it sound like their server.  but
try not to be like them&#8230;</p>
<p>OK well here&#8217;s a more positive example.  I&#8217;ve had a lot of success with a mac
application, Journler, for taking notes that go into categories/tags/dates,
plus draggable file attachments (finder replacement) plus full text search.
<a href="http://journler.com/">http://journler.com/</a></p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-old-comment-33" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-old-comment-33' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='old-comment-33'/>
  <span class="form-result" id="form-result-old13-old-comment-33"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li><li>
  
  <a name="old-comment-32"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author">ertai</td>
          <td class="comment-date" title="19 months ago"><a href="#old-comment-32">July 21, 2008  8:56am</a></td>
    </tr></table>
    <p class='first'>Great plans! Can&#8217;t wait to make the switch :)</p>
<p>This separation between the UI, and a fast/reliable/robust component is a very
good decision.</p>
<p>However do you think that Ruby is still the good choice for <span class="caps">STS</span>, I mean for the
fast/reliable/robust parts?</p>
<p>In the mean time I think the answer is yes, but having a good high-level
specification of the <span class="caps">STS</span> interface could help us to change it&#8217;s implementation
more easily.</p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-old-comment-32" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-old-comment-32' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='old-comment-32'/>
  <span class="form-result" id="form-result-old13-old-comment-32"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li><li>
  
  <a name="old-comment-28"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author"><a href="http://masanjin.net/">William</a></td>
          <td class="comment-date" title="19 months ago"><a href="#old-comment-28">July 21, 2008 11:52am</a></td>
    </tr></table>
    <div class='comment-quote'>
<p>I&#8217;m a little scared by big grand software service visions. There&#8217;s been lots of
failures to make big-ass browseable/searchable stores of one person&#8217;s
documents.</p>
</div><p class='first'>I hear ya. But this isn&#8217;t really that grand of a vision, at least not
incrementally from what&#8217;s there now. You take Sphinx + some kind of a document
store (I&#8217;m using &#8220;files on disk&#8221; for now) + Thrift for the interface + Sup&#8217;s
email threading code, and glue it together with a little logic. Hardly a
Chandler.</p>
<p>Journler seems based on a similar idea, though I think I&#8217;m envisioning
something more cohesive. Hard to say without using it. Maybe I&#8217;ll give it a try
when I&#8217;m at work and have access to a macintosh apple computer.</p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-old-comment-28" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-old-comment-28' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='old-comment-28'/>
  <span class="form-result" id="form-result-old13-old-comment-28"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li><li>
  
  <a name="old-comment-27"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author"><a href="http://masanjin.net/">William</a></td>
          <td class="comment-date" title="19 months ago"><a href="#old-comment-27">July 21, 2008 12:19pm</a></td>
    </tr></table>
    <div class='comment-quote'>
<p>However do you think that Ruby is still the good choice for <span class="caps">STS</span>, I mean for
the fast/reliable/robust parts?</p>
</div><p>Definitely, because 1. I don&#8217;t want to write in any other language, and 2. the
computational and IO bottleneck is the search, and that&#8217;s not in Ruby.</p><div class='comment-quote'>
<p>In the mean time I think the answer is yes, but having a good high-level
specification of the <span class="caps">STS</span> interface could help us to change it&#8217;s implementation
more easily.</p>
</div><p>Yes, definitely. I will publish the Thrift interface once it&#8217;s gelled a bit
more and we call all write Erlang backends for it. :)</p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-old-comment-27" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-old-comment-27' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='old-comment-27'/>
  <span class="form-result" id="form-result-old13-old-comment-27"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li><li>
  
  <a name="old-comment-24"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author">Adrian Quark</td>
          <td class="comment-date" title="19 months ago"><a href="#old-comment-24">July 29, 2008  7:31pm</a></td>
    </tr></table>
    <p class='first'>I like sup&#8217;s UI and focus on indexing/tagging over folders, but the idea of sup
storing my mail in some opaque format is a huge turn-off.  I&#8217;ve had to move my
mail between clients too many times to trust it to anything but a dead-simple
plaintext format like Maildir or mbox.  If I wanted to be tied to a specific
platform, I&#8217;d just use GMail.</p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-old-comment-24" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-old-comment-24' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='old-comment-24'/>
  <span class="form-result" id="form-result-old13-old-comment-24"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li><li>
  
  <a name="old-comment-20"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author"><a href="http://masanjin.net/">William</a></td>
          <td class="comment-date" title="19 months ago"><a href="#old-comment-20">August  3, 2008 12:26pm</a></td>
    </tr></table>
    <div class='comment-quote'>
<p>I like sup&#8217;s UI and focus on indexing/tagging over folders, but the idea of
sup storing my mail in some opaque format is a huge turn-off.</p>
</div><p class='first'>Sadly, that&#8217;s the only way I can reasonably support the kinds of things
that I want Sup to do. Sup has never really supported mbox, Maildir, etc. very
well, because it just wasn&#8217;t able to handle the concurrent modifications files
in these formats undergo when there&#8217;s more than one client involved.</p>
<p>With the addition of non-email document types, a custom format kinda makes
sense.</p>
<p>If it makes you feel any better, there will be tools to extract content from
Sup into standard formats.</p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-old-comment-20" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-old-comment-20' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='old-comment-20'/>
  <span class="form-result" id="form-result-old13-old-comment-20"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li><li>
  
  <a name="old-comment-17"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author">Kelly Clowers</td>
          <td class="comment-date" title="18 months ago"><a href="#old-comment-17">August 21, 2008 11:09am</a></td>
    </tr></table>
    <p>Sounds kind of like Akonadi
<a href="http://pim.kde.org/akonadi/"><a href='http://pim.kde.org/akonadi/'>http://pim.kde.org/akonadi/</a></a></p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-old-comment-17" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-old-comment-17' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='old-comment-17'/>
  <span class="form-result" id="form-result-old13-old-comment-17"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li><li>
  
  <a name="old-comment-12"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author">madduck</td>
          <td class="comment-date" title="17 months ago"><a href="#old-comment-12">October 14, 2008  3:03am</a></td>
    </tr></table>
    <p class='first'>I sincerely hope that you will rewrite sup so that tags and all the other
metadata you can attach to messages will be <span class="caps">IMAP</span>-synchronisable. Many of us use
two or more computers, and it would be useless if we had to maintain tags
independently on two machines. In fact, it would send us right back into
POP2/POP3 land.</p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-old-comment-12" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-old-comment-12' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='old-comment-12'/>
  <span class="form-result" id="form-result-old13-old-comment-12"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li><li>
  
  <a name="a61a55e6796d6b43e3aea11aa39a2a19"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author">Jason White</td>
          <td class="comment-date" title="10 months ago"><a href="#a61a55e6796d6b43e3aea11aa39a2a19">April 19, 2009  8:45am</a></td>
    </tr></table>
    <p class='first'>I like the idea of Sup the Service, as long as there is an NCurses interface
to it, as planned.</p>
<p>After reading about Sup on a mailing list, I considered switching fro Mutt,
but decided not to due to the lack of proper mailbox handling. However, I have
no objection to having messages stored in a database (perhaps I could extract
all those compressed tar files of old e-mail and index the lot!). The
robustness of a proper database would help &#8211; I&#8217;m thinking of atomic
operations, and the data integrity guarantees provided by proper database
systems.</p>
<p>Of course, the concept could be extended, as suggested, to blog posts, <span class="caps">RSS</span>
feeds, <span class="caps">NNTP</span> newsgroups, and so forth.</p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-a61a55e6796d6b43e3aea11aa39a2a19" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-a61a55e6796d6b43e3aea11aa39a2a19' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='a61a55e6796d6b43e3aea11aa39a2a19'/>
  <span class="form-result" id="form-result-old13-a61a55e6796d6b43e3aea11aa39a2a19"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li><li>
  
  <a name="50c37be9028a5612b33954b8e5a4aa04"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author">Graham Dunn</td>
          <td class="comment-date" title="10 months ago"><a href="#50c37be9028a5612b33954b8e5a4aa04">May 13, 2009  7:41pm</a></td>
    </tr></table>
    <p>On Wed, May 13, 2009 at 2:11 PM, William Morgan &lt;comments@all-thing.net&gt;wrote:</p><div class='comment-quote'>
<p class='first'>on
quoted.
settings.
In &#8220;Rethinking Sup part I&#8221;:
<a href='http://all-thing.net/2008/06/rethinking-sup.html,'>http://all-thing.net/2008/06/rethinking-sup.html,</a> I
concluded that Sup the <span class="caps">MUA</span> is an evolutionary dead end, and that the future
lies in Sup the Service (<span class="caps">STS</span>). But what does that mean?</p>
</div><p>Did you ever use Zoe (back in the pre-gmail days)? It was a java app that
you fed mail into and would Lucene everything and give you back a web
interface with things sliced up by keywords / attachments / threads / etc.</p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-50c37be9028a5612b33954b8e5a4aa04" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-50c37be9028a5612b33954b8e5a4aa04' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='50c37be9028a5612b33954b8e5a4aa04'/>
  <span class="form-result" id="form-result-old13-50c37be9028a5612b33954b8e5a4aa04"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li><li>
  
  <a name="21840c769fc7fc0579b161237d9bd2a2"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author">Jason White</td>
          <td class="comment-date" title="9 months ago"><a href="#21840c769fc7fc0579b161237d9bd2a2">May 31, 2009  5:28am</a></td>
    </tr></table>
    <div class='comment-quote' title="William Morgan &lt;comments@all-thing.net&gt; wrote:">
<p class='first'>But reworking Sup is a great time to extend its original goals. In particular,
I would love for <span class="caps">STS</span> to handle to other types of documents besides email. I&#8217;ve
always used my inbox as a mechanism for writing notes to myself. I&#8217;ve
experimented briefly with reading <span class="caps">RSS</span> feeds through it. I&#8217;d like <span class="caps">STS</span> to support
email, of course, but not to be limited by it.</p>
<p>My grand vision: <em><span class="caps">STS</span> will be a searchable, labelable, threaded view of large
numbers of documents.</em></p>
</div><p class='first'>There&#8217;s an even more grand vision coming from developers at Google.
<a href='http://wave.google.com/'>http://wave.google.com/</a>
http://www.waveprotocol.org/
(It&#8217;s based on <span class="caps">XMPP</span>, and combines features of e-mail, collaborative document
editing &#8211; wiki style &#8211; and instant messages). It would be nice to bring
something with these capabilities into one&#8217;s ncurses environment.</p>
<p>At least the specifications will be implementable in free software, and Google
have foreshadowed the release of source code under free terms.</p>
<p>Whether this turns out to be a significant protocol on the net or not in years
ahead, it&#8217;s at least worth looking at closely now.</p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-21840c769fc7fc0579b161237d9bd2a2" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-21840c769fc7fc0579b161237d9bd2a2' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='21840c769fc7fc0579b161237d9bd2a2'/>
  <span class="form-result" id="form-result-old13-21840c769fc7fc0579b161237d9bd2a2"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li><li>
  
  <a name="11f4e15f5e98ee2e9f9326b04bed986a"></a>
  <div class="comment-body">
    <table class="comment-byline">
      <tr><td class="comment-author">martin f. krafft</td>
          <td class="comment-date" title="five months ago"><a href="#11f4e15f5e98ee2e9f9326b04bed986a">September 30, 2009 10:23pm</a></td>
    </tr></table>
    <div class='comment-quote' title="also sprach William Morgan &lt;comments@all-thing.net&gt; [2009.09.30.2352 +0200]:">
<p>My grand vision: <em><span class="caps">STS</span> will be a searchable, labelable, threaded view of large
numbers of documents.</em></p>
</div><p class='first'>I read up until here and thought &#8220;cool&#8221;, but then I lost hope.
I don&#8217;t think the desktop will be important in the future. Given
mobile devices and ubiquitous computing, we need to focus on data
synchronisation and offline operation, not the desktop.</p>
<p>And apart from that, I think small visions that turn into working
things are preferable than grand visions.</p>
<p>&#8212; 
martin | <a href='http://madduck.net/'>http://madduck.net/</a> | http://two.sentenc.es/
 
&#8220;they redundantly repeated themselves over and over,
 incessantly without end and ad infinitum&#8221;
                                                             &#8212; ibid
 
spamtraps: madduck.bogus@madduck.net</p>
    <div class="reply-to-outer">
      <div class="reply-to-header"><a href="#" class="reply-to-link">reply</a></div>
      <div class="reply-to-box" id="reply-to-old13-11f4e15f5e98ee2e9f9326b04bed986a" >
        <span class="comment-instructions">To reply, enter your email address. A copy of the comment will be sent to you via email.</span>
        <form id='comment-form-old13-11f4e15f5e98ee2e9f9326b04bed986a' action='/comment/old13' method='post' class='comment-form'>
          <input type='text' name='email' id='textfield-email'/>
          <input type='submit' value='email me' id='submit-email me'/>
        <input type='hidden' name='comment-id' value='11f4e15f5e98ee2e9f9326b04bed986a'/>
  <span class="form-result" id="form-result-old13-11f4e15f5e98ee2e9f9326b04bed986a"><!-- spanna --></span>
</form>

      </div>
    </div>
  </div>

  </li>
  
</ul>

<p class="comment-instructions">To leave a new comment, enter your email
address. A copy of the article will be sent to you via email.</p>
<form id='comment-form-old13' action='/comment/old13' method='post' class='comment-form'>
  <input type='text' name='email' id='textfield-email'/>
  <input type='submit' value='email me' id='submit-email me'/>
  <span class="form-result" id="form-result-old13"><!-- spanna --></span>
</form>


<script type="text/javascript">
/* <![CDATA[ */
$$('.comment-form').addEvent('submit', function(e) {
  e.stop();
  var el = this.getElement('.form-result');
  var result = el.empty().addClass('ajax-loading');
  this.set('send', {
    method: 'post',
    onComplete: function(response) { 
      result.removeClass('ajax-loading');
      result.set('html', response);
    },
  });
  this.send();
});
/* ]]> */
</script>


<script type="text/javascript">
/* <![CDATA[ */
$$('.reply-to-link').each(function(link, i) {
  var box = link.getParent().getParent().getElement('.reply-to-box');
  var oldHeight = box.getStyle("height");
  box.setStyle("height", 0);
  box.setStyle("opacity", 0);
  link.addEvent('click', function(e) {
    e.stop();
    box.setStyle("opacity", 1);
    box.setStyle("height", oldHeight);
    box.getElement("input").focus();
  });
});
/* ]]> */
</script>

  </div>

  <div id="footer" style="margin: 0px;">
    Served up by <a href="http://masanjin.net/whisper/">Whisper</a>. Yes!
  </div>
</div>
</body>
</html>
