Archive for the ‘Projects’ Category

Day Planner 0.8

Tuesday, January 8th, 2008

Day Planner 0.8 was released on the 1st of January (2008).

The primary focus of this release was getting some new technology in there and cleaning up old stuff.
The daemon (or “reminder” as it is called in the user-facing UI) was rewritten from the ground up. The new one is a lot more flexible, and less error-prone than the old one. The new one can for instance notify users about events backwards in time (say you log in at 08:05 and you had a meeting had 08:00 – it’ll let you know). Along with this I’ve removed the “Day Planner commander”, which was a commandline interface that allowed one to talk directly to the daemon and issue commands. I used it mostly for debugging with the old daemon, it’s not needed at all with the new one. The notifier (the program that pops up friendly GUI dialog boxes with reminders) was also partly rewritten for the daemon change.

The other major change was the addition of DP::iCalendar::Manager. This module allows DP to have multiple DP::iCalendars (and other compatible objects) in one object, whose API is completely identical to DP::iCalendar (with the exception of a few additional methods). In 0.8 it is for instance possible to edit holiday-events. The Date::HolidayParser module now presents a DP::iCalendar-compatible interface when requested (the old API is still in there, and is still the default – that won’t change). As Date::HolidayParser (and for instance http calendar subscriptions) are essentially read-only data sources, DP::iCalendar::Manager handles this nicely. When a change request is made upon an event from a read-only source the manager copies the event over to the primary DP::iCalendar object and makes the change there. This preserves the UID and thus the changed event will show up in the UI, instead of the original one.

All DP::iCalendar calls in 0.8 go through the manager, even though the management part isn’t used much, the only two parts added to it in 0.8 are the primary user calendar and the holidays. This opens doors for what one might expect to see in 0.9. Day Planner 0.9 will. among other things, have support for subscriptions to http-calendars. The current DP SVN already has a crude implementation of this, and it appears to be working pretty well (though it is missing some essential things, like caching, at the moment).

Day Planner 0.8 is available for download as a Mandriva RPM, Ubuntu/Debian deb, generic installer and source tarball.
For the adventurous (read: people who like to not have their software in a working state all the time) there are instructions on how to get the svn version on the website.

Maemo (Nokia N810) device program application accepted

Saturday, November 10th, 2007

Yay!

I’ve been picked as one of the lucky 500 that will recieve a Nokia N810 at a heavily discounted price.

My initial plans will be to investigate ways of porting Day Planner to maemo. Because there are no Gtk2 perl bindings for Maemo at the moment, as far as I know. I’m going to have a look at how hard it would be to port the current Gtk2 perl bindings to Maemo, and if it’s rather simple I’ll just bundle them along with Day Planner., or create a package for them. They might even run with little effort, who knows (heres hoping). Even if they don’t work 100%, as long as the methods DP uses work adequately I will be able to use them. If not, well, then I’ll have to look at other options, which include writing a dumb UI in python that talks to a perl-backend.

In any case I will need to figure out how to best integrate the daemon+notifier functionality. The platform probably needs its own notifier, if it is to have such a thing at all, though I’m hoping the daemon can work without major changes.

And now I just need to wait for it to be released so I can get it.

Day Planner packages available for Debian and Ubuntu

Saturday, November 10th, 2007

Day Planner debs are now available on http://www.day-planner.org/. Both for Debian and Ubuntu (in addition to the already available Mandriva RPM and generic installer).

Creating a deb was interesting, as I had never done that before – used to rpm packaging, though I got a lot of help by Morten Werner Olsen.

The packaging also uncovered quite a few limitations in both the default tarball and the Makefile, which should not only make the deb possible, but also improve the RPM.

I’m hoping to get Day Planner into Debian too, but I’ll have to write a proper deb for Date::HolidayParser first. Debian, like Mandriva, wants to have modules available as seperate packages, and as Date::HolidayParser isn’t *really* Day Planner-specific it makes sense distributing it seperately. The current debs has it bundled, and I might be inclined to continue to have the ones on the website bundle the module (the RPMs on the website does this, even though the package in Mandriva does not), so that there is only one package to install to get Day Planner installed.

In other (somewhat) related news, I’ve changed the URL structure on the Day Planner website. It previously used ugly looking index.php?page=foo&type=bar URLs. It now uses clean index.php/foo/bar URLs, which incidentally was rather simple to implement once I found which variables to parse and PHP functions to do it with.

Happy birthday, Day Planner!

Thursday, April 19th, 2007

Today, the 19th of April, it is exactly one year since the first release of Day Planner, 0.1, was released. The first release was, as expected, pretty buggy. But it has since grown into a stable and useful program and has seen major improvements since the first release. I just recently released version 0.6 which introduced the Day Planner services calendar synchronization system and a load of usability fixes, thanks to mpt in #usability on irc.gnome.org. I’m now hard at work on version 0.7, which will among other things introduce proper recurrance support for normal events.

If it’s been a while since you tried it, or if you haven’t tried it at all, go ahead and give it a download. It is available as a Mandriva Linux noarch RPM, generic .run installer and a source tarball, it also has only one single dependency except for perl and that is the gtk2 perl bindings, so it should run without having to install 20 dependencies.

