[ Jump to bottom ]




index -- intro -- rules1 -- principles -- tweaks -- hints1 -- articles1 -- software1 -- links1 -- config1 -- glossary -- projects -- diverse -- events16 -- about -- sitemap



Principles 2


Google
Web tadej-ivan.50webs.com
sponsored links


Updated: 06.07.2017


View My Stats

The contents of this site's pages are protected with a Copyscape.  Copyscape Website Content Copyright Protection
Copyscape site's mission is to offer a website plagiarism search and content copyright protection.



I consider myself as a some kind of "amateur computing professional", so believe me that I know very well what is currently running on my system (and also which programs I usually use and with which processes they run), what programs and components are installed on my system, what is set to run at system startup etc. But one of "real-world" examples how this (running too many not needed processes) can affect overall performance, is that more processes running cause a bit slower Process Explorer UI's responsiveness (delay in expanding/colapsing tree, opening dll/handle pane etc.), more intensive file/registry operations monitored with Filemon/Regmon (both as an outcome of more processes running), similar thing is number of files in a directory, but rather see "THE STRUCTURING PRINCIPLE" section below, and "THE MINIMALISM PRINCIPLE" on previous page. Also, I totally like standards, the various official ones (like W3C ones), and additionally I develop my own; be it a standard in my website's coding, the way I format my documents, the way I use BBcode in forum-posts etc.

