Skip to content

thoughts on software, life, the universe and everything else.

I like simple things, and I believe I’m a very simple person –though my wife of 13 years begs to differ.

My quest for software that’s as simple as my needs, is an on going one, my good friend Tamgo, jokingly asks me: “What’s the OS of the month?” and he’s right I do change Os’s quite a bit trying new things, looking for what I deem a simple, and yet effective OS for my needs.

What are my needs? That’s quite easy to surmise:

  • Extensible
  • No restarting (minimal will do)
  • Robust
  • Smart
  • Unobtrusive
  • Privacy
  • Open

Taking the short list above, you’ll find that in the case of Os’s currently available there are compromises to be made.  The problem with compromising is all good until you get annoyed out of your skull by that item that’s always on your face nagging you.  Let me give you an example, I’ve been using some form of Unix for most of my computing life, lately I’ve been using Linux more than any other Unix derivative, I started using Linux somewhere around 1994 - 95 and it’s been a fun ride, full of little annoyances, but fun.  Lately it has become really annoying, I’m sure it’s me (showing my age), and to be honest compiling a kernel for the hundredth time is not fun anymore.  I was once somewhat active in the community, helped in Gnome, and other software, and still today most of the things that annoyed me back then are still there!  That’s really annoying.  Now you may ask: If  it’s annoying why don’t you fix it?   Assuming I can fix it, and I’m not saying I can, it’s an up hill battle, that will upset many, many people, for example, I find Evolution in Gnome basically useless, it’s slow, and not only is it slow, it slows the system!  There are far more useful, and better alternatives out there, and suggestions to temporary remove it from Gnome, until it’s more robust has cause major flame wars, and even personal confrontations, but the point is it’s still there, some people use it daily and love it, others hate it with passion. Linus Torvalds, loves KDE. I don’t, not one bit, never had, and it seems I never will. It would make this a very long post to explain why I don’t like it, and that’s not the point of this post. If you like Evolution or KDE by all means use it, I’ve used the latest versions of both so no need to point me in any direction regarding this.

So as you can see, getting a good balance for some of my criteria is difficult. If we enter the realms of programming editors, it gets even worst, leaving very little choices in that regard.

Transcending the limits

Extensibility

I experiment, and try out a lot of different tools, because I’m looking for that tool that will enable to be more productive, letting me implement my thoughts and ideas in the most elegant, concise and easy way possible. There is a lot of research going on in usability, focus tasks, etc. All in the name of making us more efficient, and leave us little time to procrastinate.

Procrastination is one the things that really affect me, but it’s more out of boredom than anything else.  As my wife puts it, if I’m really interested, I will spend days, week, months and years until I see it through, if I loose drive, I will drift to some other area.  She’s completely right, and in all honesty that’s something that I need to fix, but there is something to be said of the way we work, maybe it’s just me, but if the medium I use to do my work, is giving me a hard time, or making it difficult for me to progress on that front, I simply walk away and find a new medium that will aid me in finishing my goal, and that’s the problem with most software, and most things in life today, they are not extensible.

Being Extensible, is the biggest feature there can be in software, and if you add to that ease of use, then well you have a partial winner. One of the things that core Emacs users love, is being able to build your environment from the ground up for your different needs, there is the issue of learning a new language (to some this is a drawback) to create this environment, in the other side you have Eclipse which is doing the exact same thing, but it’s based in a popular language, Java, and it is awesome, but it’s not suited for basic little things, it’s not dynamic (for some this is a good thing) but I believe that in this type of tool a dynamic medium is better suited. To make the point look at TextMate, it’s booming, one of the things people rave about is it’s Bundle mechanism, which is basically scripts (Bash, Ruby, Python or whatever you like) that get loaded and executed dynamically, you can download ready made from the net, or make your own bundles, make your own little commands that do “x”, you are only limited by you imagination, and the tool.

Restarting

Being extensible is a waste if you have to restart your application every time you make a change, or add a new script, that’s insane, and it’s one of the things that annoys me in eclipse. But this is not limited to the computing world, imagine having to turn off your CD player, every time you change Cd’s so the new one get loaded, insane right? Well it’s the same with software and with most things in life, things perish, and software and hardware will need a reboot from time to time, that’s a given, but it seems it’s taken to extreme sometimes. The time you save with dynamic loading is worth effort to implement it.

Robust

This is tricky, because in the software world, there are a lot of variables, so what is unstable for me, can be rock solid for some one else, hardware resources play an important role in this, and while my personal preferences are not so demanding in the eye candy department, I’m quite happy with minimal applications, like console based editors, etc..  Why is minimal good? It’s not that’s good, or better, is that there is less chances for bugs,  a bigger program has more chances of hidden bugs than a small one, though there has been cases where the contrary is true, so it’s not a rule or anything of the sort. Having tools focused to one thing, that they really well, are valuable and should be encouraged when applicable.

One of the things I like of Emacs, is the fact that in over the ten years I’ve been using it, it has never crashed and lost my work. What? That can be true! I hear you say, well in my particular case it is. I’ve had moments when it has been unresponsive but it has never died on me, I either manage to bring it to life, or kill it, even then, my work has never been lost, a lot of people will go: “Yeah, sure whatever, God bless Emacs” but think it over, how many times have you lost your work  or part of it, because of a software or hardware glitch? How many times, have you saved a file, to find out for some reason it was not saved? This is not such a huge feature, it’s actually a very small logical feature to have in all programs, and yet we find programs lacking in this front every day. To be clear I’m not saying Emacs is superior because of this, I’m just using it as an example, substitute Emacs for whatever program does the same for you, Firefox 3, is another software that does a nice job of saving at least your sessions when it crashes, and there are others, but they are in the minority, and why is that? Is this so difficult to implement? I don’t think so, I think it’s just taken for granted.

