Archive for the ‘Projects’ Category.

REST API Test Utility

One of the things I enjoy most about being a programmer is the fact that when you can’t find a tool to do what you want you can write it yourself. Generally I’ve found that these applications tend to be quite simple and stick to the unix philosophy of ‘do one thing and do it well’ which as a software developer I think is a good philosophy to live by. The most recent occurrence of this happening to me was at work not to long ago where we are currently writing a REST API I needed an application to make a HTTP call to a URL. After about 5 minutes of looking around the web I couldn’t find anything, at that point I had the choice of either continuing to search for an appropriate tool or I could write my own. As you might have guessed I wrote my own, it took about 10 minutes to implement the basics of what was needed.

Over the next couple of weeks the tool continued to evolve to better fit the specifics of the project we we’re working on, but in the back of my mind I kept going back to how other people must have this problem as well. Eventually I decided to re-implement the core of my tool. Having finished the re-implementation a couple of weeks ago I’m finally getting around to releasing it to the public under the GPL, below are the links to download the 0.1 release.

For those of you who would like to grab the latest source and stay current with any updates (which may be buggy broken code) you can check out the subversion repository which is available at the following URL:

In other news I have signed on to be a contributor to lounge media a blog about digital media in the home, hopefully I should have a post up there soon – once I figure out a good subject to start on.

Build System Redux

I decided upon lookiung through the documentation for the latest version of libvtemm that the running of the build commands needed a revamp.  Previously the build output just plowed on regardless of whether the previous command succeeded or failed.  This as you would guess is bad, you want to find out things have fallen apart as soon as possible without the follow on errors that are caused by an early command failing.  Lucky for me the latest version of libvtemm (0.20.2) makes this very easy to do.

While stopping the build from running is a good start there was still more to be done, namely some way to indicate to the user the status of the build.  To deal with this a bit more of a serious refactoring was required, this substantially changed the code of the build output class to such a degree that it no longer inherits from the same widget as it did before.  Thankfully though it allowed for non-obtrusive place to add feedback to the user.  With this in mind a progress bar was also added so that a user could tell how far along the build was at a glance.

Perhaps the most sane part of the change to build system is that now when the a build is initiated the if the build output is not visible it will be made visible, something that is should have been doing from the start.  Finally a couple of pictures to show how the new build system looks in various states.

gIDE Build System

As I mentioned earlier tonight here is my coding related post, since the 14th I haven’t really worked on gIDE until today.  I finally got the build system all finished and integrated into the rest of the application.  You can now happily define and run the commands needed to build your project. The following images show gIDE building a test project and the other shows the dialog for defining the build commands.  I am currently not very happy with the properties dialog but am yet to think of anything better so what I have will have to do for now.

I’m happy to have finally gotten this finished as it was the big feature I wanted done before I would eat my own dog food and use gIDE to develop gIDE.  I also took this oppurtunity to port gIDE from vte to vtemm which made the task of the code to set the commands a lot easier than a previous attempt I had made with vte, this does mean however that there is now a dependency in gIDE that is to the best of my knowledge not included in any distrobution.  I do not see this as being much of a problem however because the primary audience for gIDE is developer most of whom would know how to build a library from source.

As always the latest changes to gIDE can be found in trunk of the svn repo at http://mlowen.com/svn/gIDE/trunk.

Weekend Coding

So lately I’ve been doing little to no work on gIDE, which while it is not unusual it is a little disappointing as I had hoped to have made at least one release by now.  With that in mind and the fact that I don’t have anything planned for this weekend I sat down and listed all of the features that I needed and wanted to have before I made an initial release.  The plan is to sit down this weekend and knock as many of these things out before the weekend is over and make a release, will I hold true to this? I do not know, my track record of promises similar to this (which you should be able to find in the archives of this blog) is not stellar.  Heres hoping I follow through on it this time. Now onto the important part of this post the lists:

Needs

  • Find/Replace
  • File Rename
  • File Move
  • Build System

Wants

  • Move from vte to vtemm
  • Document Split view

Of the things that is on these lists the one that I am not really sure about is the moving from vte to vtem, while vtemm would fit in better with the rest of the application it is currently not packaged with any of the major distros.  This leads to the problem which is more important the design of the application or the ability of people to run the software? I’m sure I will have some comments about this in the next couple of days.

All going well I should hopefully make a blog post after I finish each feature, or for a couple of less screenshot worthy features I might just save them until a screenshot worthy one is finished before making a posting.

What happened to Cuttlefish?

Close to a month ago now I wrote about what I got up to on my holiday and I said I had started a new project Cuttlefish – a syntax highlighting text box for .Net. I also said that I would post about in more depth later, so far that hasn’t happened. This is mostly because I haven’t actually finished cuttlefish and I haven’t a lot of time to code lately. The other big reason is I recently picked up a copy of Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries and found that my little project needs a quite a bit of refactoring to be compliant with these guidelines. I hope to get started on the compliance work tonight, once that refactoring is done it shouldn’t take to long to finish it off. With all that in mind it hopefully won’t be to long before I am able to show cuttlefish off.

This is not the post I intended to write today

