<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:joel</id>
  <title>Joel Franusic</title>
  <subtitle>Joel Franusic</subtitle>
  <author>
    <name>Joel Franusic</name>
  </author>
  <link rel="alternate" type="text/html" href="http://joel.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom"/>
  <updated>2008-04-11T20:42:37Z</updated>
  <lj:journal username="joel" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://joel.livejournal.com/data/atom" title="Joel Franusic"/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:48661</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/48661.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=48661"/>
    <title>information vaults</title>
    <published>2008-04-11T20:42:37Z</published>
    <updated>2008-04-11T20:42:37Z</updated>
    <category term="data"/>
    <category term="storage"/>
    <content type="html">I'm very excited about the &lt;a href="http://seedsofgrowth.com/a-virtual-vault-for-information-age-valuables"&gt;Wells Fargo vSafe&lt;/a&gt; rumor. I desperately want an online backup service with a guarantee on the order of decades.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:48616</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/48616.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=48616"/>
    <title>"API wrapper" service</title>
    <published>2008-04-09T00:18:15Z</published>
    <updated>2008-04-09T00:18:15Z</updated>
    <category term="caltrain"/>
    <category term="api"/>
    <category term="idea"/>
    <content type="html">I want to make a website that will periodically scrape sites like caltrain.org and then provide an API for programatically accessing that data.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:48131</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/48131.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=48131"/>
    <title>Things you can waste</title>
    <published>2008-03-31T19:30:14Z</published>
    <updated>2008-03-31T19:30:14Z</updated>
    <category term="snowclone"/>
    <category term="waste"/>
    <content type="html">A shortened list of things you can waste, thanks to &lt;a href="http://tenser.typepad.com/tenser_said_the_tensor/2006/11/snowclonepl.html"&gt;snowclone.pl&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can waste your...&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; life&lt;br /&gt;&lt;li&gt; money&lt;br /&gt;&lt;li&gt; computer&lt;br /&gt;&lt;li&gt; home&lt;br /&gt;&lt;li&gt; feet&lt;br /&gt;&lt;li&gt; energy&lt;br /&gt;&lt;li&gt; breath&lt;br /&gt;&lt;li&gt; strength&lt;br /&gt;&lt;li&gt; emotions&lt;br /&gt;&lt;li&gt; strength&lt;br /&gt;&lt;li&gt; vote&lt;br /&gt;&lt;li&gt; water&lt;br /&gt;&lt;li&gt; battery&lt;br /&gt;&lt;li&gt; RAM&lt;br /&gt;&lt;li&gt; gum&lt;br /&gt;&lt;li&gt; employees&lt;br /&gt;&lt;li&gt; weed&lt;br /&gt;&lt;li&gt; stamina&lt;br /&gt;&lt;li&gt; ammo&lt;br /&gt;&lt;li&gt; space&lt;br /&gt;&lt;li&gt; efforts&lt;br /&gt;&lt;li&gt; profits&lt;br /&gt;&lt;li&gt; bandwidth&lt;br /&gt;&lt;li&gt; punches&lt;br /&gt;&lt;li&gt; quarters&lt;br /&gt;&lt;li&gt; webspace&lt;br /&gt;&lt;li&gt; brainpower&lt;br /&gt;&lt;li&gt; quota&lt;br /&gt;&lt;li&gt; internet&lt;br /&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:47880</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/47880.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=47880"/>
    <title>Things for which I wish there was a 3rd party API: Part 1</title>
    <published>2008-03-19T18:40:13Z</published>
    <updated>2008-03-19T18:40:13Z</updated>
    <category term="api"/>
    <category term="idea"/>
    <content type="html">As I'm working more on web applications I'm finding that there is a particular set of problems which are fixed in scope but that need constant tweaking in order to stay useful. &lt;br /&gt;&lt;br /&gt;A possible solution for these sorts of problems might be a 3rd party online API. Here is the start of my list:&lt;br /&gt;&lt;br /&gt;1: Email validation&lt;br /&gt;2: Email verification&lt;br /&gt;3: User Agent parsing&lt;br /&gt;&lt;br /&gt;(I realize that an online API would have latency issues, but these are the sorts of things which should probably be performed asynchronously anyway)</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:47656</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/47656.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=47656"/>
    <title>fetch_urls_from_tinyurl.sh</title>
    <published>2008-03-16T07:05:36Z</published>
    <updated>2008-03-16T07:06:04Z</updated>
    <category term="bash"/>
    <category term="shell"/>
    <category term="hack"/>
    <content type="html">&lt;tt&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;# Fetch URLs from tinyurl.com&lt;br /&gt;# Make sure you have curl and bc installed before you run this.&lt;br /&gt;#&lt;br /&gt;# Joel Franusic 2008 - Public Domain Sofware&lt;br /&gt;&lt;br /&gt;MIN=1&lt;br /&gt;MAX=10000&lt;br /&gt;SLEEP_MAX=3&lt;br /&gt;l=(0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z)&lt;br /&gt;&lt;br /&gt;for((n=$MIN; n&amp;lt;$MAX; n++)); do&lt;br /&gt;  r=`echo "obase=36;$n" | bc`&lt;br /&gt;  num=''&lt;br /&gt;  echo -n "$n "&lt;br /&gt;  for c in $r; do &lt;br /&gt;    c=${c#0} # remove zero padding, yay variable mangling!&lt;br /&gt;    num=$num${l[$c]}; &lt;br /&gt;  done&lt;br /&gt;  echo -n "$num "&lt;br /&gt;  result=`curl -s -I "&lt;a href="http://tinyurl.com/$num"&gt;http://tinyurl.com/$num&lt;/a&gt;" | grep -o -e 'http.*'`&lt;br /&gt;  echo -n "$result"&lt;br /&gt;  echo ''&lt;br /&gt;  sleep $((RANDOM%$SLEEP_MAX))&lt;br /&gt;done&lt;br /&gt;&lt;/tt&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:47387</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/47387.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=47387"/>
    <title>Homeschooling</title>
    <published>2008-03-13T08:12:56Z</published>
    <updated>2008-03-16T06:50:51Z</updated>
    <category term="homeschool"/>
    <content type="html">The people that know I was homeschooled have have been asking me what I think of the recent ruling concerning homeschooling in California. My opinion comes down to this: In the long term,   this ruling is meaningless. &lt;br /&gt;&lt;br /&gt;The ruling might have made a meaningful negative impact on homeschooling a few decades ago, when it was still an unproven educational system. But that time is now long gone. &lt;br /&gt;&lt;br /&gt;The elephant in the room here is that California's &lt;a href="http://www.ted.com/index.php/talks/view/id/66"&gt;public education system is fabulously broken beyond repair&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;It's actually pretty sad. In theory a public school should be able to provide a superior education. They should have experienced trained teachers on staff and presumably have the money to purchase expensive equipment for sports, science, arts and music programs, etc. &lt;br /&gt;&lt;br /&gt;Yet, for the last couple of decades, "uncredentialed" &lt;a href="http://blogs.sun.com/jrose/entry/destroy_the_home_schoolers_in"&gt;parents&lt;/a&gt; have been providing their children with an educational experience that is far superior to what our public school system has to offer.&lt;br /&gt;&lt;br /&gt;I'm looking forward to watching how this all pans out.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:47160</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/47160.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=47160"/>
    <title>Today in PBwiki news</title>
    <published>2008-02-29T05:44:10Z</published>
    <updated>2008-02-29T05:44:10Z</updated>
    <category term="pbwiki"/>
    <content type="html">I've got some neat OpenID stuff in the pipe.&lt;br /&gt;Nathan has a really really neat 2.0 feature working.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:46899</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/46899.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=46899"/>
    <title>Today</title>
    <published>2008-01-05T09:19:31Z</published>
    <updated>2008-01-05T09:19:31Z</updated>
    <category term="wind"/>
    <category term="rain"/>
    <category term="pbwiki"/>
    <content type="html">The power went out before I left for work today.&lt;br /&gt;There were lots of tree parts on the sidewalk as I walked to the street car.&lt;br /&gt;I stood in a doorway and watched people use umbrellas as shields against the wind.&lt;br /&gt;Southbound BART service was interrupted because a tree fell on the tracks.&lt;br /&gt;I took CalTrain to work instead.&lt;br /&gt;I saw raindrops floating in midair outside the 8th floor window of our new office building.&lt;br /&gt;I helped set up DSL at our new office.&lt;br /&gt;Our entire office was put into boxes.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:46681</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/46681.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=46681"/>
    <title>Fake Name OpenID Provider</title>
    <published>2007-12-27T21:33:28Z</published>
    <updated>2007-12-27T21:34:12Z</updated>
    <category term="openid"/>
    <category term="identity"/>
    <category term="idea"/>
    <content type="html">Testing OpenID would be a lot more simple if there was an OpenID provider that was pre-filled with a lot of &lt;a href="http://www.fakenamegenerator.com/"&gt;generated fake identities&lt;/a&gt;.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:46449</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/46449.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=46449"/>
    <title>Idea for an Amazon rainbow table super computer</title>
    <published>2007-12-27T21:30:37Z</published>
    <updated>2007-12-27T21:33:51Z</updated>
    <category term="sha1"/>
    <category term="md5"/>
    <category term="idea"/>
    <category term="password"/>
    <content type="html">&lt;ol&gt;&lt;br /&gt;&lt;li&gt; Run a program that will generate a wordlist, put the output in an &lt;a href="http://www.amazon.com/Simple-Queue-Service-home-page/b?ie=UTF8&amp;amp;node=13584001"&gt;queue&lt;/a&gt;.&lt;br /&gt;&lt;li&gt; Have a bunch of &lt;a href="http://www.amazon.com/gp/browse.html?node=201590011"&gt;EC2&lt;/a&gt; instances that take input from the queue and generate MD5, SHA1, etc hashes from the queue. Store hash to password mappings in &lt;a href="http://www.amazon.com/b?ie=UTF8&amp;amp;node=342335011"&gt;SimpleDB&lt;/a&gt;&lt;br /&gt;&lt;li&gt; Depending on how fast inserts into SimpleDB are, it might make sense to store the hash/password mappings on disk or in &lt;a href="http://www.amazon.com/gp/browse.html?node=16427261"&gt;S3&lt;/a&gt; and stream them into SimpleDB&lt;br /&gt;&lt;li&gt; ???&lt;br /&gt;&lt;li&gt; Profit!&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Since the Amazon AWS services have set prices, it should be pretty easy to calculate the dollar cost per &lt;i&gt;n&lt;/i&gt; passwords. I'm guessing that number would be pretty low.&lt;br /&gt;&lt;br /&gt;See also: &lt;a href="http://twitter.com/jf/statuses/536491112"&gt;http://twitter.com/jf/statuses/536491112&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:46160</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/46160.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=46160"/>
    <title>San Francisco</title>
    <published>2007-12-24T06:40:40Z</published>
    <updated>2007-12-24T06:40:40Z</updated>
    <content type="html">I still have trouble believing that I'm living in &lt;i&gt;San Francisco&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;It has been about 3 months since &lt;a href="http://joel.livejournal.com/45028.html"&gt;a tornado&lt;/a&gt; ripped me out of my peaceful life in San Luis Obispo and dumped me in the Bay Area. Only now have I had the time to be introspective about the whole thing. Hopefully I've left enough &lt;a href="http://friendfeed.com/jpf"&gt;digital life fragments&lt;/a&gt; around that I'll be able to reconstruct what I've been doing these past few months.&lt;br /&gt;&lt;br /&gt;Corrie and I have been living in the Haight-Ashbury district for just under three weeks now. I love being able to get around without a car. I "commute" to work by walking 4 blocks to the &lt;a href="http://en.wikipedia.org/wiki/N_Judah"&gt;N Judah&lt;/a&gt; which takes me to Civic Center, then to BART. Today I walked with Corrie to Trader Joes on Masonic, we purchased 3 bags of groceries and took the 43 Masonic back. Bookstores, Restaurants, Groceries, Cafe's and more are a few minutes from my front door. That said, the city still weighs down on me. Its density, people, buildings, and noise are all things which I am still trying to become acclimated to. I expect that over time I will become more at ease with everything, as I learn to discern threats from the benign.&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;br /&gt;Last night, I took Corrie to participate in &lt;a href="http://www.unsilentnight.com/"&gt;phil kline's unsilent night&lt;/a&gt;. It was magical, like something out of a vision or a dream. It was the first time that I felt welcome and at ease in San Francisco. &lt;br /&gt;&lt;br /&gt;I think I'm going to love living here.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:45615</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/45615.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=45615"/>
    <title>"Good news...</title>
    <published>2007-10-31T23:09:20Z</published>
    <updated>2007-10-31T23:09:20Z</updated>
    <category term="mp3"/>
    <category term="quote"/>
    <category term="glados"/>
    <category term="portal"/>
    <content type="html">&lt;a href="http://www.sargo.com/joel/_music/aca03173e264b695629372b6c0dd7823.mp3"&gt;I figured out what the thing you just incenerated, did.&lt;/a&gt;" &lt;img src="http://www.sargo.com/joel/_music/note.gif" height="10" width="10" /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:45206</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/45206.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=45206"/>
    <title>In Rainbows</title>
    <published>2007-10-20T05:27:57Z</published>
    <updated>2007-10-20T05:27:57Z</updated>
    <content type="html">I'm very happy with Radiohead's latest album, musically and socially. &lt;br /&gt;&lt;br /&gt;Musically, I like the album, I've listened to the album about six times through. &lt;br /&gt;&lt;br /&gt;Socially, I think that In Rainbows is huge.&lt;br /&gt;&lt;br /&gt;I'm disappointed that some people have chosen to complain about the bitrate of the songs rather than consider the implications that this experiment has for the music industry. If you want to complain about the bitrate, then I have some &lt;a href="http://www.ilikejam.dsl.pipex.com/audiophile.htm"&gt;products you may be interested in&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Radiohead didn't do anything new or unexpected. Just &lt;a href="http://www.last.fm/music/+charts/?charttype=weekly&amp;amp;subtype=track&amp;amp;range=1191758400-1192363200"&gt;unprecidented &lt;/a&gt;.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:45028</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/45028.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=45028"/>
    <title>Come, you cannot resist.</title>
    <published>2007-10-15T23:11:52Z</published>
    <updated>2007-10-15T23:14:49Z</updated>
    <category term="moving"/>
    <category term="news"/>
    <content type="html">Many of you already know that I've been planning on moving back to the San Francisco Bay Area. In fact, several people have been constantly demanding that I move back to the Bay Area over the past year or so.&lt;br /&gt;&lt;br /&gt;Well, I'm moving back.&lt;br /&gt;&lt;br /&gt;My last day of work at Cuesta College will be November 9th. I'm going to come up to San Francisco for &lt;a href="http://superhappydevhouse.org/SuperHappyDevHouse21"&gt;SHDH21&lt;/a&gt;, and not go back.&lt;br /&gt;&lt;br /&gt;It was not an easy decision to make, I really like working at Cuesta. I have great coworkers and my supervisor is the best "boss" I've had so far - I'd hope to have him on my board of directors some day.&lt;br /&gt;&lt;br /&gt;However, earlier this week, I got a call from my friend David Weekly. He made me an offer to work for &lt;a href="http://pbwiki.com/"&gt;PBwiki&lt;/a&gt; that I could not refuse.&lt;br /&gt;&lt;br /&gt;I just signed my papers and met all of my future coworkers - all of whom are awesome. I'm going to be sad to leave my friends at Cuesta College, but I'm really excited about PBwiki, they are an amazing team with a great product (make yourself a wiki right now)!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://icanhascheezburger.com/2007/01/11/this-is-relevant-to-my-interests/"&gt;&lt;img src="http://icanhascheezburger.files.wordpress.com/2007/01/2000455272489756911_rs.jpg"&gt;&lt;/a&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:43934</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/43934.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=43934"/>
    <title>July 2nd - August 17th</title>
    <published>2007-08-18T06:11:04Z</published>
    <updated>2007-08-18T06:11:04Z</updated>
    <content type="html">The past 6 weeks have been a blur. I'm actually having to make use of my flickr, twitter, and Google Calendar accounts to triangulate my memories.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Week of July 8th-14th:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Corrie made me a really neat dinner.&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/jpf/752372874/" title="Photo Sharing"&gt;&lt;img src="http://farm2.static.flickr.com/1082/752372874_49bdca61aa_t.jpg" width="100" height="80" alt="Corrie is awesome!" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;I finally got my skydiving photographs developed!&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/jpf/779652399/" title="Photo Sharing"&gt;&lt;img src="http://farm2.static.flickr.com/1011/779652399_2da23d3aa7.jpg" width="500" height="333" alt="Hang loose!" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;A buddy who works for the County of SLO gave me a tour of their data center. They have a robotic tape loader arm!&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/jpf/791244250/" title="Photo Sharing"&gt;&lt;img src="http://farm2.static.flickr.com/1035/791244250_d3f53f0a5b_m.jpg" width="240" height="192" alt="Hack the Planet" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;Went on a camping trip. Among other things, this particular trip made me very aware of the importance of proper planning.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Week of July 15th-21st:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Tom and Dan came out to visit! I really enjoyed spending time with them. We went sailing!&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/jpf/840415157/" title="Photo Sharing"&gt;&lt;img src="http://farm2.static.flickr.com/1226/840415157_f4a4b97164_m.jpg" width="240" height="192" alt="Morro Rock" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;We found out the Corrie's cat Kira has kidney failure. :-(&lt;br /&gt;&lt;li&gt;I got my &lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=xpt/cps/securitycenter/general/PPSecurityKey-outside"&gt;PayPal Security Key&lt;/a&gt; in the mail! I really like it.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Week of July 22nd-28th:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Went to see Gone With The Wind on the big screen with Corrie!&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/jpf/881292300/" title="Photo Sharing"&gt;&lt;img src="http://farm2.static.flickr.com/1220/881292300_bd5a34db86_m.jpg" width="240" height="192" alt="Yay" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;Got a demo of Sun Ray from a guy at Sun. I loved what I saw, I now have two units I'm using for testing:&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/jpf/908405009/" title="Photo Sharing"&gt;&lt;img src="http://farm2.static.flickr.com/1226/908405009_079249db2e_m.jpg" width="240" height="192" alt="Sun Ray" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;li&gt;Visited with Tom, Adam, Matt, Jeff, Mike, and Ernesto in the Bay Area.&lt;br /&gt;&lt;li&gt;Got the Sun Rays working on a LAN!&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Week of July 29th - August 4th:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Went on a hike with Adam, Matt, Mike and Ernesto. Found some &lt;a href="http://snard.com/sg/guide/?ep=70&amp;amp;fmt=0"&gt;replicating pods&lt;/a&gt;.&lt;br /&gt;&lt;li&gt;Attended DEF CON 15. DEF CON deserves a separate post.&lt;br /&gt;&lt;li&gt;Rode on the Las Vegas monorail. Zach came along wearing his awesome hat.&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/jpf/1014627895/" title="Photo Sharing"&gt;&lt;img src="http://farm2.static.flickr.com/1071/1014627895_96ae762908_m.jpg" width="240" height="180" alt="Zach&amp;#39;s Tinfoil hat" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Week of August 5th-11th:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Got back from DEF CON.&lt;br /&gt;&lt;li&gt;Went to SHDH19. Greeted lots of people. Had some very good conversations, showed off my Sun Ray setup. Had a blast.&lt;br /&gt;&lt;a href="http://flickr.com/photos/strategicpause/1096122185/"&gt;&lt;img src="http://farm2.static.flickr.com/1017/1096122185_19483188c4_s.jpg"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/strategicpause/1096981604/in/set-72157601399214527"&gt;&lt;img src="http://farm2.static.flickr.com/1139/1096981604_013495cd50_s.jpg"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/strategicpause/1097126286/in/set-72157601399214527"&gt;&lt;img src="http://farm2.static.flickr.com/1290/1097126286_00350e9f2e_s.jpg"&gt;&lt;/a&gt;&lt;a href="http://flickr.com/photos/strategicpause/1097152688/in/set-72157601399214527"&gt;&lt;img src="http://farm2.static.flickr.com/1176/1097152688_e0c0cee12a_s.jpg"&gt;&lt;/a&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:43391</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/43391.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=43391"/>
    <title>DEF CON</title>
    <published>2007-08-02T04:38:23Z</published>
    <updated>2007-08-02T04:38:23Z</updated>
    <content type="html">I leave for DEF CON tomorrow. I'll try doing some voice posts from Las Vegas if I can remember to do so.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:43011</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/43011.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=43011"/>
    <title>MetaCalculate</title>
    <published>2007-07-19T17:50:47Z</published>
    <updated>2007-07-19T17:51:50Z</updated>
    <category term="metacalculate"/>
    <category term="shdh"/>
    <category term="devhouse"/>
    <category term="spreadsheet"/>
    <content type="html">I'm sick of Excel. Every time I try and do something a little bit fancy, I have to learn how to do things the special Microsoft way.&lt;br /&gt;&lt;br /&gt;I want a spreadsheet program I can program in Perl, or Python, or C, or whatever.&lt;br /&gt;&lt;br /&gt;Right now I'm envisioning an open source program, let's call it MetaCalculate for now.&lt;br /&gt;&lt;br /&gt;MetaCalculate would provide a basic spreadsheet framework to any programming language over some API. It would handle whatever specialized logic is specific to spreadsheets and let you do all the rest in your programming language of choice. &lt;br /&gt;&lt;br /&gt;I want to be able to use an RSS library to fetch prices off of New Egg and put them into a spreadsheet for me. I want to be able to use printf(3) to format my cells. I want to be able to write my own &lt;a href="http://support.microsoft.com/kb/196652"&gt;bankers rounding&lt;/a&gt; function. I want to be able to use DBI to access databases.&lt;br /&gt;&lt;br /&gt;Maybe this will turn into a DevHouse project.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:42906</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/42906.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=42906"/>
    <title>Random Memory</title>
    <published>2007-07-17T18:37:05Z</published>
    <updated>2007-07-17T18:37:56Z</updated>
    <category term="book"/>
    <category term="memory"/>
    <category term="random"/>
    <category term="library"/>
    <content type="html">I must have been about 6. I remember walking away from a library in San Jose, arms full of books that the library was discarding.&lt;br /&gt;&lt;br /&gt;I think this was the same event where we got our encyclopedias. The library labels eventually peeled off of the encyclopedias and left this neat looking red residue where the Dewey Decimal number used to be.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:41463</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/41463.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=41463"/>
    <title>Weekend of June 29th - July 1st</title>
    <published>2007-07-03T10:24:27Z</published>
    <updated>2007-07-06T06:02:56Z</updated>
    <category term="brain eno"/>
    <category term="inspirathon"/>
    <category term="santa cruz beach boardwalk"/>
    <category term="77 million paintings"/>
    <category term="iphone"/>
    <category term="77m"/>
    <content type="html">Last weekend I:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; Attended &lt;a href="http://inspirathon.pbwiki.com/"&gt;Inspirathon&lt;/a&gt;.&lt;br /&gt;&lt;li&gt; Went to the Santa Cruz Beach Boardwalk, had a BBQ at Tom's house.&lt;br /&gt;&lt;li&gt; Visited the Sutro Bath ruins.&lt;br /&gt;&lt;li&gt; Attended the Charter Members night of Brian Eno's &lt;a href="http://www.longnow.org/77m"&gt;77 Million Paintings&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;br /&gt;I left San Luis Obispo on Friday night with Corrie and Nick, at around 1800 hours. We arrived at Adrian's house around 2100 hours - about one hour into Inspirathon. The event had a great turnout! Adrian wrote a very good &lt;a href="http://primevector.wordpress.com/2007/06/30/inspirathon-a-review/"&gt;summary&lt;/a&gt; of the event. I'm in agreement with Adrian's assessment of the event, so I have nothing to add in this regard. Jesse left his laptop on a chair with a mesh back, it made for a neat picture: &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/jpf/668039623/" title="Photo Sharing"&gt;&lt;img src="http://farm2.static.flickr.com/1022/668039623_9761427c1c_t.jpg" width="100" height="80" alt="Computer Screen" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The next morning we dropped Nick off at the Santa Clara Caltrain station, so he could go visit his friend in the city. Corrie and I then drove over to the Santa Cruz Beach Boardwalk via Highway 17. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/jpf/676113913/" title="Photo Sharing"&gt;&lt;img src="http://farm2.static.flickr.com/1185/676113913_943dab01c4_m.jpg" width="240" height="192" alt="Santa Cruz Beach Boardwalk" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Later that night we went and hung out with Tom. I got to play with his iPhone, it does a great job of rendering my web page! &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/jpf/679248744/" title="Photo Sharing"&gt;&lt;img src="http://farm2.static.flickr.com/1439/679248744_a4a60cb763_t.jpg" width="100" height="80" alt="Tom&amp;#39;s iPhone" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tom also showed me an article about a couple that sailed around the world. The article listed all of their &lt;a href="http://www.bumfuzzle.com/Pages/Main%20Pages/Cost.html"&gt;travel expenses&lt;/a&gt; and described their experiences. I really want to circumnavigate the earth in a sailboat someday!&lt;br /&gt;&lt;br /&gt;The next day, I explored the Surto Bath ruins in San Francisco with Corrie, Nick, Seth, Catherine, JP and Christina. Nick took a &lt;a href="http://www.flickr.com/photos/strategicpause/sets/72157600631171675/"&gt;bunch of pictures&lt;/a&gt;. (Thanks Nick!). &lt;br /&gt;&lt;br /&gt;After the ruins, I went to see Brian Eno's &lt;a href="http://www.longnow.org/77m"&gt;77 Million Paintings&lt;/a&gt; with Corrie, Nick, Adam, Kathleen, Jeff and Mike. I really enjoyed the video installation. I remember that my first impression was thinking "I'm going to get bored of this really soon". However, I realized that I was only going to get to see 77 Million Paintings on a 44' screen once in my life, so I decided to enjoy it while I could. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/jpf/691148332/" title="Photo Sharing"&gt;&lt;img src="http://farm2.static.flickr.com/1200/691148332_ea646e20c9_m.jpg" width="240" height="192" alt="77 Million Paintings" /&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Scott Beale did a fantastic job of taking pictures of 77 Million Paintings, check out &lt;a href="http://laughingsquid.com/photos-of-77-million-paintings-by-brian-eno/&amp;quot;"&gt;his photographs&lt;/a&gt; if you want to see more.&lt;/ul&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:40989</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/40989.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=40989"/>
    <title>How to send S/MIME email using openssl</title>
    <published>2007-06-27T00:48:58Z</published>
    <updated>2007-06-27T22:26:12Z</updated>
    <category term="openssl"/>
    <category term="smime"/>
    <category term="encryption"/>
    <category term="email"/>
    <content type="html">Use your email client to generate a signed email (but not encrypted). The message you generate should be &lt;tt&gt;Content-Type: multipart/signed;&lt;/tt&gt; and have an attached &lt;tt&gt;p7s&lt;/tt&gt; (not p7m). Save this raw message as 'message_from_to_user'.&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;$ openssl smime -pk7out -in message_from_to_user | openssl pkcs7 -print_certs &amp;gt; to_user_public_key.pem&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;This will extract the public key from the smime.p7s email attachment and save the public key in PEM format.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;$ echo 'THIS IS A TEST' | openssl smime -encrypt -des3 -from 'From User &amp;lt;from@domain.dom&amp;gt;' -to 'To User &amp;lt;to@domain.dom&amp;gt;' -subject 'Encrypted Test' &lt;b&gt;-text&lt;/b&gt; to_user_public_key.pem | sendmail to@domain.dom&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;This will send an email to the user "to@domain.dom". The email will be encrypted using the public key we extracted above. The &lt;b&gt;-text&lt;/b&gt; flag is important! Without it a standards compliant email reader (Such as Mail.app) won't be able to decrypt the email.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:40559</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/40559.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=40559"/>
    <title>Conversation</title>
    <published>2007-06-07T23:26:03Z</published>
    <updated>2007-06-07T23:26:24Z</updated>
    <category term="propaganda"/>
    <category term="emacs"/>
    <content type="html">Adrian: What I need is a program that makes me always do the right thing.&lt;br /&gt;Me: emacs</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:40314</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/40314.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=40314"/>
    <title>The Gmail Spam Game</title>
    <published>2007-06-04T21:46:23Z</published>
    <updated>2007-06-04T21:46:55Z</updated>
    <category term="game"/>
    <category term="spam"/>
    <category term="gmail"/>
    <content type="html">The goal of this game is to craft a query in Gmail that will find the largest percentage of Spam in your inbox.&lt;br /&gt;&lt;br /&gt;Post the size of your Spam folder, your query and the number of messages that your query selected.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:39948</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/39948.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=39948"/>
    <title>Good Riddance</title>
    <published>2007-05-30T06:51:53Z</published>
    <updated>2007-05-30T06:53:53Z</updated>
    <category term="myspace"/>
    <content type="html">Hi Joel,&lt;br /&gt;&lt;br /&gt;We have received your request to cancel your MySpace account.&lt;br /&gt;&lt;br /&gt;In order to complete the cancellation process, please click on the link below:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www1.myspace.com/misc/cancel.cfm?iid=E4A39987-F748-4F26-9005-8F8ABFA45AFA"&gt;http://www1.myspace.com/misc/cancel.cfm?iid=E4A39987-F748-4F26-9005-8F8ABFA45AFA&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you have problems canceling your account, please click the link below:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://collect.myspace.com/index.cfm?fuseaction=misc.contact"&gt;http://collect.myspace.com/index.cfm?fuseaction=misc.contact&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We will cancel your account within 48 hours, after which you will no longer be able to log in.&lt;br /&gt;&lt;br /&gt;Please note that cancelled accounts may not be reactivated and all of your account information, including your friend network, will be removed from MySpace.&lt;br /&gt;&lt;br /&gt;IF YOU NO LONGER WISH TO CANCEL YOUR ACCOUNT&lt;br /&gt;&lt;br /&gt;simply ignore this message. We will not cancel your account unless you follow the above instructions.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:39682</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/39682.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=39682"/>
    <title>knockd</title>
    <published>2007-05-07T21:54:20Z</published>
    <updated>2007-05-30T06:53:05Z</updated>
    <category term="iptables"/>
    <category term="knockd"/>
    <category term="security"/>
    <category term="firewall"/>
    <category term="ssh"/>
    <content type="html">What I needed to set up a knockd server which closes up the firewall behind me:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
# cat /etc/knockd.conf 
[options]
        logfile = /var/log/knockd.log

[pokeSSH]
        sequence       = 1000,2000,3000
        seq_timeout    = 5
        start_command  = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
        cmd_timeout    = 30
        stop_command   = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
        tcpflags       = syn

# cat iptables_save 
*filter
:INPUT ACCEPT [1838:350285]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [3037:1027623]
-A INPUT -p tcp -m tcp --dport 22 -m state --state ESTABLISHED -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 22 -j DROP 
COMMIT
&lt;/pre&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:joel:39677</id>
    <link rel="alternate" type="text/html" href="http://joel.livejournal.com/39677.html"/>
    <link rel="self" type="text/xml" href="http://joel.livejournal.com/data/atom/?itemid=39677"/>
    <title>Username Changed</title>
    <published>2007-05-04T19:07:55Z</published>
    <updated>2007-05-04T19:11:45Z</updated>
    <category term="ftw"/>
    <category term="growl"/>
    <category term="cron"/>
    <content type="html">I really like Livejournal as a blog host and wanted to stay with them instead of running off to somebody else. The only thing I didn't like was my old username. &lt;br /&gt;&lt;br /&gt;Anyway, did some searching about a month ago and found that the user "joel" was deleted. All I had to do was wait for it to be purged and it would be mine!&lt;br /&gt;&lt;br /&gt;Well through the magic of *nix, I got a message 9 minutes ago that the username was available.&lt;br /&gt;&lt;br /&gt;Cron + Growl = Win.&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;0 8,12,17 * * 1-5 /usr/bin/curl -s joel.livejournal.com | /usr/bin/grep -v '&amp;lt;!' | /usr/local/bin/growlnotify -s&lt;/tt&gt;</content>
  </entry>
</feed>
