On top of Tasktop

My post about tracking time attracted the attention of Tasktop. While this had been mentioned to me before, I was mistakenly under the impression that this was a windows only app.

I was pleased to find out that this was also available for linux. Great… Lets try it out.

First stumbling block is the requirement to register on the website before I can download a trial. I am a firm believer of try before you buy. I should be able to register but it should be entirely my choice.

I am more comfortable with registering before buying or for the use of a free piece of software. However, registering for a trial always irritates me. This was also the case when I wanted to trial InDesign / Illustrator the other day.

After registering, there was the irritating wait for the email to arrive. Now, this is irritating. When I want something, I want it NOW. I hate waiting. Adobe did not make me wait for the confirmation email of registration before downloading the trials. There are two good reasons as to why this irritates me.

  1. Email, as reliable as it is generally, can take time. In theory, this can be anywhere from a few seconds to hours. How about if my mail server is currently down. Or even more importantly, what if I have shut down my mail client so that it does not keep distracting me from something that I am trying to do. Opening up my mail client, I now want to find out about the other emails that are in my inbox and whether any of them require an action…
  2. I have reluctantly provided details about myself. Confirming my email address before I am allowed to download a trial suggests that Tasktop does not trust me enough to just let me download the trial. The software has started off on the wrong foot. How much of an issue is it really if someone gave the wrong details before downloading a trial. Is it really that important that you are able to keep bugging them via email to buy the product?

