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.
Over the last couple of days I have been reading through the archives of the webcomic Pictures of You and have been thoroughly enjoying it. The story is gripping as I’m sitting there eagerly waiting for it all to spectacularly fall apart as promised in the prologue, while I think that is a long way I’m still waiting with bated breath. It was one of those stories that once you start it is very hard to walk away from it wanting to find out what happens next. The art in my opinion (the whole 2 cents that it is worth on a good day) is beautiful, I’m not sure if this is the right way to put it but I’d describe it as simple yet engaging able to get the point across without necessarily needing any dialog.
The first book is available somewhere as an actually book and I’m thinking about picking it up early in the new year.
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.
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.
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.
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:
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.
The day before I shifted I picked up a couple of new games to keep me entertained during summer, they were Final Fantasy IV for the Nintendo DS and Star Wars: The Force Unleashed for the Wii. I haven’t really given Force Unleashed the time it deserves yet – because of the move and simply put Final Fantasy IV has really sucked me in, once I have settled in a bit more and get a chance to sit down and spend a few hours on Force Unleashed I will probably post my first impressions of that as well.
Final Fantasy IV is the remake of the SNES version for the DS, outside of Japan this game was originally released as Final Fantasy II. It was in this game that the Active Time Battle system was introduced, this system was used in many of the subsequent Final Fantasy games. This remake has seen the game transition to 3D engine (the same as what was used in the Final Fantasy III remake.) with new rendered cut-scenes and voice acting. I am told that the script has had some of the content that had been cut in the original version restored to this version, however because I don’t want to risk spoiling the story for myself I don’t know how much content or where the content takes place.
Final Fantasy IV is my first venture into the games of the Final Fantasy franchise, having before only watched the not so great movie – Final Fantasy: The Spirits Within, and the awesome Final Fantasy VII: Advent Children. Up to this point I have been just iterating over many of the points that you can find on a retailers site or Wikipedia, that wouldn’t make much of a post about my first impression if I didn’t actually give any impressions, so here we go. Final Fantasy IV is a visually stunning game and would easily be the best looking DS game I have played or seen for that matter. The actual game-play is quite addicting, I can happily sit down for a few hours and lose myself in the game. It took me a little while to get used to the battle system but once I was it added that little bit more excitement than the more traditional turn based systems. Having not gotten all that far into the story line I can’t really comment much on it, but what has happened so far seems good.
The game doesn’t use the touch controls of the DS much, at most it allows you to move the character around inside of a dungeon, to me this felt more clunky than using the D-pad so it was quickly abandoned. I would of preferred to see the designers try and use the touch pad for the interface more, in particular the the menu based elements of the game or the selection of an enemy/character in a battle. Aside from that small gripe I can’t think of anything bad to say about the game, I’m sure there are some annoying qualities but I haven’t come across them yet or they haven’t begun to bug me yet.
So to sum it all up Final Fantasy IV has made a good first impression on me and I would recommend anyone who owns a DS to go out and pick up a copy, I am seriously considering also going out an picking up the remake of Final Fantasy III for the DS which is based off of the same graphics engine. Perhaps once I finish the game I will do another post detailing any annoyances that I come across and give a better indication on how good the plot is.
A while ago I announced that I was working on gIDE an IDE for the GNOME desktop enviroment. Due to university, work and trying to have some form of a social life I have not gotten gIDE to the stage where I feel comfortable making a release. The svn repositry is still publicly available so people are able to check out the latest copy of the source tree. Now that university is over I hope to have more time to dedicate to gIDE and have the 0.1 release out before Christmas.
To tide you over until I am ready to make that release I am offering up two gIDE sub-projects for you to play around with. The first is a small python script which will import a project from a directory and create a XML file which gIDE is able to load. I do plan to eventually turn this into a plugin once I get a plugin system up and running in gIDE, but at the moment that looks like it might be some time in the future so for now I am releasing the script instead. My hope is with this script more people will use gIDE when it is released becase it will be easy to transition existing projects to work with the gIDE. You can download it from here.
The second sub-project sprang from the recently completed template system for gIDE. Once I finished the system I thought it would be useful for people to have some way to test the templates they have written and so this application was born. Just a note that this is the first iteration of the template system and as such it is reasonably rough, it has yet to integrated into the main development branch of gIDE as it needs a lot of cleaning up first. However all of the functionality of what is going to be in the copy that is merged with gIDE is present in this copy. You can download it from here.
Both of these items are released under the GNU GPL, so you are free to do with them as you wish within the boundries of the license. Any feedback is welcome and appreciated.
Late last week the Watchmen trailer was put up on the web, I meant to blog about this earlier but I kept forgetting. This is a movie I am very much looking forward to as I am a fan of the book and needless to say I really enjoyed the trailer. After watching the trailer again I can see how people who have not read the book could be confused, due to the trailer giving next to nothing away about the plot which is not necessairly a bad thing. Below is the trailer which you could also get off of daves trailer page in various resolutions, enjoy.
Typing this post from a friends new iPhone, it is easier than I thought it would be. It’s a pity that the plans in New Zealand are so expensive and the iPhone isn’t free (as in speech) as they are really quite nice.
At the moment I’m a little disappointed with the openmoko which I was quite keen to get but from everything I’ve heard it doesn’t seem quite ready for release, I think in about 6 months there should be quite nice product there, I wait with high hopes.
Also Jason a new post because you asked without trying to insult me.
Can you tell I’ve recently begun coding on personal projects again? In a follow up to yesterdays post about loading a file with Giomm, last night I decided to upgrade a project I am working on from GtkSourceviewmm 1.0 to 2.0. This turned out to be more difficult than I initially expected as the API documentation provided with Ubuntu seems to be horribly wrong, it includes functionality that doesn’t exist anymore. So after referring to the GtkSourceview 2.0 documentation I got it all working so below is a simplified version with all error checking removed but should do the trick.
void load_highlightable_text(Glib::ustring file_name, Glib::RefPtr buffer)
{
Glib::RefPtr fp = Gio::File::create_for_uri(file_name);
char *raw;
gsize read_bytes;
std::string e_tag;
fp->load_contents(raw, read_bytes, m_e_tag);
Glib::ustring buf = raw;
buffer->begin_not_undoable_action();
buffer->set_text(buf);
buffer->end_not_undoable_action();
// Retrieve the mime type of the file.
Glib::RefPtr info = fp->query_info();
Glib::ustring mime_type = Gio::content_type_get_mime_type(info->get_content_type());
// variables needed for getting the language
Glib::RefPtr manager = gtksourceview::SourceLanguageManager::create();
Glib::RefPtr language;
std::vector lang_ids = manager->get_language_ids();
std::vector mime_types;
// Cycle through all available languages matching the first one that will highlight the given mime type
for(std::vector::iterator i = lang_ids.begin(); i != lang_ids.end(); i++) {
language = manager->get_language(*i);
if(language) {
mime_types = language->get_mime_types();
for(std::vector::iterator j = mime_types.begin(); j != mime_types.end(); j++) {
if(*j == mime_type) {
buffer->set_language(language);
buffer->set_highlight_syntax(true);
return;
}
}
}
}
return;
}
If anyone knows of a more sane way to do this please tell me as what I have currently looks bloody horrible to me.
Follow Me