Crashing is the most annoying perceivable issue, but there are others, some times applications get blocked because of an ongoing operation, this annoys me to no end, there are so many ways to avoid this, that there is no excuse in my book for such a thing happening.

Smart

This one is difficult to explain, I’m a AI researcher wannabe, I love AI, though have never had the chance to do anything or study the field formally. But there are a few things that can be done to make a piece of software smart, the first smart thing to do, is to make it extensible and robust, after that everything is icing on the cake.

Really I would love to have software be able to learn from our use patterns, to enable us to be more productive, it’s not an easy or simple proposition, we will get there. To be clear I’m not advocating clippy or an intelligent clippy, what I’m advocating is more a system that develops macros (as in lisp macros) based on our used patterns, that will enable to select and run said macro, instead of doing it ourself, this is possible to do in some applications, but not without getting your hands dirty in some wierd scripting language, I’m talking of no user intervention, and no need to be a programmer.

Unobtrusive

This one is obvious, I hate popping windows, and dialogs when I’m in the middle of something, be it reading a web page, or coding. I just can’t stand it.

In this days of information overload, it’s imperative we find ways to unplug, be it metaphorically or literally, I for one has opted to code offline, I take my computer offline when working, I download all the documentation I need, and if I miss something I go to my laptop, get it and walk back to my workstation. This so far has been a blessing for me,  and thanks to distributed source code managers, it’s easy to upload and sync all my work.

The net has become the biggest burden and procrastination tool in the history of man kind, that’s my opinion of course, don’t get me wrong I love the net, but it’s just a bit too tiring, trying to be on top of everything, and frankly it’s not worth it, so now I read a select few sites, rest of the time I’m offline doing some work, or playing video games (yet another procrastination tool).

Privacy

This is one is short and sweat. Applications don’t need to phone home ever! Protect user data. In the case of OS, disk encryption, should be a default option. I have nothing to hide, but I have no interest in people snooping around, so yes I have my hard disk encrypted, and have very aggressive firewall rules in place, intrusion detection systems, etc.. I use tor, and while I know it’s not completely private, its better than nothing. Call me paranoid all you want, but what I do or don’t do in the net, or in my life, is my own business, and no one else.

Open

Ambiguous I know. But that’s the idea, I’m not specifically talking of open source, I’m an advocate of full disclosure, If there is a problem with the software I use, I want to know, and want to know as soon as the company or the developers know. Same goes for my car, if there is a known fault from the factory, tell me about it, so I can deal with it ASAP, don’t wait till I or someone else is in an accident to recall the damn things!

Conclusion

The above applies to other things like hardware, and even to business practices. What will the benefit in our overall life’s would be? I believe it would enable us to enjoy life more by finishing our tasks sooner rather than later, and be more efficient with our time, so we can spend that time where it really matters with our families, playing video games, and going out.

One Comment

  1. First of all, I wholeheartedly agree with your comment about Evolution. It is probably the worst piece of junk I have ever seen bundled into a Gnome (which otherwise is actually pretty good). I don’t remember ever having a good experience with it. They have all ranged from ‘bad’ to ‘horrible’.

    Second, I also agree that the greatest asset a piece software can have is being extensible. We have seen the runaway success things like Firefox and Eclipse have had. Yes, I am perfectly aware that they did not invent the concept, and this was being done 10 years ago by emacs, or whatever. But these are more “mainstream” products that have brought the concept of extensibility to people that would normally never consider the concept. They also have very cool ways of deploying their extensible plugins or extensions, that I personally had not seen in practice before, but I could be wrong.

    Even though it’s not free (as in beer or as in speech), the iPhone/iTouch is bringing extensibility to the smart phone market. Although palms and other similar devices have had this feature for a while, it has done it in an elegant way. Now everyone is rethinking what a cell phone is, and how they use it in their daily lives. I think the new term that is trying to be coined is “palm top computer”, because it really stopped being a phone a long time ago.

    I think in 10 years we are going to look back and declare that the iPhone/iTouch is going to be most important computer related invention of this decade. Not only for it’s own merits, but for everything else that will directly, or indirectly come out as a consequence of it’s existence. Ranging from products that run on the device, to products that competitors make as a response.

    Third, I also think that intelligent software can be a very interesting third frontier. We have to be very careful what we consider software intelligence thought. As clippy and the Office collapsing menus have shown us, something that has the intent of making your life easier can very quickly make you pull your hair out.

    I consider myself an (AI wannabe) ^ 2. I am also fascinated by the subject (but which geek isn’t). I have some books on it (not that I have gotten around to reading them yet). Making adaptable software is definitely a place where we can grow.

    As far as the OS you are looking for, you will never find it. I am sorry to say it’s just not possible. All the popular (and not so popular) choices we have today will make you compromise on one or other thing eventually.

    I will recommend what I have recommended to you dozens of times. Get 4 - 8 GBs of RAM (you already have some good horsepower), load XEN or VMWare ESXI (they both run off the metal, without an underlying OS), and run 2 or 3 OSs at a time. Do your editing in Linux and listen to music on Windows. Do the activities that you like on the OS that you like. We have the technology and the hardware resources to do it.

    The only drawback to this kind of technique is that you will have administer all the OSs, which can be a pain in the ass, especially for a person that is so picky like you. I don’t have a solution for this. I simply recommend that you take one OS (your pick, I don’t care) as your main OS, make sure that one is up to date, and solid. The other ones don’t really matter. You can keep snapshots of them, if the get corrupt, you can just restore them at any point in time.

    Of course, I think you are just going to continue with your merry go round of OSs anyway, irrelevant of what I say.

    Posted on 02-Aug-08 at 4:48 pm | Permalink

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*