My home office PC fulfills three purposes given that I do not wish to have three powerful PCs lying there . The roles my PC fulfills are these:
- It is my software development station and as such it has a bunch of heavy Integrated Development Environments installed with tolos and servers such as database server and source control servers.
- It is my Flight Simulation rig, it has Microsoft Flight Simulator X which needs a well powered PC. It is not a gaming thing, it is used for learning more about aviation, navigation and things like that. It also helps bring my mind to other interesting yet productive thoughts.
- My everyday tasks such as taking online courses, research for my novel and things like that..
As an electrical engineer (BSc.E.E.) who was always fascinated by computers and the digital world (I was never fond of analog things) it was almost natural to start my career in the Embedded World. I developed firmware for a large european company and therefore in addition to writing the embedded software (so called firmware) I also worked hands on with electronics. I needed not only a PC to develop the software but also have it connected to a device under development with various instruments such as voltmeters, protocol analyzers, oscilloscopes, etc. As an embedded software developer you learn (at least back then) that memory and resources were limited.
When I moved on to pure software development it quickly became apparent that programmers that developed for the Windows operating system were not the most effective when it comes to use your PC resources. Sure! PCs are usually very powerful nowadays but have you noticed how heavy each application has become? Before you could fit a full functioning application in a 1.2MB diskette, nowadays you are lucky if they fit in one CD (450MB) or DVD (4.7 GB)!!!
Why does it happen? I think the primary problem is that Windows programmers tend to have big egos in wanting to leave their mark. Have you noticed that nearly all applications want to install some sort of background service that is there consuming your computing resources even if you are doing nothing with that application? Now, with many such ego-driven applications your system is bound to become slower. Slower in starting up, slower in performing tasks and eating up your disk space.
I am sure I am not the only PC user that uses his PC for several differnt roles as I pointed out at the beginning of this blog post. So what is that feature anyway? it is simple really! as in my case when I am using my PC for flight simulation I want all its resources being used primarily for that, flight simulation (or a game of your choice!), I do not want my SQL database server or the source control (Team Foundation Server express) running in the background, I simply do not need them when I am doing flight simulation, or writing.
What is a Usage Profile?
It is a simple concept but as usual simple things are often overlooked. I strongly believe that it should be a core feature at operating system (in all its versions: Home, Professional: Enterprise) and this feature should be to be able to define Usage Profiles.
A usage profile would be something you could define at user level in administrative and restricted accounts. In a usage profile the user should be able to select from a list, which applications and application services, even certain operating system services are not to be active or started. For example, if I am writing my novel I would use my predefined Creative Writing user profile with just the things I need for internet and writing and leave all other resource consuming applications related to software development completely stopped.
When I am then need to develop an application either for myself or a client at some other time, I would then actívate my Software Development user profile. As part of that profile I would perhaps have a Word processing application at my disposal and certainly my software development Integraded Development Environment, the source control server and database server active.
There is nothing more unproductive, demotivating and time consuming than having to wait a relatively long time for Windows to start all those services and background applications that you are not even going to use when the only thing you really wanted was to write an idea in a Word processor.