I noticed that rather than in programming, I am more interested in the OS itself and its usage in general. Like for example useful things I can do to help my computer, to make it faster, more stable and so on, hm in one sentence, I could say that my "mission" is to make the use of my computer easier and more reasonable, as well as faster and more efficient. But to warn you all; those of you who are "experts" in computing-related stuff, and will read this page, please take into the consideration that you might not agree with some of them, so to emphasize again: these in particular are strictly my "personal rules", meaning that they are not "generally accepted" ones. And once again in one terse sentence: I am really enthusiastic about various computing principles (that means discovering how things work etc. when tinkering with the computer to the extreme), then I like to discover various ways of automation of tasks (mostly with use of batch-files), customize the various aspects of an OS in general, and discover the limits and capabilities of it. Of course, this also means to have a knowledge on how to cope with numerous common errors/problems, a knowledge of basic programming/scripting concepts and so on.
In fact, I was thinking the other day, and I came to the conclusion that in the world of programming, more or less everything is already done; meaning that there is a freeware program out there for almost anything one might want to do, and so I like to rather explore these "already made" things (already invented stuff), i.e. the behaviour of these programs etc. And so I started thinking: why for instance to learn to code in the C++ language to write such a program, if all I need to do is use Google (of course, I know how to write a program in Python which would for example create file, process some data, and output it into that file etc.), therefore I've realized that rather than in "full" programming-languages, I am interested in things that are not so hard to learn, and which have emediate effect; for instance one nice example of this "principle" would be markup languages like HTML, its successor XHTML etc.
I must confess that back then I had a period of time when I've actually studied the most common and frequently used mouse-moves and general navigation in my Total Commander file-manager, mainly to set its icons, menus, dialogs in the configuration .ini file to be as logically structured as they can be, and also to place its buttons and other customizable GUI stuff in an optimal manner, while I am also interested in "studying" the various other aspects of usability. Another "crazy" example is that I edit the config files (.ini and .cfg ones for instance) of various programs so that the lines/entries are sorted by alphabet. Though I am not saying that I am hacking each executable with the ResHacker program, I only mean changing those configuration settings that are configurable from application's configuration dialogs, so therefore you have a chance to set/configure them by default (without advanced techniques), meaning that it was "meant" to do it by the programs's author.
NAVIGATE: next --> principles2.html
THE CONTEXT-MENU PRINCIPLE
Similarly to passionately studying freqent mouse-moves and general navigation when using my file-manager Total Commander (as mentioned, to set its icons, menus, dialogs in the configuration .ini file to be as logically structured as possible), so what I want to say is that I actually take time to study the principle and I don't stop until I am sure I understand it (it can be quite annoying though, especially if I need to go to bed early), for instance for files that I use with keyboard hotkeys (enhanced keys), should they point to a location on my hard drive or to location on my RAM-drive/disk etc. Then further for my start menu (which is not at all a common Start Menu as you might think), I lately moved the whole directory-structure to my RAM-drive/disk; for details see the page "events4.html", the "10.10.2005" entry and especially read the part about changing the Shell Folders and User Shell Folders registry keys. But it would even work without this, since I can set the location to where the start menu of my Blackbox shell points easily with the "menu.rc" file (located under B:\Systems\ directory; also on my RAM-drive/disk): /script/menu.rc with lines like these two: "[path] (Windows) {"B:\Pointers\Context\Windows"}", "[path] (CmdFreq) {"B:\Pointers\Context\Command"}" etc.
Anyway, separated directories which contain links are located on my RAM-drive/disk inside the B:\Pointers\Context\ directory. The root contains these three folders: [=Batch, [=Cmds, [=Setup and a few links: =arnes.lnk, =dialup386.lnk, Unitinfo.lnk, Sync-exe.lnk (the first two are links to establish a dial-up connection, the "Unitinfo" is Folding@Home related, while for "Sync-exe" see the page "cmdline.html"), while my global dekstop (my file-manager displays it as \\Desktop\; similar to \\My Computer\ or \\Control Panel\; these are called "special" or "shell" folders), which as we all know consist of D:\Settings\ivan\Desktop\ and D:\Settings\All Users\Desktop\ "merged" together, contains the links to these directories/files. The main directory for all this stuff on my my RAM-drive/disk is "B:\Pointers\"; so that when I go into let's say "[=Cmds" (by double-clicking on the link on "global dekstop"), I am now actually redirected into "B:\Pointers\Desktop\[=Cmds" directory. Another interesting thing might be the "[=Batch" folder, i.e. the global desktop link directs me to "B:\Pointers\Desktop\[=Batch" directory (and files/shortcuts in it point to "B:\Pointers\Scripting\" one); while its sub-directory "B:\Pointers\Desktop\[=Batch\Backup\" refers to "B:\Pointers\Scripting\Backup\" so all the global desktop's links actually somehow "reflect" the directory-structure my RAM-drive/disk. I guess this might sound a bit complicated, but I do hope that you got the general picture.
/UPDATE: As I have written above, I've used common links so far, for instance "[=Batch.lnk" (and "[=Cmds.lnk", "[=Setup.lnk") to point to the "B:\Pointers\Desktop\[=Batch.lnk" etc. directory on my RAM-disk. So when I double-clicked on one of these links when being in "\\Desktop\" virtual directory (i.e. combined All Users and "current user" desktops) I was therefore redirected to for instance "B:\Pointers\Desktop\[=Batch.lnk" directory, however, when I went "one directory up" to the directory-tree structure, I came to "B:\Pointers\Desktop\" directory. But now that I replaced those common Windows shortcuts with NTFS junctions, i.e. I tried and created a junction point under "D:\Settings\user_name\Desktop\" directory, which is, same as common shortcuts before, pointing to the directory-structure on my B:\ drive (which is as mentioned mounted as a RAM-drive), in particlar to respective sub-directories of the "B:\Pointers\Desktop\" directory, and when I go one "directory up to" after first browsing into where junction leads ne, I am now directed from, for example "D:\Settings\ivanek\Desktop\[=Batch\" directory to its actual parent directory "D:\Settings\ivanek\Desktop\", and not anymore to the "equivalent" directory on RAM disk as before. Here are the liks to two screenshots of junctions; as first, a \Desktop\ directory: http://img101.imageshack.us/img101/5541/junction1nd4.gif, and as second, the screenshot of \\Desktop\ "virtual directory": http://img178.imageshack.us/img178/9831/junction2dg4.gif. A link/shortcut is just a file which contains directions to the target and a bit of metadata, while a junction isn't even similar.
I should note that all NTFS directories are junctions (i.e. "windows" directory is just a junction pointing to the entry in the MFT which corresponds to where Windows is installed), and therefore junctions shouldn't be seen as a link, more of an actual directory because they are actual directories (and they are not "symbolic links", and if you hit the delete key on a junction, you will also delete the original files); while a given index, which is a file which describes a directory (and is often called just a directory) can have any number of references/junctions to it. These references don't even need to be on the same volume. Optionally see the An interesting difference between NTFS junctions and normal links thread: http://episteme.arstechnica.com/eve/forums/a/tpc/f/99609816/m/474002511831 that I opened about this on "Ars Technica" forums (optionally also check this page: http://www.google.com/search?hl=en&q=NTFS+junction, a Google Search result for keywords NTFS junction) in which I mentioned my "discovery". You see, it's that junctions behave more like directories of some sort compare to common Windows shortcuts/links. Note that in the original, or should I rather say as it was before (i.e. with common Windows shortcuts/links), in the first screenshot it would be "B:\Pointers\Desktop\" directory with "[=Cmds" etc. being normal folders, while in the second screenshot it would be "\\Desktop\" virtual directory with links visible (i.e. files with .lnk extension), rather than directories as it looks now when junctions are used instead. While I've discovered afterwards that if you copy a junction, all the copies look like a normal folder (but still have the "redirecting" treat), and only the original one looks like a shortcut by its icon in Explorer. And even more strange. I was trying to find out the difference compare to Linux "hard" and "soft" links, and so I was testing what happens to the junction if I delete the directory that junction is poiniting to (and reverse, if I only delete the junction); after I deleted the original directory (i.e. to which the original junction was poiniting) and emptied the Recycle Bin and empties the Recycle Bin, all those other copies still showed the two test-files that were in that directory when I browser "into them", however, the original junction didn't work anymore. This was really strange and confusing to me at the beginning. So as you can see, junctions are direct references, so far as you're concerned, the target of the junction actually exists in that location, and that's why when I copied junction, the actual contents of the original directory (i.e. of the one to which the junction was poiniting to) were copied too.
THE STRUCTURING PRINCIPLE
I like to have all the things on my computer logically sorted. This includes my browser's bookmarks.html contents, meaning that they are sorted by topic-type, i.e. system or non-system by site's language, i.e. Slovenian, English, or other etc. But as even more important, I also sort the overall "directory-structure", i.e. non-setups applications their directories and links (in Windows Startup Menu), also a number of files that are in a particular directory are carefuly counted and thought-through. Like for instance - "non-setup" programs are placed into the D:\Software\ directory (note the 8 chars long file-name), commandline applications in one of its sub-directories etc., and all being nicely sorted by usage System/Projects/Internet/Support, and the other "usage", i.e. are they "residents" in meaning that they are running non-stop (like MS's User Profile Hive Cleanup Service, Blackbox shell, Buzzsaw defragmenter, MouseTrack and SETI projects, Process Explorer etc.), or I execute them once in a while, process/re-configure/apply "something", and close them. Of course, Internet programs like Firefox browser, Soulseek p2p-sharing application, CacheSentry IE's cache-manager etc. are also mostly "residents" (same as above non-stop or at least running most of the time), but only on certain "conditions", i.e. when I am connected to Internet. As noted, I am still a 56-K dial-up modem adapter user, with actual line transmission speed even poorer, mostly 28.8 Kb/s, and hardly ever 31.2 Kb/s.
Non-setup apps structuring:
-- programs that you execute them, set something (or do some processing), and soon exit it, meaning that these applications never run as "residents".
-- programs that the most commonly run all the time, like various "system applications", for instance Blackbox - BB4win, my shell replacement, Total Commander file-manager, SETI@Home and Folding@Home related processes, Buzzsaw defragmenting program, various "auditing applications" and others.
-- programs that run all the time on certain periods of time, like Internet enabled applications (that run all the time, but only when I am connected to Internet), for instance my firewall, Firefox browser, Soulseek p2p client, Proxomitron proxy server, Wackget download-manager (that saved my partially downloaded files numerous of times) etc.
General directory structuring:
Directories and files are in general structured in a way, that files are separated in directories on hard-disk in a manner, that separate directories are equally filled. That way browsing through hard-disk with my file-manager doesn't cause delays on potentially too big directories, i.e. a separate directory containing too many files - we all know a delay when for example opening C:\WINDOWS\ or C:\WINDOWS\SYSTEM32\ directory, because fle-manager first needs to load all the icons into the RAM (and possibly also other file-info), ehm, not to mention the delays, if you are viewing some huge directory in "Thumbnails" view... So I "structure them" as they are structured like in this comparison-table below.
somehow like this | and not like this |
---|---|
D:\Storage\
... approx. 10-50 files ... D:\Storage\Projects\ ... approx. 10-50 files ... D:\Storage\Projects\Hosting\ ... approx. 10-50 files ... D:\Storage\Projects\Hosting\Upload\ ... approx. 10-50 files ... | D:\Storage\
... 2 files ... D:\Storage\Projects\ ... 100 files approx ... D:\Storage\Projects\Hosting\ ... 15 files ... D:\Storage\Projects\Hosting\Upload\ ... 500 files approx ... |
And yeah, for details about what comes next in this paragraph see: [ /other/events/2005/events1.html#firstevent" ], but to mention it only in a few sentences - on the last Windows re-installation I changed the D:\Program Files\ to D:\Programs\ and D:\Program Files\Common Files "variables" to point to folder named D:\Programs\Common as usual with MS's well-known programs called TweakUI, but on the current one I even changed the default Windows XP's Profile directory D:\Documents and Settings to only D:\Settings (again see 8 chars long file-name in all cases) with the help of Winnt.sif file and Unattended parameters.
THE RAM-DRIVE/DISK PRINCIPLE
I use the so-called RAM-drive/disk program, particularly the QSoft's one from this website: http://www.ramdisk.tk (it consist of RAMDisk.sys, RAMDisk.dll and installation/info file ramdisk.inf); for details see the following thread on "Ars Technica" forums RAM drives and XP: http://episteme.arstechnica.com/groupee/forums/a/tpc/f/99609816/m/665008855731, while to slovenian visitors I recommend to read the "blog-entry" titled Podrobneje glede mojega RAM drive principa: http://tadej.sopca.com/2008/03/07/podrobneje-glede-mojega-ram-drive-principa on my main slovenian blog. I must stress at the very beginning I don't use it in a matter of gaining a performance but to reduce hard-disk writes, i.e. I use it as a "host" for certain kinds of very heavy or "hard-disk intensive" operations. One of the main reasons for this (i.e. not having any noticable impact on system performance) is that Windows already uses all unused the RAM as a "disk cache", so you already get the RAM-drive alike access without doing anything. While of course I've heard for this kind of programs before, I've never actually bother to install and try/use one; while it is totally useful for files that are often written-to (because of the frequent hard-disk's seeks), or for those that are frequently accessed, i.e. for the files that are only often read-from, however, many times these particular files mentioned in the above sentence (the ones that are often modified) are the ones that contain valuable data, so I think it all very thoroughly before moving them and start using them from the RAM-drive, i.e. in the end I don't put those files on my RAM-drive in the first place. Hehe, in regard to "thinking it thoroughly" mentioned above; it actually ocurred once or twice that I couldn't fell asleep because I knew that I haven't yet thought it through (the "principle" of which files to use from RAM-drive and for which this is not clever thing to do). And of course, finally RAM-drives are ideal for any files/folders that are used as a temporary storage in general (files that are "meant" as a temporary storage), like various caches and various other temporary files and similar.
I must say this yet one more time: I really totally love the whole idea of having a portion of RAM reserved for a drive that behaves as a hard-disk. So since I got used to not to reboot my computer for days or even weeks, I can now store all the Internet Explorer's cached files on the RAM-drive, i.e. locations of its "Temporary Internet Files", "Cookies" and "History" folders. But anyway, loosing these files (in case of a system crash) is not a problem at all, since its only a cache and these files are meant to be stored only temporary. Otherwise I can always copy them to some safe location before rebooting and then copy them back into the RAM-drive on boot-ups (anyway, on boot-ups, I execute a great majority of my programs with two batch files; one for "All Users" and one for current user, rather than with registry Run keys, i.e. under the HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE branches); in fact I already wrote a nice batch script for that purpose, here is a main part of the "backing" part: "xcopy * "D:\SysUsed\Recents\Volumes" /E /C /Y /Q" and here a "restoring" part (first I need to "cd" to the "D:\SysUsed\Recents\Volumes" folder): "cd D:\SysUsed\Recents\Volumes xcopy * B:\ /E /C /Y /Q". Note the /C switch (help says: "Continues copying even if errors occur."), which I used because of the "Locked files" under TEMP/TMP path variable. You can always get info on commandline switches/parameters with "help" (infront of in-built shell-command), "-?" or "/?" (after the commandline executable name); so in this case that means "copy /?" (not with "-?", i.e. "copy /?") or another option if you might use "xcopy" command instead of "copy" one "help xcopy" or "xcopy /?". Then I use RAM-drive for other programs too; for instance the DNSKong programs I use constantly writes to its log-file and also IPs resolved to host-names to its presets.txt configuration file (it's in a "hosts-file" style/format), then I also use RAM-drive for my Total Commander file-manager's "tcthumbs.db" and "tcthumbs.idb" files (a thumbnail cache files), lately even for its .ini files (which are also often written to) and its treeinfo files "treeinfoC.wc", "treeinfoD.wc", "treeinfoE.wc", "treeinfoF.wc" (for each drive/partition separately) and finally Bginfo's "BGInfo.bmp" graphic; a walpaper with system related information. Therefore I am saving my hard-disk from a lot of additional but especially unnecessary stress, i.e. unnecessary writes to a hard-disk. I am even planning to store one of the Firefox's profiles in-there too and so on. Anyway but regarding running programs from RAM-drive, as DriverGuru said, the executable code of process surely needs to be copied from RAM-disk to another part of RAM (i.e. to "process address space"), but this is a "CPU-driven memory-to-memory" copy operation, so we can conclude that it is faster than "disk-to-memory" one (I guess not "CPU-driven") anyways. However, one thing is for sure; at least I know that they are certanly less hard-disk writes compare to before, i.e. that with RAM-drive some files don't get written to hard-disk at all; like those under TEMP/TMP location, those processed by me (for instance HTML documents before I optimize them) etc.
And as addition, I also re-discovered the HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders and HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders registry keys and the options they "offer"; for more info see the What's the purpose of the "UsrClass.dat" file thread on "Ars Technica" forums: http://episteme.arstechnica.com/eve/forums/a/tpc/f/99609816/m/770008085731; so with changing the values of entries inside those two keys, I managed to change the "Application Data" named directory to only "Data", "Local Settings" to only "Local", "Start Menu" to only "Menu" and so on. Hehe, the reason for that was my "minimalism principle" (or should I rather say the "principle of an obsessive-maintainer"), the principle regarding empty spaces and "less than 8 chars in-lenght" directory/file names principle. Additionally I later even got the idea (and realised it already) to move the whole Start Menu directory-tree into the RAM-drive (except for "Programs\Startup\", but I don't use Programs\ branch anyway), since I know for sure that there are lots of hard-disk seeks when browsing through sub-menus; I monitored it with Filemon back then and also checked it with Process Explorer (it seems that the seeks are caused by shell opening a "File" type handle with path as a "Name" each time), however, later I realised that I can change only the location of my Blackbox shell's "menu.rc" file without changing the value of the "Start Menu" registry entry under Shell Folders key. And by the way, here are the links to two screenshots: /D_Settings_ivanek_Menu.gif, /D_Settings_ivanek_Data.gif, that show an interesting effect after doing this. Well, I would rather call it a phenomenon.
/UPDATE 1: As an addition to discussion in one of the threads linked above, Mark Russinovich from Sysinternals also said that if one uses a RAM-drive, the data is cached twice; namely he wrote this in his e-mail message to me: "The same thing happens as when you flush to standard disk: data in file the system cache gets copied to the RAM-disk memory. That's one reason that I don't use RAM-disks: most of your data is actually stored twice in RAM, once on the RAM-disk and again in the file system cache.". Also, I started wondering after reading somewhere on the Internet about "SSD, RAM-disk, disk-caching software" being "higher-performance disk solutions", so my question is: if for instance I've set locations of my various .ini files (that are often written to), .log files and so on to point to my RAM-drive/disk, does this mean that the operation itself is in fact performed faster (since RAM is so faster than hard-disk) if that file was not already cached in the file-cache? For more on this, see the RAM Drive on Windows Server 2003 & SQL Server 2005 for Index Filegroup thread: http://episteme.arstechnica.com/eve/forums/a/tpc/f/99609816/m/488004770831 (see this post in particular: http://episteme.arstechnica.com/eve/forums/a/tpc/f/99609816/m/488004770831?r=753008790831#753008790831) on "Ars Technica" forum. I am however speculating that this is the first time the file is written to or in other cases read from; although I guess before writing file needs to be read first anyway.
/UPDATE 2: I am also reporting one thing regarding RAM-disk and installation files needed under TEMP/TMP. Well, I've discovered one interesting thing regarding what Dilbert said in one related thread back then (unfortunately I can't find it anymore); i.e. that some installation programs need to use file(s) from/in TEMP/TMP directory on the next boot. See the post where I mentioned Dilbert's reply in a somehow related RAM drives and XP thread: http://episteme.arstechnica.com/groupee/forums/a/tpc/f/99609816/m/665008855731/r/617003075731#617003075731. You see, it's that when I was updating my anti-virus program, it apparently needed to continue with installation after the reboot. So it placed a "delus.exe" and "delus.ini" files into my B:\Cache\Temp directory on RAM-drive. And so I opened Autoruns program from Sysinternals and instanty found out a newly created entry under "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" pointing to that file. So all I needed to do was move those to files into some permanent location on my hard-disk, and modify the startup entry to point to this new location. But before I decided to use this very easy solution, I actually thought of many other potential ones, i.e. for instance to add an entry under HKEY_LOCAL_MACHINE pointing to a batch file that would copy those two files into that Temp directory on RAM-drive before they would be called, i.e. with moving the reference to HKEY_CURRENT_USER which is AFAIK queried later in the boot process. Again, I suggest visitors from Slovenia to also check the related Kako mi je uspel Google Chrome updejt: http://tadej.sopca.com/2008/09/21/kako-mi-je-uspel-google-chrome-updejt "blog-entry" on my slovenian blog.
THE MINIMALISM PRINCIPLE
My experience is that in practice more things added to the "default configuration" cause additional delays (in GUIs of various software I use); I mean more things like more items in the right-click menus/sub-menus (Explorer's SentTo or badly structured Start Menu), number of columns/buttons/separators, number of items in toolbars/buttonbars, number of lines in menus in various applications (for instance in monitoring programs; therefore more resources displayed), so you bet that I am almost fanatically trying to aviod that. Then more buttons/separators in Firefox's menu, Navigation and Bookmarks toolbars means more entries (higher number of them) in the Memory cache device etc. Well sometimes probably if you disable some feature it is just made "unavailable" to user (but still being "processed" in the background), so it is probably still taking resources anyway. But sometimes probably don't, I suppose it depends on coding. So therefore, I soon developed an "attitude" that I call minimalism principle, i.e. the principle that things must be as minimalistic as possible. So you see, I've always imagined there are also "other" resources, where the "number" of separate parts of some resource in use is important and not only the actual "overall amount" of the resource used, like for example the number of various objects created with handles pointing/referring to (GDI, User, other NT Object Manager namespace related objects), then number of windows, threads created in each process etc. It is similar in other applications and in use of operating system itself, and if you want - on hardware/device level (shortcuts and general file/folder structuring on hard-disk), generally to make usage of my PC even faster (and more efficient), and to make use of all the potential advantages. I mean where the number of resource in question is crucial and not the amount of memory it occupies, compare to for example overall RAM used, where it is obvious that the amount of resource is crucial. And because of that you can bet that I don't like to run too much processes (if not neccessary), so therefore, I also disabled all useless NT-services, few of them quite dangerous, but mostly not-needed for my particular configuration (uhm, see the rest of the page, I posted a complete list), to lower resources consumption as possible. I also think that more processes running means more chances for conflicts between them. But then I was told on "Ars Technica" forums that almost nothing in this system runs in order-N time, let alone worse in other words there is nothing that makes the system run slower just because there are more "things" running/mapped, like more processes, more handles, or more objects etc.
Further, another nice example of my "minimalism-principle" is that on the beginning, when I was still passionately trying out diverse so-called "tweaking" applications (before I discovered the magic of .reg files), I carefuly tried to not to install two applications with the same or too similar usages (like tweaks that programs applied etc.), but anyway - later I actually replaced most of my supposely irreplaceable "setup-required" applications with simple, straightforward "non-setup" programs, but see the "THE NON-SETUPS PRINCIPLE" below, but also I prefer programs that store settings in .ini files rather than in registry, which I imagine is kind of more directly operated by the operating system, although it is true - I guess file-handling also; because we all know that in the end applications communicate with hardware through Windows kernel and file-system APIs in this order: Hardware -- Kernel -- Shell -- Applications. Another common example is file-handling, meaning that I like to keep various configuration .ini, .cfg and other files "clean" and small in-size as possible. Simply because each additional letter or even a carriage return (CR) and line feed (LF) in other file's cases in the Firefox's "bookmarks.html" file means additional bit or two (or whatever is the size of one letter) in the bookmarks file-lenght, and we all know that this results in slower bookmarks loading, viewing/browsing in the end. Just think of this example: bookmarking some page as http://www.ivan-tadej.tk and titling the bookmark-entry as "Tadej's computing homepage (index)" (in this case it's my own home-website), or bookmarking it as I prefer http://www.ivan-tadej.tk and titling it as "ivan-tadej". Another example is when I am doing a capture/screenshot (a .jpg, gif etc. picture) of some programs window's current state, I try to make the window itself as small as possible, and only "frame" the important lines - therefore the picture saved on my disk is much smaller in size. Heh, I even discovered that there is a difference if the text is highlightened or not, the cursor visible or not (and if it's blinking), pointer visible or not etc., i.e. all the mentioned things add additional colors to the final "mixture", and therefore it counts to the final file-size.
The bottom-line is:
More "things" added to core, more chances for run-time intererences and other incompatibilities, but as the most important slower the whole thing runs (core in meaning of computer, its hardware, OS and its required applications like default shell, services etc., and few crucial applications, like AV, FW etc.), whereas with "more "things" I simply mean, each additional process, plugin, extension, driver, virtual-machine, control, or whatever additional feature, thing ("down" to number of registry keys and values), consuming additional resources in all meanings and "forms": CPU, disk, memory, handles, windows opened, number of NT-Objects etc., although it is ture, I use many "features" of my PC, so for those things, I just need some additional software to be installed. Like codecs, players - for video/audio, file-sharing app - to dl music all the time being connected (56K dialup user - so I need to take 100% advantage of the phone bill), interpreter and libraries - for programming, and so on), but as mentioned, I developed strict approach when choosing which one to finally use on long-terms. I even went further, and renamed all of my non-stop used directories (and most of files too), to have short-file names. That means equal or less than 8 characters in file name, and also of course with no spaces in file or directory name. This way I make commandline usage much easier, especially in DOS but also on Windows, and after all, this way you save yourself from unneceassary typing. And note that this is an example from "real world", i.e. I've seen one user with this exact directory/path on his hard disk, and there are numerous similar cases on other folks' computers. I mean why to create a directory named "C:\Install Temporary" if you can only create "C:\Install", "C:\Setup" or simply "C:\Temp"?? You certainly need to type less in the latter example.
THE FIREFOX-PROFILE PRINCIPLE
This a bit contoversal part of "principles1.html" page, but I will post it anyway, since in my humble opinion it is an important one. Well, it is all about thought-through usage of Mozilla Firefox web-browser's disk-cache (number/size of entries) with using three separate profiles for one single user. The thing is that I was used to use two different profiles for a long time now, however, I used the other non-default one, i.e. I'was used to set it to run with Proxomitron filtering programs )for those few non-trusted sites, when I come accross with), and therefore I used was very rarely, in fact hardly ever. Oh and yes, note that I use Firefox with MOZ_NO_REMOTE user-variable (recently in 2.0 version replaced with "-no-remote" commandline parameter, i.e. together firefox.exe -no-remote -p "profileName"), so that in turn each profile-instance runs in its own process; if you want to, see the benefits from running FF like that in this way in a Firefox's management of processes and threads: http://forums.mozillazine.org/viewtopic.php?p=702985 thread (a member Mook suggested to use that variable in his reply), that I opened on MozillaZine forums back then and where I first described my other Firefox-related discoveries. In this manner the mentioned variable that is set within the OS (through the Windows Control Panel), allows a second (or third, fourth etc.) launching of a Firefox process to ignore the presence of the "parent.lock" file. However, this way, i.e. with the mentioned variable set to have value 1, any attempt to open new window of Firefox (when another Firefox's profile/instance is already running ); for example with double-clicking the executable directly or a shortcut with a profile's switch/parameter, or through external programs (like clicking a link in e-mail clients, instant messenger programs etc.) will bring up the Profile Manager dialog box. So another option is to create the batch-file that sets the variable's value to 1, starts the new instance/profile, and then after the process exits, it sets the variable back to 0, therefore external links will be unaffected and will not start with the Profile Manager, but just as a new window, running in the existing running Firefox process/instance (in the most recently started profile), and also if one process stops responding or whatever, I don't lose all the windows running under either of the other two profiles. Yeah, it happens occasionally that with terminating the Firefox process you lose all the web-history entries. Although this is not related I will mention it anyway, i.e. it might even occur in case of BSOD that one can permanently lose bookmarks, because the file containing bookmarks can get corrupted, at least I surely did experience this once or twice so far.
The three profiles:
1. I use one profile that I named "default" (recently changed to "default1") only for commonly accessed more or less system/computing-related "static" sites (I hope you will figure it out by yourself, but anyway); where "static" means sites like for instance this page you are looking at right now which has a more or less permanent layout, not a dynamic one (although most pages on the Internet are some sort of "articles", some more dynamic, some less), i.e. it actually mostly doesn't change at all, then sites that are databases in principle, sites containing mostly articles (that don't change), and other pages on sites that are "static", meaning that the main "template" or "framework" is always the same. For instance http://about.com, http://www.infoplease.com, and http://en.wikipedia.org too, sites with statistics of DC-projects I am running too, various community sites (forums, chatting), software homesites and similar, i.e. those sites that I usually visit on daily basis, and those sites which I might want to re-view in the following few weeks so I want them to be stored in the cache for some time. This is opposed to "non-static" sites, where the main page (and others too) changes/is updated on dialy bases, like news sites etc.
2. Then there is a second profile that I named "extra" (recently changed to "default2") and I use it for the "static" non-system sites, for instance http://www.snopes.com, http://www.historychannel.com, http://www.crimelibrary.com, http://www.sourcewatch.org, http://www.kuro5hin.org etc., while in all mentioned cases the content of site's pages might also be updated quite often, but as mentioned above, the most of the basic/raw layout remains the same. And as opposed to type of website listed in the example for a profile in paragraph below, the point is that for these sites you are connected to the same server (for example to episteme.arstechnica.com) for the whole time of session. These are also visited on daily basis, but for some this is not neccesary.
3. And finally I use the third profile which is named "backup" (recently changed to "default3") for "non-static" mixed sites (means system and non-system); while this includes sites that change their content quite frequently, for instance my local pages of interest (TV, newspapers and other media sites), various other news sites and so on. Lately I moved the location of this profile to RAM-disk/drive; for details check out the page "events4.html", the "10.10.2005" entry. But compare to the example for a profile in paragraph above, these only link to various other sites, rather than enabling you to browse news on the website in question itself. Then further I use this profile also for sites for which their main purpose is to only link to other sites like http://digg.com, http://slashdot.org, http://www.newsforge.com, http://www.internet.com, http://news.yahoo.com, and also for those sites that I am visiting for the first time (again, mostly in cases when linked to the respective website from some other site), and there is a big chance that I will not visit it anymore. And of course in the end also for those few periodically but very rarely visited sites. But in general, I like to separate site that I am planning to visit also in future, and those that I will most likely visit only once.
The bottom-line is:
Although it is sometimes hard to distinguish these "static" and "non-static" sites, in any case this way the disk-cache of the "default" profile doesn't get filled so soon (similar for the "extra" profile), and so I have some sort of "permanent cache". Also as even more important is that it contains only the data that I actually want to be cached and will certainly be accessed within 1-2 days time limit. While for the disk-cache of the "backup" profile, I really dont care how big it grows, because I can always empty it without worrying to lose any speed when next time browsing the internet. Because as I said, most probably only those sites are cached that I visited once and will never visit them again (or cache contains only out-dated versions of these sites), but even for this profile I use the Total Commander's method, i.e. I set one of its "Custom Columns" (I named it "FileDate") to display the three file-date related columns; Created (the date of creation), Modified (the date of modification) and Accessed (the date file was last accessed), then I sort the cache files by (Last) "Accessed" and delete only those that weren't accessed for instance for more than one week. So you see, in the end the whole browsing experience is more "rational", and also all profile's bookmarks.html and signons.txt files are a bit shorter in lenght. Also note that I am trying to use same "family" of sites (i.e. hosts/servers which are part of the same domain) only in one profile. For example I keep all the related (in terms of domains) bookmark entries in the same profile. For instance for the "About" sites, I keep in the same bookmark file the entries such as: http://about.com, http://web design.about.com, http://websearch.about.com, http://crime.about.com, http://paranormal.about.com, http://ufos.about.com etc., and for the "Yahoo" sites, I keep the following entries in the same bookmark file: http://www.yahoo.com, http://yahoo.com, http://mail.yahoo.com, http://geocities.yahoo.com, http://news.yahoo.com, http://launch.yahoo.com, http://briefcase.yahoo.com etc., but I am also trying to have "sister" sites in the same profile; sister sites like for instance various sites of the CNET Networks branch: http://www.cnet.com, http://news.com.com, http://reviews.cnet.com, http://www.download.com, http://builder.com.com, http://techrepublic.com.com, http://www.zdnet.com, and further various sites that are "members" of IDG Network branch: http://www.idg.com, http://www.infoworld.com, http://www.computerworld.com.
/UPDATE 1: Lately I started to use yet three different new profiles that actually never connect to the Internet. One is called "manage" and as it name hints I use it to manage my bookmarks locally (so I don't go "online" with it), then the other is called "preload" and I need to use this one to be able to use FirefoxPreloader.exe programs (because of MOZ_NO_REMOTE user-variable that I use mentioned above), which is used to load parts of Firefox into memory before it is used to improve startup speed), see here: https://sourceforge.net/projects/ffpreloader, and recently I started using also the third one that I named "livemark" profile. I use this one because I am on 56K dial-up modem connection, and so Firefox's livemarks consume quite great amount of bandwidth (when the update/refresh themselves)
/UPDATE 2: Throughout the whole this year's summer (i.e. the year 2006), I was having problems with too high hard-disk's temperature this summer, and so I was experiencing occasional unattended lock-ups/reboots (well, of course they were unattended); and so one of the results of these unattended reboots was that I've also moved the second Firefox profile that was previously on a RAM-drive (as some sort of "semi-permanent") back to the hard-disk, simply because I've lost the newly created cache-entries (i.e. the most recently cached pages) too many times, but also I've noticed that with copying files from the RAM-drive to hard-disk (before a normal reboot), and back to the RAM-drive on next boot-up usually "destroys" some of the cache, meaning that pages that would certainly be cached if the cache would be normally stored on hard-disk are lost after being copied back to the RAM-drive and when Firefox is launched for the first time in current session.
/UPDATE 3: Oh and yes, one more thing. Recently I started to use Internet Explorer in a manner that I keep its cache on my RAM-drive so that it gets deleted on each reboot (or in other words, its main caches, including "Temporary Internet Files", "Cookies" and "History" directories are located on my RAM-drive), therefore, I now use it mainly for those sites for which I know in advance that I will visit them only once and then never ever again (and for which I don't care that I'll loose cache their on next reboot), although I do have set it as a default browser.
NAVIGATE: next --> principles2.html
Disclaimer: The opinions expressed on my website and in my files are mine, or belong to other individuals/entities where so specified. Each product or service is a trademark of their respective company. All the registered copyrights and trademarks (© and ™) referred in this site retain the property of their respective owners. All information is provided as opinions only. Please, also see the more complete version of it on "disclaimer.html" and "policy.html" pages.
The website is maintained solely by its author and is best viewed with a standards-compliant browser.