Customisation

Being an avid Linux user for users, I am seriously spoilt in terms of being able to customise everything / anything to be more the way I want it to be…

Two main reasons for this is that most software that comes on Linux is highly customisable to start off with. The second reason is that if you don’t like something, you can change it.

There is also the nice thing that most things that you think would be cool or useful in software is already available in some form since someone else thought so too, but before you did and has had the chance to spend some time building it.

I love this so much so that I have often put together a quick linux box for doing things that one could easily replace with an embedded device like a router. I have swayed between the two options based on how much I want simplicity vs flexibility.

One of my favourite responses to someone telling me that we need something that we don’t have is – “we’ll build one”… The software customisation / writing has turned into a metaphor that I apply across more and more things. You need a new table with custom bits – let’s build it. You need a classic car with all the modern gizmos – you know what – let’s just build it.

This has its pro’s and cons. For one, it feels like anything is possible. It also becomes very frustrating to work with limited, limiting, or closed source software (esp when you just want to fix a quick bug that really irks you). It also eats up all your time as you try and do all the things you want… just because you can…

Striking a balance is hard especially when a client asks if it is possible to do something very specific. The answer is of course yes and there is a question that goes with that response. At what value does it become cost effective and provide a good Return On Investment(ROI)

Controversy

We have never been shy about voicing our opinions or being controversial. While discussing some PR requirements recently with a potential agency, the question was asked about whether we would be willing to be controversial.

We are not necessarily controversial, just that we hold a view that is usually a little different from the mainstream views. It could be said that we bring the alternative to the mainstream.

But then, so did some world governments, bringing open source software into their work places, successfully or unsuccessfully in the last few years instead of Microsoft.

Someone recently suggested that we were anti-microsoft. I don’t think that is case. Microsoft has its place in a technology infrastructure. It is simply that its position is usually overrated or misplaced. As far as desktops for technically shy users are concerned, there is really no alternative but Microsoft Windows. I can hear the Mac users scream that Macs are also an alternative. Theoretically, yes but the fact is that they are too expensive for someone to dabble with it. This is precisely the reason that Microsoft Windows dominates the desktop market.

We support and use Linux. In fact, the majority of the desktops in the office run Linux (Ubuntu as it happens) but people who have a non-technical role use Windows. They could use Linux but Windows is better suited to their role.

This is not necessarily a cost-saving decision. Sure, we have saved thousands of pounds by sticking to Linux instead of using Windows but that is a co-incidence more than anything. In some ways, it is a testament to the skillset of the people who work at Kraya that they are comfortable with Linux. The mindset of Linux is in alignment with the mindset of a developer.

I used to develop in Windows and I often found myself fighting with Windows, whereas with Linux, it just fits. There are several reasons for this. One being that Linux forces you to understand what you (trying to ) do to a bit more depth instead of pretending its magically taken care of.

I am not, for one moment implying that developers who use or develop on the Windows platform is inferior or not as skilled. Simply that my experience was that the Windows platform made it easier to do things badly and more difficult to do things well.

Microsoft has done wonders in bringing technology to the masses and making it more accessible. However, there is still a massive barrier, even for people specifically in the technology sector to appreciate and use technologies which require a bit more experience or knowledge to use appropriately.

There are a couple of really good examples. PostgreSQL is a powerful outstanding database server that can easily compete with Microsoft SQL Server and Oracle. However, very few people know about it and even fewer use it.

MySQL on the other hand is also an open source database server but is much more widely used and accepted.

It surprises me when MySQL is used when PostgreSQL is, from a technical perspective better suited. MySQL is faster than PostgreSQL at the cost of poor transaction managment (at best). For any system where data integrity is even remotely important, PostgreSQL is a better choice. However, since there are better GUI tools for MySQL and since it is easier to get the hang of, it gets chosen.

This give technology and people in that sector a bad name. Every tool or software has its place, and should be used in an environment where its strengths are displayed, not its weaknesses. We have instances where we use multiple database servers within one project. PostgreSQL for all the data integrity sensitive areas and MySQL for the speed sensitive areas. Sometimes you want integrity and speed. In these cases, you have to make a choice based on which is more important or layer the databases to use the strengths of both.

Metaphorically speaking, MySQL is a hammer, and PostgreSQL is a sledgehammer. Would you use a sledgehammer to crack a nut, or a hammer to crack a slab of concrete?

