Thursday, August 14, 2008

CheckInstall + InstallWatch = Lethal Combination

A good way to keep your N systems up to date without re-compiling N times (especially Samba/Wine which take ages).

Many packages do not come with a "make uninstall", so trying to get rid of software that you have compiled from source and installed is not a trivial task, and your system ends up getting polluted.

A tip I learned from the Linux Journal was to use checkinstall to manage source installations. Together with installwatch, checkinstall tracks the changes to your system, at the same time allowing you to conveniently create RPM/DEB/PKG archives for Redhat/Fedora/Debian/Slackware for distribution on other systems.

RPM generation used-to, and still is an arcane art that I never bothered to learn. Now with checkinstall, there is no more excuse.

Yeah.

Sunday, August 10, 2008

Portability

I'm sure many of us are used to this when we get a new computer:
  • spend one full day to install all the applications you need
  • and spend the rest of the week to get all the patches up to date
  • then spend the rest of the month to customize all the settings to your taste
These things are also very common:
  • installing all our programs on every PC that we need to use the program on
  • try to copy a program to another machine only to find that it does not work
  • you have to install!!
Which is bad for our mental well-being because we:
  • feel helpless whenever we are not using our own machines
  • have no idea where the applications stores our files and settings
  • thus will be at a loss when it comes to migrating to a new system
We have always been doing it, and we wouldn't think of any other way to do it, simply because this is was all we knew. So we've been putting up with this.

No longer. I'm starting to move myself onto the next wave - running portable applications. These portable applications allow you to carry your applications with data and settings everywhere you go.

The prevalence of large and affordable thumb drives allow people to carry their all their applications and data on a tiny stick small enough to fit into a wallet.

In this increasingly IT literate world, most tech savvy people would have access to, or even own and use more than one computer at the same time. For example, a PC at home, a personal laptop, a company laptop, a company PC, ... (you get the idea). In huge companies, the IT department even disallows users to install their own applications (not even for development work) due to the huge logistical and support complexity of managing so many machines and so many people. Users are given write-access only to very limited locations (like their Desktop), and installing any application is out of the question.

When you start to use a new application, or install and updated version, you will have to install it on every machine that you own or work on. This can really be a hassle, especially when you have to make all the same configuration changes each time. Program installation can be a highly interactive process, and for some of us with high hourly rates, this process is certainly a waste of our time.

The solution to this: portable applications. Portable applications distinguish themselves by storing data and preferences in the program directory. The program folder can simply be copied over from anywhere, or extracted from the 'installation' package. All the files, data, and settings are stored inside the program directory, no registry entries are changed, and no other files are changed anywhere on the host system.

So after setting up 20 of your favourite applications once in the portable way, you just need to COPY the whole bunch to another computer, should the need arise. What usually takes a good 2 to 3 hours to do (when you install and customize manually, clicking tons of buttons throughout the entire process), becomes something that you can copy in 5 minutes (and all you need to do is just drag-and-drop at the beginning).

There are several portable solutions:

I recommend PortableApps.Com because it is convenient, flexible, has an open, active community, and most importantly, it is FREE! You can install and use PortableApps anywhere, on your hard disk, and even on your IPOD! Recently, I have even chosen to use the PortableApps version of a software on my home laptop, instead of using the installer program. Better yet, there are a LOT of applications that have PortableApps packages (including my favourite Wireshark, Programmer's Notepad, Firefox, Thunderbird, etc), and the list is still growing!

But why not installers? After all, every user on the same system gets to use the program, which only needs to be installed once, thus saving hard disk space. I think, for large applications like OpenOffice, it does make more sense to have a central installation which can be shared by everybody. But for smaller applications (~25MB or less), it doesn't make much of a difference compared to the amount of user data that is being generated/saved. Moreover, often, a system is being used by only one person during any period of time. Using the portable applications paradigm, when one discontinues the use of a machine, he/she will copy the app+data to the new machine, and remove the original from the old machine.

The U3 system is a proprietary system for putting applications on specially formatted thumbdrives. U3 is pre-installed on certain 'premium' thumbdrives (like my Sandisk Cruzer Titanium *wink*) which auto-launches when the drives are plugged-in, giving the user another "Start Menu"-like mechanism to launch applications. Since it is not as flexible as PortableApps, why do I still mention/recommend it? Well, after all, PortableApps is for slightly techically savvy people. U3 is suitable for people who could benefit from the convenience of carrying all their applications and data around in a thumbdrive that comes pre-installed, starts automatically, and allows you to do almost everything with an easy-to-use graphical interface. In short - "it just works".

Are you convinced yet? Try your portable apps today!

Saturday, August 09, 2008

PN2 Supports Tag Browsing

Programmer’s Notepad 2.0.8 Stable Released

Finally a new stable build! Programmer’s Notepad 2.0.8 has been just over a year in the making. Some of the highlights of this release:

  • Extensions interface, allows extension of PN using C++ add-ins
  • Python extension (PyPN), allows scripting of PN using Python
  • Tag browsing
  • Keyboard customisation
  • Comment insertion/removal
  • Autocomplete (based on keywords and tags)
  • Code templates

Wednesday, August 06, 2008

Gesture Control

Saw the review on the Toshiba Qosmio G50 laptop today on Digital Life. The thing that caught my attention is that it claims to be the first laptop that supports gesture control, using the built-in webcam. (Now this is a topic for pervasive computing).


Actually, thinking of it, gesture control is not a new concept. The Nintendo Wii already uses gesture control as its main feature, although the medium is not from moving visual images. For example, an IPAQ coupled with an accelerometer makes use of the same concept (just that Wii got it right and commercialized it).

Seems like GestureTek is the pioneer of gesture control software (according to Business History Today).

Sony Ericsson's upcoming (?) Z555 touts gesture control - on an interesting, but unrelated note, it is a clamshell, a breakaway from Sony Ericsson's affection for candy bars - as seen on Network World which thinks that gesture control may be the "new wave in consumer electronics". Given time, I believe that gesture control will be the new wave in personal and ubiqutous computing as well. (Not needing even a touch screen nor a stylus)

This should be what computing is all about. Humans should NOT be adapting themselves to the machine interfaces, as is the case with ALL technology nowadays, instead, machines should adapt to humans, and reliably guess what they want. ("You want me to click OK? NO! YOU click OK!" - Prof Larry Rudolph)