<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="http://feeds.stepcase.com/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.stepcase.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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Stepcase</title>
	
	<link>http://www.stepcase.com</link>
	<description>The next level in Productivity</description>
	<pubDate>Wed, 03 Dec 2008 07:31:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.stepcase.com/Stepcase" type="application/rss+xml" /><item>
		<title>Format String for the iPhone NSDateFormatter</title>
		<link>http://feeds.stepcase.com/~r/Stepcase/~3/cn_T3PurcRw/</link>
		<comments>http://www.stepcase.com/blog/2008/12/02/format-string-for-the-iphone-nsdateformatter/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 11:23:48 +0000</pubDate>
		<dc:creator>Johnny</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[NSDateFormatter objective-c iphone]]></category>

		<guid isPermaLink="false">http://www.stepcase.com/?p=60</guid>
		<description><![CDATA[It is quite common to have to display time information in your app, be it the current time, news feed&#8217;s creation date, scheduled meeting time or birthday reminders. However, not all of them are displayed the same way and may require different formatting. To do that with Objective-C for iPhone apps, NSDateFormatter is what we [...]]]></description>
			<content:encoded><![CDATA[<p>It is quite common to have to display time information in your app, be it the current time, news feed&#8217;s creation date, scheduled meeting time or birthday reminders. However, not all of them are displayed the same way and may require different formatting. To do that with Objective-C for iPhone apps, <a href="http://developer.apple.com/DOCUMENTATION/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html">NSDateFormatter</a> is what we need.</p>
<p><span id="more-60"></span></p>
<p>In most cases, you&#8217;d just need to use the default styles defined in <a href="http://developer.apple.com/DOCUMENTATION/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html#//apple_ref/c/tdef/NSDateFormatterStyle">NSDateFormatterStyle</a>.</p>

<div class="wp_syntax"><div class="code"><pre class="objc objc" style="font-family:monospace;"><span style="color: #400080;">NSDateFormatter</span> <span style="color: #002200;">*</span>dateFormatter <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSDateFormatter</span> alloc<span style="color: #002200;">&#93;</span> init<span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#91;</span>dateFormatter setDateStyle<span style="color: #002200;">:</span>NSDateFormatterMediumStyle<span style="color: #002200;">&#93;</span>;
<span style="color: #002200;">&#91;</span>dateFormatter setTimeStyle<span style="color: #002200;">:</span>NSDateFormatterShortStyle<span style="color: #002200;">&#93;</span>;
NSLog<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;%@&quot;</span>, <span style="color: #002200;">&#91;</span>dateFormatter stringFromDate<span style="color: #002200;">:</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSDate</span> date<span style="color: #002200;">&#93;</span><span style="color: #002200;">&#93;</span><span style="color: #002200;">&#41;</span>;
&nbsp;
<span style="color: #002200;">&#91;</span>dateFormatter release<span style="color: #002200;">&#93;</span>;
&nbsp;
<span style="color: #11740a; font-style: italic;">// Output: Dec 2, 2008 3:58 PM</span></pre></div></div>

<p>But at times, you&#8217;d prefer to set your own time format, and that&#8217;s where it starts to get tricky.</p>
<p>It is actually quite simple, all you have to do is to create a format string to tell NSDateFormatter how to format your time string.</p>

<div class="wp_syntax"><div class="code"><pre class="objc objc" style="font-family:monospace;"><span style="color: #002200;">:</span>
<span style="color: #002200;">&#91;</span>dateFormatter setDateFormat<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;hh:mm:ss&quot;</span><span style="color: #002200;">&#93;</span>
<span style="color: #002200;">:</span>
<span style="color: #11740a; font-style: italic;">// Output: 03:58:27</span></pre></div></div>

<p>The problem is, the <a href="http://developer.apple.com/DOCUMENTATION/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369-SW1">official documentation from apple</a> doesn&#8217;t really tell you what specifiers are available to format your string. Even worse, it doesn&#8217;t conform to the <a href="http://en.wikipedia.org/wiki/ISO_8601">ISO 8601</a> standard! What a bummer! And after a bit of searching on the net and still come up short, I have decided to just hack a little bit of code together to dump a list of specifiers and their results.</p>

<div class="wp_syntax"><div class="code"><pre class="text text" style="font-family:monospace;">a:	AM/PM
A:	0~86399999 (Millisecond of Day)
&nbsp;
c/cc:	1~7 (Day of Week)
ccc:	Sun/Mon/Tue/Wed/Thu/Fri/Sat
cccc:	Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday
&nbsp;
d:	1~31 (0 padded Day of Month)
D:	1~366 (0 padded Day of Year)
&nbsp;
e:	1~7 (0 padded Day of Week)
E~EEE:	Sun/Mon/Tue/Wed/Thu/Fri/Sat
EEEE:	Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday
&nbsp;
F:	1~5 (0 padded Week of Month, first day of week = Monday)
&nbsp;
g:	Julian Day Number (number of days since 4713 BC January 1)
G~GGG:	BC/AD (Era Designator Abbreviated)
GGGG:	Before Christ/Anno Domini
&nbsp;
h:	1~12 (0 padded Hour (12hr))
H:	0~23 (0 padded Hour (24hr))
&nbsp;
k:	1~24 (0 padded Hour (24hr)
K:	0~11 (0 padded Hour (12hr))
&nbsp;
L/LL:	1~12 (0 padded Month)
LLL:	Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Nov/Dec
LLLL:	January/February/March/April/May/June/July/August/September/October/November/December
&nbsp;
m:	0~59 (0 padded Minute)
M/MM:	1~12 (0 padded Month)
MMM:	Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Nov/Dec
MMMM:	January/February/March/April/May/June/July/August/September/October/November/December
&nbsp;
q/qq:	1~4 (0 padded Quarter)
qqq:	Q1/Q2/Q3/Q4
qqqq:	1st quarter/2nd quarter/3rd quarter/4th quarter
Q/QQ:	1~4 (0 padded Quarter)
QQQ:	Q1/Q2/Q3/Q4
QQQQ:	1st quarter/2nd quarter/3rd quarter/4th quarter
&nbsp;
s:	0~59 (0 padded Second)
S:	(rounded Sub-Second)
&nbsp;
u:	(0 padded Year)
&nbsp;
v~vvv:	(General GMT Timezone Abbreviation)
vvvv:	(General GMT Timezone Name)
&nbsp;
w:	1~53 (0 padded Week of Year, 1st day of week = Sunday, NB: 1st week of year starts from the last Sunday of last year)
W:	1~5 (0 padded Week of Month, 1st day of week = Sunday)
&nbsp;
y/yyyy:	(Full Year)
yy/yyy:	(2 Digits Year)
Y/YYYY:	(Full Year, starting from the Sunday of the 1st week of year)
YY/YYY:	(2 Digits Year, starting from the Sunday of the 1st week of year)
&nbsp;
z~zzz:	(Specific GMT Timezone Abbreviation)
zzzz:	(Specific GMT Timezone Name)
Z:	+0000 (RFC 822 Timezone)</pre></div></div>

<p>(Letters not listed here did not return any result.)</p>
<p>Basically, you put the above letters together in a NSString to tell NSDateFormatter what to display.</p>
<p>In most cases, you can concatenate a letter together a number of times, and you will get a 0 padded version of it up to the number of letters you have concatenated  (eg: @&#8221;ssssss&#8221; =&gt; @&#8221;000059&#8243;). In other cases, the longer concatenated version will give a different result (eg: @&#8221;M&#8221; =&gt; @&#8221;12&#8243;, @&#8221;MMMM&#8221; =&gt; @&#8221;December&#8221;).</p>
<p>Also, some of the different letters seem to be giving out the same results (eg. the q&#8217;s &amp; the Q&#8217;s), while others have subtle differences (eg. the v&#8217;s &amp; the z&#8217;s). One of the silly one is the uppercase Y&#8217;s, where the year jumps ahead at the end of the year, so unless you really want that, it&#8217;s better to just stick with the lowercase y&#8217;s.</p>
<p>You can grab the sample code here: <a href="http://www.stepcase.com/engine/wp-content/uploads/2008/12/dateformat.zip">DateFormat</a></p>
<img src="http://feedproxy.google.com/~r/Stepcase/~4/cn_T3PurcRw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stepcase.com/blog/2008/12/02/format-string-for-the-iphone-nsdateformatter/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.stepcase.com/blog/2008/12/02/format-string-for-the-iphone-nsdateformatter/</feedburner:origLink></item>
		<item>
		<title>iPhone App Sales Report: Automate Download and HTML Report Script</title>
		<link>http://feeds.stepcase.com/~r/Stepcase/~3/AmhY5LS0Xf8/</link>
		<comments>http://www.stepcase.com/blog/2008/11/26/iphone-app-sales-report-automate-download-and-html-report-script/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 08:48:53 +0000</pubDate>
		<dc:creator>Leon Ho</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[automation]]></category>

		<category><![CDATA[iphone]]></category>

		<category><![CDATA[report]]></category>

		<category><![CDATA[sales]]></category>

		<guid isPermaLink="false">http://www.stepcase.com/?p=43</guid>
		<description><![CDATA[Sales and download analysis is an important task to improve your software and its marketing. I am glad that Apple provides a daily and weekly report on my iPhone App sales. The problem is that they purge the historical data on a regular basis (after 7 days), so it&#8217;s important to download and save it [...]]]></description>
			<content:encoded><![CDATA[<p>Sales and download analysis is an important task to improve your software and its marketing. I am glad that Apple provides a daily and weekly report on my iPhone App sales. The problem is that they purge the historical data on a regular basis (after 7 days), so it&#8217;s important to download and save it to somewhere for later analysis.<br />
<span id="more-43"></span><br />
Kirby at thecave.com <a href="http://www.thecave.com/archive/2008/10/21/download_itunes_connect_sales_reports_using_python.aspx">shared his script</a> on automating the download. You can set a cronjob after midnight to download the report daily. I also improved it a bit to make it work better and has a fewer http calls. <del datetime="2008-11-26T09:39:36+00:00">You can grab the script at the end of the post</del>. UPDATE: The changes are now committed to <a href="http://code.google.com/p/appdailysales/">upstream</a>. Thanks Kirby.</p>
<p>In addition, you can download a PHP script called <a href="http://code.google.com/p/appstorereports/">AppStoreReports</a> which will render your daily sales reports into html page and allow you to filter the report by region, app, and day. [via <a href="https://devforums.apple.com/thread/1253?start=0&#038;tstart=0">this thread</a>]</p>
<p>I love automated reports and metrics. The next step would be generating some beautiful and meaningful graphs. I will work on it and share with you all soon.</p>
<div id="attachment_46" class="wp-caption alignnone" style="width: 510px"><a href="http://www.stepcase.com/engine/wp-content/uploads/2008/11/appstorereports_preview.gif"><img src="http://www.stepcase.com/engine/wp-content/uploads/2008/11/appstorereports_preview.gif" alt="Screenshot" title="appstorereports_preview" width="500" height="335" class="size-full wp-image-46" /></a><p class="wp-caption-text">AppStoreReports Screenshot</p></div>
<img src="http://feedproxy.google.com/~r/Stepcase/~4/AmhY5LS0Xf8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stepcase.com/blog/2008/11/26/iphone-app-sales-report-automate-download-and-html-report-script/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.stepcase.com/blog/2008/11/26/iphone-app-sales-report-automate-download-and-html-report-script/</feedburner:origLink></item>
		<item>
		<title>Build error after upgrading to iPhone SDK 2.2</title>
		<link>http://feeds.stepcase.com/~r/Stepcase/~3/kCeDXaB6a4A/</link>
		<comments>http://www.stepcase.com/blog/2008/11/24/build-error-after-upgrading-to-iphone-sdk-22/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 06:54:04 +0000</pubDate>
		<dc:creator>Leon Ho</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[build]]></category>

		<category><![CDATA[iphone]]></category>

		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.stepcase.com/?p=40</guid>
		<description><![CDATA[After upgrading to iPhone SDK 2.2, we encountered this error when building one of our projects (others built fine).


Internal error occurred while creating dependency graph: ASSERTION FAILURE in /SourceCache/DevToolsBase/DevToolsBase-1148/pbxcore/Target.subproj/XCCodeSignContext.m:458
Details:  Error: failed to locate ResourceRules.plist in '(null)/ResourceRules.plist' or '/Developer/Platforms/(null)/ResourceRules.plist'
Object:   &#60;XCiPhoneOSCodeSignContext&#62;
Method:   +defineCodeSignAuxiliaryFilesInTargetBuildContext:
Thread:   &#60;NSThread: 0x2038c60&#62;{name = (null), num = 6}
Backtrace:
  [...]]]></description>
			<content:encoded><![CDATA[<p>After upgrading to iPhone SDK 2.2, we encountered this error when building one of our projects (others built fine).<br />
<span id="more-40"></span></p>

<div class="wp_syntax"><div class="code"><pre class="text text" style="font-family:monospace;">Internal error occurred while creating dependency graph: ASSERTION FAILURE in /SourceCache/DevToolsBase/DevToolsBase-1148/pbxcore/Target.subproj/XCCodeSignContext.m:458
Details:  Error: failed to locate ResourceRules.plist in '(null)/ResourceRules.plist' or '/Developer/Platforms/(null)/ResourceRules.plist'
Object:   &lt;XCiPhoneOSCodeSignContext&gt;
Method:   +defineCodeSignAuxiliaryFilesInTargetBuildContext:
Thread:   &lt;NSThread: 0x2038c60&gt;{name = (null), num = 6}
Backtrace:
  0  0x007200ab -[PBXTargetBuildContext(DependencyGraphEvents) handleFailureInMethod:object:fileName:lineNumber:messageFormat:arguments:] (in DevToolsCore)
  1  0x0078430c _XCAssertionFailureHandler (in DevToolsCore)
  2  0x0084036d +[XCCodeSignContext defineCodeSignAuxiliaryFilesInTargetBuildContext:] (in DevToolsCore)
  3  0x14baa16e +[XCiPhoneOSCodeSignContext defineCodeSignAuxiliaryFilesInTargetBuildContext:] (in iPhoneRemoteDevice)
  4  0x005d37d0 -[XCProductTypeSpecification computeDependenciesInTargetBuildContext:] (in DevToolsCore)
  5  0x005cf2ce -[XCNativeTargetDGSnapshot computeDependenciesInTargetBuildContext:] (in DevToolsCore)
  6  0x005cc965 -[PBXTargetBuildContext createDependencyGraphWithTargetDGSnapshot:] (in DevToolsCore)
  7  0x005cbb2d -[PBXTargetBuildContext(DependencyGraphEvents) dg_setTargetSnapshot:] (in DevToolsCore)
  8  0x913d5a7d __invoking___ (in CoreFoundation)
  9  0x913d5468 -[NSInvocation invoke] (in CoreFoundation)
 10  0x005cb553 -[PBXTargetBuildContext(DependencyGraphEvents) processDependencyGraphEvents] (in DevToolsCore)
 11  0x913d5a7d __invoking___ (in CoreFoundation)
 12  0x913d5468 -[NSInvocation invoke] (in CoreFoundation)
 13  0x005caec0 -[XCInvocationQueue _processNextInvocationInThreadSlotNumber:] (in DevToolsCore)
 14  0x005cab6f -[XCInvocationQueue _processInvocationsInThreadSlotNumber:] (in DevToolsCore)
 15  0x9408ebad -[NSThread main] (in Foundation)
 16  0x9408e754 __NSThread__main__ (in Foundation)
 17  0x900936f5 _pthread_start (in libSystem.B.dylib)
 18  0x900935b2 thread_start (in libSystem.B.dylib)</pre></div></div>

<p>If you see this build error when you build your project against &#8220;Device - iPhone OS 2.2&#8243; target, try the following fix:</p>
<ul>
<li>Open your project in Xcode. Go to your Project Info -> Build tab</li>
<li>Change Configuration: All Configurations</li>
<li>Change Show: All Settings</li>
<li>Change &#8220;Base SDK&#8221; as &#8220;Device - iPhone OS 2.2&#8243;</li>
<li>Search for &#8220;Code Signing Resource Rules Path&#8221; and add &#8220;$(SDKROOT)/ResourceRules.plist&#8221; as its value</li>
</ul>
<img src="http://feedproxy.google.com/~r/Stepcase/~4/kCeDXaB6a4A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stepcase.com/blog/2008/11/24/build-error-after-upgrading-to-iphone-sdk-22/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.stepcase.com/blog/2008/11/24/build-error-after-upgrading-to-iphone-sdk-22/</feedburner:origLink></item>
		<item>
		<title>The programmatic approach to save travel time</title>
		<link>http://feeds.stepcase.com/~r/Stepcase/~3/xdz4izXK4xE/</link>
		<comments>http://www.stepcase.com/blog/2008/10/27/the-programmatic-approach-to-save-travel-time/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 11:02:41 +0000</pubDate>
		<dc:creator>Johnny</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[algorithm]]></category>

		<category><![CDATA[travel]]></category>

		<category><![CDATA[tsp]]></category>

		<guid isPermaLink="false">http://www.stepcase.com/?p=24</guid>
		<description><![CDATA[Recently, we have run into the problem of trying to determine the optimal path to take when planning for a multiple destinations trip. It is the kind of problem that we face quite frequently in our everyday life, such as planning a holiday trip to various cities overseas; setting up business meetings with various people [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, we have run into the problem of trying to determine the optimal path to take when planning for a multiple destinations trip. It is the kind of problem that we face quite frequently in our everyday life, such as planning a holiday trip to various cities overseas; setting up business meetings with various people in different parts of the city; or delivering goods to different locations in a given area. The goal is to find the order of destinations to visit, which requires the least amount of effort (cost/distance/time) needed to spend on such trip. This is a classic example of a TSP, the <a href="http://en.wikipedia.org/wiki/Travelling_salesman_problem" target="_blank">Traveling Salesman Problem</a>.</p>
<p><span id="more-24"></span>There is no &#8220;quick and easy&#8221; way to solve a TSP for large number of nodes, as it is a <a href="http://en.wikipedia.org/wiki/NP-complete" target="_blank">NP-Complete</a> problem. Luckily for us, from a practical point of view, we are not trying to solve for large number of nodes. So here&#8217;s a few simple algorithms to get us what we need.</p>
<p><strong>Brute Force<br />
</strong></p>
<p><em>Algorithm</em>: Calculate the distances between all nodes, then try all permutations to find the least effort path.</p>
<p><em>Pros</em>: Accurate, it&#8217;ll give the best path possible</p>
<p><em>Cons</em>: Slow and very taxing, almost impossible to perform on large number nodes. O(n!)</p>
<p><strong>Nearest Neighbor / Greedy<br />
</strong></p>
<p><em>Algorithm</em>: Pick a starting node, then find the effort require to get to all other nodes, pick the least effort node and continue. Repeat until the last node is reached.</p>
<p><em>Pros</em>: Fast. For n nodes, only need to calculate (n+1)*(n/2) distances, doesn&#8217;t require a pre-calculated matrix of distances.</p>
<p><em>Cons</em>: Not always accurate, as near by nodes will &#8220;lure&#8221; the path away, often leaving a few nodes here and there that need to be &#8220;picked up&#8221; again at the end.</p>
<p><strong>Node Adding</strong></p>
<p><em>Algorithm</em>: Pick a starting node and an ending node (or 3 nodes for a round trip route), pick a new node and insert it into the existing path at a position that will give the least amount of increase of effort.</p>
<p><em>Pros</em>: Should gives better result as each new node should be in its correct position. Only need to calculate (n-1)*(n/2) distances.</p>
<p><em>Cons</em>: Existing nodes may not be in their best position after new nodes are added.</p>
<p>There are more advance algorithms out there, such as Genetic, Ant Colony, etc, that would produce much better result. Also, adding backtracking or reordering existing paths could also give improvements. However, depending on the scenario/reason you want to perform this task for, as well as the available processing power and timeframe you have to do the calculations, it may or may not be practical or worthwhile to do so.</p>
<p>But of course, as an inquisitive programmer/problem solver, one would ignore practicality to find the optimal solution, just for kicks.</p>
<img src="http://feedproxy.google.com/~r/Stepcase/~4/xdz4izXK4xE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stepcase.com/blog/2008/10/27/the-programmatic-approach-to-save-travel-time/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.stepcase.com/blog/2008/10/27/the-programmatic-approach-to-save-travel-time/</feedburner:origLink></item>
		<item>
		<title>Do you need an MBA to start a successful startup?</title>
		<link>http://feeds.stepcase.com/~r/Stepcase/~3/VdbdwX0R6Ew/</link>
		<comments>http://www.stepcase.com/blog/2008/07/06/do-you-need-an-mba-to-start-a-successful-startup/#comments</comments>
		<pubDate>Sun, 06 Jul 2008 09:41:27 +0000</pubDate>
		<dc:creator>Leon Ho</dc:creator>
		
		<category><![CDATA[Entrepreneurship]]></category>

		<category><![CDATA[management]]></category>

		<category><![CDATA[mba]]></category>

		<category><![CDATA[operation]]></category>

		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://www.stepcase.com/?p=13</guid>
		<description><![CDATA[Short answer: Definitely not. At least Bill Gates, Larry Ellison, and 20 successful business people don&#8217;t think so. Guy Kawasaki, a famous venture capitalist, recommends founders:

I don&#8217;t think an M.B.A. matters very much for starting a company. A much better educational background is an engineering degree. You can always hire MBAs, but if you don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p id="yl43">Short answer: Definitely not. At least Bill Gates, Larry Ellison, and <a id="yl430" href="http://www.insidecrm.com/features/mbas-are-overrated-081307/">20 successful business people don&#8217;t think so</a>. Guy Kawasaki, a famous venture capitalist, recommends founders:</p>
<blockquote id="yl431">
<p id="yl432">I don&#8217;t think an M.B.A. matters very much for starting a company. A much better educational background is an engineering degree. You can always hire MBAs, but if you don&#8217;t have the ability to conceptualize and deliver a product, you&#8217;ve got nothing.</p>
</blockquote>
<p id="yl435">Now onto my long answers, with my thoughts:<span id="more-13"></span></p>
<p id="yl438"><strong id="yl439">Wait, do you need an MBA to learn what you need to operate a startup?</strong> Maybe not. Starting up a venture is totally different from managing one. To start up, you need your time to work on the idea. More importantly, you need skills to execute it. Now the execution is not how well you manage your business, but your technical skills to implement your idea. Even if you have enough<span style="background-color: #ffffff;"> <span>seed funds</span></span> to hire engineers to work on it, you will still need enough technical skills and experiences to lead and guide them.</p>
<p id="yl4314"><strong id="yl4315">How do you know all those things about finance, business law, sales and marketing, when you have not studied an MBA?</strong> Most of my knowledge is accumulated from my previous management role at a publicly-listed company. How about the aspects that I wasn&#8217;t familiar with? I read books, articles and consult people for advice.</p>
<p id="yl4318">I spent two years of my time studying a part time post-graduate business course. In that particular university, the coursework for an MBA is similar to that of the post-graduate business courses. Was it useful? Maybe, but I believe I would have acquired the same knowledge simply by reading its coursework books. My goal was different back then, I wanted to climb the corporate ladder. Fortunately, it was just a part time course that I was fully sponsored for, so there were no regrets. If my goal had been to become an entrepreneur, I wouldn&#8217;t have spent time and effort on studies when I could have made good use of my time to work on my business ideas.</p>
<p id="yl4321">In addition, MBA and post-graduate business courses are targeted to people with sufficient management experiences. In many assessments, MBA students are required to relate the theory to an actual real-life work situation. Without relevant work experiences, the coursework only becomes a complete frustration of theories that you don&#8217;t know how to apply.</p>
<p id="yl4324"><strong id="yl4325">So what&#8217;s an MBA useful for?</strong> I would say two reasons. One is to climb a corporate ladder. Second is to extend your networks. If you are in for the first reason, you are probably aspired to work at a large corporation where an MBA qualification allows you to stand out among your competitive colleagues. Though I do know many senior management people who would value the real experience in management more. In startup environment, no one will consider you as a better founder because you have an MBA under your belt. If you are in for the second reason, you might be able to achieve the same results by spending the 2 years time and the course money to attend conferences and meetups and brush up your networking skills.</p>
<p id="yl4330"><strong id="yl4331">Is it better to be a &#8220;business guy&#8221; or a &#8220;technical guy&#8221; as a founder?</strong> Recently, a few people told me they have some great ideas and want to start up a venture. They asked if I know of any hackers around who may want to help, as they couldn&#8217;t execute the idea because they lack the technical knowledge to do so, and they are having a hard time finding a hacker that can help them.</p>
<p id="yl4334">I would say you rather be a &#8220;technical guy&#8221; if you want to start a startup. And yes, in my experience, I have less trouble finding a &#8220;business guy&#8221; that can help me with finance and operation stuff, at least in a small business operation context.</p>
<p id="yl4337">David Heinemeier Hansson, partner of 37signals, has identified an interesting phenomenon of some successful companies in his post &#8220;<a id="yl4338" href="http://www.37signals.com/svn/posts/1112-the-mba-myth">The MBA myth</a>&#8220;:</p>
<blockquote id="yl4339">
<p id="yl4340">Many of my favorite companies are driven by people at the top who intimately know how things should be because they could make them so. The obvious example is the detail-oriented nature of Steve Jobs at Apple. But a few other examples I like are <a id="yl4341" href="http://www.classicdriver.com/uk/magazine/3200.asp?id=12117">Ulrich Bez at Aston Martin</a> who’s not only the <span id="yl4342" class="caps">CEO</span> but also part of the company racing team at places like Le Mans. Or <a id="yl4343" href="http://www.tp178.com/SJX/thierrynataf06/interviewV5.htm">Thierry Nataf at Zenith</a> who’s <span id="yl4344" class="caps">CEO</span> and head designer of their luxury watches as well.</p>
</blockquote>
<p id="yl4345">And in the article &#8220;<a id="yl4346" href="http://www.paulgraham.com/start.html">How to Start a Startup</a>&#8220;, Paul Graham makes a great point:</p>
<blockquote id="yl4347">
<p id="yl4348">If you work your way down the Forbes 400 making an x next to the name of each person with an MBA, you&#8217;ll learn something important about business school. You don&#8217;t even hit an MBA till number 22, Phil Knight, the CEO of Nike. There are only four MBAs in the top 50. What you notice in the Forbes 400 are a lot of people with technical backgrounds. Bill Gates, Steve Jobs, Larry Ellison, Michael Dell, Jeff Bezos, Gordon Moore. The rulers of the technology business tend to come from technology, not business. So if you want to invest two years in something that will help you succeed in business, the evidence suggests you&#8217;d do better to learn how to hack than get an MBA.</p>
</blockquote>
<p id="yl4349">If you want to be a VP or a C-executive of an established startup, maybe then you would rather be a business guy.</p>
<p id="yl4354"><strong id="yl4355">If you are a technical guy but you have trouble starting up a company. What&#8217;s the real problem?</strong> Hard to say, but definitely not because you don&#8217;t have enough business and management knowledge. Maybe you are not working on something that customers want. Maybe the market of your products and services are saturated. Maybe you never had a prototype or beta of your idea to push to the potential customers, and improve it from there.</p>
<p id="yl4356">I would say it is not about your business and management skills because if you have completed a great beta version of your idea, all you need is a business plan and channels to sell your idea. In most cases, you will need early adaptors&#8217; support on your product, and networking skills to find potential investments. But of course, if your product sucks, you don&#8217;t need the latter because your startup won&#8217;t succeed anyway. What then? Rework your product and make it great.</p>
<p id="yl4361"><strong id="yl4362">So If you want to start a successful startup, what do you need to do?</strong> Create a product that customers want. Without that, you won&#8217;t get anywhere even if you have an MBA or managed a 10,000 people company.</p>
<img src="http://feedproxy.google.com/~r/Stepcase/~4/VdbdwX0R6Ew" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stepcase.com/blog/2008/07/06/do-you-need-an-mba-to-start-a-successful-startup/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.stepcase.com/blog/2008/07/06/do-you-need-an-mba-to-start-a-successful-startup/</feedburner:origLink></item>
		<item>
		<title>Another iteration of the corporate site design</title>
		<link>http://feeds.stepcase.com/~r/Stepcase/~3/ppIyPgbwzNA/</link>
		<comments>http://www.stepcase.com/blog/2008/03/13/another-iteration-on-the-corporate-site-design/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 09:26:34 +0000</pubDate>
		<dc:creator>Leon Ho</dc:creator>
		
		<category><![CDATA[News]]></category>

		<category><![CDATA[coporate]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.stepcase.com/new/blog/2008/03/13/another-iteration-on-the-corporate-site-design/</guid>
		<description><![CDATA[Several months ago, we launched the Stepcase corporate site with very little information, a homepage and a job page—just lean enough to get us started. Today, we&#8217;re launching another set of content, mostly to provide more information about Stepcase as a company and its offerings. We are working hard on our web application suite, Stepcase [...]]]></description>
			<content:encoded><![CDATA[<p>Several months ago, we launched the Stepcase corporate site with very little information, a homepage and a job page—just lean enough to get us started. Today, we&#8217;re launching another set of content, mostly to provide more information about Stepcase as a company and its offerings. We are working hard on our web application suite, Stepcase Apps, which will also integrate with this site later. Exciting times!</p>
<img src="http://feedproxy.google.com/~r/Stepcase/~4/ppIyPgbwzNA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.stepcase.com/blog/2008/03/13/another-iteration-on-the-corporate-site-design/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.stepcase.com/blog/2008/03/13/another-iteration-on-the-corporate-site-design/</feedburner:origLink></item>
	</channel>
</rss>
