Sunday, February 19, 2006

Dream merger: Logitech, Apple and Dyson

Three great technology companies that make extensive use of plastics in their products. Three leaders on ergonomics and usability. Wouldn't it be great?

Joking aside, Steve Jobs once commented in an interview about how he got absorbed in choosing a washing machine and how all sorts of household devices still fascinate and bother him for being so badly made. Well, guess what? Dyson make washing machines*. No, I'm not going to try and sell this one to you. You're too clever to buy it. Apple are not planning to take over Dyson. And James Dyson wouldn't be bought. He's a housemade man.

But Logitech? Nah, I couldn't point at Apple and say, "look what crappy mice they make!" 'Cause they'd be making Logitech ones.

* (and many other things, including vacuum cleaners)

Update 12/04/2006: The washing machine passage of the Jobs interview can be found here.

Friday, February 10, 2006

Eye tracking for window focus

What would help me so much right now is an eye-tracking device that gave focus to the window I was currently looking at. Random, but significant thoughts... One for the wishlist!

Tuesday, January 31, 2006

Codewiki

It just struck me that wikis are ideally suited to editing code, as each function name can be a link to the definition of that function, making code browsing a snap. Would be a trivial mediawiki extension. If you know of any code wiki, please let me know, too! I also suspect that some IDEs have this functionality?

Friday, January 27, 2006

GUI to queue and edit jobs to be done over ssh

Had the idea for an app that allows you to:
  • list jobs you want done over ssh (no point running more than one job at a time on single-cpu machines)
  • enable editing the cmdline arguments of each job before it is submitted
  • allow pasting or even drag-and-drop of jobs (e.g. between different machines) into the queue
  • allow reordering jobs
tags:, , ,

P2P RSS network

Have you ever been annoyed that when you subscribe to a new RSS feed, there may be only 10 articles available? Granted, this problem is addressed by some of the online RSS readers out there (I've posted before), but it might just be interesting to have the html content distributed by a P2P network. I believe this would significantly speed up loading of html pages for those feeds that use html. If you know of any such effort, please let me know!

tags:, ,

Thursday, January 26, 2006

Reinstalling Linux: a checklist

I thought it would be nice for people to have a checklist of what they need to back up before installing a different Linux flavour.
  • /etc - system configuration
  • /home - your files and configurations
  • /boot/grub/menu.lst or grub.conf
  • /var/httpd - only if you're running web services and using the global directory; on some distributions, this is not placed in /var (e.g. in Arch it's in /home/httpd)
  • do a mysqldump if you're using mysql; similarly for any other relational database
  • dump your package list - sometimes this is done by reading file names from /var/cache/pkg or similar after cleaning out old package files; some package managers will output a list (something like dpkg --get-selections on Debian and derivatives)

Monday, January 23, 2006

Remote desktop client with zoom

Wouldn't it be great to have a remote desktop (e.g. VNC) client that compensated for different desktop sizes by means of zoom? Libraries for such zooming exist in Mac OS X, GNOME and KDE, even Windows! Even better if the server supported it. If there is a way to do this, let me know!

Update 07/05/2006:
krdc has this feature.

Friday, January 13, 2006

Linux repository classification schemes

Originally, I was going to write this as an extended paper with a detailed review of how the ten main Linux distributions organise their software into repositories. However, I don't seem to have the time to do so, and will provide a brief overview here instead.

This is relevant to developing tools that allow comparisons of repositories, e.g. comparison of software availability (how many software packages are available; how quickly are new versions released, how current are the current versions, how many versions are released in a given time - three sides of a triangle; other comparisons might take into account stability and other criteria), such as whohas.

In any case, there are three main ways to classify repositories:
  • Maturity
  • Providence
  • Function
The classic example of repositories organised by maturity would be Debian, which at any given time has three branches which may be more or less distinct (there is a graph of the relationship over time somewhere on the web...) A peculiarity - indeed, a feature - of Debian is that one can almost freely mix packages from different repositories; so while one may be running a stable kernel, one could have an "unstable" version (the quality of unstable aka. still in development software is actually fairly high in Debian) of Mozilla-based (and -dependent) products. Many distributions (except source-based and advanced binary-based ones (Arch Linux)) occur as distinct releases in the wild, but Debian is the only one in which mixing repositories is common enough practice to actually work (in terms of documentation and being taken into account in development, if marginally).

A classic example of a providence-based repository classification is given by Fedora, which is now distributed as Core and Extras. Another common classification, especially used by RPM-based distros (for no technical reason as far as I know), is "Contrib", sometimes called Community.

