<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Object Mentor Blog: vih</title>
    <link>http://blog.objectmentor.com/articles/2009/08/14/vih</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>vih</title>
      <description>&lt;p&gt;Over the past few days, I&amp;#8217;ve been tinkering with a little project I&amp;#8217;ve called vih &amp;#8211; it&amp;#8217;s a vi clone written in Haskell.  Here&amp;#8217;s the &lt;a href=http://github.com/michaelfeathers/vih/tree/master&gt;git repo&lt;/a&gt;.  

&lt;p&gt;The way I&amp;#8217;ve started it is rather naive, and frankly I&amp;#8217;m surprised I that I had gotten as far as I did without curses and with the simple data structure I choose.  Rather than using a clever representation for a buffer, I decided to just use a &lt;code&gt;String&lt;/code&gt;.  What this means is that every time a character is inserted into a buffer, the whole thing is split and reconstituted.  I&amp;#8217;m not using &lt;code&gt;Data.ByteString&lt;/code&gt; or &lt;code&gt;Data.ByteString.Lazy&lt;/code&gt; either.  I suppose that I&amp;#8217;ll move toward a more sensible data structure in a while but right now typing is comfortable even with all of that work going on.

&lt;p&gt;My intention in doing this was to start to get a sense of how data structures evolve in Haskell by growing something large from a small seed. The primary data structure that I&amp;#8217;m using right now is called &lt;code&gt;EditBuffer&lt;/code&gt; and I notice that quite a few of my functions translate an &lt;code&gt;EditBuffer&lt;/code&gt; to another &lt;code&gt;EditBuffer&lt;/code&gt;.  This seems to work fine, however I find that I almost always have to label the buffer in the argument list and deconstruct it.  I haven&amp;#8217;t seen pervasive use of labels like that in Haskell code I&amp;#8217;ve looked at, so I&amp;#8217;m wondering if my mapping of functions to data structures is odd.

	&lt;p&gt;Right now, vih supports insert and command mode (toggled with &amp;#8216;i&amp;#8217; and &amp;#8216;ESC&amp;#8217;), the h, j, k, l cursor movements, line deletion with &amp;#8216;dd&amp;#8217;, home with &amp;#8216;gg&amp;#8217;, end of file with &amp;#8216;G&amp;#8217;, `in line&amp;#8217; positioning with &amp;#8216;0&amp;#8217; and &amp;#8217;$&amp;#8217;, insert new line after with &amp;#8216;o&amp;#8217;, and delete current char with &amp;#8216;x&amp;#8217;.  No file I/O yet.&lt;/p&gt;


	&lt;p&gt;Have a look, fork or contribute.&lt;/p&gt;</description>
      <pubDate>Fri, 14 Aug 2009 00:31:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:f3bac35e-0d49-47f6-b231-e95ad3293df1</guid>
      <author>Michael Feathers</author>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih</link>
      <category>Michaels Musings</category>
    </item>
    <item>
      <title>"vih" by http://www.handbagsoutle.com</title>
      <description>&lt;p&gt;coach poppyBut Mr. Hsu dinner last night so good for you , there is also the night before. Zhou Chen-chen to find evidence.&lt;/p&gt;</description>
      <pubDate>Sun, 05 Feb 2012 20:47:54 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:e65d2a3b-1662-4a7f-90a9-8eddc5e71148</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-201853</link>
    </item>
    <item>
      <title>"vih" by Microsoft Office</title>
      <description>&lt;p&gt;This article is GREAT it can be EXCELLENT JOB and what a great tool!&lt;/p&gt;</description>
      <pubDate>Fri, 13 Jan 2012 20:55:34 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:216242f8-94f2-45dc-96e7-080b55bd41e8</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-197763</link>
    </item>
    <item>
      <title>"vih" by Backup iphone sms</title>
      <description>&lt;p&gt;What a big suprise that so many user don&amp;#8217;t know how to backup it.&lt;/p&gt;</description>
      <pubDate>Sat, 07 Jan 2012 06:17:26 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:7c8da331-30e4-4381-8b50-e7e4c35ad114</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-195899</link>
    </item>
    <item>
      <title>"vih" by Impressive Resume</title>
      <description>&lt;p&gt;What a wonderful site the article was so well written.
I hope to see more of this soon.Keep up the good work.
Looking for the best impressive resume for a great job,just visit my site.&lt;/p&gt;</description>
      <pubDate>Wed, 21 Dec 2011 01:09:30 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:6b53cc03-591e-45e9-8cf2-0c0c8af36649</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-190112</link>
    </item>
    <item>
      <title>"vih" by  Limos Brisbane  </title>
      <description>&lt;p&gt;Thank you for putting such a wonderful effort on this post.. I really enjoyed reading about.&lt;a href="http://www.limohirebrisbaneqld.com.au/" rel="nofollow"&gt;Limos Brisbane&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 04 Dec 2011 23:33:33 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:2e32dc72-39cf-4025-9f8c-f5d3dd0a2110</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-181794</link>
    </item>
    <item>
      <title>"vih" by Brisbane Limo Hire </title>
      <description>&lt;p&gt;Thank you for putting such a wonderful effort on this post.. I really enjoyed reading about. &lt;a href="http://www.brisbanelimousinehire.net.au/" rel="nofollow"&gt;Brisbane Limo Hire&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 04 Dec 2011 23:31:28 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:e6d6f25e-5f3e-46c4-a41a-05049d151517</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-181793</link>
    </item>
    <item>
      <title>"vih" by christian louboutin</title>
      <description>&lt;p&gt;Thank you for putting such a wonderful effort on this post.. I really enjoyed reading about.&lt;/p&gt;</description>
      <pubDate>Fri, 04 Nov 2011 20:15:07 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:01068d1b-c78e-47aa-b4f0-53e4f8630268</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-168380</link>
    </item>
    <item>
      <title>"vih" by seo lahore</title>
      <description>&lt;p&gt;Hi! Friend I am Starting a New Site in Totally Fully Categories.So Please Help Me And Link Me a Site .Please For Checking Site Detail visit:
        &lt;a href="http://seoexpertlahore.blogspot.com" rel="nofollow"&gt;SEO Expert&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 04 Nov 2011 07:17:27 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:d533c585-24f7-4716-b1c6-8a9644e5dd4d</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-168307</link>
    </item>
    <item>
      <title>"vih" by huchunhuafanzhenfu</title>
      <description>&lt;p&gt;&lt;a href="http://www.lvoutletsale2001.com" rel="nofollow"&gt;Louis Vuitton Outlet Store&lt;/a&gt; in contrast to if buying throughout local shops, you can save far more if you discover this suit carrier online. There are tons with internet shopping sites marketing garment plus louis vuitton rolling eole m93553 within lower prices to catch the attention of more buyers. Therefore, employ this opportunity to look for suit hand louis vuitton rolling eole m93553 in deal prices.&lt;a href="http://www.lvoutletsale2001.com" rel="nofollow"&gt;Louis Vuitton Outlet Online &lt;/a&gt; This really is another practical buying avenue to discover affordable louis vuitton coming eole m93553 for agrees with. Visit reputable auction web sites, such as Ebay and also Amazon, to discover louis vuitton rolling eole m93553 that are currently upward for maximum taker. Make sure to make a good bidding price in case however, you find a louis vuitton coming eole m93553 style that will interests you. Keep in mind buyer work by getting the most beneficial and most sensible rates for bids through interested customers.&lt;br&gt;Bids generally start really low so you will surely be able to get a reasonable price for this auctioned suit garment carrier.&lt;/p&gt;</description>
      <pubDate>Fri, 04 Nov 2011 03:16:51 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:e5f1fb38-4b6e-4f6a-bdec-2d232b5a4323</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-168107</link>
    </item>
    <item>
      <title>"vih" by HTC Wallpaper</title>
      <description>&lt;p&gt;I truly learned about almost all of this, but with that in mind, I still assumed it was useful. Excellent job!&lt;/p&gt;</description>
      <pubDate>Wed, 19 Oct 2011 06:03:08 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:884fd901-7083-49ed-a7cc-80139b74b3a2</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-159741</link>
    </item>
    <item>
      <title>"vih" by ysbearing/yisong@1stbearing.com</title>
      <description>&lt;p&gt;Slewing bearing called slewing ring bearings, is a comprehensive load to bear a large bearing, can bear large axial, radial load and overturning moment. &lt;a href="http://www.1stbearing.com" rel="nofollow"&gt;http://www.1stbearing.com&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 19 Oct 2011 01:50:51 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:54238d4a-6d37-4c4d-8534-1d4207a0b9d3</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-159346</link>
    </item>
    <item>
      <title>"vih" by Wound Dressings</title>
      <description>&lt;p&gt;Thank you for putting such a wonderful effort on this post.. I really enjoyed reading about.&lt;/p&gt;</description>
      <pubDate>Sun, 16 Oct 2011 10:04:28 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:8eb977cb-08ae-40d7-a337-e88b3cb8f892</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-157404</link>
    </item>
    <item>
      <title>"vih" by MTS Converter</title>
      <description>&lt;p&gt;&amp;#8220;I&amp;#8217;m aware of the fact that if there&amp;#8217;s a plane in the sky and it&amp;#8217;s over Manhattan and it&amp;#8217;s close to the anniversary of Sept. 11 it&amp;#8217;s a connection people might make,&amp;#8221; she said. &amp;#8220;I wanted to wait long enough after the anniversary that people wouldn&amp;#8217;t make that connections but I can see how they could.&amp;#8221;  &lt;a href="http://www.mtsconverter.jp" rel="nofollow"&gt;MTS??&lt;/a&gt;  Plans for the skywriting were announced ahead of time , with Beck encouraging witnesses to email her photos. She was inspired by the &amp;#8220;Surrender Dorothy&amp;#8221; skywritten message in &amp;#8220;The Wizard of Oz.&amp;#8221; &lt;a href="http://www.mtsconverter.jp/mts-converter-for-mac.htm" rel="nofollow"&gt;MTS??Mac&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 11 Oct 2011 00:59:40 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:abb3508c-11ba-40dd-a451-490bdaaa835b</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-154045</link>
    </item>
    <item>
      <title>"vih" by Airport Transfer Sydney</title>
      <description>&lt;p&gt;Hundreds of businessmen are looking for premium quality article distribution services that can be able to carry out SEO of the best standards!&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://airporttransfersydney.com.au" rel="nofollow"&gt;Airport Transfer Sydney&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 28 Sep 2011 21:06:29 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:4aa3b406-abca-4929-8bbe-053e4e65424b</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-147036</link>
    </item>
    <item>
      <title>"vih" by coban</title>
      <description>&lt;p&gt;I really find a good blog, which is informative and also interesting.I really enjoyed by reading your blog.&lt;/p&gt;</description>
      <pubDate>Mon, 26 Sep 2011 13:33:40 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:4e926f49-8441-488b-a06d-7ff4c9848d01</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-145397</link>
    </item>
    <item>
      <title>"vih" by canada goose coat</title>
      <description>&lt;p&gt;&lt;a href="http://www.shopcanadagoosejackets.com/canada-goose-expedition-parka-c-2.html" rel="nofollow"&gt;Canada Goose Outlet&lt;/a&gt;
is Marmot 8000M Parka. The Marmot 8000M Parka is really a waterproof, breathable jacket with 800 fill &lt;a href="http://www.shopcanadagoosejackets.com/canada-goose-youth-parka-c-7.html" rel="nofollow"&gt;canada goose jacket&lt;/a&gt; feathers. It truly is design and light colored shell is produced for trendy, but uncomplicated, protection from cold temperatures. Reinforced shoulders, elbows and adjustable waist and hem make the Marmot a perfect alternate for skiing and other outdoor sports that want fairly a bit of arm motion. The 8000M Parka weighs three lbs., comes in bonfire and black colours and might be stuffed and stored like a sleeping bag to your convenience.This is one of well-know and prime down jacket brands.Hope our friends like its!Like &lt;a href="http://www.shopcanadagoosejackets.com/canada-goose-womens-c-8.html" rel="nofollow"&gt;canada goose womens&lt;/a&gt; and &lt;a href="http://www.shopcanadagoosejackets.com/canada-goose-expedition-parka-c-2.html" rel="nofollow"&gt;Canada Goose Expedition Parka&lt;/a&gt;.There are &lt;a href="http://www.shopcanadagoosejackets.com/" rel="nofollow"&gt;wholesale canada goose&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Mon, 19 Sep 2011 02:22:51 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:5d804f48-1ca9-4171-b781-9feba0798e4e</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-142642</link>
    </item>
    <item>
      <title>"vih" by Diablo3</title>
      <description>&lt;p&gt;hmm ,i&amp;#8217;m not sure if this is what i&amp;#8217;m looking for but anyway this is interresting and could be useful some day,thanks for taking time to write such cool stuff&lt;/p&gt;</description>
      <pubDate>Wed, 14 Sep 2011 14:30:50 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:39c4b09f-e146-4368-996c-602cdd843c48</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-140293</link>
    </item>
    <item>
      <title>"vih" by Mental Disorders List</title>
      <description>&lt;p&gt;The article is wonderfully written and the way
the points were sent across is very understandable. I loved it.&lt;/p&gt;</description>
      <pubDate>Tue, 13 Sep 2011 21:17:46 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:3655c79d-7f30-404a-86fd-5326b509e119</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-139857</link>
    </item>
    <item>
      <title>"vih" by Lice Pictures</title>
      <description>&lt;p&gt;great post.thank you so much.i love it!&lt;/p&gt;</description>
      <pubDate>Tue, 13 Sep 2011 20:59:12 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:248f3d26-a9e4-4513-95ba-6fa73052b68a</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-139783</link>
    </item>
    <item>
      <title>"vih" by Cheap Comics</title>
      <description>&lt;p&gt;Your blog is informative and brilliant. Keep it up!&lt;/p&gt;</description>
      <pubDate>Tue, 30 Aug 2011 22:02:27 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:ebfcf5f7-2da6-457b-a133-b05db9543d3b</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-134503</link>
    </item>
    <item>
      <title>"vih" by santiago</title>
      <description>&lt;p&gt;Very interesting article. Content has been written in very nice manner. I enjoy reading this kind of stuff. Thanks for sharing good knowledge.&lt;/p&gt;</description>
      <pubDate>Mon, 22 Aug 2011 04:00:40 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:1c2ecad2-e655-4317-9ecb-80064de0527c</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-131168</link>
    </item>
    <item>
      <title>"vih" by pandora bracelets</title>
      <description>&lt;p&gt;These articles written too great,they rich contents ma le scarpe non ti donano. meglio dei sandali con stringe pi&#249; sottili e caviglia libera Perfect!  and data accurately.they are help to me.I expect to see your new share.&lt;/p&gt;</description>
      <pubDate>Fri, 19 Aug 2011 00:44:42 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:5a5e242b-b961-47b9-ba1d-ea971817890e</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-129669</link>
    </item>
    <item>
      <title>"vih" by http://www.moving-pods.org</title>
      <description>&lt;p&gt;Too cool giving us useful pointers! All good points worth looking into. Perhaps I ought to think about trying this myself. Thanks&lt;/p&gt;</description>
      <pubDate>Thu, 18 Aug 2011 22:28:51 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:5d29f398-3f4b-4c0a-b3b8-864562a041c9</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-129592</link>
    </item>
    <item>
      <title>"vih" by Cloudor</title>
      <description>&lt;p&gt;wow, so cool ! | &lt;a href="http://www.backpackunion.com/category/laptop-backpacks" rel="nofollow"&gt;Swiss Ger Backpack&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 18 Aug 2011 20:15:56 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:afbe23e8-6225-4266-aed2-55f407ffd8cb</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-129553</link>
    </item>
    <item>
      <title>"vih" by MyHTC</title>
      <description>&lt;p&gt;applaud your efforts. It appears to me that this is a learning experience for you. So, I think you should continue and don&#8217;t worry about contributing to another, mature project. If you later decide you&#8217;ve learned enough, then go for that angle.&lt;/p&gt;</description>
      <pubDate>Thu, 18 Aug 2011 00:02:17 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:c94a0750-6984-4564-9b77-9c87914eec88</guid>
      <link>http://blog.objectmentor.com/articles/2009/08/14/vih#comment-129203</link>
    </item>
  </channel>
</rss>

