<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">

    <title type="text">Feanorian</title>
    <subtitle type="text">Feanorian:Feanorian blog by Manung Han</subtitle>
    <link rel="alternate" type="text/html" href="http://www.feanorian.net/index.php/site/index/" />
    <link rel="self" type="application/atom+xml" href="http://www.feanorian.net/site/atom" />
    <updated>2011-12-20T22:28:17Z</updated>
    <rights>Copyright (c) 2011, manung</rights>
    <generator uri="http://expressionengine.com/" version="2.3.1">ExpressionEngine</generator>
    <id>tag:feanorian.net,2011:12:20</id>


    <entry>
      <title>Sublime Text and CoffeeScript</title>
      <link rel="alternate" type="text/html" href="http://www.feanorian.net/site/sublime_text_and_coffeescript" />
      <id>tag:feanorian.net,2011:index.php/site/index/1.18</id>
      <published>2011-12-20T23:52:16Z</published>
      <updated>2011-12-20T22:28:17Z</updated>
      <author>
            <name>manung</name>
            <email>manung@feanorian.net</email>
                  </author>

      <category term="Development"
        scheme="http://www.feanorian.net/site/C9"
        label="Development" />
      <category term="Web Development"
        scheme="http://www.feanorian.net/site/C14"
        label="Web Development" />
      <category term="Languages"
        scheme="http://www.feanorian.net/site/C15"
        label="Languages" />
      <category term="CoffeeScript"
        scheme="http://www.feanorian.net/site/C16"
        label="CoffeeScript" />
      <category term="Tools"
        scheme="http://www.feanorian.net/site/C5"
        label="Tools" />
      <category term="SublimeText"
        scheme="http://www.feanorian.net/site/C17"
        label="SublimeText" />
      <content type="html"><![CDATA[
        <p>I admit it. I have Text Editor compulsion. I have played around with many text editors on my Mac including vim, emacs, BBEdit and TextMate. So its no surprise I encountered <a href="http://www.sublimetext.com/2">Sublime Text 2</a> .&nbsp; Its a neat little editor in its infancy.</p>

<p>But as all neat little editors in its infancy go, it is a little premature.&nbsp; For example there is no out of the box <a href="http://jashkenas.github.com/coffee-script/">CoffeeScript</a> support.&nbsp; Since I have been hacking some CoffeeScript, I needed to correct this.&nbsp; So with some googling and the fact that Sublime Text supports <a href="http://macromates.com/">TextMate</a> bundles, I discovered how to start CoffeeScript development with Sublime Text.&nbsp; The following are my findings.</p>

<h2 id="syntaxhighlighting">Syntax Highlighting</h2>

<p>We will make use of <a href="https://github.com/jashkenas">Jeremy Ashkenas</a> <a href="https://github.com/jashkenas/coffee-script-tmbundle">CoffeeScript TextMate Bundle</a> to add syntax highlighting support.</p>

<ul>
<li>Create ~/Library/Application Support/Sublime Text 2/Packages/CoffeeScript/</li>
<li>Copy <a href="https://github.com/jashkenas/coffee-script-tmbundle/blob/master/Syntaxes/CoffeeScript.tmLanguage">CoffeeScript.tmLanguage</a> and <a href="https://github.com/jashkenas/coffee-script-tmbundle/blob/master/Preferences/CoffeeScript.tmPreferences">CoffeeScript.tmPreferences</a> to ~/Library/Application Support/Sublime Text 2/Packages/CoffeeScript/</li>
</ul>

<h2 id="buildsystem">Build System</h2>

<p>To setup the Sublime Text <a href="http://sublimetext.info/docs/en/reference/build_systems.html">Build System</a> to work with CoffeeScript you just need to create a file (CoffeeScript.sublime-build) with the following contents and place in ~/Library/Application Support/Sublime Text 2/Packages/User/</p>

<pre><code>{
    "cmd": ["coffee", "$file"],
    "selector" : "source.coffee",
    "path" : "/usr/local/bin"
}</code></pre>

<p>Note that I have CoffeeScript installed in /usr/local/bin on my Mac.&nbsp; Edit the above path appropriately to match your system.</p>

<h2 id="script">Script</h2>

<p>Obviously the above is aching to be automated so I hacked up a quick bash script and associated sublime build file.&nbsp; They can be found <a href="https://github.com/manung/sandbox/tree/master/scripts/sublimetext-coffeescript">here</a> in my git sandbox repo.</p>

<h2 id="credit">Credit</h2>

<p>Credit where credit is due.&nbsp; Much of the info from this post was garnered from the following sources:</p>

<p><a href="http://soenkerohde.com/2011/11/coffeescript-with-sublime-text/">http://soenkerohde.com/2011/11/coffeescript-with-sublime-text/</a><br />
<a href="http://www.sublimetext.com/forum/viewtopic.php?f=4&amp;t=2022">http://www.sublimetext.com/forum/viewtopic.php?f=4&amp;t=2022</a></p> 
      ]]></content>
    </entry>

    <entry>
      <title>Xcode 4 preview</title>
      <link rel="alternate" type="text/html" href="http://www.feanorian.net/site/xcode_4_preview" />
      <id>tag:feanorian.net,2010:index.php/site/index/1.12</id>
      <published>2010-07-23T11:10:41Z</published>
      <updated>2010-09-18T13:48:42Z</updated>
      <author>
            <name>manung</name>
            <email>manung@feanorian.net</email>
                  </author>

      <category term="Apple"
        scheme="http://www.feanorian.net/site/C11"
        label="Apple" />
      <category term="Development"
        scheme="http://www.feanorian.net/site/C9"
        label="Development" />
      <category term="iOS Development"
        scheme="http://www.feanorian.net/site/C12"
        label="iOS Development" />
      <category term="Mac Development"
        scheme="http://www.feanorian.net/site/C13"
        label="Mac Development" />
      <category term="Xcode"
        scheme="http://www.feanorian.net/site/C10"
        label="Xcode" />
      <content type="html"><![CDATA[
        <p>Apple released a <a href="http://developer.apple.com/technologies/tools/whats-new.html">developer preview</a> for the new Xcode 4.  In many ways its just catching up to Visual Studio but the new Jump Bar looks very useful.</p>

<p>All Apple needs now is a <a href="http://cocoawithlove.com/2010/07/is-virtual-machine-for-cocoa.html">VM</a> and maybe even a new <a href="http://arstechnica.com/apple/news/2010/06/copland-2010-revisited.ars/">language</a>.</p>
 
      ]]></content>
    </entry>

    <entry>
      <title>Josh Smith gets schooled by an MVVM practitioner</title>
      <link rel="alternate" type="text/html" href="http://www.feanorian.net/site/josh_smith_gets_schooled_by_an_mvvm_practitioner" />
      <id>tag:feanorian.net,2010:index.php/site/index/1.11</id>
      <published>2010-05-24T13:23:51Z</published>
      <updated>2010-05-24T10:32:52Z</updated>
      <author>
            <name>manung</name>
            <email>manung@feanorian.net</email>
                  </author>

      <category term="Development"
        scheme="http://www.feanorian.net/site/C9"
        label="Development" />
      <content type="html"><![CDATA[
        <p>The latest post by Josh Smith gave me a chuckle: <a href="http://joshsmithonwpf.wordpress.com/2010/05/23/the-mvvm-twilight-zone/">The MVVM Twilight Zone</a></p>
 
      ]]></content>
    </entry>

    <entry>
      <title>Backup is a go go go</title>
      <link rel="alternate" type="text/html" href="http://www.feanorian.net/site/backup_is_a_go_go_go" />
      <id>tag:feanorian.net,2010:index.php/site/index/1.7</id>
      <published>2010-03-26T00:33:59Z</published>
      <updated>2010-03-25T20:36:00Z</updated>
      <author>
            <name>manung</name>
            <email>manung@feanorian.net</email>
                  </author>

      <category term="Tech"
        scheme="http://www.feanorian.net/site/C7"
        label="Tech" />
      <content type="html"><![CDATA[
        <h3>The background</h3>

	<p>There is a saying that a piece of data does not exist unless there are three copies of that data. I have always agreed with that principle, but always came short of actually adhering to it. I used local backup solutions to make two copies of my data, but making that third copy was always deferred for later. Well in part because its been sitting in my OmniFocus todo list, my vacation starting this week, and also being inspired by <a href="http://www.lab49.com">Lab49</a> colleague Martin Harris&#8217;s post <a href="http://martinaharris.com/2010/03/diary-backup-pt1/">Diary of a cloud backup</a> I have finally decided to make that third copy with a offline backup solution.  Lets first see what the current setup looks like.</p>

	<h3>The setup</h3>

	<p>So I have three macs in the household that has important enough data to be backed up:</p>

	<p><strong>Mac Pro</strong> – The Mac Pro is my main desktop machine.  It has ~300GB of files consisting of documents, music, <span class="caps">RAW</span> photos, and <span class="caps">AVCHD</span> video (this is the big one) that needs backing up.  It is currently setup with Time Machine backing up to an attached <a href="http://www.drobo.com/">Drobo</a> with 1.8TB of space.  The Drobo gives it it a bit more safety since the data will survive one HD going bad.</p>

	<p><strong>iMac</strong> – The iMac is my wife&#8217;s desktop machine.  It has ~400GB of files mostly consisting of <span class="caps">AVCHD</span> video (taking video of your daughter is quite expensive indeed!).  It also has Time Machine backing up to external HD enclosure with 2 1TB drives in a <span class="caps">RAID</span> 1 (mirrored) configuration.</p>

	<p><strong>MacBook Pro</strong> – The MacBook Pro acts as an extension to the Mac Pro. Active documents and files are synchronized using <a href="http://www.dropbox.com/">Dropbox</a>. Non active documents and files are synchronized on a demand basis using <a href="http://www.cis.upenn.edu/~bcpierce/unison/">unison</a>.  It has no backup strategy since its basically a mirror of the Mac Pro and the backups get done on that box.</p>

	<h3>The reqs</h3>

	<p>As Martin Harris stated a third offsite copy is crucial to be truly safe in case of environmental disaster or theft.  Given my current setup I had the following requirements:</p>

	<ul>
		<li>700GB of data</li>
		<li>Run on at least 2 Macs</li>
	</ul>

	<p>Some other considerations in a backup service:</p>

	<ul>
		<li>Versions of files – Allow you to recover previous versions of modified or deleted files.  Not really important for me, since my Time Machine backup handle this.</li>
		<li>Encryption of data – Ensure privacy by securing the session used to backup, and the data in storage.</li>
		<li>Reliable storage – The online storage storing your data should be reliable.  At least make sure the backup service uses <span class="caps">RAID</span> to protect against hardware failure.</li>
		<li>Backup control – Controls to backup data when you want and as fast as your want. Features should include idling during computer usage, caps on upload, and scheduling.</li>
		<li>Recovery support – Include considerations such as time to recover, availability of physical recovery media, granularity of recovery.  Again not super important for me since I am using the service as primarily a disaster recovery service.  But even in this case having a physical recovery media option is a nice to have, and time to recover should be too long.</li>
		<li>Interface – Nice intuitive UI is always a plus but not necessarily crucial for a backup service.</li>
	</ul>

	<h3>The cost</h3>

	<p>I checked out the plans for for <a href="http://b4.crashplan.com/landing/index.html">Crashplan</a>, <a href="http://www.memopal.com/en/">memopal</a>, <a href="http://www.carbonite.com/">Carbonite</a>, and <a href="http://mozy.com/">Mozy</a>. It seems if you are in the sweetspot of having 1 computer with about 200GB of data to backup you can find solutions ranging from free to ~$50/yr. </p>

	<p>Both Carbonite and Mozy have unlimited storage plans per computer for ~$50.  Memopal costs around $380 for backing up 700GB of data.  </p>

	<p>Crashplan has an unlimited computer and storage plan for $100 a year. Given my storage and computer requirements and since it since it met most of my other considerations above Crashplan seemed to be a good choice for a trial.</p>

	<h3>The settings</h3>

	<p>I decided to trial Crashplan with a ~50GB backup (54.1GB to be exact).  Crashplan allows you to tailor the backup to put it on a schedule, and control <span class="caps">CPU</span> and network utilization.  I have a 30/5 Mbps cable connection and for the first test ran the backup with these settings:</p>

	<ul>
		<li>CrashPlan will run: Always</li>
		<li>Limit when away: 2Mbps</li>
		<li>Limit when present: 200 kbps</li>
	</ul>

	<h3>The checkpoint &#8211; 7.75 GB/day</h3>

	<ul>
		<li>3/21/10 6:45pm – 54.1 GB Backup started</li>
		<li>3/24/10 7:00pm – 31 GB backed up, currently going at ~200kbps</li>
	</ul>

	<p>So as of the first checkpoint Crashplan is going at a rate of 7.75GB a day which is roughly 720 kbps.  Which does fall in between the present limit and away limit of 200kbps and 2Mbps respectively. It seems on the slow side, and extrapolating it would take about 3 months to backup the entire 700GB.</p>

	<h3>The next steps</h3>

	<p>At 2 Mbps Crashplan should backup at a theoretical rate of 21.6 GB/day or 700GB in about 33days. Obviously that would require some ideal conditions such as ensuring that no other computers are using the connection and a guaranteed upload bandwidth from your <span class="caps">ISP</span>.  But I should be able to come close with a 5 Mbps upload connection. As an experiment I am changing the backup settings to the following for the next checkpoint:</p>

	<ul>
		<li>Limit when away: 2.5Mbps</li>
		<li>Limit when present: 2Mbps</li>
	</ul>

	<p>Hopefully that shouldn&#8217;t saturate my connection too much.</p> 
      ]]></content>
    </entry>

    <entry>
      <title>Bloomberg makeover thoughts</title>
      <link rel="alternate" type="text/html" href="http://www.feanorian.net/site/bloomberg_makeover_thoughts" />
      <id>tag:feanorian.net,2010:index.php/site/index/1.8</id>
      <published>2010-03-25T17:22:24Z</published>
      <updated>2011-09-03T21:52:25Z</updated>
      <author>
            <name>manung</name>
            <email>manung@feanorian.net</email>
                  </author>

      <category term="UX"
        scheme="http://www.feanorian.net/site/C6"
        label="UX" />
      <content type="html"><![CDATA[
        <p>Dominique Leca for UX Magazine in <a href="http://uxmag.com/design/the-impossible-bloomberg-makeover">The Impossible Bloomberg Makeover</a> describes the challenges in redesigning the Bloomberg terminal. The basic gist of the article being that Bloomberg users do not want a more efficient experience and have locked-in to Bloomberg&#8217;s complex interface to maintain a status.  The article is worth reading especially since it links to <span class="caps">IDEO</span>s proposed redesign from 2007.</p>

	<p>The first time I used a Bloomberg terminal, I was taken aback by the interface and its steep learning curve. I am not a UX designer (<span class="caps">IANAUXD</span>), but wouldn&#8217;t a redesign of a complex system carry a risk of imposing a loss of productivity on its users? The Bloomberg terminal given its warts is extremely powerful and experienced users of the system would have ingrained usage patterns into there brain and muscle memory. Inertia from users does come to play here but a good redesign of a system with an established user base needs to take this into account.</p>

	<p>Anyway with some competition from Single Dealer Platforms (<span class="caps">SDP</span>) with slick UX, as exemplified by Morgan Stanley&#8217;s Matrix, who is to say that Bloomberg is not redesigning there terminal right now?</p> 
      ]]></content>
    </entry>

    <entry>
      <title>Code Bubbles</title>
      <link rel="alternate" type="text/html" href="http://www.feanorian.net/site/code_bubbles" />
      <id>tag:feanorian.net,2010:index.php/site/index/1.5</id>
      <published>2010-03-13T23:59:18Z</published>
      <updated>2011-09-03T21:48:19Z</updated>
      <author>
            <name>manung</name>
            <email>manung@feanorian.net</email>
                  </author>

      <category term="Tools"
        scheme="http://www.feanorian.net/site/C5"
        label="Tools" />
      <content type="html"><![CDATA[
        Modern software programming paradigms and styles introduce layers and abstractions which divide functionality into multiple fragments of code. You no longer have monolithic codebases in which a programmer only needs to deal with only a few code files at a time.<br />
<br />
I just ran into the <a href="http://www.cs.brown.edu/people/acb/codebubbles_site.htm">Code Bubbles</a> project, which abstracts aways the file and exposes code and documentations as arrangeable code bubbles on a expandable canvas.  Its an interesting idea worth exploring and experimenting with.<br />
<br />
Probably will need to check out the beta and play with it a bit. 
      ]]></content>
    </entry>


</feed>
