1. <p>I'm going to hitchhiking down the west coast from Seattle, WA to San Diego, CA for ComicCon this year again. And what I mean by 'this year' is Tuesday. I've always wanted to be able to post real-time-ish updates from the road on trips like these. Normally, I take notes along the way (usually at night after the day has gone by and I've forgotten things), then try to blog them as I can. I never follow through though. I did this with my <a href="http://veganstraightedge.com/articles/2005/10/5/1/the-northwest-passage/">Seattle</a> <a href="http://veganstraightedge.com/articles/2005/10/13/1/trial-reunion-show-trip-day-1-wednesday/">trip</a> for the <a href="http://veganstraightedge.com/articles/2005/10/13/2/trial-reunion-show-trip-day-2-rursday/">Trial</a> <a href="http://veganstraightedge.com/articles/2005/11/2/1/trial-reunion-show-trip-day-3-friday/">reunion</a> <a href="http://veganstraightedge.com/articles/2005/11/18/2/trial-reunion-show-journal/">show</a> and my <a href="http://veganstraightedge.com/articles/2007/5/18/1/railsconf-2007-in-portland-part-one/">RailsConf</a> posts.</p>
    
    <p>So... this time ima try something different (and by the way, I had a dream about this in my sleep one morning waking up with the idea to do it this way). I will post little <a href="http://twitter.com/" title="Twitter">Twitter</a> tweets with my progress reports of rides and towns and stories and characters and the what-nots and the who-whos.</p>
    
    <p>If you care to follow along there are three ways to do so:</p>
    
    <ol>
      <li>To the right of the body content on my blog here under the heading "My Twitter Tweets" will be the most recent 10 in reverse order</li>
      <li><a href="http://twitter.com/veganstraightedge" title="Twitter / veganstraightedge">My Twitter Page</a></li>
      <li><a href="http://twitter.com/statuses/user_timeline/641013.atom" title="Twitter / shaners">My Twitter Feed</a></li>
    </ol>
    
    <p>There you have it.</p>
    
    <p>
      <a href="http://wilshipley.com">Wil Shipley</a> wrote <a href="http://wilshipley.com/blog/2007/07/iphones-ajax-sdk-no-thank-you.html" title="Call Me Fishmeal.: iPhone's AJAX SDK: No, thank you.">a little blog post about the iPhone, lack of real SDK and a thing called AJAX</a>. this started out as a comment, then grew up past an email, finally settling into a blog post rebuttal thing. that's why it's written largely in the second person. i was writing it directly to wil.
    </p>
    
    <p>
      first things first, i hate javascript just as much as you. it's ugly. it's unpleasant to write. more unpleasant to read. ( code is read more than it is written, remember ). and it's ugly. i've avoided it for just as long as i could. i don't want to ever write a single bit of it if i can get away with it. but objective-c is no looker either. i mean, slow down with the square brackets already. and the semi-colons, too. that's not necessary.
    </p>
    
    <p>
      i also agree that it makes sense why they haven't released a real public api yet. i also believe that they will in time. i also think its gonna do away with a lot of cruft when they do. it's gonna be <a href="http://en.wikipedia.org/wiki/Dominique_Dawes#2000_Olympics" title="Dominique Dawes">awesome dawesome</a>. i'm saying i agree with a lot of what you're saying, but i couldn't disagree with you more ( in some places ).
    </p>
    
    <blockquote cite="http://wilshipley.com/blog/2007/07/iphones-ajax-sdk-no-thank-you.html">
      <p>
        Not very many companies on any platform are successful at selling web applications
      </p>
    </blockquote>
    
    <p>
      1. That is kind of like saying "not very many companies are successful at selling mac applications". it's just demonstrably false. <a href="http://www.37signals.com/" title="37signals">37 signals</a> knows a thing or two about making some scriller from web apps. <a href="http://www.flickr.com/" title="Welcome to Flickr - Photo Sharing">flickr</a> seems to be doing ok. <a href="http://wordpress.com/" title="WordPress.com » Get a Free Blog Here">wordpress.com</a> makes money money. <a href="http://www.shopify.com/" title="Shopify —  A shop in minutes, a business for life.">shopify</a> is a web-app that makes money by enabling it's users to build web-apps that make money ( it's sooo postmodern ). <a href="http://www.fluxiom.com/" title="fluxiom - capture, manage, access and deliver content across your enterprise">fluxiom</a> is pretty sweet. <a href="http://www.blinksale.com/" title="Blinksale | The easiest way to send invoices online">blinksale</a>, <a href="http://www.newsgator.com" title="NewsGator - The RSS Company">the newsgator rss platform</a>, <a href="http://dabbledb.com/" title="A better web database to share, manage and explore your information">dabbledb</a> and on and on.
    </p>
    
    <p>
      i'm not playing "nuh-uh, i've got these two or three exceptions so you're wrong" game for the sake of playing it. there are <em>plenty</em> of people are building web apps and selling them just fine. it's really no different than windows developers saying that "no one really makes any money selling mac apps, save for 3 exceptions." malarky.
    </p>
    
    <blockquote cite="http://wilshipley.com/blog/2007/07/iphones-ajax-sdk-no-thank-you.html">
      <p>
        I can't customize what controls the user sees from inside Safari.
      </p>
    </blockquote>
    
    <p>
      2. is that really a deal breaker? you can't really control the window widgets in an os x app either. well, you can't but you don't. i imagine that you don't ( i mean, actually you wil, not the royal you, but actually wil shipley when you wrote DL ) because users expect those things to be there and that you actually like them there. 
    </p>
    
    <p>
      in fact, you expect them to be there because parts of your app depend on them. when i double click on a library item, a new window pops up that i can close by clicking that little red thingy in the corner and drag around by grabbing onto the metal stuff. same for the main DL window. as a user, i expect that to work that way. and you, as a developer, had to do nothing to get that behaviour. dope.
    </p>
    
    <p>
      same is true of certain browser interface widgets. users hate having to figure out the custom back/forward mechanism in sites that are entirely flash. developers don't like making them either. i think its pretty swell that we get those for free. i do not want to keep track of your page views and there order while you're on my site.
    </p>
    
    <p>...</p>
    
    <p>
      wil, i know you like obj-c and cocoa. i know that you've said there is a recurring trend of people saying higher level languages are going to do away with C, but C just keeps on keeping on and there will always be a place for compiled languages. sure, sure. that's fine. something interesting is happening now though, that makes some of what seem less and less relevant.
    </p>
    
    <p>
      metaprogramming and domain specific languages ( DSLs ) in higher level languages are becoming increasingly popular. for example, <a href="http://weblog.rubyonrails.org/2006/03/28/rails-1-1-rjs-active-record-respond_to-integration-tests-and-500-other-things/" title="Rails 1.1: RJS, Active Record++, respond_to, integration tests, and 500 other things!">rjs</a>. with rjs templates in rails i can write javascript in a very ruby-like way. i keep my hands clean and i still get what i need to get to make the things i want to happen happen. ( or for that matter, <a href="http://haml.hamptoncatlin.com/docs/haml" title="#haml.Documentation.Haml">haml</a> and <a href="http://haml.hamptoncatlin.com/docs/sass" title="#haml.Documentation.Sass">sass</a> for those that hate writing angle brackets )
    </p>
    
      <code>
    <pre> page.delay(4) do   page.select("td span.company").each do |column| 
    column.set_style :fontStyle =&gt; "normal"    end end
    </pre>
      </code>
    
    <p>
      i'd write that over the javascript it generates any day.
    </p>
    
    <p>
      cocoa is essentially in bed with objective-c. they've definitely grown up together. but some new people are coming to the party. more languages are getting official backing from apple with cocoa bridges baked into leopard ( ruby, python ). <a href="http://www.rubycocoa.com/" title="RubyCocoa Resources">rubycocoa</a> and <a href="http://developer.apple.com/cocoa/pyobjc.html" title="Using PyObjC for Developing Cocoa Applications with Python">pyobjc</a>. 
    </p>
    
    <p>
      this is the way that i ( and lots of others ) see application development going. higher level / interpreted languages. the more the expressive, the better. DSLs for languages that machines require of us, but we don't want to actually have to write. ( the <a href="http://rubini.us/" title="Rubinius">rubinius</a> folks have something called <a href="http://on-ruby.blogspot.com/search?q=cuby" title="On Ruby">cuby</a> that's a ruby looking DSL for generating C code. pretty awesome. ) a greater invasion of web technologies into desktop / hybrid apps. ( there will be desktop apps for a long long time. the line will just get blurred more and more. )
    </p>
    
    <p>
      for my parting shot, imagine this equation. html interfaces using <a href="http://en.wikipedia.org/wiki/WebKit" title="WebKit - Wikipedia, the free encyclopedia">WebKit</a> views. the bulk of your app written in <a href="http://en.wikipedia.org/wiki/Ruby_%28programming_language%29" title="Ruby (programming language) - Wikipedia, the free encyclopedia">ruby</a> using <a href="http://www.rubycocoa.com/" title="RubyCocoa Resources">rubycocoa</a> to hook into that html interface. <a href="http://api.rubyonrails.com/classes/ActiveRecord/Base.html" title="Base">ActiveRecord</a> talking to a <a href="http://en.wikipedia.org/wiki/SQLite" title="SQLite - Wikipedia, the free encyclopedia">SQLite</a> db from the desktop app. a DSL (like cuby) for stubbing out C/obj-c code for areas that need to be optimized for speed. to me that sounds a lot like making a web app. in fact, it just might deliver a lot more of the write once promise that we've heard before. or at least some of it.
    </p>
    
    <p>
      the web app version of the above is not too far off. ActiveRecord is still on the back end. this time maybe its talking to <a href="http://mysql.com/" title="The world's most popular open source database">mysql</a> or <a href="http://www.postgresql.org/" title="The world's most advanced open source database">postgresql</a> or <a href="http://en.wikipedia.org/wiki/Oracle_database" title="Oracle database - Wikipedia, the free encyclopedia">oracle</a> or even still <a href="http://www.sqlite.org/" title="SQLite home page">SQLite</a>. so that code doesn't need to change much, if at all. ruby code that handles the business logic specific to your app's domain. an html interface. maybe something like rjs sprinkled in there to replace some of what cocoa gives you ( which i fully admit that cocoa gives you lots and lots of cool things, like <a href="http://www.apple.com/macosx/leopard/technology/coreanimation.html" title="Apple - Mac OS X Leopard - Technology - Core Animation">Core Animation</a> ). then finally, instead of rubycocoa tying it all together on the web end, you use <a href="http://rubyonrails.com/" title="Ruby on Rails">rails</a> or <a href="http://brainspl.at/articles/tag/merb" title="Brainspl.at">merb</a>.
    </p>
    
    <p>
      that last part, switching out frameworks, i know is highly non-trivial, but doable. some very smart people will figure this out faster than you'd think. expect to see cool development happening in this space after leopard rolls out.
    </p>
    
    <blockquote>
      In my heart I know this is powerful, even if my ears don't hear it like that.
    </blockquote>
    
    <p>Emily said that while we were listening to <a href="http://www.blogotheque.net/article.php3?id_article=2868">The Arcade Fire's Wake Up</a>. You should take the time to watch that video. I've seen it prolly a dozen times and still get goosebumps during the second song when they're in the crowd.</p>
    
    <p>I've been looking for a way out of hosting <a href="http://wordpress.org/">WordPress</a> myself. <a href="http://wordpress.com/">Wordpress.com</a> is awesome gives me everything I want except for the random file storage for things I blog about. Sure, it can handle images and documents, but not audio files. I use <a href="http://flickr.com/photos/veganstraightedge/" rel="me">flickr</a> for my photos, <a href="http://youtube.com/profile?user=veganstraightedge" rel="me">youtube</a> for my videos, <a href="http://del.icio.us/shaners">del.icio.us</a> for my bookmarks. I just don't know what to use for my audio files.</p>
    
    <p>I have  35 files that I'm hosting for one of two reasons. 1: Things I've blogged about that don't otherwise have a home. 2: Records of very independent musicians that I don't want to see fall into the oblivion (I Have Dreams, A New Kind of American Saint [two hardcore bands that were from Tallahassee around the time I lived in Atlanta, GA for art school] and James Miska [a friend of mine from Salt Lake City, UT]).</p>
    
    <p>When Eli came over today to nerd it up with me, I saw him go to a site and download a file, called <a href="http://www.box.net">Box.net</a>. After checking it I decided to give it the ol' college try (or whatever). So I've moved all of my audio files over there. The only downside to the free account is not the 1GB limit, but the no direct linking. So now all of my files are two clicks away, instead of one. But so what, right? What's two click to you? Nothing.</p>
    
    <p>Either way, now I can make the move over to <a href="http://wordpress.com/">WordPress.com</a> real soon like. It'll probably be a subdomain, like <a href="http://veganstraightedge.com" rel="me">veganstraightedge.com</a>, because there are other resistance army projects that don't sit inside of my blog. The next post will have the links to all the audio downloads. I'll also be updating the old posts to reflect the new download location for posterity sake.</p>
    
    <p>More on this later...</p>
    
    <p>I got random text message one day:</p>
    
    <blockquote>
      <p>Mormon Vegan Straight Edge girls are hot!</p>
    </blockquote>
    
    <p>I tried calling back right away to talk to the person to see who it was. It went straight to voicemail. So I ignored it expecting to be one of my prank calling friends from Salt Lake City.</p>
    
    <p>About a week later, I called again. Voicemail, again. The outgoing message was just the default robot voice "You have reached the voicemail for 2066357611, please leave a ..." So whatever, definitely a prank call, right? But here's where it takes a weird turn to crazyville on the coo-coo train making stops at what-are-you-about-talking station and who-are-you junction.</p>
    
    <p>I got a text back right after that second call that went straight to voicemail. So to me that says, I want to talk to you, but not quite reveal my identity. The text came from the number above with a +1 in front of it, meaning it's instant messenger on a phone. The replies were fast too, a little too fast if you know what I mean. <a href="http://en.wikipedia.org/wiki/Danger_Hiptop">Sidekick</a>, I'm looking your way.</p>
    
    <p>We went on a bit texting back and forth. Here's the entire verbatim transcript of our conversation.</p>
    
    <dl>
      <dt>Him</dt>
      <dd>What's up?</dd>
      <dt>Me</dt>
      <dd>What are you up to today?</dd>
      <dt>Him</dt>
      <dd>Work, then poetry tonight. You?</dd>
      <dt>Me</dt>
      <dd>Who is this?</dd>
      <dt>Him</dt>
      <dd>Your greatest admirer.</dd>
      <dt>Me</dt>
      <dd>I can't think of any admirers i have. Let alone my greatest. Sorry. Have we met?</dd>
      <dt>Him</dt>
      <dd>You ride fixed gear, and you are straight edge. How could I resist admiration? And no, we haven't met yet. Want to come to poetry in Fremont tonight?</dd>
      <dt>Me</dt>
      <dd>If we've never met. How do you know about me?</dd>
      <dt>Him</dt>
      <dd>You were selling a fixed gear on cl. (editor's note: cl = craigslist.org. the listing has expired now, but there are <a href="http://www.flickr.com/photos/veganstraightedge/sets/72157600084026699/" title="flip flop fixie / free wheel for sale - blue schwin - a photoset on Flickr" rel="me">photos of said fixie</a> on my flickr account.)</dd>
      <dt>Me</dt>
      <dd>Do you know that i'm a boy?</dd>
      <dt>Him</dt>
      <dd>Nope. Haha!</dd>
      <dt>Him again</dt>
      <dd>Do you know asian brian?</dd>
      <dt>Me</dt>
      <dd>Nope. Why did you assume that i was mormon?</dd>
      <dt>Him</dt>
      <dd>The Utah number.</dd>
      <dt>Me</dt>
      <dd>Man, you're just full of assumptions. Next time, you probably want to try a different approach.</dd>
      <dt>Him</dt>
      <dd>Haha!</dd>
      <dt>Me</dt>
      <dd>Don't write me anymore.</dd>
      <dt>Him</dt>
      <dd>Okay.</dd>
    </dl>
    
    <p>Um... awesome? Or something.</p>
    
    <p>I never learned who he was. His phone number / instant messenger / text address is 2066357611 / +12066357611, ya know, just in case you wanted it for a bored rainy day or long ride from some random town to some other random town with some random stranger who just happened to pick you and friend up on the side of the road. Or whatever.</p>
    
    <p>Be sure to report back any new developments.</p>