Arch Linux has a hybrid of these two, in that Current correspond to Core, Extra and Community are self-explanatory providence-based contrasts, but there are aso Testing and Unstable repositories, which are code-maturity classifications and mostly contain packages that would otherwise be found in Core. To make things entirely confusing, there is a repository Unsupported, to which users can contribute buildscripts, so it is actually a fourth kind of classification, which I might phrase as binary-source-buildscript. Note that distributions will provide either source or buildscripts, but not both separately.

But to return to the original big three, the most prominent example of a functional classification would be Slackware, which classifies packages into base, latex, gnome etc.; however, these are not strictly repositories in that they would be separately specified in a package manager config file. Again, many hybrids exist - in Arch Linux, we also find an underlying functional classification into "categories", which resemble those in Slackware: x11, system, network, gnome etc.

Being aware of the different classification schemes used, one can get the full benefit of tools such as whohas.

Sunday, January 08, 2006

Does Wikipedia change the rules of language evolution?

I happened upon this example today:
http://en.wikipedia.org/wiki/Talk:Williams_revolution
and
http://en.wikipedia.org/wiki/Talk:George_C._Williams

It is argued that the term "Williams evolution" was coined either on wikipedia or in newsgroups. I find the wikipedia hypothesis quite plausible.

Picture this:
  1. Some editor of, say, http://en.wikipedia.org/wiki/History_of_evolutionary_thought writes something like, "George C. Williams' book led to a small revolution [...]"
  2. Over time, this becomes "George C. Williams' revolution", then "Williams' revolution"; someone thinks the apostrophe superfluous and the next person feels there should be something written about this "Williams revolution", so puts the infamous [[]] around it.
  3. Finally, someone budges and writes a stub about it.
  4. Meanwhile, the term "Williams revolution" has started being used in other articles because it's a more handy moniker than "advent of the gene-centric view of evolution". By now, putting it in [[]] is completely uncontroversial, because an article has already been written about it. So it appears on every imaginable page, ranging from "Scientific skepticism" over "Evolutionary theory and the political left" through to "The Vicar of Bray" (I am NOT kidding you!)
  5. Eventually, someone feels that Williams may be being given undue credit and does some research. All Google hits point to wikipedia, including those from scholar.google.com. Web of Science doesn't return a single hit. One contributor claims having heard the term on a newsgroup, but this is hardly evidence of common usage. Various people including myself check their textbooks and the books of Dawkins who are now suddenly being credited with having invented the term. Nothing. Nada. Puzzlingly, the German wikipedia mentions the term in spite of not having an entry about it.
  6. Due to lack of opposition, it is decided that it is not Wikipedia's business to have the power to coin useful phrases crediting someone who should not solely be credited.
  7. Someone works their arse off for an afternoon to eliminate all trace of the Williams revolution.
If you know of similar events, please let me know - this topic has only just begun to get interesting!

Tuesday, December 20, 2005

Visual secrecy: viewing angles et des autres animaux

Here are some ideas how you can prevent other people from reading your notes as you write them:
  • Write your notes in 3D, so that only people with appropriate 3D visors will be able to read.
  • Wear data visors that leave part of your visual field free to follow the lecturer; have your notes transmitted encrypted to the visor.
  • Use a laptop with very limited viewing angles.
Feel free to implement any of the former two and let me know when you succeed!

Monday, December 19, 2005

Linux/BSD utility: importing settings from remote $HOME

I'm just following and participating in a discussion about the desirable extent of customisation here that was caused by Linus' recommending the use of KDE.

What is sorely needed is a simple tool that will allow a user to connect to his home machine by ssh-entunneled ftp and just press a button for importing all his settings. Otherwise any extent of customisation will aggravate the user as soon as he has to work on a different machine.

Saturday, November 26, 2005

Xen and the desktop of tomorrow

Tomorrow's computing world will be dominated by servers hosting multiple different OS's as virtual machines, to which users log on by protocols such as VNC from their local thin client terminals, which are no more than a bit of RAM, flash memory, a marginal CPU and display and input peripherals.

I predict that in less than five year's time, the preferred practice for booting a computer will be by Linuxbios -> GNU/Linux -> Xen -> Virtual OSs; this will happen on a central server with parallel 64 bit CPUs and large amounts of RAM. By using virtualisation technology, the conflict over which OS is being used is avoided - users will be able to switch between Linux, Windows, and possibly Mac OS X (or Free implementations of Mac OS X) guest OSs effortlessly, as a pool of virtual OSs will be available for users to sign on to. Multiple users could log on to the same OS instance, or a new instance be created for each user; advanced users could request root-jail type sessions, for instance. It is clear that Linux with Xen will be the host OS of choice, since this combination has the lowest total cost of ownership (TCO).