Anyway, the most general and widely-used of all my computing principles is that for "overall feeling", I just don't like seing processes running if they are not needed/required, be it one process or ten processes; although this is my opinion (my own "minimalism principle"), for my particular situation. Because it is certainly true that the process-memory is usually paged-out into pagefile or to MMF (after not being used for some time); and so because the overwhelming majority of a process's (and some parts of OS's) memory is pagable, if there's memory pressure it will just get written out to disk anyway. There's a small portion that's non-pagable (that can't be written out to disk), but non-paged memory is reserved for the kernel anyway. Many of the mentioned things doesn't degrade performance, but anyway, they do use additional resource, even if resource is hard-disk space, which is the cheapest one. Heh, it was again that Arsian with nick DriverGuru was "responsible" for me to realize this.

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 UI 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:  previous --> principles1.html


THE ORIGINAL-FORM PRINCIPLE


This principle is related almost to everything, and it means to keep the things in a way (I am quite pedant about this), that one got them in the original, or yet better, in the default state. As I mentioned, this is true for all kinds of stuff, in various "areas" of computing. Like for instance I try to keep the original form especially for more or less personal kind of e-mails, i.e. those that I get from my friends and therefore I want them to be backed-up exactly the way they were when I got them, similarly this is also true for those few really important forum-posts (like the replies on my questions etc.), that I got used to copy and save them to respective files on my hard-disk, then another example of "keeping in the original form" is more or less my personal obsession and my "over-methodical" way of handling things. It is that I do not type manually the important stuff, like when I choose a serial/code or enter an e-mail address for an account on some forum, or during installation procedures or whatever, I rather use pre-made templates (of course, also to aviod potentialy typos), and therefore I simply copy the respective text into the input field and so on and on.

Another example would be in case of "non-setup" applications, respectively the single-executables ones (i.e. those programs that do not use their own or other "external" libraries, just the OS's "core ones" with basic win32 APIs), it means that I do not rename the .exe file (i.e. I also check the "Original File name under Properties), even if I could do it with no harm, meaning that the programs would run normally even if I would rename them. In case of "setups" there are even greater chances it won't, just think for example of renaming the Windows shell and file-manager's executable from Explorer.exe to MyExpl.exe or whatever (the OS would be probably "confused"), and it is just better feeling that way, but also it is true that you never know, when author of some programs decided to "hard-code" the executable-name into the compiled file code (the source), and I must say, I hate hard-coding in general. For those who do not understand what I mean with "hard-coding", here is a simple example of hard-coding the paths. Some authors even hard-code paths into the executables, i.e. this means that the programs executable (code) contains for example C:\Program Files\Common Files, instead of querying the CommonFiles variable from registry. So you see, that means that in my case there are no C:\Program Files, C:\Program Files\Common Files, D:\Program Files, D:\Program Files\Common Files nor D:\Documents and Settings named directories. There are only C:\Programs, C:\Programs\Common, D:\Programs, D:\Programs\Common and D:\Settings. Though it is true, changing the paths of these directory is against the very same principle you are reading, but I did this because of another principle (see below), that is somehow more important.






THE EVEN-NUMBERS PRINCIPLE


On various occasions I got used to use numbers that are multipliers of number 2 (this is the number "two"), for instance wherever you need to enter some value in configuration fields/edits etc. My personal favorites are 2, 4, 8, 16, 32, 64, 128, 512 etc., so the bottom-line is to use EVEN NUMBERS instead of ODD NUMBERS. I think this is quite reasonable because of the general way of how computers work, computer's "inner" binary architecture and so on. I got the general idea when I was working with RazorLame encoding/decoding program, see this page here: http://www.dors.de/razorlame, which is used together (i.e., it's a so-called "front-end") with the Lame encoding engine (LAME Ain't an Mp3 Encoder), check this link: http://www.mp3dev.org. So in RazorLame's configuration settings, you need to choose a specific number for the bitrate of encoding process, and many of the numbers below are listed there. But these numbers are also used (and in some cases must be used) in various Windows configuration dialogs for instance the DWORD value for the so-called "IoPageLockLimit" setting under the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management registry path actually need to be one of these numbers: 4096, 8192, 16384, 32768, 65536.

There were only these numbers available in RazorLame:

4, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 192, 224, 256, 320


I presonally got used to use multipliers of number "two":

2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072


But I also use in "practice" any of these multipliers below:

3, 6, 12, 24, 48, 96, 192, 384, 768, 1536, 3072, 6144, 12288, 24576, 49152, 98304 5, 10, 20, 40, 80, 160, 320, 640, 1280, 2560, 5120, 10240, 10240, 40960, 81920, 163840 7, 14, 28, 56, 112, 224, 448, 896, 1792, 3584, 7168, 7168, 14336, 28672, 57344, 114688 9, 18, 36, 72, 144, 288, 576, 1152, 2304, 4608, 9216, 18432, 14336, 36864, 73728, 147456






THE NON-SETUPS PRINCIPLE


One of my main principles and "obsessions" is the so-called principle of using "no-setup" applications, I like that kind of software for many reasons, and in this section I will mention the most important examples and further try to explain the main reasons why I prefer this "form" of programs. Oh, and the reason why I wrote "main obsession" is simply because there is another one, i.e. the obsession with commandline utilities and scripting, but see the rest of the website for details about it, especially this page: /cmdline.html. So the thing is that I've become almost obsessed (as mentioned) with finding useful "non-setup" programs, and replacing as many "setup-required" programs I am currently using (and are somehow crucial to me), with the "no-setup-required" ones, i.e. be it a single-executable or .zip archive but not the installer of any kind, except maybe an extractor program, that just copies files "out of" compressed archive, and you can always "browse" the file in any file-manager capable of that or simply rename .exe to .zip. I actually succeeded to replace most of my favorite "setup-procedure-required" programs I was using in the past with "non-setups" (and I did considered those as "irreplaceable" tools), while in most cases the whole "procedure" of switching was pretty similar to switching from the System Mechanic programs to commandline Sdelete utility and batch-file usage, or from Boot Switcher to Rebooter application, both examples are described below.

So again, it is quite simple; I prefer applications to be a single .zip archive, containing all the required files (like libraries, data and configuration files etc.), which are then extracted to some location on local hard-disk, and you can already execute/use the program. Or even better - just one single .exe file, so executable is only copied (or extracted if it's zipped) to somewhere on hard-disk, and you can already execute it, but again as the most important - without the "installation procedure". While on the other hand some programs simply need to be "setups", there is no other way. This includes anti-viruses, firewalls, and similar deeply integrated applications, that require somehow more deep "system incorporation", software registry modifications, and blah, usually they require also a system restart after the installaion procedure finishes. I call them "low-level" programs because they use additional non-OS libraries (and need to register them), device drivers, i.e. drivers that are not so-called virtual and dynamically loaded (or in other words created "on-the-fly"), and therefore reside as actual files on hard-disk, programs that use ActiveX controls, OCXs, COXs, COM/DCOM objects or ALT components components (and also need to register them) etc.


The first bottom-line:


As you probably know traditional installation programs (installation wizards bundled to compiled self-executable installation files) must create directories, decompress programs files, register ActiveX controls, OCXs, COM components, ATL components, Visual Basic components and others, install system DLLs, and set/create global environment variables etc., and each of these dependencies represent a possible point of failure, not just during installation, but also later after other applications are installed and uninstalled, while in case of "non-setups" there is no installation-procedure at all. In general that means no no Start-Menu and desktop shortcuts created, which are things that are the most commonly done by application's installation programs, and other "supposely required" modifications in registry, which are all the things (as mentioned), that could go wrong during the installation or later during programs usage. I just don't trust installers in general from my own experiences and why would you need installer for only copying files (not referring to to the "low-level" programs here)??

So some of the "non-setup" programs appear almost like if they DO NOT EXIST AT ALL from the operating system's point of view, i.e. there are no registry entries created at all by the program, usually with all the configuration settings stored in a local .ini file, while other store ONLY THE MOST BASIC SETTINGS in the registry itself, like general settings from programs's UI, window position/size, various filters etc. For example Sysinternals utilities from Mark Russinovich's store their settings in registry in this manner and btw. I got used to save these settings from registry to *.reg file, so I can always restore the desired window size and position, but also font, filter and other settings all this for such cases if I delete the respective registry key by mistake, or something in the configuration itself gets somehow "corrupted" etc. And note, these "simple" programs usually make only one key, mostly only under the HKCU\Software path, or in case of media-players, they also sets a few file-associations, but as mentioned some programs don't store any settings at all, and that's one of the reasons why I just love this type of programs and mainly use only them.


The second bottom-line is:


You can DELETE THE APPLICATION'S REGISTRY KEY and/or some or all of ITS VALUES, and it will work normally after next execution. Further, in majority of "non-setup" programs you can even MOVE THE APPLICATION to some OTHER FOLDER or PARTITON and it will work normally after the next execution, i.e. because paths that were stored in the registry are just overwritten. One of the main reasons is that you do not need to cope with all the problems with upgrading and/or updating installed software, for example Firefox and Thunderbird programs installed with an .exe installer, and the majority of other applications (btw., there are so many topics about it, even on my beloved Ars Technica), compare to updating "non-setups", i.e. deleting directory and copy all the files from updated .zip archive package to new directory. After first programs execution, they surely both writes to registry, same as both "setup/install" variants etc., but when you upgrade, it is clearly stated on Mozilla.org, that you mustn't copy new version into same directory as previous is already installed. But if you just *need* to use an installer, then I think it is also recommended, somewhere on Mozilla home page, that you must un-install previous version first, i.e. deleting the profiles and execuable and other files' directories (possibly reboot after making all these changes), and then install new version. Optionally, I would also search for the left-overs in registry etc. In Firefox's case the files that I should pay attention to are: bookmarks.html, "user.js", prefs.js, cookies.txt, cookperm.txt, hostperm.1, signons.txt and key3.db (it is not necessary that all of the files mentioned above exists in your situation), while in Thunderbird's case there are also (beside user.js and prefs.js): localstore.rdf, cert8.db, key3.db, defaults.ini, components.ini, compatibility.ini., and finally all .ldif and .mab files; I guess the last two extensions are related to Thunderbird's address book. On my computer these files reside under the: D:\Settings\User\Data\Firefox\Profiles\default\ and under the D:\Settings\User\Data\Thunderbird\Profiles\default\ paths (lately I started creating Profiles folders under the program's installation directories, i.e. in Firefox's case this is the D:\Program Files\Firefox\profiles\ path, and in Thunderbird's D:\Program Files\Thunderbird\profiles\), though next time I will simply put the profiles directory as a sub-directory of where programs executable is located.



So as the conclusion of this section, I must say that I hope you see all the benefits of "non-setup" form of programs. Once more; in both mentioned Mozilla's programs all the things/procedures described above mean that only thing you need to do is that you simply backup all the mentioned files to some "safe" location on your computer, delete the old installation's directory, create new directory, extract/copy new release, restore backed-up files, and that's about it. Though it is true; at least in Firefox's case I rather backup/restore only the most important preferences, because I like to start new version of any programs as clean/fresh as possible. But anyway for the sceptics; if after all that's been said you are still asking yourself, why the hell single .exe or .zip archive rather than an installer?? Well as I already mentioned, I just do not like programs that are "too deeply integrated" into the operating system. But maybe even more important reason (but surely the practical one) is that I have structured all my "non-setup" programs back then into their respective directories, then zipped the directory-tree into one big .zip file, and I did that once and for all. I simply mean that after re-installing Windows or upgrading one of these programs - there is no annoying installing again, of each programs separately, no time-consuming clicking on YES or NO in the installaton-wizard's GUI (possibly rebooting), no re-configuring these programs later etc., I hope you got it. I mean those users who mainly use and/or prefer installers over the zipped archives would still be clicking on YES or NO buttons, while I would already browse the web, listen to music or watch a movie, whatever., but also in general - my personal opinion is that installaton programs are somehow creepy, and if they are not needed - why one would want them ... and further all that "messing around" that installer-programs do, it's just one thing more that could go wrong. But rather see the rest of the website for more examples, especially in /hints.html page. Ehm, and also one more somehow related thing that I just need to mention here. You see, it's that in my humble non-professional opinion programs should be individualized programs made to do one thing (written for one particular job), be it FW, AV, browser, e-mail client, p2p client, download-manager, IRC etc. (or more "jobs" in some special cases like audio/video players, file-managers, OS shells etc.), though this "job" could be done with many tasks, the bottom-line is in entirety, it should be one straight job. All this compare to so-called "all-in-one" utilities, which are "filled" with more and functionalities and this tends to quickly become "too many" functionalities. I mean, in general these "all-in-one suites" tend to become bloated and less specialized across the full spectrum of the applications they are supposed to replace.




NAVIGATE:  previous --> principles1.html









Copyright © Tadej Persic. Some Rights Reserved.


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.

All the pages on this website are labeled with the ICRA label.  ICRA label
The website is maintained solely by its author and is best viewed with a standards-compliant browser.


index -- intro -- rules1 -- principles -- tweaks -- hints1 -- articles1 -- software1 -- links1 -- config1 -- glossary -- projects -- diverse -- events16 -- about -- sitemap






The Internet Traffic Report monitors the flow of data around the world. It then displays a value between zero and 100. Higher values indicate faster and more reliable connections.