Category: Technology

Reconsidering Vim

NOTE: This post is not about the editor war — so please don’t try to start one either.

First, some background. Lets just say that I lost my editor virginity to Vim. It was a brief, but violent introduction — the modal editing was too unfamiliar, the learning curve too steep. After dabbling with a few other conventional editors (such as KWrite), I settled upon Emacs (XEmacs actually, but thats another story).

For the next three years, I tweaked my .emacs file, fiddled around with settings and plugins and modes, played games and browsed the web, checked my email and newsgroups, all within the comfortable confines of Emacs. But I was getting wary of the long startup times and (at that time) the inability to use the same interface and features in console mode (such as over SSH) as in GUI mode. It was time to move on.

I rediscovered Vim around 6 years ago. I started with a clean slate. As the saying goes, Emacs is an operating system that also happens to have an editor in it. The relatively more focused feature set of Vim was refreshing in comparison. I loved that I could work in GUI mode, save my session, go back home and resume my session in a terminal over SSH, which the exact same interface and keybindings. I quickly became very productive with Vim, and over the years have honed my plugins, settings and color themes to just how I like them.

But recently, I’ve been thinking about this again, and I might just reconsider Vim. I highly recommend reading these two blog posts to better understand where I’m coming from:

Don’t get me wrong — I think Vim still has a lot to offer. But, I can not deny that Vim is not what I would call a “forward looking editor.” Here’s why:

  • Development community: the Emacs development community is a lot more open and vibrant right now than the Vim community. Part of this has to do with the BDFL model in Vim. Bram Moolenar has done a tremendous job in bringing Vim to the stage where it is. People can and have forked Vim in the past. But for one reason or another, Vim has stayed Vim, and its development trajectory has been slow and incremental.
  • Source code: Vim’s source code is not clean. At all. I just briefly skimmed over the source tree for Emacs 23, and it looks a lot more understandable and well structured.
  • Architecture: Vim 7 finally got spell check. But the spell check does not use any of the existing tools or formats. Vim has its own scripting language, with its own interpreter, grammer and data structures. Why not just use one of the many wonderful programming languages out there? Yes, there are interfaces to allow writing Vim code in Python, Ruby, Perl etc. But why reinvent the wheel all over again?

When Bram Moolenaar — the lead developer of Vim –  joined Google, I had hoped that Vim would generate a lot more interest and enthusiasm. But so far, it hasn’t changed much.

And so, in the next few weeks, I’m going to take another look at Vim as well as Emacs. I’ll try to do an objective evaluation of where the editors stand today, where I perceive they are headed. I hope to make my decision on whether to move away from Vim or not by the end of this year.

Reblog this post [with Zemanta]

The Bay Bridge Project

If you live in the Bay Area, you have no doubt been reminded countless number of times in the past few weeks — on radio, television, road signs and bill board etc — that the Bay Bridge is closed over the Labor Day weekend. For a long time I was under the impression that the closure was for some routine maintainance. But when I found out about the actual reason for the closure, I was intrigued. The more I learnt about the Bay Bridge, and this project, I was more and more impressed by the sheer amount of engineering involved in the whole enterprise.

Bay Bridge closure

The Transbay blog has a great post on the closure. Of course, baybridgeinfo.org is the go-to site for the all things Bay Bridge related, including live construction cams, videos and a lot lot more.

Here is some trivia about the Bay Bridge:

  • It is the first construction project to be showed in Google Earth.
  • The tunnel through Yerba Buena Island is the largest bore tunnel in the world: 76-feet wide x 58-feet high.
  • Depth of deepest pier on existing East Span—the deepest pier of its time!: 242 feet—70 feet water and 170 feet mud.
  • Amount of wire: 18,500 tons
  • Amount of paint: 200,000 gallons
  • Daily average number of vehicles that use the Bay Bridge: 280,000
Bay Bridge in Google Earth
Bay Bridge in Google Earth

VEE 2010 Call for Papers

I am on the program committee for the 2010 International Conference on Virtual Execution Environments (VEE ’10). What is this conference on? From the website:

Virtualization, broadly speaking, is a recognition of the adage that any problem in computer science can be solved through the introduction of an additional layer of indirection.  The technique is applied to modern systems at many interfaces, from hardware (Xen, VMware), to OS system calls (VServers, Jails), to high-level language run times (Java, Python).  While these approaches differ dramatically in implementation, they provide similar benefits and often must tackle related challenges.

The 2010 ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments brings together researchers across the many applications of virtualization in today’s systems.  We invite original papers on topics relating to virtualization — especially those that will have broad appeal across these approaches. Topics of interest include, but are not limited to, the following areas:

  • Design and implementation of the virtualization layer,
  • The use of virtualization to provide novel functionality, such as high availability, enhanced security and dependability,
  • Challenges in applying virtualization in new environments, such as unusual architectures, real-time constraints, and very large scales,
  • Novel virtualization techniques to support cloud computing,
  • Development and debugging for virtual environments, such as record/replay debugging and omniscience,
  • I/O concerns specific to virtualization,
  • Experience reports from deployments of virtualized environments,

