anjuta-gvim Preview

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. There’s a very apparent bug in the video; it doesn’t change pages when the option is document is chosen from the Documents menu. I’ve already fixed it. If you liked this plugin, well, unfortunately you’ll have to wait a while. ...

July 11, 2008 · 3 min · 442 words · Arun Tejasvi Chaganty

QuickSort

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: 1 2 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 satisfied with their efficiencies. I’ll keep the code to a minimum, and the let the graphs do the talking. Quicksort is kinda like the heapsort, only not as strong (thus not as reliable). It is generally always recursive, and basically consists of 2 steps (Divide and Conquer): ...

July 6, 2008 · 4 min · 823 words · Arun Tejasvi Chaganty

Mergesort. Dissected.

Note: All code in this under the WTFPL1. 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. ...

July 4, 2008 · 8 min · 1607 words · Arun Tejasvi Chaganty

Maintainers, I Salute You!

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. The portion of the website I’m working on is basically a portal where participants can pre-register for events, discuss on a forum and plot to take over the government. Nothing unusual as such really. This year, we decided to make the whole thing with Django (except the forums, which is a customized UNB). I remember reading a quote 2: ...

June 22, 2008 · 7 min · 1455 words · Arun Tejasvi Chaganty

GSoC India Delhi Meetup

So I’m a week late. Shoot me. Well, 7 of the supposed 71 of us turned up to an informal meeting in Delhi. It wasn’t one of those Google office meetups, just one of those “let’s get together so we can make better jabs at each other on IRC”-type meetups. And to that effect it was awesome. We all met up at the City Center, right outside the Rajouri Gardens metro station. Since we have a dearth of pictures, this ancient Google Map counts (note that the mall hasn’t been fully constructed in the photo): ...

June 12, 2008 · 5 min · 951 words · Arun Tejasvi Chaganty

Vim. Other Editors Don't Do Such Things

I’ve been making some progress on my Anjuta-Vim Integration project, infact, I even have screenshots :-) 1. But that’s very deceptive, notice the (null) ((null)) on the window title. Essentially, I’ve written an AnjutaPlugin that implements the necessary interfaces to “open files”. Currently all my interface implementation functions are returning NULL’s or 0’s (which can cause unpredictable segfaults and memdumps), and that brings me to the real challenge of my GSoC project. ...

June 1, 2008 · 5 min · 1012 words · Arun Tejasvi Chaganty

Ideas for a Hackathon?

My college, the Indian Institute of Technology, Madras, holds it’s annual techfest, Shaastra, every October. This year, our LUG is pushing for a hackathon to accompany a small FOSS conference (that we’re trying to make big). This will the first time any of us are trying something like this out, and I’d really appreciate any ideas, etc. anyone can give either on how to conduct it, or on some hackable projects. The attending audience will probably largely consist of hobbyist programmers who have heard of the concept of FOSS before, but have never actually worked on a project. There may be one or two experienced veterans also. ...

May 27, 2008 · 2 min · 330 words · Arun Tejasvi Chaganty

Glade Gotchas

Glade is awesome, no denying that. It’s clean, unlike any other ‘GUI building tool’ I’ve seen. It generates an XML description of the GUI, which is parsed at runtime. It’s simple, and hence easy to use (by virtue of the previous two attributes). At the same time, it does have it’s idiosyncrasies (and limitations) as well, only I’ve never really used the signal callback connector it provides to discover it for myself. It took a bit of googling before I could figure it out. ...

May 18, 2008 · 2 min · 231 words · Arun Tejasvi Chaganty

GObject Properties

After creating a number of signals and functions on my own to handle my class' fields, I reaised that GLib 1-uped me, and already has a frame work for that; properties. Properties are well exposed to the rest of the framework, can be elegantly handled using the g_object_set and g_object_get functions, and of course, emit signals whenever they are modified. This means you get signal creation free of cost. This was something I didn’t find well treated in the tutorial. There is a lot of boiler plate code that goes into enabling properties. An outline of the process (which is very well documented in the standard tutorial): ...

May 18, 2008 · 3 min · 526 words · Arun Tejasvi Chaganty

I Am a GObject

This past week, I’ve been up close and personal with GObjects, deciding to finally learn how to use them. Till now, most of my hacking has been with Gtk+, and that too largely in Python, which is, well…, child’s play. Luckily, I had a lot of patience to work out the boiler plate code, and figure out it’s various idiosyncrasies, enough so to appreciate what it’s trying to do. Before I say anything further, kudos to Mathieu Lacage’s for his helpful tutorial, which has been included in the official GNOME docs. It very clearly explains the motivation behind the whole GObject concept, which, to be fully honest is required if you want to make sense of it. He also did well in introducing the naming conventions used by GNOME. ...

May 18, 2008 · 2 min · 387 words · Arun Tejasvi Chaganty