<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Times New Rohan &#187; Mac</title>
	<atom:link href="http://robrohan.com/category/mac/feed/" rel="self" type="application/rss+xml" />
	<link>http://robrohan.com</link>
	<description>技术任意</description>
	<lastBuildDate>Thu, 28 Jan 2010 13:51:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>iPad</title>
		<link>http://robrohan.com/2010/01/28/ipad/</link>
		<comments>http://robrohan.com/2010/01/28/ipad/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 13:50:09 +0000</pubDate>
		<dc:creator>小罗</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Tinkering]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://robrohan.com/?p=1259</guid>
		<description><![CDATA[Oh wow, look.  How rare; another post from no one of matter about the iPad!

One of my goals for 2010 is to start to be a bit more &#8230; mindful of the things I think.  Twitter is like a magnet for the opposite of that, but it&#8217;s a work in progress.

I&#8217;ve had all [...]]]></description>
			<content:encoded><![CDATA[<p>Oh wow, look.  How rare; another post from no one of matter about the iPad!</p>

<p>One of my goals for 2010 is to start to be a bit more &#8230; mindful of the things I think.  Twitter is like a magnet for the opposite of that, but it&#8217;s a work in progress.</p>

<p>I&#8217;ve had all day to mull over the iPad, and I&#8217;ve had a few friends and family ask my opinion about the product (some didn&#8217;t ask, but they got my opinion anyway).  I figure, why let the great void of the interwebs go on without my armchair opinions; plus, this is a good place to point my family to.</p>

<p><span id="more-1259"></span></p>

<p><em>A Heck of a Lot of Work</em></p>

<p>I have a few friends that work at Apple, and to them I have to say it is obvious there was an amazing amount of work put into that product. (We have a don&#8217;t ask / don&#8217;t tell policy about Apple stuff so I am only guessing this based on the product demos.)</p>

<p>Apple made a whole processor for the thing.  That is pretty amazing.  I mean, I&#8217;ve always been impressed with their hardware when I&#8217;ve taken Macs apart, but building your own product down to the processor &#8211; that must have been all kinds of fun.</p>

<p>The rework of the iWork and iLife products are very, very nice.  They look great on the device.  I wouldn&#8217;t mind having some of those UI elements on my Mac proper.</p>

<p>I don&#8217;t want to belittle the work that went into the device, the hardware or the software. It&#8217;s not like anyone cares about my opinion, but from the product demo, the software and speed of the iPad was top notch.</p>

<p><em>Concerns</em></p>

<p>Now, I wont be buying an iPad, and judging from the direction Apple appears to be heading, I am not sure how many future products of theirs I&#8217;ll be buying.  I have two major concerns that were brought to a head with the iPad launch.</p>

<p>1) Apple appears to be becoming Zenith</p>

<p>Mac OS X is the best OS I&#8217;ve ever used; however, it appears to me to not be Apple&#8217;s main focus anymore.  Apple appears to be less and less of a computer company and more concerned with turning out Jef Raskin devices that use the iPhone OS and are tied to the AppStore.  Heck, they dropped &#8220;computer&#8221; from their name, which maybe I should take as a hint.</p>

<p>I half expect to see the iBlender, iToaster, and iRefrigerator come out soon &#8211; all running the iPhone OS &#8211; and they only work if Apple approves of the food stuffs you put into them.</p>

<p>Granted, I am taking things to an illogical extreme here, but my concern is basically that the power, freedom, and workflow that first got me hooked on Apple products, specifically OS X, is going bye bye and getting replaced by devices that have little to no real world geek value; work value; unix value.  Modern DVD players.</p>

<p>I vehemently disagree with, but can understand, the locked down nature of the iPhone because it&#8217;s a phone.  I see the move of using the iPhone OS in the iPad as a sign of &#8220;things to come&#8221; (which I think they even said in the presentation).</p>

<p>2) The cake is a lie</p>

<p>Perhaps the history I thought I knew about Apple is wrong.  I wasn&#8217;t there obviously, but I&#8217;ve met a few people who were.  I&#8217;ve also seen movies and read things online that seem to backup what I&#8217;ve heard.</p>

<p>Apple&#8217;s core goal originally, I thought, was to free the computer from the clutches of the likes of IBM*.  Woz and Steve built one of the first computers and showed it off at the Homebrew computer club with the idea that everyone could have the freedom of their own computer &#8211; they wouldn&#8217;t have to bow down to a multi-billion dollar corporation to ask permission&#8230; you see where I am going with this right?</p>

<p>So what&#8217;s the goal now?  It appears to be a manifestation of what they were against in the first place.  Or, perhaps, I was just confusing myself &#8211; which is completely possible.</p>

<p>I mean, there is no freedom with the iPhone, there is no freedom with the iPad, it&#8217;s all corporate controlled and you need to ask permission &#8211; repeatedly &#8211; to use almost any aspect of it.  This is the vision of things to come?</p>

<p>It has become clear to me that Apple is just another company, another &#8220;IBM&#8221;*; there is nothing special about it, and that makes me a bit sad.</p>

<p>Well played sir, well played.</p>

<p><em>Dude, I thought you were talking about the iPad?</em></p>

<p>Yeah, sorry.  The iPad, for me, wasn&#8217;t just a failure of what I wanted it to do, what I wanted to use it for, and how I was hoping the ecosystem would work, it was Apple jumping the geek shark. (Still dig Mac+OS X though.)</p>

<p>If the iPad looks like a product you would like, go buy it.  If not, then don&#8217;t.</p>

<ul>
<li>I personally don&#8217;t have a problem with IBM :)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://robrohan.com/2010/01/28/ipad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iFlash and Cram &#8211; Study Aids for Mac</title>
		<link>http://robrohan.com/2009/11/29/iflash-and-cram-study-aids-for-mac/</link>
		<comments>http://robrohan.com/2009/11/29/iflash-and-cram-study-aids-for-mac/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 08:04:07 +0000</pubDate>
		<dc:creator>小罗</dc:creator>
				<category><![CDATA[Chinese]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://robrohan.com/2009/11/29/iflash-and-cram-study-aids-for-mac/</guid>
		<description><![CDATA[An important part of studying something is review and testing [citation needed].  Ok, well at least that&#8217;s what I find when I am trying to learn something new.  I was lucky enough to get some free copies of software that are meant to aid with studying: iFlash and Cram.  I thought I&#8217;d [...]]]></description>
			<content:encoded><![CDATA[<p>An important part of studying something is review and testing [citation needed].  Ok, well at least that&#8217;s what I find when I am trying to learn something new.  I was lucky enough to get some free copies of software that are meant to aid with studying: <a href="http://www.loopware.com/iflash/" title="iFlash USD$14.95">iFlash</a> and <a href="http://www.simpleleap.com/cram/mac.htm" title="Cram USD$29.99">Cram</a>.  I thought I&#8217;d post a quick review of using both of the applications &#8211; with a focus towards studying Mandarin.</p>

<p><span id="more-1240"></span></p>

<h2><a href="http://www.loopware.com/iflash/" title="iFlash USD$14.95">iFlash</a></h2>

<p>iFlash is a Flash card program.  I&#8217;ve been using iFlash for quite a while.  I&#8217;ve had a long time with it, and it is by far my favorite flash card program of all time ever (sorry to steal some Apple marketing there).</p>

<p>My two favorite features of iFlash are the multi sided flash cards, and the iPhone / iPod syncing ability.</p>

<p>iFlash can export to any iPod with disk access turned on, or it can sync with the free iFlash iPhone / iPod Touch app.</p>

<div class="movie">
<img src="http://robrohan.com/wp-content/uploads/2009/11/Picture-1-21.jpg" height="326" width="425" border="1" hspace="4" vspace="4" alt="Picture 1-21" />
</div>

<p>The older iPod syncing format is less than stellar, but the newer iPhone / iPod Touch is fantastic.  It is difficult to see, but here is a picture of what the flash cards look like on an iPod nano.  It basically looks like one large text file &#8211; it will do in a pinch.</p>

<div class="movie">
<img src="http://robrohan.com/wp-content/uploads/2009/11/IMG_0445.jpg" height="566" width="425" border="1" hspace="4" vspace="4" alt="Img 0445" />
</div>

<p>However, on the iPhone / iPod Touch it is perfect for studying Chinese.  This is what I do most days on the train ride to work:</p>

<div class="movie">
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/QG6P8AUPtYA&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/QG6P8AUPtYA&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
</div>

<p>(That video was filmed with the iPod nano by the way)</p>

<p>The multi side cards are a perfect fit when studying Mandarin / Chinese.   When I am studying Mandarin there are at least 3 things I need to know: the simplified characters, the hanyu pinyin, and the meaning.   If you are a serious learner, you can have need for 4 or 5 sides if you add in traditional characters and tongyong pinyin.  iFlash delivers here by letting you have as many sides as you want:</p>

<div class="movie">
<img src="http://robrohan.com/wp-content/uploads/2009/11/Picture-2-14.jpg" height="330" width="425" border="1" hspace="4" vspace="4" alt="Picture 2-14" />
</div>

<p>Additionally, cards can have sounds or pictures on them (I have not tried this so I don&#8217;t know if they sync with the iPhone / iPod Touch)</p>

<div class="movie">
<img src="http://robrohan.com/wp-content/uploads/2009/11/Picture-5-2.jpg" height="926" width="321" border="1" hspace="4" vspace="4" alt="Picture 5-2" />
</div>

<p>And the last feature of iFlash that I like is the sharing of decks.  iFlash has a built in system to share your decks and download other peoples decks.  It saves hours of typing and can get you studying a subject in seconds.</p>

<div class="movie">
<img src="http://robrohan.com/wp-content/uploads/2009/11/Picture-3-9.jpg" height="411" width="425" border="1" hspace="4" vspace="4" alt="Picture 3-9" />
</div>

<p>iFlash is, in my opinion, priced perfectly.  It is priced at USD$14.95 and the iPhone / iPod Touch reader is free of charge (it&#8217;s read only and you need to have the desktop application).  It is a fair price for a stable, easy to use, well done application.</p>

<h2><a href="http://www.simpleleap.com/cram/mac.htm" title="Cram USD$29.99">Cram</a></h2>

<p>At first glance, I thought <a href="http://www.simpleleap.com/cram/mac.htm" title="Cram USD$29.99">Cram</a> and <a href="http://www.loopware.com/iflash/" title="iFlash USD$14.95">iFlash</a> were going to be competitors, and this was going to be an <a href="http://www.loopware.com/iflash/" title="iFlash USD$14.95">iFlash</a> vs <a href="http://www.simpleleap.com/cram/mac.htm" title="Cram USD$29.99">Cram</a> post.  However, Cram is filling a different niche than iFlash &#8211; <a href="http://www.simpleleap.com/cram/mac.htm" title="Cram USD$29.99">Cram</a> helps you prepare for tests.</p>

<p>Cram has the ability to do flash card like studying.  While it is limited to only two sides, two sides in general is all most subjects require.  This is what the feature looks like while studying:</p>

<div class="movie">
<img src="http://robrohan.com/wp-content/uploads/2009/11/Picture-3-10.jpg" height="329" width="425" border="1" hspace="4" vspace="4" alt="Picture 3-10" />
</div>

<p>Additionally, you can attach sound files and images to the cards.</p>

<p>In my opinion, where Cram&#8217;s major benefit comes in is with practice tests.  Again, when it comes to studying Mandarin it falls down a bit, but for the majority of subjects it seems very useful.  For example in the following shot you&#8217;ll see a question and choices.  Since the question is only one syllable the correct answer can only be B or C.</p>

<div class="movie">
<img src="http://robrohan.com/wp-content/uploads/2009/11/Picture-4-4.jpg" height="346" width="425" border="1" hspace="4" vspace="4" alt="Picture 4-4" />
</div>

<p>The possible answers appear to be chosen from all the other correct answers at random, and in the case of Chinese vocabulary that doesn&#8217;t quite work.  However, it works very well for things like geography, science, or history.  For example:</p>

<div class="movie">
<img src="http://robrohan.com/wp-content/uploads/2009/11/Picture-5-3.jpg" height="346" width="425" border="1" hspace="4" vspace="4" alt="Picture 5-3" />
</div>

<p><a href="http://www.simpleleap.com/cram/mac.htm" title="Cram USD$29.99">Cram</a> also has access to two deck sharing services &#8211; and there are tons of decks.  An amazing number of subjects from the SAT to Astronomy to Physics to Social Studies.  The only thing I couldn&#8217;t find was zoology which would have ended that last sentence nicely.</p>

<div class="movie">
<img src="http://robrohan.com/wp-content/uploads/2009/11/Picture-2-15.jpg" height="310" width="425" border="1" hspace="4" vspace="4" alt="Picture 2-15" />
</div>

<p>Cram also gives you a score at the end of your test, and tracks your progress over time.</p>

<div class="movie">
<img src="http://robrohan.com/wp-content/uploads/2009/11/Picture-6-3.jpg" height="364" width="425" border="1" hspace="4" vspace="4" alt="Picture 6-3" />
</div>

<p>You can also link Cram with your twitter account to post your test scores.  I thought that was an interesting touch that would be fun to use in study groups.</p>

<div class="movie">
<img src="http://robrohan.com/wp-content/uploads/2009/11/Picture-8.jpg" height="313" width="425" border="1" hspace="4" vspace="4" alt="Picture 8" />
</div>

<p>Like <a href="http://www.loopware.com/iflash/" title="iFlash USD$14.95">iFlash</a>, <a href="http://www.simpleleap.com/cram/mac.htm" title="Cram USD$29.99">Cram</a> has an iPhone / iPod Touch application.  However it is currently USD$4.99 and I didn&#8217;t get free access to that.  Judging by the screenshots on the <a href="http://www.simpleleap.com/cram/mac.htm" title="Cram USD$29.99">cram website</a> it looks to be a useful mobile application though.  On top of the iPhone app, Cram also supports the Blackberry.</p>

<p>For me, not being in school, I don&#8217;t find Cram as useful as I see it&#8217;s potential.  If you are in school and you take a lot of multiple choice tests, or are studying for the SATs or something similar, <a href="http://www.simpleleap.com/cram/mac.htm" title="Cram USD$29.99">Cram</a> might be just what you are after.  If I had Cram in biology, I might have done quite a bit better than I did.</p>

<p>As a consumer, the only other thing about <a href="http://www.simpleleap.com/cram/mac.htm" title="Cram USD$29.99">Cram</a> is I personally think the price is a bit high.  It is currently USD$29.99, and to get the iPhone app is another USD$4.99.  Price is in the eye of the beholder though, so if you are cramming for the SATs and need something to test yourself with, that might be a reasonable price to you.</p>

<p>(As a developer, I think Cram needs a better icon set, and a bit of UI polish; however functionally it is right on and absolutely usable.)</p>
]]></content:encoded>
			<wfw:commentRss>http://robrohan.com/2009/11/29/iflash-and-cram-study-aids-for-mac/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>YASnippet Emacs Snippets &#8211; Like Textmate</title>
		<link>http://robrohan.com/2009/11/07/yasnippet-emacs-snippets-like-textmate/</link>
		<comments>http://robrohan.com/2009/11/07/yasnippet-emacs-snippets-like-textmate/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 11:31:01 +0000</pubDate>
		<dc:creator>小罗</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://robrohan.com/2009/11/07/yasnippet-emacs-snippets-like-textmate/</guid>
		<description><![CDATA[I&#8217;ve gone back to Emacs for all my text processing needs for some reason.  Well, I think the main reason was I&#8217;ve been going back and forth between Linux, Mac, and Windows on my latest project at work, and there wasn&#8217;t a common editor between all three that I liked&#8230; save my old friend [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve gone back to Emacs for all my text processing needs for some reason.  Well, I think the main reason was I&#8217;ve been going back and forth between Linux, Mac, and Windows on my latest project at work, and there wasn&#8217;t a common editor between all three that I liked&#8230; save my old friend Emacs.</p>

<p>I&#8217;ve always used emacs for one thing or another, but I&#8217;ve grown very used to Textmate on the Mac for coding.  One of Textmate&#8217;s strong points is snippets.  Once I got used to having them, it has become difficult to live without them.  Enter <a href="http://code.google.com/p/yasnippet/" title="YASnippets">YASnippets</a> &#8211; snippets for Emacs that look, feel, work, and use the same syntax as Textmate snippets.  Score.</p>

<p><span id="more-1205"></span></p>

<p>Here is a nice video showing off how they work:</p>

<div class="movie">
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/76Ygeg9miao&#038;hl=en&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/76Ygeg9miao&#038;hl=en&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
</div>

<p>I&#8217;ve gotten quite a few emails asking if there is anything like Textmate on Linux, and I&#8217;ve had to say no; however, if you add in yashnippets, color-theme, weblogger and a few other bits to Emacs you pretty much have Textmate.</p>

<p>Granted, Emacs is far more powerful than Textmate so there is going to be a learning curve, but hey, you are on Linux everything has a learning curve ^_^</p>

<p>You can download YASnippets on the <a href="http://code.google.com/p/yasnippet/" title="YASnippets">Google Code project</a> page.</p>

<p>On a side note I&#8217;ve been quite surprised at the number of new projects and tutorials there are around Emacs.  It would appear that it is having a bit of a rediscovery by other people as well.  Stranger still, the vast majority of them are in Chinese or Japanese. Interesting.</p>
]]></content:encoded>
			<wfw:commentRss>http://robrohan.com/2009/11/07/yasnippet-emacs-snippets-like-textmate/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Lowfi Project Managment</title>
		<link>http://robrohan.com/2009/11/05/lowfi-project-managment/</link>
		<comments>http://robrohan.com/2009/11/05/lowfi-project-managment/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 10:33:36 +0000</pubDate>
		<dc:creator>小罗</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://robrohan.com/2009/11/05/lowfi-project-managment/</guid>
		<description><![CDATA[I&#8217;ve been searching for the perfect set of tools for software
development.  I am searching for the kind of workflow where there is no
workflow.  It just happens &#8211; coding like water grasshopper.

I&#8217;ve become disenchanted with most of the tools I&#8217;ve used in the
past.  The tools almost always seem to get in the way [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been searching for the perfect set of tools for software
development.  I am searching for the kind of workflow where there is no
workflow.  It just happens &#8211; coding like water grasshopper.</p>

<p>I&#8217;ve become disenchanted with most of the tools I&#8217;ve used in the
past.  The tools almost always seem to get in the way of getting work
done, and I figure when you have to do work in order to do work, there is
a problem somewhere.</p>

<p>This is my ninja setup; the get it done setup.</p>

<p><span id="more-1183"></span></p>

<p>There are several reasons I think this is a very productive setup for
small teams, but the
biggest reason is probably the fact that everything is in the
repository, and everything is editable with a text editor.  I&#8217;ll list the
pros and cons after the tools, but I think the tool descriptions will speak
for themselves.</p>

<h1><a href="http://git-scm.com/" title="Git">Git</a></h1>

<p>The whole workflow centers around the version control system <em>Git</em>.  I
am not going to try to convince you that git is awesome (there are many
sites that can do that better than I can), but I personally wouldn&#8217;t
start another personal project using anything other than a distributed 
version control system anymore.  I tend to like git because the
branching and merging are second to none.  I also dig the fact you can 
just basically throw it on a server to share the repo.</p>

<h1><a href="http://wiki.github.com/schacon/ticgit" title="Ticgit">Ticgit</a></h1>

<p>Ticgit is the ticketing / issue tracking system in the ninja setup.  The
reason this is helpful is the ticket system lives in the git repository.
So where the repo goes, so goes the tickets.</p>

<p>Every branch and tag also contain the ticket for the project so you have
full project snap shots at all times.  A tag also tags all the tickets.
When someone checks out the code, they get the whole ticketing system
along side the code.  Ticgit uses a simple command line interface, and
your usual editor to enter and edit bugs so you don&#8217;t have to fumble
about with some overly complicated external interface.</p>

<h1><a href="http://sphinx.pocoo.org/" title="Sphinx">Sphinx</a></h1>

<p>Sphinx is used to do documentation.  It sits inside the repo and is made
up of easy to use, easy to update text files.  Which are, again,
editable in any text editor.  No need to log into a wiki or update some
RTF document &#8211; you just type the text.  The markup syntax of Sphinx is
similar to wiki or markdown syntax so it&#8217;s more or less completely
natural to any developer.</p>

<p>Since Sphinx documents are simply text files, they live in the repo
right next to the code and the ticketing system.  They go along with
every branch or tag as well and inherit the benefits of branching,
merging and patches.</p>

<h1><a href="http://orgmode.org/" title="Org Mode">Org Mode</a></h1>

<p>Org mode is, at it&#8217;s base, a file format used to do outlines and TODOs.
However, it also supports tagging, metadata, dates, and it functions as a
wonderful project management system. (I&#8217;ve been using it for quite a
while as my GTD system).</p>

<p>Since org mode files are also just text files, they can live along side
the code as well.  They can be versioned, tagged, merged, and
distributed right along with the code, and the format of the file is
trivial to learn.</p>

<h1><a href="http://git.or.cz/gitwiki/Gitweb" title="Gitweb">Gitweb</a></h1>

<p>Sometimes it is helpful to have a browser based version of the
repository.  Gitweb provides a web interface for git (with a bit of
setup).  You can also use gitweb to do RSS feeds of pushes (commits) to
the <em>master</em> git repository.  This piece is not completely needed, but
I find it nice to have.</p>

<p>Here are the benefits to my ninja setup:</p>

<ol>
<li>Everything is with the code &#8211; tickets, documentation, project
management and has all the benifits git offers.</li>
<li>Works on any system pretty much anywhere &#8211; GUI or not.</li>
<li>Allows moving to a more complicated system since all the files are
machine parse-able text files</li>
<li>All the tools are free, and use open formats</li>
<li>Easy to use &#8211; if you can use a text editor you are golden</li>
<li>Easy to learn (that&#8217;s subjective obviously. If you&#8217;ve never used a
shell or the command line it might not be so simple)</li>
<li>Highly scriptable / tweak-able</li>
<li>Fully usable offline without an internet connection. You can do
anything while on an airplane.</li>
</ol>

<p>Some drawbacks:</p>

<ol>
<li>Time is not a factor.  If you are into hourly tracking there isn&#8217;t an easy
way to track that in this system.</li>
<li>Only developers are likely able to use the system.  There is no way
for a client to directly submit a bug for example.</li>
<li>Learning curve (as with anything)</li>
<li>Probably quite a bit of setup on Windows.  Trivial setup on Linux and
Mac, but on Windows it is a bit more complicated.</li>
</ol>

<p>So far that&#8217;s what I am using.  It&#8217;s been serving me well for a few of
my smaller personal projects, but I&#8217;ve started using it on a larger
project with more developers.  We&#8217;ll see how it goes, but I anticipate it
working very well.</p>
]]></content:encoded>
			<wfw:commentRss>http://robrohan.com/2009/11/05/lowfi-project-managment/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Posting From Emacs</title>
		<link>http://robrohan.com/2009/11/02/posting-from-emacs/</link>
		<comments>http://robrohan.com/2009/11/02/posting-from-emacs/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 06:43:38 +0000</pubDate>
		<dc:creator>小罗</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://robrohan.com/2009/11/03/posting-from-emacs/</guid>
		<description><![CDATA[I&#8217;ve been rediscovering some&#8230; ahem&#8230; aged tools lately &#8211; like fine wine.  It started
when I had to do a bit of python developemnt, and has blossomed from
there.  Python has that low level, old school, boot Debain to text only
mode feel to it.

So this post is more or less pointless. It is only to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been rediscovering some&#8230; ahem&#8230; aged tools lately &#8211; like fine wine.  It started
when I had to do a bit of python developemnt, and has blossomed from
there.  Python has that low level, old school, boot Debain to text only
mode feel to it.</p>

<p>So this post is more or less <em>pointless</em>. It is only to check to see if
the weblogger mode in emacs is working, as well as the <em>markdown</em> plugin
I added to the blog.  If everything worked well, this post will look
somewhat formatted, otherwise it will look hosed.</p>

<p>Trying some inline HTML:</p>

<pre>
   function blarg() {
       var x = 1;
   }
</pre>

<p>And a table:</p>

<table>
<thead>
<tr>
  <th>Item A</th>
  <th>Item B</th>
</tr>
</thead>
<tbody>
<tr>
  <td>One</td>
  <td>Two</td>
</tr>
<tr>
  <td>Three</td>
  <td>Four</td>
</tr>
</tbody>
</table>

<p>Chinese: 太好了！</p>

<p>Chinese+Markdown: <em>太</em>好了！</p>
]]></content:encoded>
			<wfw:commentRss>http://robrohan.com/2009/11/02/posting-from-emacs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>@objc.signature(&#8216;v@:@@o^@&#8217;)</title>
		<link>http://robrohan.com/2009/09/14/objc-signaturevo/</link>
		<comments>http://robrohan.com/2009/09/14/objc-signaturevo/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 04:59:12 +0000</pubDate>
		<dc:creator>小罗</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://robrohan.com/?p=1156</guid>
		<description><![CDATA[Another quick post to hopefully save some one some time.

If you&#8217;re using python with Cocoa, you might run into problem with method signatures.   Because python is type-less, sometimes you have to explicitly set the method signatures for your object&#8217;s methods.   If you are getting wacky errors for seemingly no reason this [...]]]></description>
			<content:encoded><![CDATA[<p>Another quick post to hopefully save some one some time.</p>

<p>If you&#8217;re using python with Cocoa, you might run into problem with method signatures.   Because python is type-less, sometimes you have to explicitly set the method signatures for your object&#8217;s methods.   If you are getting wacky errors for seemingly no reason this might be why.  The errors this type of problem generate look something like:</p>

<pre>
does not implement protocol NSDraggingDestination: the signature for method performDragOperation: is c12@0:4@8 instead of B12@0:4@8
</pre>

<p><span id="more-1156"></span></p>

<p>You can fix this by explicitly setting the method&#8217;s signature using the @objc.signature decorator.  For example:</p>

<pre>
import objc

...

@objc.signature('B12@0:4@8')
def prepareForDragOperation_(self, sender):
        #print "prepareForDragOperation_"
        return True
</pre>

<p>You probably have used a decorators when creating methods for @objc.IBAction.</p>

<p>But the question for me became, how the heck do you define the signature?  That is some alien looking code.  Well, those things are called &#8220;Type Encodings&#8221; (so you have a search term), and you can read about them in the Apple documentation.</p>

<p><a href="http://developer.apple.com/iPhone/library/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html">Here</a> is the current link, but for some crazy reason Apple seems to be moving around their documentation and breaking links all over the place.  Plus the back button doesn&#8217;t work on their new documentation format &#8211; I am not amused.  You should also note that the documentation is for the iPhone which I am assuming is the same for the desktop (you can obviously only use python on the desktop).</p>

<p>Here is a copy of the table that is on that page</p>

<table>
<tr>
<th>Code</th>
<th>Meaning</th>
</tr>
<tr>
<td>c</td>
<td>A char</td>
</tr>
<tr>
<td>i</td>
<td>An int</td>
</tr>
<tr>
<td>s</td>
<td>A short</td>
</tr>
<tr>
<td>l</td>
<td>A long l is treated as a 32-bit quantity on 64-bit programs.</td>
</tr>
<tr>
<td>q</td>
<td>A long long</td>
</tr>
<tr>
<td>C</td>
<td>An unsigned char</td>
</tr>
<tr>
<td>I</td>
<td>An unsigned int</td>
</tr>
<tr>
<td>S</td>
<td>An unsigned short</td>
</tr>
<tr>
<td>L</td>
<td>An unsigned long</td>
</tr>
<tr>
<td>Q</td>
<td>An unsigned long long</td>
</tr>
<tr>
<td>f</td>
<td>A float</td>
</tr>
<tr>
<td>d</td>
<td>A double</td>
</tr>
<tr>
<td>B</td>
<td>A C++ bool or a C99 _Bool</td>
</tr>
<tr>
<td>v</td>
<td>A void</td>
</tr>
<tr>
<td>*</td>
<td>A character string (char *)</td>
</tr>
<tr>
<td>@</td>
<td>An object (whether statically typed or typed id)</td>
</tr>
<tr>
<td>#</td>
<td>A class object (Class)</td>
</tr>
<tr>
<td>:</td>
<td>A method selector (SEL)</td>
</tr>
<tr>
<td>[array type]</td>
<td>An array</td>
</tr>
<tr>
<td>{name=type&#8230;}</td>
<td>A structure</td>
</tr>
<tr>
<td>(name=type&#8230;)</td>
<td>A union</td>
</tr>
<tr>
<td>bnum</td>
<td>A bit field of num bits</td>
</tr>
<tr>
<td>^type</td>
<td>A pointer to type</td>
</tr>
<tr>
<td>?</td>
<td>An unknown type (among other things, this code is used for function pointers)</td>
</tr>
</table>

<p>It goes on to define &#8220;Objective-C method encodings&#8221;</p>

<table>
<tr>
<th>Code</th>
<th>Meaning</th>
</tr>
<tr>
<td>r</td>
<td>const</td>
</tr>
<tr>
<td>n</td>
<td>in</td>
</tr>
<tr>
<td>N</td>
<td>inout</td>
</tr>
<tr>
<td>o</td>
<td>out</td>
</tr>
<tr>
<td>O</td>
<td>bycopy</td>
</tr>
<tr>
<td>R</td>
<td>byref</td>
</tr>
<tr>
<td>V</td>
<td>oneway</td>
</tr>
</table>

<p>Even with that information though, it is a bit complicated to understand or write these signatures by hand.  For example, the post&#8217;s title: &#8216;v@:@@o^@&#8217;  appears to be a method that returns void (or an object?) and takes three parameters.  First a normal object, the second an out object and the third is a pointer to an object.</p>

<p>Kind of an interesting gotcha for a type-less high level language.</p>
]]></content:encoded>
			<wfw:commentRss>http://robrohan.com/2009/09/14/objc-signaturevo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Widget to help CSI with their Tech talk</title>
		<link>http://robrohan.com/2009/09/05/widget-to-help-csi-with-their-tech-talk/</link>
		<comments>http://robrohan.com/2009/09/05/widget-to-help-csi-with-their-tech-talk/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 13:55:58 +0000</pubDate>
		<dc:creator>小罗</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Miscellanea]]></category>

		<guid isPermaLink="false">http://robrohan.com/?p=1148</guid>
		<description><![CDATA[I don&#8217;t watch TV very much, but I have been a bit obsessed with some CSI clips that have been making the rounds on youtube.

The clips caught my attention because the tech talk they use in the show is so ridiculous that it has to be a joke.  There has to be some tech [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t watch TV very much, but I have been a bit obsessed with some CSI clips that have been making the rounds on youtube.</p>

<p>The clips caught my attention because the tech talk they use in the show is so ridiculous that it has to be a joke.  There has to be some tech adviser on the show who just feeds the writers absolute crazy talk and chuckles when he / she gets home and watches the show.  The best example is the infamous Visual Basic GUI scene:</p>

<p><span id="more-1148"></span></p>

<div class="movie">
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/hkDD03yeLnU&#038;hl=en&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/hkDD03yeLnU&#038;hl=en&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
</div>

<p>If you are not in the tech scene, you might not have understood.  However, what that second girl said was pretty much just a bunch of words thrown together.  It made no sense.</p>

<p>Medical shows I&#8217;ve watched in the past at least try to make some sort of sense.  They are obviously not accurate, but this would be like a medical show where a doctor says, &#8220;Nurse! She needs an open spleen EKG stat! Hand me the ICU so I can IV her tibia! CLEAR!&#8221;</p>

<p>It&#8217;s been gnawing at me for a few weeks &#8211; it&#8217;s silly, but it highlights just how dumbed down TV has become (as if it was ever a pinnacle of education).</p>

<p>Instead of whinging about it, I decided to throw together a widget that will help writers of shows that need a bit of tech talk for their characters.</p>

<p>This widget will guarantee that it will contain tech phrases that are 100% phrases that have tech in them.  Here is a screen shot if it in use:</p>

<div class="movie">
<img src="http://robrohan.com/wp-content/uploads/2009/09/Picture-2-13.png" height="130" width="424" border="1" hspace="4" vspace="4" alt="Picture 2-13" />
</div>

<p>You can down load it <a href="http://robrohan.com/examples/TechGenerator.zip">here</a> &#8211; that is if my ssh multi-core load balancer is still working properly.</p>
]]></content:encoded>
			<wfw:commentRss>http://robrohan.com/2009/09/05/widget-to-help-csi-with-their-tech-talk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TypeError: Unsupported format string type</title>
		<link>http://robrohan.com/2009/09/02/typeerror-unsupported-format-string-type/</link>
		<comments>http://robrohan.com/2009/09/02/typeerror-unsupported-format-string-type/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 00:47:23 +0000</pubDate>
		<dc:creator>小罗</dc:creator>
				<category><![CDATA[FarCry]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Web Apps]]></category>

		<guid isPermaLink="false">http://robrohan.com/?p=1142</guid>
		<description><![CDATA[Quick post so Google might return something helpful for others hitting this error (Since I couldn&#8217;t find a post on the matter).

I hit this error using python on Mac OS X Leopard while writing a Cocoa based application and using minidom.  I was doing a simple httplib.HTTPConnection request to a server and getting back [...]]]></description>
			<content:encoded><![CDATA[<p>Quick post so Google might return something helpful for others hitting this error (Since I couldn&#8217;t find a post on the matter).</p>

<p>I hit this error using python on Mac OS X Leopard while writing a Cocoa based application and using minidom.  I was doing a simple httplib.HTTPConnection request to a server and getting back XML in the body of the document.  I was pulling the XML out using the response.read() method.</p>

<p>The server was setting the mime type and encoding correctly, and a type() call against the result showed it as a valid python string (&lt;type &#8217;str&#8217;&gt;) and it was well formed XML. However, for some reason whenever I would feed it to minidom.parseString() Cocoa (or the PyObjC bridge or whatever) would die with the error &#8220;TypeError: Unsupported format string type&#8221;</p>

<p><span id="more-1142"></span></p>

<p>I tried making the string an NSString thinking it was some Mac OS X implementation problem (various versions of NSString.alloc().initWithString_(str_response) setting encodings, copies of objects, etc), but it always caused the same error.</p>

<p>In the end, I simply gave up on the minidom library and used ElementTree instead (from xml.etree import ElementTree).  ElementTree.fromstring(str_response) worked out of the box.</p>

<p>I hope this saves someone some time. It had me stumped for several hours since there is no other information beyond &#8220;Unsupported format string type&#8221; with the stack trace of:</p>

<pre>
File "/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/PyObjCTools/AppHelper.py", line 235, in runEventLoop
</pre>

<p>I am still loving python though :)</p>

<p><b>Update</b></p>

<p>After working with ElementTree a bit more, I&#8217;ve discovered that the real culprit to this difficult-to-figure-out error message was likely due to the try/except statement around the method call.  For example it was doing this:</p>

<pre>
try:
    crazy.thing()
except Exception, e:
    rsp = NSRunAlertPanel(
        u"Bad Things", 
        e, 
        u"Let Me Try Again", 
        u"Quit", 
        None)
</pre>

<p>Any exception in the crazy.thing method will be masked by the &#8220;TypeError: Unsupported format string type&#8221; error when it tries to display e.  To fix it I simply casted e to a string:</p>

<pre>
try:
    crazy.thing()
except Exception, e:
    rsp = NSRunAlertPanel(
        u"Bad Things", 
        str(e), 
        u"Let Me Try Again", 
        u"Quit", 
        None)
</pre>

<p>So the real cause of my minidom problem is unknown since I&#8217;ve moved on to ElementTree.  I am a bit disappointed in the error reporting with python Cocoa, but other than a few elusive and confusing errors it is sweet, and fun development platform.</p>
]]></content:encoded>
			<wfw:commentRss>http://robrohan.com/2009/09/02/typeerror-unsupported-format-string-type/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Move to Ubuntu&#8230; [FAIL]</title>
		<link>http://robrohan.com/2009/08/15/move-to-ubuntu-fail/</link>
		<comments>http://robrohan.com/2009/08/15/move-to-ubuntu-fail/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 03:40:26 +0000</pubDate>
		<dc:creator>小罗</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://robrohan.com/?p=1122</guid>
		<description><![CDATA[My move to Ubuntu as my main desktop OS has failed.  I still use Ubuntu at work as my main desktop OS, but for my home system, I am now back on Mac OS X.

&#8220;Death by 1000 cuts&#8221; is why.

If you&#8217;ve tried this before, or you&#8217;re in the Linux community, none of my reasons [...]]]></description>
			<content:encoded><![CDATA[<p>My move to Ubuntu as my main desktop OS has failed.  I still use Ubuntu at work as my main desktop OS, but for my home system, I am now back on Mac OS X.</p>

<p>&#8220;Death by 1000 cuts&#8221; is why.</p>

<p>If you&#8217;ve tried this before, or you&#8217;re in the Linux community, none of my reasons will be new to you.  However, to close out this attempt for my future reference / next attempt comparison I am going to quickly write up what did me in.</p>

<p><span id="more-1122"></span></p>

<p>Before I go into why, I want to say that Ubuntu is a usable OS.  It will likely suit a lot of people&#8217;s needs.   At work I use the shell, Eclipse, and firefox, but I was hoping that Ubuntu would come close to matching OS X for all my computer needs.  I would have stayed had the experience been even slightly close.</p>

<p>I am also going to say &#8220;Ubuntu&#8221; and &#8220;Linux&#8221; to mean &#8220;the system&#8221;.  I know that in reality some of this is with Gnome, or the package manager, or even separate apps, but I am going to just say &#8220;Ubuntu&#8221; to save time.</p>

<h2>Key bindings / System configuration</h2>

<p>To me, as a developer, the most important thing about a system is the keyboard.  I need to be able to type fast, and I need the system to do what I want, when I want, and how I want.</p>

<p>When I&#8217;ve had friends move to Mac in the past, I&#8217;ve helped them find key layout changers because I completely understand the need for ctrl+c vs. cmd+c (pinky vs. thumb),  I understand people that need vi bindings, people that need ctrl+p to print a document.  You get into a workflow, and you need the system to respect what you&#8217;re telling it to do.</p>

<p>Getting my keyboard to act the way I wanted it to turned out to be difficult to the point of not possible.</p>

<p>The Mac layout is perfect for me.  Emacs bindings in every text area, and cmd+[cvxz] for pasteboard operations.  This set up works fantastically in the terminal, in textmate, in every single application I use on OS X.</p>

<p>Gnome has a setting &#8211; I repeat, gnome has a setting &#8211; that lets you pick the keyboard layout of &#8220;Emacs&#8221;, and that works in some places. However, many, many applications disregard that setting completely and hard code key bindings into the application.  There is no way to get a consistent keyboard usage.</p>

<p>(Even Windows has an application that switches the system to emacs bindings, and that works far better than Ubuntu.)</p>

<p>Getting the system to swap ctrl and cmd didn&#8217;t work well either.  I could get the system to treat ctrl and command the same, but that just resulted in a mess.</p>

<p>I simply can not use a system where I can&#8217;t have the keyboard be the way I want it to be.  Apparently, that means I am stuck with Windows, Mac OS X, and Linux with no GUI (because emacs bindings work perfectly in a bash shell).</p>

<p>cut. cut. cut.</p>

<h2>Mouse clicks</h2>

<p>This one was probably caused by the fact I was installing Ubuntu onto a Macbook Pro, but to do a right click I had to use three fingers and a button click.  Two fingers and a click was a &#8220;middle mouse button click&#8221;.  To me this begs the question, how many mouse buttons do you need?  So many that 3 mouse buttons are assumed to be standard on a touch pad?</p>

<p>I can see if you&#8217;re running AutoCAD software, or a video game, or something along those lines, but isn&#8217;t two buttons quite enough for almost everyone?  It seems like you should have to go out of your way, or tick some setting, to enable a &#8220;middle mouse button&#8221; click.  It shouldn&#8217;t be the predominate de facto install.</p>

<p>In the end, I couldn&#8217;t figure out how to get two finger click to be a right click, and I just tried to live with three finger click (which caused the cursor to jump, or the desktop to switch desktops from time to time).</p>

<p>cut. cut.</p>

<h2>Copy and Paste</h2>

<p>Copy and paste is insane in Ubuntu.  If you just select some text it puts the text on your clipboard.</p>

<p>So, for example, say you want to paste over a misspelled / poorly used word.  You highlight the word, ctrl+c copy, open a dictionary, browser or something ctrl+v paste, and search.  You find the correct / better word and highlight it, ctrl+c copy, and flip back to your document.</p>

<p>Now if you are like most people I know, at this point you would do the following: Highlight the old, bad word, and ctrl+v paste the new one over top of it.</p>

<p>What this does on Ubuntu, however, is since you&#8217;ve gone and highlighted the bad word, you&#8217;ve put that word on your clipboard.  Now when you ctrl+v paste it re-pastes the bad word you were just trying to overwrite, and you lose the word you wanted in the first place.  How could this ever have been a good idea?  It&#8217;s crazy talk.</p>

<p>This comes up so many times. From overwriting things in the browser URL, to emails, to the terminal.  It&#8217;s infuriating.</p>

<p>cut. cut. cut. cut.</p>

<h2>Inconsistent work flow</h2>

<p>This is less of a problem and more of a nose scrunching &#8220;eh&#8221;.  However, it was still a straw on the camels back.</p>

<p>If I install Windows, Microsoft Office, and Visual Studio, I can be relatively sure they all behave more or less the same.  Moving from one app to the other doesn&#8217;t feel like I&#8217;ve moved to a different neighbourhood.  It&#8217;s obviously not perfect, but it&#8217;s still &#8211; I don&#8217;t know &#8211; still the same concept.  If I learn what&#8217;s going on in one the others are not that big of a mental leap.</p>

<p>Same thing with Mac Mail, Pages, Xcode, etc. They all &#8220;feel&#8221; the same, and while they have specific differences, they are all in the same &#8211; I don&#8217;t know &#8211; family?</p>

<p>Then you have Evolution / Thunderbird, Open Office, and Eclipse or whatever.  They feel cobbled together.  They use different widgets, have wildly different UIs, you can tell they are written in different languages.  I feel like I have to acclimatise myself every time I switch apps.</p>

<p>It&#8217;s bad because it causes some level of stress.  Not like, &#8220;oh there is a lion about to eat my children&#8221; kind of stress, but it&#8217;s distracting from the task at hand.</p>

<p>cut.</p>

<h2>Community</h2>

<p>Back in the day I used Debian for my main OS, and I work (and have worked) on a few open source projects.  I know that people who use open source software, in general, suck.</p>

<p>They submit bugs and write blog post that say asinine things like &#8220;I&#8217;ll never use <em>your</em> application until <em>you</em> do XYZ&#8221;.  As if being a dick is somehow helping you write software.  As if they are some kind of genius for pointing out flaws in something you&#8217;ve worked on for nights and weekend for 2 years and they&#8217;ve done nothing but act like a snarky, critiquing ass clown who hasn&#8217;t done anything meaningful in their life and haven&#8217;t contributed to society in the slightest&#8230; hum&#8230; wait a minute&#8230; ok, but not including this post mind you&#8230; er&#8230; where the heck did I put that mirror&#8230;</p>

<p>In any case, I understand the love / hate development style of open source &#8211; software in general I guess.  And dealing with &#8220;users&#8221; is a pain.  However, it somehow needs to happen, and in my limited experience it doesn&#8217;t.</p>

<p>Yes, there are forum, wikis, and READMEs and sometimes they are very helpful.  But somehow I think open source projects need to get community managers, or something.</p>

<p>For example (Dramatisation):</p>

<p>Me: &#8220;I need a replacement for Textmate on Linux&#8221;
Community: &#8220;gaflurfulX is a good replacement for Textmate&#8221;
Me: &#8220;I&#8217;ve tried it, but the emacs bindings don&#8217;t work&#8221;
Community: &#8220;Only crazy people use emacs bindings. too bad.&#8221;</p>

<p>&#8230; Later &#8230;</p>

<p>Me: &#8220;I think I&#8217;ve fixed the emacs bindings. You can fix it by doing QRS&#8221;
Community: silence
Me: &#8220;Ok, I think I found the bug tracker and submitted a patch&#8221;
Community: silence</p>

<p>I have no idea if it worked, or if it&#8217;ll be in the next release, or if it was completely off the mark.</p>

<p>So you have a situation where people don&#8217;t like to talk to users who don&#8217;t contribute back, but even if you contribute back there is no one to talk to you anyway.  It is, in my experience, <i>almost</i> as bad as trying to talk to Apple.</p>

<p>This of course is just one example, but the problem is &#8211; and I can&#8217;t believe I am saying this &#8211; you, as Joe Shmoe, might find it difficult to get things done in the open source community if you don&#8217;t like something about a project &#8211; even <i>if</i> you try to fix it yourself!</p>

<p>You <i>can</i> just take the open source code and fork it (which is great for companies to get free software (and pay independent developers absolutely nothing &#8211; thank you very much)).  You could make your own version and add whatever you want to it, but that is a ridiculous amount of work when all you want to do is&#8230; well&#8230; work.</p>

<p>So the long way around &#8211; do I pay <a href="http://illuminex.com/ecto/">ecto</a> $20 for blogging software, or wait till next summer when the <a href="http://blogtk.jayreding.com/">BloGTK</a> guy is going to have time to work on the new version?  (And ecto will support emacs bindings properly&#8230;)</p>

<h2>Lesson</h2>

<p>I am sure this sounds all negative and anti-Linux, but it&#8217;s not.  I love Linux.  I use it every day at work, I use it on my servers, I use it on EC2, and I use it on my netbook.</p>

<p>When I first started using Linux, it would often take a good two days to get X11 running correctly and at a decent resolution.  Half the time you couldn&#8217;t even get it installed without going to a users group.  The window managers were bare bones, and you had to search for days to get libraries to work together.  Today, you pop in a CD and that&#8217;s it.</p>

<p>Linux has come a long, long way in a very short time.  It looks to be very close to being a desktop replacement that is as good as or better than the current crop. Currently, however, it is not.</p>

<p>In my mind, the only way Linux will get over this last hurdle is if apps cost money.  I would gladly pay $15 for a blogging application on Linux if I knew it would work, and if I filed a bug report it would get read <i>and</i> responded too.</p>

<p>Open source is not equal to free, and currently developers have no incentive to do anything other than what they want.  While that may seem enticing to developers, it just winds up giving you an OS that can do 3D desktop cube rotations, but can&#8217;t handle a friggen keyboard mapping correctly.  I couldn&#8217;t care less that the windows can wobble; I just want copy and paste to work.</p>

<p>The only universal thing that makes a developer do something they would rather not do is if you give them money.  I hope that &#8220;Add/Remove&#8221; programs turns into something of an AppStore in the future. You should always be able to install anything from scratch, but herding cats shouldn&#8217;t be free of charge.</p>

<p>I&#8217;ll try again when Koala comes out, but for now I am back in the Walled Garden Cone of Silence.</p>
]]></content:encoded>
			<wfw:commentRss>http://robrohan.com/2009/08/15/move-to-ubuntu-fail/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Xiao CiDian Air 1.1 Released</title>
		<link>http://robrohan.com/2009/07/18/xiao-cidian-air-1-1-released/</link>
		<comments>http://robrohan.com/2009/07/18/xiao-cidian-air-1-1-released/#comments</comments>
		<pubDate>Sat, 18 Jul 2009 13:01:11 +0000</pubDate>
		<dc:creator>小罗</dc:creator>
				<category><![CDATA[Chinese]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://robrohan.com/?p=1112</guid>
		<description><![CDATA[I had a bit of free time today, and decided to add a few requested features to Xiao CiDian.  I just released 1.0 a few days ago, but these changes were quite simple, and I have had a few requests for these specific features.

The new version now has a preference screen where you can [...]]]></description>
			<content:encoded><![CDATA[<p>I had a bit of free time today, and decided to add a few requested features to Xiao CiDian.  I just released 1.0 a few days ago, but these changes were quite simple, and I have had a few requests for these specific features.</p>

<p>The new version now has a preference screen where you can toggle the following:</p>

<ul>
<li><p>Search by, and display simplified or traditional characters</p></li>
<li><p>The display of the HSK level</p></li>
<li><p>Have the application check for updates every day or every 5 days</p></li>
<li><p>Couple minor search bugs and a progress bar</p></li>
</ul>

<p>Here is a shot of the new preference screen:</p>

<div class="movie">
<img src="http://robrohan.com/wp-content/uploads/2009/07/Picture-1-18.jpg" height="534" width="450" border="1" hspace="4" vspace="4" alt="Xiao CiDian Preference screen" />
</div>

<p>If you have patience, you should get the update automatically in about five days.  Or if you&#8217;re excited about getting the new bits now you can upgrade manually by clicking the install badge on the <a href="http://xiaocidian.com">xiaocidian.com</a> web site.</p>

<p>Have fun</p>
]]></content:encoded>
			<wfw:commentRss>http://robrohan.com/2009/07/18/xiao-cidian-air-1-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
