<?xml version="1.0" encoding="utf-8"?>
<feed
    xmlns="http://www.w3.org/2005/Atom"
    xmlns:at="http://www.sixapart.com/ns/at"
    xmlns:icbm="http://postneo.com/icbm"
    xmlns:rvw="http://purl.org/NET/RVW/0.2/"
    xml:lang="en">
    <title>Paul&#39;s Vox</title>
    <link rel="self" type="application/atom+xml" title="Paul&#39;s Vox (Atom)" href="http://paul.vox.com/library/posts/page/1/atom.xml" />
    <link rel="alternate" type="text/html" title="Paul&#39;s Vox" href="http://paul.vox.com/library/posts/page/1/"/> 
    <link rel="service.post" type="application/atom+xml" title="Paul&#39;s Vox" href="http://www.vox.com/services/atom/svc=post/collection_id=6a00b8ea067b33dece00b8ea067b35dece" /> 
    <link rel="service.subscribe" type="application/atom+xml" title="Paul&#39;s Vox" href="http://paul.vox.com/library/posts/atom.xml" />    
    <link rel="next" type="application/atom+xml" title="Paul&#39;s Vox" href="http://paul.vox.com/library/posts/page/2/atom.xml" /> 
    <link rel="last" type="application/atom+xml" title="Paul&#39;s Vox" href="http://paul.vox.com/library/posts/page/9/atom.xml" />  
    <generator uri="http://www.vox.com/">Vox</generator>
    <updated>2009-10-07T23:30:07Z</updated> 
    <author>
        <name>Paul</name>
        <uri>http://paul.vox.com/?_c=feed-atom-full</uri>
    </author> 
    <id>tag:vox.com,2006:6p00b8ea067b33dece/</id>  
    
    <entry>
        <title>Gopher on MTV</title>   
        <link rel="alternate" type="text/html" title="Gopher on MTV" href="http://paul.vox.com/library/post/gopher-on-mtv.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="Gopher on MTV" href="http://paul.vox.com/library/post/gopher-on-mtv.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="Gopher on MTV" href="http://www.vox.com/atom/svc=post/asset_id=6a00b8ea067b33dece01101613cfc1860b" />            <id>tag:vox.com,2009-06-08:asset-6a00b8ea067b33dece01101613cfc1860b</id>
        <published>2009-06-08T20:19:45Z</published>
        <updated>2009-10-07T23:30:07Z</updated>
    
        <author>
            <name>Paul</name>
            <uri>http://paul.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://paul.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p>I dug this little gem out of the archives. &#160;Enjoy!<div><br /></div><div>
    
    
    





        





<div at:enclosure="asset" at:xid="6a00b8ea067b33dece01101613cfb8860b" at:format="extra-large" at:align="center"
    class="enclosure enclosure-center enclosure-extra-large video-enclosure" 
     style="text-align: center;">
<div class="enclosure-inner"
    
        style="padding: 9px; border: 1px solid; width: px; margin: 10px auto;"
    >
    <div class="enclosure-list">
        <div class="enclosure-item video-asset last">
    
            <div class="enclosure-image">
        
                <a href="http://paul.vox.com/library/video/6a00b8ea067b33dece01101613cfb8860b.html"><img src="http://a0.vox.com/6a00b8ea067b33dece01101613cfb8860b-500pi" alt="Gopher World Tour T-Shirt on MTV" title="Gopher World Tour T-Shirt on MTV" /></a>
        
            </div>
            <div class="enclosure-meta">
                <div class="enclosure-asset-name"><a href="http://paul.vox.com/library/video/6a00b8ea067b33dece01101613cfb8860b.html" title="Gopher World Tour T-Shirt on MTV">Gopher World Tour T-Shirt on MTV</a></div>
            </div>
    
        </div>
    </div>
