Vimjuta 0.1.1 and Online

21 10 2008

I made a promise last week to come out with Vimjuta 0.2 over the previous weekend. I hate to say I broke the promise, the best I could come up with was a 0.1.1-ish “release” (it’s on SVN), fixing a very irritating and troublesome reference issue. I spent around 14 straight hours fixing that single issue, chasing my ref counts through Anjuta and fixing several inconsistencies along the way. I couldn’t find the time to fix the problems with the debugger and to re-implement some of the interfaces (mainly the search interfaces, which vim honestly has better functionality in). My new goal is to cut out about an hour every day of this week and work through the weekend (during which I am going home, away from the hectic campus life), and try and come up with a 0.2 release in time for Diwali (huge Indian festival). Wish me luck!

In other matters, I have finally made a small webpage for Vimjuta, hosted on my webserver at:


FOSS Events @ Shaastra 2008

11 10 2008

As always, I’m a week late on this post. Shaastra, our annual techfest wrapped up on the 5th of October. This last week has been terribly hectic with all of our teachers catching up on lost time.

We handled three distinct “events”, namely a mini-FOSS conference, a HackFest, and of course the VC with Guido van Rossum. Looking back, we probably could have handled things better, but as a first attempt, I think we fared rather well. This is a retrospection of the event, in the hope that it will help others find out something that helped and a lot of things that didn’t.

Read the rest of this entry »

Vimjuta 0.1 Released

18 08 2008

Vimjuta 0.1 “Take me to your leader” has released. Hurrah!

Download Here


  • Tags / Symbols Viewer
  • Debugger Support
  • Stability!

Known Bugs:

  • You can’t run more than 1 session at a given time. This is because I’ve been using a DBus session bus instead of creating a peer-to-peer connection. In case the program doesn’t work, kill any ghost gvim processes you have running.

Missing Features:

  • AutoComplete: AutoComplete should *technically* work, but I haven’t been able to get it it to work even with the existing editors.
  • Search / Selections : The current implementation is a bit buggy, so I’ve commented out the support. At any rate, vim’s search is infinitely better.

Boring Screencast (Redoux!):

I finally managed to get a screencast. I’m still not sure what the problem was, but it isn’t recurrent, so I’m scared. It looks like I have some bugs to fix, sigh. The video shows a Symbol Browser (actually the plugin is called the Symbol Database. It’s some new and awesome SVN dope) and debugging working. At some point in the video, the program counter disappears. I don’t know why this is, but I have found that Anjuta makes a lot of duplicated Mark/Unmark calls which do sometimes overlap. The bug will be fixed shortly.

Installation Instructions:
Unfortunately, the installation process for Vimjuta is a bit of a pain. Until Anjuta releases 2.6 (which will feature James’ Git Plugin), my patches will not be included upstream.

You can always grab the latest version from SVN, and the release is r50. I’ve also hosted a tarball. To use the plugin, you need to have anjuta-svn (which you should get anyway due to sheer awesomeness). Copy the editor-multiple.diff and accels.diff to anjuta/, patch anjuta. Build, and install anjuta, and finally, build and install anjuta-gvim/. Further instructions can be found in the INSTALL folder.

The plugin on first run will install some configuration files at .config/anjuta/gvim/, namely, anjuta.vimrc (to make vim usable), and a “locked_keys” file which contains some keybindings that should never be remapped by anjuta (for example <C-n> or <C-w>).

Also, to have any fun with the plugin (or vim in general), install the awesome MiniBufExplorer (VimScript #159:

The past couple of weeks have been crazy. From closing bugs just minutes before the GSoC India meet, to being pulled into doing a ton of work for our college’s Golden Jubliee year, and finally fending off people who want me to do their bidding. But it’s there. Vim has assimilated Anjuta, and it’s only due time before Vim takes over the rest of the world.

I pushed out the “offical” release at approximately 11:59 p.m on Friday, which qualifies this release as an “Independence Day” special, and makes me an inch closer to James Bond. There have been so many changes between the last time I blogged about it and now, I hardly know where to begin.

Currently, the keybindings for vim and anjuta mush into each other a lot. The problem is that I need some Anjuta keybindings (like debugger support), and vim keybindings basically take the whole keyboard. A slightly hackish solution I’ve come up with was to unload all of anjuta’s accelerators, and then load another set especially for “Vimjuta”, and lock some special keys like <C-n> or <C-w> which was previously getting overwritten. This solution works by and large, but it’s an unstable solution, as other plugins can overwrite the key-mappings.

Another problem I faced previously was updating the embedded Vim window. From what I managed to gather, GtkSockets don’t emit signals, nor can you invalidate their rectangles. So when I moved the cursor remotely using DBus, it would not update on the screen, until I sent it some form of event (generally by scrolling the mouse). The vim –remote functions seemed to work, and I deduce the reason being that it updates a “window property” (part of the X11 ICCCM protocol). At this point, I’d like to thank Guido Von Rossum for Python, and Ali Ashafar for PIDA. I managed to find out how to set Vim’s properties properly. Now the symbol database and browser work properly.I have noticed how ready vim is for an IDE. It has over the years accumulated an quite a few IDE specific features, like inserting marks (useful for debugger support), remote file editing, etc. This of course made my life much easier. I also realized that I was wasting a lot of time on really unnecessary gui-fications of vim features (like search) instead of features like Debugger Support that vimmr’s really need. All I had to do was keep track of my debugger marks, and that was enough to bring Debugger support.

I hope that everyone likes the plugin, and I’d love to hear feedback.

anjuta-gvim Preview

11 07 2008

I closed some big bad bugs yesterday, and managed to get a whole workflow (open a bunch of files, edit, save, close) working without any glitchy-ness. Most of the time. And while I’m no where near the quality required to ship this plugin, it feels great all the same.

A phenomenally boring Youtube screencast:

Read the rest of this entry »


6 07 2008

QuickSort. It’s widely accepted as the fastest generic sorting algorithm around. It’s also very simple. A comment in the last article showed me this Haskell beauty:

qsort []     = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)

While my C implementations aren’t any where as beautiful, I’m quite satified with their efficiencies. I’ll keep the code to a minimum, and the let the graphs do the talking.

Read the rest of this entry »

Mergesort. Dissected.

4 07 2008

(Note: All code in this under the WTFPL [0]. Except possibly for Stepane Delcroix’s adapted code, which is under the MIT/X11 license)

Very recently, I decided to spend some time coding those standard algorithms that every programmer should know, but I am woefully ignorant of. The plan was to do an algorithm a day. Unfortunately, yesterday night, I started on the Merge sort algorithm, and I found some ancient bash script I wrote to profile and graph the running time of some other sorts (i.e. the bubble sort). Which led to me spending precious time playing around with gnuplot and various program parameters. Expect graphs. Lots of them.

Read the rest of this entry »

Maintainers, I Salute You!

22 06 2008

For most of this past week, I have played the role of a maintainer for an obscure part of our college’s technical festival, Shaastra’s [1], website. I now respect the terribly difficult job a maintainer has to do. I also think I qualify as the worst maintainer ever.
Read the rest of this entry »