<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>John Wang</title> <link>http://johntwang.com</link> <description /> <lastBuildDate>Thu, 10 Jun 2010 18:45:59 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.0.1</generator> <cloud domain="johntwang.com" port="80" path="/?rsscloud=notify" registerProcedure="" protocol="http-post" /> <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/JohnTWang" /><feedburner:info uri="johntwang" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://superfeedr.com/hubbub" /><geo:lat>21.31275</geo:lat><geo:long>-157.821954</geo:long><feedburner:emailServiceId>JohnTWang</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><title>GData on Rails on Google AppEngine</title><link>http://feedproxy.google.com/~r/JohnTWang/~3/Le0Oc96MI8E/</link> <comments>http://johntwang.com/blog/2010/06/10/gdata-on-rails-on-google-appengine/#comments</comments> <pubDate>Thu, 10 Jun 2010 18:45:59 +0000</pubDate> <dc:creator>john</dc:creator> <category><![CDATA[Learning]]></category> <category><![CDATA[appengine]]></category> <category><![CDATA[GData]]></category> <category><![CDATA[ruby on rails]]></category><guid isPermaLink="false">http://www.johntwang.com/?p=857</guid> <description>There&amp;#8217;s a great article by Jeff Scudder on Retrieving Authenticated Google Data Feeds with Google App Engine on the Google App Engine Articles site. Jeff&amp;#8217;s tutorial utilizes the GDdata (Google Data) Python client library. The aim of this article is to replicate Jeff&amp;#8217;s Tutorial using GData on Rails on Google App Engine running on JRuby[s]</description> <content:encoded><![CDATA[<p>There&#8217;s a great article by Jeff Scudder on <a
href="http://code.google.com/appengine/articles/gdata.html">Retrieving Authenticated Google Data Feeds with Google App Engine</a> on the Google App Engine Articles site. Jeff&#8217;s tutorial utilizes the <a
href="http://code.google.com/p/gdata-python-client">GDdata (Google Data) Python client library</a>. The aim of this article is to replicate Jeff&#8217;s Tutorial using <a
href="http://code.google.com/apis/gdata/articles/gdata_on_rails.html">GData on Rails</a> on Google App Engine running on JRuby on Rails.</p><p><span
id="more-857"></span></p><h4>Requirements</h4><ul><li>Ruby 1.8.6 patch level 114+</li><li>RubyGems 1.3.1+</li><li>Rails 2.3.5</li><li>GData Gem</li></ul><h3>Introduction</h3><p>I&#8217;m sure your mind is positively buzzing with ideas for how to use Google App Engine, and a few of you might be <a
href="http://code.google.com/apis/gdata/overview.html">Google Data</a> AtomPub APIs. Quite of few of Google&#8217;s products expose a Google Data API, (a few interesting examples are YouTube, Google Calendar, and Blogger&#8211;you can find a complete <a
href="http://code.google.com/apis/gdata/">list here</a>) and these APIs can be used to read and edit the user-specific data they expose.</p><p>In this article we&#8217;ll use the Google Documents List Data API to walk through the process of requesting access from and retrieving data for a particular user. We&#8217;ll use Google App Engine&#8217;s <a
href="http://code.google.com/appengine/docs/python/tools/webapp/">webapp framework</a> to generate the application pages, and the <a
href="http://code.google.com/appengine/docs/python/users/">Users API</a> to authenticate users with Google Accounts.</p><h3>Google&#8217;s AuthSub APIs</h3><p>Some Google Data services require authorization from your users to read data, and all Google Data services require their authorization before your app can write to these services on the user&#8217;s behalf. Google uses <a
href="http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html">AuthSub</a> to enable users to authorize your app to access specific services.</p><p>Using AuthSub, users type their password into a secure page at google.com, then are redirected back to your app. Your app receives a token allowing it to access the requested service until the user revokes the token through the <a
href="https://www.google.com/accounts/ManageAccount">Account Management</a> page.</p><p>In this article, we&#8217;ll walk through the process of setting up the login link for the user, obtaining a session token to use for multiple requests to Google Data services, and storing the token in the datastore so that it can be reused for returning users.</p><h3>Using the GData on Rails client library</h3><p>Google offers a Data on Rails client library that simplifies token management and requesting data from specific Google Data APIs. In this article we&#8217;ll use this library, but of course you&#8217;re welcome to use whatever works best for your application. <a
href="http://code.google.com/p/gdata-ruby-util/">Download the Gdata on Rails client library</a>.</p><p>To use this library with your Google App Engine application, simply install the library gem and require it as you usually would. There&#8217;s nothing more to it than that!</p><h4>Installing the Google Data Ruby Utility Library</h4><p>To obtain the library, you can either download the library source directly from project hosting or install the gem:</p><p><code>sudo gem install gdata</code></p><h5>config/enviroment.rb</h5><p><code>config.gem 'gdata', :lib => 'gdata'</code></p><h5>config.ru</h5><pre class="brush: ruby">
require &#039;appengine-rack&#039;
require &#039;image&#039;
require &#039;image-upload&#039;
require &#039;user&#039;
require &#039;gdata&#039;
AppEngine::Rack.configure_app(
    :application =&gt; &#039;jruby-gdata&#039;,
    :precompilation_enabled =&gt; true,
    :sessions_enabled =&gt; true,
    :version =&gt; &quot;1&quot;)