Before someone jumps down my throat, I am not suggesting that PostgreSQL is better than MySQL or vice versa – just that they both have different goals, different strengths and weaknesses. They have spent a lot of effort to converge and strengthen their weaknesses but not matter the amount of convergence, their core goals are still different that they will never truly be able to remove their weaknesses without giving up some of their strengths as well. One tool cannot be both a hammer and a sledgehammer…

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… 😦

X11 Remote Applications Responsiveness

As a developer, I use eclipse a lot… We have a powerful server that off which eclipse is run which allows us to keep the desktops at a much lower spec. In general, this works well for us.

However, recently, I have been niggled by the amount of time it takes to switch perspectives on eclipse. It takes a good 4 seconds to switch between perspectives.There is also a noticeable lag when performing some operations.

To resolve this, I spent a lot of time looking at the linux real-time and low-latency patches. I had expected that running X11 applications remotely would not cause a bottleneck over a gigabit link. Turns out that I was wrong.

To test this, I ran a vnc server on the application server and found that switching perspectives on there was super fast.

To be able to resolve this, the first thing to do was to remove any latency put on the X->X communication by ssh.

We use gdm, so I had to enable to TCP on there first. Do this using the following config line in /etc/gdm/gdm.com

DisallowTCP=false

Restart gdm

on the remote host, export DISPLAY

export DISPLAY=<yourhost>:0

and run your application.

I found the application to be a lot more responsive after this. I didn’t have to worry about X auth since we have nfs mounted home. If you don’t, check this mini howto

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… 🙂

Evil Linux

I received an interesting link in my email this morning. The story (which thinks that sauce and source are the same thing btw)  covers a school in the United States that has banned the use of Linux because “anything that wasn’t Windows was illegal and immoral.”

I could only ponder about the sheer stupidity of this teacher and wonder about the next generation of students brought up under this ignorance.

I grew up with Microsoft, with DOS 3 as my first Operating System and went through DOS 5, 6, Windows 3.1, 95, NT, 98, & ME.

I also played around with BeOS, and various versions of Mac.

I was then introduced to Linux turned into an open source zealot and wiped out my Windows installation in anger. Since then, while my primary operating system is Linux, I still have Windows running on my Laptop and have both Windows & Linux on my home computer.

I have since worked with Windows 2000, XP, 2003 & Vista. I love what Microsoft does with these products. They do innovative things, pick up features from other products that are useful and try to simplify things.

My Laptop came pre-installed with Windows and I never went to the effort of installing Linux and I use my home computer to play games, which (whether I like it or not) just handles games so much better.

As per the old joke, It is the software engineers job to make software as idiot proof as possible. It is the job of the universe to create bigger and bigger idiots. So far the universe is winning.

Linux & Open Source software (in general) takes a different approach to software. It should be easy to use and manage software but it also expects you to understand (or at least think about) what you are doing or trying to do.

Microsoft seems to be under the impression that this is not necessary. The user does not need to know what they are doing – they just need to know what is to happen. e.g.

Lets take a simple operation – deleting a file. Before Windows 95, this used to be a simple, difficult to undo operation. Windows 95 brings in the concept of the Recycle Bin (or Trash), a concept that was available on the Mac platform for quite some time.

After this point, you no longer delete a file on Windows – you move it to the Recycle Bin, which will delete them from the disk when the number of files in there exceeds the set capacity.

Now, from a users perspective, what they are doing is deleting a file – in fact, thats what the menu item says – Delete. But what happens is completely different. The file disappears from their folder. What they aimed to do – “make this file disappear” has happened. However, the file has not been deleted.

Windows has effectively lied to the user since it is “smarter”. If the user later discovers that they deleted the wrong file, it can be recovered easier. However, that is not the point.

Microsoft software, are in general rife with such miscommunications. I find this fairly insulting and this was one of the main reasons that I started using Linux.  If you ask it to delete a file – it deletes it. If you want to move something to recycle bin, it can do that too.

To go back to the original point, the ignorance shown by the teacher in this school is exactly the kind that Microsoft panders to. Microsoft allows (nay encourages)  its users to be as “simple” as possible and let Microsoft worry about the rest.

Don’t get me wrong. I think that Microsoft do a fantastic job in making software accessible and easy to use but it should also help educate it users on what they are doing and help them think about what they are trying to do. Don’t pretend or try to do their thinking for them. Thats their job.

“Give a man a fish; you have fed him for today. Teach a man to fish ; and you have fed him for a lifetime”