In short, the conference is broadly interested in lessons from virtualization that will apply to a wide range of researchers as well as the novel use of virtualization techniques to solve practical problems.

Here are the important dates:

Submission   : November 9, 2009
Notification : February 5, 2010
Camera Ready : March 4, 2010

Detailed submission guidelines and instructions are available on the conference website (http://vee2010.cs.princeton.edu/).

Reblog this post [with Zemanta]

Google (Contacts, Mail, Talk) confusion

Image representing Google Talk as depicted in ...
Image via CrunchBase

When Gmail first introduced the ability to import Contacts, I prompty exported my addressbook from KAddressbook. And then I mostly forgot about it, until recently. In the meantime, Google happily kept adding “suggested” contacts to my addressbook.

I decided to revisit my Google Contacts after reading some blog posts about new functionality. Sure enough, Contacts now even has its own URL (google.com/contacts). I figured this was a good time to clean out the contact and start from scratch with a clean list not polluted by the automatic suggested contacts. So I went ahead and deleted all the contacts and re-imported them from my desktop address book.

Surprisingly, there are weird interactions between my Google Contacts, and my Google Talk buddy list. A lot of people on my buddy list silently disappeared, without any kind of message or confirmation from either GMail, Talk or Contacts. And since then, my attempts to add back all the deleted buddies has failed miserably. Every time I add someone to my list, they show up just fine, but if I log out and log back in, they are usually not there.

What is even worse, this behavior is non-determinstic. Some additions persist across multiple sessions, while others are more ephemeral. I still don’t know exactly what the interaction between these three properties is, but it is very confusing. Google should clarify this more — what exactly is the impact of modifying my Contacts on things like Google Talk etc?

Reblog this post [with Zemanta]

Angies List

Ever since I moved to the bay area and joined Aster, I have started listening to KQED in my commute. The best thing about public radio stations is that they you don’t feel like ripping your hair out just listening to commercials. They do have some advertising, but it usually doesn’t show up on my radar.

Over the past few weeks, one particular commercial caught my attention: the one for Angie’s List. The ad proclaims Angies List to be the go-to destination for customer reviews on movers, painters, lawyers, doctors and more. What a great idea, I thought. So one day as soon as I got home, I decided to check them out.

Angie's List

The first thing that hit me was that it is a paid site. I would need to sign up as a member and pay subscription fee. Bummer! Don’t get me wrong, I think websites reserve the right to charge for whatever services they want. But in this case, I did not really see the value that Angies List itself was adding.

According to them, here are the top 3 reasons why I would use Angies List (as seen in the quick tour):

  1. Service providers don’t (or can not) pay to appear on the list
  2. They receive over 5000 reports each month
  3. They have information on over 250 types of services

Hmm, lets see. AFAIK, service providers don’t (or can not) pay to appear on either Yelp or Craigs list. I’m pretty sure Yelp receives way more than 5000 reviews each month. And both Yelp and Craigslist have more than enough categories as far as I am concerned.

At the end of the day, the value of the site like Angie’s List, depends on the quality of the reviews. Since the content is user generated anyways, I don’t see how Angie’s List can claim a higher quality than Yelp reviews. Just becase I paid a hefty fee does not incentivize me to actually write a detailed and thoughtful review. In fact, since I paid, I just want to get access to lots of high quality reviews, not worry about writing them.

Yelp

I have seen “Yelp loves us” badges on several restaurants. I have yet to see an Angie’s List badge anywhere. On Yelp, because it is open to anyone, people are recognized for their reviews. What is the reputation model in Angie’s List?

I digged some more on their website and found these nuggets (non-italicized text is mine):

Angie’s List is better than free review sites:

  • No anonymous reviews. Really? In some sense, Yelp reviews are not anonymous either. On the other hand, if you are going to force me to reveal my real name etc on the site, I would consider it a loss of privacy. Besides, what does this buy us?
  • Certified data collection process prevents companies from reporting on themselves or their competitors. Any details on what this process is? A closed system is not necessarily a good system. There have been many cases where customer issues were resolved or a problem was addressed due to the public nature of Yelp.
  • Our Complaint Resolution Team will intercede if a project goes bad.
  • Companies respond to reports, so you get the whole story. Which companies? Is there a partner program for providers? I thought you couldn’t pay to be on the list?

And there’s more:

What you get:

  • 24-hour access to reviews on AngiesList.com. Wow, the Internets have arrived. Are you listening Yelp?
  • Live support through our call center. Ok, this one might actually be a useful value-add.
  • Award-winning Angie’s List magazine. What does the magazine add beyond the website? I don’t want to be party to more paper wastage. I already get enough catalogs as it is.
  • Access to our Complaint Resolution Team.
  • Discounts from highly rated service companies. What is the business model here? Why/how would companies know they are highly rated, unless they sign up as well? Why would they offer discounts?

Overall, I just don’t see why anyone would use their service. If you have used Angie’s List, I’d love to hear your opinions on how it compares to Yelp or even Craigs list.