drakSimpleConf

Saturday, September 16th, 2006

I’ve been thinking of a method of creating simple configuration UIs.

Take the following config file:
RunMode = Inetd
AuthMode = Closed
Restricted = true

To create a simple configuration GUI for this I would write something like this:
filename is /etc/example.conf
setting RUNMODE can be (Inetd, Daemon)
setting AUTHMODE can be (Closed, Open)
option RunMode is RUNMODE with name "Run mode" and tooltip "Which mode to run in"
option AuthMode is AUTHMODE with name "Authentication mode" and tooltip "Which mode to use for authentication"
option Restricted is BOOLEAN with name "Enable restriction" and tooltip "Enable this if you want to enable restriction of user rights"

The initial filename option selects which file the config file is.
The first “setting” defines a type of entry in the config file that can be either of the value “Inetd” or “Daemon”. This would create a drop-down widget where you can select “Inetd” and “Daemon”.
The second setting defines the same for “Closed” and “Open”.
The first “option” defines that the option in the config file “RunMode” is of the type “RUNMODE” and the name of the option that is displayed in the GUI is “Run mode” and it has a tooltip saying “Which mode to run in”
The second is the same.
The third one defines that the option “Restricted” is of the predefined type “BOOLEAN” (which is predefined to be true/false, this creates a checkbox instead of a drop-down box).

Now begin your slaughtering. This is still just an idea. There is no code yet. What do you think of the concept of creating a whole configuration GUI for an app using a single file like this? I’m thinking it would be okay for daemons and such.
What do you think of the syntax? I just grabbed it out of my head today and thought it might work. I want the syntax to be simple and human-readable. The point is that you should be able to hack together a GUI for any program with a simple configuration file in a few minutes.

Flame me.

Day planner 0.1.1 released!

Wednesday, May 24th, 2006

Packages are available from http://home.gna.org/dayplanner/download.html in addition to being in cooker. It fixes a lot of bugs.

Here’s an abriged changelog:
A bug that caused the entire program to go insensitive if you clicked the edit button without having any event selected was fixed. Daemon errors are handled better. A bug where day planner would freeze if the daemon shut down while it was running was fixed. Localization was fixed. A Norwegian bokmål translation was added. The pop up dialogs is now placed on top of the main window. The notifier now gets the information from the daemon instead of getting it on the command-line, so that other users can’t see information about other users on the system.

I would still very much like any comments you might have, so please feel free to test and give feedback.

GoldenPod in the Linux journal

Sunday, April 23rd, 2006

Just a little cool note. GoldenPod was featured in this month’s (April) issue of Linux journal in their podcasting article :).

Day planner: a request for comments

Sunday, April 23rd, 2006

I just recently released version 0.1 of my day planning app suitably named, well, day planner. It’s written in perl and uses the perl-gtk2 library. What I would like you (the readers of planet mandriva and/or my blog) to do is go test it. Poke it with long and small sticks, smash at it, punch it, hit it, kick it. I want the program to be as stable and usable as possible. Report bugs, report usability problems and report feature requests. I want them all, and all help is welcome.

You can find a day planner RPM in cooker or on the day planner download page (along with numerous other options).

Please read the day planner TODO list before reporting issues. It’s not that long :).

You may also be interested in reading the day planner vision.

Why GNA! is better than Savannah

Sunday, April 23rd, 2006

In the beginning there was…blah, okay I won’t go that far. Though, the first host provider I used was SourceForge.net. I used that for three projects:
GFSGL, GFSI and GoldenFiles. Mostly random stuff there, not too large projects.

Then one day I thought about this and well, using a proprietary website to produce and manage a free software project makes…well…no sense. So then I started looking at the alternatives. I landed on Savannah. My first Savannah project was GoldenPod. Followed by the (mostly dead) GoldenBackup (no link due to no website nor release, it does have a CVS though). Then followed by the common configuration parser. Then I had my disagreements with Savannah (as some of you might remember).

Then I started looking at GNA! which I am now using for my most active project, Day planner. Now what does GNA! have to offer that Savannah doesn’t?
Well, it offers easier access to the downloads directory, I can simply rsync/scp stuff from my box to the GNA! download directory. It also has SVN which is imho MUCH better than CVS (I’ve never used Arch, so I won’t say anything about that). They also offer download/website statistics, something Savannah doesn’t. The only plus of Savannah I can find is some of their admins. I’ve spoken with a few of them and they where very nice, savannah also has an IRC channel (#savannah on freenode) which is rather nice. Though currently, I’ll take my GNA! without my Savannah if that is possible thank you very much.

CCP 0.3

Monday, January 23rd, 2006

CCP 0.3 is out! The major new feature in this release is the addition of automatic uncommenting support.
CCP will now try to detect which options the user has uncommented from –oldfile and automatically uncomment them in the resulting –newfile. This should *greatly* decrease the amount of oprhaned options that occurs. Also added is an automatic testsuite to avoid regressions between versions and a –bug option that outputs a file containing useful information that can help fix a bug or solve a problem.

CCP can be downloaded from http://ccp.nongnu.org/download.html