I’ve been back at work a couple of days and once again settling back into the daily grind.  I had originally decided to make a series of posts once I got back from holiday called ‘Holiday Hacking’ which would detail the coding that I got up to during my time off, as it happens there was just one small hitch in that plan – I didn’t do much coding in my time off.  It would seem that I choose to relax these holidays rather than try and chip away at my to do list for gIDE.  While I didn’t work on gIDE this holiday I did however start a new project: Cuttlefish.  I plan to go into this in more depth in a later post so for now just let me say that it is a syntax highlighting Textbox component for .Net written in C#.

I have been doing a little bit of work around the site as well, mostly involving integration with my facebook account (which I’m intending to give more attention to this year).  For those that haven’t noticed (or read this via rss) a link to my profile now appears in the in the sidebar and all of my posts should hopefully be appearing on said profile. This has the added side effect of some of my friends who hadn’t noticed it before get to see how truly geeky I am.  For those who are interested the two plugins I am using for the integration are Wordbook and Facelook.

Holiday

Today is my last day of work for this year, I have three weeks of holidays to look forward to.  I’m going to see family for Christmas and it is looking increasing likely that I am going to end up at some random lake to catch up with a few friends for new years.  The downside to this is thanks to my current living arrangement it means I’m going to all but drop off the internet for those three weeks, this isn’t a necessarily a bad thing though as it is going to give me a lot of time to work on gIDE.

I was hoping to have the first release of gIDE done before Christmas which is looking increasingly less likely, so much so that I’m not going to bother with it any more.  There isn’t a lot that I have to get done before I’m happy to make a release, these will also be the first things on my list of things I am going to work on during my time off.  In no particular order the features are:

  • Find/Replace
  • Project Properties
  • Generic Build System
  • Document split view

I’m also considering implementing a limited subset of vim commands, though I think I will wait until after this release in the hopes of getting some user feedback on what they think would be the most useful commands to include.

In other news I recently saw The Day the Earth Stood Still.  To be honest I was not that impressed, the movie seemed to trying to get a message across but not succeeding, at times I even felt that the movie wasn’t overly sure what that message should be.  The casting for the movie however was spot on, especially with Keanu Reeves.  Also a couple of days ago I recommended that you go read Pictures of You by Gibson Twist, from there I got linked to another webcomic of his which I enjoyed.  So if you enjoyed Pictures of You you might also want to check out Our Time in Eden.

Site Upgrade

Today I decided to upgrade this blog to version 2.7 of wordpress, which I managed to screw up royaly.  I somehow managed to accidently delete most of wordpress file including all of the files for the theme and the plugins, thankfully I wasn’t touching the database or shit would have really hit the fan.  So after wasting time and finding everything again it is all up and running, nothing seems to be breaking so I’m quite happy at the moment.  I also finally took the time to enable OpenID for comments, doing this also turned this blog into an OpenID provider as well which is neat because I’ve been meaning to get myself an OpenID for a while.

So far I’m impressed the wordpress 2.7, the work they have done on the admin area is top notch both functionally and aesthetically.  It seems to have a much more professional feel to it than the previous versions did, I’m not sure if this was intentional or not but it is nice.

A quick update on gIDE while I’m at it.  The new add file dialog hit trunk earlier this morning it isn’t quite what I wanted but it is an improvement over what was there.  As I said earlier the remove file dialog was done away with entirely, just using a message dialog seems to be a lot better.  Along with those changes I finally got around to adding a right click pop-up menu to the project browser which allows you to add, remove and soon rename files in the project, I should have done that ages ago but I was lazy.  Hopefully the last of the overhauls will be finished this weekend so I can get back to adding new features.  To round the project off I thought I had better provide a screenshot of the new add file dialog.

gIDE add file dialog

gIDE Update

The new Create project dialog I mentioned earlier this week has hit trunk as of about 5 minutes ago and everything seems to be working fine as always the svn repository is http://mlowen.com/svn/gIDE/trunk.

Before I get back to adding new features to gIDE there are a couple of more overhauls of the current system that I want to do, the parts I want to look at are:

  • Configuration system.
  • Add file dialog.
  • Remove file dialog.

The configuration system doesn’t need much more than some tweaking and at the most is a nights work.  I’m also thinking about doing away entirely with the remove file dialog as it just seems clunky where a right click menu would do the trick.  The add file dialog is the only one that I’m not overly sure how to approach as of yet, originally it was a quick hack to get the functionality in there (much like the create project dialog) with the intent of replacing it later.  Well the time has come to do away with the quick hack but I’m just not sure what the new dialog should look like, all I know is I want something different from what I currently have which can be seen in the screenshots below.

Default add file dialog.

Default add file dialog.

Adding a new file to a subfolder of the project

Adding a new file to a subfolder of the project

As you can see these are pretty bloody horrible, will probably brainstorm tonight and post some design sketches tomorrow or Friday.

Latest gIDE Progress

Recently I finished the new Create Project dialog in gIDE which integrates with the project template system I wrote earlier, for those who saw the previous one this is a marked improvement. The new dialog is similar to create dialogs in most IDE’s where the user chooses the language they want to work in and the project type. Given that information gIDE will get the appropriate project template and creates the project.  It is currently using a placeholder image for the Project Icon,  I want to make this configurable in the project template and replace the placeholder image with a different default image.

This first screenshot shows gIDE when the create project dialog first opens:

gIDE with the Create Project Dialog opened.

This second shows just the create dialog with some random choices made:

Finally just to round things off a screenshot of gIDE in action working on another project I’m hacking away on:

The working create dialog has not been commited to svn yet as there is one or two small bugs I’m trying to track down but it should be up within the next day or two.