I was curious enough to jump through the hoops to download the product. The first thing I noticed is that there is no 64bit for Linux :-(. More steps involved in installing this on my 64bit machine. So instead, I installed it one of my 32bit machines – save time.

Once the download completed, the steps on the website suggested that I needed to configure it (with ./configureTasktop.sh) and then run Tasktop. The configuration step required no input from the user and outputted nothing. I have to ask:

  1. Why is the configuration step not integrated into Tasktop and configured to run once? Alternatively,
  2. Why does the configuration step, not start Tasktop right after.
  3. Even better: Make Tasktop a symlink to configureTasktop.sh, which then relinks that to the Tasktop Binary with the configureTasktop running Tasktop right after. This means that from the users perspective, they are always running the same command, and you save any cost associated with run once checks.

I finally got Tasktop to run and it asks me if I want to install the firefox addon to integrate with Tasktop. I want to see how it integrates, so I do. Of course, this is yet another step.

A restart later, I was ready to try out Tasktop – or was I? We use bugzilla to track tasks and I wanted to integrate that in similar to how I do it in Eclipse. This was also trickier than I expected.

I went into the partner connectors section which did not cover bugzilla, which I assumed meant that it came with Bugzilla integration by default. This is true but how the hell do I get there to configure it. It took me a little while to find the configuration section (there are no menus). Once I was there, I wanted to get back to the original layout which was tricky since the “close configuration” button was nicely hidden away up at the top right.

Once I had this working, I tried out the active/deactive mechanisms and this works just the same as in Eclipse. Except with the Firefox plugin, it adds in the links that you browse as part of your context – GREAT!

Add in a task to blog about it and went through writing half the document, then decided to de-activate it before I started working on something else. All the firefox tabs were closed – again, great…

The problem is that when you re-activate the context, it just clears the tabs in firefox and shows you the links you last had open. The page titles for the pages that I had open were the same for a few, so going through them trial and error to get to the blog post was tricky. More importantly, the cookie was already gone and I had to re-login. This might be a timeout issue with WordPress so wont tag that against Tasktop.

I haven’t tried linking folders / files yet but considering that with the above process taking me more time than I expected due to the sheer number of steps involved, I shall have to leave that to another day. In all honesty, it might never happen.

I do like the time logging feature of Tasktop as it tells me which tasks I spent my time on in different chart formats. This is great. However, I have a problem in that this is on an individual basis. I see nothing on here about how a team leader can link in Tasktop used by the team to calculate total time spent on a project / task. This is a necessary feature for a tool like this in the team environment.

It is possible that all of this is easier in a windows environment. Possibly because it was built on there, but more likely because Windows users are used to taking several steps to achieve something (what is it – 7 clicks to delete a file in Vista?)

Having ranted on for a while, dont get me wrong. I think that Tasktop is a fantastic concept and with a bunch of tweaking can be a very intuitive tool to use. However, at the stage that it is in, it does not do what I need it to do. It is actually more obtrusive than useful (e.g. by removing all my tabs from firefox when switching out of a context and not re-instating them on going back to the context).

Then, it is probably just because I simply expect too much… 😦

Breaking Software Down

Jeff Atwood likens software development to tending a garden. I can relate to this. In fact, I would like to ask, if you have a nice plant in one of your gardens, how complicated is it to “copy” that across to another one?

I realise that I am moving away from the analogy here but there is an important concept here. Libraries were born out of the desire to share and distribute code to be re-used.

The idea for Remote Procedure Calls dates as far back as 1976. Microsoft brought along OLE and then COM made this more generic and better.

RPC is widely in use these days and there are several other mechanisms for inter process communication including CORBA, REST & SOAP.

I don’t think software is broken down into small enough components. *nix is great in that you can tag a whole bunch of commands together on the command line to do some amazing things. I have personally piped data through a dozen or so commands and scripts to do some interesting things.

If we could break everything down into individual components that could be linked together, we would have a massive arsenal of interoporable tools that each user can pick and choose to put together very powerful solutions.

How many times have you found a piece of software that does one thing really well, but fails in something else. Then found another piece of software that does the other thing really well.

For example, the extensibility of Firefox is fantastic but I love the rendering of Safari. I love the Contact Management within Evolution and the Mail capabilities of Thunderbird.

Why don’t we break each software down into each of it’s individual components (and I am not talking about libraries here) and allow them to be deployed as services usable by other pieces of software.

In other words, release the contact management capabilities of Evolution as a product of it’s own right with a pre-defined API that any application can link into (including perhaps a web interface). Release the Mail management component of Thunderbird as a service, Release GUI’s as a component. Then we can pick any GUI we want, link into a specific mail component and another addressbook component.

Do one thing and do it well. In fact, let’s take it one step further and release a public API for each software component – an API for Mail, one for Contact Management and so on.

Each software component can then be a black box that delivers this API.

Choice can be a bad thing if it makes it difficult to choose – Subclipse vs Subversive is a good example of this. Let us however, not confuse choice with flexibility.

Let’s say that you want to find all the files within a folder modified within the last 3 days containing the text “abracadabra” and then replace all occurences in those files of the world “super”  with “hyper”.

To do this in linux, all you would do is chain find (to identify files modified in the last 3 days), grep (to identify only the files that contain “abracadabra”) and sed (to do the replacement).

If you know these commands well enough, you could chain something together in half a minute or so. You could probably figure out how to do this with the search tools in Windows within a minute or so but where this really shines is if there are thousands of files that needs to be processed. With other search tools, you would have to wait for the original search results to be returned before running to replace operation. This takes up the users time.

With the chaining of commands, I have run it and worked on something else while it completes.

Let me visualise a brave new world:

In this world, all software would be interoperable components. For example, there would be components for:

  • Mail account management (Perhaps genericised into configuration management)
  • Text composition (usage for mail, documents, plain text et al)
  • Text reading (again, usable for mail, documents, plain text et al)
  • Spam Filtering (already available to some extent)
  • Contact Management (optionally linked into organisation’s LDAP server)
  • Task Management (Standalone Mylyn if you know the product)
  • Scheduling (or calendering if you prefer that term)

If all of these components were interoperable, then there would a GUI that is generic and could bring all of these together. In this way, the people working on each of the components could concentrate on doing one thing and one thing well.

If we then start working on public API’s in a collaborative fashion, each of the component could be fleshed out to be as flexible and complete as necessary to gain maximum benefit.

If these components provided the services as a network based API, it would also allow for the components to be distributed across a network providing redundancy and efficiency. This makes it easier to turn each desktop into more of dump terminal concentrating purely on user interaction and getting closer to the invisible interface.

Software as a service has taken a step in the right direction. Can we take a leap and have software component as a service…

Foxy Web

Since Firefox 2.0, I have never felt a desire to use Internet Explorer. There have been times when I have used IE, either out of a need to test a website on the browser or purely as the first step to downloading Firefox.

According to W3C, as of November 2008, IE(6/7) dominate 46.6% of the market with Firefox at 44.2%. Compare this to November 2007 when IE (5/6/7) dominated 56% of the market and Firefox only had 36.3%

It is interesting to note that between Nov 2007 and Nov 2008, Linux adoption (as far as internet browsing is concerned) went up a meagre .5% from 3.3% to 3.8%.

This means that a very large proportion of the firefox users are from the Windows Platform. Why is this impressive? There is technically no reason for a user on Windows to download Firefox. Windows comes with Internet Explorer, which should be adequate for all the internet browsing needs.

If 44.2% of all windows users went to the effort to download, install and use firefox instead of Internet Explorer which comes pre-installed, let me ask the question – if Windows came pre-installed with Firefox instead of Internet Explorer – how many would go to the effort of downloading and installing Internet Explorer.

While it is possible to install Internet Explorer on Linux, it might be a little unfair to answer this question based on the number of Internet Explorer’s running off linux. People who run linux have proven to be biased against Microsoft anyway, so it would be a loaded statistic.

While I have no doubt in my mind that Firefox is better than Internet Explorer, I still don’t feel that Firefox is perfect. It still feels far too bulky, with disproportionate memory usage and it is still not as fast as Safari in terms of page display.

Sure, the addons and themes functionality is great and useful. However, it would be nice if it was faster to load, faster to use and just felt more lightweight… like Safari does….

Having said that, I am not going to switch to safari. I like the browser but it is still just not as good as firefox.

One of the points of open source software, should be to bring all the benefits of all the competing pieces of software into one but it just doesnt work like that. If Firefox had all the benefits of firefox as well as the benefits of Safari, I am sure the adoption rate would be far higher…

Lets take it one step at a time… I vote for firefox feeling a lot quicker and snappier for a wishlist… 🙂

Design

Admitting to being a techie – I have often overlooked design. In fact, I have often explained to (potential) clients, using the analogy of a ferrari that we make the engine and everything else work while somebody else makes it look gorgeous. For me, how something looks was largely irrelevant – as long as it worked well.

This explains why, for a long time, I used a fairly bland desktop environment. My desktop itself was just pure black with no wallpaper. Ironically, I would remove all the icons, so it would be pure black and nothing else.

This should have tipped me off on my own desire for design. I thought my desire for black stemmed from the “good old” days of DOS when the screen was black and my love for the linux terminal. As an aside, I used to reconfigure the terminal windows in X to have a white on black background as well – so much better for the eyes. In fact, I still don’t understand why everyone uses a white background for terminals and such like. Paper was white because that was easier. There is really no reason for the screen to be white too…

Now, this was before I bumped into Enlightenment (at this time, it was E16) and to put it bluntly, I was captivated. This this was absolutely gorgeous. Fairly unusable since I was used to GNOME and of course Microsoft Windows. I thoroughly enjoyed this until it became more of a distraction…

I ended up reconfiguring GNOME to be prettier – in fact, I had the Mac OS X theme for a while which I enjoyed.

I then dabbled with E17 and it was absolutely gorgeous – E16 paled in comparison. I ran into a bug where some java applications would jump a few pixels when changing the decorations. This was a real pain since I was developing a Java application at the time. I spent an entire day trying to “fix” this before I realised that it was E17 screwing it up and not my code… 😦

More recently, I thoroughly enjoyed Compiz with the shaky windows and such like – I just always wished that I could actually throw a window and watch the momentum carry it that extra distance.

Nevertheless, this bridged the gap enough to E17 to keep me happy for a little while.

Last week, I dabbled with E17 again to see if the issue with Java was resolved. To my surprise E17 had changed more or less completely – it was bridging the gap between a window manager and a full fledged Desktop environment.

However, there was a problem. It looked like I couldn’t get it back to its old glory of absolutely fantastic graphics without some effort in configuration. One other issue I ran into was that maximising a screen would fill it up across both my monitors. Another thing I could configure but then, it all seemed like too much effort.

E17 gives me the feeling that this is where user interfaces will end up – it automates so many of the things that makes it quicker to do anything. However, it still lacks some of the “basics”.

E17 is a very good example of a UI that tries to conform to what I call the “Invisible Interface” which I will be writing about later.

To bring it all back to now, I found it a hassle to go through all the available themes for WordPress for the Company Blog as well as my own.

I used to take great pleasure in going through dozens or hundreds of themes and picking ones that I liked but after doing it a few times (for Firefox, Thunderbird, my phone, GNOME, GDM and my flat), it gets a bit repetitous.

Now, for a wish. A website that pulls in all the different themes for all over the world for everything. A one-stop-theme shop. Here, I could go through and pick a general theme that I liked and download it for all the applications, my phone(s), mp3 players (and of course, taking it to the next level, all the gadgets at my flat).

That gives my life more uniformity. Perhaps this is something that Designers could take on… Say Hugo Boss, and design something that even matches your clothes, shoes, hair – everything.

That way, you could have your own unique branding… and while you are at it link it into Gravatars and you are also instantly recognisable

Now for the issue of privacy – I think I best leave that for another day.