Ocean Mist

« Older Entries Newer Entries » Subscribe to Latest Posts

19 Jan 2009

Hello Planet

Posted by astromme. 7 Comments

Hello Planet! If all goes well, this post should be showing up on PlanetKDE.

A little bit about myself: I’ve been following the KDE project for years but only recently have I done any work with developing. At the moment I’m working on the following:

* a Remember The Milk plasmoid that is currently in playground. (for more info see http://blog.chatonka.com/2009/01/remember-the-milk-plasmoid-in-playground/ )

* a KDE-based backup application using rdiff-backup (it lives at http://launchpad.net/TimeVaultNG )

I’m most interested in user interaction and interfaces, and I initially got hooked on KDE due to the beauty of the Qt4 library and its excellent documentation.

I use a Lenovo X61 Tablet and am very pleased with it. I think that tablet pcs allow for some very interesting usage and interaction models and I’d like to see better out of the box Linux support (and application support) for tablet PCs.

Tags: , , ,

18 Jan 2009

Remember the milk plasmoid in playground

Posted by astromme. 30 Comments

The remember the milk plasmoid now has a new home in the kde svn repository. You can check it out with
svn co svn://anonsvn.kde.org/home/kde/trunk/playground/base/plasma/applets/rememberthemilk

Note that it requires both the librtm library and the rtm dataengine, both of which are also in playground.

svn co svn://anonsvn.kde.org/home/kde/trunk/playground/libs/rtm librtm
svn co svn://anonsvn.kde.org/home/kde/trunk/playground/base/plasma/dataengines/rtm rtm-dataengine

Build librtm first, then rtm-dataengine and finally the plasmoid. Once they are all installed, run


export KDEDIRS="${CMAKE_INSTALL_PREFIX}"
kbuildsycoca4 --noincremental
plasmoidviewer plasma_applet_rtm

where CMAKE_INSTALL_PREFIX is the what you specified on the command line (i.e. -DCMAKE_INSTALL_PREFIX=”/local/install”). This defaults to “/usr/local”.

With any luck, you’ll be greeted with the following applet:

Remember The Milk Applet: Initial Screen

If so, pass go and collect $200. Next, you should click on “configure” and in the page that comes up, log in to your Remember The Milk account. You do have one, don’t you? (if not, visit http://rememberthemilk.com to remedy that)

After you have authorized the plasmoid and it asks you to close your browser window, click ok to have the applet get its final piece of configuration, the authentication token. This token is stored so you don’t have to re-authenticate all of the time.

You should now see your tasks in the applet. By clicking on a tab at the top you can change which list is displayed. Currently, the highest priority tasks are shown at the top.

Remember the Milk Plasmoid

Enjoy!

18 Jan 2009

librtm in KDE’s svn

Posted by astromme. No Comments

After showing the rtm plasmoid to notmart and aseigo on #plasma, they suggested that I commit it to playground. At the time I didn’t have a kde subversion account and so I was directed to fill out a form or two. Lo and behold, yesterday my inbox was greeted by a shiny new kde subversion account!

My first commit came today, and as of revision 913193 (how’s that for a cool revision) librtm lives in trunk/playground/libs/rtm. Next up, the rtm plasmoid and dataengine.

astromme@Loki:~/Projects/KDE/playground/libs$ svn ci

Sending INDEX
Adding rtm
Adding rtm/CMakeLists.txt
Adding rtm/INSTALL
Adding rtm/README
Adding rtm/defines.h
Adding rtm/objects.cpp
Adding rtm/objects.h
Adding rtm/rtm.cpp
Adding rtm/rtm.h
Adding rtm/rtm_export.h
Adding rtm/rtmrequest.cpp
Adding rtm/rtmrequest.h
Adding rtm/xmlreaders.cpp
Adding rtm/xmlreaders.h
Transmitting file data ..............
Committed revision 913193.
astromme@Loki:~/Projects/KDE/playground/libs$

Tags: , , , , ,

13 Jan 2009

RTM Plasmoid

Posted by astromme. No Comments

You can even create new tasks!

You can even create new tasks!

Shown on the right here is the current design of the Remember the Milk plasmoid that I’m working on. As of today it’s able to parse the tasks list and show only the tasks in the selected list. Additionally, it can add (for now only to Inbox) tasks to RTM using the line edit at the bottom of the plasmoid.

Next up, beautifying the tasks view. I have plans play around with a QStyledItemDelegate which should allow me to have a list of tasks similar to the Amarok2 style playlist. They will be listed by priority, and can be rearranged (including changing priority) by dragging and dropping.

I also need to spend some time rethinking how I wrote librtm. Right now everything is done synchronously, and although I continue to update the gui during web calls, not much else can happen. This also leads to extremely long startup times, which is not something that I want.

Tags: , , , ,

11 Jan 2009

librtm, a KDE/C++ Remember the Milk api

Posted by astromme. 2 Comments

I’ll write more in the morning, but I thought it would be nice to post a screenshot now. What you see in this is the beginnings of a Remember the Milk plasmoid. It uses the new librtm C++ library, which is being developed in tandem. Neither the plasmoid nor the library can write back to RTM at the moment but I’m planning on implementing that in the future.

For the moment, read only, but the api will support writes in the future.

For the moment, read only, but the api will support writes in the future.

3 Jan 2009

Status of TimeVaultNG

Posted by astromme. 2 Comments

My original reason for working on a replacement for TimeVault was due to me feeling that its core method of taking snapshots using directories and hard linking files was not scalable because of the lack of hard linking directories on ext3 and other file systems. If you have large amounts of directories (for example in source trees or in my own documents hierarchy) each backup takes a non-trivial amount of space just to recreate the directories.

The beauty of starting from scratch means that I can make any of the design decisions without carrying extra baggage from before. This lead to the rewrite existing in KDE4/Qt4/C++ using some of the KDE frameworks such as solid.

I’m still subscribed to some bugs from the old TimeVault and after I had responded to one person asking for a status on TimeVault I thought I should share it with others as well.

If you feel comfortable working with a non-released branch my timevault-external branch has basic support for external devices. I haven’t messed with any of the actual backup code so it shouldn’t mess with your data at all, but I can’t guarantee that. There is more information at the branch https://code.launchpad.net/~astromme/timevault/timevault-external .

Secondly, I have been working on a different backup program that originally had some of the same goals as timevault but has now deviated quite a bit. I have some preliminary work up at https://launchpad.net/timevaultng but nothing close to usable by what I would consider the ‘target’ audience.

With luck, I’ll have more time to work on my next gen concept of timevault more in the coming weeks.

At the moment, I would suggest one of two things.
A: Use the released version of TimeVault if you like the concept of ‘always backing up’. As long as you stop the timevault daemon while your drive is unplugged you should be fine.

B: Learn rdiff-backup and put it in a simple script. That is what I am doing for the time being as it is really flexible. It is also what I am building timevaultng around so you will have a head start on the concepts that will be useful.

Hopefully that clarifies the situation somewhat.

20 Dec 2008

Dvorak: Hello World

Posted by astromme. No Comments

I’m typing this blog post in dvorak as I’ve decided to switch. I’ll post more later when I can actually type faster than ten words per minute.

8 Dec 2008

Thoughts on User Interface

Posted by astromme. No Comments

Of all of the areas of computing, I’m most interested in user interaction and user interfaces. Although I can program, I care less about the code (Maybe that’s why so few of my projects make it to fruition!) and more about the design and interface. I’ve been working on a personal backup utility in some of my spare time and while this is generally an area that has very little interface to it I found that the design process of even this little app was extremely interesting.

I needed a small preferences interface to let the user choose things such as the destination drive for storing backups, the frequncy of backups, and how long backups were kept. The following image was my first iteration of the preferences window.

If you use KDE4 you might have noticed that the drives view in the window is taken from the “recent devices” plasmoid. I decided that it was a familiar (to KDE4 users) and good way to show devices. When hovered over, the subtext is not “Open with Dolphin” but rather “Use as backup device”.

As cool as the widget is, there were still some flaws with this preferences window. First of all, I needed a separate check box to say whether or not backups were to be taken at all. Additionally, the user only had a choice of Daily, Monthly, Weekly, etc… and not intermediate specifications such as “Every Monday” or “On the 4th day of the month”. And to top it off, there was no way to specify how long to keep backups for. From these problems the second iteration was developed.

This revision keeps the device selection widget (I really like it), but removes the unnecessary text on the left. Additionally, it adds two sliders at the bottom to specify how long to save backups for and how frequently to take them. But this has its flaws, as there is no feedback to the user for how long backups are actually saved for nor how often they are taken. It’s just an abstract “somewhere on this slider”. So, with feedback in mind, the third iteration was created.

I am mostly happy with this last window. There are tick marks on each slider differentiating between major points (I.E. less than a day, less than a week, less than a year, and less than a decade). Additionally, if you move the slider all the way to the right you get “Forever” which is great way to not have to add an additional checkbox that disables truncating backups. The same logic is applied to the Backup Frequency, which allows specification for sometime within each hour, each day, each week, each month, each year or never. Again, we are spared the expense of an extra check box by having the maximum value on the right be “Never”.

The work needed to create this (relatively simple) preferences dialog is fairly significant and definitely not to be forgotten. It can make the difference between having an app that is simple and clean or an app that is cluttered and unusable.

If you feel like following the progress of TimeVault, it is hosted on launchpad at https://code.launchpad.net/~astromme/timevault/timevault-kde4

4 Dec 2008

2.7 RC Update Successful

Posted by astromme. No Comments

Success! The backend has changed quite a bit in 2.7 but there shouldn’t be too many differences in the blog (or feed) appearance. Now it’s time to work on KDE 4.2 beta1. There are packages in intrepid-backports that I’m itching to try.

Tags: , , , , , , , ,

4 Dec 2008

WordPress 2.7

Posted by astromme. 1 Comment

WordPress (the software used to power this blog) 2.7 is nearing release. As I’m feeling a bit adventurous today, I’m going to install the release candidate on blog.chatonka.com. If all goes well, you should still see this post later on today.

Later I’ll blog about how I use revision control to manage my wordpress install. It really makes updating vastly easier.

Tags: , , ,