Category Archives: Software Projects

Developing an Extension

Update: The labeled spaces extension can be found here.

As I work to have my idea enter the pipeline for inclusion into mainline, I’ve decided to implement my labeled workspaces idea as an extension. To make the customizations necessary, I’ll need to have a pretty good understanding of the system I’m modifying. Unfortunately, due the current lack of documentation for the Javascript files, I’m going to have to go through the source code and try to understand it myself. It also doesn’t help that I’m not accustomed to the technologies the shell is made out of – Clutter, StShell, GI, and Gjs, but I think it should be a fun learning experience. Firstly, I plan to learn and understand Clutter with:

After learning Clutter, St, and Shell should easier to pick up since they are either fully or partially based on Clutter. After understanding the drawing libraries, I’ll head on to understanding GI. Actually, it turns out Clutter and GObject are closely related, so I’ll have to do those two together. Finally, I’ll look over Gjs and the Javascript files concurrently and attempt to understand how the UI works. After all this, I should be able to understand what components to modify as I make my extension.

Have any tips, comments or pointers?

Glawn Project Status

Glawn is my personal software project. The Georgia Tech LAWN login client, shown in the screenshot below, has come pretty far from its inception.

Glawn on Linux

Glawn 1.0, pronounced guh-lon

Believe it or not, it started as an unnamed shell script that I created during my Freshman year at Georgia Tech. It was pretty shoddy work, but it worked. During my sophomore year, after taking a class in C (1372), I decided to rewrite the shell script in C, using the getline function to accept the user’s username and password.

Then summer arrived.

With plenty of time (although, I did have my first internship during this time) and an itch to learn some open source technologies (GTK+ specifically), I was able to release a graphical version of my script, Glawn 0.9. Though an appreciable milestone release, it was still kinda hacked together. In fact, I didn’t want to touch the codebase at all the following semester.

Old Glawn

Glawn 0.9, beta quality

During this time, I also was able to revamp my Prism Webpage using recently learned web technologies (XHTML, CSS, Javascript). I wanted to have a decent looking site as this would hold the Glawn Project Page. But I digress.

Fast-forward to Spring 2011, Georgia Tech-Lorraine, Metz, France. I worked on Glawn a good amount to bring it to it’s 1.0 release. By the way, multi-threaded processes are a pain. Anyway, to sum things up, Glawn now works on Windows, in GT-L, and has been downloaded at least 5 times (once for a 4007 project).

Hey, it’s a start…

What’s in store for the future? The user-visible feature roadmap can be seen on Glawn’s FAQ page. On the technical side, I plan to use GSettings for data storage and to rewrite the GUI with GtkBuilder. I am on the fence as to whether or not I should put this project on Launchpad.. Suggestions?

Glawn is my personal software project and my lens into open source development.