AppEngine::Rack.app.resource_files.exclude :rails_excludes
ENV[&#039;RAILS_ENV&#039;] = AppEngine::Rack.environment

deferred_dispatcher = AppEngine::Rack::DeferredDispatcher.new(
    :require =&gt; File.expand_path(&#039;../config/environment&#039;, __FILE__),
    :dispatch =&gt; &#039;ActionController::Dispatcher&#039;)

map &#039;/contacts&#039; do
  use AppEngine::Rack::LoginRequired
  run deferred_dispatcher
end

map &#039;/&#039; do
  run deferred_dispatcher
end
</pre><h5>Gemfile</h5><pre class="brush: ruby">
# Critical default settings:
disable_system_gems
disable_rubygems
bundle_path &#039;.gems/bundler_gems&#039;

# List gems to bundle here:
gem &#039;rails_dm_datastore&#039;
gem &#039;rails&#039;, &quot;2.3.5&quot;
gem &#039;appengine-apis&#039;
gem &#039;gdata&#039;
</pre><h3>Step 1: Generating the Token Request Link (AuthSub)</h3><p>Applications use an API called <a
href="http://code.google.com/apis/accounts/docs/AuthForWebApps.html">AuthSub</a> to obtain a user&#8217;s permission for accessing protected Google Data feeds. The process is fairly simple. To request access from a user to a protected feed, your app will redirect the user to a secure page on google.com where the user can sign in to grant or deny access. Once doing so, the user is then redirected back to your app with the newly-granted token stored in the URL.</p><p>Your application needs to specify two things when using AuthSub: the common base URL for the feeds you want to access, and the redirect URL for your app, where the user will be sent after authorizing your application.</p><p>To generate the token request URL, we&#8217;ll use the <code>GData::Auth::AuthSub</code> module included in the Google Data client library. This module contains a method, get_url, which automatically generates the correct URL given the base feed URL(scope) and your website&#8217;s return address (next_url). In the code snippet below, we use this method to generate a URL requesting access to a user&#8217;s Google Document List feed.</p><p>In our routes.rb file, we will define a URL mapping to create a separate URL for each step. Here&#8217;s an example:</p><pre class="brush: ruby">
    map.connect &#039;step1&#039;, :controller =&gt; &#039;step1&#039;, :action =&gt; &#039;get&#039;
    map.connect &#039;step2&#039;, :controller =&gt; &#039;step2&#039;, :action =&gt; &#039;get&#039;
    map.connect &#039;step3&#039;, :controller =&gt; &#039;step3&#039;, :action =&gt; &#039;get&#039;
</pre><p>To illustrate this first step of using AuthSub in the app, we will create a step1_countroller.rb that looks something like this:</p><pre class="brush: ruby">
class Step1Controller &lt; ApplicationController

  def get
    scope = &#039;http://docs.google.com/feeds/&#039;
    next_url = url_for :controller =&gt; self.controller_name, :action =&gt; self.action_name
    secure = false  # set secure = true for signed AuthSub requests
    session = true
    @authsub_link = GData::Auth::AuthSub.get_url(next_url, scope, secure, session)
  end
end
</pre><h3>Step 2: Retrieving and Updating a Token</h3><p>Once we&#8217;ve generated an authorization request URL for a particular Google Data service, we&#8217;ll need a way to use the token returned to our app to access the feed in question. Now, we need to retrieve the initial token returned to us for the Google Documents List API, and upgrade that token to a permanent session token. Remember that we told the service to redirect the user to the URL &#8216;http://jruby-gdata.appspot.com/step1&#8242;. Let&#8217;s extend our simple example above to do a few things. We&#8217;ll call this new version step2.</p><p>Let&#8217;s write the functionality that will handle the return request from the Google Data service the user signed in to. The Google Data service will request a URL that will look something like this:</p><p><code>http://jruby-gdata.appspot.com/?auth_sub_scopes=http%3A%2F%2Fdocs.google.com%2Ffeeds%2F&#038;token=CKC5y...Mg</code></p><p>Which is just our return URL appended with the initial authorization token for the service which grants our app access for our user. The code below first takes this URL and extracts the service and the token. Then, it requests an upgrade for the token for the document list service.</p><p>We use two new methods to achieve this. First, we try to obtain the single use AuthSub token by examining the current page&#8217;s URL. The params[:token] function handles token extraction for us. To upgrade this initial token to a session token, we use <code>client.auth_handler.upgrade()</code>.</p><pre class="brush: ruby">
require &#039;appengine-apis/users&#039;

class Step2Controller &lt; ApplicationController
  def get
    @client = GData::Client::DocList.new
    next_url = url_for :controller =&gt; self.controller_name, :action =&gt; self.action_name
    secure = false  # set secure = true for signed AuthSub requests
    sess = true
    @authsub_link = @client.authsub_url(next_url, secure, sess)

    if params[:token].nil? and session[:token].nil?
      @url = &quot;nothing&quot;
    elsif params[:token] and session[:token].nil?
      @client.authsub_token = params[:token] # extract the single-use token from the URL query params
      session[:token] = @client.auth_handler.upgrade()
    end

    @url1, @url_linktext = if AppEngine::Users.current_user
        [AppEngine::Users.create_logout_url(request.url), &#039;Sign Out&#039;]
      else
        [AppEngine::Users.create_login_url(request.url), &#039;Sign In&#039;]
      end

    @client.authsub_token = session[:token] if session[:token]

  end
end
</pre><p>After we upgrade the initial token using the <code>client.auth_handler.upgrade()</code> method. Below, we will take you through the steps to use this token and fetch your user&#8217;s feed in your application.</p><h3>Step 3: Using a session token and fetching a data feed.</h3><p>Now that we have obtained and stored the session token, we can use the AuthSub session token to retrieve the user&#8217;s document list feed with our application. The final step is to get the user feed from Google Docs and display it on our site!</p><p>Lets add a new method to our app to request the feed and handle a token required message. We will call this method fetch_feed and add it to the Fetcher request handler class. In this example, the app uses client.Get to try to read data from the feed.</p><p>Some Google Data feeds require authorization before they can be read. If our app had previously saved an AuthSub session token for the current user and the desired feed URL, then the token will be found automatically by the client object and used in the request. If we did not have a stored token for the combination of the current user and the desired feed, then we will attempt to fetch the feed anyway. If we receive a &#8220;token required&#8221; message from the server, then we will ask the user to authorize this app which will give our app a new AuthSub token.</p><p>Here is the code for the fetch_feed method:</p><pre class="brush: ruby">
def fetch_feed (client, feed_url)

  if feed_url.nil?
    &#039;No feed_url was specified for the app to fetch.&lt;br/&gt;&#039;
  else
      begin
        @feed = @client.get(feed_url).to_xml
        # If fetching fails
        rescue GData::Client::AuthorizationError
          @error = &#039;authorization error&#039;
      end
  end
end
</pre><p>Now that we have a method to fetch the target feed, we can modify the Fetcher class&#8217; get method to call this method after we upgrade and store the AuthSub token.</p><p>Our app also needs to know the URL which should be fetched, so we add a URL parameter to the incoming request to indicate which feed should be fetched. The below code for the get method adds the ability to find out which URL the app should fetch and fetches the desired feed.</p><pre class="brush: ruby">
require &#039;appengine-apis/users&#039;
require &#039;appengine-apis/urlfetch&#039;

class Step3Controller &lt; ApplicationController

  def get
    @client = GData::Client::DocList.new
    next_url = url_for :controller =&gt; self.controller_name, :action =&gt; self.action_name
    secure = false  # set secure = true for signed AuthSub requests
    sess = true
    @authsub_link = @client.authsub_url(next_url, secure, sess)

    if params[:token].nil? and session[:token].nil?
      @url = &quot;nothing&quot;
    elsif params[:token] and session[:token].nil?
      @client.authsub_token = params[:token] # extract the single-use token from the URL query params
      session[:token] = @client.auth_handler.upgrade()
    end

    @url1, @url_linktext = if AppEngine::Users.current_user
        [AppEngine::Users.create_logout_url(request.url), &#039;Sign Out&#039;]
      else
        [AppEngine::Users.create_login_url(request.url), &#039;Sign In&#039;]
      end

    @client.authsub_token = session[:token] if session[:token]

    feed_url = params[:feed_url]

    if feed_url.nil?
      @sample_url = next_url + &#039;?feed_url=http%3A%2F%2Fdocs.google.com%2Ffeeds%2Fdocuments%2Fprivate%2Ffull&#039;

    end

    fetch_feed(@client,feed_url)

  end
end
</pre><p>In the above, we request the feed by calling <code>fetch_feed(@client, feed_url)</code>.</p><p>You can see the final program at work by visiting: <a
href="http://jruby-gdata.appspot.com/">http://jruby-gdata.appspot.com/</a>. Also, view the complete source code, where we put all of this together at the <a
href="http://code.google.com/p/jruby-google-app-engine-samples/">Google App Engine sample code project</a> on Google Code Hosting.</p><p>The AuthSub session tokens are long lived, but they can be revoked by the user or by your application. At some point, a session token stored in your data store may become revoked so your application should handle cleanup of tokens which can no longer be used. The status of a token can be tested by <a
href="http://code.google.com/apis/accounts/docs/AuthForWebApps.html#AuthSubTokenInfo">querying the token info URL.</a> You can read more about AuthSub token management in the <a
href="http://code.google.com/apis/accounts/docs/AuthForWebApps.html">AuthSub documentation.</a> This feature is left as an exercise to the reader, have fun <img
src='http://johntwang.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><h3>Conclusion</h3><p>Using the Google Data on Rails client library, you can easily manage your user&#8217;s Google Data feeds in your own Google App Engine application.</p><p>The Google Data on Rails client library includes support for almost all of the Google Data services. For further information, you can read the <a
href="http://code.google.com/apis/gdata/articles/gdata_on_rails.html">getting started guide</a> for the library, visit the <a
href="http://code.google.com/p/gdata-ruby-util/">project</a> to browse the source, and even ask questions on the &#8216;s Google group.</p><p>As always, for questions about Google App Engine, read Google&#8217;s <a
href="http://code.google.com/appengine/docs">online documentation</a> and visit our <a
href="http://groups.google.com/group/google-appengine">google group.</a></p><h3>Appendix: ClientLogin</h3><p>This example uses AuthSub to authorize the app to act on the user&#8217;s behalf, but the Google Data APIs support other authorization mechanisms. In some cases, you might want to temporarily use <a
href="http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html">ClientLogin</a> while developing your application. If you are going to use ClientLogin, the Ruby library has a client class for each of the APIs and a Base class:</p><pre class="brush: ruby">
client = GData::Client::DocList.new
client.clientlogin(&#039;user@gmail.com&#039;, &#039;pa$$word&#039;)

client_login_handler = GData::Auth::ClientLogin.new(&#039;writely&#039;, :account_type =&gt; &#039;HOSTED&#039;)
token = client_login_handler.get_token(&#039;user@example.com&#039;, &#039;pa$$word&#039;, &#039;google-RailsArticleSample-v1&#039;)
client = GData::Client::Base.new(:auth_handler =&gt; client_login_handler)
</pre><p>You may receive a CAPTCHA challenge when requesting a ClientLogin token which you will need to handle in your app before you can receive a ClientLogin token. For this and a few other reasons, I don&#8217;t recommend using ClientLogin in Google App Engine, but the above is how you could use it while developing your app.</p><h4>Resources</h4><ul><li><a
href="http://code.google.com/appengine/docs/python/howto/usinggdataservices.html">Using Google Data Services &#8211; Google App Engine</a></li><li><a
href="http://code.google.com/appengine/articles/gdata.html">Retrieving Authenticated Google Data Feeds with Google App Engine</a> with Python</li><li><a
href="http://code.google.com/apis/gdata/articles/gdata_on_rails.html">GData on Rails</a></li><li><a
href="http://code.google.com/apis/gdata/articles/using_ruby.html">Using Ruby with the Google Data APIs &#8211; Google Data Protocol &#8211; Google Code</a></li></ul>Share the Love:<a
rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F06%2F10%2Fgdata-on-rails-on-google-appengine%2F&amp;title=GData%20on%20Rails%20on%20Google%20AppEngine&amp;bodytext=There%27s%20a%20great%20article%20by%20Jeff%20Scudder%20on%20Retrieving%20Authenticated%20Google%20Data%20Feeds%20with%20Google%20App%20Engine%20on%20the%20Google%20App%20Engine%20Articles%20site.%20Jeff%27s%20tutorial%20utilizes%20the%20GDdata%20%28Google%20Data%29%20Python%20client%20library.%20The%20aim%20of%20this%20article%20is%20t" title="Digg"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F06%2F10%2Fgdata-on-rails-on-google-appengine%2F&amp;title=GData%20on%20Rails%20on%20Google%20AppEngine&amp;notes=There%27s%20a%20great%20article%20by%20Jeff%20Scudder%20on%20Retrieving%20Authenticated%20Google%20Data%20Feeds%20with%20Google%20App%20Engine%20on%20the%20Google%20App%20Engine%20Articles%20site.%20Jeff%27s%20tutorial%20utilizes%20the%20GDdata%20%28Google%20Data%29%20Python%20client%20library.%20The%20aim%20of%20this%20article%20is%20t" title="del.icio.us"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F06%2F10%2Fgdata-on-rails-on-google-appengine%2F&amp;t=GData%20on%20Rails%20on%20Google%20AppEngine" title="Facebook"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F06%2F10%2Fgdata-on-rails-on-google-appengine%2F&amp;title=GData%20on%20Rails%20on%20Google%20AppEngine" title="StumbleUpon"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F06%2F10%2Fgdata-on-rails-on-google-appengine%2F&amp;title=GData%20on%20Rails%20on%20Google%20AppEngine" title="Design Float"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F06%2F10%2Fgdata-on-rails-on-google-appengine%2F&amp;title=GData%20on%20Rails%20on%20Google%20AppEngine" title="Reddit"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F06%2F10%2Fgdata-on-rails-on-google-appengine%2F&amp;title=GData%20on%20Rails%20on%20Google%20AppEngine" title="DZone"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=GData%20on%20Rails%20on%20Google%20AppEngine&amp;link=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F06%2F10%2Fgdata-on-rails-on-google-appengine%2F" title="FriendFeed"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://twitter.com/home?status=GData%20on%20Rails%20on%20Google%20AppEngine%20-%20http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F06%2F10%2Fgdata-on-rails-on-google-appengine%2F" title="Twitter"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="mailto:?subject=GData%20on%20Rails%20on%20Google%20AppEngine&amp;body=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F06%2F10%2Fgdata-on-rails-on-google-appengine%2F" title="email"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F06%2F10%2Fgdata-on-rails-on-google-appengine%2F&amp;partner=sociable" title="Print"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a><br/><br/><img
src="http://johntwang.com/blog/?ak_action=api_record_view&id=857&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JohnTWang?a=Le0Oc96MI8E:pR-ZNejhpT4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JohnTWang?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=Le0Oc96MI8E:pR-ZNejhpT4:a-2c2fEOZvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=Le0Oc96MI8E:pR-ZNejhpT4:a-2c2fEOZvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=Le0Oc96MI8E:pR-ZNejhpT4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=Le0Oc96MI8E:pR-ZNejhpT4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=Le0Oc96MI8E:pR-ZNejhpT4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=Le0Oc96MI8E:pR-ZNejhpT4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=Le0Oc96MI8E:pR-ZNejhpT4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=Le0Oc96MI8E:pR-ZNejhpT4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=Le0Oc96MI8E:pR-ZNejhpT4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=Le0Oc96MI8E:pR-ZNejhpT4:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://johntwang.com/blog/2010/06/10/gdata-on-rails-on-google-appengine/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://johntwang.com/blog/2010/06/10/gdata-on-rails-on-google-appengine/</feedburner:origLink></item> <item><title>JSON with Ruby on Rails on Google AppEngine</title><link>http://feedproxy.google.com/~r/JohnTWang/~3/pRNoQDqz364/</link> <comments>http://johntwang.com/blog/2010/04/23/json-with-ruby-on-rails-on-google-appengine/#comments</comments> <pubDate>Sat, 24 Apr 2010 00:45:01 +0000</pubDate> <dc:creator>john</dc:creator> <category><![CDATA[Learning]]></category> <category><![CDATA[appengine]]></category> <category><![CDATA[json]]></category> <category><![CDATA[ruby on rails]]></category><guid isPermaLink="false">http://www.johntwang.com/?p=854</guid> <description>Getting Started Here&amp;#8217;s a list of what you&amp;#8217;ll need to get started with the demo: a Google AppEngine account Ruby 1.8.6 Rails 2.3.5 Ruby on Rails AppEngine Gem Instructions The first steps that you&amp;#8217;ll want to follow are from John Woodell&amp;#8217;s Gist on Rails 2.3.5 on App Engine with DataMapper. As you&amp;#8217;ll notice, the last[s]</description> <content:encoded><![CDATA[<h3>Getting Started</h3><p>Here&#8217;s a list of what you&#8217;ll need to get started with the demo:</p><ul
class="styled"><li>a Google AppEngine account</li><li>Ruby 1.8.6</li><li>Rails 2.3.5</li><li>Ruby on Rails AppEngine Gem</li></ul><p><span
id="more-854"></span></p><h4>Instructions</h4><p>The first steps that you&#8217;ll want to follow are from John Woodell&#8217;s Gist on <a
href="http://gist.github.com/268192">Rails 2.3.5 on App Engine with DataMapper</a>.</p><p>As you&#8217;ll notice, the last couple of steps generate a RESTful resource called Contact and also it&#8217;s associated DataMapper Model.</p><h4>Adding REST</h4><p>Now in order to add JSON to the mix, we&#8217;ll need a couple more things:</p><ul
class="styled"><li>JSON gem</li><li><a
href="http://github.com/datamapper/dm-serializer/tree/">dm-serializer</a> gem</li></ul><p>We only have to make a few very small changes to the demo app that you got from the <a
href="http://gist.github.com/268192">Gist</a> to get JSON integrated. They&#8217;re listed below, and also at this <a
href="http://gist.github.com/377353">Gist</a>.</p><h5>Gemfile changes: adding the <em>json-jruby</em> and <em>dm-serializer</em> to the gems for bundler</h5><pre class="brush: ruby">
# Critical default settings:
disable_system_gems
disable_rubygems
bundle_path &#039;.gems/bundler_gems&#039;

# List gems to bundle here:
gem &#039;rails_dm_datastore&#039;
gem &#039;rails&#039;, &quot;2.3.5&quot;
gem &quot;json-jruby&quot;
gem &quot;dm-serializer&quot;
</pre><h5>config.ru changes: adding <em>require &#8216;dm-serializer&#8217;</em> and<em> &#8216;json&#8217;</em></h5><pre class="brush: ruby">
require &#039;appengine-rack&#039;
require &#039;cgi&#039;
require &#039;json&#039;
require &#039;dm-core&#039;
require &#039;dm-serializer&#039;

AppEngine::Rack.configure_app(
    :application =&gt; &#039;iphone-json&#039;,
    :precompilation_enabled =&gt; true,
    :sessions_enabled =&gt; true,
    :version =&gt; &quot;1&quot;)

AppEngine::Rack.app.resource_files.exclude :rails_excludes
ENV[&#039;RAILS_ENV&#039;] = AppEngine::Rack.environment

deferred_dispatcher = AppEngine::Rack::DeferredDispatcher.new(
     :require =&gt; File.expand_path(&#039;../config/environment&#039;, __FILE__),
     :dispatch =&gt; &#039;ActionController::Dispatcher&#039;, :isolate =&gt; true)

map &#039;/admin&#039; do
  use AppEngine::Rack::AdminRequired
  run deferred_dispatcher
end

map &#039;/user&#039; do
  use AppEngine::Rack::LoginRequired
  run deferred_dispatcher
end

map &#039;/&#039; do
  run deferred_dispatcher
end
</pre><h5>and finally, the contacts_controller.rb needs the corresponding <em>format.json</em> render statements.</h5><pre class="brush: ruby">
class ContactsController &lt; ApplicationController
  # GET /contacts
  # GET /contacts.xml
  # GET /contacts.json
  def index
    @contacts = Contact.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render <img src='http://johntwang.com/blog/wp-includes/images/smilies/icon_mad.gif' alt=':x' class='wp-smiley' /> ml =&gt; @contacts }
      format.json { render :json =&gt; @contacts }
    end
  end

  # GET /contacts/1
  # GET /contacts/1.xml
  # GET /contacts/1.json
  def show
    @contact = Contact.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render <img src='http://johntwang.com/blog/wp-includes/images/smilies/icon_mad.gif' alt=':x' class='wp-smiley' /> ml =&gt; @contact }
      format.json { render :json =&gt; @contact }
    end
  end

  # GET /contacts/new
  # GET /contacts/new.xml
  # GET /contacts/new.json
  def new
    @contact = Contact.new

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render <img src='http://johntwang.com/blog/wp-includes/images/smilies/icon_mad.gif' alt=':x' class='wp-smiley' /> ml =&gt; @contact }
      format.json { render :json =&gt; @contact }
    end
  end

  # GET /contacts/1/edit
  def edit
    @contact = Contact.find(params[:id])
  end

  # POST /contacts
  # POST /contacts.xml
  # POST /contacts.json
  def create
    @contact = Contact.new(params[:contact])

    respond_to do |format|
      if @contact.save
        flash[:notice] = &#039;Contact was successfully created.&#039;
        format.html { redirect_to(@contact) }
        format.xml  { render <img src='http://johntwang.com/blog/wp-includes/images/smilies/icon_mad.gif' alt=':x' class='wp-smiley' /> ml =&gt; @contact, :status =&gt; :created, :location =&gt; @contact }
        format.json { render :json =&gt; @contact, :status =&gt; :created, :location =&gt; @contact }
      else
        format.html { render :action =&gt; &quot;new&quot; }
        format.xml  { render <img src='http://johntwang.com/blog/wp-includes/images/smilies/icon_mad.gif' alt=':x' class='wp-smiley' /> ml =&gt; @contact.errors, :status =&gt; :unprocessable_entity }
        format.json { render :json =&gt; @contact.errors, :status =&gt; :unprocessable_entity }
      end
    end
  end

  # PUT /contacts/1
  # PUT /contacts/1.xml
  # PUT /contacts/1.json
  def update
    @contact = Contact.find(params[:id])

    respond_to do |format|
      if @contact.update_attributes(params[:contact])
        flash[:notice] = &#039;Contact was successfully updated.&#039;
        format.html { redirect_to(@contact) }
        format.xml  { head <img src='http://johntwang.com/blog/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> k }
        format.json { head <img src='http://johntwang.com/blog/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> k }
      else
        format.html { render :action =&gt; &quot;edit&quot; }
        format.xml  { render <img src='http://johntwang.com/blog/wp-includes/images/smilies/icon_mad.gif' alt=':x' class='wp-smiley' /> ml =&gt; @contact.errors, :status =&gt; :unprocessable_entity }
        format.json { render :json =&gt; @contact.errors, :status =&gt; :unprocessable_entity }
      end
    end
  end

  # DELETE /contacts/1
  # DELETE /contacts/1.xml
  def destroy
    @contact = Contact.find(params[:id])
    @contact.destroy

    respond_to do |format|
      format.html { redirect_to(contacts_url) }
      format.xml  { head <img src='http://johntwang.com/blog/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> k }
      format.json { head <img src='http://johntwang.com/blog/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> k }
    end
  end
end
</pre><h3>Final Notes</h3><ol
class="styled"><li>You may have noticed that by default you get RESTful XML when you generated the resource. It doesn&#8217;t work without the needed dm-serializer. Remember, we&#8217;re using DataMapper here and not ActiveResource. If you try, you&#8217;ll get this beautiful error.<br
/> <code>SEVERE: [1272067889120000]  RuntimeError (Not all elements respond to to_xml)</code></li><p></p><li>If you inspect your DataMapper model, you&#8217;ll notice that every field is a required field. This is key for when you&#8217;re testing your POST method.</li><p></p><li>The last thing that is currently being looked into, is that the POST requires you to pass in the Class in lowercase for it to properly work. I&#8217;m not sure if this is a case-sensitive issue, or just purely needing to change the param to be &#8220;:Contact&#8221; instead of &#8220;:contact&#8221; in the controller.</li></ol><h3>Source Code</h3><ul
class="styled"><li>The fully working demo can be found running on Google AppEngine at: <a
href="http://iphone-json.appspot.com">iphone-json.appspot.com</a></li><li>source is available on <a
href="http://github.com/freshblocks/iPhone-JSON">Github</a>.</li><li>And there is an accompanying iPhone REST client also available on <a
href="http://github.com/freshblocks/iPhone-JSON-Client">Github</a>. (Android client is currently in development.)</li></ul><p>Alternatively, if you just want to quickly test your newly created JSON RESTful resource, you can use the <a
href="https://addons.mozilla.org/en-US/firefox/addon/9780">REST Client for Firefox</a> or <a
href="https://chrome.google.com/extensions/detail/fhjcajmcbmldlhcimfajhfbgofnpcjmb">REST Client for Google Chrome.</a></p>Share the Love:<a
rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F04%2F23%2Fjson-with-ruby-on-rails-on-google-appengine%2F&amp;title=JSON%20with%20Ruby%20on%20Rails%20on%20Google%20AppEngine&amp;bodytext=Getting%20Started%0D%0AHere%27s%20a%20list%20of%20what%20you%27ll%20need%20to%20get%20started%20with%20the%20demo%3A%0D%0A%0D%0Aa%20Google%20AppEngine%20account%0D%0ARuby%201.8.6%0D%0ARails%202.3.5%0D%0ARuby%20on%20Rails%20AppEngine%20Gem%0D%0A%0D%0AInstructions%0D%0AThe%20first%20steps%20that%20you%27ll%20want%20to%20follow%20are%20from%20John%20Woodell%27s%20G" title="Digg"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F04%2F23%2Fjson-with-ruby-on-rails-on-google-appengine%2F&amp;title=JSON%20with%20Ruby%20on%20Rails%20on%20Google%20AppEngine&amp;notes=Getting%20Started%0D%0AHere%27s%20a%20list%20of%20what%20you%27ll%20need%20to%20get%20started%20with%20the%20demo%3A%0D%0A%0D%0Aa%20Google%20AppEngine%20account%0D%0ARuby%201.8.6%0D%0ARails%202.3.5%0D%0ARuby%20on%20Rails%20AppEngine%20Gem%0D%0A%0D%0AInstructions%0D%0AThe%20first%20steps%20that%20you%27ll%20want%20to%20follow%20are%20from%20John%20Woodell%27s%20G" title="del.icio.us"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F04%2F23%2Fjson-with-ruby-on-rails-on-google-appengine%2F&amp;t=JSON%20with%20Ruby%20on%20Rails%20on%20Google%20AppEngine" title="Facebook"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F04%2F23%2Fjson-with-ruby-on-rails-on-google-appengine%2F&amp;title=JSON%20with%20Ruby%20on%20Rails%20on%20Google%20AppEngine" title="StumbleUpon"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F04%2F23%2Fjson-with-ruby-on-rails-on-google-appengine%2F&amp;title=JSON%20with%20Ruby%20on%20Rails%20on%20Google%20AppEngine" title="Design Float"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F04%2F23%2Fjson-with-ruby-on-rails-on-google-appengine%2F&amp;title=JSON%20with%20Ruby%20on%20Rails%20on%20Google%20AppEngine" title="Reddit"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F04%2F23%2Fjson-with-ruby-on-rails-on-google-appengine%2F&amp;title=JSON%20with%20Ruby%20on%20Rails%20on%20Google%20AppEngine" title="DZone"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=JSON%20with%20Ruby%20on%20Rails%20on%20Google%20AppEngine&amp;link=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F04%2F23%2Fjson-with-ruby-on-rails-on-google-appengine%2F" title="FriendFeed"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://twitter.com/home?status=JSON%20with%20Ruby%20on%20Rails%20on%20Google%20AppEngine%20-%20http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F04%2F23%2Fjson-with-ruby-on-rails-on-google-appengine%2F" title="Twitter"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="mailto:?subject=JSON%20with%20Ruby%20on%20Rails%20on%20Google%20AppEngine&amp;body=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F04%2F23%2Fjson-with-ruby-on-rails-on-google-appengine%2F" title="email"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F04%2F23%2Fjson-with-ruby-on-rails-on-google-appengine%2F&amp;partner=sociable" title="Print"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a><br/><br/><img
src="http://johntwang.com/blog/?ak_action=api_record_view&id=854&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JohnTWang?a=pRNoQDqz364:AFznQ6jI-7M:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JohnTWang?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=pRNoQDqz364:AFznQ6jI-7M:a-2c2fEOZvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=pRNoQDqz364:AFznQ6jI-7M:a-2c2fEOZvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=pRNoQDqz364:AFznQ6jI-7M:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=pRNoQDqz364:AFznQ6jI-7M:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=pRNoQDqz364:AFznQ6jI-7M:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=pRNoQDqz364:AFznQ6jI-7M:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=pRNoQDqz364:AFznQ6jI-7M:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=pRNoQDqz364:AFznQ6jI-7M:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=pRNoQDqz364:AFznQ6jI-7M:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=pRNoQDqz364:AFznQ6jI-7M:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://johntwang.com/blog/2010/04/23/json-with-ruby-on-rails-on-google-appengine/feed/</wfw:commentRss> <slash:comments>2</slash:comments> <feedburner:origLink>http://johntwang.com/blog/2010/04/23/json-with-ruby-on-rails-on-google-appengine/</feedburner:origLink></item> <item><title>Lessons Learned: Planning for a Successful Talk</title><link>http://feedproxy.google.com/~r/JohnTWang/~3/k-IVulUHMxo/</link> <comments>http://johntwang.com/blog/2010/03/25/lessons-learned-planning-for-a-successful-talk/#comments</comments> <pubDate>Fri, 26 Mar 2010 07:43:11 +0000</pubDate> <dc:creator>john</dc:creator> <category><![CDATA[Learning]]></category><guid isPermaLink="false">http://www.johntwang.com/?p=852</guid> <description>On March 20th, I had the privilege of being a speaker at Unconferenz. I also ended up hosting a couple of other talks throughout the day as well. I presented on the topic of Designing iPhone/iPad Apps and 3rd Party SDKs. The slides are available here. I learned quite a few lessons as a speaker[s]</description> <content:encoded><![CDATA[<p>On March 20th, I had the privilege of being a speaker at <a
href="http://www.unconferenz.com">Unconferenz</a>. I also ended up hosting a couple of other talks throughout the day as well. I presented on the topic of Designing iPhone/iPad Apps and 3rd Party SDKs. The slides are available <a
href="http://freshblocks.com/downloads/unconferenz2010.pdf">here</a>.</p><p>I learned quite a few lessons as a speaker about giving a better talk.</p><p><span
id="more-852"></span></p><h3>Internet Access</h3><p>I didn&#8217;t run into any problems on Internet Access at Unconferenz, but I did make sure to ask the host if there would be Internet access provided. I also brought along a personal USB 3G Modem as a backup.</p><h3>Power</h3><p>Power actually could have been a problem. I currently use a MacBook Pro which about 2-3hrs of battery life. However, something to consider is the computer going to sleep mode while you&#8217;re in the middle of a presentation. Also, the power outlet may not be somewhere remotely close to how long your power cable reaches. For this, I carry both my power adapter and also a <a
href="http://www.amazon.com/RiteAV-ft-Power-Extension-Cord/dp/B000V1PAZS/ref=sr_1_1?ie=UTF8&#038;s=electronics&#038;qid=1269589267&#038;sr=8-1">10ft extension cable</a>. You may also want to be a kind person and bring a <a
href="http://www.amazon.com/Belkin-Mini-Surge-Protector-Charger/dp/B0015DYMVO/ref=sr_1_2?ie=UTF8&#038;s=electronics&#038;qid=1269589226&#038;sr=8-2">multi-outlet mini surge protector</a> so not to take the only one or 2 power outlet available.</p><h3>Backup Plan</h3><p>Always have a backup plan. The one thing that I did not have at all was a Mini-DisplayPort to VGA adapter for my laptop to connect to the projector. That was a bad thing. Luckily, someone at the conference did have one and I was able to borrow it. There was also a computer in the room that I could have used as another fallback as long as I had my presentation on a USB Key or uploaded somewhere like <a
href="http://www.dropbox.com">DropBox</a> on the web.</p><h3>Contact Info</h3><p>I ran out of business cards. That was a bad thing. Always bring lots of those. I was lucky enough that some people had iPhones with the Bump app to swap contact info and also some who were willing to either give me theirs so I could contact them or just quickly add me to either <a
href="http://twitter.com/johntwang">Twitter</a> or Gmail email address.</p><h3>Double-Check Everything, Maybe Even Triple-Check</h3><p>I had uploaded my slides ahead of time in case anyone wanted to download them. Unfortunately for me, I misspelled the file name and the link was dead. I quickly corrected the link and made sure to tweet it back out. That was very embarrassing to say the least. Make sure your stuff is set before you announce it.</p><h4>Resources</h4><ul
class="disc"><li><a
href="http://vimeo.com/7160585">The Future of the Cloud by Simon Wardley</a></li><li><a
href="http://carsonified.com/blog/business/10-kick-ass-presentation-techniques/">10 Kick Ass Presentation Techniques | Carsonified</a></li><li><a
href="http://www.amazon.com/Presentation-Zen-Simple-Design-Delivery/dp/0321525655/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1269302992&#038;sr=8-1">Presentation Zen: Simple Ideas on Presentation Design and Delivery</a> &#8211; Garr Reynolds</li><li><a
href="http://www.amazon.com/Presentation-Zen-Design-Principles-Presentations/dp/0321668790/ref=ntt_at_ep_dpt_2">Presentation Zen Design: Simple Design Principles and Techniques to Enhance Your Presentations<br
/> </a> &#8211; Garr Reynolds</li></ul>Share the Love:<a
rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F25%2Flessons-learned-planning-for-a-successful-talk%2F&amp;title=Lessons%20Learned%3A%20Planning%20for%20a%20Successful%20Talk&amp;bodytext=On%20March%2020th%2C%20I%20had%20the%20privilege%20of%20being%20a%20speaker%20at%20Unconferenz.%20I%20also%20ended%20up%20hosting%20a%20couple%20of%20other%20talks%20throughout%20the%20day%20as%20well.%20I%20presented%20on%20the%20topic%20of%20Designing%20iPhone%2FiPad%20Apps%20and%203rd%20Party%20SDKs.%20The%20slides%20are%20available%20here" title="Digg"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F25%2Flessons-learned-planning-for-a-successful-talk%2F&amp;title=Lessons%20Learned%3A%20Planning%20for%20a%20Successful%20Talk&amp;notes=On%20March%2020th%2C%20I%20had%20the%20privilege%20of%20being%20a%20speaker%20at%20Unconferenz.%20I%20also%20ended%20up%20hosting%20a%20couple%20of%20other%20talks%20throughout%20the%20day%20as%20well.%20I%20presented%20on%20the%20topic%20of%20Designing%20iPhone%2FiPad%20Apps%20and%203rd%20Party%20SDKs.%20The%20slides%20are%20available%20here" title="del.icio.us"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F25%2Flessons-learned-planning-for-a-successful-talk%2F&amp;t=Lessons%20Learned%3A%20Planning%20for%20a%20Successful%20Talk" title="Facebook"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F25%2Flessons-learned-planning-for-a-successful-talk%2F&amp;title=Lessons%20Learned%3A%20Planning%20for%20a%20Successful%20Talk" title="StumbleUpon"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F25%2Flessons-learned-planning-for-a-successful-talk%2F&amp;title=Lessons%20Learned%3A%20Planning%20for%20a%20Successful%20Talk" title="Design Float"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F25%2Flessons-learned-planning-for-a-successful-talk%2F&amp;title=Lessons%20Learned%3A%20Planning%20for%20a%20Successful%20Talk" title="Reddit"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F25%2Flessons-learned-planning-for-a-successful-talk%2F&amp;title=Lessons%20Learned%3A%20Planning%20for%20a%20Successful%20Talk" title="DZone"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=Lessons%20Learned%3A%20Planning%20for%20a%20Successful%20Talk&amp;link=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F25%2Flessons-learned-planning-for-a-successful-talk%2F" title="FriendFeed"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Lessons%20Learned%3A%20Planning%20for%20a%20Successful%20Talk%20-%20http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F25%2Flessons-learned-planning-for-a-successful-talk%2F" title="Twitter"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="mailto:?subject=Lessons%20Learned%3A%20Planning%20for%20a%20Successful%20Talk&amp;body=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F25%2Flessons-learned-planning-for-a-successful-talk%2F" title="email"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F25%2Flessons-learned-planning-for-a-successful-talk%2F&amp;partner=sociable" title="Print"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a><br/><br/><img
src="http://johntwang.com/blog/?ak_action=api_record_view&id=852&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JohnTWang?a=k-IVulUHMxo:2vrMvJIwla0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JohnTWang?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=k-IVulUHMxo:2vrMvJIwla0:a-2c2fEOZvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=k-IVulUHMxo:2vrMvJIwla0:a-2c2fEOZvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=k-IVulUHMxo:2vrMvJIwla0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=k-IVulUHMxo:2vrMvJIwla0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=k-IVulUHMxo:2vrMvJIwla0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=k-IVulUHMxo:2vrMvJIwla0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=k-IVulUHMxo:2vrMvJIwla0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=k-IVulUHMxo:2vrMvJIwla0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=k-IVulUHMxo:2vrMvJIwla0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=k-IVulUHMxo:2vrMvJIwla0:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://johntwang.com/blog/2010/03/25/lessons-learned-planning-for-a-successful-talk/feed/</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://johntwang.com/blog/2010/03/25/lessons-learned-planning-for-a-successful-talk/</feedburner:origLink></item> <item><title>On 37 Signals’ REWORK</title><link>http://feedproxy.google.com/~r/JohnTWang/~3/WBNQ5VKIpak/</link> <comments>http://johntwang.com/blog/2010/03/17/on-37-signals-rework/#comments</comments> <pubDate>Wed, 17 Mar 2010 21:49:28 +0000</pubDate> <dc:creator>john</dc:creator> <category><![CDATA[Learning]]></category> <category><![CDATA[37 Signals]]></category> <category><![CDATA[REWORK]]></category><guid isPermaLink="false">http://www.johntwang.com/?p=849</guid> <description>The folks over at 37 Signals recently released their new book called Rework. It&amp;#8217;s a business book on how they run their company and business. REWORK is a brilliant book. Check out the book&amp;#8217;s website. The website contains videos and sample images of the contents. Why You Should Read REWORK The book is dirty cheap.[s]</description> <content:encoded><![CDATA[<p>The folks over at 37 Signals recently released their new book called <a
href="http://www.amazon.com/gp/product/0307463745?ie=UTF8&#038;tag=jotwa-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0307463745">Rework</a><img
src="http://www.assoc-amazon.com/e/ir?t=jotwa-20&#038;l=as2&#038;o=1&#038;a=0307463745"/>. It&#8217;s a business book on how they run their company and business.</p><p><span
id="more-849"></span></p><p>REWORK is a brilliant book. Check out the <a
href="http://37signals.com/rework/">book&#8217;s website</a>. The website contains videos and sample images of the contents.</p><h3>Why You Should Read REWORK</h3><p>The book is dirty cheap. It&#8217;s under $10 on the Amazon Kindle and just over $12 in hardcover on Amazon. It&#8217;s also an extremely short book coming in at just under 300 pages. I finished reading it less than 3 hours. All of the principles detailed in the book are brilliantly worded to the point that they&#8217;ll feel like common sense. The principles are also nice and short so that you can actually remember and apply them. Jason and David don&#8217;t throw a bunch of mumbo jumbo and useless buzz words.</p><p>This is a quick but very powerful read and definitely recommended for everyone. It&#8217;s not a book just for business owners, CEOs or the cubicle workers. REWORK is a book that everyone at every level should read.</p><h3>What&#8217;s Next?</h3><p>Head on over to the <a
href="http://37signals.com/rework/">book&#8217;s website</a> and check out the PDF excerpt for a sample or just go straight to Amazon and order the <a
href="http://www.amazon.com/Rework-ebook/dp/B002MUAJ2A/ref=tmm_kin_title_0?ie=UTF8&#038;m=AG56TWVU5XWC2">Kindle version</a> or <a
href="http://www.amazon.com/gp/product/0307463745?ie=UTF8&#038;tag=jotwa-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0307463745">Hardcover version</a><img
src="http://www.assoc-amazon.com/e/ir?t=jotwa-20&#038;l=as2&#038;o=1&#038;a=0307463745"/>.</p>Share the Love:<a
rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F17%2Fon-37-signals-rework%2F&amp;title=On%2037%20Signals%27%20REWORK&amp;bodytext=The%20folks%20over%20at%2037%20Signals%20recently%20released%20their%20new%20book%20called%20Rework.%20It%27s%20a%20business%20book%20on%20how%20they%20run%20their%20company%20and%20business.%0D%0A%0D%0AREWORK%20is%20a%20brilliant%20book.%20Check%20out%20the%20book%27s%20website.%20The%20website%20contains%20videos%20and%20sample%20images%20o" title="Digg"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F17%2Fon-37-signals-rework%2F&amp;title=On%2037%20Signals%27%20REWORK&amp;notes=The%20folks%20over%20at%2037%20Signals%20recently%20released%20their%20new%20book%20called%20Rework.%20It%27s%20a%20business%20book%20on%20how%20they%20run%20their%20company%20and%20business.%0D%0A%0D%0AREWORK%20is%20a%20brilliant%20book.%20Check%20out%20the%20book%27s%20website.%20The%20website%20contains%20videos%20and%20sample%20images%20o" title="del.icio.us"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F17%2Fon-37-signals-rework%2F&amp;t=On%2037%20Signals%27%20REWORK" title="Facebook"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F17%2Fon-37-signals-rework%2F&amp;title=On%2037%20Signals%27%20REWORK" title="StumbleUpon"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F17%2Fon-37-signals-rework%2F&amp;title=On%2037%20Signals%27%20REWORK" title="Design Float"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F17%2Fon-37-signals-rework%2F&amp;title=On%2037%20Signals%27%20REWORK" title="Reddit"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F17%2Fon-37-signals-rework%2F&amp;title=On%2037%20Signals%27%20REWORK" title="DZone"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=On%2037%20Signals%27%20REWORK&amp;link=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F17%2Fon-37-signals-rework%2F" title="FriendFeed"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://twitter.com/home?status=On%2037%20Signals%27%20REWORK%20-%20http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F17%2Fon-37-signals-rework%2F" title="Twitter"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="mailto:?subject=On%2037%20Signals%27%20REWORK&amp;body=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F17%2Fon-37-signals-rework%2F" title="email"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F03%2F17%2Fon-37-signals-rework%2F&amp;partner=sociable" title="Print"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a><br/><br/><img
src="http://johntwang.com/blog/?ak_action=api_record_view&id=849&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JohnTWang?a=WBNQ5VKIpak:RvRQE8lAtrA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JohnTWang?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=WBNQ5VKIpak:RvRQE8lAtrA:a-2c2fEOZvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=WBNQ5VKIpak:RvRQE8lAtrA:a-2c2fEOZvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=WBNQ5VKIpak:RvRQE8lAtrA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=WBNQ5VKIpak:RvRQE8lAtrA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=WBNQ5VKIpak:RvRQE8lAtrA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=WBNQ5VKIpak:RvRQE8lAtrA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=WBNQ5VKIpak:RvRQE8lAtrA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=WBNQ5VKIpak:RvRQE8lAtrA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=WBNQ5VKIpak:RvRQE8lAtrA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=WBNQ5VKIpak:RvRQE8lAtrA:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://johntwang.com/blog/2010/03/17/on-37-signals-rework/feed/</wfw:commentRss> <slash:comments>1</slash:comments> <feedburner:origLink>http://johntwang.com/blog/2010/03/17/on-37-signals-rework/</feedburner:origLink></item> <item><title>Where I Am and Where I Want to Be</title><link>http://feedproxy.google.com/~r/JohnTWang/~3/zOFSwfAsLUk/</link> <comments>http://johntwang.com/blog/2010/01/28/where-i-am-and-where-i-want-to-be/#comments</comments> <pubDate>Thu, 28 Jan 2010 22:35:25 +0000</pubDate> <dc:creator>john</dc:creator> <category><![CDATA[life]]></category><guid isPermaLink="false">http://www.johntwang.com/?p=845</guid> <description>I recently introduced my new venture called Fresh Blocks. A self-owned business of mine for web design and iPhone Apps. I&amp;#8217;ve also recently become interested in documenting an actual process of things. Partly due to both John O&amp;#8217;Nolan&amp;#8216;s monthly business reviews and also Aaron Irizarry&amp;#8216;s recent videocast series about Making the Transition. So What Does[s]</description> <content:encoded><![CDATA[<p>I recently <a
href="http://www.johntwang.com/blog/2009/12/14/introducing-fresh-blocks/">introduced my new venture called Fresh Blocks</a>. A self-owned business of mine for web design and iPhone Apps. I&#8217;ve also recently become interested in documenting an actual process of things. Partly due to both <a
href="http://john.onolan.org/">John O&#8217;Nolan</a>&#8216;s <a
href="http://john.onolan.org/starting-a-business-a-year-in-review/">monthly business reviews</a> and also <a
href="http://www.thisisaaronslife.com/">Aaron Irizarry</a>&#8216;s recent <a
href="http://www.thisisaaronslife.com/category/freelance/">videocast series about Making the Transition</a>.</p><p><span
id="more-845"></span></p><h3>So What Does This All Mean?</h3><p>For starters, It means that I&#8217;m going to be attempting to move all technical related posts (maybe just the future ones) to the <a
href="http://www.freshblocks.com/blog">Fresh Blocks Blog</a>.</p><p>Secondly, I&#8217;m going to do monthly and yearly goals for both <a
href="http://www.freshblocks.com">Fresh Blocks</a> and myself. Of which, I will be using the blog to document my progress, successes and failures similar to John O&#8217;Nolan&#8217;s concept.</p><p>I plan on separating content into a few broader categories, such as following my Thoughts and my Learnings. I&#8217;ll likely keep this page more personal and the Fresh Blocks page more professional.</p><h3>Hello World</h3><p>It seems appropriate in a way to start anew. But as we all know, Google never forgets. Some of the things that I am looking to document will be highly related to personal development. Of course, it will also overlap with what Fresh Blocks does, simply because Fresh Blocks is a large part of my development.</p><p>I&#8217;m going to be going over goals and what was achieved, what was not and why not. I will also go into noting special blog posts from around the web that have in some way contributed to my personal development.</p><h3>The Year That Was 2009</h3><p>Last year brought a bunch of changes. In the beginning of the year, I started up a company called <a
href="http://www.freshblocks.com">Fresh Blocks</a>. It was created to transition my freelance work from my personal name to a more distinguishable brand. The creation of <a
href="http://www.freshblocks.com">Fresh Blocks</a> also allowed me to learn what it takes to run a business and be a freelancer. I quickly became involved in social media networks such as <a
href="http://www.twitter.com/jwang392">Twitter</a> and <a
href="http://www.friendfeed.com/johnwang">Friendfeed</a> to connect to others in the fields and learn from them.</p><p>Another by product of Fresh Blocks was getting into iPhone app development. This of course meant learning a complete new programming language (Objective C) and framework of Cocoa (Touch.) I signed up for a developer&#8217;s account and began reading through tons of Apple Documentation, Dave Mark&#8217;s Beginning iPhone SDK Development book, and following along with Stanford&#8217;s CS193P iTunesU iPhone Programming Course. I also joined various Google Groups, the <a
href="http://www.iphonedevsdk.com/forum/iphone-sdk-development/">iPhone Dev SDK forum</a> and Apple&#8217;s own Beta forum. I quickly developed 2 internal iPhone apps and 1 that was rejected by Apple&#8217;s App Store due to being a purely self-marketing app. All in all, I learned a great deal and am still thoroughly excited about iPhone programming.</p><p>On the web design and development end of things, I got my feet wet with some jQuery, seeing as I haven&#8217;t done much Javascript since back in 1999, it was quite a breath of fresh air. I also got started with some frameworks such as 960.gs and BlueprintCSS. I started getting down to learning Ruby on Rails and Python. I also introduced myself to Git towards the middle of the year and been working on transitioning from SubVersion over to Git.</p><p>And quite possibly, the biggest accomplishment of last year, was my engagement. One that I&#8217;m quite proud of and very excited about.</p><h4>The Books</h4><p>The following is the list of books that I read as part of my personal development last year.</p><ul
class="styled"><li>The Principles of Successful Freelancing</li><li>Good to Great</li><li>Escape from Cubicle Nation: From Corporate Prisoner to Thriving Entrepreneur</li><li>Web Standards Solutions: The Markup and Style Handbook (Pioneering Series)</li><li>Bulletproof Web Design: Improving flexibility and protecting against worst-case scenarios with XHTML and CSS (2nd Edition)</li><li>Don&#8217;t Make Me Think: A Common Sense Approach to Web Usability, 2nd Edition</li><li>Beginning iPhone SDK Development</li><li>The Principles of Beautiful Web Design</li><li>Learning jQuery: Better Interaction Design and Web Development with Simple JavaScript Techniques</li><li>Designing with Web Standards (2nd Edition)</li><li>CSS Mastery: Advanced Web Standards Solutions</li><li>iPhone SDK Development (The Pragmatic Programmers)</li><li>Adobe Illustrator CS4 Classroom in a Book</li><li>Free</li><li>Unclutter Your Life in One Week</li><li>The Complete Graphic Designer: A Guide to Understanding Graphics and Visual Communication</li><li>A Designer&#8217;s Research Manual: Succeed in Design by Knowing Your Clients and What They Really Need</li></ul><h3>Where I Am Now</h3><p>I&#8217;ve started my Mobile Programming course at Hawaii Pacific University. The course is centered around Google Android and iPhone OS programming. The class runs until the middle of May. I&#8217;ve also got an iPhone app I&#8217;ve been working on that I plan on finishing up and submitting it for an Apple Design Award. Hopefully winning one as well. I have a Magento project that I&#8217;m also working on.</p><p>I&#8217;m also in the process of re-arranging content and the overall design of this site. Primarily making it easier for future clients and employers to find information about me and at the same time documenting my personal development growth.</p><h3>What&#8217;s on Deck for 2010</h3><p>I currently have the following upcoming for the remainder of the year:</p><ol><li>Getting deeper into Android Development</li><li>Starting up on iPad SDK Programming and releasing some Beta apps</li><li>Finishing up some iPhone apps and getting them published on the App Store</li><li>Getting back into Ruby on Rails and Python/Google App Engine</li><li>Learning more about ExpressionEngine 2.0</li><li>Finishing up a Magento eCommerce site client project</li></ol><p>And I&#8217;m fairly sure I&#8217;ll come up with some more goals and such along the way.</p>Share the Love:<a
rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F01%2F28%2Fwhere-i-am-and-where-i-want-to-be%2F&amp;title=Where%20I%20Am%20and%20Where%20I%20Want%20to%20Be&amp;bodytext=I%20recently%20introduced%20my%20new%20venture%20called%20Fresh%20Blocks.%20A%20self-owned%20business%20of%20mine%20for%20web%20design%20and%20iPhone%20Apps.%20I%27ve%20also%20recently%20become%20interested%20in%20documenting%20an%20actual%20process%20of%20things.%20Partly%20due%20to%20both%20John%20O%27Nolan%27s%20monthly%20busines" title="Digg"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F01%2F28%2Fwhere-i-am-and-where-i-want-to-be%2F&amp;title=Where%20I%20Am%20and%20Where%20I%20Want%20to%20Be&amp;notes=I%20recently%20introduced%20my%20new%20venture%20called%20Fresh%20Blocks.%20A%20self-owned%20business%20of%20mine%20for%20web%20design%20and%20iPhone%20Apps.%20I%27ve%20also%20recently%20become%20interested%20in%20documenting%20an%20actual%20process%20of%20things.%20Partly%20due%20to%20both%20John%20O%27Nolan%27s%20monthly%20busines" title="del.icio.us"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F01%2F28%2Fwhere-i-am-and-where-i-want-to-be%2F&amp;t=Where%20I%20Am%20and%20Where%20I%20Want%20to%20Be" title="Facebook"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F01%2F28%2Fwhere-i-am-and-where-i-want-to-be%2F&amp;title=Where%20I%20Am%20and%20Where%20I%20Want%20to%20Be" title="StumbleUpon"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F01%2F28%2Fwhere-i-am-and-where-i-want-to-be%2F&amp;title=Where%20I%20Am%20and%20Where%20I%20Want%20to%20Be" title="Design Float"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F01%2F28%2Fwhere-i-am-and-where-i-want-to-be%2F&amp;title=Where%20I%20Am%20and%20Where%20I%20Want%20to%20Be" title="Reddit"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F01%2F28%2Fwhere-i-am-and-where-i-want-to-be%2F&amp;title=Where%20I%20Am%20and%20Where%20I%20Want%20to%20Be" title="DZone"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=Where%20I%20Am%20and%20Where%20I%20Want%20to%20Be&amp;link=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F01%2F28%2Fwhere-i-am-and-where-i-want-to-be%2F" title="FriendFeed"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Where%20I%20Am%20and%20Where%20I%20Want%20to%20Be%20-%20http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F01%2F28%2Fwhere-i-am-and-where-i-want-to-be%2F" title="Twitter"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="mailto:?subject=Where%20I%20Am%20and%20Where%20I%20Want%20to%20Be&amp;body=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F01%2F28%2Fwhere-i-am-and-where-i-want-to-be%2F" title="email"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2010%2F01%2F28%2Fwhere-i-am-and-where-i-want-to-be%2F&amp;partner=sociable" title="Print"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a><br/><br/><img
src="http://johntwang.com/blog/?ak_action=api_record_view&id=845&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JohnTWang?a=zOFSwfAsLUk:NNzinLFqxuE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JohnTWang?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=zOFSwfAsLUk:NNzinLFqxuE:a-2c2fEOZvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=zOFSwfAsLUk:NNzinLFqxuE:a-2c2fEOZvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=zOFSwfAsLUk:NNzinLFqxuE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=zOFSwfAsLUk:NNzinLFqxuE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=zOFSwfAsLUk:NNzinLFqxuE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=zOFSwfAsLUk:NNzinLFqxuE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=zOFSwfAsLUk:NNzinLFqxuE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=zOFSwfAsLUk:NNzinLFqxuE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=zOFSwfAsLUk:NNzinLFqxuE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=zOFSwfAsLUk:NNzinLFqxuE:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://johntwang.com/blog/2010/01/28/where-i-am-and-where-i-want-to-be/feed/</wfw:commentRss> <slash:comments>5</slash:comments> <feedburner:origLink>http://johntwang.com/blog/2010/01/28/where-i-am-and-where-i-want-to-be/</feedburner:origLink></item> <item><title>Introducing Fresh Blocks</title><link>http://feedproxy.google.com/~r/JohnTWang/~3/Fod-AfAJku4/</link> <comments>http://johntwang.com/blog/2009/12/14/introducing-fresh-blocks/#comments</comments> <pubDate>Tue, 15 Dec 2009 03:28:11 +0000</pubDate> <dc:creator>john</dc:creator> <category><![CDATA[news]]></category> <category><![CDATA[freelance]]></category><guid isPermaLink="false">http://www.johntwang.com/?p=843</guid> <description>It’s Official I’ve started a web and mobile design/development company called Fresh Blocks. The focus is on creating either website design and web apps or iPhone and Android apps. I’ve been working under the name since earlier this year, and the the small site launched for the company. The idea of Fresh Blocks came around[s]</description> <content:encoded><![CDATA[<p><img
src="http://www.johntwang.com/blog/wp-content/uploads/2009/12/Fresh_Blocks_Logo-300x93.png" alt="Fresh Blocks Logo" title="Fresh Blocks Logo" width="300" height="93" class="aligncenter size-medium wp-image-844" /></p><h3>It’s Official</h3><p>I’ve started a web and mobile design/development company called <a
href="http://www.freshblocks.com" title="Fresh Blocks LLC">Fresh Blocks</a>. The focus is on creating either website design and web apps or iPhone and Android apps. I’ve been working under the name since earlier this year, and the the small site launched for the company.</p><p>The idea of Fresh Blocks came around during a moment of &#8220;Designer&#8217;s <em>Block</em>.&#8221; Where I was looking for <em>fresh</em> ideas to work with. Hence the name of the company being born. A lot of work went into making sure the name was viable as a brand. ThinkVitamin has a great article about choosing a name: <a
href="http://carsonified.com/blog/business/whats-in-a-name/">What’s in a Name?</a> What we&#8217;re trying to do is help individuals and businesses grow their online presence through the web and mobile web.</p><p>Here’s to new beginnings! Head on over and say hello to <a
href="http://www.freshblocks.com">Fresh Blocks</a>. Alternatively <a
href="http://www.twitter.com/freshblocks">follow Fresh Blocks on Twitter</a> or <a
href="http://www.facebook.com/pages/Fresh-Blocks/142486677566">become a fan on Facebook</a>.</p><p><span
id="more-843"></span></p><h3>Further Education</h3><p>I&#8217;ve also registered as a Special Status Student at <a
href="http://www.hpu.edu/">Hawaii Pacific University</a> for the <a
href="http://www.hpu.edu/index.cfm?action=search.displaySearchCourseDetails&#038;courseID=1715">Mobile Application Development course</a>. This course will be focusing on teaching both iPhone and Android Application Development. I&#8217;m looking forward to enhancing my knowledge of both the iPhone and Android SDK.</p>Share the Love:<a
rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F12%2F14%2Fintroducing-fresh-blocks%2F&amp;title=Introducing%20Fresh%20Blocks&amp;bodytext=%0D%0AIt%E2%80%99s%20Official%0D%0AI%E2%80%99ve%20started%20a%20web%20and%20mobile%20design%2Fdevelopment%20company%20called%20Fresh%20Blocks.%20The%20focus%20is%20on%20creating%20either%20website%20design%20and%20web%20apps%20or%20iPhone%20and%20Android%20apps.%20I%E2%80%99ve%20been%20working%20under%20the%20name%20since%20earlier%20this%20year%2C%20and" title="Digg"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F12%2F14%2Fintroducing-fresh-blocks%2F&amp;title=Introducing%20Fresh%20Blocks&amp;notes=%0D%0AIt%E2%80%99s%20Official%0D%0AI%E2%80%99ve%20started%20a%20web%20and%20mobile%20design%2Fdevelopment%20company%20called%20Fresh%20Blocks.%20The%20focus%20is%20on%20creating%20either%20website%20design%20and%20web%20apps%20or%20iPhone%20and%20Android%20apps.%20I%E2%80%99ve%20been%20working%20under%20the%20name%20since%20earlier%20this%20year%2C%20and" title="del.icio.us"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F12%2F14%2Fintroducing-fresh-blocks%2F&amp;t=Introducing%20Fresh%20Blocks" title="Facebook"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F12%2F14%2Fintroducing-fresh-blocks%2F&amp;title=Introducing%20Fresh%20Blocks" title="StumbleUpon"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F12%2F14%2Fintroducing-fresh-blocks%2F&amp;title=Introducing%20Fresh%20Blocks" title="Design Float"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F12%2F14%2Fintroducing-fresh-blocks%2F&amp;title=Introducing%20Fresh%20Blocks" title="Reddit"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F12%2F14%2Fintroducing-fresh-blocks%2F&amp;title=Introducing%20Fresh%20Blocks" title="DZone"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=Introducing%20Fresh%20Blocks&amp;link=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F12%2F14%2Fintroducing-fresh-blocks%2F" title="FriendFeed"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Introducing%20Fresh%20Blocks%20-%20http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F12%2F14%2Fintroducing-fresh-blocks%2F" title="Twitter"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="mailto:?subject=Introducing%20Fresh%20Blocks&amp;body=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F12%2F14%2Fintroducing-fresh-blocks%2F" title="email"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F12%2F14%2Fintroducing-fresh-blocks%2F&amp;partner=sociable" title="Print"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a><br/><br/><img
src="http://johntwang.com/blog/?ak_action=api_record_view&id=843&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JohnTWang?a=Fod-AfAJku4:84GkyaQjPLM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JohnTWang?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=Fod-AfAJku4:84GkyaQjPLM:a-2c2fEOZvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=Fod-AfAJku4:84GkyaQjPLM:a-2c2fEOZvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=Fod-AfAJku4:84GkyaQjPLM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=Fod-AfAJku4:84GkyaQjPLM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=Fod-AfAJku4:84GkyaQjPLM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=Fod-AfAJku4:84GkyaQjPLM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=Fod-AfAJku4:84GkyaQjPLM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=Fod-AfAJku4:84GkyaQjPLM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=Fod-AfAJku4:84GkyaQjPLM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=Fod-AfAJku4:84GkyaQjPLM:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://johntwang.com/blog/2009/12/14/introducing-fresh-blocks/feed/</wfw:commentRss> <slash:comments>3</slash:comments> <feedburner:origLink>http://johntwang.com/blog/2009/12/14/introducing-fresh-blocks/</feedburner:origLink></item> <item><title>Review: Kapsoft’s iPhone Stencil</title><link>http://feedproxy.google.com/~r/JohnTWang/~3/u68fBoT23MQ/</link> <comments>http://johntwang.com/blog/2009/11/10/review-kapsofts-iphone-stencil/#comments</comments> <pubDate>Tue, 10 Nov 2009 19:34:59 +0000</pubDate> <dc:creator>john</dc:creator> <category><![CDATA[reviews]]></category> <category><![CDATA[iphone]]></category><guid isPermaLink="false">http://www.johntwang.com/?p=815</guid> <description>Overview Hot off the trails of the news that Apress acquired the publishing rights to Kapsoft’s iPhone Application Sketch Book, comes the new iPhone Stencil. In Detail The new Apress Book is has been improved. A new cover. It’s now 1.5x scale (150% of actual size iPhone). Pages have been increased by 25 &amp;#8211; that’s[s]</description> <content:encoded><![CDATA[<h4>Overview</h4><p>Hot off the trails of the news that <a
href="http://deanonsoftware.com/?p=89">Apress acquired the publishing rights to Kapsoft’s iPhone Application Sketch Book</a>, comes the new <a
href="http://www.mobilesketchbook.com/">iPhone Stencil</a>.</p><p><span
id="more-815"></span><br
/></p><h4>In Detail</h4><p>The new Apress Book is has been improved. A new cover. It’s now 1.5x scale (150% of actual size iPhone). Pages have been increased by 25 &#8211; that’s 50 more templates. And the pages have been perforated for easy tear out.</p><p>The Stencil is also 1.5x scale but includes a 1.0x scale iPhone should you need it. It is made of green plastic, much the same as most stencils you buy at a design store. It also features a nice little ruler on the side. Something extra that I had not anticipated, but find very handy. The stencil itself, features the majority of UIKit elements you will use in sketch design and comes in very handy. While, it is a bit on the larger end, it does fit nicely within the new sketchbook pages for carrying.</p><p>The Stencil will cost you $9.99 while the new Apress version of the Sketchbook comes in at $14.99.</p><p></p><h4>Compared against <a
href="http://www.uistencils.com/iphone-stencil-kit.html">Design Commission&#8217;s Stencil</a></h4><p>While both stencils are larger scale than the actual iPhone size, the new Kapsoft one is a tad bit bigger. 1.5x the size of the iPhone. Design Comission&#8217;s stencil seems to be roughly 1.25x scale.</p><p>Kapsoft&#8217;s stencil is also cheaper in cost. $9.99 vs $17.95. Though, I&#8217;m sure that the material cost plays quite a role in this. Plastic against Stainless Steel.</p><p>I do find the Design Commission&#8217;s Stencil to be much more portable due to it&#8217;s smaller footprint. And the stainless steel material feels a bit more Apple-like and sturdier. Plastic can break easily.</p><h4>Overall</h4><p>You really can&#8217;t go wrong with either Stencil kit. And you definitely should be sketching designs before jumping into XCode. If you are planning to use the Apress Sketchbook, you&#8217;ll want to get the new Kapsoft Stencil due to the matching iPhone scale. Similarly, Design Commission offers both a downloadable PDF template and now a <a
href="http://www.uistencils.com/iphone-sketch-pad.html">Sketchpad</a> for $7.95 to go with their own Stencil Kit.</p><h4>Gallery</h4><div
class="ngg-galleryoverview" id="ngg-gallery-18-815"><div
id="ngg-image-140" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/stencil_apress/img_4532.jpg" title=" " rel="lightbox[set_18]" > <img
title="Apress Sketchbook" alt="Apress Sketchbook" src="http://johntwang.com/blog/wp-content/gallery/stencil_apress/thumbs/thumbs_img_4532.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-141" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/stencil_apress/img_4533.jpg" title="The new sketchbook features a 1.5x scale iPhone" rel="lightbox[set_18]" > <img
title="Apress Sketchbook" alt="Apress Sketchbook" src="http://johntwang.com/blog/wp-content/gallery/stencil_apress/thumbs/thumbs_img_4533.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-142" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/stencil_apress/img_4534.jpg" title="The old sketchbook had a 1x scale iPhone" rel="lightbox[set_18]" > <img
title="The Old Sketchbook" alt="The Old Sketchbook" src="http://johntwang.com/blog/wp-content/gallery/stencil_apress/thumbs/thumbs_img_4534.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-143" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/stencil_apress/img_4535.jpg" title=" " rel="lightbox[set_18]" > <img
title="The new Stencil" alt="The new Stencil" src="http://johntwang.com/blog/wp-content/gallery/stencil_apress/thumbs/thumbs_img_4535.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-144" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/stencil_apress/img_4536.jpg" title=" " rel="lightbox[set_18]" > <img
title="The new Stencil" alt="The new Stencil" src="http://johntwang.com/blog/wp-content/gallery/stencil_apress/thumbs/thumbs_img_4536.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-145" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/stencil_apress/img_4537.jpg" title="Compared against the Design Commission stencil." rel="lightbox[set_18]" > <img
title="The new Stencil and Design Comission Stencil" alt="The new Stencil and Design Comission Stencil" src="http://johntwang.com/blog/wp-content/gallery/stencil_apress/thumbs/thumbs_img_4537.jpg" width="100" height="75" /> </a></div></div><div
class='ngg-clear'></div></div>Share the Love:<a
rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F10%2Freview-kapsofts-iphone-stencil%2F&amp;title=Review%3A%20Kapsoft%27s%20iPhone%20Stencil&amp;bodytext=Overview%0D%0AHot%20off%20the%20trails%20of%20the%20news%20that%20Apress%20acquired%20the%20publishing%20rights%20to%20Kapsoft%E2%80%99s%20iPhone%20Application%20Sketch%20Book%2C%20comes%20the%20new%20iPhone%20Stencil.%0D%0A%0D%0A%0D%0AIn%20Detail%0D%0AThe%20new%20Apress%20Book%20is%20has%20been%20improved.%20A%20new%20cover.%20It%E2%80%99s%20now%201.5x%20sc" title="Digg"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F10%2Freview-kapsofts-iphone-stencil%2F&amp;title=Review%3A%20Kapsoft%27s%20iPhone%20Stencil&amp;notes=Overview%0D%0AHot%20off%20the%20trails%20of%20the%20news%20that%20Apress%20acquired%20the%20publishing%20rights%20to%20Kapsoft%E2%80%99s%20iPhone%20Application%20Sketch%20Book%2C%20comes%20the%20new%20iPhone%20Stencil.%0D%0A%0D%0A%0D%0AIn%20Detail%0D%0AThe%20new%20Apress%20Book%20is%20has%20been%20improved.%20A%20new%20cover.%20It%E2%80%99s%20now%201.5x%20sc" title="del.icio.us"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F10%2Freview-kapsofts-iphone-stencil%2F&amp;t=Review%3A%20Kapsoft%27s%20iPhone%20Stencil" title="Facebook"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F10%2Freview-kapsofts-iphone-stencil%2F&amp;title=Review%3A%20Kapsoft%27s%20iPhone%20Stencil" title="StumbleUpon"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F10%2Freview-kapsofts-iphone-stencil%2F&amp;title=Review%3A%20Kapsoft%27s%20iPhone%20Stencil" title="Design Float"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F10%2Freview-kapsofts-iphone-stencil%2F&amp;title=Review%3A%20Kapsoft%27s%20iPhone%20Stencil" title="Reddit"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F10%2Freview-kapsofts-iphone-stencil%2F&amp;title=Review%3A%20Kapsoft%27s%20iPhone%20Stencil" title="DZone"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=Review%3A%20Kapsoft%27s%20iPhone%20Stencil&amp;link=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F10%2Freview-kapsofts-iphone-stencil%2F" title="FriendFeed"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Review%3A%20Kapsoft%27s%20iPhone%20Stencil%20-%20http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F10%2Freview-kapsofts-iphone-stencil%2F" title="Twitter"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="mailto:?subject=Review%3A%20Kapsoft%27s%20iPhone%20Stencil&amp;body=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F10%2Freview-kapsofts-iphone-stencil%2F" title="email"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F10%2Freview-kapsofts-iphone-stencil%2F&amp;partner=sociable" title="Print"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a><br/><br/><img
src="http://johntwang.com/blog/?ak_action=api_record_view&id=815&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JohnTWang?a=u68fBoT23MQ:femwEO63ONw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JohnTWang?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=u68fBoT23MQ:femwEO63ONw:a-2c2fEOZvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=u68fBoT23MQ:femwEO63ONw:a-2c2fEOZvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=u68fBoT23MQ:femwEO63ONw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=u68fBoT23MQ:femwEO63ONw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=u68fBoT23MQ:femwEO63ONw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=u68fBoT23MQ:femwEO63ONw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=u68fBoT23MQ:femwEO63ONw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=u68fBoT23MQ:femwEO63ONw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=u68fBoT23MQ:femwEO63ONw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=u68fBoT23MQ:femwEO63ONw:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://johntwang.com/blog/2009/11/10/review-kapsofts-iphone-stencil/feed/</wfw:commentRss> <slash:comments>6</slash:comments> <feedburner:origLink>http://johntwang.com/blog/2009/11/10/review-kapsofts-iphone-stencil/</feedburner:origLink></item> <item><title>For the Love of the Game: The Importance of Passion</title><link>http://feedproxy.google.com/~r/JohnTWang/~3/iKUe3UrhT9U/</link> <comments>http://johntwang.com/blog/2009/11/09/for-the-love-of-the-game-the-importance-of-passion/#comments</comments> <pubDate>Tue, 10 Nov 2009 00:49:44 +0000</pubDate> <dc:creator>john</dc:creator> <category><![CDATA[freelance]]></category> <category><![CDATA[life]]></category><guid isPermaLink="false">http://www.johntwang.com/?p=813</guid> <description>I just started getting caught up with all the podcasts I regularly listen to again. I got pulled away due to a recent project deployment that required long working days. The two podcasts I was working on are Boagworld and StackOverflow. More specifically, the same issue came up in episode 188 &amp;#8211; Clearspace or Headleft?[s]</description> <content:encoded><![CDATA[<p>I just started getting caught up with all the podcasts I regularly listen to again. I got pulled away due to a recent project deployment that required long working days. The two podcasts I was working on are <a
href="http://boagworld.com">Boagworld</a> and <a
href="http://itc.conversationsnetwork.org/series/stackoverflow.html">StackOverflow</a>. More specifically, the same issue came up in <a
href="http://boagworld.com/podcast/188">episode 188 &#8211; Clearspace or Headleft?</a> of Boagworld and <a
href="http://itc.conversationsnetwork.org/shows/detail4291.html">episode 73</a> of StackOverflow.</p><p><span
id="more-813"></span></p><h4>The general questions were centered around: The importance of passion.</h4><p>In the Boagworld podcast, there were quite a few thoughts and options to the questions since it was an interview with the <a
href="http://clearleft.com">Clearleft</a> crew. So, you got the perspective of not only Paul Boag and Marcus Lillington from <a
href="http://headscape.co.uk/">Headscape</a>, but also Andy Budd and Jeremy Keith. The discussion centered mostly on how one finds the time to keep up with new trends, technologies, etc in the web design industry. The general consensus being that there&#8217;s a very blurry line between the work-life balance when it comes to this kind of thing. One of the important takeaways from listening to Andy talk about it, was that if it&#8217;s not making you all jumpy and gitty to want to know what&#8217;s changing, what the new hot trend is, or what new technologies are coming out, that it raises a red flag and you should really take a step back and re-evaluate if this is really your passion. Of course, you could just be burnt out. As Paul mentioned that he does the majority of his RSS feeds reading in bed on his own time, it&#8217;s important to remember, most of us would be doing this anyway because it&#8217;s what we love to do.</p><p>Although, not exactly the same question, the same topic was brought up in a different manner on the StackOverflow podcast. This time in regards to what technology to choose to learn for future profit. Specifically, the listener was not interested in coding in Objective-C for the rest of his life, yet concerned if Ruby on Rails would still be a viable way to make a living in the area he currently lives in. To this question, both Jeff Atwood and Joel Spolsky answered similarly with:</p><p><em><ul><li>&#8220;Joel and I concur: it probably doesn&#8217;t matter what language and toolchain you use, as long as it has a certain level of critical mass. What you should be more concerned about is the product you&#8217;re creating.</li><p></p><li>If you&#8217;re happy with your current tool chain, then there&#8217;s no reason you need to switch. However, if you can&#8217;t list five things you hate about your favorite programming language, then I argue you don&#8217;t know it well enough yet to judge. It&#8217;s good to be aware of the alternatives, and have a healthy critical eye for whatever it is you&#8217;re using.</li><p></p><li>Most programming languages don&#8217;t evolve particularly well over time. They&#8217;re usually replaced by other languages rather than new iterations of themselves. Why? What languages would you point to as the best example of growing and evolving in useful, relevant ways?&#8221;</li><p></ul><p></em></p><p>While neither Joel or Jeff mentioned anything along the lines of picking something because it&#8217;ll make you a lot of money. I can&#8217;t imagine either of them would even come close to making any suggestion like that to anyone. Picking something just because it&#8217;s the new &#8220;money pot&#8221; or pot of gold at the end of the rainbow, is just asking for short term gain and potentially, long term unhappiness.</p><h4>In the End</h4><p>It&#8217;s my own opinion that you should not do or choose a path just because it has the potential to make you a lot of money if it doesn&#8217;t interest you at all. More so, if you have some inner hatred for Objective-C and think you should just suck it up and make something for the iPhone because it can net you a lot money. It&#8217;s not my recommendation, but do as you will.</p><h4>What are your thoughts on Doing for the Money vs Doing for the Love?</h4>Share the Love:<a
rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F09%2Ffor-the-love-of-the-game-the-importance-of-passion%2F&amp;title=For%20the%20Love%20of%20the%20Game%3A%20The%20Importance%20of%20Passion&amp;bodytext=I%20just%20started%20getting%20caught%20up%20with%20all%20the%20podcasts%20I%20regularly%20listen%20to%20again.%20I%20got%20pulled%20away%20due%20to%20a%20recent%20project%20deployment%20that%20required%20long%20working%20days.%20The%20two%20podcasts%20I%20was%20working%20on%20are%20Boagworld%20and%20StackOverflow.%20More%20specific" title="Digg"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F09%2Ffor-the-love-of-the-game-the-importance-of-passion%2F&amp;title=For%20the%20Love%20of%20the%20Game%3A%20The%20Importance%20of%20Passion&amp;notes=I%20just%20started%20getting%20caught%20up%20with%20all%20the%20podcasts%20I%20regularly%20listen%20to%20again.%20I%20got%20pulled%20away%20due%20to%20a%20recent%20project%20deployment%20that%20required%20long%20working%20days.%20The%20two%20podcasts%20I%20was%20working%20on%20are%20Boagworld%20and%20StackOverflow.%20More%20specific" title="del.icio.us"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F09%2Ffor-the-love-of-the-game-the-importance-of-passion%2F&amp;t=For%20the%20Love%20of%20the%20Game%3A%20The%20Importance%20of%20Passion" title="Facebook"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F09%2Ffor-the-love-of-the-game-the-importance-of-passion%2F&amp;title=For%20the%20Love%20of%20the%20Game%3A%20The%20Importance%20of%20Passion" title="StumbleUpon"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F09%2Ffor-the-love-of-the-game-the-importance-of-passion%2F&amp;title=For%20the%20Love%20of%20the%20Game%3A%20The%20Importance%20of%20Passion" title="Design Float"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F09%2Ffor-the-love-of-the-game-the-importance-of-passion%2F&amp;title=For%20the%20Love%20of%20the%20Game%3A%20The%20Importance%20of%20Passion" title="Reddit"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F09%2Ffor-the-love-of-the-game-the-importance-of-passion%2F&amp;title=For%20the%20Love%20of%20the%20Game%3A%20The%20Importance%20of%20Passion" title="DZone"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=For%20the%20Love%20of%20the%20Game%3A%20The%20Importance%20of%20Passion&amp;link=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F09%2Ffor-the-love-of-the-game-the-importance-of-passion%2F" title="FriendFeed"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://twitter.com/home?status=For%20the%20Love%20of%20the%20Game%3A%20The%20Importance%20of%20Passion%20-%20http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F09%2Ffor-the-love-of-the-game-the-importance-of-passion%2F" title="Twitter"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="mailto:?subject=For%20the%20Love%20of%20the%20Game%3A%20The%20Importance%20of%20Passion&amp;body=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F09%2Ffor-the-love-of-the-game-the-importance-of-passion%2F" title="email"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F11%2F09%2Ffor-the-love-of-the-game-the-importance-of-passion%2F&amp;partner=sociable" title="Print"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a><br/><br/><img
src="http://johntwang.com/blog/?ak_action=api_record_view&id=813&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JohnTWang?a=iKUe3UrhT9U:VTRhbpst-oA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JohnTWang?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=iKUe3UrhT9U:VTRhbpst-oA:a-2c2fEOZvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=iKUe3UrhT9U:VTRhbpst-oA:a-2c2fEOZvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=iKUe3UrhT9U:VTRhbpst-oA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=iKUe3UrhT9U:VTRhbpst-oA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=iKUe3UrhT9U:VTRhbpst-oA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=iKUe3UrhT9U:VTRhbpst-oA:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=iKUe3UrhT9U:VTRhbpst-oA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=iKUe3UrhT9U:VTRhbpst-oA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=iKUe3UrhT9U:VTRhbpst-oA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=iKUe3UrhT9U:VTRhbpst-oA:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://johntwang.com/blog/2009/11/09/for-the-love-of-the-game-the-importance-of-passion/feed/</wfw:commentRss> <slash:comments>2</slash:comments> <feedburner:origLink>http://johntwang.com/blog/2009/11/09/for-the-love-of-the-game-the-importance-of-passion/</feedburner:origLink></item> <item><title>Review: Wacom Intuos4 Art Pen</title><link>http://feedproxy.google.com/~r/JohnTWang/~3/autjXTrtuCc/</link> <comments>http://johntwang.com/blog/2009/09/28/review-wacom-intuos4-art-pen/#comments</comments> <pubDate>Mon, 28 Sep 2009 20:56:05 +0000</pubDate> <dc:creator>john</dc:creator> <category><![CDATA[reviews]]></category> <category><![CDATA[art pen]]></category> <category><![CDATA[intuos4]]></category> <category><![CDATA[wacom]]></category><guid isPermaLink="false">http://www.johntwang.com/?p=768</guid> <description>Wacom&amp;#8217;s new Intuos4 Art Pen just finally began shipping last week. Previously, it had be on back-order since the release of the Intuos4 Tablet. I just got my hands on both the Intuos4 Art Pen and the Intuos4 Professional Kit. Originally, I had planned to just purchase the Art Pen, but after user Featherbeard on[s]</description> <content:encoded><![CDATA[<p>Wacom&#8217;s new <a
href="https://direct.wacom.com/stores/5/product1.cfm?SID=5&#038;Product_ID=1333&#038;Category_ID=95">Intuos4 Art Pen</a> just finally began shipping last week. Previously, it had be on back-order since the release of the Intuos4 Tablet. I just got my hands on both the Intuos4 Art Pen and the <a
href="https://direct.wacom.com/stores/5/Intuos_4_Professional_Accessor_P1450C65.cfm">Intuos4 Professional Kit</a>. Originally, I had planned to just purchase the Art Pen, but after user <a
href="http://www.conceptart.org/forums/showthread.php?t=157928">Featherbeard on the ConceptArt forums</a> noted that it doesn&#8217;t come with a Nib Extractor, I decided to just go ahead and get the Professional Kit as well. The Nib Extractor from the Professional Kit is the same as the one that comes with the <a
href="http://www.wacom.com/intuos/">Intuos4 tablet</a> itself.</p><p><span
id="more-768"></span></p><h4>The Art Pen</h4><p>The Art Pen itself has a much bigger tip area than the Grip Pen that comes with the tablet. The Art Pen&#8217;s bigger tip area also doesn&#8217;t have the user swap-able color rings. One thing to note, the nibs do only fit in one way and they will rotate a bit during use. The nib won&#8217;t fall out, so you don&#8217;t have to worry about that when swapping nibs.</p><p>Even though the drivers for the Intuos4 are a bit old, they were able to successfully identify the Art Pen just fine from the start. Wacom just <a
href="http://twitter.com/wacom/status/4380151090">updated drivers for the new Bamboo Touch series, Graphire and Cintiq tablets</a> for <a
href="http://twitter.com/wacom/status/4378481905">Windows</a> and <a
href="http://twitter.com/wacom/status/4377856133">Mac OSX</a>, but the Intuos set hasn&#8217;t been updated yet. As such, I still have to launch the 32-bit Settings for the tablet. Not a big deal.</p><p>After using the Art Pen with Corel Painter 11, I have noticed that I don&#8217;t have much of a tactile response from the pen during barrel rotation. As such, it&#8217;s really useful to have the Enhanced Brush Ghosting setting enabled while you get used to the feeling. It&#8217;s quite a bit different than the Grip Pen. After spending a bit of time getting used to it, I was able to turn off the ghosting setting again.</p></p><h4>The Pen Stand</h4><p>The Art Pen stand also has exactly enough slots for all of the Nibs that come with the Art Pen with one nib in the pen itself. It also fits the Professional Kit&#8217;s Nib Extractor in the middle spot of the stand just like the one that comes with the tablet and grip pen.</p><h4>The Nibs</h4><p>The Art Pen comes with 11 nibs. 1 on the pen itself and 10 replacement nibs. The 10 replacement nibs fit in nicely into the new housing of the Pen stand. The nibs have 1 shaft, just like the ones for all the other pens. This is a change from the <a
href="https://direct.wacom.com/stores/5/Cintiq_21UX_6D_Art_Pen_P940C66.cfm">Intuos3 Art Pen&#8217;s</a> nibs which previously had 2 shafts. The difference being that the 2 shafts on the Intuos3 version, prevented a rotation effect on the nib when rotating the Art Pen.</p><h4>The Details</h4><p>The following come in the box:<br
/></p><ul><li>2 Chisel POM Nibs</li><li>2 Chisel Felt Nibs</li><li>3 Bullet POM Nibs</li><li>3 Bullet Felt Nibs</li><li>1 Pen Stand</li><li>1 Art Pen with 1 Bullet POM Nib inside</li></ul><p><strong>Model #:</strong> KP701E<br
/> <strong>Price:</strong> $99.95</p><h4>Final Thoughts</h4><p>Although <a
href="https://direct.wacom.com/stores/5/product1.cfm?SID=5&#038;Product_ID=1333&#038;Category_ID=95">Wacom&#8217;s eStore</a> states: &#8220;The Intuos4 Art Pen ships with the following accessories: 10 replacement nibs, <strong>a nib puller</strong>, and a weighted pen stand.&#8221; The package does <strong>NOT</strong> come with a nib puller. There was not one anywhere in the packaging and others from the ConceptArt forums have had the same results.</p><p>As for the Art Pen itself, I love it. Barrel rotation is definitely it&#8217;s main feature and it does it extremely well. It&#8217;s an amazing feature to have. Corel Painter 11 recognized the barrel rotation immediately, and it also works wonderfully with Illustrator using the 6D Art Brushes set or in Photoshop, by using the Wacom Brushes 3. All in all, it&#8217;s the one additional pen for the tablet that I need. I have very little use for the classic pen, airbrush pen or inking pen.</p><h4>The Pictures</h4><div
class="ngg-galleryoverview" id="ngg-gallery-17-768"><div
id="ngg-image-119" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3733.jpg" title="Professional Accessory Kit" rel="lightbox[set_17]" > <img
title="Professional Accessory Kit" alt="Professional Accessory Kit" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3733.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-120" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3734.jpg" title="Professional Accessory Kit" rel="lightbox[set_17]" > <img
title="Professional Accessory Kit" alt="Professional Accessory Kit" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3734.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-121" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3735.jpg" title="The pen still in box" rel="lightbox[set_17]" > <img
title="Intuos4 Art Pen" alt="Intuos4 Art Pen" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3735.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-122" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3736.jpg" title="Back of the box" rel="lightbox[set_17]" > <img
title="Intuos4 Art Pen" alt="Intuos4 Art Pen" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3736.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-123" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3737.jpg" title="Close up shot" rel="lightbox[set_17]" > <img
title="Intuos4 Art Pen" alt="Intuos4 Art Pen" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3737.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-124" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3738.jpg" title="Bottom of the box" rel="lightbox[set_17]" > <img
title="Intuos4 Art Pen" alt="Intuos4 Art Pen" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3738.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-125" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3739.jpg" title="First opening shot" rel="lightbox[set_17]" > <img
title="Intuos4 Art Pen" alt="Intuos4 Art Pen" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3739.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-126" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3740.jpg" title="The Nibs" rel="lightbox[set_17]" > <img
title="Intuos4 Art Pen" alt="Intuos4 Art Pen" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3740.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-127" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3741.jpg" title="Then Pen itself" rel="lightbox[set_17]" > <img
title="Intuos4 Art Pen" alt="Intuos4 Art Pen" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3741.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-128" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3742.jpg" title="The stand" rel="lightbox[set_17]" > <img
title="Intuos4 Art Pen" alt="Intuos4 Art Pen" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3742.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-129" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3743.jpg" title="The Stand" rel="lightbox[set_17]" > <img
title="Intuos4 Art Pen" alt="Intuos4 Art Pen" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3743.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-130" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3744.jpg" title="Intuos4 Pen Stand feature that it opens and can hold the nibs inside it." rel="lightbox[set_17]" > <img
title="Intuos4 Art Pen" alt="Intuos4 Art Pen" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3744.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-131" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3745.jpg" title="All the Nibs inside the Pen Stand" rel="lightbox[set_17]" > <img
title="Intuos4 Art Pen" alt="Intuos4 Art Pen" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3745.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-132" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3746.jpg" title="All the nibs inside the Pen Stand" rel="lightbox[set_17]" > <img
title="Intuos4 Art Pen" alt="Intuos4 Art Pen" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3746.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-133" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3747.jpg" title="All the nibs inside the pen Stand" rel="lightbox[set_17]" > <img
title="Intuos4 Art Pen" alt="Intuos4 Art Pen" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3747.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-134" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3748.jpg" title="The original Intuos4 Pen Stand comes with Nib Extractor." rel="lightbox[set_17]" > <img
title="Intuos4 Pen Stand" alt="Intuos4 Pen Stand" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3748.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-135" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3749.jpg" title="Notice the Nib extractor in the middle of the original Pen Stand. Art Pen doesn't come with one." rel="lightbox[set_17]" > <img
title="Original Pen Stand" alt="Original Pen Stand" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3749.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-136" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3750.jpg" title="The Grip Pen on the left and the Art Pen on the right." rel="lightbox[set_17]" > <img
title="Compared with Grip Pen" alt="Compared with Grip Pen" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3750.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-137" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/img_3751.jpg" title="Grip Pen on the Left and Art Pen on the right" rel="lightbox[set_17]" > <img
title="Close-up Comparison" alt="Close-up Comparison" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_img_3751.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-138" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/wacom-tablet-32-bit-2.png" title="Intuos4 Grip Pen Settings Options" rel="lightbox[set_17]" > <img
title="The Drivers Setting section" alt="The Drivers Setting section" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_wacom-tablet-32-bit-2.png" width="100" height="75" /> </a></div></div><div
id="ngg-image-139" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/wacom-tablet-32-bit.png" title="Intuos4 Art Pen Settings Options" rel="lightbox[set_17]" > <img
title="The Drivers Setting" alt="The Drivers Setting" src="http://johntwang.com/blog/wp-content/gallery/intuos4_art_pen/thumbs/thumbs_wacom-tablet-32-bit.png" width="100" height="75" /> </a></div></div><div
class='ngg-clear'></div></div>Share the Love:<a
rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F28%2Freview-wacom-intuos4-art-pen%2F&amp;title=Review%3A%20Wacom%20Intuos4%20Art%20Pen&amp;bodytext=Wacom%27s%20new%20Intuos4%20Art%20Pen%20just%20finally%20began%20shipping%20last%20week.%20Previously%2C%20it%20had%20be%20on%20back-order%20since%20the%20release%20of%20the%20Intuos4%20Tablet.%20I%20just%20got%20my%20hands%20on%20both%20the%20Intuos4%20Art%20Pen%20and%20the%20Intuos4%20Professional%20Kit.%20Originally%2C%20I%20had%20planne" title="Digg"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F28%2Freview-wacom-intuos4-art-pen%2F&amp;title=Review%3A%20Wacom%20Intuos4%20Art%20Pen&amp;notes=Wacom%27s%20new%20Intuos4%20Art%20Pen%20just%20finally%20began%20shipping%20last%20week.%20Previously%2C%20it%20had%20be%20on%20back-order%20since%20the%20release%20of%20the%20Intuos4%20Tablet.%20I%20just%20got%20my%20hands%20on%20both%20the%20Intuos4%20Art%20Pen%20and%20the%20Intuos4%20Professional%20Kit.%20Originally%2C%20I%20had%20planne" title="del.icio.us"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F28%2Freview-wacom-intuos4-art-pen%2F&amp;t=Review%3A%20Wacom%20Intuos4%20Art%20Pen" title="Facebook"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F28%2Freview-wacom-intuos4-art-pen%2F&amp;title=Review%3A%20Wacom%20Intuos4%20Art%20Pen" title="StumbleUpon"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F28%2Freview-wacom-intuos4-art-pen%2F&amp;title=Review%3A%20Wacom%20Intuos4%20Art%20Pen" title="Design Float"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F28%2Freview-wacom-intuos4-art-pen%2F&amp;title=Review%3A%20Wacom%20Intuos4%20Art%20Pen" title="Reddit"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F28%2Freview-wacom-intuos4-art-pen%2F&amp;title=Review%3A%20Wacom%20Intuos4%20Art%20Pen" title="DZone"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=Review%3A%20Wacom%20Intuos4%20Art%20Pen&amp;link=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F28%2Freview-wacom-intuos4-art-pen%2F" title="FriendFeed"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Review%3A%20Wacom%20Intuos4%20Art%20Pen%20-%20http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F28%2Freview-wacom-intuos4-art-pen%2F" title="Twitter"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="mailto:?subject=Review%3A%20Wacom%20Intuos4%20Art%20Pen&amp;body=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F28%2Freview-wacom-intuos4-art-pen%2F" title="email"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F28%2Freview-wacom-intuos4-art-pen%2F&amp;partner=sociable" title="Print"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a><br/><br/><img
src="http://johntwang.com/blog/?ak_action=api_record_view&id=768&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JohnTWang?a=autjXTrtuCc:E3s-iQH_4UE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JohnTWang?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=autjXTrtuCc:E3s-iQH_4UE:a-2c2fEOZvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=autjXTrtuCc:E3s-iQH_4UE:a-2c2fEOZvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=autjXTrtuCc:E3s-iQH_4UE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=autjXTrtuCc:E3s-iQH_4UE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=autjXTrtuCc:E3s-iQH_4UE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=autjXTrtuCc:E3s-iQH_4UE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=autjXTrtuCc:E3s-iQH_4UE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=autjXTrtuCc:E3s-iQH_4UE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=autjXTrtuCc:E3s-iQH_4UE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=autjXTrtuCc:E3s-iQH_4UE:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://johntwang.com/blog/2009/09/28/review-wacom-intuos4-art-pen/feed/</wfw:commentRss> <slash:comments>2</slash:comments> <feedburner:origLink>http://johntwang.com/blog/2009/09/28/review-wacom-intuos4-art-pen/</feedburner:origLink></item> <item><title>Review: Kapsoft’s iPhone Application Sketch Book</title><link>http://feedproxy.google.com/~r/JohnTWang/~3/SwPclvhJTPI/</link> <comments>http://johntwang.com/blog/2009/09/22/review-kapsofts-iphone-application-sketch-book/#comments</comments> <pubDate>Wed, 23 Sep 2009 03:06:44 +0000</pubDate> <dc:creator>john</dc:creator> <category><![CDATA[iPhone development]]></category> <category><![CDATA[reviews]]></category> <category><![CDATA[iphone]]></category> <category><![CDATA[resources]]></category> <category><![CDATA[sketching]]></category><guid isPermaLink="false">http://www.johntwang.com/?p=748</guid> <description>Designing an iPhone app? The concept isn&amp;#8217;t much different from designing a website. At least for me it&amp;#8217;s not. The primary process includes sketches that are used in meetings with either team members or clients before jumping into either OmniGraffle or Photoshop. The general idea is to stay away from the computer as much as[s]</description> <content:encoded><![CDATA[<p>Designing an iPhone app? The concept isn&#8217;t much different from designing a website. At least for me it&#8217;s not. The primary process includes sketches that are used in meetings with either team members or clients before jumping into either OmniGraffle or Photoshop. The general idea is to stay away from the computer as much as possible in the initial design process to let creativity flow and not restrict yourself to the pixels on the screen.<br
/> <span
id="more-748"></span><br
/> If you&#8217;ve either taken or watched the Stanford iPhone Dev course from iTunesU (<a
href="http://www.stanford.edu/class/cs193p/cgi-bin/index.php" target="_blank">CS193P</a>), then you have heard them constantly enforce the idea of sketching out your app screens and functionality before coding. Those who do web design will likely vouch for the same process. This is where Dean Kaplan saw an opportunity. He has created an <a
href="http://mobilesketchbook.com/" target="_blank"> iPhone Application Sketch Book</a>.</p><blockquote><p>“I happened to be auditing the Stanford iPhone Programming course,” says Kaplan, “and one of the guest speakers discussed how he went about creating his user interface designs. Paper was one option he mentioned. Almost instantly the notebook idea light bulb went off. Other options of various computer programs were mentioned, but it always got back to paper and pencil. Subsequently, I did my own online survey that revealed designers prefer paper 95% of the time.” &#8211; <a
href="http://theappleblog.com/2009/08/19/sketch-book-makes-designing-iphone-apps-easier/" target="_blank">theAppleBlog</a></p></blockquote><p>The sketchbook contains 100 grid pages with an iPhone designed to scale on it. Each page has it&#8217;s own header that allows you to put in the name of the app and the name of the screen. The pages are big. There is ton of free space for taking side notes during group sessions and team meetings. The notebook itself is paperback, plastic spiral bound, and can be ordered from <a
href="http://www.amazon.com/gp/product/B002IE2ZK4?ie=UTF8&amp;tag=jotwa-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B002IE2ZK4" target="_blank">Amazon.com for $14.99</a>.</p><h4>Q &amp; A with Dean Kaplan</h4><ol><li> What are your plans for the future of the sketchbook?<br
/> <em>&#8220;There will be a huge exciting announcement concerning the book next week. Stay tuned.&#8221;</em></li><li> Do you plan on creating a Stencil Kit similar to The Design Commission&#8217;s one? Or perhaps making the iPhone on the pages slightly larger to be more compatible with the Stencil Kit?<br
/> <em>&#8220;LOL. Are you spying on me? As for size….I guess you are saying size matters. And I’m listening to feedback and it is likely that you “might” see a version that is 1.5X actual very soon. (DC’s stencil is smaller then 1.5x and I don’t think its very useable. )&#8221;</em></li><li> Have you considered perforated pages for easier tear-off?<br
/> <em>&#8220;I’ve heard the perforated request once before. Not likely on that one. As one reviewer told me he like to tear the pages right out of the book and paste them on the frig.)&#8221;</em></li><li> A folder built-in either the front or back cover for keeping materials given from other team members or clients together?<br
/> <em>&#8220;I love that idea. It crossed my mind a few months ago. Likely in a future UBER Sketch Book.&#8221;</em></li></ol><h4>The Good</h4><ul><li>Keeps all your apps and screens together instead of having multiple pieces of paper that can get easily lost.</li><li>Grid pages are very handy for going from sketching to computer rendering.</li><li>To scale iPhone keeps you in the restriction of the small space while also reminding you to beware of your font sizes.</li><li>Cheap. $15! If you&#8217;re just getting into iPhone app design, this can definitely help you on your way in keeping your ideas organized.</li></ul><h4>The Bad</h4><ul><li>Not compatible with The <a
href="http://www.designcommission.com/shop">Design Commission</a> has created an <a
href="http://www.designcommission.com/shop/iphone-stencil-kit/" target="_blank">iPhone Stencil Kit</a>. Different companies, Can&#8217;t really complain.</li><li>The to scale iPhone on the page is also a bit harder to draw stuff inside it.</li><li>Since there&#8217;s no stencil, you need to keep in mind what you get with the SDK and what needs to be custom made. Thought it&#8217;s not that big of a deal.</li></ul><h4>The Pictures</h4><div
class="ngg-galleryoverview" id="ngg-gallery-16-748"><div
id="ngg-image-111" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/iphone-sketchbook/51bk1gzzkl-_ss400_.jpg" title=" " rel="lightbox[set_16]" > <img
title="Press Shot" alt="Press Shot" src="http://johntwang.com/blog/wp-content/gallery/iphone-sketchbook/thumbs/thumbs_51bk1gzzkl-_ss400_.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-112" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/iphone-sketchbook/51wyseoj3zl-_ss400_.jpg" title=" " rel="lightbox[set_16]" > <img
title="Press Shot" alt="Press Shot" src="http://johntwang.com/blog/wp-content/gallery/iphone-sketchbook/thumbs/thumbs_51wyseoj3zl-_ss400_.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-113" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/iphone-sketchbook/510z2v2e02l-_ss400_.jpg" title=" " rel="lightbox[set_16]" > <img
title="cover" alt="cover" src="http://johntwang.com/blog/wp-content/gallery/iphone-sketchbook/thumbs/thumbs_510z2v2e02l-_ss400_.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-114" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/iphone-sketchbook/img_3728.jpg" title="With the Design Commission Stencil Kit" rel="lightbox[set_16]" > <img
title="With the Design Commission Stencil Kit" alt="With the Design Commission Stencil Kit" src="http://johntwang.com/blog/wp-content/gallery/iphone-sketchbook/thumbs/thumbs_img_3728.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-115" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/iphone-sketchbook/img_3729.jpg" title="Compared to the iPhone 3G White" rel="lightbox[set_16]" > <img
title="Compared to the iPhone 3G White" alt="Compared to the iPhone 3G White" src="http://johntwang.com/blog/wp-content/gallery/iphone-sketchbook/thumbs/thumbs_img_3729.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-116" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/iphone-sketchbook/img_3730.jpg" title="full page view" rel="lightbox[set_16]" > <img
title="Full page view" alt="Full page view" src="http://johntwang.com/blog/wp-content/gallery/iphone-sketchbook/thumbs/thumbs_img_3730.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-117" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/iphone-sketchbook/img_3731.jpg" title="close-up of the Phone area" rel="lightbox[set_16]" > <img
title="close-up of the Phone area" alt="close-up of the Phone area" src="http://johntwang.com/blog/wp-content/gallery/iphone-sketchbook/thumbs/thumbs_img_3731.jpg" width="100" height="75" /> </a></div></div><div
id="ngg-image-118" class="ngg-gallery-thumbnail-box"  ><div
class="ngg-gallery-thumbnail" > <a
href="http://johntwang.com/blog/wp-content/gallery/iphone-sketchbook/img_3732.jpg" title="Close-up of the top area" rel="lightbox[set_16]" > <img
title="Close-up of the top area" alt="Close-up of the top area" src="http://johntwang.com/blog/wp-content/gallery/iphone-sketchbook/thumbs/thumbs_img_3732.jpg" width="100" height="75" /> </a></div></div><div
class='ngg-clear'></div></div><h4>Final Thoughts</h4><p>Right now, I&#8217;m using a <a
href="http://www.amazon.com/gp/product/8883701135?ie=UTF8&amp;tag=jotwa-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=8883701135" target="_blank">Moleskine Squared Notebook</a> to do my sketches for iPhone apps and other web related work. It&#8217;s much smaller than the iPhone sketchbook, but it does allow me to put other thoughts and ideas inside. For what the purpose it was designed for, the iPhone sketchbook delivers and does so very well. Compatibility with the Stencil Kit would definitely put it over the top. The last things that I would like included in the sketchbook, would be a small folder built in and perforated pages. Those are some very small personal requests though.</p><p><strong>Special Note:</strong> If you order between September 10th and  October 10th you&#8217;ll be entered to win ONE free ticket to the <strong><em>Voices That Matter iPhone Developers Conference 2009.</em></strong></p>Share the Love:<a
rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F22%2Freview-kapsofts-iphone-application-sketch-book%2F&amp;title=Review%3A%20Kapsoft%27s%20iPhone%20Application%20Sketch%20Book&amp;bodytext=Designing%20an%20iPhone%20app%3F%20The%20concept%20isn%27t%20much%20different%20from%20designing%20a%20website.%20At%20least%20for%20me%20it%27s%20not.%20The%20primary%20process%20includes%20sketches%20that%20are%20used%20in%20meetings%20with%20either%20team%20members%20or%20clients%20before%20jumping%20into%20either%20OmniGraffle%20o" title="Digg"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F22%2Freview-kapsofts-iphone-application-sketch-book%2F&amp;title=Review%3A%20Kapsoft%27s%20iPhone%20Application%20Sketch%20Book&amp;notes=Designing%20an%20iPhone%20app%3F%20The%20concept%20isn%27t%20much%20different%20from%20designing%20a%20website.%20At%20least%20for%20me%20it%27s%20not.%20The%20primary%20process%20includes%20sketches%20that%20are%20used%20in%20meetings%20with%20either%20team%20members%20or%20clients%20before%20jumping%20into%20either%20OmniGraffle%20o" title="del.icio.us"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F22%2Freview-kapsofts-iphone-application-sketch-book%2F&amp;t=Review%3A%20Kapsoft%27s%20iPhone%20Application%20Sketch%20Book" title="Facebook"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F22%2Freview-kapsofts-iphone-application-sketch-book%2F&amp;title=Review%3A%20Kapsoft%27s%20iPhone%20Application%20Sketch%20Book" title="StumbleUpon"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.designfloat.com/submit.php?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F22%2Freview-kapsofts-iphone-application-sketch-book%2F&amp;title=Review%3A%20Kapsoft%27s%20iPhone%20Application%20Sketch%20Book" title="Design Float"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/designfloat.png" title="Design Float" alt="Design Float" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F22%2Freview-kapsofts-iphone-application-sketch-book%2F&amp;title=Review%3A%20Kapsoft%27s%20iPhone%20Application%20Sketch%20Book" title="Reddit"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F22%2Freview-kapsofts-iphone-application-sketch-book%2F&amp;title=Review%3A%20Kapsoft%27s%20iPhone%20Application%20Sketch%20Book" title="DZone"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.friendfeed.com/share?title=Review%3A%20Kapsoft%27s%20iPhone%20Application%20Sketch%20Book&amp;link=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F22%2Freview-kapsofts-iphone-application-sketch-book%2F" title="FriendFeed"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/friendfeed.png" title="FriendFeed" alt="FriendFeed" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Review%3A%20Kapsoft%27s%20iPhone%20Application%20Sketch%20Book%20-%20http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F22%2Freview-kapsofts-iphone-application-sketch-book%2F" title="Twitter"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="mailto:?subject=Review%3A%20Kapsoft%27s%20iPhone%20Application%20Sketch%20Book&amp;body=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F22%2Freview-kapsofts-iphone-application-sketch-book%2F" title="email"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/email_link.png" title="email" alt="email" class="sociable-hovers" /></a> <a
rel="nofollow"  target="_blank" href="http://www.printfriendly.com/print?url=http%3A%2F%2Fjohntwang.com%2Fblog%2F2009%2F09%2F22%2Freview-kapsofts-iphone-application-sketch-book%2F&amp;partner=sociable" title="Print"><img
src="http://johntwang.com/blog/wp-content/plugins/sociable/images/printfriendly.png" title="Print" alt="Print" class="sociable-hovers" /></a><br/><br/><img
src="http://johntwang.com/blog/?ak_action=api_record_view&id=748&type=feed" alt="" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/JohnTWang?a=SwPclvhJTPI:WAsxcL5fIZM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/JohnTWang?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=SwPclvhJTPI:WAsxcL5fIZM:a-2c2fEOZvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=SwPclvhJTPI:WAsxcL5fIZM:a-2c2fEOZvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=SwPclvhJTPI:WAsxcL5fIZM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=SwPclvhJTPI:WAsxcL5fIZM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=SwPclvhJTPI:WAsxcL5fIZM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=SwPclvhJTPI:WAsxcL5fIZM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=SwPclvhJTPI:WAsxcL5fIZM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=SwPclvhJTPI:WAsxcL5fIZM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/JohnTWang?a=SwPclvhJTPI:WAsxcL5fIZM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/JohnTWang?i=SwPclvhJTPI:WAsxcL5fIZM:gIN9vFwOqvQ" border="0"></img></a>
</div>]]></content:encoded> <wfw:commentRss>http://johntwang.com/blog/2009/09/22/review-kapsofts-iphone-application-sketch-book/feed/</wfw:commentRss> <slash:comments>1</slash:comments> <feedburner:origLink>http://johntwang.com/blog/2009/09/22/review-kapsofts-iphone-application-sketch-book/</feedburner:origLink></item> </channel> </rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk

Served from: johntwang.com @ 2010-08-22 06:40:30 -->
