An extreme approach to networked and mobile computing that grown quite popular lately has been the idea of going into some “cloud computing” madness and try to put every computer task on the Internet, making people lose property on their data and their applications and become unreasonably dependent from their Internet connection and from the servers who provide them real computing power and own their data. This also implies totally trusting the companies owning these servers, including if you’re a competitor or considered as a terrorist by your government like a lot of people in China…
This does not sound like a good idea to me. If one day the cloud idea definitely wins (i.e. using cloud becomes mandatory to get a job as an example), I’ll be forced, in order to keep some customers, to provide support for that huge mistake. But this day is not today, and as long as I can, I’ll do my best to favor smart computer users who prefer to stay away from cloud computing by providing an excellent local, network-independent computing experience. Nevertheless, that does not mean that networking will be bad on my system. For network and mobile computers users, I’ll provide :
- Trivial network configuration : For connecting to common networks of today (LAN through Ethernet and WiFi with and without proxys, Internet through dial-up, PPPoE/PPPoA, and mobile networks like HSDPA/CDMA), the user will only have to know absolutely required information (generally login information or IP adresses). Everything that can be managed by the operating system will be, with as usual an option for the power user to check and tweak those automatically-generated settings.
- Good roaming : Laptop owners generally connect to several networks depending on where they are. An example could be one WiFi at home, one WiFi at work, and CDMA connection in-between. Transition between different connexions should be smooth : the computer should be able to connect to whichever known connection is available automatically. Situations where signal power is low would also be managed carefully : the computer should detect a substantial decrease in signal power (meaning that the computer is moving out of range), check if there’s a more powerful known network available, maybe ask the user’s permission to switch to another network (especially if it means switching to a pay-per-use mobile network), and if nothing is available announcing that signal power is low while still proposing unknown networks to connect to. This would be much better than simply whining “network signal power is low” or “network has been disconnected” without proposing a single constructive option to the user, which often proves to be frustrating.
- Power management : Laptop and mobile computers have a hardware constraint that desktop computer don’t have : they have to cope with a battery that can only store a limited amount of energy. Electrical power hence has to be managed more wisely than on their desktop cousins. Three kinds of optimizations are possible in this area : manual optimizations where programs are aware that they are running on a laptop and take specific measures in order to reduce their power consumption, automatic shutdown or activity reduction of hardware that has not been in heavy use for a long time, and predictions (for example, if a program has always be doing things that last a fraction of second, the OS may suppose that it won’t take much processing power in the future and hence reduce processor speed when only this program is running). There clearly is a compromise here : if hardware power is too much reduced, unsatisfactory performance will occur, and the user won’t be pleased. Moreover, the latter techniques are more “dangerous” than the former, as they higher the risk of doing unwanted things. How that compromise is managed is user-dependent, and should be asked to him at first boot (as an example).