Users will work at thin client terminals that have no more than a small amount of RAM and flash memory - no more than is needed to hold the kernel and sufficient graphics routines for a minimal VNC client; there will be a display and reasonably powerful video card, and fundamental audio hardware. Such hardware is already typical of today's thin clients. Linux, due to its virtues in embedded applications, is likely to be the foundation of such a thin client set-up.

As more services get transferred to the web - such as office applications in the guise of ThinkFree Office and GroupOffice; photo albums on Flickr; email services at Yahoo and Google, etc.; the browser will increasingly be the user's window to the world, and classical desktops will be displaced by the browser as the graphical user interface; tabbed and extensible browsers such as Firefox will gain in marketshare, but be themselves displaced by derivative projects that eliminate the "application" behaviour of the browser and implement the browser as the exclusive GUI to which the user signs on.

This presents a somewhat alternative scenario, in which the vast majority of virtual OS sessions hosted by the server would be a simple browser OS, allowing legacy hardware to drive the server and clients, with the labour-intensive services bought in from external service providers such as Yahoo and Google.

The niche for commercial desktop software is vanishing, then, with the advent of standards-compliant, Free browsing environments, that through high-level language-written web applications (in JavaScript and Java on the client, and Python, Perl and PHP, with an sql variant, on the server) achieve all of today's and tomorrow's objectives. Key to the success of this new way to using computers is the elimination of file traffic through the user's machine through sensible cross-integration of different web services and service providers with each other.

Friday, November 18, 2005

Technorati tag proliferation

Technorati (possibly along with other tag-based websites) urgently needs to address the problem of tag proliferation. I don't think it is justified to have "cell phone", "cellphone", "cellphones", "cell phones", "mobile phone" and "mobile phones" as separate tags. See wikipedia and its "redirected from" feature!

Technorati tags:, , (see?)

Mobile phone networks by P2P

About a year ago, I was at a conference (nothing to do with IT, actually) and jotted down some notes that I've just found.

There are two problems with mobile phones:
  • reception is not possible when too far from a mast
  • emittance is often high and suspected of causing brain damage or dysfunction
Both problems can be alleviated to at least some extent by having phones forward other phone's calls. In principle, in large cities, it should be possible to make within-city calls without ever using a mast, because there is a continuous and dense net of phones throughout the city that can pass on the call. There are other people who understand more about routing methods than I do, but I'll just take it as given that a call can reach its destination by this method. In fact, I heard a physics talk by Neil F. Johnson, in which he alluded to the optimal way for satellites to compete for transmission of a signal. I don't remember the details of his talk, and don't have time to look them up.

One of the main challenges in routing is how to ensure a) that the signal is passed on, and b) that it travels by a single route (i.e. does not fork). It is easier for now to think of a single data packet, such as a text message, travelling in one direction only (we'll pretend it doesn't send a "received" signal back; afaik this is a recent feature anyway).

One thing that helps is for a phone to be aware of other phones in its environment and haggle with these phones over how many milliseconds it should wait before passing on a signal it has just caught. This is necessary to prevent forking and overdubbing (again, this may not be a problem with current mobile phone data protocols, but I know nothing about mobile phone signal transmission).

It also needs to memorise the ID of all packets it has recently sent and not transmit them again when they come back to it (inevitable if all phones emit with the same signal strength). However, there may be other routing approaches that yield the same results.

A phone may also want to haggle for a larger delay if it has recently transmitted large amounts of data, to save battery life.

Further complications arise from phones that are switched off while data is in transit or while they are sitting on a computed route (it makes sense to first find the route and then send the data over it).

I'll also quickly admit that, as usual, some other people had the same idea at around the same time. It is a rather obvious idea, but it does surprise that it took so long... I'd like to learn how their protocol works. We've had walkie-talkies for so long, why did they ever think of putting base stations in?

tags:, , , , , , , , , , ,

Thursday, November 17, 2005

Sending calendar items over email

As far as I know, there is no standard format for sending calendar items over email. Such email items could be immediately put in the calendar without much effort on the user's part (at worst, clicking a "Yes" button). I could allow certain people's calendar submissions to be automatically allowed into my calendar ("Always" button). Granted, this requires a mechanisms such as PGP/GPG to establish authenticity of emails, otherwise one is vulnerable to "calendar bombs".

The same could be done for addressbook items.

tags:,,

Auto-reply interface priorities