</div>
</div><!-- end enclosure -->
</div><div><br /></div></p>   <p style="clear:both;"> 
    <a href="http://paul.vox.com/library/post/gopher-on-mtv.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00b8ea067b33dece01101613cfc1860b?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    </entry> 
    
    <entry>
        <title>Email Clients Full Circle</title>   
        <link rel="alternate" type="text/html" title="Email Clients Full Circle" href="http://paul.vox.com/library/post/email-clients-full-circle.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="Email Clients Full Circle" href="http://paul.vox.com/library/post/email-clients-full-circle.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="Email Clients Full Circle" href="http://www.vox.com/atom/svc=post/asset_id=6a00b8ea067b33dece0110182fb447860f" />          <id>tag:vox.com,2009-06-03:asset-6a00b8ea067b33dece0110182fb447860f</id>
        <published>2009-06-03T18:23:33Z</published>
        <updated>2009-06-11T17:10:54Z</updated>
    
        <author>
            <name>Paul</name>
            <uri>http://paul.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://paul.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p>In the beginning I used elm to read my mail. &#160;This was somewhat radical, especially as I worked with the team that created <a href="http://en.wikipedia.org/wiki/POPmail">POPMail</a> for the mac and <a href="http://en.wikipedia.org/wiki/Minnesota_Internet_Users_Essential_Tool">Minuet</a> for the PC, and everyone else moved to pine. &#160;Then came <a href="http://www.mutt.org/">Mutt</a> -- happy days -- I was able to slice and dice email with amazing speed.<div><br /></div><div>A couple of years ago I converted over to Mail.app -- mostly because of the contacts and calendar integrations, and the fact that I could merge personal email and corp email accounts. &#160;In the intervening time I had to move to comcast, which meant running my own imap server proved more difficult than it was worth, so I moved to Google Apps for Your Domain, all of a sudden my personal domain is running Gmail, and I discovered it has key bindings.</div><div><br /></div><div>All of a sudden it&#39;s mutt deja-vu. navigation with vi j/k keys? yes. &#160;Single window view (inbox/message)? yes again. &#160;Tagging messages? yes. &#160;Blazingly fast? you bet. &#160;The only thing I miss is keystroke filtering of messages.</div><div><br /></div><div>That&#39;s one reason why I see things like Google Wave working out so well, I might be late to the gmail party, but plenty of folks have been using this as their primary mode of communication for a long long time.</div><div><br /></div><div><br /></div></p>   <p style="clear:both;"> 
    <a href="http://paul.vox.com/library/post/email-clients-full-circle.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00b8ea067b33dece0110182fb447860f?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    </entry> 
    
    <entry>
        <title>Tomcat and SSL Accelerators</title>   
        <link rel="alternate" type="text/html" title="Tomcat and SSL Accelerators" href="http://paul.vox.com/library/post/tomcat-and-ssl-accelerators.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="Tomcat and SSL Accelerators" href="http://paul.vox.com/library/post/tomcat-and-ssl-accelerators.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="Tomcat and SSL Accelerators" href="http://www.vox.com/atom/svc=post/asset_id=6a00b8ea067b33dece011015f89ce2860b" />          <id>tag:vox.com,2009-04-09:asset-6a00b8ea067b33dece011015f89ce2860b</id>
        <published>2009-04-09T19:24:21Z</published>
        <updated>2009-06-25T19:46:02Z</updated>
    
        <author>
            <name>Paul</name>
            <uri>http://paul.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://paul.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p>Using an SSL Accelerator like a Netscaler is really useful, you can offload a lot of work to a device that supports this in hardware and can use SSL session affinity to send requests to the same backend. &#160;In the simplest setup the SSL Accelerator accepts the request and proxies it to your internal set of hosts running on port 80.<div><br /></div><div>However, code that generates redirects and URLs works poorly because the servletRequest.getScheme(), getSecure() and getServerPort() will return http/false/80 for SSL and non-SSL connections.</div><div><br /></div><div>One way to solve this is listen on multiple ports. &#160;Create a Connection on 80 and 443, but do not run SSL on either port. &#160;Then for the 443 port you configure it with secure=&quot;true&quot; and scheme=&quot;https&quot;. &#160;This is suboptimal however as then you have to manage yet another server pool in your load balancer and you end up sending twice the health checks. &#160;Not so good.</div><div><br /></div><div>You might try to solve this by using a ServletFilter. &#160;You can use an <em>HttpServletRequestWrapper</em> instance to change the scheme/port/and secure flag. &#160;Sadly this doesn&#39;t work, because of the way tomcat implements <em>HttpServletResponse</em>, it uses the original request object to ascertain the scheme/secure flag/port. &#160;Overriding these will allow application logic to see the updated values. &#160;You get into trouble when you call encodeRedirectURL() or sendRedirect() with non-absolute URLs.</div><div><br /></div><div>Lucky for us Tomcat supports a way to inject code into the connection handling phase via <a href="http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html">Valves</a>. &#160;A valve can query and alter the Catalina and Coyote request objects before the first filter is run. &#160;</div><div><br /></div><div>To make your Valve work you&#39;ll need to configure your load balancer to send a special header when SSL is in use. &#160;On the Netscaler this can be done by <a href="http://support.citrix.com/article/CTX109881">setting owa_support on</a>. &#160;With that enabled the http header <em>Front-End-Https: On</em> is sent for requests that use SSL.</div><div><br /></div><div>Once we have these pieces in place the Valve is fairly straightforward:</div><div><br /></div><blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><p>import java.io.IOException;</p><p>import javax.servlet.ServletException;</p><p>import org.apache.catalina.connector.Request;<br />import org.apache.catalina.connector.Response;<br />import org.apache.catalina.valves.ValveBase;</p><p>public class NetscalerSSLValve extends ValveBase {</p><p>&#160;&#160; &#160; &#160; &#160;@Override<br />&#160;&#160; &#160; &#160; &#160;public void invoke(Request req, Response resp) throws IOException, ServletException {<br />&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;if (&quot;On&quot;.equals(req.getHeader(&quot;Front-End-Https&quot;))) {<br />&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;req.setSecure(true);<br />&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;req.getCoyoteRequest().scheme().setString(&quot;https&quot;);<br />&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;req.getCoyoteRequest().setServerPort(443);<br />&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;}<br />&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;if ( getNext() != null ) {<br />&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;getNext().invoke(req, resp);<br />&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;}<br />&#160;&#160; &#160; &#160; &#160;}<br />}</p></blockquote><div><br /></div><div>Compile this, stick it in the tomcat lib directory, add an entry in your server.xml and away you go.</div></p>   <p style="clear:both;"> 
    <a href="http://paul.vox.com/library/post/tomcat-and-ssl-accelerators.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00b8ea067b33dece011015f89ce2860b?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    <category term="java" scheme="http://paul.vox.com/tags/java/" label="java" /> 
    <category term="tomcat" scheme="http://paul.vox.com/tags/tomcat/" label="tomcat" /> 
    <category term="netscaler" scheme="http://paul.vox.com/tags/netscaler/" label="netscaler" /> 
    </entry> 
    
    <entry>
        <title>Google I/O Today</title>   
        <link rel="alternate" type="text/html" title="Google I/O Today" href="http://paul.vox.com/library/post/google-io-today.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="Google I/O Today" href="http://paul.vox.com/library/post/google-io-today.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="Google I/O Today" href="http://www.vox.com/atom/svc=post/asset_id=6a00b8ea067b33dece00fad68b46db0005" />          <id>tag:vox.com,2008-05-28:asset-6a00b8ea067b33dece00fad68b46db0005</id>
        <published>2008-05-28T14:33:28Z</published>
        <updated>2008-05-28T14:33:28Z</updated>
    
        <author>
            <name>Paul</name>
            <uri>http://paul.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://paul.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p>Speaking at &quot;Meet the Containers&quot;, &quot;Shindig 101&quot; and &quot;OpenSocial Fireside Chat&quot;.</p><p>All at Moscone West, check it out!</p><p><a href="http://code.google.com/events/io/">http://code.google.com/events/io/</a><br /> </p>   <p style="clear:both;"> 
    <a href="http://paul.vox.com/library/post/google-io-today.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00b8ea067b33dece00fad68b46db0005?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    <category term="google" scheme="http://paul.vox.com/tags/google/" label="google" /> 
    <category term="shindig" scheme="http://paul.vox.com/tags/shindig/" label="shindig" /> 
    <category term="opensocial" scheme="http://paul.vox.com/tags/opensocial/" label="opensocial" /> 
    </entry> 
    
    <entry>
        <title>The Mysteries of Java Character Set Performance</title>   
        <link rel="alternate" type="text/html" title="The Mysteries of Java Character Set Performance" href="http://paul.vox.com/library/post/the-mysteries-of-java-character-set-performance.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="The Mysteries of Java Character Set Performance" href="http://paul.vox.com/library/post/the-mysteries-of-java-character-set-performance.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="The Mysteries of Java Character Set Performance" href="http://www.vox.com/atom/svc=post/asset_id=6a00b8ea067b33dece00f48cf3bcae0003" />          <id>tag:vox.com,2008-05-01:asset-6a00b8ea067b33dece00f48cf3bcae0003</id>
        <published>2008-05-01T08:22:08Z</published>
        <updated>2009-11-04T21:12:04Z</updated>
    
        <author>
            <name>Paul</name>
            <uri>http://paul.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://paul.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;"><p><span class="Apple-style-span" style="font-style: italic;">&quot;Two Characters Sets? &#160;Seems like plenty!&quot;</span></p></blockquote><div><br /></div><p>So I&#39;ve been pushing Java to it&#39;s limits lately and finding some real nasty concurrency issues inside the JRE code itself. &#160;Here&#39;s one particulary ugly one -- we had 700 threads stuck here:<div><br /></div><div><div>&#160;&#160; &#160; &#160; java.lang.Thread.State: BLOCKED (on object monitor) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div><div>&#160;&#160; &#160; &#160; &#160; at sun.nio.cs.FastCharsetProvider.charsetForName(FastCharsetProvider.java:118)</div></div><div>&#160;&#160; &#160; &#160; &#160; - waiting to lock &lt;0x00002aab4cdf91b8&gt; (a sun.nio.cs.StandardCharsets)</div><div><div>&#160;&#160; &#160; &#160; &#160; at java.nio.charset.Charset.lookup2(Charset.java:450)&#160;</div><div>&#160;&#160; &#160; &#160; &#160; at java.nio.charset.Charset.lookup(Charset.java:438)</div><div>&#160;&#160; &#160; &#160; &#160; at java.nio.charset.Charset.isSupported(Charset.java:480)&#160;</div><div>&#160;&#160; &#160; &#160; &#160; at java.lang.StringCoding.lookupCharset(StringCoding.java:85)&#160;</div><div>&#160;&#160; &#160; &#160; &#160; at java.lang.StringCoding.decode(StringCoding.java:165)&#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;</div><div>&#160;&#160; &#160; &#160; &#160; at java.lang.String.&lt;init&gt;(String.java:516)&#160;</div><div><br /></div><div>Digging deeper we find the lookupCharset is called all over the place. &#160;The app in question is functions as a web proxy, so it&#39;s constantly reading and writing data from web pages in a variety of character sets. &#160;The method charsetForName() uses a synchronized data structure to lookup defined character sets. &#160;(Yay serialized access....)</div><div><br /></div><div>But wait, lookup and lookup2 provide us with a cache so we can avoid the big bad synchronized method.. &#160;Sigh, here&#39;s the implementation:</div><div><br /></div><div><div>&#160;&#160; &#160; private static Charset lookup(String charsetName) {</div><div>&#160;&#160; &#160; &#160; &#160; if (charsetName == null)</div><div>&#160;&#160; &#160; &#160; &#160; &#160; &#160; throw new IllegalArgumentException(&quot;Null charset name&quot;);</div><div>&#160;</div><div>&#160;&#160; &#160; &#160; &#160; Object[] a;</div><div>&#160;&#160; &#160; &#160; &#160; if ((a = cache1) != null &amp;&amp; charsetName.equals(a[0]))</div><div>&#160;&#160; &#160; &#160; &#160; &#160; &#160; return (Charset)a[1];</div><div>&#160;&#160; &#160; &#160; &#160; // We expect most programs to use one Charset repeatedly.</div><div>&#160;&#160; &#160; &#160; &#160; // We convey a hint to this effect to the VM by putting the</div><div>&#160;&#160; &#160; &#160; &#160; // level 1 cache miss code in a separate method.</div><div>&#160;&#160; &#160; &#160; &#160; return lookup2(charsetName);</div><div>&#160;&#160; &#160; }</div><div>&#160;</div><div>&#160;&#160; &#160; private static Charset lookup2(String charsetName) {</div><div>&#160;&#160; &#160; &#160; &#160; Object[] a;</div><div>&#160;&#160; &#160; &#160; &#160; if ((a = cache2) != null &amp;&amp; charsetName.equals(a[0])) {</div><div>&#160;&#160; &#160; &#160; &#160; &#160; &#160; cache2 = cache1;</div><div>&#160;&#160; &#160; &#160; &#160; &#160; &#160; cache1 = a;</div><div>&#160;&#160; &#160; &#160; &#160; &#160; &#160; return (Charset)a[1];</div><div>&#160;&#160; &#160; &#160; &#160; }</div><div>&#160;</div><div>&#160;&#160; &#160; &#160; &#160; Charset cs;</div><div>&#160;&#160; &#160; &#160; &#160; if ((cs = standardProvider.charsetForName(charsetName)) != null ||</div><div>&#160;&#160; &#160; &#160; &#160; &#160; &#160; (cs = lookupExtendedCharset(charsetName)) &#160; &#160; &#160; &#160; &#160; != null ||</div><div>&#160;&#160; &#160; &#160; &#160; &#160; &#160; (cs = lookupViaProviders(charsetName)) &#160; &#160; &#160; &#160; &#160; &#160; &#160;!= null)</div><div>&#160;&#160; &#160; &#160; &#160; {</div><div>&#160;&#160; &#160; &#160; &#160; &#160; &#160; cache(charsetName, cs);</div><div>&#160;&#160; &#160; &#160; &#160; &#160; &#160; return cs;</div><div>&#160;&#160; &#160; &#160; &#160; }</div><div>&#160;</div><div>&#160;&#160; &#160; &#160; &#160; /* Only need to check the name if we didn&#39;t find a charset for it */</div><div>&#160;&#160; &#160; &#160; &#160; checkName(charsetName);</div><div>&#160;&#160; &#160; &#160; &#160; return null;</div><div>&#160;&#160; &#160; }</div><div><br /></div><div>Yes, a whopping 2-entry cache!!</div><div><br /></div><div>Also, the keys used are not canonical, so if my app asks for &quot;UTF-8&quot;, &quot;utf-8&quot;, and &quot;ISO-8859-1&quot; with regularity this 2 entry cache is worthless, every call ends up blocking in the evil thread-synchronized data structure.</div><div><br /></div><div>Someone send them a copy of the ConcurrentHashMap doc. &#160;please.</div><div><br /></div><div>&lt;/rant&gt; ....</div><div><br /></div></div></div></p>   <p style="clear:both;"> 
    <a href="http://paul.vox.com/library/post/the-mysteries-of-java-character-set-performance.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00b8ea067b33dece00f48cf3bcae0003?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    </entry> 
    
    <entry>
        <title>Social Graph Meat-up</title>   
        <link rel="alternate" type="text/html" title="Social Graph Meat-up" href="http://paul.vox.com/library/post/social-graph-meat-up.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="Social Graph Meat-up" href="http://paul.vox.com/library/post/social-graph-meat-up.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="Social Graph Meat-up" href="http://www.vox.com/atom/svc=post/asset_id=6a00b8ea067b33dece00e398d8e13f0003" />            <id>tag:vox.com,2008-02-03:asset-6a00b8ea067b33dece00e398d8e13f0003</id>
        <published>2008-02-03T06:24:05Z</published>
        <updated>2008-02-03T07:20:07Z</updated>
    
        <author>
            <name>Paul</name>
            <uri>http://paul.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://paul.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p>Dinner not for vegans at O&#39;Reilly.
    
    
    
