Internet Observer: Progress

< All, 1, 2 >

IObserver obsolete

I was considering taking up IObserver and rewriting it as a firefox plugin. There now appears to already exists a firefox plugin for monitoring page updates so I there's no reason for me to build another. Hence the IObserver project is obsolete and is being marked as finished.

Time to come up with some other project that hasn't been done yet.

Things I would like to do

Sometimes I have to make lists just to get things out of my head, this is such a time. The list has no special order.

Finish DKP Log Parser 1.4.0

Obviously my current goal is to get version 1.4.0 into beta testing. The to do list has been growing, but it should soon be completed. Sadly, work is currently zapping most of my energy during weekdays.

Get the DKPLP website up and running

This will be done during the beta. I will probably not have the required time to build this from scratch because of work limiting my free time. I'm currently keeping an eye on Lenya and other open-source CMS.

Finish IObserver

The fourth prototype was released in March, since then I have been preoccupied mostly by DKP Log Parser. IObserver was never meant to be put on hold like this and I will do my best to get it up to shape as soon as DKPLP has a stable release.

Balancer 2.0

The Balancer project is fairly popular, but the code is amongst the oldest that I have on this site. The current version does what it should and does it well, but I feel that the code should be rewritten and documented just for the sake of making it easier to modify.

Launch a JUpdater beta

The version tag "0.5" doesn't do JUpdater justice, it is darn stable at the moment. It's being put to production in multiple projects, both on this site and outside.

DKP Bank for EQDKP

I have a small dkp bank running on this site. Basically it collects statistical data from a DKP system every day, which can then be analysed and used to calculate counter measures (and in case you're wondering: No, I don't administrate the DKP system displayed). I feel that this could be useful to have in EQDKP, or as a standalone package that anyone can install on their servers.

Cross guild DKP system analysis

In case someone hasn't noticed yet: I like to analyse DKP systems. I rarely get the chance though, so I would like to do some project that gives me access to statistical data from many live systems that use different methods.

Complete categorisation of DKP systems

This is connected to the point above, but instead of analysing the effects of individual systems I want to categorise the multitude of system variations that are out there.

15-piece GUI puzzle in Haskell with solver

I want to use Haskell more than I do today, and I have never created a GUI in Haskell before, so that could be interesting. The 15-piece puzzle is chosen because that would give me an opportunity to put some discrete math knowledge to good use.

Java-website from scratch

I will probably end up building a website from scratch once I have been annoyed enough by whatever CMS I choose for dkplp.org .

Some kind of project using genetic algorithms or machine learning

Because I want to.

If Darkfall comes online

Darkfall Crafters is only the beginning of what I have in store for Darkfall if it comes online and meats my expectations, especially when it comes to crafting. Information is scarce so I'm not holding my breath on this one. It would give me a nice opportunity to start projects that put my algorithmic knowledge/design to the test.

A blog for my every day technical problems/finds

Every day I run into smaller problems (most often programming related) that take some digging to solve. I would like to make it a habit to post the solution to these problems when I solve them, partly for others but also because I'm likely to forget the solution after a while. I would also include any neat programs/resources that I happened to find.

I feel that this site is reserved for news about the contained projects and that a blog format (which seems to be just about anything these days...) would be the best for this.

Something with Python

Python is a useful language that I do not have a lot of experience with, something should be done about that.

Unpolished fourth protoype

I have uploaded the finished fourth prototype, featuring an unpolished GUI. The GUI is fully functional, albeit a few features are yet to be implemented. Most features other than the version diffs and filters can however be accessed in one way or another.

A compiled distribution of the prototype has been uploaded for those who wish to test the program. A basic readme has also been written as a guide to the currently flawed GUI. Please add any bugs that you find to the list of known bugs.

So what took so long time? I would have to say that the most time-consuming part was getting the tree's drag and drop functionality to work properly. The current implementation is primarily based on an article about how to add ghosted drag images, even though I believe that the article got the painting wrong. The end result is worth it though, drag and drop makes the tree far more intuitive and easier to rearrange. Here is an image of a page being moved from one group to another.

iobserver_dnd.jpg

Mustang (Java 1.6) is supposed to include better drag and drop support for trees, so maybe things will become easier in the future.

I will briefly move my focus away from IObserver in order to get the next version of JUpdater, and possibly DKPLP on the road. But once that is done I will start implementing the list of coming features and polish the GUI in general.

Back to Swing

The GUI is coming along, even though I have not had a lot of time to spend on it this week. The aim is to create something IM like, but with pages instead of contacts. Here is a screenshot of it in development.

iobserver_news1.jpg

As you can see the graphical part of it is lacking at the moment, that's probably because it's the part that I enjoy the least. The source will be updated and a testable distribution will be released once this prototype is finished, which will hopefully be in a week or two.

As the title suggests, I have chosen to use Swing rather than SWT. The main reason is my unpleasant experience with SWT in the DKPLP project, not being able to see any advantages with SWT didn't help either. I also felt that Swing's MVC design would help create the rather complex tree, which is the core of the interface.

Prototype 3 made

The third prototype is finished. The new prototype enables the observer to just look at specific parts of a page, along with computing and displaying differences between versions.

The core functionality is thereby complete. The test used for the third prototype was to point it at a forum and then have it alert the user whenever a new post was made (but not when something else, e.g. users viewing the forum, changed). The test worked just fine, and the regular expression used to accomplish the task was simple.

.*<td class=\"alt2\">([\\d,]+)</td>

The fact that the patterns will in general not require any deeper understanding of the context of the page gives me hope that I might be able to reuse the regexp generator in this project. That would eliminate the requirement for regexp knowledge in order to use the more advanced functions.

I was wrong when I said that the last prototype would require the least work. This prototype required even less. The reason is that this prototype reused the MPLF package for the parsing and an diff implementation in Java. I was planning on implementing a diff algorithm myself, but since there were already good GPLed implementations available I reused one of those instead.

The next prototype, the one with a GUI, will without a doubt require the most work. I'm still undecided on whether I want to use SWT again or go back to Swing.

< All, 1, 2 >