Many current auto-reply setup interfaces don't have the following invaluable features:
  • Setting start and end dates (most now have this)
  • Displaying a big warning in the client to indicate that auto-reply is active
  • Setting a threshold to prevent replying to list emails; for instance, if the email is received by more than 10 ppl, do not send the reply; also, if it is received by addressees *@lists.*, do not reply.
Would be really easy to implement.

tags:,

Tuesday, November 15, 2005

Intel and Apple

Finally, since a visitor to this site, rich, challenged me to find more reasons why the pears will turn sour for Apple (pun and reference to FOSS projects intended), I'm at it again.

Some critics have argued that had Apple put more effort into optimisation of ppc compilers, they would not have had to abandon the architecture. The PowerPC architecture, of course, will survive on the merits of its floating point registers, and GNU/Linux will likely be the most popular operating system for it.

As for Apple's switch to Intel hardware: Mac OS X is Apple's greatest asset, but the business model has always been "want the OS, buy the computer". Whether or not the current reports of such achievements are truthful, Mac OS X will be hacked to run on ordinary x86 hardware.

However, there are benefits from the move. I have been wondering what the next generation Mac OS will be like, and it's clear that Apple could now at any point choose to switch to a different kernel, such as Linux (which also exists for PPC), opensolaris (which does not) or more exotic plants, such as DragonflyBSD.

One thing is clear. Whatever they do, they're stuck with POSIX compliance as a minimum.

The OS wars are coming to a computer near you. And this time, MS-DOS is going to lose.

tags:,,, , ,,,,

Friday, November 11, 2005

Remote access to Mac OS X through osxvnc

At long last, I can now access my Mac OS X desktop remotely from Linux at home. The installation of osxvnc on the desktop and tightvnc on the laptop was trivially easy - much recommended!

If you're going to do this, choose a window manager on the client side that will support full screen mode, and change the keybindings of the window manager to something other than the default, so you can use the default bindings on the host. In my case, I found that the Alt key mapped to Apple's Cmd (command) key, and the Meta (aka Windows) key to Apple's Alt. Ctrl was as expected.

Tags: , , ,

Sunday, November 06, 2005

High impact blogging

There are a lot of blogs out there - how do you stand out? Some people, no doubt, are making money from Google Adwords et al., so how to be one of them?

Well, the first lesson, as always is, if you want something from people, you've got to give them something they want. Think hard about the content of your site - is it useful for the viewer? So far, so trivial.

The second obvious point is that you need to give people a chance to find your site. That's what this article is about - a basic outline of how I'm currently trying to promote my blog. [1]

The first rule in the modern world is that you need to include tags as you're writing the blog. Think of these as the analogues of keywords in the old world of simple, single html pages. I suspect that some blogging engines have a separate field for entering tags - can anyone confirm this?

You can further promote your blog by offering helpful advice in forums related to your blog subject, and have your blog url in your signature. This also ensures that web crawlers can find your blog. A similar and similarly important strategy is to link to other relevant blogs and websites from your blog. This gets you listed on "what links here" lists! Perversely, linking to popular blogs may just get you more hits, although they may also be less specific.

You'll also want to open an account on each of the online newsfeed aggregator and social bookmarking sites listed in my previous post, and add your blog or even, in the latter case, individual blog posts with appropriate tags. Especially that last strategy ensure that your blog entries will come up when people search for appropriate combinations of tags.

Technorati also allows you to alert them to new blog posts on your claimed blogs by "pinging" them [2]. I'd really like to see some data on the effectiveness of this.

I'll just close by saying that I am aware of ways to abuse this system, but will refrain from expanding on them here. Keep it fun for everyone - your gains, if any, would be ephemeral!


[1] Not to give the wrong impression - my actual objective is to attract the right sorts of viewers to my site and make an impact with my writing; I don't yet care about the advertising revenue - as you'll be able to tell from the absence, at the time of this writing, of any advertising on the site!

[2] Ping originally is a utility that allows you to test if you can reach a given server (technically, the question actually is whether the response packets make it back to you; the response is "pong").

Tags: , , , , , , , , , , , , , ,

Wild, wild world of blogging

If you're obsessive like me about choosing the best sites for managing your blogs and subscriptions, you may find this list a useful starting point:

Blog hosts
Blogger.com
LiveJournal
WordPress
Blogware
TypePad
blog.com
Blog-City

Blog rolls aka RSS Readers
Bloglines
Rojo
FeedBurner
NewsGator
Google Reader
Feedster
NewsIsFree

Tag engines
del.icio.us
Spurl.net
Furl.net

In a class of its own
Technorati

Image hosting
Flickr
Buzznet
Deviantart

Tags: , , , , , , , , , , , , , ,