<div at:enclosure="asset" at:xid="6a00b8ea067b33dece00e398d8e1700005" at:format="extra-large" at:align="center"
    class="enclosure enclosure-center enclosure-extra-large photo-enclosure" 
     style="text-align: center;">
<div class="enclosure-inner"
    
        style="padding: 9px; border: 1px solid; width: px; margin: 10px auto;"
    >
    <div class="enclosure-list">
        <div class="enclosure-item photo-asset last">
    
            <div class="enclosure-image">
        
                <a href="http://paul.vox.com/library/photo/6a00b8ea067b33dece00e398d8e1700005.html"><img src="http://a0.vox.com/6a00b8ea067b33dece00e398d8e1700005-500pi" alt="Social Graph Meat-up" title="Social Graph Meat-up" /></a>
        
            </div>
            <div class="enclosure-meta">
                <div class="enclosure-asset-name"><a href="http://paul.vox.com/library/photo/6a00b8ea067b33dece00e398d8e1700005.html" title="Social Graph Meat-up">Social Graph Meat-up</a></div>
            </div>
    
        </div>
    </div>
</div>
</div><!-- end enclosure -->

</p>   <p style="clear:both;"> 
    <a href="http://paul.vox.com/library/post/social-graph-meat-up.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00b8ea067b33dece00e398d8e13f0003?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    <category term="mobile" scheme="http://paul.vox.com/tags/mobile/" label="mobile" /> 
    <category term="sgfoo2008" scheme="http://paul.vox.com/tags/sgfoo2008/" label="sgfoo2008" /> 
    </entry> 
    
    <entry>
        <title>Opensocial Hackathon Results!</title>   
        <link rel="alternate" type="text/html" title="Opensocial Hackathon Results!" href="http://paul.vox.com/library/post/opensocial-hackathon-results.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="Opensocial Hackathon Results!" href="http://paul.vox.com/library/post/opensocial-hackathon-results.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="Opensocial Hackathon Results!" href="http://www.vox.com/atom/svc=post/asset_id=6a00b8ea067b33dece00e398d331090004" />            <id>tag:vox.com,2008-01-17:asset-6a00b8ea067b33dece00e398d331090004</id>
        <published>2008-01-17T05:34:52Z</published>
        <updated>2008-01-17T07:04:20Z</updated>
    
        <author>
            <name>Paul</name>
            <uri>http://paul.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://paul.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p>Battleship running in hi5.<br />
    
    
    
<div at:enclosure="asset" at:xid="6a00b8ea067b33dece00e398d33adf0003" at:format="extra-large" at:align="center"
    class="enclosure enclosure-center enclosure-extra-large photo-enclosure" 
     style="text-align: center;">
<div class="enclosure-inner"
    
        style="padding: 9px; border: 1px solid; width: px; margin: 10px auto;"
    >
    <div class="enclosure-list">
        <div class="enclosure-item photo-asset last">
    
            <div class="enclosure-image">
        
                <a href="http://paul.vox.com/library/photo/6a00b8ea067b33dece00e398d33adf0003.html"><img src="http://a7.vox.com/6a00b8ea067b33dece00e398d33adf0003-500pi" alt="Opensocial Hackathon Results!" title="Opensocial Hackathon Results!" /></a>
        
            </div>
            <div class="enclosure-meta">
                <div class="enclosure-asset-name"><a href="http://paul.vox.com/library/photo/6a00b8ea067b33dece00e398d33adf0003.html" title="Opensocial Hackathon Results!">Opensocial Hackathon Results!</a></div>
            </div>
    
        </div>
    </div>
</div>
</div><!-- end enclosure -->

</p>   <p style="clear:both;"> 
    <a href="http://paul.vox.com/library/post/opensocial-hackathon-results.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00b8ea067b33dece00e398d331090004?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    <category term="mobile" scheme="http://paul.vox.com/tags/mobile/" label="mobile" /> 
    </entry> 
    
    <entry>
        <title>Tired</title>   
        <link rel="alternate" type="text/html" title="Tired" href="http://paul.vox.com/library/post/tired.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="Tired" href="http://paul.vox.com/library/post/tired.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="Tired" href="http://www.vox.com/atom/svc=post/asset_id=6a00b8ea067b33dece00e398ca41730005" />          <id>tag:vox.com,2007-12-21:asset-6a00b8ea067b33dece00e398ca41730005</id>
        <published>2007-12-21T00:56:27Z</published>
        <updated>2007-12-21T00:56:27Z</updated>
    
        <author>
            <name>Paul</name>
            <uri>http://paul.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://paul.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p>Why am I so tired?</p><p>Been working hard to implement features decribed here..:</p><p><a href="http://www.businesswire.com/portal/site/google/index.jsp?ndmViewId=news_view&amp;newsId=20071220006153&amp;newsLang=en">hi5 Launches New Music Applications By iLike and Qloud </a></p><p>No more music royalties for hi5.&#160; Cost center is now a profit center...</p><p><br /> <div><br /></div></p>   <p style="clear:both;"> 
    <a href="http://paul.vox.com/library/post/tired.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00b8ea067b33dece00e398ca41730005?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    </entry> 
    
    <entry>
        <title>Tired</title>   
        <link rel="alternate" type="text/html" title="Tired" href="http://paul.vox.com/library/post/tired-1.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="Tired" href="http://paul.vox.com/library/post/tired-1.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="Tired" href="http://www.vox.com/atom/svc=post/asset_id=6a00b8ea067b33dece00e398ca3cdb0004" />          <id>tag:vox.com,2007-12-21:asset-6a00b8ea067b33dece00e398ca3cdb0004</id>
        <published>2007-12-21T00:56:27Z</published>
        <updated>2007-12-21T00:56:27Z</updated>
    
        <author>
            <name>Paul</name>
            <uri>http://paul.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://paul.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p>Why am I so tired?</p><p>Been working hard to implement features decribed here..:</p><p><a href="http://www.businesswire.com/portal/site/google/index.jsp?ndmViewId=news_view&amp;newsId=20071220006153&amp;newsLang=en">hi5 Launches New Music Applications By iLike and Qloud </a></p><p>No more music royalties for hi5.&#160; Cost center is now a profit center...</p><p><br /> <div><br /></div></p>   <p style="clear:both;"> 
    <a href="http://paul.vox.com/library/post/tired-1.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00b8ea067b33dece00e398ca3cdb0004?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    </entry> 
    
    <entry>
        <title>Bugathon!</title>   
        <link rel="alternate" type="text/html" title="Bugathon!" href="http://paul.vox.com/library/post/bugathon.html?_c=feed-atom-full" />  
        <link rel="service.post" type="application/atom+xml" title="Bugathon!" href="http://paul.vox.com/library/post/bugathon.html?_c=feed-atom-full#comments" /> 
        <link rel="service.edit" type="application/atom+xml" title="Bugathon!" href="http://www.vox.com/atom/svc=post/asset_id=6a00b8ea067b33dece00e398d322640001" />            <id>tag:vox.com,2008-01-17:asset-6a00b8ea067b33dece00e398d322640001</id>
        <published>2007-11-16T23:40:26Z</published>
        <updated>2008-01-17T06:48:15Z</updated>
    
        <author>
            <name>Paul</name>
            <uri>http://paul.vox.com/?_c=feed-atom-full</uri>
        </author>
    
        
        <content type="html" xml:base="http://paul.vox.com/?_c=feed-atom-full">
            <![CDATA[
                <div xmlns="http://www.w3.org/1999/xhtml" xmlns:at="http://www.sixapart.com/ns/at">
        <p>&#39;nuff said...
    
    
    
<div at:enclosure="asset" at:xid="6a00b8ea067b33dece00e398d322600001" at:format="extra-large" at:align="center"
    class="enclosure enclosure-center enclosure-extra-large photo-enclosure" 
     style="text-align: center;">
<div class="enclosure-inner"
    
        style="padding: 9px; border: 1px solid; width: px; margin: 10px auto;"
    >
    <div class="enclosure-list">
        <div class="enclosure-item photo-asset last">
    
            <div class="enclosure-image">
        
                <a href="http://paul.vox.com/library/photo/6a00b8ea067b33dece00e398d322600001.html"><img src="http://a0.vox.com/6a00b8ea067b33dece00e398d322600001-500pi" alt="Bugathon!" title="Bugathon!" /></a>
        
            </div>
            <div class="enclosure-meta">
                <div class="enclosure-asset-name"><a href="http://paul.vox.com/library/photo/6a00b8ea067b33dece00e398d322600001.html" title="Bugathon!">Bugathon!</a></div>
            </div>
    
        </div>
    </div>
</div>
</div><!-- end enclosure -->

</p>   <p style="clear:both;"> 
    <a href="http://paul.vox.com/library/post/bugathon.html?_c=feed-atom-full#comments">Read and post comments</a>   |   
    <a href="http://www.vox.com/share/6a00b8ea067b33dece00e398d322640001?_c=feed-atom-full">Send to a friend</a> 
</p>

                </div>
            ]]>
        </content> 
    <category term="mobile" scheme="http://paul.vox.com/tags/mobile/" label="mobile" /> 
    </entry> 
</feed>


