CA2522789A1 - System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows - Google Patents

System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows Download PDF

Info

Publication number
CA2522789A1
CA2522789A1 CA002522789A CA2522789A CA2522789A1 CA 2522789 A1 CA2522789 A1 CA 2522789A1 CA 002522789 A CA002522789 A CA 002522789A CA 2522789 A CA2522789 A CA 2522789A CA 2522789 A1 CA2522789 A1 CA 2522789A1
Authority
CA
Canada
Prior art keywords
user
automatically
file
changes
files
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002522789A
Other languages
French (fr)
Inventor
Yaron Mayer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/968,022 external-priority patent/US9213836B2/en
Priority claimed from GB0509451A external-priority patent/GB0509451D0/en
Priority claimed from GB0516308A external-priority patent/GB0516308D0/en
Priority claimed from GB0517366A external-priority patent/GB0517366D0/en
Priority claimed from GB0517795A external-priority patent/GB0517795D0/en
Priority claimed from GBGB0519932.8A external-priority patent/GB0519932D0/en
Application filed by Individual filed Critical Individual
Publication of CA2522789A1 publication Critical patent/CA2522789A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Although MS Windows (in its various versions) is at present the most popular OS (Operating System) in personal computers, after years of consecutive improvements there are still various issues which need to be improved, which include for example issues of efficiency, comfort, and/or reliability. The present invention tri es to solve the above problems in new ways that include considerable improvements over t he prior art. Preferably the system allows for example a "Reset" function, whic h means that preferably an Image of the state of the OS (including all loaded software) is saved immediately after a successful boot on the disk or other non-volatile memory and is preferably automatically updated when new drivers and/or software tha t change the state after a boot are added, so that if the system gets stuck it can be instantly restarted as if it has been rebooted. Other features include for example solving the problem that the focus can be grabbed while the user is typing something, allowing the user to easily define or increase or decrease the priority of various processes or open windows, a powerful undo feature that can include preferably even any changes to the hard disk, improved undo features in word processing, improved file comparison features, being able for example to tra ck changes retroactively, improved backup features, and many additional improvements. The application covers also improvements that are related for example to Word processing (since for example in Microsoft Windows, Word behaves like an integral part of the system) and things that are related to the user's Internet surfing experience (This is important since for example in Microso ft Windows, Internet Explorer is practically an integral part of the OS). The invention deals also with some preferable improvements in the performance of the hard disk and also with some other smart computerized devices.

Description

20/10105 Yaron Mayer 1/186 System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows.
This Patent application is a CIP of US application 10/775,027 of Feb. 8, 2004, which claims priority from Israeli application 154349 of Feb. 7, 2003, hereby incorporated by reference in its entirety, and also claims benefit and priority from US provisional application 60/464,171 of Apr. 14, 2003 and from Canadian application 2,444,685 of Sep. 29, 2003 and from Canadian application 2,457,957 of Jan. 6. 2004, hereby incorporated by reference in their entireties.
This patent application is also a CIP of US application 10/756,839 of Jan. 11, (which claims priority of from Israeli ~nlication 153893 of Jan. 12. 2003 and from US Provisional~atent applications 60/452,362 of Mar. 2, 2003 and 60/464,171 of Apr. 14, 2003, and from Canadian patent application 2,428,648 of May 3, 2003), hereby incorporated by reference in their entireties.
This patent application is also a CIP of US application 10/907 274 of Mar. 28 which is a CIP of the above US application 10/775,027 of Feb. 8, 2004 and of the above US application 10/756,839 of Jan. 11, 2004, and which also claims priority from Canadian application 2,457,981 of Feb. 9, 2004, and from US provisional application 60/557454 of Mar. 28, 2004, and from US provisional application 60/561,160 of Apr. 9, 2004, and from US~rovisional application 60/575,981 of May 31, 2004, and from US provisional application 60/602,946 of Au~. 20, 2004, and from US application 10/939,494 of Sep. 14, 2004, and from British application GB0422065.3 of Oct.5, 2004, and from British application GB0500002.1 of Jan. 5 2005, hereby incomorated byreference in their entireties.
This application also claims priority from US application 10/968,022 of Oct.

2004, and from British ~plication 0509451.1 of May 10 2005 and from British application 0516308.4 of Aug, 9, 2005 and from British application 0517366.1 of Au~~. 26, 2005, and from British application 0517795.1 of Sep. 2, 2005, and from British application 0519932.8 of Sep. 30, 2005.

20/10/05 Yaron Mayer 3/186 Background of the invention Field of the invention:
The present invention relates to operating systems, and more specifically to a System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Microsoft Windows. This can include for example also things that are related for example to Word processing (since for example in Microsoft Windows, Word behaves like an integral part of the system) and things that are related to the user's Internet surfing experience (This is important since for example in Microsoft Windows, Internet Explorer is practically an integral part of the OS). The invention deals also with some preferable improvements in the performance of the hard disk.
Background Although MS Windows (in its various versions) is at present the most popular OS
(Operating System) in personal computers, after years of consecutive improvements there are still various issues which need to be improved, which include for example issues of efficiency, comfort, and/or reliability. In the area of efficiency, one of the things that still need improvement is the time it takes the system to boot.
For example if windows 98 gets stuck, the user might have to re-boot the system, a process which can take up to a few minutes, especially if there are many programs in the start-up folder and/or if the system starts to scan the disks (If the user does not interrupt the disk scan). Although Windows Me and XP for example include a Hibernate function, it does not help much if the system gets stuck, since Hibernate is mainly useful if the user requests the system on his own initiative to "go to sleep"
for fast awakening afterwards. This is accomplished typically by saving an Image of the current state of the computer's memory on the disk when the user issues the "Hibernate" command, and reloading it quickly when the user requests "wake-up".
US Patent application 20020078338 filed on Dec. 15, 2000 by IBM, describes an improvement in which the Image is saved automatically immediately after the normal boot sequence has finished, so that, during the next boot, the boot can be automatically set to much faster if there is an Image of the state of the computer and the OS at the end of the last boot. However, this still does not solve the problem completely, since for example if Scandisk is needed, it can still take considerable time, such as for example a number of minutes or even more, and also for example some peripheral devices checks and/or initializations might still be needed and can take for example even up to a minute even during the "instant" boot. The IBM
patent does not even mention the problem of the peripheral devices or drivers.
Issues of convenience can include for example the fact that various things happen automatically in Windows without asking the user's permission - for example one thing that can aggravate users is the ability of other programs to suddenly snatch the focus from the current Window. If this happens for example while the user is trying to type something, it can be very irritating, especially if it's for example some pop-up commercial advertisement in a browser window while the user is surfing the web and is trying for example to type some data in a form input line or in the URL
line.

20/10/05 Yaron Mayer 4/186 Another convenience issue is for example the problem that when installing a new version of Windows over an existing system, typically the user has a choice of either overwriting the current system, in which case the desktop will remain the same as much as possible (but the user will have to give up the option of still booting the old system), or to install it in a new partition, in which case the user typically has to install almost everything again from scratch. An example of a reliability issue is the fact that making errors, such as for example launching a program which contains a virus or a malicious code, or installing a program which accidentally causes damage for example to the Windows registry or to various directories, can be very difficult to correct. Although, for example, starting from windows ME, there is an option to undo the last installation, it is typically limited to only very specific types of changes in the system, such as for example changes in the registry, but cannot undo other changes, such as for example ruining other directories or files.
Clearly it would be desirable to have improved versions of Windows or of similar Operating Systems, where such problems are solved.
Summary of the invention The present invention tries to solve the above problems in new ways that include considerable improvements over the prior art.
Regarding the boot problem, preferably the system allows a "Reset" function which means that preferably an Image of the state of the OS (including all loaded software) is saved immediately after a successful boot on the disk and/or on other non-volatile memory and is preferably automatically updated when new drivers and/or software that changes the state after a boot is added. Another possible variation is that more than one Image can be saved, so that for example if something goes wrong after updating the Image, the system can preferably go back for example to the previous Image. Whenever the system gets stuck (and/or for example if the user simply wants to clear the computer's memory and go back to a state like after a normal boot), preferably the user is able for example to press some special button or some key or keys on the keyboard and/or for example click on some icon or menu item or link (however a hardware key at least as one of the available activation options is important since otherwise the user might not be able to activate it for example if the system got stuck for some reason) in a way that causes the computer's memory to instantly Reset from the saved Image, without a need to go through a boot sequence at all. The special button or key (or icon or menu item, etc.) is preferably sensed either by hardware or by some process which preferably runs below'the Operating system and thus in not affected even when the system becomes stuck. In addition, preferably any cut & paste buffers are preferably automatically saved also on the disk and/or other non-volatile memory preferably whenever they are created, so that they can be immediately available on the next boot or after the next Reset. Similarly, preferably any currently edited files or windows are preferably automatically saved on the disk and/or on other non-volatile memory preferably after sufficient minimal changes have accumulated (such as for example after at least 10 new characters, or any other convenient number, have been added or 20/10/05 Yaron Mayer 5/186 changed) or every short while (for example every 30 seconds), so that they can be immediately available on the next boot or after the next Reset. Preferably, during or after a fast-boot or a Reset that uses the memory Image (and/or even during or after a normal boot), if the FAT of the disks needs to be checked, preferably it is done in the background and without significantly slowing down the disk or the CPU, after the user can already start working, since waiting for scandisk to finish can take several minutes and can be very aggravating to most users. Preferably the system runs a minimal scandisk in advance at most only on the area where the image itself is stored or does that only if there is for example some CRC problem when trying to get the image, since only that area might have to be scanned before the boot or Reset if there is a problem. Another possible variation is that the Scandisk (or similar software) is backed up by hardware, for example in a way similar to the hardware that supports automatic disk rollback, described below. Preferably this is done by using hard-disks or other non-volatile memory wherein a special area or areas is dedicated for FAT information, and preferably independent head or heads or other access means are used for read and write in those areas. This has the further advantage that any reading or writing of files can become faster even if they are fragmented, since less movements of the heads are needed to access the FAT
area each time some jump is needed (Of course the FAT can be also for example loaded into RAM or into cache memory for reading, but due to safety reasons changes to the FAT have to written to the hard-disk or other non-volatile media as soon as possible, and that is why these improvements are very important). Since each disk can have more than one partition, preferably the FAT areas of all partitions are kept in the same special area or areas. Preferably these areas are also guarded better in terms of security, so that for example any write-access to them is monitored more closely. Of course the Image and/or any other saved data can be kept also, in addition or instead, on any non-volatile type of memory, such as for example MRAM (Magnetic RAM), which will become available in a few years, 3d Nano-RAM chips, etc. In such cases, instead of separate or independent heads, for example separate or independent access channels or processors can be used.
Another possible variation is that for example the hard disk has one or more separate heads which are used for example only for checking the media for errors and for example move automatically all the time or periodically once in a while to check this without interfering with the normal function of the hard disk.
Another problem is that for example in Windows XP many times after a program has finished installing it requests the user to do a complete restart of the computer, which can take considerable time especially for example if the motherboard contains a RAID driver for some of the devices (typical for example in new motherboards which support for example both IDE and SATA), while in almost all cases logging-off and logging-on again into Windows would be quite sufficient and of course much faster. Full restart should normally be required only for example if a new hardware has been added (in most cases this requires turning offthe power so a full restart happens anyway) or for example in some cases of rewriting the flash memory of some devices. So preferably by default either the OS automatically determines if a full restart is needed (for example according to the nature of the new installation), and then preferably the OS automatically performs just logoff and logon instead of a full restart whenever it can determine that this is sufficient, and/or for example 20/10/05 Yaron Mayer 6/186 standard installers are improved so that the software vendors can easily indicate (for example through some flag or flags) if logoff logon is sufficient (for example even mark it as a set of automatic conditional rules, depending for example on various parameters, such as for example the OS version and/or various hardware parameters). Another possible variation is that preferably when the user himself/herself initiates a restart command (especially for example if no new software has been installed since the last boot and/or for example if the user has not recently inserted a bootable diskette or CD into one of the drives), preferably the OS
automatically asks the user if he/she really wants a full reboot and, if not, preferably offers the user to automatically perform logoff logon instead. Another possible variation is that at least for example the logon/logoff is added also to the normal Restart/Turnoff menu, so that for example instead of showing only 3 options (Standby, Turnoff and Restart) preferably the option of fast Logoff/Logon is also added. Another possible variation is that when the computer is in standby (hibernate) mode, even if the user for example turns the power off or even plugs the electrical wire out of the wall, preferably when the user returns the power, the system preferably still automatically returns from standby instead of normal boot.
This is very easy since the saved image of the system is still the same, and the system can preferably identify from it and/or from some flag or other indication that it should be returning from hibernation, even if it had been for example completely powered off. This means that preferably when the user activates for example standby mode, preferably the system first creates the image and then can for example go into a mode where power is preferably used only or mainly for keeping the RAM refreshed (and for example the CPU, disk and screen are off), and so for example if the power remains on, when waking up the system preferably does not even have to restore itself from the image, and if power has been turned off then preferably the system automatically checks first to see if there is a recent image and then recovers from the image if possible, and only if there is a problem then it preferably automatically switches for example to normal boot. Another possible variation is that preferably if the user chooses for example full reboot and/or even if he/she chooses just Iogoff and the system begins to close applications, preferably first of all only user applications are closed and not system processes and preferably the user can still for example press some key if he/she changes his/her mind in order to abort the reboot, and then for example the attempt to reboot is preferably aborted if it has not gone too far, and/or the system can automatically undo the process and even return the OS to the state it was before the reboot was requested (for example by keeping in one or more buffers also the state of the open files and/or windows and/or processes so that they can be restored automatically to their state before the reboot was requested).
Of course, various combinations of the above and other variations can also be used.
Regarding the focus-grabbing problem, preferably when the user is in the middle of typing something, preferably the focus cannot be automatically snatched away by another program, so that for example the change of focus can occur only after the user has stopped typing for a certain minimal period, such as for example a few seconds or more. Another possible variation is that other programs can snatch the 20/10/05 Yaron Mayer 7/186 focus only in case of emergency, such as for example an event that is intercepted by the computer's security system, the firewall, or the OS. Preferably this is done by allowing this only to the OS and/or the security system of the computer and/or for example the firewall, and/or any other software which has been given explicit permission by the user to have such rights. Another possible variation is that programs are not allowed to snatch away the focus while the user is in the middle of typing something, as above, but for example in case of emergency, for example instead of snatching away the focus, important messages can be displayed for example by flashing a message on some part of the screen and/or by any other conspicuous visual means and/for example by audible sound (for example a spoken vocal message), so that the user's attention can be immediately grabbed, without automatically disturbing his typing efforts. Another possible variation is that if the focus is snatched while the user was typing, preferably his/her keystrokes continue to be kept for example in a special buffer, so that when the user notices that the focus has changed and goes back to the original window where he/she was typing, the keys that he/she typed while the focus has changed are again available.
This can be done for example by a special process (for example part of the OS, or some dedicated service) that keeps a copy of the most recent keystrokes and can replay them even if the keystrokes were supposedly wasted in another process that popped up during the typing. Of course, various combinations of the above and other variations can also be used.
Another possible variation that is also related to the focus issue, is that for example clicking with the mouse on any part of the desktop (or for example pressing some key or keys on the keyboard) will immediately bring the desktop fully into the foreground like clicking on any other windows, so that there is no need to click for example on the special icon in the taskbar to do that, as exists today for example in Windows. In the prior art clicking on the desktop does not cause other windows that cover parts of it to move down to the task bar, eventhough it can change the focus, so the user has to click on a special icon if he wants to get a clear view of the desktop. Preferably this option is made available to the user in addition to and not instead of the icon that brings the desktop to the foreground, since sometimes there is no piece of the desktop available for clicking on it, but on the other hand, if part of the desktop is in view, it is much easier to click on it than to have to go down to the specific location of the small icon, and also in the current prior art situation it can be quite frustrating that clicking on a visible part of the desktop does not automatically bring the desktop to the foreground, unlike any other windows where clicking on any part of it does bring it automatically to the foreground. Another possible variation is that for example the clear desktop view is automatically added to the list of available options when pressing for example Alt-Tab (or other similar keys for jumping between open windows or applications), so that preferably the user can also jump to the clear desktop for example by keeping the Alt key pressed and pressing Tab until the correct icon is reached, and/or simply pressing for example one or more keys on the keyboard in order to jump directly to the clear desktop.

20/10/05 Yaron Mayer 8/186 Another possible variation that is also related to the focus issue is to add for example a feature that allows the user more easily to define or increase or decrease the priority of various processes or open windows, since for example many times the user wishes some program to continue working on something lengthy in the background while he/she is doing other things, but many times the OS
automatically assumes that if the user diverted the focus to something else, the processes that are in the background (i.e. not in focus) can be given much lower priority and so left to work much slower, so that the user fords that very little progress has been made when he/she goes back for example to a process that could have been finished in a few minutes if it was in the foreground or given higher priority (This can happen for example especially with programs that are running in a DOS window for example in Windows 98). Preferably the user can easily define the desired priority level for such background processes, for example in terms of percentages, and/or in terms of increasing or decreasing some default values for example in a few discrete steps, and/or for example in terms of more general definitions such as for example "Very high, high, medium, low, very low", etc. Although typically a programmer can define the level of priority for a process, the user for example in Windows 98 does not have such a choice except in a few programs in which the programmers chose to explicitly give the user such an option, and also the user does not typically know which priority was set by the programmer. So preferably the OS also indicates to the user clearly, for example by colors (for example brighter colors for higher priority process) and/or by numeric and/or textual values and/or by appropriate icons, the level of priority that has been given to each process, for example by indicating it near or on each square in the for example bottom taskbar that shows active processes, and/or indicating it for example at the top line of the window of each process. For example on the square in the taskbar it can be more preferable to indicate this by a color, since there is little space, and for example on the top line of a window it is easier to indicate this for example by a combination of color and/or for example more exact numeric indication. Therefore, the default first priority shown to the user can be for example a default priority automatically set by the OS
or the priority set by the programmer, or for example the priority set by the user the last time the program was run. Preferably the user can easily change the priority for example by clicking on the place where the priority is indicated at or near the taskbar and/or on the window of the process (for example at the top line), so that for example the clicking opens a preferably small windows where the user can choose the priority or for example a lever is shown which the user can pull up or down.
Preferably the OS remembers the priorities given by the user to various processes and uses these defaults or at least takes them into consideration for assigning automatically the priorities the next time the user does similar things or activates the same processes, unless the user again changes the priorities. Although Windows XP
for example allows the user to choose between more or less priority to background processes in general, this does not allow the user to choose it for individual processes, and the user has to go into the control panel to reach the place where it can be changed. On the other hand, in Windows XP the user may choose among a few priority levels for each process by pressing Control-Alt-Del and entering the task manager, however this does not show automatically the priority for each process, and the user has to click on each process in the task manager separately and 20/10/05 Yaron Mayer 9/186 choose from a menu in order to view or change its priority. On the other hand the user may for example use the Process Viewer (Pviewer.exe), a tool on the Windows NT Resource Kit 4.0 CD, to change also the priority of individual processes, but this requires entering a special window where all the processes are listed.
Similarly for example a shareware called Priority Master (version 3.2) includes even more options, and can indicate for example the priority of a process if the user hovers the mouse for about a second above an item in the bottom task bar, and also shows this indeed on the title line of an open window. However, the above suggested improvement of constantly displaying the priority near each square in the task bar is more convenient and more efficient. Another possible improvement is that the taskbar can show automatically for example also how much percent of CPU is being used on average by each open process. Although windows XP for example allows the user to view CPU usage of various processes in a special window, preferably the user can also see this directly on the task bar without having to go through special menus for that. Another possible variation is that the priority of background and/or foreground processes is automatically dynamically increased according to the type of the work the user is doing in the foreground window, so that if the user is for example typing on Word or surfing with Netscape, more CPU resources can be automatically allocated to the background programs. This is especially important for example when DOS programs are involved since in the prior art usually if they are in the background for example in Windows 98, they can remain with very low priority even if the user is just typing or even if the computer is not really doing anything, whereas much more CPU could have been allocated to them. Another possible variation is that for example when the user enters the task manager (for example by pressing Control-Alt-Del), he/she can for example mark multiple programs (for example by dragging the mouse over a range of them and/or for example by requesting to close all the instances of the same program, for example even if they are stuck) and tell the OS to close all of them at once, instead of the prior art where the user has to mark and close them one at a time and also press Control-Alt-Del again each time. Another preferable variation is that preferably the task manager automatically shows near each process also to which program and/or path and file name (for example on the hard disk) it belongs. Another possible variation is that preferably the user can choose to automatically sort the processes shown in the task manager for example alphabetically and/or according to how much resources they consume (for example CPU, memory, Internet bandwidth, disk space, etc.), and/or for example according the programs they belong to, and/or other criteria. Another problem is that for example in windows 98 many times the user has to try multiple times to close an application through Control-Alt-Del (or for example when the system tells the user that the application performed an illegal action and asks the user if to close it) until the application is really closed. So preferably in case it hasn't been closed the OS automatically tries again repeatedly to close it, preferably for example at least for a certain number of times and/or till a certain time limit, and preferably the OS lets the user know if there is still a problem after the number of times and/or the time limit has been reached if the OS was still unable to close the application. (Preferably the automatic re-attempting is also accompanied by some visual indicator which preferably shows that the system is automatically continuing to work on closing the chosen program or programs and preferably lets 20110/05 Yaron Mayer 10/186 the user automatically know when the system has finished closing the program or group of programs) Of course, various combinations of the above and other variations can also be used.
Regarding installation of a new operating system in a new directory or partition, preferably during the installation the new system preferably automatically copies the desktop configuration and links from the old system into the desktop of the new system. Since some installed components will not work the same between two different versions of Windows (such as for example when running installed components of windows 98 on windows XP), preferably the system automatically checks which programs can work automatically without problems also in the new system (for example applications that don't have to access the registry, etc.), and preferably for example indicates to the user which applications might need some adjustment and/or tries automatically to solve this problem for those applications too. There are a number of possible preferable solutions for this, of which preferably at least one is used:
1. During installation of the new system, preferably the system tries to automatically convert components that are different between the two systems to work on the new system, for example by automatically converting system calls, memory structures (if needed), etc.
2. During installation of the new system, preferably the system tries to locate the original files which were used for the installation and then tries to reinstall automatically the correct drivers or components that are needed for the new system. For this, preferably each Windows system keeps information (for example in the registry and/or in one or more of the directories where the installed program or component or drivers resides) about the path and name of the original file from which it was installed, so that the installation can be automatically repeated into the new system, this time with the components that are needed for the new system.
3. If the system does not succeed in converting the relevant links or components to work on the new system or for example the original installation program is limited only to the old system (for example Windows 98) and does not contain for example drivers for the new system (for example Windows XP), then preferably the system marks the relevant links on the new desktop as non-operational (for example by giving them dim gray color) and encourages the user to look for other versions of those programs that are fitted to work on the new system. Another possible variation is that in such cases the system allows the link to activate the version that runs under the old system (or for example creates another copy of it) and uses emulation of the old system when needed in order to let it run (at least temporarily until the user installs the new version). Another possible variation is that the system can automatically try to locate on the Internet (preferably in a limited list of well certified sites) any needed variations or drivers that will work on the new OS
and for example recommends them to the user and/or for example can download them automatically from certified sources (preferably of course only after user authorization for each downloaded file). (This is relevant mainly for example for shareware programs).

20/10/05 Yaron Mayer 11/186
4. Preferably a new protocol for installing programs is implemented so that each installation of new software preferably installs both the appropriate drivers or components (for example Windows 98 drivers on a windows 98 system) and one or more sets of alternate drivers or components (for example for Windows NT/XP or other Operating Systems), and preferably each time the program is loaded into memory the appropriate set of drivers or components is automatically chosen by the OS. However, since in some programs part of the installation requires for example updating registries and/or installing various components in system directories, preferably those parts of the installation are suspended and are executed automatically for example the first time that the new OS is activated for the first time after installing it.
Of course, various combinations of the above and other variations can also be used.
Regarding the undo problem, preferably any changes in the entire hard disk or other types of preferably fast mass storage non-volatile memory after or during the installation of new software, are preferably completely undo-able at least for a certain time period. This is more comprehensive than the current "undo"
feature that Microsoft for example offers after installing new software, since the current features only allow restoring the registry and system files, and even that not always completely, whereas any other changes to directories or files cannot be undone. A
more extreme variation is that for example any changes at all that happen on the hard disk or other non-volatile memory (and possibly even on other connected media) at any time are completely undo-able at least for a certain time period, in a way similar for example to the undo feature in a single Word document. The above Undo features are preferably accomplished by keeping one or more rollback log, preferably backed up by appropriate hardware on the disk - as explained below in the reference to Fig 2.
Other possible improvements in word processing programs such as for example Microsoft Word can include preferably at least one of the following:
1. Adding to word processors such as for example Word, for example a smart file-compare features that can show exactly the textual differences between two or more files while disregarding irrelevant data such as line breaks, fonts, etc. In the prior art this can be done for example by a text file compare program after saving the word file as text files with line breaks, but then the comparison might show many irrelevant changes for each paragraph because of changes in line breaks for example if even one word was changed near the beginning of the paragraph. Another possible variation is to allow the program to merge for example two files into a single file with highlighted changes just as if one of the files was created out of the other while keeping the "highlight changes" option to On. This is very useful for example for checking changes between a current version of a file and any of the previous versions retroactively even if no change tracking was used during the time that the changes were made. In order to accomplish this preferably the 20/10/05 Yaron Mayer 12/186 changes are checked in a way similar to the non-merging file comparison, except that the results are displayed in the form of the merged file. Another possible variation is that for example cut & paste of one file over another file (and/or in fact cut & paste a section, such as for example a few words or a few lines or one or more paragraphs, over another section) when "highlight changes" is set to ON automatically generates the highlighted changes between the two sections as if they were made by actually changing one to the other, instead of the current prior art in which the results of such cut &
paste are that the old text area is simply marked as deleted by strikeover and the new text is simply marked as added (this is preferably accomplished, again, by simple automatic comparison between the original text and the pasted text, and marking the differences by the conventions of highlighted changes, as if the changes were made manually). Although Microsoft Word currently allows an option of file comparison, which marks the changes between the two files as if the "track changes" was set to On between the old file and the new file, as explained above comparing sections by cut and paste does not work (the previous text is simply marked as deleted and the pasted text is marked as new, instead of making a comparison), and even the comparison of two files is not sufficiently reliable and has at least the following problems:
a. If at least one of the two compared files already contains marked changes, Word warns you that it may not be able to show all the changes, and there is no differentiation between previous marked changes and the changes that are indicated by the comparison itself. In order to solve this preferably in such cases a different indication is used between the old changes and the new changes generated by the comparison, for example by using additional colors, and/or using for example different special icons and/or marks near the old changes and/or near the new changes, and/or using for example different special squares and/or other frames around the old and/or the new changes, and/or using for example special fonts and/or other font characteristics, and/or other preferably clearly visible indications.
However, using for example different colors could be problematic since different colors are already used for indicating who made each set of changes, so this might be confusing, and in addition, if such a file (that resulted from a comparison) is then again compared with another file, more and more colors might be needed. A more preferred variation is that for example in each stage of the comparison the old changes are automatically marked for example by more faded or less lit colors (but preferably keeping the original colors), and if comparison steps continue then preferably at the next step preferably all previous changes now become faded, and the new comparison changes are marked with brighter colors. However, these are just examples and any type different marking can be used. Another possible variation is that for example a summary table or other type of index is automatically generated so that the table or index indicates which color was added on which date (preferably taken automatically 20/10/05 Yaron Mayer 13/186 from the date of the file which each color of changes represents), so that the user can clearly see which change was entered at each date (and/or time). Another possible variation is that, in addition or instead, the date in which each section or element was added or changed is automatically indicated near the relevant text, for example by a bubble that is shown when the user points the cursor or the mouse on the relevant section, but more preferably this is marked all the time, preferably at the side of each section, so that it is clearly visible even without having to indicate the section, and preferably it is clearly visible also in the printed version near each section (of course the user can preferably also request to disable or hide this for example on the screen and/or when printing, and/or for example activate this only for example only for a certain section - for example a certain sentence or an area which he/she marked with the mouse). In order to accomplish this preferably the files are automatically sorted by date before creating the comparison, and each new section or element is dated automatically according to the first time it appeared. (Although for example Word 2003 can show the time and date each marked section was added when the user puts the mouse over it, this works only while the section is marked and cannot be reconstructed after the changes have been accepted, as described above). Another possible variation is that preferably the word processor can save for example the time and/or date information for each section also after it is accepted, but in that case preferably it is saved locally, for example in the same directory, preferably with some link which relates it to the file, but preferably does not become part of the file, so as not to damage the privacy of the user if he/she for example sends the file to someone else. Another possible variation is to use similar fading for example also with normal incremental changes when track changes is used, so that for example the user can use a command that fades (or otherwise changes) the color of preferably all the older changes so that all the new changes from that point on will stand out. This is very important for example when a file is changed in incremental steps and each time for example the new version is sent by email to someone else. Another possible variation is that for example the OS and/or the word processor can identify automatically incremental updates of the same file (for example according to the beginning of the file name and/or date and/or for example by keeping automatically a log of the sequence of updating a file incrementally), so that the OS and/or the word processor can use the knowledge of the update sequence of a series of files for example to search for example for each section or sentence when was the first time that it was entered.
b. The file comparison is not always reliable and may get sections confused, so that for example when comparing two patent files, the comparison can confuse for example between a claims section and a specification section, thus marking entire areas as deleted and added 20/10/05 Yaron Mayer 14/186 instead of properly comparing them. In order to prevent this, preferably the system uses preferably various heuristics in order to extract from the document important information about its structure, so that for example a section that appears after a clear headline (which is typically for example on a separate line and is typically emphasized for example by boldface and/or by underline and/or sometimes for example by capital letters) is preferably automatically recognized as a different section of the documents, and this way for example a section that appears after the headline CLAIMS will not be confused with a specification section. In addition, the system can use for example other cues about each section, since for example the claims section is clearly characterized by short paragraphs that each start with a consecutive number, which is unlike any other part in the document. Such cues and/or heuristics are preferably used in a fuzzy manner, so that they are considered as part of the evidence but not as absolute guidelines, so that for example if there is more evidence that indicates otherwise, such cues can preferably also be ignored. For example a thorough academic article from 1988 about file comparisons at htt~%!citeseer.nj .nec.corn/cache/papers/cs/6985/http:zSzzSzwvw.ime.
usp.brzSz~iszSzpapirzSzsctp.pdf/simon88seauence.ndf shows that the file comparison problem is theoretically and practically not completely solved yet, but this article deals mainly with various methods of increasing the speed of such algorithms (which is far less critical today, now that computers are thousands of times faster than 15 years ago), and much less with how to improve the reliability of such algorithms. US patent 6,526,410, issued on Feb. 25 2003 to the Hitachi company, shows how to improve such algorithms in explicitly structured documents, such as for example XML documents, by making the comparison first between the XML structures, and then comparing the text only between structures that are determined to be within the corresponding sub-structure, and typically working with a table of explicit comparison rules. However their solution does not solve the problem for example for Word documents, which are the most common type of documents for example in legal documents such as for example contracts and for example patent applications, where file comparison can be very important. Therefore, the above suggested solution is much more general since it can work for example also with word processing documents, such as for example Word documents, where there is no explicit hard-definition structure, but smart heuristics can easily use relevant cues to identify actual sections, and in addition the above solution is more flexible since the identified sections preferably don't become absolutely binding, so that for example if other criteria (such as for example the percent of the common sequences found) indicate that it is better to ignore one or more apparent section indicators, this is preferably done. In addition, preferably the same principles are used and applied recursively when needed. Another possible variation is that for example if the user sees 20/10/05 Yaron Mayer 15/186 that a certain part of the documents (or more than one part) has not been properly merged (for example the end of the specification together with the claims), then the user can preferably for example mark, for example with the mouse, the problematic section or sections, and then tell the system to try again to merge more properly the problematic section or sections, and then for preferably the word processor (or other application) can work much better because is has a much smaller problem area on which to concentrate.
c. Only 2 files can be compared at each step. So instead, preferably the system allows to compare also more than two files in each step, and so in the merged file of for example 3 files, changes that come from different files are preferably marked in different colors (for example in a way similar to marking changes that were added by different people in different colors), or marked differentially by other methods, for example such as those mentioned in clause 'a' above.
2. Another big problem with the current track-changes features that exist for example in Word 2000 and Word 2002 and even in Word 2003 is that if the user for example breaks an automatically numbered paragraph, where for example each part is automatically marked by a letter or by a number (such as for example in patent claims) into two paragraphs, the part after the break becomes marked (typically in red) as if it is a new text, instead of marking only the real change, which is the new line break and the changes in the subsequent automatic numbers. On the other hand, if the user makes the changes without the track-changes feature On and then uses file-compare, the comparison does not mark the text after the break as a new text (which is good) but now the showing of the changes in the subsequent automatic numbers is not done). This is of course a problematic lack of consistency. So preferably this is improved so that when the track changes feature is On and the user breaks an automatically numbered paragraph, only the new break and the change in subsequent renumbering is shown and the part after the break is not marked as new text, and when comparing files the same consistent difference is shown. In addition there is a problem that when a text is marked as deleted, for example as a result of track changes or of file comparison, if the user wants to undelete it or part of it, the user cannot do it directly (unless it is the most recent change and can be restored by normal Undo), and the user cannot even mark and copy the deleted text and convert it to non-deleted text. Although in the prior art Word the user can do it by marking the deleted text with the mouse and then going the "accept/reject changes" and rejecting the changes in the marked area, but this is much more cumbersome .So preferably this is improved so that when a text is marked as deleted as a result of track changes or of file comparison, the user can mark the deleted text or part of it and press for example a key or button or for example right-clicking with the mouse and choosing undelete from a small menu or otherwise execute a preferably single command which can instantly undelete it. In addition, the user can preferably also mark and copy text that 20/10/05 Yaron Mayer 16/186 is marked as deleted or any part of it and can preferably paste it back at the same place or elsewhere for example as normal text. (Another possible variation is that he can choose for example if to paste it as normal text or as text marked as deleted). Another preferable improvement is that preferably the user can switch between the Track changes On and Off states also by some control key instead of having to go through a series of menu choices, as it is currently in Word. In addition, preferably when the user copies and pastes text that contains marked changes (for example within the same file or between files), the user can preferably indicate, preferably when pasting, if he/she wants the pasted text to contain the marks of the 'track changes' or not. Another possible variation is that the user can for example mark one or more areas in which track changes is marked as On (or OffJ, so that the other areas for example remain with track changes Off (or On), etc. This can be very usefizl for example with the new required format for amendments in the USPTO, since when answering for example an Office action the user typically has to use track changes when making changes in the area that contains the amended claims but remove the track changes when moving to the comments section. In addition, in the prior art, even when just working on the section of the amended claims, the user has to switch to track changes Off when adding for example the words "(Original)" or "(Currently amended)" at the beginning of the claim and then switch back to track changes On when changing the claim itself, etc. So preferably, the user can for example automatically add for example the default of the word "Original" at the beginning of each claim for example by using a command that allows defining an automatic nzle for this structure, as explained above, and then for example define or choose in the automatic rules command (or for example mark the entire claims area and define in the claims area) a mode which automatically adds for example the "(Currently amended)" when the user makes changes in that claim, so that the user does not have to switch to Track changes off, and the words "(Currently amended)" are preferably automatically added without track changes. Similarly, in this mode preferably for example deleting an entire claim preferably automatically causes the deleted text to disappear, and the word "(Canceled)" to automatically appear instead, as if track changes has been temporarily suspended. Similarly, for example when adding new claims at the end of the claims section, preferably the track changes is automatically set to Off and the word "(New)" is preferably automatically inserted at the beginning of the new claim. Another possible variation is that if the user for example made a mistake and typed text in "track changes off' mode and wants to make the new text marked, he/she can for example use ~z to temporarily remove the newly entered text, activate the track changes and then for example type ~y and the new text preferably automatically becomes marked. Another problem with the track changes feature is that typically on the screen the changes are most conspicuous when shown in color (especially for example in red, which is the default for example in Word, if only one user makes the changes), however when printing the file for example in laser printers the red typically becomes a weak gray shade which can be difficult to read. Although Word allows the 20/10/05 Yaron Mayer 17/186 user to change the color of the marked changes for example from the typical red/blue to black, in the prior art this affects both the on-screen display and the printing, which is very inconvenient for the above reasons. So instead preferably this is improved so that the user can preferably define separate colors for displaying the changes on the screen and when printed. Preferably by default the on-screen display is the automatic colors, and the printing is preferably by default in black if a black and white printer driver is used and preferably automatically by default in color if a color printer is used (or for example black by default also in color printers unless the user changes it)(Typically the system knows which type of printer is used either by plug and play or by the default printer driver). Another possible variation is that the user can for example also change these definitions in a way that applies only to a given file, instead of being able only to change it globally in a way that affects all files until changed again by the user, and/or for example change these defaults for all the files in the same directory and/or for example change it automatically in all the files with have a very similar file name or for example identical first characters (for example first 7 characters or for example first 50% of characters, etc), or for example all files which are previous versions of the same current file (which means that preferably the word processor also keeps automatic track of version history and/or for example generates this automatically for example according to file names and/or sequential numerals and/or time & date, etc.). Another possible variation is that preferably the user can for example automatically convert marked additions for example to normal underlines, and/or for example vice-versa - automatically convert underlined sections into sections marked with track changes. Preferably the word processing program can ask the user automatically for various types of changes in the way the word processor operates if the change is intended only for the current file or for example for all the files in the same directory or for example all of the files of the same sequence all the files in general or for example one of the other options detailed above. Another problem is that the strikeout on some characters is almost invisible - for example the digit 4 has a horizontal line almost at the exact position of the strikeout line. So preferably the strikeout line is automatically moved higher or lower on such characters, or for example in a line or a word or a section where such characters exist the entire strikeout line is automatically made lower or higher as needed (for example by 1 or more pixel lines), and/or for example the strikeout line is automatically made of a different thickness and/or length and/or angle and/or color (for example just over the problematic character or over the problematic word or section or line). Another problem is that for example in Microsoft Word if the cursor stands on a word that is marked as deleted and the user enters the dictionary, the word is not seen by the dictionary, and trying to access it in the dictionary can also cause the cursor to jump one word backwards. So this is preferably improved so that the striked-out words behave like normal words on the dictionary. Another possible variation is that for example when a section (for example one or more characters or words) is deleted and then reentered next to the deleted text (for example a deleted digit 9 next to a newly entered digit 20/10/05 Yaron Mayer 18/186 9), preferably the word processor can automatically decide to integrate them by removing the deleted redundant part, since it adds no information and looks confusingly like a change where there is really no change, so that for example "teethe" becomes automatically "the". Another possible variation is that preferably, when the color of the changes is set to be according to the user, the word processor allows the user to choose by himself/herself what color his/her new changes will be, since in the prior art this is determined automatically and sometimes for example Word can assign to the user by mistake a color that already belongs to one set of changes even if these comments were not made by him/her. Another problem is that for example in Word 2003 the marked changes are shown in a way that might be confusing or inconvenient for example to users who are accustomed to the way that the changes are shown for example in Word 2000 (especially for example the way deleted text is marked with comments at the side). Although Word 2003 allows the user to view the changes in the old format by choosing "Normal View" instead of "Print layout" in the "View" menu, this is problematic because in this mode the user cannot see the page numbers and in fact cannot see at all the headline of each page, and graphic images are not shown. So preferably this is improved so that the user can choose to view the track changes in the old or the new format preferably without affecting the way the headlines and page breaks and/or images are shown, and preferably the user can toggle between showing the page numbers and headlines or not independently of the format of the marked changes. Another problem is that in the new marked changed format if the user for example simply moves the mouse over for example text which is marked as newly added, many times suddenly a yellow square appears which repeats the inserted text and gives the time and date that it was inserted, but this yellow square many times covers partially the original text, which can be very annoying. So preferably this is improved so that the time and date or at least the date appears only at the side without covering the original text, and there is no need to repeat it anyway.
3. Preferably the word processing program behaves consistently with cut &
paste where Internet pages are involved, so that for example images are kept properly as an internal part of the document (preferably including also any Internet links that the images are pointing to), just as if they were included out of a file for example. For example the way Microsoft Word currently behaves is that if you save a remote Internet page by cut & paste (such as for example htt~p:/lnews.goo 1g e.con~) then the images don't show up at all. On the other hand, if you first save the page locally and then use cut & paste then the images do show up, however they are linked to the local directory where the images were saved, so if the user for example later sends the same Word file to someone else then the images are again missing when that someone else opens the file. (This same problem happens also if the page that was saved locally is properly opened by Word as a local web page and for example is then saved as a Word document). This is inconsistent with the behavior of other images, which become an integral part of the file. so this is preferably solved as follows: If the links are to local images then preferably 20/10/05 Yaron Mayer 19/186 they are automatically inserted into the document file itself, and if they are based on links to the actual Internet then preferably they are also included internally in the document and/or they can also be saved as links (preferably the user is asked which these options he/she prefers).
4. Preferably the word processing program (or other programs that deal with opening files, such as for example other Office programs) remembers automatically for example in the "Open file" dialogue box and/or in the "Save" dialogue box if the user typed last time a filename (or path) in English or in another language (for example Hebrew) and preferably leaves this as the default for the next time. This is very important since it can be very aggravating if the program for example insists each time to start the dialogue box in Hebrew even though the user wants each time to type a name in English. Preferably this default is remembered of course also after closing and re-opening the word processor (for example by saving it automatically in some preferably small configuration file). Preferably the word processor also remembers similarly according to the last internal search in which language the user prefers to perform the search within the file. Another possible variation is that preferably the word processor and/or other applications and/or the dialogue box for example remembers and displays automatically the last requested file pattern when the user tries to open a new file (for example 'f \pats\betwin*13*') and for example if the user for example enters new input - instead of for example pressing enter (to use this pattern) or for example using the arrows and making changes - then the pattern is removed, instead of the prior art, where the input line is empty and the user has to search in a scroll list to find previous search patterns.
Another problem is that if for example Word and/or Windows crashes, the next time that the user opens the word processor he/she is typically given the option to re-edit an automatically saved copy of the files that were open before the crash, but if he/she closes them he/she cannot automatically regain access to them, even if for example he/she later finds out that he/she does indeed need one or more of them. So preferably the word processor is improved so that even after the user closes those automatically offered files, he/she can preferably still activate an option that restores them, preferably even if the user in the meantime closes the word processor and then later reopens it. For this preferably the word processor keeps one or more buffers which point to these automatically saved files and preferably has an indication which groups of files belong together and/or to which crash event they are related, and preferably these files are kept in the original directories of the relevant files (and/or for example in a special directory) for example at least for a certain time period and/or for example as long as there is sufficient disk space and/or for example until their cumulative total space exceeds some value (and then preferably the oldest files are deleted if needed). In addition, since many times the user does not know if he/she needs the automatically offered files, another possible variation is that preferably the word processor automatically runs file comparison between each such file and the equivalent last saved version and preferably shows the user by track changes the differences 20/10/05 Yaron Mayer 20/186 between this and the saved version, and preferably if there are no differences then the word processor automatically does not even offer that file. When showing automatically the differences, preferably the word processor marks them differently (for example by a different color even if the 2 files for example already contain marked changes), and preferably the word processor automatically indicates the amount of difference (for example in terms of number of letters and/or words and/or sentences and/or sections changed), and preferably the word processor can let the user jump automatically to those sections where the changes are. This is important since in the prior art most of the times the user assumes that he/she saved whatever was important and so usually ignores the offered files. Another problem is that when the user for example wants to open a file or use "save-as" for example in Word 2003 on windows XP it usually takes quite a long time till the dialogue box shows the available files in the directory (at least if there are many files and/or subdirectories in the current default directory), even if this is done for example just a few seconds after the previous access to the dialogue box. So this is preferably improved so that this is done preferably instantaneously or almost instantaneously. Preferably this is done for example by saving automatically the structure of the current directory in one or more buffer in memory (and/or even in the disk)(preferably in the same sorted order in which it is displayed), and preferably the OS automatically updates this buffer in memory (and/or on the disk) for example even if some other process which is running at the same time for example changes something in that directory. Preferably this is done for example automatically for any directory recently accessed by the dialogue box, and/or for example the word processor (and/or other applications) can preferably tell the OS already for example when they are activated to prepare the buffer of their current default directory in memory, and/or for example any directories are automatically saved also in the sorted order (For example the OS keeps for each directory or at least for many directories automatically also a sorted copy of the file names and/or sub-directory. This is good anyway since it can serve also as another backup of the directory table). In addition, preferably any changes in file names and/or additions and/or deletions of files are preferably automatically updated for example in the buffer by simply merging them with the already sorted directory, instead of re-sorting it again each time.
5. Preferably the user can use for example ~z (Control-z) (or other similar commands) to undo the last changes even after closing and reopening a file, unlike the prior art, in which this can only be done as long as the file remains open. This is preferably done either by saving the undo data in the file itself, or (more preferably) by saving it preferably in another local file, so that the original file preferably only contains a link to the associated local undo file.
This has the advantage that when sending for example the file to someone else the previous versions and last changes are not transmitted together with that file to the other person, and yet the original user has flexibility to use the undo even after the file was already closed, as explained above. In this case preferably the system indicates to the user when he/she is about to undo 20/10/05 Yaron Mayer 21/186 things to a state before the last saved version of the file and preferably asks for his/her confirmation for that. Another possible variation is that for example the word processor or browser or other application can keep in memory different search strings in different open windows of the same application, so that for example the user indicates if he/she prefers sharing search strings between the open Windows or having one for all. Another possible variation is that for example the word processor or browser or other application (for example pdf viewers) can remember the last search strings or search strings that were used the pervious time one or more windows of the application were open (for example by saving it in some configuration file or other file on the disk), and preferably lets the user choose automatically the last search string or for example chose from a group of recent search strings.
Another possible variation is that for example after the user makes changes in a certain position in the documents which causes jumping there (for example presses ~Z and then ~Y) preferably he/she can also jump back to the position he/she was before the jump. Another possible variation is that when copying text for example by copy & paste into an empty new file preferably the headers (for example containing author name, date and page numbers, etc.) are automatically inserted into the new file and/or for example other file parameters are also copied automatically. Preferably the headers and/or other parameters are copied automatically but the user preferably can also choose for example to disable this feature or for example to disable parts of it.
Another possible variation is that for example copy & paste are automatically available from any messages displayed on the screen (This can be accomplished for example by supplying standard communication tools that support this to various software, and/or for example the OS or for example some special application automatically allows the user to copy and paste for example from any text that appears on the screen, regardless of which program it belongs to).
6. Preferably the word processor program allows the user also options of searching and/or substituting for example based on style (including of course for example text color and/or background color and/or underline and/or boldface and/or italics and/or font type and/or any other feature) and/or shape and/or size instead of just character strings, so that for example the user can request to find the next underlined word (or words or section), or for example the next words that are in italics or for example to jump to the next marked change (when changes were marked for example by using the "track changes" feature or the file comparison feature) or for example jump to the next word marked as possible error or for example request to automatically convert all the words that are in italics to underline or vice versa, or for example to automatically convert all fonts of size 13 to size 14 for example without affecting other font sizes, or for example to increase automatically all the font sizes by a certain additive or multiplicatory factor (so that for example each font size will increase by 1 pixel), or for example to convert one or more word to another word or words and define that the new word or words will for example be marked by underline and/or other style and/or 20/10/05 Yaron Mayer 22/186 shape and/or size in each occurrence that is thus substituted, etc. (Although when activating the "accept changes option" Word for example allows the user to jump to the next mark~l change, this is much less convenient and for example marks the found change in black block, and the user has to click on a number of menu options to reach this, whereas it would be much more convenient if it became a standard available search option like any other search, so that the user can preferably also afterwards for example simply jump to the next such text preferably by a 1-key or 2-key command, for example by simply pressing Ctrl-PgDn, like in other repeat-searches). Of course preferably this can also be combined, so that for example after normal search the user can preferably with a single click or key request also to accept or reject the change, and/or for example after using the search of the accept/reject window preferably the user can close the window and continue searching for the next section (for example by simply pressing Ctrl-PgDn, like in other repeat-searches. Another problem is that when searching for the next change if for example a paragraph number has changed, word marks in black the entire paragraph even though just the number has changed, so preferably this is improved so that only the changed number is marked. In addition, at least when normally searching for text marked by track changes, preferably the word processor does not mark the changed section in black (since that makes it much harder to read) but preferably simply jumps preferably to its beginning, since it is of course sufficiently marked anyway.
Another possible variation (which can be used for example for any situations where marked sections are used) is that the user can for example preferably easily define or chose from a number of available options how marked text for example in general will be shown (for example with a preferably slightly different background instead of inversing it). Of course, preferably this can also be used in combination with other search criteria, so that for example the user can preferably search for example for a specific text which has one or more such specific attributes, such as for example search for all instances of the word "drivers" in which the word is marked as deleted, or for example in which the word is marked as newly added, etc. Of course these additional search options can be very easily supported by the word processor since these text areas have these attributes marked anyway. Another possible variation is that for example when searching for word combinations the word processor has an option of automatically ignoring redundant spaces (for example if there are 2 or more spaces between two words instead of one space).
Preferably the word processor by default offers this option automatically unless the user sets it to look only for the exact amount of spaces between words. Another problem is that when the user for example tries to make a repeated change in Word but confirm it at each step (instead of just global change), the position of the search-and-replace dialogue box many times changes (in cases where otherwise it would cover the relevant text), which forces the user to move the mouse to the new position instead of just keeping his/her hand at the same place and just pressing the Replace or Find-next buttons. So preferably instead, either the position of the search-and-replace dialogue box is always kept constant and the text itself is automatically 20/10/05 Yaron Mayer 23/186 always scrolled so that the relevant part is visible, or if the position of the search-and-replace dialogue box does move, preferably the mouse cursor automatically jumps with it, so the user does not have to move the mouse to correct for the change in the position of the search-and-replace dialogue box.
Another possible variation is that the user can mark one or more areas in the file and activate the "accept changes" command and then the "accept changes" (for example accept ALL changes) can be automatically done only in the marked areas. Another possible variation is that when there are for example difr'erent sets of marked changes (for example according to the time or file version in which the set of changes was made, and/or according to the source of the changes), preferably the user can for example instruct the word processor to automatically accept all the changes but only for example from a certain date or dates or a certain source or sources. For this preferably the word processor automatically shows the user a menu of the available options and allows him/her to choose for example by marking one or more of the desired options. Another possible variation is to include in the search also logical paragraph numbering, so that the user can for example search for a clause that starts with an automatically numbered letter or number (for example "a. " or "35. "). Another possible variation is to allow the user for example to automatically reformat all the logically numbered paragraphs and/or for example to use a certain constant indentation factor without having to mark them, so that for example in patent claims (numbered automatically with numbers, in which some of the claims contain for example sub-clauses marked automatically by letters), the user does not have to mark and move the sub-clauses for each claim separately (as he would have to do in the prior art, since marking for example all the claims together would change both the clauses and the sub clauses to the same indentation) but can for example change some global definition that automatically affects each type of automatically numbered element or for example affects all of them only in the marked section (for example all the claims) - for example a definition for all the 1 ~' level clauses, a definition for all the 2°d degree sub-clauses, etc., or for example the user can define general indentation rules, so that for example for each sub-level the indentation is defined for example as 3 more characters to the right, than the previous level, etc. Similarly, preferably the user can also preferably easily define other rules which apply to all similar structures (preferably by defining an example or choosing for example from general rules), so that for example the user can easily define that in structures such as patent claims each sub-clause within a claim will automatically end for example with a ";" and only the last sub-clause will automatically end with a ".", etc. Another preferable variation is that the user can for example mark one or more sections (for example with the mouse) and then for example toggle automatically between modes so that for example automatic numbers and/or letters can become manual letters and/or numbers and vice versa (for example in the CLAIMS section of a patent). This is much better then the prior art, where the user has to manually convert each number or letter one at a time from automatic mode to real numbers and letters one after the other, or vice versa. The word processor can do this very easily for example by simply 20/10/05 Yaron Mayer 24/186 changing the attributes of the relevant text and adding the appropriate characters or vice versa. (Of course, a conversion from automatic to real numbers and/or letters can be done for example by saving the Word document as a text file, but that is much less convenient and has other disadvantages because it entails losing other format features).
7. In the prior art Microsoft Word, deleting the "Enter" between two paragraphs can cause for example the first paragraph to change automatically its font (for example become bigger or smaller or a different font or in a different style) for example according to some qualities of the empty line that was deleted between the paragraphs or some other reason. Since obviously at least in most cases the user does not intend to create such changes by merely deleting an empty line between two paragraphs, preferably no such changes are created automatically. Preferably fonts and/or style are automatically changed for example only in the 2"d paragraphs after connecting it with the 1 ~' paragraph (and in this case preferably to become like in the first paragraph and not like some empty line in between them), and even that is preferably not done automatically but only if the user allows this by default or requests this specifically for example by pressing some key or some button.
8. Another problem with word processors such as for example Word, is that URL links (typically Internet links) (for example http://www.opnix.com/products_ser~.~icesiorbit1000/Middle Mile_Ma h df are not treated properly when paragraphs are automatically aligned, so that for example a URL link that is too long can jump to the next line and cause the words in the previous line to become with too many spaces between them (as it happens for example with the above exemplary link), and if the user manually fixes this for example by breaking the URL for example at the position of one of the slashes, this will cause the link not to work properly, and also, if the paragraph is then changed again, the broken part of the link might come back to the previous line, thus causing the link to appear as if there is a space between the two parts. On the other hand, if the link is too long to fit even an independent line, it is currently broken by Word at the last character that fits the line (as happens in the above exemplary link), instead of breaking it more smartly, preferably according to the closest slash.
So preferably this is improved, so that links are preferably automatically and dynamically broken and restored between the lines as the paragraph changes, preferably according to slashes (and/or for example sometimes underlines and/or dots and/or question marks and/or other special characters), and preferably when the user presses the link, it is treated as one consecutive link regardless of this automatically changing break between the lines. Another very serious problem with URL links is that for example if the user copies and pastes a new http link over a previous http link for example in Word, the address appears as if it has been changed, but when the user presses the link he actually gets the original link. So preferably the word processor (or other application) automatically replaces also the internal link to automatically comply with the visible link, or for example saves only the visible link and 20/10/05 Yaron Mayer 25/186 uses that information when the user tries to access the link, so there is no additional internal link which can become different from the visible link.
9. Another problem is that in large files if the user wants to mark large areas with the mouse (for example from a certain point till the end of the file), he/she must continue to hold the mouse pointer near the bottom of the page with the mouse key pressed, which can be quite annoying. So preferably for example while the mouse key is still pressed, the user can for example use other location commands, such as for example Control-PageDown or Control-End or search commands, and then preferably the entire area till the next location becomes marked, instead of having to wait for the page to scroll. Another possible variation is that the user can for example simply jump between two places and then press some key (or for example click one of the mouse buttons) which marks the entire block between them, or for example mark one place (for example with the mouse or by pressing some key) and then jump to another place and when reaching the desired destination press some key (or for example a mouse button) and the entire area between the two marks becomes marked. Another possible variation is that for example pressing some key can significantly increase the speed of the scrolling or for example moving the mouse further to a more extreme position significantly increases the speed of the scrolling (preferably this is linear, so that the speed changes gradually according to how extreme the position of the mouse is, but it can also be for example exponential so that for example going the extreme bottom position will almost instantly cause the position to jump to the end of the file). Another possible variation is that if the user already marked a section for example with the mouse and then for example uses the mouse to click on something else and then wants to go back and for example increase or decrease the marked area, he/she can still use the mouse and/or other keys for example to go back and extend or reduce the section without having to start marking again from the beginning. This can be also useful for example if the user first uses for example ~a to mark the entire file and then for example uses the mouse and/or other keys to reduce the marked section or remove parts of it. Another possible variation is that the user can mark more than one area with the mouse at the same time, for example by pressing some key that tells the application not to remove the mark from the previous marked area or areas. Preferably these options are done for example by pressing some key which tells the word processor (or other application) to keep the previously marked area and add to it and/or for example to automatically restore it if the user clicked on something that already created a new marked area instead of the previous marked area, and then the user can for example increase the marked area or reduce it or for example mark one or more additional sections while the original marked section remains marked. Of course these and/other features can be used also with other types of files and not just in word processing programs, such as for example with Internet browsers, etc.

20/10/05 Yaron Mayer 26/186
10. Another important improvement is that preferably the user can for example choose a specific font color and/or for example specific font attribute (for example underline) which preferably is kept automatically until changed again, so that this text preferably appears wherever the user adds it to previous text, regardless of the color or other attributes of the section of the previous text in which the new text in inserted. This is very convenient for example for keeping track of additions (for example when the user does not want to activate the automatic track changes), or for example for adding comments for example in another color. This is in contrast to the prior art, where for example in Word such options must be chosen again in each section, otherwise when the user starts to add text at a different place it automatically assumes the color and attributes of the surrounding text.
11. Another improvement is that preferably the word processor can allow the user to easily define page numbering that starts from a certain value other than 1, for example since page 50 (or any other desired number) since for example sometimes the user might want to print pages that will be attached after other already printed pages as if they are part of the same file. This can be defined for example by letting the user use a formula, so that for example if the current page number is marked for example in Word as "#", the user can preferably specify for example "#+49", so the page numbering will start for example from 50 instead of 1, and then preferably for example the total number of pages is automatically updated accordingly even if the user does not enter the formula there too. Another possible variation is that for example when the user enters for example in the top page title for example the # mark, which in Microsoft Word means automatic page number, the system automatically shows for example a scroll window near it with the default of 1 and the user can instantly for example increase the number by scrolling the window or typing a different number there. (Although for example Word allows the user to cause the page numbering to start at a different number, it is done in a much less intuitive way since the user has to go to the "addition"
menu, then choose "page numbers", then go to "Pattern" and then indicate a page number to start from).
12. Another problem is that for example Word sometimes decides to move paragraphs to the next page without any apparent reason, thus leaving sometimes a large empty space in the previous pages. So preferably the user can for example click in any such case for example on the empty space or on the moved paragraph and/or for example enter a command that tells the word processor that the user does not want such empty spaces, and/or for example the user can activate a command that automatically fixes all such unnecessary empty spaces globally and/or prevents them from being created.
13. Another problem is that in Word for example when switching between the Hebrew dictionary to the English dictionary or vice versa, the language in the small window where the checked word is entered does not automatically change in accordance, so many times the user has also to press Alt-Shift in 20/10/05 Yaron Mayer 27/186 order to switch to the desired language in the small window, which can be very aggravating if the user starts typing and then sees that the language is the wrong language. So preferably this is improved so that switching the dictionary also automatically switches the language correspondingly in the small window or area where the word has to be entered, so that for example if the user switches to Hebrew/English dictionary then the language in the small window preferably automatically becomes Hebrew, and when the user switches the English/Hebrew the language in the small window or area where the word has to be entered preferably automatically becomes English.
Another preferable improvement is that when switching language, if the user has already entered a word in the translation window, preferably the word is not automatically erased when the user switches the language. Similarly, if the user for example switches the language in the small window, preferably this can automatically switch the direction of the dictionary accordingly, so that for example if the user changes to typing a Hebrew word the dictionary preferably automatically becomes Hebrew->English, and vice versa. Another possible improvement is that preferably when using the dictionary the user can use also forward and/or backwards movement (for example by clicking on an appropriate icon or a keyboard key), so that he can go back or forward to previously checked words (in a way similar to browsing a directory or to browsing the Internet). Of course this preferably done with any relevant languages. Another preferable improvement is that the dictionary preferably allows the user to use back arrows in order to go back to previous points in the dictionary for example if the user clicks on various words in a sequence.
Another preferable improvement is that when the thesaurus is used preferably the dictionary shows near each newly found word of the thesaurus also its translation to the other language (for example Hebrew) and/or a short description of its more precise meaning in a few words, for example within brackets next to the word, and for example clicking on any of the words or explanation words or the translated words (for example in Hebrew) preferably activates the thesaurus and/or the dictionary again recursively on the clicked word. In addition, preferably the thesaunzs and/or the dictionary automatically takes into consideration the context in which the word exists in the file (for example the next few words and/or the sentence and/or the general subject) so that preferably when displaying semantic trees or groups of semantic branches preferably the groups or branches are pre-sorted according to the most likely meaning when taking said context into consideration and/or for example only the most likely meaning branch is shown. Similarly, preferably the automatic typing-error-correction system preferably also takes into account also the context and so preferably chooses the word most likely according to context when there is more then one reasonable correction (and/or for example in cases the system is not sure it preferably shows the user that there is more than one likely correct word and asks him/her to choose the correct one for example by scrolling to the preferred one), since in the prior art many times the automatic error correcting system for example in Word corrects a word which contains a spelling error into a different word which the user didn't mean at all and then 20/10/05 Yaron Mayer 28/186 if the user doesn't notice it the sentence might be perhaps even dangerously wrong. Another possible variation is that the user can for example activate a command which automatically indicates all the words in which spelling errors were previously automatically corrected the word processor, so that the user can check specifically these words to see if there were any such errors of changing the word to something that was not indented by the user. (This means of course that preferably the word processor (or other application) preferably keeps for each word in the same file or in a separate file a tag that says if it was automatically corrected and preferably also what it was before the correction). Another problem is that for example in Word if the user for example inserts by mistake a digit in the middle of a word (for example "t6hat") the error correction function ignores this and does not mark this as a possible error. So preferably this is corrected so that for example at least if there is a digit in the middle of a word (and/or for example also if it is attached at the beginning of the word and/or for example also if it is attached at the end of the word) it is preferably at least marked as a possible error.
Another preferable improvement for example in words processors, and especially for example in editors that are used for editing software programs, is that preferably the editor can mark automatically matching pairs of brackets in a way that the user can easily see the matching pairs - preferably by automatically showing each pair in a different color. Another possible variation is to show them for example, instead or in addition, in a different style or for example in a somewhat different height, however changing the color is more preferable since it is more conspicuous and much more variations are available. Another possible improvement is that when the user wants for example to correct intermittently two (or more) sections in the same file (for example the claims and the relevant part of the specification in a patent application), preferably the user can for example press a key or combination of keys which causes the position in the word processor to jump automatically between the various last edited sections. This is preferably done by the Word processor preferably automatically saving a buffer of all the last separate positions that the cursor was last on (for example if the distance between them is more than N characters), and then pressing for example some key or key combination moves the position accordingly (This can be done for example automatically between the last two places, and if the user wants more jumps backwards preferably a different command is used).
Another preferable variation is that preferably the automatic error checking of the word processor includes also at least some statistical and/or semantic checking of unreasonable words or word combinations that are probably a typing error even if there is such a word and/or eventhough it is grammatically possible, such as for example if the user writes by mistake "any pother way" instead of "any other way". Since the word "pother" does exist and the combination is apparently grammatically possible, Word does not indicate any error, eventhough any normal human reader would immediately see that it is a mistake and the correct word is "other". In order to accomplish this preferably the word processor uses at least some taxonomy of semantic knowledge, and/or at least the word processor preferably has a 20/10/05 Yaron Mayer 29/186 preferably large database of typical texts, for example form newspapers and/or books and/or web pages, and preferably all single words and/or up to a few word combinations are indexed according to how many time they appear, so that preferably the word processor can instantly check for example for highly irregular combinations and/or at least run the check for example when a rare word is involved, etc., and preferably the word processor issues the error message especially if there is clearly a very similar word combination that is much more common. Preferably the word processor also takes into account for example the layout of the typical keyboard (so that for example an error of adding a 'p' before the 'o' or for example substituting 'o' with a 'p' or vice versa is much more likely than for example making a substitution of far letters) and/or also takes into account acoustic information (for example words that sound alike, etc.). Another possible variation is that the word processor for example learns from recording the user's own behavior when such errors are made and then corrected by user (especially for example if this occurs repeatedly), and then preferably warns the user automatically when such errors are made again and/or for example automatically corrects it the way the user has typically corrected it before.
Of course various combinations of the above and other variations can also be used.
14. Another problem is that when opening files for example with the windows dialogue box (for example from Word) the dialogue box does not display the full file name if the file name is too long. In windows 98 the problem was even worse since the dialogue box cannot even be enlarged at all, whereas in Windows XP at least the user can enlarge the window of the dialogue box by dragging for example its bottom right corner with the mouse. However, this is still not convenient, since the system allows for example to define file names of length up to 256 characters, but the dialogue box by default will typically display only up to a little more than 80 characters. So preferably this is improved so that the dialogue box preferably automatically adjusts its size to a size that is sufficiently large to display the full file name if one or more of the file names that are displayed is longer than the default, and/or for example a slide bar is added (for example at the bottom) that allows the user to scroll and see the full name (in other words preferably the dialogue box automatically finds the largest name and adjusts its size according to it).
However, sometimes the name is even too long to fit the line even when the box is in full size and/or for example too long to fit the top line of the Word Window (and/or in other applications), and/or for example it shows truncated in the yellow explanation box that Word shows when holding the mouse over the file name, so preferably is such cases the filename is preferably automatically for example wrapped into two or more lines and/or for example the font that displays the file name is automatically reduced in size for example by making it smaller and/or thinner, but more preferably by making it only thinner, and/or for example the user can click or otherwise jump to the end of the line and see the rest of the file name and/or for example cause the filename to scroll for example sideways for example my moving a bar. In the 20/10/05 Yaron Mayer 30/186 prior art the slide bar is enabled only if more file names are displayed sideways, but moving the slide bar jumps one column to the side without letting the user see the rest of the name if the name is too long. The automatic resizing can be done for example also in other types of Windows, so that for example when sending email with attachments for example in Netscape preferably the size of the right internal window that shows the attached file names preferably automatically increases if the file name is longer, at least for example if there is sufficient room, since typically the email addresses on the left internal window are not very long. Another possible variation is that for example before sending the email with attachments the user can for example easily change the order within the list of attachments, for example by pointing the mouse to one of the attachments and dragging it to a different position in the list. Another preferable improvement is that for example when deleting a file in the dialogue box that displays existing file names, preferably by default immediately a8er the deletion the display is updated so that the list of files is displayed more or less in the same position (preferably the display up to the deleted file remains the same, and is updated only from the deleted position onwards), since typically the user will want to continue at the same place after the deletion. In the prior art deleting a file in the dialogue box causes the display to jump back automatically to the beginning of the list.
Another problem is that the dialogue box that allows the user to choose directories and files and the explorer Window show file extensions only when the file type is unknown, so for example if the same file name exists both as an rtf file and as a Word doc file the user has no indication which is which (unless he/she tells for example Word to show only files of one of the types). So preferably this is improved so that in the dialogue box and/or in the explorer Window the extension is shown even when the associated application is known. Another problem is that when the user searches for a specific file or file pattern (for example a file name with a wild card) the explorer window shows first directory names and only afterwards files, which can be very inconvenient if there is a large number of sub-directories in the directory where the relevant files are. So preferably in the windows explorer and/or in similar utilities either the files are displayed by default before the directory names or for example the user can easily indicate which of these orders he/she prefers. Another possible variation is that for example instead of or in addition to the icon that shows the associated application (for example Word) the window can show also an Icon that represents the general type of the file (for example music file, video file, word processing file, C
program file, HTML file, etc.) regardless of the associated application.
Another possible variation is that for example even when an internal Window of a program is in front of a background window of that program and does not allow accessing the background window for example until the front window is closed, preferably the OS automatically allows the user at least to move the previous window and/or perform at least other acts that preferably do not change the way the software behaves but allows the user at least to control the view of the background window.

20/10/05 Yaron Mayer 31/186
15. Another problem for example in Word is that drawing tools are very limited so that for example various lines can only be positioned at certain minimal jumps of a few mm distance from each other instead of at any desired pixel positions. This creates unnecessary limitations on the available resolution and other problems. So preferably this limitation is removed, so that the user can preferably position any object on any position where a valid pixel exists.
Similarly there is a problem that the user cannot for example simply mark one or more images for example with the mouse, for example in order to delete it or cut and paste it elsewhere. In the prior art Word the marking usually works only on a group of images depending for example if there is a text before and after them that can be included in the marked block, and so that normally the user has to mark manually multiple elements in an image in order to copy or move it. So preferably this is improved so that the user can simply mark any area in an image or part of it (for example even according to pixel lines and/or columns) and then for example delete it or copy it or move it. This is very easy to do since the word processor (or other application) knows which part of the image it images is displayed within the marked area.
Another possible variation is that for example after the user marks such a section he/she can for example not only cut& paste and/or copy or delete the marked section but also for example rotate it so that preferably all the elements in the marked section are rotated in synchrony, etc. (for example in any desired amount of degrees, etc.). The application can do this for example by vector graphics manipulations or by computing the changes on a pixel basis. Another possible variation is that preferably when using for example the wavy line (in the automatic shapes menu) preferably the user can use undo (for example ~z) to cancel the last curve or go back to previous curves.
This is better than the prior art for example in Word, in which if the user makes a mistake he/she has to delete the wavy line start creating it again.
16. Another possible variation is that preferably for example in word processing programs and/or for example Internet browsers and/or other software preferably the user can move any icon and/or for example any menu item and/or sub-menu item (preferably including for example within pull-down menus) to any desired position (preferably simply by dragging it with the mouse) and preferably the same icon and/or menu item automatically continues functioning on the new position, and this new position is preferably saved automatically also after the user closes the application, but preferably the user can also undo any such changes, preferably even after the application has been closed and reopened (which is preferably accomplished by keeping a rollback log in a separate configuration file and preferably for example by using variable pointers for the menu items). This is better than the prior art in which for example the user can sometimes move certain groups of elements together but not in a consistent manner and not for each item independently (for example in Microsoft Word). This feature is preferably supported automatically for example by compilers such as for example visual C, so that preferably the programmer does not have to do almost anything in order to enable it. Another possible variation is that the user can also for example change the position of the normal boxes on the taskbar that represent 20/10/05 Yaron Mayer 32/186 normally running programs (preferably by dragging them with the mouse), so that the user can conveniently re-arrange their position without having to close and reopen these programs.
17. Another possible variation is that preferably the user can for example mark an area in the word processor with the mouse and preferably activate a command which for example automatically removes any table or other structured formatting from that area, so that preferably the text is still divided preferably the same way, but after this the user can for example make any other changes as if the table or other structure never existed. Another possible variation is the opposite - so that the user can for example enter text that looks like in a table but without the actual structure and then activate a command which automatically adds the structure - for example by guessing the most likely structure that fits the given shape of the text.
18. Another possible variation is that for example the copy command (typically ~C) can also be activated cumulatively (for example by activating some flag), so that for example a certain sequence of ~C commands can create a cumulative buffer of for example consecutively pasted texts, so that afterwards for example ~V at a certain position will preferably paste back the consecutive group of pasted texts as one sequence.
19. Another possible variation is that preferably the word processor automatically checks the date in the system in short intervals (for example every few minutes) and thus updates the date field automatically whenever it has changed (for example when the user has included the date field in each page header), and not just if the user reopens file or prints it, as is done for example in the prior art Word. Another possible variation is that for example the user can change page definitions (for example size of top and bottom margins and/or other parameters) also for example for a single page or range of pages and not just automatically for all the pages as in the prior art Word.
Of course, like other features of this invention, these features can be used also independently of any other features of this invention.
Additional improvements in the OS preferably include also at least one of the following:
1. Preferably the OS allows the user to define at least one User which the system (such as for example Windows NT or XP) will enter by default and without a password if the user does not request to enter a particular User after a certain time (for example 50 seconds) after the system reaches the menu that's asks to choose a User. This has the advantage that for example after a temporary power failure the system can automatically resume the original User. Preferably this is accompanied by the ability to define for example a sequence of actions to be taken upon entering this User by default, such as for example connecting with the Internet and activating a server and/or
20/10/05 Yaron Mayer 33/186 whatever other program or programs need to be resumed after a power failure. This is somewhat similar to programs in the startup menu, except that this feature is preferably more powerful, so that it enables for example to define also various sequences of actions or for example to carry on automatically certain activities only if the User was entered automatically by default. Another possible variation is that if the system enters the default User without password, preferably it enters a limited mode where for example it takes no commands from the keyboard or mouse and/or has other limitations, for example until the user for example comes back and enters some password. For example the system can enter immediately the state that it would be in if a screen saver was activated and a password is needed to resume operation with the keyboard or mouse.
2. Preferably if the user uses for example write-once CD's (and/or for example DVDs) for backup and uses direct writing software, such as for example DirectCD, if the user copies the same file more than once onto the same CD
(to the same directory), then preferably the backup software can automatically rename the old files for example with some automatically sequenced extension, so that the user can automatically keep and track also older versions this way. This is quite useful for version tracking and is better than simply overwriting the file, since in such CDs the old data cannot really be overwritten anyway. Of course, preferably the user has an option of turning this feature on or off, and/or for example can activate it retroactively for example for write-one CD's or DVD's in which it has not been used (in this case preferably the system automatically reconstructs the version sequencing according to the time and date each "deleted" previous version was saved). Another possible variation is to apply such automatic sequencing automatically for example also to other drives and/or directories that the user defines as back-up drives or directories and/or to other types of backup devices. Another possible variation is to enable by default (or for example to allow the user to request it) automatic backup of important files to the default backup directory and/or drive and/or device, so that for example each doc file (or for example program source file, or other for example office type of file) that has been created or changed and has not been updated for more than a certain time period (for example 1 day or a few hours), and/or for example after a certain threshold amount of change even if less time has elapsed, is automatically backed-up on the default back-up media, and/or for example browser bookmark files are back-up like this, etc. (The important types of files are preferably defined automatically by default and/or user-defined).
This can be a great help for example for users who forget to make backups.
After the media becomes full and/or for example shortly before that the system can for example report this to the user and prompt him/her for example to insert a new blank writeable CD (or other media), etc. (In case of the bookmarks file for example, if for some reason the latest version has crashed or was damaged in anyway, preferably the system can automatically reconstruct the latest version for example by taking the last backed-up version and adding to it preferably automatically all the links that were 20/10/05 Yaron Mayer 34/186 visited from that time onwards, for example according to the browser's recent history list). Another possible variation is that for example normal CD
creation programs which write a CD file image as a single transaction, such as for example CD Creator, preferably enable compressing files on the fly (for example as zip or other common compression formats). This is better than the to the prior art, where such compression is available only when the CD is accessed like a disk, for example through programs like "Direct CD", which when there is a large number of files write to the CD significantly slower than for example programs like CD creator. Another possible variation is that the user can for example select files for backup according to a certain range of sizes (for example backup automatically all the files that are smaller than 1 megabytes or 10 megabytes, etc.) or for example define automatic backup rules for files according to their types (so that for example every new doc file is backed up automatically for example more frequently than less important files, etc.). Another preferable improvement is that like smaller pocket-sized CD's, preferably DVDs and/or similar larger capacity drives (such as for example blue-ray or High Definition DVDs) support also smaller pocket-size DVD's, preferably both as burn-able media and as ready pre-recorded media. Another preferable variation is to improve DVD
capacity even much more for example by using UV or extreme-UV lasers instead of red or blue. However, preferably the media for such DVDs are made sensitive to writing only at a strength and/or frequency which is sufficiently different from normal UV radiation from the Sun, so that for example exposure to the Sun will preferably not have a degrading effect on the media or at least only a small effect. Another possible variation is that preferably the bookmarks list automatically shows also near each bookmark for example the date it was entered, and/or for example the bookmarks are automatically grouped for example by days, for example with a different color for each group and/or some border marked between the groups, and then for example the date can appear once for the entire group instead of near each bookmark in the group. Another possible variation is that the user can for example tell the browser to automatically merge two or more bookmark files while keeping for example the date of visiting (and/or any other criteria) as the ordering factor.
3. Preferably the OS allows the user to access at least one CD-ROM drive even when the OS is started for example in "safe mode", otherwise it can be very frustrating when the user might not be able to fix various things for example because he cannot fix anything from the installation CD while in safe mode.
In addition, if for example the OS becomes unstable or cannot complete a boot for example because of a problem with some driver, preferably the system is able to automatically remove and/or ignore and/or report to the user the driver that is causing the problem. Even if the problem for example crashed the computer completely so that the OS could not report anything, preferably during each boot the system for example keeps a log of all successful steps in the boot, and so even if a certain step causes a crash so that the system can't even report the problem, preferably in the next boot the 20/10/05 Yaron Mayer 35/186 system knows by the incomplete step in the log exactly where it crashed the last time and can preferably automatically complete the boot this time without the problematic step and preferably reports to the user exactly what the problem was and/or preferably automatically removes the problem and/or offers the user for example to chose among a few possible corrections to the problem so that the problem does not occur at all again after that. Another possible variation is that various data (such as for example the condition of the CPU, heat, various memory parameters and/or other parameters) are constantly kept at preferably small intervals, for example in one or more circular buffers, and preferably for example a special mark is added to the current position of the buffer after each new boot, so that if for example the system crashes for an unknown reason and resets (for example even while being unattended), the user and/or the OS can automatically know after the next boot what caused the crash. Another possible variation is that whenever the system crashes these parameters are automatically saved for example by some special application that preferably runs below the OS and can still perform this operation even if the OS is completely stuck. This application can for example also be responsible for an automatic reset if it senses that the system has indeed crashed or got stuck or for example if it senses that the CPU or some other element or device has become too hot or is otherwise dangerously malfunctioning (in which case preferably an automatic shutdown is activated instead of an automatic reset), and/or for example some special hardware element is responsible for that. Of course, various combinations of the above and other variations can also be used.
4. On the other hand, preferably the user can disable the Autorun feature that enables programs on CD's to start running automatically when the CD is inserted into the computer, preferably without having to disable for that the Auto insert notification for that drive, since this feature is very unsafe in terms of security. In the prior art the user can disable this in Windows only by disabling also the auto insert notification, which is not desirable, since disabling the auto insert notification can cause other problems.
5. Preferably the Windows OS allows executing files in DOS (CMD mode in Windows XP or NT) also by clicking on or near their name instead of having to type it. This is very important for example in Windows NT or XP, since, unlike for example Windows 98, the user has to type the whole name of the command instead of being able to type also instead only the 8 character DOS
name of it. Since for example in Windows NT and XP the user can in DOS
mode click on the mouse in order for example to mark a name for cut and paste, preferably the execute command is added for example to the menu of these available options. (Of course there are programs that can be used for example for automatic file completion, but this is another option that allows more flexibility and convenience to the user).
6. Preferably the OS itself and/or various relevant applications can display for certain activities approximately how much time it is going to take and/or for 20/10/05 Yaron Mayer 36/186 example the percent completed and/or the percent remaining - even if these are complex activities such as for example when scanning for viruses.
Although many applications do give such information - these are typically applications that deal with a single file or a pre-specified list of files, whereas for example virus scanning programs do not, which can be aggravating to users, since such activities can typically take for example anywhere between 5-20 minutes. So preferably the relevant applications and/or the OS can automatically calculate for example the number of files and/or their cumulative size (preferably of course only for the relevant types of files that are to be scanned), and thus for example the application and/or the OS can display to the user an estimate of time and/or percent done and/or percent remaining. Preferably this is made available for example also to the application's programmer, for example as an OS function that can return for example the total number of files of a certain type and/or extension and/or their cumulative sizes, for example on the entire computer or for example on a given drive or directory (preferably automatically including all of its sub-directories). Another possible variation is that if the user for example aborts a virus scan and later wants to continue, the program can automatically continue from the last point reached. This can be done for example by saving the position in the directory structure and continuing automatically from there, preferably for example if the time since the last scan is no longer than a certain time (for example 1 hour or any other reasonable time gap), and for example if the time gap is bigger then preferably the program asks the user if he/she wants to continue from the same point or restart the scan.
7. Preferably commands such as for example "copy" are extended so that multiple destinations can be used, so that for example copy "bet*.doc l: n:"
will copy all the relevant files to all the destination drives/directories.
Another possible improvement is that preferably when copying a large group of files (for example from one directory to another, for example in a DOS
window or with the Windows explorer) the user also has an option of "No to all" if he is asked if to overwrite files with the same name. In the prior art the user has to answer this for each file that has the same name individually or can choose "yes to all" but there is no "no to all" option.
8. Preferably various Undo commands are applied also to various memory related commands where they do not yet exist, so that for example if the user works with an Internet browser and presses a "clear form" button, preferably the user can undo it for example by pressing control-z or for example pressing for example some undo button for example on the browser.
Similarly, preferably the browser itself keeps in memory for example recent changes to various form fields in the same page and/or for example also on previous pages, so that for example jumping back to a previously filled field on the same page or for example also on previous pages will still allow the user for example to undo changes in that field, for example by pressing ~z. In addition, preferably, as explained also in Canadian applications 2,455,342 of Dec. 17, 2003 and 2,452,778 of Dec. 29, 2003 by the present inventor, 20/10/05 Yaron Mayer 37/186 preferably the HTML command set and/or for example the Javascript command set is improved, so that preferably it is possible to define for example which button (or buttons) will be activated by default for example if the user presses for example the Enter Key and/or for example the Space Key, and/or for example what action (if any) is to be performed when various keys are pressed. Preferably the keys can be linked for example to Javascript buttons for example by a definition in each button (however, if for example in more than one button the same key is defined as activating the button then preferably there are rules that define which button overrules), and/or for example additional commands are added (preferably within HTML tags that define directly various actions that can be performed and/or buttons that should be activated when a certain key is pressed). This is very important since for example in standard HTML forms there is a problem that pressing the Enter key for example when an input text line (or even for example a radio button or a checkbox button) is in focus can cause the form to be submitted. Sometimes this is undesirable (for example when the user is required to fill a form with multiple items), and in the prior art the only solution is adding various Javascript checks and issuing error messages for example if there are still empty fields. But if the user pressed enter for example after filling in a text line and did not intend to submit the form, such messages are aggravating. So preferably to prevent this, the above additional commands can be used for example to generally define for example that pressing the Enter key for example anywhere in the form (for example by adding the appropriate command within the "<form..." tag that appears at the beginning of the form or for example within the tag that defines the submit button) will have no effect or at least will not cause the form to be submitted, or for example this can be defined in specific fields (for example within the tag that defines the field).
9. Another problem with Internet browsers is that in some cases lines are truncated when printed, which can happen sometimes for example when forms or tables are used. In order to prevent this, preferably the browser and/or the OS and/or the printer driver preferably automatically check if this is about to happen (preferably by simulating the printed page into memory and checking the representation of the results) and, if so, this is preferably automatically prevented, for example by automatically converting to landscape mode, and/or by automatic additional line wrapping if possible (for example, if it does not damage a format of a table), and/or for example by automatically reducing the left and/or right page margins and/or by automatically reducing the font size (for example just in the horizontal dimension or both horizontally and vertically, in order to keep the aspect ratio), and/or for example informing the user about the problem and asking him to choose from a number of possible solutions (such as for example any of the above described solutions) and/or allowing the user for example to decide to truncate less important parts on the left of the pages (for example if the user is printing an article and the left column for example contains only links and/or advertisements and/or irrelevant images). Another possible 20/10/05 Yaron Mayer 38/186 variation is that the user can for example mark just part of the displayed HTML page (for example with the mouse) - for example just a specific column, and then use a command that prints only the marked area. (Of course in the current prior art the user can for example mark an area in the page that is displayed by the Internet browser and then use copy and paste and print it for example from Word, but the above option allows the user preferably to do this in a faster and more convenient way, and also the url address is preferably automatically also printed, even if only part of the page has been marked and printed). Another preferable improvement is that for example the browser or the printer driver shows the number of pages that will be printed before the user starts the actual printing. (For example the browser can show the logical division of pages if the Internet page will be printed or at least show the total number of printed pages at the bottom of the page display on the screen, or for example when the user presses Control-P, preferably the print dialogue window shows the projected number of pages that will be printed). In the prior art the user had to start the printing of normal html pages in the browser and wait till the first page has been printed in order to see on the first page how many pages will be printed from the displayed Internet page. In addition preferably the user can easily reduce or increase the size of the printed fonts, for example by a specific command when printing, or for example by reducing or increasing the size of the fonts on the screen so that this affects automatically also the printing. In the prior art for example in Netscape the user can reduce or increase the font size of web pages on the screen by pressing Control+ or Control-, but these changes have no effect on the printing of web pages, and also they affect only the fonts and not the images. Preferably this reducing or increasing of fonts can be also done for example for a specific web page and/or for a specific site instead of Globally, since for example in Netscape the changed size remains also when the user moves to other web pages (however preferably the browser remembers the changed size of the page or for the site for which it was made). Another possible variation is that the same command that reduces or increase the font size on the page (and/or another command) can cause also the images to automatically grow or shrink in addition to or instead of the fonts, and this preferably also affect also the printing (for increasing the image sizes, preferably the images are vector-based images, or for example the browser simply enlarges them eventhough the resolution remains the same, or for example the http protocol is improved so that images are automatically saved by web servers and/or by relevant web authoring tools in more than one size and for example the browser can automatically request the same image again with some parameter that tells the server to send it in a larger size and then the server automatically sends again the same image in a larger size. If the last variation is used then it means that preferably the web page designer includes an image of higher resolution and preferably the web authoring tool or the web server and/or the user's browser can automatically generate also the reduced resolution versions). Another possible variation is that the user can mark a section (or sections) of the page and then preferably these changes can affect for example only the marked section. Another problem is 20/10/05 Yaron Mayer 39/186 that unlike the printing of web pages, in which the browser adds the URL
usually at the top or at the bottom of the page, when printing for example pdf files from the Internet, the pdf Acrobat reader does not add this info and so the user can later forget where he/she found the document. So preferably this is changed so that for example the pdf viewer preferably automatically adds this info also preferably on each page or at least on the first page of the printing. Another problem is that when saving web files both normal browsers and for example the pdf viewer do not include anywhere the url information. So preferably this is also improved so that preferably the browser and/or pdf viewer and/or other applications automatically add the url info for example at the beginning of the file (for example in the form of a comment or any other form which does not effect the way the file is displayed but can for example be automatically displayed for example by the browser, or for example pdf viewer in case of pdf files, when the file is later reopened locally, or for example it is automatically inserted as a visible text for example on each page or at least on the first page so that it can be viewed automatically when displayed by any editor or viewer). Another possible variation is that the user can for example reduce the size of fonts and/or icons and/or images on the computer's desktop by a similar command that preferably affects the entire desktop (and/or for example a marked section in it) automatically, preferably by any desired factor, and preferably without having to restart the computer to see the change. Preferably this change is seen instantly, like when increasing or reducing for example the font size in the browser. In addition, if for example increasing the size of fonts and/or of icons on the desktop and/or changing the screen resolution causes a problem that some icons no longer fit on the desktop, preferably this is automatically handled by creating vertical and/or horizontal scroll bars at the edge of the desktop, like in a normal directory window in which there items that don't fit in the Window. This way the user can for example drag items back in and/or resize the desktop in order to get rid of the scroll bars. Another possible variation is that in this case the system can automatically reduce spaces between icons and/or recommend to the user the maximum size that can be used without problems. In addition, the OS preferably supplies the user with an Undo command (and preferably also a Redo command) for example for changes in the desktop icon sizes and/or for moving icons (and/or for example also for other changes, such as for example removing or adding or changing the position of items that constantly appear near the taskbar, for example at the top or the side of the taskbar, etc.), and this undo is preferably also available for example when moving and/or resizing icons in a directory and/or in other windows. Preferably this undo is incremental, so that the user can preferably roll back till the start of the changes (Preferably this is accomplished by automatically saving the positions or the changes between the various configurations for example each time after the movement of one or more icon has been completed or for example after the user closes the window). (In the prior art windows undo is not available for resizing windows and/or changing positions of icons). This is much better than the prior art in which changing the font size and/or the resolution might cause 20/10/05 Yaron Mayer 40/186 icons to become invisible on the desktop or to crowd over each other.
Another problem in the prior art (for example in Windows XP) is that reducing the resolution and/or increasing the system font size can cause the window that asks if to keep the new resolution to appear outside of the desktop (i.e. become invisible) and/or cause the text in various system message windows to appear truncated. This is preferably automatically prevented, and for this preferably the system automatically calculates the new size and ratios and thus makes sure that all the message windows appear in a visible area and that the text size in them fits the message window, and if not then preferably the message window's size is automatically adjusted as needed and/or the font size in the message window is automatically reduced as needed and/or for example scroll bars are added to it as needed. Although Microsoft recently announced that the new Longhorn version of Windows will contain smooth scaling (a feature which exists already in Macintosh OS
X), there is no indication that the above described features regarding the desktop will be included, and the smooth scaling is apparently relevant mainly to flicker free animation and to DPI scaling or window scaling instead of only window resizing, i.e. the ability to automatically change the size of text and images through the graphics card, so the some of the above described features will be easier to implement (but without the above features, changing for example the scaling of the desktop can lead to exactly the problems that some of the above features are intended to solve). Also, preferably the ability so increase or decrease for example the size of the text and/or of the images and/or icons for example in web pages or in other windows as described above is preferably independent of the size of the window, since scaling the size of the text and images automatically by the window size is more relevant for special animation effects involving the windows (such as for example juggling or rotating windows around the screen), but when the user wants to work on the window typically he/she would want to be able to choose the most desirable size of fonts and/or images regardless of the size of the window (This means that for these purposes the resizing is preferably done by reformatting the page, like in the above described Netscape feature, and not by some purely graphic effect performed by the graphics card). Another possible variation is that for example if the user changes the screen resolution, the fonts and/or icons on the desktop and/or in other places or applications by default remain more or less the same size (unless for example the user explicitly requests to change them, which can preferably be done independently of any change in screen resolution), preferably by using for example the smooth scaling to automatically correct for the changes caused by the changed resolution, so that if the user increases the resolution the fonts and/or icons and/or images can be automatically increased in size to compensate for this and if the user decreases the resolution the fonts and/or icons and/or images can be automatically reduced in size to compensate for this. So if the user for example switches from a resolution of 1024x768 to a resolution of 1280x1024, the fonts and/or icons are preferably automatically increased in size by the appropriate factor (in this example preferably they are increased 20/10/05 Yaron Mayer 41/186 in width by 25% and increased by height by 33%, and/or the aspect ratio is maintained by default so that the width and height are for example both increased by the higher value or by the lower value or for example by some average value. If for example the default is the average, this has the advantage that by default the minimum change in icon shapes will be perceived. However since, as explained above, the desktop preferably remains the same size, preferably by default at least the distances between the icons are corrected in each direction by its appropriate ratio of change, i.e.
in the above example preferably 25% in width and 33% in height, with or without similar change in the aspect ratio of the icon. Preferably the user can choose among these options). Of course various combinations of the above and other variations can also be used. Another possible variation is that if the user for example wants to copy more than one application at the same time for example from the "all programs" pop-up list which is activated through the Start button, for example to the desktop, then preferably he/she can mark more than one item at a time (for example by dragging the mouse to darken a group of them and/or for example by marking a group with CTRL or Shift pressed) and/or the list remains open even after dragging an item (unlike the prior art, where immediately after dragging the first item to the desktop the list disappears and has to be opened again from the Start button, unlike for example a window created through Explore). Another possible variation is that preferably the user can drag a shortcut also for example from normal open applications on the taskbar and/or for example by dragging something for example from the top and/or other parts of an open window (for example by clicking on the right mouse button, for example onto the desktop), and/or for example from the f 1e name as it appears in a DOS or cmd window.
Similarly, if the user for example wants to uninstall more than one program at the same time (for example in the control panel), preferably the user can mark multiple programs (for example with the convention of shift or control pressed while selecting items) and then preferably all the marked programs are uninstalled automatically (preferably one after the other).
10. Preferably the user can logically disable or change the function that pressing various keyboard keys has on the OS and/or on any programs that are running, such as for example the "Windows" key, since if the user is working for example in text mode in a DOS window, pressing for example by mistake the "windows" key causes the display to switch and can be very aggravating.
Similarly, if the user buys for example a new keyboard and some keys (such as for example the ESC key or the CTRL key) are not in the place that he is used to, preferably the user can simply redefine these keys, for example by marking the changes on some virtual keyboard that the system displays, so that for example these keys will switch places, and then the user only has to switch physically for example the external plastic caps of the keys that he changed logically (or for example glue new labels on them), and then the change is complete (This means that preferably the keyboard keys are mapped though the inner conversion table). Another problem is that for example in portable computers some keyboard keys do not exist, such as for 20/10/05 Yaron Mayer 42/186 example the side keypad, which can be very inconvenient to users that are used to it, and also for example in some text editors the side '*' is the Undo button and for example the side '-' key copies and deletes a line, but the normal '* and '-' keys don't have this function. So preferably the user can also redefine for example some keys for example on the right to become for example the keypad keys - but for example on condition - for example when another key is pressed or some switch is moved, and/or for example the keyboard in the portable computer is defined like this in advance and preferably the relevant keys have also the additional keypad marks on them.
Another possible variation is that the user can for example add to the portable computer (for example when it is used on a desk) for example a mini-keyboard which completes for example the side keypad and/or any other keys - for example using the normal plug that enables adding a keyboard to the portable computer, except that preferably the complementary keyboard for example sends a special code or for example has a somewhat different configuration of the connector, that tells the portable computer not to regard it as a replacement keyboard that disables the portable's built-in keyboard but regard it as adding certain keys to the internal keyboard. This can be more convenient and space-saving than adding a full keyboard that is used INSTEAD of the portable's built-in keyboard.
11. Preferably the dynamic linking possibilities are improved so that the user can call and use any Windows DLL from a DOS program (preferably in an extended DOS environment) and/or vice versa, so that preferably the two environments are integrated seamlessly in memory, so that Windows modules and DOS modules can preferably transfer data between them without having to use for example intermediary file storage. This way, for example a program that needs to use the TWAIN interface to work with various scanners can for example have one or more modules that run in the Windows environment and can for example connect to the TWAIN DLLs and for example have also one or more modules that run in DOS mode (preferably extended DOS) and can thus have backward compatibility for example with absolute memory addresses or other functions that are available only in DOS mode. This can be done for example by defining appropriate stubs and/or API interfaces that bridge between the two types, including for example any necessary conversions that are needed for compatibility, and/or using for example various sockets and/or client/server connections within the same computer.
12. Another preferable improvement is that for example when Faxes are received directly into the computer by a fax card, preferably the Fax program and/or the OS is improved so that if for example a fax-transmission has been cut-off because of some error and the sender wants to send again only the remaining pages, preferably the program and/or the OS can automatically identify this (for example by identifying that this is from the same source and within a short time after the previous fax), and then preferably the continuation fax is appended to the end of the previous fax and/or the program at least groups 20/10/05 Yaron Mayer 43/186 them together and/or notifies the user that two or more faxes appear to be a continuation of the same fax from the same source. Another possible variation is that the receiving fax card can for example automatically return to the user (preferably by improving the communication protocol so that this feedback can be received without having to call back the user) a unique return code that preferably includes a time and date stamp and a serial number of the communication (as described also in US patent application 10/756,839 by the present inventor), and preferably the user can add this code on the continuation of the fax, for example preferably digitally (if the fax is sent from another fax card, or for example as an additional code at the end of the dialed phone number if the protocol is improved to enable this), or for example as a printed number at the top of the first continuation page, together with a code that indicates that this is a continuation (in which case preferably OCR is used to identify this). Another possible improvement is that if the user for example sends by mistake in a normal fax or for example a combined fax-scanner-printer a page that is with the printed side facing away from the side that is scanned (unless for example if it is a double-side fax that can read both sides of the page simultaneously), preferably the system automatically warns the user that the page is empty on the scanned side (preferably the system determines this for example according to some threshold values). Another possible improvement is that if the user has for example a combined fax-scanner-printer connected to the computer preferably the OS is able to send faxes also directly through the attached fax-printer by sending it the data and telling it send is as fax instead of printing it.
That is preferably done together with an appropriate enhancement in the attached fax-printer (preferably this is done by a simple change in the firmware of the all-in-one scanner/fax/printer and/or by adding the appropriate software to the computer). The pages can be converted to a fax image in this case for example by software in the OS or by the fax-printer itself. This has the advantage of better quality than scanning a printed page, and is useful for example if the computer does not have a modem/fax card installed in it or if the external fax/printer is faster than the fax/modem card.
Another possible variation is that the user can for example use the combined fax/printer/scanner and/or for example even a normal scanner to send faxes directly through the Internet, preferably through the computer's Internet connection. This is preferably done, again, by a change in the device's firmware and/or by adding the appropriate software to the computer. This has the important advantage that the user can preferably send faxes directly and instantly the same as he/she would be sending them through a normal phone line, except that preferably the fax is sent through the Internet and is preferably sent to the receiving fax either directly also through the Internet (If the other fax is also connected to the Internet), or for example through a local gateway that converts it to a normal Fax transmission through a local phone-call, or for example it is received directly into a computer on the other side.
(Of course, if the file exists for example as a Word document on the user's computer then using the scanner or combined scanned/fax/printer is not needed, however the main reason that people send a Fax instead of an email 20/10/05 Yaron Mayer 44/186 is typically to send a document that contains a signature or a document which does not exist on their computer). Preferably the user can for example add some special prefix to the phone number, which indicates to the sending fax that the call should be routed through the user's computer, and then for example, instead of really dialing, the image is sent to the computer for example through the USB or other connection that exists between them.
Another possible variation is that the user can for example use a fax card or for example a combined fax-scanner-printer which is connected to the computer in order to send one or more pseudo fax images which are actually digital data (such as for example one or more pdf files or other convenient formats). This can be done for example by a special software that runs on the computer and/or for example by some firmware change for example in the all-in-one fax-scanner-printer, so that the computer can send to the fax-scanner-printer for example the special digital file or files for example alone or together with real images or scanned images (for example if some scanned cover forms are also needed), and when it is transmitted by Fax the sending device preferably uses a special code to tell the receiving device that one or more pseudo page images are actually a digital file, and preferably the receiving fax is either a computer with a fax/modem card or for example a combined fax-scanner-printer which is also connected to a computer and thus can transmit the digital file to the computer as a digital file, and preferably if a normal fax machine that can't handle such files responds then the sending device knows that the transfer of digital files is not possible and preferably issues some error code and aborts. This can be used for example for sending applications or other documents to patent offices by Fax (which can enable for example user identity confirmation by the telephone's caller ID, without having to deal with digital signatures, etc.), while allowing high speed transfer almost at the same speeds of sending email, Even if the file contains for example a 100 pages, whereas a normal fax of such size might take even half an hour or more and involves the risk of for example some lines not being scanned properly without the sender even knowing this, and of course it also saves wasting of time on OCR recognition at the receiving side.
Preferably this is accompanied by transferring also one or more CRC codes and/or other integrity data, so that preferably the connected computer on the receiver side (and/or for example the CPU of the receiving device itself) checks if the CRC and/or other integrity data fits the actual file that was received, and, if not, preferably tells the receiving device to return an error code so that the sending device can try to resend it. Another possible variation is that the sending device can for example automatically split the digital file or files to multiple sections if for example the file is too large for the desired size of each pseudo page-image. Another possible variation is that the two devices can automatically recognize each other, preferably already during the handshake, as having more than Fax communication capabilities, and thus for example can automatically (preferably at least when it is more suitable) switch to some other electronic file transfer protocol between them which is preferably more directly oriented to exchanging digital files.
Another possible variation is that for example the fax logs automatically 20/10/05 Yaron Mayer 45/186 indicate near each communication for example also the resolution that was used in the transmission (for example standard, fine, super-fine, photo, etc.) and/or for example if the fax was in B/W or in color. Of course, various combinations of the above and other variations can also be used. Of course, like other features of this invention, these features can be used also independently of any other features of this invention. Another possible variation is that when sending a Fax the sending Fax machine can preferably enter automatically into the sent page (and/or also display to the sender) the local time and date of the receiving Fax (for example by reading it from the receiving fax or for example by reading it automatically from the phone company or for example from the Internet, for example according to the called number). Another preferable improvement is that preferably the receiving fax machine (for example a normal fax or for example all-in one devices that contain a fax) is programmed by default (and/or at least the user can choose this option) to respond with fax sounds only if fax sounds are heard in the incoming phone call. This is very important since when the user needs the same line for fax and voice, if the user does not answer fast enough (for example if the fax is set to answer at the 5th ring and the user did not reach the phone fast enough) the Fax machine on the same line will interfere even in voice calls. Although the normal Fax protocol has been that the calling fax is supposed to wait for fax sounds from the receiver side of the phone call before making its own fax sounds, modern fax machines make these sounds when calling even if there is no fax sound on the receiving side, so, if the user chooses this option or this is the default, the only price is that some old stupid fax machines might not be able to send faxes to the receiving fax when the receiving fax is set in this mode, but it solves the problem of the user's fax interfering with incoming voice phone calls. Another possible variation is that the receiving fax is improved so that it is preferably able to automatically identify voice calls and thus avoids making fax sounds if it identifies for example human voice and/or stops immediately and gets off the line even if it started making fax sounds, as soon as it identifies the human voice. Of course, like other features of this invention, this feature can be used also independently of any other features. Another preferable variation is that preferably the ability of the scanner/copier to overcome wrinkles in papers or for example overcome the black stripe that appears when scanning or photocopying books when the user can't press the book down strongly enough - is improved, preferably by adding at least one more light source in the scanner, so that shadows are automatically reduced.
13. Another problem is that when the user searches for programs in the "Start menu" the installed programs are typically sorted by the order they were installed, and so in order to find a specific program the user might have to scroll over a large list if there are many installed programs. Although the user can for example request the System to automatically sort the list of installed programs in the start menu for example by alphabetic order, preferably the user has also additional options, such as for example to jump automatically to a given program in the list for example by typing the first letters of its name, 20/10/05 Yaron Mayer 46/186 and/or for example the user can enter a search string and the system looks for example for names that are at least similar to the desired name (in which case preferably all the similar names are displayed, preferably sorted by descending similarity to the search string), etc. Similarly, preferably the user can use this typing for example on the desktop, and then preferably the system for example displays the list of closest names as explained above and/or for example automatically indicates the most relevant icons, for example by making them brighter and/or making them move or flash and/or drawing visually attention to them by any other means. For example in Windows XP if the user types a letter on the desktop the system jumps to an icon beginning with that letter but when the user types the next letter the system jumps again to an icon beginning with the newly typed letter (and if the user repeats the same letter then the system jumps to additional icons which begin with that letter), instead of jumping according to a sequence multiple letters, so that if the user for example wants to repeat a search preferably another command is used. Also, preferably the chosen icons are conspicuously marked (for example by stronger light and/or flashing), since just darkening the icon a little bit like Windows XP does is not conspicuous enough so it takes time for the user even to notice what next icon is marked.
14. Another preferable improvement is that when the user searches for files on the computer preferably the "find files" window allows him/her to enter also more than one file name at the same time (for example separated by commas or one below the other, etc.), since if the user wants to search for more than one file this is better than having to search consecutively and it is also more efficient since this way all the requested files can be searched for during the same disk access.
15. Another possible variation is that preferably the installation disk (for example CD or DVD or for example through fast network connection) of the OS (for example in the new version of Windows) contains also one or more typical usable disk images, so that the system can be instantly installed from the most appropriate image, and then the system preferably automatically determines the actual computer's configuration and simply corrects and/or adds appropriate device drivers and/or makes other necessary adjustments, as if the system was already installed on that computer and the hardware was later changed. This can save a lot of time on the installation process, so that most of the time will be focused only on correcting the configuration.
16. Another problem is that, for example in Tablet PC's and/or similar devices and/or other devices that accept direct input by handwriting, when the user enters text in handwriting, it is problematic to use scrolling since the user would have the quite unnatural feeling that for example written text to the left of the current position of the pen is automatically slipping away to the left (or to the right, if the writing is from right to left). This means that if the user for example enters text by handwriting in a search box (for example when searching with the Internet browser in Google) and there is not enough room 20/10/05 Yaron Mayer 47/186 for the full search string, then there is a problem how to accommodate the additional text. This can be solved for example by letting the user continue his/her writing even beyond the edge of the input box, and then preferably the Operating System and/or for example the browser preferably automatically knows from the continuity of the written text (and/or from the continuity in time) that this is the continuation of the same text, and therefore interprets it correctly as if it is still in the input box even if its spills out for example to the right and/or to the bottom or up, and or even the user for example continues immediate to enter text for example on a second line below the input box (preferably unless there is another input box there).
Another possible variation is that if the user runs out of space in the input box, the System and/or the browser and/or other relevant application automatically extends the box for example to the right (or other relevant direction). This can be done for example by automatically extending the box for example to the right in a new layer that partially covers for example whatever is to the right of the input box so that the user has more space (for example this layer is indicated by a shadow effect as if it is a few millimeters above the screen), and/or for example the extended part and/or the handwriting on it are automatically made at least partially transparent so that whatever is below it can still be seen, and/or for example what is below the extended part and/or below the handwriting is made temporarily faded (for example gray), and/or for example whatever is to the right of the input box (however, preferably only at the vertical position of the input box) is also automatically shifted to the right (this means that things at the right edges of the screen can automatically scroll away and temporarily disappear at the right of the screen if needed, and/or the system uses this scrolling only if there is sui~'F~cient free room in the needed direction and uses one of the other options if there isn't sufficient room for this), and/or for example the area where the user is writing can automatically be zoomed in (however this preferably automatic zoom preferably does not effect the user's hand writing itself, so that the handwriting preferably remains at the same size and position). Another possible variation is that at least the part of the handwriting that spills out of the input box is visible only when the user hovers or positions the pen and/or cursor and/or mouse near it. Similarly, if the user for example is entering text by handwriting in some open text window (for example a word processor or notepad) and his/her handwriting exceeds the edge of the window, preferably the System automatically recognizes (for example by the continuity of the hand writing and/or of the temporal sequence) that this belongs to the same text and thus the system keeps the focus in the current application even if the user for example spills some letters on another nearby window of another application. Another possible variation that can increase the natural feeling for example when reading large files or digital books in tablet PCs (or for example in devices dedicate to reading digital books) is that the user can for example move the page (for example up or down or sideways) for example by dragging his finger or fingers on it in the desired direction (which means that preferably the screen can identify that this is the user's finger instead of the pen for 20/10/05 Yaron Mayer 48/186 example by the size of contact or for example by the electronic resistance, and can then respond accordingly), and/or the user can fox example cause pages to flip over for example by touching with his finger a corner or edge of the displayed page or for example some relevant icon there. Of course various combinations of the above and other variation can also be used.
Another preferable variation is to supply the user with an electronic pen which can preferably write on normal paper and preferably at the same time both writes with visible ink on the paper and transmits the writing sequence to the computer, so that preferably the user can write normally while also obtaining an automatic copy on the computer (which preferably immediately becomes characters through automatic recognition). This can be done for example by using a double tip, so that one part senses the movements and the other actually writes on the paper, or for example use some electronic eye which views the ink sequence as it is created on the paper and transmits that into the computer. This is also more convenient since the user can much more easily write this way when he/she sees normally the output on the paper as if it is normal writing. Another preferable variation for example in tablet PC's and/or for example in digital book readers and/or for example in programs such as for example Winamp or other software media players and/or for example in other gadgets for playing songs or films, preferably the software and/or the device is able to measure automatically preferably not only which songs or films or books (or other media) are more or less liked by the user, but preferably also for example which parts or sections in them are for example the best and/or which parts are less good or for example problematic. This can be very usefi~l for helping improve for example those books or films or songs and/or for being able to write better ones the next time. This can be done for example by automatically noting if there are any sections which the user for example likes to hear or read or view again and again and/or for example the device or software asks the users explicitly which sections they most like and/or for example in digital books noting automatically for example which sections the user marks and/or adds comments to, and then preferably anonymous statistics are sent automatically for example over the Internet for example the next time that the user connects to download for example additional songs or films or books. Another possible variation is that for example in such devices and/or software for playing for example songs or films preferably the player can automatically adjust the sound level not to exceed a certain desired limit and/or not to be too low below a certain limit. This can be done for example by automatically adjusting the level when the limit is reached or exceeded, and/or for example the software or gadget can preferably run ahead quickly in advance over the song or film and determine the maximums and minimums, however that would be much less efficient, and also the local adjustment is even better since preferably a separate optimization is done for each section.
17. Another problem is that for example in Windows XP when the user opens for example multiple browser or word processor windows, typically they automatically become like an internal division within one window on the 20/10/05 Yaron Mayer 49/186 taskbar, so that the browser or word processor appears in the taskbar only once and the other open windows of that application are listed within it (although at least alt-tab properly jumps between the windows as if they were normally marked as multiple instances of the application on the task bar).
Since this can be inconvenient or confusing for example for users who are used to all the windows of the same application appearing in the task bar, preferably the OS allows the user to activate a command which can for example automatically toggle between this mode to the mode where each window appears separately on the task bar. Another possible variation is that for example the other windows of the same group can be shown for example in another task bar, for example at the top of the screen (but preferably visible only when the user is viewing at least one of the windows of the group), and/or for example within the typically blue top of the main open window of the group and/or for example at least the user can toggle into this mode. Another possible variation is for example to improve the AFRO
interface for example in Windows Vista, so that for example when the user clicks on the icon of the group for example in the lower taskbar (for example Word or an Internet browser), preferably instead of a list of names in lines below each other, the group can for example automatically expand for example to preferably small images of the relevant Windows, and preferably the size of the images is preferably automatically determined by the number of windows, so that if for example there are 4 windows then each preferably occupies more or less a quarter of the screen or for example a little less, and preferably for example by clicking on any of these preview images the user preferably immediately jumps into it. AERO apparently only shows a small image of each icon on the bottom task bar when the mouse is near it, and I
am not aware of treating grouped windows in the way described above. In addition, according to the EARO demo video available from Microsoft at http:/,!channel9.msdn.com/Showpost.aspx?postid=114694 (new_kam_vedbrat aero 2005.wmv), published Sep. 13, 2005, apparently when the mouse is on top of an icon in the bottom task bar the image shown has the same width as the icon. So this could be of course a problem if the icon is smaller due to having too many icons on the task bar. So preferably this is improved so that, at least if the icon is below a certain minimal width, preferably the image is automatically made wider than the icon - preferably with a minimal size which is preferably defined by default by the system and preferably this definition can also be changed by the user. Another possible variation is that the user automatically change the desired size of these preview windows -for example by resizing such a window preferably the other preview windows will be of the new size defined by the user, for example until he/she resizes it again, and/or at least as long as it is above some minimum size defined by the system. Another possible variation is that for example as the user moves the mouse vertically up or down over the list of names in grouped items (wherein this list appears for example only after clicking on the group item, as is done in current XP, and/or for example even after merely putting the mouse over the group icon), preferably a preview image of the window which the mouse is currently over its name preferably appears for example 20/10/05 Yaron Mayer 50/186 sideways near the item and/or near the list. Another possible variation is that preferably the user can activate a command which automatically jumps each time to the next window (for example in the normal task bar on in the internal group of open windows that belong to the same application or for example between open tabs in the same application - for example in the Internet browser), so that preferably each time the user moves to the next window systematically. This is much more convenient than the prior art, where the user has to press alt-tab or control-tab but each time just moves manually to a specific window instead or has to use the mouse manually each time to get to the desired window, instead of being able to systematically traverse the relevant open windows one after the other. Another possible variation is that at least there is a command which for example allows moving only between the windows of the same group, unlike for example to example alt-tab, which moves also between the other open windows, and for example control-tab which moves only between tabs of the same window. On the other hand, for example when opening additional pages in the browser as additional tabs within the same window (for example in Netscape or in Opera) there is a problem that for example closing a page with Alt-F4 closes the entire browser window with all the open pages (tabs) instead of just the current page, and for example the normal Alt-Tab does not switch between the tabs.
Although typically CTRL-F4 and CTRL-Tab work on the tabs instead, this is less convenient since many users might prefer the same standard controls, so that tabs don't get a different status from normal open windows, and so that the user does not have to remember for each open page that he/she is viewing if it is for example an internal tab or a normal browser window, and if he/she makes a mistake he/she might close all the open pages that he/she is working with. In addition, in the prior art, if the user has some pages open as tabs and some as another browser windows, this means that switching between the pages requires using both Alt-Tab and CTRL-Tab, which can be very confusing and inconvenient. So preferably this is improved, preferably in the browser itself and/or by the OS, so that preferably for example Alt-F4 (or any other similar accepted convention) closes only the current page (tab) and preferably for example Alt-Tab switches also between the tabs (On the other hand, since some users have gotten used to the CTRL variation, preferably both the Alt and the CTRL variations work the same for the tabs, and/or for example the user can choose what effect the CTRL and the Alt variation will have, and/or at least for example when closing a tab page by Alt-F4 the browser or the OS preferably warns the user or asks if he/she wants to close just that page or the entire browser window with all the open tabs). Another possible variation is that the OS itself automatically enables this, which can be easily done for example if the command of opening internal tabs within a window becomes an automatic service offered by the OS, so that application programmers simply call this service when allowing the creation of tabs within the application Window. Another possible variation is that if the user for example closes a browser window or tab or for example a word processing file window or for example other applications (for example with Alt-F4) he/she can still press some undo button which automatically reopens 20/10/05 Yaron Mayer 51/186 the last closed window or tab or file. For example, the user might close by mistake a windows or tab of an important web page before he/she added a bookmark to it, and might want to instantly restore it as soon as he/she realizes the mistake. This is preferably done by the relevant applications and/or the OS creating automatically a temporary backup of the open window or file for example when the user closes it and/or for example when it is first opened, and/or for example automatically at certain intervals and/or in other events (preferably for example the links furls) and/or the actual data is saved). Another possible variation is that preferably the user can request to automatically reopen the entire set of windows an/or tabs that was opened last time when reopening the browser after previously closing it, even when it is closed normally by the user. This is better than the prior art since for example the browser Opera allows the user to return to the previous set of open tabs only if the browser was not normally closed previously. Another possible variation is that even after the user for example tells the browser (and/or for example other Internet application where this feature is used) to start from the beginning or for example closes the various windows or tabs, preferably the user can for example enter some history list which preferably the browser keeps automatically, which preferably saves the previous states of multiple browser windows and/or tabs (preferably by saving only the links in this case), and thus the user can for example preferably scroll back to any desired set of tabs and/or windows that were previously open together and can preferably for example with a click of the mouse go back to that same state of multiple open windows and/or tabs (preferably the entries in this list are kept least for a certain time and/or at least until the list reaches for example some maximum size, and then the oldest entries can preferably be deleted automatically if the space is needed, however if only the links are kept then the list can be kept even without any automatic deletion, unless for example the user requests this explicitly, since very little space is needed for this). Another possible variation is that the user can for example mark for example with the mouse multiple tabs (for example by marking their trop handles) and then can for example close the entire marked group for example with a single click or key. Another possible variation is that preferably when the user saves a file under a different name, for example in the word processor, preferably the user has also an option to request to automatically keep open also another window with the original file. This can be very useful for example in case the user wants to work for example on one copy with marked changes and a second copy where the changes have been accepted.
Of course the user can do this manually by first saving the file under a different name and then reopening the original file name in another window, but it is more efficient to add such an automatic option to the application so that the application can do this automatically for the user. Another problem is that for example when trying to delete a directory through a command prompt window in windows XP the OS only asks "are you sure" without even letting the user know that this is a directory. This is very dangerous since the user might this way inadvertently remove even a huge directory tree. So preferably this is improved so that instead the OS tells the user that it 20/10/05 Yaron Mayer 52/186 is a directory and preferably tells him/her also the number of subdirectories and/or the total number of files in that directory tree and/or the total size.
Preferably the OS also lets the user choose as one of the options a controlled deletion so that for example the user will be automatically asked to make the same choice for each sub-directory of the chosen directory and/or for example asked to verify the deletion of each file. In addition, preferably especially when deleting directories, preferably the system automatically keeps a backup of the directory structure and/or a rollback log, so that if the user made a mistake the directory tree can preferably be instantly restored.
This is very important since eventhough there are for example various programs that enable searching for deleted files and restoring them, restoring a fizll directory tree without automatically saving first a copy can be much more complicated and less reliable.
18. Preferably file sharing programs which download files from multiple other users are preferably improved so that when the same file is available from multiple sources, they preferably download from each available source sections in preferably random order (so that for example from one source the end parts are downloaded, from another source middle parts, from another source parts at the beginning, etc.). This can prevent the phenomenon that, since certain files become no longer available during the process, typically the downloading becomes progressively slower near the end of the file.
19. Another preferably improvement is that when more than one OS is installed on the same computer the user can preferably easily switch the default OS to whichever option he/she wants and/or for example change the order of the options (where typically the first option becomes the default). This can be done for example by letting the user drag an option line with the mouse to a different position in the screen that asks which system to boot or for example press some key or key combination. This is very important, since in the prior art if the user for example installs Windows XP over a system of Windows 98 (so XP automatically becomes the default) and then prefers to use for example Windows 98, it can be very frustrating to have to change the choice each time when booting, and this is also important especially for example if there is a power failure and the computer reboots automatically. Although XP
for example allows changing this by performing a few steps after the XP has finished booting, which most users don't even know how to do, it would be much more intuitive to let the user for example move the option lines with the mouse in the screen that asks which system to boot, as explained above.
This means that preferably basic or standard mouse support is preferably activated at least partially already at this stage eventhough no particular system has been activated yet. Another possible variation is that the system automatically remembers the boot option that was last chosen and makes it automatically the default for the next boot until the user changes it.
(Another possible variation is that this option also automatically becomes the first choice on the boot menu on the next boot, but that is less preferable since it 20/10/05 Yaron Mayer 53/186 might confuse the user if he/she is used to a certain order of the boot options and did not choose explicitly to change it).
20. Another problem is that for example in wireless networks (for example in homes or offices) the only method of protection against stealing data and/or illegal tapping into communications is encryption, which has already proved not reliable enough. Therefore another possible variation is that in order to improve the security of wireless networks preferably the network computers use also for example automatic triangulation of the source of transmissions (preferably by using for example all or some of the known devices in the network to compare the strength of the signal that they receive), so that for example the coordinates of the allowed space are entered into the system and/or for example only specific locations of known devices are white-listed, and so for example any intruder from an outside position cannot pretend to be an authorized user even if he succeeds in finding a vulnerability in the encryption. (Although this still does not prevent passively listening-in, preventing any other form of interaction can be very effective, since for exploiting various vulnerabilities typically at least some interaction as needed, so this together with encryption can be very effective).
21. Another problem is that for example Microsoft is now trying to market in low-income countries such as for example China and India a considerably cheaper version of Windows XP, however this version has some serious limitations that make it much less attractive to users, and one of the most severe limitations is that for example only a very small number of programs can be run at the same time. This can make the OS much less useful, so very few people will be willing to use it, even at a half price or less, and thus the main purpose (reducing piracy in those countries) can be completely defeated. Therefore, a much better solution is to let users buy the OS at such countries at such a low price preferably with few limitations or no limitations or at least no limitations that result in reduced functionality to the user, and preferably prevent loss of profit in other countries where the OS can be sold in normal prices - by limiting the use of the discounted version in the other countries. This can be done for example by at least one of the following means:
a. Limiting these cheap versions so that at least part of the interface and/or some important applications work only in languages that are not useful to most people outside the cheap countries (for example only Indian languages or Chinese languages).
b. Displaying a warning for example whenever the OS is started that it is illegal to use this version of the OS in any either countries than the list of qualifying countries, unless for example the user has a citizenship of one of these countries and/or is resident there, etc.
c. The OS can Check for example automatically when the user connects to the Internet if his/her IP address is in one of the qualified countries and, if not, require for example some certification to be filed (if it 20/10/05 Yaron Mayer 54/186 hasn't been filed yet) which proves that the user is entitled to use that version of the OS outside of those countries. Preferably in these cases the OS can automatically stop working or start working with only limited functionality after a certain time period (for example one month) if said certification has not been filed.
22. Another problem is that for example in Windows XP if the system is unable to read a CD then the entire system can get stuck without any explanation to the user, since the OS apparently tries again and again incessantly to read the CD. Preferably this is solved by automatically aborting any attempts to read a problematic CD preferably after a short time and preferably indicating to the user the nature of the problem and letting him/her decide what to do, and/or for example allowing the user to press some key or otherwise request immediate aborting of the attempts to read the CD (this is preferably done for example by some element below the OS which does not get stuck even if the OS gets stuck, and/or for example the OS automatically interrupt the attempts to read the device at short intervals (for example at least once a second or more) and then checks for example if any commands have been entered by the user.
23. Another possible variation is that preferably the user can tell the OS for example not to enter sleep mode until a specific application has finished running, for example by clicking on the application's window or for example on the square that represents it in the task bar and marking the relevant option in a menu. Another possible variation is that for example the user can simply indicate or mark to the OS a set or range of hours in which the computer will automatically go into sleep mode (hibernate) at a certain set of hours, for example during night hours (preferably unless of course someone is working on it). Another possible variation is that for example all-in one printer-faxes, such as for example by HP, which once in a few hours automatically calibrate themselves, thus making noises, are preferably automatically configured to avoid doing that, at least for example during night hour, since it can be quite annoying if someone is woken up by these noises. Similarly, another problem is that for example typical firewalls (such as for example Zone Alarm) are programmed to close the connection to the web automatically for example when the screen saver activates, which is usually quite useful, however sometimes the user for example might want the firewall to keep the connection open for example until one or more download operations are completed. For this preferably the user can also similarly preferably indicate for example that the firewall should not close the web and/or for example the screen saver should not be activated until the application has finished performing some operation. Another possible variation is that preferably when the user asks Windows to create a restoration point, the user has a choice of indicating if he/she wants a normal restoration point or also creating a full snapshot of the main system and registry files and/or the user for example can define in general if and/or when snapshot or normal restoration point will be generated when the system 20/10/05 Yaron Mayer 55/186 automatically creates them (for example every certain periods and/or for example depending on the amount of accumulated changes) and/or for example the system automatically creates the snapshot files whenever it is about to make highly significant changes for example in the system. In addition, preferably rollback info is saved automatically in more than one place, preferably together with a copy of a sufficient reference base-point, so that the system has a much better chance of restoring it even if for example the registry becomes seriously damaged. In addition, preferably the registry entries are made independent of each other so that even if part of the registry is damaged it will not effect anything else, and preferably the system uses transaction sequences in the registry and/or for example other important system files like in a normal database with automatic rollback in case the transaction has not been completed, so that if for example the system gets stuck while trying to update the registry and/or for example other important system files or the for example the FAT, etc., then when discovering this or for example even in the next boot (if the system for example crashed and had to be rebooted), preferably first of all at least some process comes into action which automatically finds out transactions that do not have the mark that they were completed and thus preferably activates automatic rollback to the previous state before the unfinished transaction or transactions begun. (And, as explained above, preferably the rollback info is saved in more than one places). Preferably this process or at least part of it is below the OS, since some aborted changes might for example make the OS unable to function properly until the rollback is done. In addition, if for example there was still some damage beyond repair and the system needs for example to load a previous snapshot of the registry and/or other critical system files, preferably during boot the user is advised of the situation and can automatically view for example a list of the most recent snapshots and/or otherwise possible restoration points and can simply choose the most preferred ones to attempt and then the system preferably restores it automatically and continues to boot (instead of the prior art where for example in windows XP if the registry is damaged the system sometimes cannot boot at and all the user might have to boot from a special CD and restore manually the snapshot files from their hidden directory - which is quite a cumbersome process to perform manually). Another possible variation is that preferably at least the registry (and preferably also other files that are needed for snapshots) are always automatically kept in at least two copies so that if for example one copy becomes unusable (for example as a result of crashing or reboot in the middle of updating the registry) there is always an immediate backup of the most up to date version (for example in a way similar to the way that there are always two copies of the FAT). Of course automatic rollback info can preferably be saved also for much larger changes including for example any changes to the disk, as explained elsewhere in this application. Another possible variation is that for example during preferably every boot (which is typically a time when the user has to stair at an almost blank screen for at least 20-30 seconds), preferably the system uses this time to display important information to the user, such as for example details about the number of safe restoration points 20/10/05 Yaron Mayer 56/186 and/or snapshots that currently exist (and preferably also their dates) and/or for example various indicators of the health of the system and/or for example the current automatic back-up policy that exists and/or for example the amount of remaining free space on the disk and/or for example the percent of disk fragmentation, etc. Of course, various combinations of the above and other variations can also be used. Of course, like other features of this invention, these features can be used also independently of any other features of this invention.
24. Another possible variation is that for example if the user does not find a certain file name, the OS automatically checks for similar names and asks the user for example "did you mean..." - for example in a way similar to the way that Google offers users to correct typing errors in the search keywords, and/or for example the OS shows the user the list of closest file names available, sorted by closeness.
25. Another preferable improvement is that if there are more than one CD
and/or DVD installed on the same computer they can be connected to a common audio connector for example in parallel or with some multiplexor (so that for example the same audio cable can lead from more than one drive to the sound card), or for example cables from more than one drive can lead to a common connector or multiplexor near or at the sound card. Preferably if more than one drive is playing for example a CD or a movie at the same time then either all the sounds are automatically routed to the speakers (this is no problem since normally the user would not play both drives simultaneously) or for example the correct drive can be chosen by software. This is better than the prior art where the user can typically connect only one of the drives to the sound card and thus can for example hear CDs or watch DVDs with sound only through that drive. Another possible variation is that no direct connection to the sound card is needed from any of the drives, and for example each CD or DVD that contains sound is simply played by activating the sound card directly through the software that plays the data, for example in the same way that the sound is played from an avi file on the hard disk.
26. Another preferable improvement is that preferably the user can for example define for example drives and/or directories to become shared for example only when connected by cross-linked Ethernet cable between two computers so that preferably for example they become automatically not shared when connected by normal cable to the Internet. Another preferable improvement is that preferably the user can for example create a copy of the OS on another partition (for example on the same disk and/or even for example on a different physical disk in the same computer) preferably with a single automatic command, and then preferably the system with all the installed programs is automatically copied to the new partition (preferably by using automatically the registry to locate all installed applications and/or drivers and/or other relevant components) and preferably all the drive letter references in the new installation are automatically updated to refer to the 20/10/05 Yaron Mayer 57/186 new drive letter, and preferably the choice of the new partition is preferably automatically added to a boot selector. In this and/or in other variations preferably the user can also change the name of a boot option and/or add comments to it, for example while booting and/or for example from one or more applications that are available after the boot. This can be very useful if the user for example wants to create a backup of the installed OS on more than one partition, so that for example if the OS becomes corrupted or unstable, the user can in the meantime boot and work normally from the other partition. Preferably the user can do this also for additional partitions, and preferably the user can also use an update or synchronize command, which for example automatically updates any differences between two or more such OS-installed partitions, so that for example the user can update the other partition according to additional changes made in the original partitions, and/or for example the opposite - automatically correct the original partition according to one of the backup partitions, etc. Preferably the user can also request automatic undo of such updates, for example if anything goes wrong (for this preferably the system automatically keeps a backup of at least the registry and other important system files and/or a preferably more complete rollback log). Another possible variation is that even the new partition itself can be automatically created by the special copy command, if needed, for example in a way similar to the way that the Partition Magic software created new partitions, so that the user does not even need to have a new partition ready before requesting the special OS-copy command. Of course this can work for example in combination with systems like Intel's Vandeipool, so that for example the other installations can automatically be configured to run in parallel at the same time. As described for example in US applications 10/301,575 and 10/644,841 by the present inventor, another possible variation is that multiple instances of the OS are preferably managed by Copy on-Write. Another possible variation is the user can for example mark only one or more specific installed programs and/or drivers and/or other parts to be automatically copied to the other partition, instead of for example automatic full copy of all the installed elements into the other partition. Another possible valriation is that the user can preferably automatically backup one or more installed programs to a back-up media, so that preferably automatically the relevant registry entry is copied to the backup media and preferably all the relevant components are automatically copied preferably through the relevant registry information.
Another preferable variation is that preferably when activating for example a command like SFC (which checks the integrity of installed system files and/or compares them to their source on the installation CD and restores them when needed), preferably this or similar commands can be used also from another OS or another installation of the OS on another partition and/or for example from the installation CD or DVD itself. This is much better than the prior art, since in the prior art it is possible to run SFC only after booting into the OS whose files need to be checked, whereas OS might be too damaged to boot into, which is like catch 22. Running such commands while booting from another partition should be no problem since the application 20/10/05 Yaron Mayer 58/186 that performs it preferably merely has to know on which partition and/or basic directory to run the checks, and preferably can use any information from there to know which files to look for and where. Another possible variation is that for example if the OS gets stuck during or after the boot, preferably the system can automatically sense it for example after a short time and preferably for example automatically identify the driver or application that caused it to get stuck (and/or for example any other source of the problem, such as for example bad change in the registry or other critical files) and preferably can automatically roll-back to the state it was in before the problematic driver or application was loaded and/or before the registry change or other relevant change and preferably can automatically continue without the problematic driver or application and/or can for example automatically search for a replacement driver or application and/or automatically instruct the user what to do in order to fix the problem. This is preferably done by at least part of the OS which preferably runs below the normal OS and which preferably contains also a preferably large knowledge base about preferably almost any known problem that can occur, preferably with instructions on how to solve it. In addition, preferably the OS or part of it and/or for example this part below the OS preferably automatically tries to follow those self repairing instructions whenever possible and preferably involves the user only if for some reason it is unable to perform whatever is necessary (for example because the installation CD is not in the drive).
27. Another problem which exists for example in windows XP is that for example if the user changes motherboards, the OS, unlike for example windows 98, is many times unable to overcome it and has to be reinstalled.
So preferably this is solved by allowing at least part of the kernel and/or part of the OS, which is preferably hardware independent, to always boot properly even if there are a lot of hardware changes, so that preferably any adjustment problems can then be fixed after this initial boot, preferably automatically.
28. Another problem is that sometimes for example the OS does not allow the user to access a file because it is locked by another process (for example if Word previously crashed while working on a file and the user restarts Word and tries to access the file), but the user cannot do anything except open the file for example only for reading, since the OS does not even tell him/her what the problem is. So preferably when this happens (in such cases and/or in other cases of resource clashing) preferably the OS also lets the user know the identity of the clashing process and preferably the clashed resource and preferably any other needed info, and preferably allows the user also options such as for example terminating the clashing process or for example freezing it temporarily for example until the user releases again the problematic resource.
29. Another preferable improvement is that when there is more than one physical hard disk on the same computer and more than one partition on at least some of these disks, preferably the OS automatically adds some mark to each drive 20/10/05 Yaron Mayer 59/186 name that indicates to which physical hard disk it belongs (for example an additional letter and/or number and/or icon which indicates the physical disk), since otherwise the automatic letters given to the various partitions can be confusing and the user might loose track of which partition belongs to which physical disk. Another possible variation is that for example there can be more partitions than there are letters and/or for example partitions can be identified also by names longer than 1 letter, so that for example if the user wants to name a partition for example "c2:" or "d2:" or "dnew:" for example instead of "d:" then these longer names can preferably be used in the same ways that 1-letter name partitions can be used (such as for example "copy f \comment\test.doc dnew:\backup\"). Another possible variation is that the user can for example define multiple synonymous names for the same partition, so that for example the same partition can be accessed by more than 1 name.
30. Another preferable variation is that when using for example a system for predicting the next channel or channels that a user is most likely to jump to next for example in digital TV broadcasts (for example cable or satellite) and/or using multiple tuners to cover a large range of channels (so that for example the last 2 seconds in the predicted or covered channels are kept in at least one buffer) so that the zapping can be instant instead of typically having to wait for up to 2 seconds for the next base frame, as covered for example in US application 10/905,038 of Dec. 13, 2005 by the present inventor, preferably additional improvements are added to solve the problems of the decryption time and of channel mixing. The channel mixing problem is that because some channels can be statistically much more bandwidth consuming than other channels (for example action movie channels, where there are significant changes between the frames, vs. for example an interviews channel, where people sit in front of the camera with typically little change from frame to frame), typically the cable or satellite providers try to optimize statistically the allocation of digital channels on each data-stream (frequency), so that for example there are 10 frequencies with 15 digital channels carried on each frequency, but consecutive channels are many times scattered between different frequencies because of statistical considerations.
Therefore, since typically the most common zapping is consecutive going up or down in the channel number, preferably the solution is avoiding the scattering, so that the channels are grouped together consecutively in the frequencies, and solving the statistical bandwidth problem by changing the number of digital channels in each frequency as needed, so that for example if the first channels contain typically movie channels, which are by nature more bandwidth consuming, then preferably the first frequency contains less channels, as needed (for example only 7 channels instead of the normal 15), and other frequencies contain a smaller or bigger number of channels depending on the overall fatness or thin-ness of the channels that are grouped into them (in terms of the average bandwidth needed by them). This may be a little less efficient than optimization by scattering (since for example putting 7 fat men in one elevator can waste a little more space than putting people of 20/10/05 Yaron Mayer 60/186 different weights in the same elevator, since with the fat people there is less flexibility for example in the last gap if you avoid bringing in a thinner channel for the last gap if it is not the next consecutive channel), but keeping the consecutive order is much more efficient for the instant zapping.
(Another possible variation is for example to keep the order as explained above but use flexibly for the last gap even 1 or more non-consecutive channels, but that is less preferable). The decryption time problem is that since it takes some time to decrypt each channel from the base-frame, in order to decrypt in advance the predicted and/or covered channels which the user can next zap into (preferably into the at least one buffer), the system has to either use some table which knows in advance which channels the user is allowed to view (in most systems the user typically has only a basic subscription and pays in advance for a set of additional non-basic channels), or the system checks if the user is allowed to view a given channel only after the user has already jumped into it. The problem is that if such a table is used (which means that the set-top box finds in advance which cannels the user is allowed to view and puts this information into some table in memory), then such a table in memory makes it much more easy to hack into the system and for example change this table or bypass it. On the other hand, if the set-top box is designed to check if the user is allowed to view the channel only after the user has jumped to it (thus avoiding the security risk of such a table), then enabling the instant zapping means that the system might have to allow the user to view the first 2 seconds even before checking if the user is allowed to view this channel. One possible solution is to indeed allow the user to view for example the first two seconds (or other relevant time slice) before checking his/her permission to view the channel and then blocking the channel if needed. This is still OK since the user would normally not gain much by constantly zapping for example between two channels that he/she hasn't paid for and seeing each time for example only 2 seconds or less (except if someone for example connects 2 such set-top boxes with an automatic channel switching and automatic multiplexing into the same T~.
However, it should take much less than 2 second to determine if the user has a right to view that channel, so even if the system checks the permissions only after the user jumps to the channel, the data stream can preferably be blocked automatically even sooner than the for example 2 seconds and/or for example a message can be displayed on the screen for a certain minimal time period (for example for a 100 milliseconds or less) and/or for example the message covers only part of the screen so that the data stream can only be partially viewed, thus avoiding any artificial delays even if the user immediately continues to zap. Of course, if a user can hack into the system to try to steal the permissions table he might also try to steal for example the pre-captured data streams of the covered and/or predicted channels, so another possible variation is that these streams for example remain encrypted (or are re-encrypted) at the set-top box itself, but since the set-top box already has the base frames for each of them and each current frame, when the user jumps to the channel the decrypted data stream can preferably be viewed instantly (assuming instant checking of the permission) or it is 20/10/05 Yaron Mayer 61/186 decrypted automatically so the user can view it until the result of the permission check is known. Another possible solution is that for example in the covered and/or predicted channels the system automatically detects for each such channel if it is allowed or not even before the user jumps into it, and preferably does not save this info anywhere else. Another possible variation is that for example the set-top box does determine in advance which channels are allowed for the user but preferably this is not saved in a normal table but preferably for example in some scattered and encrypted manner in memory, so that preferably even the location in memory of the different cells of this table preferably changes all the time. Another possible variation is that similarly the decrypted data of the covered or predicted channels is scattered in memory in a way that makes it very hard to hack into it, but the set-top box itself can preferably still extract the stream instantly or almost instantly.
31. Another preferable improvement is that computer cases are improved so that the same case can be used either in desktop position (lying in a horizontal orientation) or as normal tower (vertical orientation), thus giving the user much more flexibility in choosing the most convenient orientation without having to buy different cases. This is preferably done by making the case strong enough to support even a large screen on top of it when used in the desktop orientation, and preferably at least the area that supports the external CD and/or DVD drives, is preferably rotate-able between two positions, preferably in 90 degrees (preferably only back and forth between the two positions - to avoid excess bending of the cables), so that preferably the user can easily choose one of these two positions, at least by screwing the part when the case is open, but even more preferably the user can for example press one or more levers or buttons and then rotate the part even when the case is closed. An example of the case with the rotating element is shown in Fig. 7.
32. Another problem is that due to standard debug features in motherboard bridges, actually any computers that are connected to the Internet, for example through a modem card or through an Ethernet card or USB, can be compromised by a hardware-based attack even below the OS, so that for example the Ethernet card can tell the north bridge and/or the south bridge to report to it any data that passes from the hard disk and/or even send directly commands to the hard disk through the bridge. Such activities can therefore bypass any software-based security system. In order to prevent this preferably at least one of the following is done:
a. Preferably the motherboard chipset is changed so that such debug features and/or for example direct communications for example between hardware cards and the hard disk are preferably enabled only if some hardware element allows it, such as for example a jumper or a switch which has to be manually enabled by the user, and preferably the default mode is the disabled state, or for example it is not available at all. In addition, preferably the configuration can be set for example to enable such a debug feature only for example for one or more 20/10/05 Yaron Mayer 62/186 specific slots and/or one or more specific devices, and/or enforce other limitations.
b. Another possible variation is that the user can for example add a card to one of the PCI slots and/or for example add another external device (such as for example a USB device, a PCI express device, and/or other type of connection device) which preferably keeps sending, preferably constantly, commands to the bridges which can preferably for example over-ride any attempt by other devices to tell the bridge to sniff on data or to communicate directly with the hard drive and/or for example the communication channels (for example the Ethernet card and/or USB devices and/or wireless devices).
c. Another possible variation is that preferably the OS and/or a software Security System is preferably able, preferably through the OS kernel or even below it, to take complete control of the bridge and give it instructions that override any undesired attempts by hardware elements to sniff data and/or access directly for example the hard disk and/or for example the communication channels (for example the Ethernet card and/or USB devices and/or wireless devices). This is, again, preferably done by also changing the chipset.
d. If for example some devices need to be able to exchange data with the hard disk directly, preferably at least any command sent from the device to the hard disk can preferably be monitored and filtered for example by the OS and/or by a security system installed on the OS, so that for example the data transfer itself is not slowed down, but for example the OS and/or the security system can control preferably what files and/or directories can be accessed directly from the device and preferably what commands can be transmitted to the hard disk. This is, again, preferably done by also changing the chipset.
Of course, various combinations of the above variations can also be used.
Other improvements can be done for example in statistical packages, such as for example SPSS, so that for example when correlations (or other types of output) are displayed (for example on the screen and/or in printed form) for a large number of variables, preferably the user can for example instruct the system to automatically mark for him/her the most significant correlations, for example by automatically encircling them and/or for example using some special icons and/or fonts and/or colors and/or other marks (preferably they are surrounded for example by a background with the color, so that the are clearly visible also on monochrome laser printers, for example with a gray square), and/or putting them for example in a different section. The criteria for which correlations are sufficiently significant can be for example some default criteria defined by the user and/or automatically by the system, such as for example only correlations above 0.2 (or other significant cutting point or points defined for example by the user and/or by the system), and/or for example only correlations where the significance is 0.005 or less (or other reasonable cutting points defined for example by the user and/or by the system), etc., or for example the cutting points automatically and/or by user definition can preferably change dynamically according to the results, so that for example they can 20/10/05 Yaron Maya 63/186 be automatically determined according to the number of correlations (for example if there are much more correlations in the results than preferably the cutting points become more demanding), or for example the cutting point is in addition or instead based on relative percent, so that for example the top 5% best correlations (or any other desired percentage, definable for example by the user and/or automatically by the system) are automatically marked, and/or for example some combination is used, so that for example only the top x% correlations that are also beyond a certain absolute cutting point (for example of correlation values and/or of significance) are automatically marked. In addition, since some correlations can be much less meaningful than others - for example various Pearson Corr or other correlation commands can create automatically also correlations of variables with themselves, preferably these are marked differently and/or ignored, and/or taken into account differently so that they do not distort the statistics. Another possible variation is that the user can mark for example one or more sections of the correlations results (for example with the mouse) so that these automatic marking or statistics will be run only on parts of the results (since for example some of the correlations might be known by the user to be more or less meaningful than others). Preferably, apart from marking the most important and/or meaningful correlations, the system can, in addition or instead, also report various meta-statistics, such as for example what percent of the correlations are beyond certain cutpoints (for example according to the correlation value and/or the significance), and preferably this can be for example reported for example as a combination of such cut points and/or for example for each cut point or criterion separately, and the system can preferably also report for example what is the significance of these meta-results, i.e. for example what is the chance that for example in these specific results 12.7% of the correlations have significance for example below 0.01 (or any other value), preferably while taking into consideration issues such as for example the total number of correlations, the number of cases upon which they are based, and preferably automatically ignoring all the correlations of variables with themselves and preferably also for example any other correlations that the user marked as less meaningful and/or that the system can for example automatically determine as being less meaningful. (For example variables that are defined in an overlapping way, for example because they are based on computation involving other variables, will create correlations that may be interesting but should preferably not be confused with other statistics since part of their correlation is artificial, and there should be no problem for the system to automatically identify the problematic correlations for example according to the "compute" commands that were used). Preferably these statistics can of course relate also for example directly to the marked results, so that for example the system can report what number of results was marked out of what total, what percent it is, and/or what is the chance of having such a meta-results by chance, however these meta-statistics preferably show also additional values. Another possible variation is that the system can automatically and/or by user request generate also various graphs for visually displaying these meta-statistics. (Although it is possible in the prior art to run for example a cluster analysis or an Addtree or Extree analysis on a set of output correlations, this is a very specific analysis that takes as its input a matrix of correlations and uses them as distance data to derive an analysis of the way these variables are clustered as a group. In contrast, the above suggested meta-20/10/05 Yaron Mayer 64/186 statistics can be much more general and much more flexible, and thus can deal for example also with correlations that are not in the form of a matrix of correlations of NxN variables, and preferably can analyze for example the value of the correlations themselves, as explained in the above examples, whereas for example cluster analysis or Addtree or Extree take the correlations as input without analyzing the value or significance or meaningfulness of the correlations themselves. In addition, for example analysis such as Cluster analysis, Addtree or Extree are not a substitute for looking also at the correlations themselves, and the above described markings and/or meta-statistics can help the user analyze or evaluate also the correlations themselves). Another possible variation is that the system can for example use more than one type of mark, so that for example 2 or more levels of significance are marked differently, for example more conspicuously and/or with different colors.
Another possible variation is that the system can for example automatically sort the results for example according to their value and/or importance and/or significance, so that for example in the case of correlations, for example the highest correlations and/or the correlations with the highest significance values and/or some combination of the above are displayed first. (Preferably the user can request for example if to display the correlations normally or in a sorted way, and if so, sorted by which criteria or combinations of criteria, and/or the user can for example also request some combination, so that for example the results are displayed according to certain structures and the sorting is for example only within the structures).
Another possible variation is that for example instead of marking correlations, for example only the relevant correlations (or other results) that fit the criteria (and/or would have been marked) are printed, thus saving paper and time. However in that case of course preferably this is accompanied by meta-statistics that refer also to the non-printed results. These automatic markings and/or meta-statistics can be applied for example for each statistical procedure or command separately or for example to the entire set of procedures or commands, for example on the same Run. Another possible variation is that the system can for example automatically correct the significance scores of the correlations, for example according to the Bonferroni correction formula, so that the significances themselves are already displayed corrected, however that is less desirable, since it means that the significance can change all the time depending on the number of tests in the same run (or set of runs), thus making it confusing and not consistent when someone wants to compare various results. Another problem for example with Pearson correlations is that 1 or more extreme values away from a main cluster of values can sometimes distort the correlation. This is preferably solved for example by allowing the user to request automatically running the tests also on preferably automatic randomly divided sub-samples, and preferably the number and/or size of the sub-samples is determined by the user and/or automatically by the system (for example according to the number of cases and/or according to the variance and/or according to other parameters).
Another possible variation is that this test is run automatically by default (for example unless the user explicitly requests to suppress it) and preferably the correlations (or other statistics results) can also be for example marked differently and/or displayed in a different section if they are more stable across these sub-sample tests, and/or the results of these stability or strength tests can be for example displayed each near the corresponding correlation (for example as a number 20/10/05 Yaron Mayer 65/186 indicating the stability value). Although for example SPSS has recently added to their most recent version (Ver. 12) the ability to request tests on sub-samples (a new feature called Complex Samples which uses CSPLAN to define the sampling parameters), the CSPLAN design specification is used only by specific procedures that are defined within the Complex Samples Option, whereas according to the above suggested solution automatic analysis by random sampling is preferably automatically available and automatically activated for any statistical procedure, and as explained above, the results of this analysis can preferably be used automatically for example to mark the most important results. So preferably either the sub-sampling is done randomly and automatically by the system by using preferably automatic defaults and/or automatic rules that are preferably used to decide the most desirable sampling strategies according to various parameters of the actual data, and/or for example the user can define in addition or instead more specific parameters, for example by the above CSPLAN procedure, but preferably these definitions can then be applied automatically for example to any of the normal statistical procedures that are used for that run, and this is preferably used also for marking the best results, as explained above (and/or is taken into account for example for the sorting, so that for example correlations are sorted both by their size and/or significance and by their stability and/or for example within a certain level of strength the results are internally sorted by stability). Preferably the user can choose for example if the correlations will be sorted by absolute correlation, with negative correlations mixed with positive correlations, or for example the negative correlations appear separately, and/or for example the user can request that this sorting be done for example separately automatically for each variable, so that for example the variables appear for example in alphabetic order or by order of appearance, and for each variable the correlations are automatically sorted so that preferably the largest correlations appear first. So preferably the user can for example enter a simple list of variables, and then request for example to run a correlation of all by all, and display the results for example by automatic sorting across all variables, or for example by automatic sorting only within each variable, and/or for example by some combination, so that for example there is a sorting within each variable, but the variables themselves are automatically sorted so that for example the variables that have the highest correlations in general (for example on average or have the highest peaks) appear first. The automatic rules defined by the system can for example take into account the original sample size, and for example determine the size of sub-samples by the minimum desired absolute size of the sub-sample and/or by the minimum desired size in percentages, and/or for example by the number of correlations that are tested, etc. For example the best automatic choice might simply be to create just a division of 2, but for example create this multiple times (for example 10 times or any other desired number) with a different random cut and compare the results for stability across all random attempts. Preferably there is for example one most preferred default, and if the user is not satisfied with this he can for example choose from a few other suggested defaults or sets of rules, and if the user still does not like any of them he can add his own rules in addition or instead. Of course, a list of correlation results is just an example, and similar principles can be applied for example to other types of statistical results where multiples results are presented together. This is much more 20/10/05 Yaron Mayer 66/186 convenient than the prior art, where the user typically had to print the results and mark manually the most significant ones. Another possible variation is that the user can for example request to run various procedures (such as for example FREQUENCIES or PEARSON) also on lists of variables defined by exclusion (such as for example "ALL EXCEPT AGE"). Of course, various combinations of the above and other variations can also be used. Of course, like other features of this invention, these features can be used also independently of any other features of this invention.
In addition, preferably various statistical programs that allow backwards checking, such as for example the search engine of http:/lsearch.wallstreetcity.com/wse2/prosearch.html are preferably improved to allow the user much more flexibility in defining the backwards checks. For example, the Wallstreetcity.com search engine allows the user to test various investment strategies retroactively up to one year, in order to see which performed best. However, the user is thus limited to only a very small test period, which can be very unreliable, since if for example during 2003 the market came up from a multi-year low, strategies that work best at such periods might for example work very differently in other periods. So instead of this, preferably the user is allowed to use the retroactive test on much longer periods (such as for example up to 10 years backwards), and in addition, preferably the user can for example divide it to one or more sub-periods and see the performance for example on each sub-period, and the user can preferably define for example the exact starting point and/or ending point of each period or sub-period. In addition, in the prior art search engine the user has no control on the way the tested strategy is applied retroactively - for example are the N stocks that most fit the test criteria simply bought at the beginning of the retroactive test period (for example 12 months ago) and just held for the entire period, or for example every month the stocks are replaced if there are other stocks that now fit the criteria better, etc. So this is preferably improved so that the user can define for example exactly on which times or after every what period the stocks are again updated according to the strategy (for example every week or every month or other convenient period) and/or for example the stocks can be updated automatically (for example even once a day or even any time) when there are one or more stocks that become better according to the criteria beyond a certain minimal margin of difference. For example if there are 8 stocks that were chosen according to the strategy, anytime that one or more new stocks become for example 5% or 10%
more (or any other convenient margin) better than at least one of the for example 10 or 20 original stocks (according to the chosen criteria), then the appropriate stock or stocks can be automatically switched for example anytime during the retroactive test . Preferably all of these stock swappings take into account also at least minimal required commissions, so that the end result of the simulation preferably reflects correctly the performance that would have been made after having also paid the necessary commissions in order to apply the strategy (in addition, preferably the user can specify the commission level that most correctly reflects what he would have to pay in reality if he did these swappings). Another problem is that this prior art search engine allows the user to define the past performance of the stock (which is one of the possible criteria) only in terms of performance over a defined period 20/10/05 Yaron Mays 67/186 (for example the last 3 years or the last 5 years), which thus unnecessarily limits the user. So this is preferably improved to allow the user to define in addition or instead for example criteria such as for example choose the 10 or 20 (or any other convenient number of) stocks that performed in a certain way from the last peak (and the peak itself can be for example specified specifically by the user as for example as an exact date or for example automatically found by the system).
This is important, since if for example a NASDAQ stock was at its peak in April 2000, and was for example much lower in Jan 1999 and in Jan 2001, it might be much more informative to take as a criterion for choosing stocks their performance since the last sufficiently large peak, or for example since the highest peak that existed over the chosen period (where the peak is automatically found for example in the last 3 years or 5 years or any other desired period) instead of taking as the criterion automatically the performance since the beginning of the specified period. Of course, various combinations of the above and other variations can also be used. Of course, like other features of this invention, these features can be used also independently of any other features of this invention.
Other improvements can be done for example with Internet browsers and/or other programs that access the Internet, so that for example preferably the browser can request from the server also just a part of an Internet page, such as for example a certain line or for example the value near certain words or areas or fields in the page, etc. This can save a lot of time and traffic, since for example programs that want to update data from various pages and/or run for example various statistics with data from a large number of pages might need just a small part of the data in each page, and thus this can be much more efficient than having to request the whole page and then look for the desired data in it. Although there exists already a format called RSS, which allows getting only a specific area from a web page, this is an XML format that requires specific definitions in advance in the desired web page in order to enable this. On the other hand, according the above improvement, specific requests can preferably referred to web servers regarding any pages, so that for example the browser (and/or for example other programs that accesses the Internet) can request from the server for example just a certain line or lines or words or words in the page, for example defined by position (such as for example lines 20-22), and/or for example defined by content (such as for example, Bring me only lines that contain a certain search string), etc. This is very important since most web pages today are much less structured than XML pages. The server can provide this information for example by simple string search on the web page, and then sending to the browser just the relevant data instead of the desired page. This can be done for example by the server itself or for example by additional software that runs preferably together with the server, preferably on the same computer or at least on the same site or location. Another important improvement is that when uploading a file - for example when submitting a form or in any other way, preferably the browser specifically warns the user about the file name that is about to be uploaded and preferably also its path and/or its size, so that the user can know exactly what is going on, instead of the prior art in which for example when submitting a form Netscape just warns the user that data is about to be submitted, since the prior art warning is activated any time the user presses the submit button in a form and thus 20/10/05 Yaron Mayer 68/186 the user does not pay any attention to it if he/she indeed is submitting a form, and so the user can be easily fooled for example by malicious web pages if the form looks OK but a file is downloaded from the user's computer for example as a hidden variable or in any other way that the user does not notice that it is included in the form (for example invisible font color and/or size, etc.). In other words, the warning is preferably more specific about such files, instead of or in addition to the normal warning about submitting any form. (Preferably the general warning about submitting forms is not needed and the browser automatically avoids submitting anything unless the user really pressed a submit button. However this preferably includes a lexical and/or grammatical and/or semantic analysis of what is written in submit buttons, for example in normal form buttons and/or in Javascript buttons, and/or for example the browser automatically indicates to the user near each button what action pressing the button will lead to, preferably at least when the mouse is near it, before the user even presses it, or even all the time, for example near the button or superimposed on it, for example by showing the button at least partially transparent, in order to reduce the chance of the user being fooled by a misleading button). Another possible improvement (which is similar to some of the variations of the solutions to the focus grabbing problem discussed elsewhere in this application) for example in browsers is that preferably when the user types text for entering for example in some field in a form, preferably the browser and/or the OS
can keep it automatically in some buffer, so that if the user starts to type before the actual form field is reached - for example in pages where on loading the page the focus goes automatically to a search line even if the user does not click on it, such as for example in various search engines, for example if the user starts typing before the page completes loading, the typing is not lost but is preferably added automatically for example by the browser or by the OS to the beginning of the input line. Another preferable improvement for example in other email sending programs (such as for example Pegasus) is that when the user tries to send for example multiple emails and some of them get for example a TCP/IP error or some other kind of error when trying to connect to the mail server, preferably the email sending program automatically saves these messages separately and can preferably automatically try to resend them for example after some time or by user request (preferably only if they are non-permanent errors) or for example can automatically display them one after the other so that the user can try to correct whatever is wrong when possible, and then for example pressing some key automatically tries to resend the same message. Another preferable improvement is that for example if the user changes the language from English to Hebrew while filling a form in a browser, preferably the user can also indicate if the change is intended only for that specific browser window, or for example the change is by default automatically only for the specific site involved until the user changes it again (which means that preferably this information is saved for example in a cookie file), or for example the change is automatically only for similar types of forms, etc. Another possible variation is that the browser automatically takes into account the language of the text near each form field and automatically accepts by default the input in the appropriate language. Of course the browser does not have to positively identify the language but at least the relevant character set and then preferably use the same character set by default for the near input field or fields.

20/10/05 Yaron Mayer 69/1$6 Another improvement in Internet browsers is that preferably the user can for example mark a group of links (for example in the history list and/or in the bookmarks list of the browser, and/or for example in any web page displayed by the browser that contains links) (for example in a way similar to marking more than one object in a scroll list and/or by simply marking the area where the desired links are), so that after the user for example marks the desired group or groups of links, preferably pressing for example some button causes the browser to automatically open multiple windows so that preferably each window accesses automatically one of the marked links. This means of course that preferably similarly choosing for example "save as" after marking the links causes the browser to automatically save the targets of all the marked links (for example other web pages and/or files, etc.). In this case preferably they are saved by default with their original names, or for example the user can define a group name which is preferably incremented automatically to differentiate between the files in the group, and/or for example the system can automatically read the title in each of the files or web pages and use that as the name. Similarly, preferably the user can also for example perform other commands on the group of marked links, such as for example automatically print the group, etc. Another possible variation is that the user can for example perform commands that affect a group of open windows (preferably of the same application - for example browser windows) - so that the user can for example enter a command that prints all of them or that saves all of them or that bookmarks all of them - for example by entering the global command in one of the open windows of the same application, or for example by marking multiple boxes in the task bar (for example by clicking with the mouse while the shift or control keys are pressed) and then entering the command, such as for example ~S for saving all of the marked windows (and/or tabs), ~D for bookmarking them, and ~P for printing them.
Another possible variation is that the user can for example automatically change together the size of all the open windows and/or tabs (or make for example other format changes that affect automatically all of them) of the same application, so that for example if the user activates the cascade command, which reduces automatically all the open windows of the same application, he/she can preferably also restore all of them automatically to full screen with one command. Another possible variation is that if the user for example wants to print an article and does not notice that there is a link for a printer friendly version, preferably the browser looks for this link automatically in the page and preferably can ask the user automatically (for example when the user tries to print the page) if he/she wants indeed to print the page as is or to use the printer friendly link, and if the user replies positively then preferably the browser automatically goes to the printer friendly link and preferably reactivates automatically the print command for that page. For this the browser preferably goes over the links in the page and preferably looks for the most common expressions that are usually used for such links, such as for example "print", "print version", "printer friendly' "printer friendly version", etc., and/or for example finds it according the html content of the link, such as for example "javascript:window.print()". Another possible variation is that in this mode the user can for example choose automatic carrying out of the global command or for example to be prompted for each of the windows for example with the option to 20/10/05 Yaron Mayer 70/186 choose yes or no in each case. Similarly, for example when the user wants to print an original patent image file in the EPO and/or for example print the drawings of a patent in the USPTO, in the prior art he/she usually has to request and print each page separately, which can be quite cumbersome and lengthy. So preferably these databases are of course improved so that the user can for example press an icon which allows printing for example the entire images pages or for example a range of pages. Another possible variation is that even without improving the available options in the site itself, preferably the browser itself can allow the user to define a set of steps to be performed automatically, such as for example pressing the icon or link that leads to the next page and then printing it, so that for example after pressing for example once or twice the "next page" link and printing it, preferably the user can activate a command that tells the browser for example to repeat the last N actions for example an additional M times and/or for example until it is no longer possible (for example after reaching the last page the next page icon is no longer active). Another possible variation is that preferably When pressing for example a Javascript button which designates a link with the right mouse key, preferably the same options are available as when pressing for example the right mouse button over normal links, such as for example Open in a new Window instead of in the current window, or Save the link target instead of opening it, etc. (in the prior art buttons that designate links can only be opened normally by clicking on the left mouse button). Similarly, preferably the browser shows the action defined by the button at least when the user's mouse is near the button or above it (or even all the time), for example by showing the button with a semi-transparent color that lets the user to see text under it, so that the user can know in advance what to expect, and if for example pressing the button activates some Javascript function then preferably at least the function name is shown. Another possible variation is that when typing for example one or more words or part of a url address in the location window of the browser, preferably the browser does not attempt to go automatically to the ".com"
address, but can for example check also, preferably simultaneously, if the address can be resolved also to other TLDs (Top Level Domains) or other domain extensions, such as for example ".net", ".org", ".info", ".co.uk", etc., and then preferably the browser opens for example a scroll Window of the existing addresses and lets the user choose the desired one. Another possible variation is that in such cases the browser can also for example check automatically in the background, for example on a search engine like Google, which of these possibilities shows up higher (i.e. for example has more links pointing to it) and then preferably sort the options by popularity or even for example choose automatically the most popular option, so that if for example aol.net has a higher score than aol.com then for example typing in the location window the word aol will automatically lead by default to aol.net instead of aol.com. Another possible variation is that preferably the browser is improved so that for example if a certain given URL (for example from a link which the user clicks on or for example if the user types it himself/herself in the location window) is not found, preferably the browser can automatically check in a search engine (for example Google) for similar urls and display for example a sorted list of closest most likely alternatives.
However, this is preferably done differently for example if it was a link which the user clicked on than if the user typed it in directly, since for example when the user types the url 20/10/05 Yaron Mayer 71/186 directly there is much more chance for typing errors, so preferably various heuristics are used in this case for checking for typing errors, for example according to close characters on the keyboard and typical errors. (Although Netscape for example goes automatically to a search page if a domain name is not found, in the prior art if a url within a domain is not found then the browser displays an error message of the server in that domain, and also apparently netscape searches for the words as keywords instead of trying to check for example for mistyped very similar urls).
Another possible variation is that web servers are improved so that if a page is not found the server itself for example offers such a preferably sorted list according to similar pages (preferably according to the path and file name) in the same directory and/or for example in similar directories. In addition, preferably the user can tell for example the OS and/or the browser and/or for example the service that the user acquired domain names from, to automatically perform all the actions necessary to renew one or more specific domains on time even if the user forgets to do it (for example the browser can automatically login to the site and perform the necessary actions for renewal, or for example the service is instructed to renew it automatically like a subscription if the user does not cancel the automatic renewal until the automatic renewal time, etc.). (This is very important since even huge companies sometimes forget to renew on time important domain names eventhough they get automatic reminders from the domain name service). Another possible variation is that for example the OS and/or the browser can automatically sense the width or size of the screen and/or the resolution and/or number of fonts available, so that for example if a table does not fit in the page and necessitates creating automatically for example a horizontal scroll bar, preferably the browser and/or the OS can for example decide automatically to reduce the font size accordingly so that the scroll bar is not needed (this is preferably done for example only if the automatic reduction is of a limited size, for example up to 20% or any other reasonable ratio, preferably so that the font does not become too small to read). Another possible variation is that the browser can similarly also decide automatically for example to reduce only the width of the fonts, so that the fonts become thinner, which can be easier and more convenient to read than a font that is also smaller in height.
This can save a lot of time and increase surfing efficiency. Another possible variation is that for example both a color printer (for example inkjet) and a non-color printer (for example laser) can be connected together to the same computer and for example when printing pages the system can for example automatically decide to send for example print jobs and/or even for example parts of them - for example individual pages to either of the two printers, for example according to the amount of color in them, so that for example pages with color beyond a certain threshold can automatically be routed to the color printer. Of course, various combinations of the above and other variations can also be used. Of course, like other features of this invention, these features can be used also independently of any other features of this invention.
Another preferable improvement is that preferably the user is warned automatically for example by the browser and/or by the email client if an http link (for example in a web site or in an email message) is trying to deceive him/her. For example there are email messages that pretend to come from PayPal or Ebay or 20/10/05 Yaron Mayer 72/186 various banks and tell the user that someone unauthorized has accessed his/her data and invite him/her to click on a link in order to check or update his/her data, and the visible link says for example https://www.pa al.com but the real link within the href is somewhere else, so that the user is lured onto a phony site and into revealing secret information, such as for example his/her credit card number, account number, passwords, etc. (This kind of fraud attempts has increased dramatically in the last year and is commonly called phishing, and a large number of users are indeed fooled by it into revealing their data). So in such cases preferably for example the browser or the email client automatically indicates to the user preferably in a conspicuous manner (for example by flashing the real link within the href and/or displaying a warning for example with a recommendation not to click on the link) that the real href is different and thus the link is phony, and/or for example warns the user about this when he/she clicks on the link and gives him/her a chance to cancel before actually going to the linked site. Of course, in such clear cases of misleading hrefs (for example Email messages that contain clearly misleading hrefs where the visible link does not fit the real link) the email message can also for example be automatically blocked for example by spam filters, thus not reaching the user at all. (Preferably normal spam filters are also improved to identify automatically for example typical patterns of mixing digits with letters in a way that tries to bypass word filters) However, the visible link might just say in this example for example "Paypal" without the full url, in which case it is more difficult to be sure of the attempt to mislead the user, or for example might simply say something like "click here to activate your account", etc, so another possible variation is that preferably for example the browser or email client automatically indicates to the user also the real url that is within the href (preferably in the normal display of the page - for example next to the link or superimposed on it, preferably even when the mouse is not near it, and not just in a line at the bottom of the window when the mouse is standing on the link, as is done in the prior art, since many times the user clicks quickly without even noticing it, and preferably the browser (or other application) of course makes sure that this is clearly visible, thus preferably ignoring for example any font size and/or font color command which might hide it and/or for example making it automatically even more conspicuous than the normal text).
This is important because eventhough the user might discover the deception after clicking on the link, this is still dangerous, because the link might for example point to a site that contains a hostile code that takes advantage of some vulnerability for example in the browser or in some plug-in and thus can compromise the user's computer and for example steal or destroy information or plant a Trojan horse on the user's computer. Another possible variation is that for example the browser and/or for example the OS and/or for example the security system (and/or for example another software) can for example automatically conduct at least some keyword analysis and/or grammatical and/or semantic analysis of the message and identify for example a typical scam which requests the user to verify data and can preferably identify the name of the institute which is referred to (for example Paypal, Ebay or some bank) and then can for example warn the user automatically if the name of the institution appears as a file name or directory name in the real url of the href or does not appear at all or appears for example in a section before a dot before the real domain name, and/or for example in such cases can for example automatically look 20/10/05 Yaron Mayer 73/186 up the url for example in one or more whois database and for example warn the user immediately if the domain or IP address is not registered as belonging to the organization and/or for example appears to have been registered only a short time ago (such as for example a few days or weeks or months or any other reasonable period). Of course, a generic security system such as for example described in PCT
application W00192981 and US applications 10/301,575 and 10/644,841 by the present inventor provides ample protection against any such threats, however it is still a wise policy to warn the user in advance about such attempts to mislead him/her. Also, there have been attempts for example to use unreadable characters in the url that appears in the location window (for example http://www.microsoft.com[special character].hackersdomain.com), so that for example Internet Explorer will display the url only up to that character, and thus the user might not discover the deception even after clicking on the link.
Although Microsoft has fixed this specific bug, other ways to display a phony url in the location window might be discovered later. So, in addition, preferably the browser automatically makes sure that the url in the location window (and/or in the display of real url which is shown even before the user clicks on the link) is indeed displayed exactly like the actual url that it connects to, and if there are for example unprintable characters then preferably they are marked with some sign and do not effect the printing of the rest of the url, and if there is for example any attempt by Javasrcipt or for example Active-X or for example some other portable code (or for example by any other program on the user's computer), to put for example other data on top of the location Window (for example by fitting another small window that appears exactly on top of the location Window), then this is preferably automatically prevented for example by the browser and/or the OS and/or the computer's Security System, for example by automatically preventing other programs from putting any windows in front of the browser window unless the user explicitly transfers the focus to them, and/or for example by automatically intercepting windows that have a suspect size and/or shape and/or location or that otherwise have suspicious or unusual qualities. Another possible variation is that such sites that allow the user to make monetary transactions preferably have additional precautions that prevent the thieves from doing real damage even when they succeed in luring users to divulge their secret data. These additional precautions can be for example that for any transaction or for example for transactions above some minimum amount, or for example at least during login in those sites, the user gets an automatic message directed to his/her known address (for example email or Instant Message, with a special code) which preferably contains a unique one-time use generated code, and the user has to respond to it before he/she can go on with the login or the transaction, and/or for example the user has to login from certain known IP addresses or range of addresses or address parts and cannot login at all from other places (and/or the login must be from a certain geographical positions, for example a certain range of GPS
coordinates, for example when geographic IP addresses are used), or for example the challenge email is sent only if the login is from another location and/or not from the allowed IP addresses, and/or for example the user's identity is verified by a biometric method and/or by a physical identification hardware that only the user has, and/or these same methods are used for verifying attempts to use the credit card, etc. Of 20/10/05 Yaron Mayer 74/186 course, the system preferably prevents forgery of IP addresses, for example by any of the methods described for example in my Canadian application 10/756,839 of Jan. 11, 2004 and US provisional application 60/561,160 of Apr. 9, 2004. This way even stealing for example the users' account numbers and/or passwords and/or credit card numbers, still severely limits the thieves' ability to use them.
Another possible variation is that when the browser enters a site (i.e. this is preferably done when the user presses the link, preferably before actually transfernng any content to the user, however it can be done for example also while displaying the data to the user, however that is more dangerous, or it can be done for example while displaying the data but for example no active-x or scripting for that site is allowed until the user explicitly permits it, at least for example if the browser and/or for example the OS and/or for example the security system decides that the site is suspicious) and/or for example even before the user presses the link, for example when the mouse is near it, the browser preferably automatically checks also one or more relevant WHOIS databases and displays to the user automatically also the for example name under which that domain is registered and/or for example the country and/or other details that can easily indicate to the user if a site is phony, such as for example the length of time this domain has existed. Another possible variation is that if the system (for example the browser and/or the OS and/or the security system and/or other software) for example also checks in one or more databases for known phishing sites, preferably it also identifies suspect servers which were known to host such sites before, and/or for example also checks for example in whois records if the domain seems to be related in one or more ways to previously known phishing domains, such as for example being registered to the same people, having the same email of the technical contact or billing contact, etc. In addition, preferably there is also one or more database on the Internet which collects typical word combinations and/or other typical patterns of phishing email messages, for example from messages which have been identified by humans and/or by any of the above methods, which the browser and/or other application can preferably consult automatically for example for getting the typical patterns and/or for example the browser and/or other Internet application accumulates the typical wording patterns itself automatically for example when it identifies a phishing email by any of the above methods), and thus preferably the browser or other application can for example warn the user automatically of any email that seems like a typical phishing attempt even for example by typical word combinations. Another possible variation is for example keeping a list of at least the most common organization names used in typical phishing attempts (such as for example Paypal, Ebay, Citybank, etc.), so that for example the browser (or other application) gathers this lists for example by itself (for example when it identifies a phishing email by any of the above methods) and/or gets it for example from one or more online database, and then for example warning the user automatically about urls which contain the name of the organization in suspicious places, as explained above. Of course various combinations of the above and other variations can also be used.
Another even much more dangerous kind of attack, typically coined "DNS
poisoning" or "pharming", is based on changing data in DNS servers, so that various domain names point to malicious IP addresses instead of the real IP addresses.
This 20/10/05 Yaron Mayer 75/186 is even much more dangerous, since no action is required on the part of the user, and all the users that reach the infected DNS are automatically affected by the phony IP
address. In order to solve this, preferably at least one of the following is done: 1.
Internet Browsers and/or other Internet applications which need to access domains preferably automatically query multiple DNS servers, preferably in different locations (for example at least 3 or more), and if there is a mismatch between the IP
address reported by them for the same domain then preferably the browser (or other application) preferably checks in preferably many additional DNS servers and preferably chooses the one that appears in most places, and preferably also warns immediately the user (preferably before going to the site) that there might still be a risk due to the mismatch (preferably with statistics on the percent of DNS
servers pointing to each IP address), and/or the browser (or other Internet application) preferably checks in one or more domain name registrars to see for example if the IP
address given to the domain is compatible with the DNS servers that are associated with the domain's records, etc. Preferably the warning about the phony IP
address or addresses is preferably immediately automatically also sent for example to one or more relevant authorities and preferably also to the valid site owners (for example according to the correct IP address and/or according to the emails of the contacts in the registry records). Another possible variation, preferably in addition, is that preferably the browser (or other Internet application) preferably keeps historical data of IP addresses of domains that the user has accessed and preferably whenever there is suddenly a change preferably performs, preferably immediately and automatically (preferably before letting the user access the site), various checks, such as for example any of the checks described above, for example in multiple DNS servers and/or registrars. Another possible variation, preferably in addition, is that preferably the DNS servers themselves preferably perform automatically similar checks to those described above, such as for example keeping historical data and checking with multiple sources immediately when there is a change, and/or checking with multiple sources whenever new data arnves, etc. Another possible variation is using for example long encryption keys (for example PKI) preferably for any communication between DNS servers. Another possible variation is that preferably the DNS automatically identifies for example "birthday attacks"
(statistical bombardment with guessed session Ids in order to find the correct session Id) or other statistical based attacks (preferably by keeping track of multiple communication attempts with false session Ids purportedly coming from the same server) and then preferably automatically ignores any packets from the spoofed other DNS and preferably automatically switches for example to other DNSs at least for a certain time. Another possible variation is that the browser (or other Internet application) and/or DNS server automatically checks back any IP address (for example whenever giving it in a reply or for example when it changes) also in preferably multiple reversed databases which find the domain name from an IP
address. Another possible variation is that preferably the browser (or other Internet application) and/or NDS servers also check for example how long the IP address has been associated with the domain for example according to registrar records and for example if it has been associated for a short time below a certain threshold preferably performs various checks (such as for example any of the checks described above) and/or warns the user. Another possible variation is that 20/10/05 Yaron Mayer 76/186 (preferably together with keeping historical data) for example when an IP
address changes, the browser (or other Internet application) and/or DNS server checks in one or more reversed Databases (which give the domain name from the IP
address) if the original IP address now indeed point to a different domain, and if it is still pointing to the original domain then preferably this is immediately perceived as indication of possible DNS poisoning and preferably appropriate action is immediately taken, as described above. Of course various combinations of the above and other variations can also be used.
Another preferable variation is that when the OS and/or various applications support 3D objects, preferably the objects can be resized or moved in various directions in a way similar to the current processing of 2d objects, so that for example by clicking on the appropriate corner the object can be easily resized in that direction, and in this case preferably size parameters are automatically updated and preferably displayed, for example in CAD (Computer Aided Design) programs.
Preferably a large taxonomy of object prototypes is available to choose from, such as for example planets, plants, trees, flowers, animals, people, vehicles, etc., and preferably these objects or prototype objects can be dragged into position and then preferably can be for example changed on the spot for example by fast scrolling over a preferably large number of objects of that prototype or sub-prototype, etc., so that preferably the object changes immediately in view, preferably while the mouse drags for example a scroll bar next to it. Another possible variation is that this scrolling can be done for example also for modular elements of the objects, such as for example leaves, branches, flowers in the plants category, car elements in the vehicles category, etc. Another possible variation is that various elements can be for example reshaped dynamically, for example in a way similar to the Goo program, except that preferably when pulling for example on a part (for example a nose in a face), preferably only that part is reshaped without affecting the parts next to it.
Another problem is that for example in services such as the Google 3D Earth, which allows uses to access over the Internet interactive maps which typically combine satellite images with street maps (either with the browser or with a special client program which the user downloads), when the resolution is close enough to see buildings, although the user may rotate the images in any 3D direction, since the photographs are really only 2D, many distortions can occur, so that for example the direction of viewing can be not compatible with the shown side of the buildings and/or the whole scene can become flat. Preferably this is solved by at least one of the following: a. Improving the program so that the 2D images are preferably processed in advance to create extrapolated 3D representations according to relevant visual cues, and/or for example by making the photographs in advance with two or more lenses or 2 or more cameras. b. Adding, for example at least in popular public places, multiple photographs from multiple angles, preferably from helicopters and/or balloons, which are preferably automatically combined into the processed 3D
representations and/or at least become automatically integrated when the rotation and/or angle is appropriate. Another preferable improvement is adding, preferably at least in popular public places, one or more local streaming video cameras which broadcast preferably real time streaming data, so that preferably when the location and/or angle is appropriate the real time streaming data is automatically integrated.

20/10/05 Yaron Mayer 77/1$6 Preferably the displayed normal images contain special marks which indicate to user "hotspots" where addition 3D images are available and/or more details are available and/or live streaming data is available, and preferably the user can also ask the program to automatically take him/her to such spots for example automatically, for example each time the user enters a command to jump to the next nearest hotspot and/or for example clicks on one of the marked hotspots. Another problem is that when the user for example wanders sideways, typically it takes time for the application to fetch the more detailed images for the new area which the user moved to each time, thus creating an annoying wait for the data. So preferably this is improved so that the program automatically guesses for example from the pattern and/or direction and/or speed of the user's movement where he/she is most likely to continue next and so preferably the details for next area or areas are downloaded in advance before the user goes there, thus preferably reducing significantly the waiting experience. Preferably this is applied also for example in the cases when for example the user can move a virtual magnifying glass, used by the competing Microsoft application ('Virtual Earth'), since there also the waiting experience needs to be reduced by the above advanced predictions of the next movements.
Another problem is that when the user zooms in on an area, many times the exact point which the user was interested in can move out of the frame unless the user is careful to move it again to the center each time before continuing with the next zoom. So preferably this is improved so that for example if the user clicks on the point he/she is interested in and then continues with the zoom, preferably the spot that was clicked upon is preferably automatically moved by the application to the center so that is remains in focus, for example unless the user deliberately moves the area or for example clicks on a different spot. Similarly, preferably the system can automatically predict for example the zooming sequence of the user, so that for example if a user is apparently trying to zoom into the marked spot, preferably the system tries in advance to get each time the additional details at least one step before the user requests it. Similarly, preferably for example the pill such as by Given Imaging, which can photograph the human digestive system internally, is preferably improved so that it contains at least one more miniature video camera or other sensor also on the other side of the pill, and preferably each such camera can cover at least around 180 degrees, so that preferably both can cover almost all directions at the same time. This is much more efficient than the normal Given Imaging pill, since in the normal elongated pill the camera is only on one side, which means that at each given moment only the section randomly pointed to by the camera can be photographed. Another problem is that many times when filling various forms or questionnaires, the user might have to check or uncheck multiple checkboxes, as shown for example in Fig. 6. So preferably the browser is improved so that the user can for example darken with the mouse a group of checkboxes (for example by clicking the right button and dragging the mouse over the area while it is clicked) and then with one command for example mark or unmark the entire group, and/or for example dragging the mouse over a group of checkboxes with the left button pressed immediately marks each box on the way and dragging it with the other button pressed unmarks each checkbox on the way, or for example vice versa, etc., and/or for example pressing the Shift key (or some other key) and marking or unmarking 2 checkboxes preferably also marks or unmarks for example all the 20/10/05 Yaron Mayer 78/186 checkboxes in between. Another possible variation is that the user can for example also unmark a radio button (for example by clicking on it again or for example using another mouse key) since in the prior art once a radio button is marked it can not be unmarked except by marking another radio button which belongs to the same set.
Another possible variation is that for example when a computer becomes compromised by a Trojan and becomes for example a spam-relay station, preferably there are special sites or for example routers which identify the attacking computers and can preferably send the users who's compromised computers have participated in the attack (for example by identifying identical or sufficiently similar multiple messages from these multiple origins) for example automatic warning messages, for example directly to their IP address or to their email (However, using the email is much more preferable since on many such computers there is no normal way of sending messages to this IP address which the user will see). Preferably this can be accomplished automatically, even if the Trojan for example uses forged email addresses and/or forged IP addresses, for example by any of the methods described in the present inventor's US application 10/756,839 of Jan. 1 l, 2004 and Provisional application 60/561,160 of April 9, 2004. For translating the user's real IP
into his/her email, preferably the system works in cooperation with the immediate ISP of the inflicted computer and/or for example there are on the Internet databases which automatically link email addresses or other identity indictors with the current IP of the user, which are preferably automatically updated each time the user connects or disconnects from the Internet, as described for example in US applications 10/756,839 and 10/905,664 by the present inventor, and preferably these databases preferably automatically allow also efficient searching according to the IP, for example by creating automatically in real time also indexes according to the IP
addresses. Another possible variation is to identify for example when the user's normal Internet Browser accesses web pages from the real IP address of the inflicted IP and then for example various routers on the way or relay stations or special sites can Send the warning to the user for example when the browser tries to access a normal web page. Another possible variation is that for example the IP
addresses of inflicted computers are automatically updated in one or more special URLs in real time and for example the OS and/or the browser automatically checks regularly in one of these official sources and sees if the IP address fits the real current IP address of the current user's computer and then warns the user. However, in these variation, preferably IP addresses are removed automatically when there is an indication for example automatically from the ISP that a different computer or phone number is now using that IP address, for example by the nearest ISP node automatically identifying the user's phone number, for example when a normal model or ADSL
modem is used and/or some other hardware fingerprint of the computer, since otherwise the wrong user will be warned. However, this is preferably needed only if the user has an insufficiently protected firewall or for example if the user inadvertently gave the Trojan horse permission to access the web. For example the generic security system such as for example described in PCT application W00192981 and US applications 10/301,575 and 10/644,841 by the present inventor describes among other things firewalls that even prevent Trojan horses from bypassing the firewall (for example by installing a driver that accesses directly 20/10/05 Yaron Mayer 79/186 the communications card or its driver), while normal firewalls can become completely ineffective when this happens. That patent also covers improved firewalls that protect for example additional communication devices in addition to or apart from the network card or modem. Another possible variation is that for example even when the user supposedly allowed such a device to be accessed, preferably the user is given also a real time indication that the device is working.
For example, if the user inadvertently allows a Trojan horse or spyware to activate silently the webcam, which then can for example start to photograph and/or record what happens in the room, preferably the security system and/or the OS and/or some other software and/or for example the webcam itself will for example continuously flash some light and/or otherwise indicate to the user clearly that the webcam is for example currently filming and/or recording what is happening in the room.
Preferably similar warnings are preferably generated for example if some device has been connected to the USB and data is continuously being downloaded to it or for example some wireless device is continuously broadcasting data, even if the user apparently allowed it when the firewall asked him/her. Another possible variation is that for example when the user is asked to authorize Macro commands to run for example in Word, preferably he/she also has a choice of for example allowing only macros which do not access files beyond the present document, or for example the user allows the macro to run but is automatically warned and asked for authorization whenever the Macro tries to access external files (This interception and warning can be done for example by the word processor and/or by the computer's security system and/or for example by the OS).
In addition, preferably when searching for example for MIDI files on the Internet preferably the search engines are improved to enable for example automatically choosing the best MIDI files, for example by displaying first the most popular files.
For example, in the current prior art the MIDI search engine http://www.musicrobot.com/ (which is perhaps the best MIDI search engine) Enables users to find MIDI files according to song names and shows first a list of all the song names that contain the search string, so that if for example the user searches for the song "yesterday once more" but uses as search string the words "yesterday once", the results are displayed for example as shown in Fig. 4 below. As can be seen, the results are ordered not by the most popular entry (i.e. the file name that appears on most sites) but by being closest to the search string. In this prior art search engine, if the user then chooses to click for example on the most popular file (entry 4), he/she then gets a second division - according to the file length of the files with the same name (in increasing order), so that for example the list of results shows that a file named yesterdayoncemore.mid (with the length of 8,430 bytes) is available from 4 URLs (for which the user is given the links), a file with the same name and length of 24,601 bytes is available from 7 URLs (for which the user is given the links), etc. However, in reality, the file that appears in most URLs is usually the best MIDI version of the desired song, so this means that the user has to manually look for the file size that is available from the largest number of links, and sometimes there are a large number of results (especially for more popular songs) so this is cumbersome. So in order to improve this, preferably in the first stage, after choosing the set of results that are sufficiently close to the search string, preferably 20/10/05 Yaron Mayer 80/186 the search engine automatically sorts the song names by the most popular in descending order (and/or for example the similarity to the search string is also taken into account, however if the original set was chosen properly this should not be necessary since at least most of the results in the set should be relevant, and the most popular names will probably include the song that the user is actually looking for).
Secondly, after choosing the desired file name, preferably the 2"d stage is also sorted by the number of links available for each file size (instead of the sorting by the file size in the prior art engine), and so the user can preferably typically with just 2 clicks of the mouse reach immediately the desired MIDI file that has the best chance of being a good version of the desired song. Preferably similar principles are used also for example when searching for recorded songs on the Internet - for example in legal shops which sell online songs (for example in mp3 format), so that for example the user can use a meta-search over a number of such stores and can preferably use the same stages described above like in the midi file search.
(This is another improvement in Internet search technology as defined for example in the present inventor's Canadian patent applications 2,443,036 of Sept. 14, 2003 and 2,444,774 of Sept. 29, 2003). Such a search or meta-search engine can for example work on a server on the Internet and/or can for example be at least partially implemented on the user's computer, for example as part of the OS (so that for example at least some of the processing of the results is done on the user's computer). Of course, MIDI files are just an example and similar principles can be used also for other types of searches, such as for example in Shopping metasearch engines, so that for example if the user is looking for example for a combined Fax-Scanner-Printer, the system preferably helps him/her choose the specific manufacturer and model for example by sorting the models by descending order of popularity. Another preferable improvement for example in such shopping metasearch is that preferably the metasearch engine can show not only a current price range but also for example a table or graph of previous prices (for example during the last few months or weeks) for example for changes in the price range and/or for example for any specific shop which has the item, which later shows up in the detailed results (so that not only the current price for that item in that shop is shown but also a graph of recent price history for that item in that shop).
Another possible variation is to take into account for example also some ranking factor of the sources, so that for example Online stores that are much bigger or more important can be given higher weight. Another possible variation is that for example in shopping meta-search preferably the meta-search engine automatically deduces the user's country according to his/her IP (and/or for example asks the user about the country where he/she wants the goods shipped to) and preferably by default (or at least if the user requests it) preferably the engine automatically marks near each shop alternative if it has shipments to the user's country and/or for example puts such shops in a separate group, preferably at the beginning (and/or for example can exclude shops that don't ship to the user's county if the user requests that, but that is less preferably since the user might prefer to know all the prices in comparison even in shops that don't ship directly to his/her country). Another improvement is such meta search features is that for example when displaying automatically generated news the user can preferably define the desired time span to cover (for example only the last N hours or N days, etc.), and/or for example the user can mark certain news 20/10/05 Yaron Mayer 81/186 items or clusters or sub-clusters as no longer interesting. This is very important since otherwise for example automatically generated news items such as for example in the Sci/Tech section in the Google News, can remain almost the same for many hours or even a few days, and thus the user misses other items (of course, as explained in the above applications, preferably the user can continue to browse for additional automatically generated news clusters, preferably until the clusters become too small, but still this can save unnecessary distractions by skipping clusters which the user has already seen and is not interested to continue seeing new items about them). Another possible variation is that the user is notified automatically (for example by email or instant message or SMS, etc.) when a sufficient number of new clusters has become available and/or when a sufficient number of new items has become available in existing clusters which the user has not requested to remove, etc. Another possible variation is that for example when sorting automatically generated news clusters the number of items in each cluster is normalized by the time factor, since clusters that have existed for a longer time (for example a few days) would normally have more items than a newer cluster (which has exited for example for 1 hour), even if the new cluster is more important, etc.
Another possible variation is that preferably the user can also, preferably easily, review also historically the automatically generated items that were on the automatic newspaper (for example in the Science/Tech section or any other section) for example a few hours ago, a few days ago, a few weeks ago, or more. Preferably the user can specify for example the time in hours and/or days to jump back (or for example once the jump size has been defined each next jump is automatically of the same size), or the user specifies for example a specific date and/or time which he/she wishes to view, and/or for example the user can press some link which automatically takes him/her back at each step for example automatically for a variable time period - determined for example automatically according the amount of change (for example the amount of change in clusters and/or within them).
For this preferably the MetaNews service preferably automatically keeps a history of the links for example with certain time jumps (such as for example every hour, or any other reasonable time gap) and/or for example every time a sufficient number of items have changed within clusters and/or clusters have changed, etc. Another possible variation is that, for example when displaying the automatically generated newspaper or the results of a new search, the results can preferably be displayed also for example by a combined sort that combines for example relevance or importance with time, so that for example the clusters and/or sub-clusters and/or items are sorted by a score which is based on a formula that is affected both by time and by relevance and/or importance. Another possible variation is that for example in normal web searches and/or for example in searching the dictionary and/or the thesaurus for example in the word processor the user can search for example for synonyms of words with a specific pattern or length, or for the word itself when partial data exists (which can be very useful for example for solving cross-word-puzzles), so that for example the user can use for example question marks (or any other convenient designation) to designate unknown characters. So for example if the user is looking for a Greek island which is 6 letters long and starts with "ba", he/she can for example search for 'ba???? Greek island', or for example if the user searches for example for a synonym of the word satisfaction with 11 letters he/she 20/10/05 Yaron Mayer 82/186 can for example type 'synonym(satisfaction) ???????????' or for example 'synonym(satisfaction, l l )', and/or for example some other convenient notation.
Another possible variation is that the user can for example use wild cards in domain names, for example in the location window of the browser or in the search engine's search line, so that for example the user can type in the search line 'http://coca*
annual sales' in order to get results only from world-wide sites that belong to coca-cola, or for example 'population growth statistics http://*.gov' to get results only from official government sites, etc. Another possible variation is that the user can for example use various pattern marks when looking for general information, so that the user can for example type in the search engine, "distance from [ 1 ] earth to [ 1 ]
moon is %N% Kilometers", which means that for example up to 1 word can be between the words "from" and "earth" and between the words "to" and "moon" and a number is expected before the word kilometers, etc. (Of course this is just an example and many other notations can be used for the number of allowed words in between). (Although Altavista for example allows using the NEAR qualifier, it is more preferable to allow the user to limit the exact number of in-between words allowed). (Although for example Google already allows the user to achieve a similar effect by including a range of numbers, for example 2..40, in the search line, preferably the user can also enter a general number indicator without having to waste time thinking of an appropriate range). Another possible variation is that the user can add for example a tag that causes the results to be sorted according to this number (or numbers, if more than one number pattern is specified) (so for example the search string can be: DVD "Koi Mil Gaya" $%N%<lowest> cart) (or for example indicate this by any other way), so that for example all the sites that contain the desired keywords and the number are automatically sorted in the search results by this number in descending or ascending order, as determined by the user, or for example the sorting is only among sites which are sufficiently highly ranking according to other criteria (preferably this is also determined by the user, but sorting on the entire set of appropriate results is more preferable since it can give better answers). This is somewhat similar to using shopping metasearch, except that this gives the user much more flexibility in using such sorting for almost anything, so it can cover much more possibilities than normal shopping metasreach. Another possible variation is that the user can for example tell the search engine to search for words that belong to the same item instead of just appearing together on the same page, so that for example when the users types '<group> all in one color laser printer fax scanner' (or with any other suitable code or notation) the search engine preferably returns only pages where these words appear near a single item (for example identified by being in the same paragraph or by smart heuristics that identify items or for example simply by being within the same sentence or for example group of 1-4 sentences, etc.). In a way this is similar to the use of the 'NEAR' code word, except that it applies to a group of words and preferably smarter heuristics are used as explained above and not just distance in words.
Another possible variation is that instead of using 'or' and brackets the user can for example use '/' do designate 'or' for a single word, which is much faster and more intuitive, so that the user can for example type at the end of the above query Kilometers/miles. This can work even better for example if synonyms are also automatically activated or offered (for example in the form 'did you mean 20/10/05 Yaron Mayer 83/186 "Morning after pill"?' if the user searched for "day after pill", or by automatically including also the results with at least the close synonyms), as explained for example in other applications by the present inventor. Preferably the search engine can know synonyms for example at least from various thesauruses and preferably also through automatic learning, for example based on various patterns and/or statistics (such as for example similar patterns or word combinations that appear in pages that are close on the recursive clustering analysis, wherein the clustering is based for example on keyword analysis and/or at least partial semantic analysis and/or incoming and/or outgoing links analysis. For example there are 1940 pages with the words "day after pill" and 128,000 pages with the words "morning after pill" and even 1150 pages which contain both phrases, so even without the 1150 pages the search engine can preferably understand that these two phrases are used very similarly on pages which are close on the recursive clustering and therefore are probably synonym phrases, eventhough "day" and "morning" are not normally defined as synonyms) and/or semantic understanding of pages where relevant definitions or connections are used (for example at least in some of the 1150 pages where both phrases are used it is clearly indicated that these two phrases designate the same thing). (For example when searching for various devices or components in electronics even professional users many times have trouble finding the desired items because they are referred to by different names or different terms in different places, so preferably the search engine can for example automatically deduce the connection between the different names while spidering the web, for example based on various patterns or statistics or for example by semantically understanding references or definitions that directly link two or more names at some of the pages, etc.). Another possible variation is that for example when requesting News alerts, instead of being able to request only by specific keywords (as it is for example in prior art Google News), preferably the user can for example mark a cluster or a specific sub-cluster, so that he/she is notified automatically on any new items that belong to that cluster (as explained above), or for example the user can use semantic qualifiers or for example mark words in brackets, so that for example he/she will be notified also about items that contain synonyms of these words, etc. Another possible variation is that when the search engine for example displays advertisements in addition to search results, based on the keywords which the user used, preferably the choice of appropriate advertisements takes into account not just the keywords themselves but also semantic and/or context related information.
This can be done for example by taking into account the order of the keywords which the user used on the search and looking for example for qualifiers, such as for example "all", "not", "most", etc. However such words are rarely used in keyword searches so this would be hardly useful. A better variation is to determine the semantic meaning and/or the context based on the search results which the user clicks on (which is especially useful if the results themselves are automatically displayed in the form of recursive clustering), so that for example the advertisements are updated accordingly when the user requests the next page of results or repeats the search with similar keywords. Another possible variation is that the advertisements can be dynamically updated also on the same results page which the user already has, so that for example while the user opens new windows for some of the links and explores them, the original page is already updated based on the links which the user 20/10/05 Yaron Mayer 84/186 clicked on, for example by automatically setting automatic refresh to every 30 seconds (or any other convenient time). Another possible variation is that in order to save bandwidth for example the html protocol is changed so that it is possible to define for example "refresh on a need basis", which means that the refresh command is initiated automatically by the site when there is any change in the preferably dynamic page (so that the browser can get a refresh even if it didn't ask for it), or for example the browser asks for refresh more often (for example every 20 seconds or even less), but if nothing has changed then the browser gets just for example a code that tells it to keep the current page or window as is. The first of these two variations is more preferable since it saves also the waste of bandwidth by unnecessary refresh requests by the browsers. In addition, when the refresh is sent, preferably it can be a smart refresh, which tells the browser preferably only what to change on the page instead of having to send the entire page again. Another possible variation is to implement this "refresh on need" for example by active X
and/or Java and/or Javascript and/or some plug-in or other dynamic code that is updated only when there is a need for it. Another possible variation is for example to keep the page or part of it open like a streaming audio or video so that the browser always waits for new input but preferably knows how to use the new input for updating the page without having to get the whole page again and preferably doesn't have to do anything until the new input arrives. Of course, various combinations of the above and other variations can also be used. Of course, like other features of this invention, these features can be used also independently of any other features of this invention.
Another possible variation is that preferably the search engine can also use preferably various heuristics for determining the information value of the search results, which can be used for example for improving the ranking of web pages according to their information value and/or for example indicating near each link its information value (for example as a single score and/or as a list of scores and/or sub-scores). The information value scores can be defined for example according to authoritativeness (for example a scientific journal article versus a blog page), truthfulness, objectivity, expertice, reliability, accuracy, etc. Preferably the search engine can determine for example if a web page is probably more scientific (for example has higher information value according to one or more of the above criteria of information value) for example according to for example diagnosing automatically whether it contains references and/or how many references and/or how scientific are the sources that are included there, and/or for example by lexical and/or semantic analysis of the details about the author if such details exist, such as for example if he/she has a PhD. title and/or has a background relevant to the field that the article deals with (for example the writer has a degree in nutrition in an article about the dangers of eating Soy products), and/or for example link structure (incoming and/or outgoing) that indicate that the page (and/or the site in general, i.e.
for example the entire domain or for example subdirectories in it) has links to and/or from other pages (and/or sites or for example subdirectories in them) which are considered more scientific (or of higher information value) by the system (for example in terms of percent of scientific incoming and/or outgoing links and/or in terms of absolute scientific incoming and/or outgoing links), and/or for example if the site is for example on a university or for example in a government institute (for 20/10/05 Yaron Mayer 85/186 example according to the top level domain - for example ".edu", ".ac.<country code>", ".gov", etc.). (However, a university site can contain for example also student pages, and government sites can carry for example tendentious or biased information sometimes, so preferably the search engine takes into account for example also how high the page is in the subdirectory structure of the domain -for example student pages will typically be in a lower directory, many times for example with a name that contains a'~' on the path, and for example if a page in a government site appears to deal with a scientific subject preferably the search engine can assume that there is less chance for bias than if the subject is political for example). This can be done for example preferably in a way similar to the way that Google uses recursively the number of incoming and outgoing links to determine the authoritativeness of pages and/or sites (where authoritativeness is actually defined by popularity), except that in this case preferably the recursion uses as criteria also for example various indications about the scientific value (or information value) of the pages and/or sites and/or sub-areas in the sites, etc. Determining the initial indications can be for example according to various heuristics based on the content of the pages (for example as in the above examples), and/or for example additional indicators, such as for example starting out with known scientifically accredited sources, etc. (However, these indicators are preferably reassessed automatically again for each page and/or domain and/or directory tree or sub-tree, in order to avoid degradation of the information value score or scores as the recursion continues). Preferably the taking into account of the information value can be for example applied automatically as an improvement of the results ranking algorithm and/or for example the user can indicate that he/she prefers to take this into account, for example by marking default preferences (which are preferably saved for the next time he/she uses the search engine, for example in cookies) and/or for example by adding some special keyword or mark to the search string, and/or for example the search engine has a few search windows, so that one or more are defined in advance for searches for more official and/or authoritative and/or scientific information, etc., and/or for example the search engine can preferably decide automatically how much weight to give to the information value of the results according to the search string itself, so that for example if the user enters a search string such as 'blond huge boobs' then he/she is probably not looking for scientific articles in this search.
However, since it is obviously difficult to know if the user is for example searching for articles about cars or sites that sell cars (for example with a search string like 'best price performance cars'), the above described solutions of using semantic qualifiers, such as for example 'best price performance cars (shops that sell)' when looking for shops and for example 'best price performance cars (articles/reviews)' is more preferable, and preferably the search engine can use any of the above methods for responding to such a query (such as for example synonyms, semantic trees and/or taxonomies, semantic tags, etc.). Of course for example in the variations where the user chooses in advance more official and/or authoritative and/or scientific information, etc. (for example by adding an indication or choosing the appropriate search window, as described above), preferably the search engine can for example automatically ignore sources or results (for example pages and/or sites in general, i.e. for example the entire domain or for example subdirectories in it) which have an information value below a certain threshold, or 20/10/05 Yaron Mayer 86/186 for example mark or indicate the threshold (for example by a clear borderline or in a separate window), so that for example results below the threshold are displayed in a separate section or window. Preferably this procedure is done both for normal web pages and for internal search databases (the deep web), which is hundreds of times larger than the normal web. In this case it is even easier to reuse the indicators to avoid degradation, since internal search databases typically have a consistent nature and typically have clear indicators about their scientific or information value, such as for example what organizations stand behind the database, what type of sources are included in it, etc. Preferably the search engine can also automatically include in the search results also replies from various internal search databases, preferably by analyzing automatically the search keywords and/or semantic qualifiers, so that for example a semantic qualifier such as "(articles/reviews)" preferably prompts the search engine to try to bring some results also for example from relevant internal databases. Another possible variation is that for example when searching for academic results and/or for example in normal web searches, the user can for example request the search engine to show only results from articles (and/or for example normal web pages which were last updated) for example from a certain date onward or for example before a certain date or for example within one or more range of dates. However, some pages include for example an automatic visitors counter and so the counter is automatically updated even if the page does not change for years, so preferably the search engine uses its historical data to estimate if the amount of change and/or the type of change justifies regarding the page as recently updated (for example addition of new paragraphs or significant changes in existing paragraphs, as compared to merely updating a few numbers). (Another possible variation is that for example the web server sends also data about the last time the page was updated in the local directory, but that is much less preferable since page owners can easily write a program that will update the file's date regularly even if there is no real change). Of course, various combinations of the above and other variations can also be used. Of course, like other features of this invention, these features can be used also independently of any other features of this invention.
Another preferable variation is that for example the system includes a firewall which allows giving specific applications differently rights for downloading and/or uploading information for example to or from the Internet (and/or for example through all available communication channels or through specific communication channels, such as for example network cards, USB, wireless, modem, etc), in contrast to prior art firewalls which only allow users for example to let applications access the Internet, but the user has no knowledge or control for example if an application that has been allowed to access the Internet is uploading or downloading information, etc. This is very important since for example the user might want to allow a program such as Winamp to access the Internet for example in order to play streaming data but does not want Winamp to be able for example to upload information, or for example the user might want Word or for example some other word processor to be able to access web pages but does not want the word processor to be able to upload document files (for example even if they are in its own directory and/or even if it is the current file which the user is working on), so that for example if an application is actually a Trojan horse that tries to steal data or for 20/10/05 Yaron Mayer 87/186 example the application is compromised for example by some buffer overflow, it will not be allowed to steal data and send it out. This can be done for example by automatically showing the user the statistics of sending/receiving information near each application that has been allowed to access the Internet (for example in some table, preferably in the same normal table of authorizations) and/or for example defining a maximum ratio between upstream and downstream for each application (which is then preferably enforced automatically for example by automatically blocking excess uploading and/or warning the user and/or asking for his/her authorization) and/or for example defining a maximum absolute amount of information that can be sent out per time (which can be for example enforced similarly). However, such definitions are limited in effectiveness, since a sophisticated hostile application can for example slowly steal important data over time even within the limitation and/or for example various applications might cease to function properly because of these limitation. For example, enforcing such separation between uploading and downloading is not easy since even programs that download data typically have to also send some information in order to establish the communication, however allowing for example automatically a reasonable required ratio between the two directions can solve this problem and this can be quite effective for detecting theft of data, since if a program for example is allowed to upload only for example 1/4 or 1/10 or less of what it downloads then trying to steal for example a large file will also require the application to download even more data and the user can easily see for example that the application had no reason for downloading it (and this is only if the Trojan knows for example about the limitation and tries to cheat its way out of it by downloading extra data, otherwise it will simply be blocked because it would try to send much more data than it receives). Another possible variation is for example monitoring the data in the incoming and/or outgoing packets, but even this can be limited in value since for example a hostile application might encrypt the data and/or for example disguise one protocol within a seemingly different protocol, etc. Another possible variation is that for example programs that the user wants to allow only to download data but not upload data are automatically prevented from any real access to the web and for example the OS and/or the firewall and/or the security system intercept any attempt that these application make to contact the web and send the requests instead, and so for example only valid normal protocol requests for example for accessing web pages and/or for downloading data, etc., which are recognized by the firewall or other intermediate agent are allowed to go through (this means of course that the firewall or other agent preferably has in this case to monitor the entire incoming and outgoing protocol of that application in order to be able to understand fully what is going on and interfere when needed). Preferably the firewall or other agent for example can also notice other suspect behaviors, such as for example requesting a web page with an unreasonably large parameters line for example after a "?" in a url (for example 'http://abc.com/test?asdo+32892323+g238023803+wqwqdpq?
ideeww...'), since such addresses can also be used for example for connecting to a hacker's site (phoning 'home') and stealing the data in disguise of the url's parameters, or for example frequent repeated similar connections for example with shorter parameter lines that keep changing (in case the data theft is in smaller stages, etc.). Similarly, for example the TCP/IP protocol itself might be changed so that for 20/10/05 Yaron Mayer 88/186 example sockets can be opened for both sending and receiving data or only for sending or only for receiving. In addition, preferably the firewall (and/or for example the Security system and/or the OS or other software) for example can also indicate to the user automatically when some application (for example that has been allowed to access the web) is trying to download a file (so that for example the user can be alerted if such activity is happening without his/her requesting it -preferably together with indication of the full path and the file name that is being downloaded), or for example the user is warned for example only if an apparently executable file is being downloaded. Preferably the firewall (or other agent) can determine if it is an executable for example not only by its extension but also by automatic inspection of its contents, since a hostile application might for example use a seemingly innocent extension and then for example rename it, etc. This can be very useful for example in cases of various browser exploits which cause the browser to download hostile executable code without the knowledge of the user. Another possible variation is that the user is for example warned automatically for example every time a program modifies and/or erases and/or creates an executable file on the disk (This is something that should normally happen only if the user compiles a program or if he/she downloads an executable file). Another preferable improvement is that for example the firewall allows the user to change the permissions of multiple applications at the same time for example in the firewall's table, for example by marking entire columns or other areas and then changing automatically for example all the permissions in the marked areas, such as for example to allow/deny or ask, etc. Another problem with personal firewalls, such as for example Zone Alarm, is that there is usually a large number of dll's and/or other components which are used by applications that are allowed to access the web, and some hostile application (for example a virus or Trojan horse) can easily change one or more of these components and thus actually for example create a huge hole in the firewall.
For example Zone alarm does not notice any such changes and simply asks the user to allow only components which he/she trusts, but of course it is unreasonable to expect the user to now which components to trust or not. So preferably at least one of the following things are done to protect against such tempering: 1. One possible variation is that Preferably the firewall and/or security system can automatically check for example in some Internet database or databases (preferably only in specific certified sites) the correct CRC (or other fingerprint or fingerprints) of the various known components and thus determine automatically if some component is suspiciously with a wrong fingerprint (this is especially useful for example fore components that were on the computer before the firewall was installed).
Preferably the database checking includes also a lookup for example in some preferably encrypted database or databases of the OS, in order to check that relevant OS
components have not changed, and/or this check is also conducted for example on the Internet database or databases. 2. Another possible variation is that preferably when such a component is changed the firewall and/or security system warns the user about it and preferably is also able to tell the user which application changed it and when, for example by automatically monitoring all the components that are used by the programs that have been allowed access to the web and warning the user for example when they are changed and/or for example the next time the relevant application that uses the changed component tries to access the web, and then 20/10/05 Yaron Mayer 89/186 preferably the user has again to decide if to allow the application which uses the changed component or components to access the web. However, it is much more preferable that the firewall and/or security system actually intercepts the change at the moment that an application is trying to make it and asks the user if to allow it before the component is allowed to be changed, and, since the firewall preferably tells the user which program is trying to change the component, the user has a much better chance of being able to distinguish between a legitimate change (for example because he is installing a new application) and a change attempted for example by a virus or Trojan horse. Another possible variation is that for example the firewall and/or the security system can be set to require user permission for example the first time a program (and/or for example dll or driver) tries to access each file type (for example ".exe" files, ".doc" files, ".vob" files), and preferably for each file type the user can for example decide if to allow the program read rights and/or write rights in such files (and/or for example execution rights separately, and/or for example creation rights and modification rights separately, and this can be done for example in addition to or instead of requesting permission according to directories).
However, in this case preferably the system automatically differentiates between access to shared OS directories and files (which preferably by default are handled automatically by copy-on-write of files or sub-file parts, as described for example in US applications 10/301,575, 10/644,841 and 10/968,022 by the present inventor), and attempts to access other directories or files which were added by the user or by other programs. In this case preferably the user can view for example in the table of authorizations which applications (and/or for example drivers or for example dlls) were allowed such rights (for example in addition to showing Internet access rights).
Another possible variation is that the user can for example also view for example a table which shows for example according to file type and/or for example according to directory and/or for example according to other resources (for example according to various peripheral devices) which programs and/or drivers and/or environments and/or guest OSs are currently allowed access it and/or with what type of access).
Another possible variation is that for example when looking at the authorizations table of the firewall preferably the user is shown also for example which programs have been given temporary access rights to the communication channels, and preferably also for example how long ago the temporary or non-temporary permission was given, and/or how much data that program has already sent out and/or for example received, as explained above, etc. This is different from the prior art, in which for example the very popular ZoneAlarm firewall shows near each program an 'X' if it is not allowed to access the Internet, a 'V' if it is allowed, and a '?' if it needs to ask permission (I.e. the user has not asked to remember his last reply), so if the user gives a program a temporary permission, the authorization table still shows a '?' near that program and the user cannot know if the program has or doesn't have temporary access rights at present. This is dangerous since the user might inadvertently answer a prompt from the firewall without paying attention and thus give a program for example temporary access right without intention, but when looking at the authorizations table the user has no indication of this.
Another possible variation is better precautions are taken against buffer overflows, for example as follows: Although Microsoft has added the prevention of data execution, both by software and/or by hardware to the recent XP service pack 2 in the 2°d half 20/10/05 Yaron Mayer 90/186 of 2004, however the problem still remains that even with this improvement, according to http://www.micrasaft.com/tec;hnet/pradtechnol/winxpprohnaintain/
~2mempr.mspx, typically attempts to execute code from the data area may still cause the process to terminate and/or even cause the system to fail with Bugcheck.
This indicates also a deeper problem, which is that even just data crashing can be dangerous, such as for example in the above example of changing the return address, or for example if various data that may include for example information about file names or disk segments or web addresses or user permissions is crashed, etc. Therefore, in addition to the above, preferably the security is improved so that even data crashing becomes automatically impossible or at least much more difficult to do. This can be done for example by improving the compilers to perform much better automatic checks and preferably automatically add (for example preferably for every type of reading data for example from a user interface or from a file) additional code that automatically cuts off any data that exceeds the size of the input buffer, for example in a way similar to the way that Pascal compilers automatically add code that cuts the data that can be read into a string when it reaches the size of the string, except that this is preferably done for example also in C
compilers and preferably for every possible type of data input an not just strings. Another possible variation is that the security system and/or the OS can for example analyze executable files that have already been compiled or for example were written is assembler and preferably identify automatically problem areas where for example buffer overflow may occur and preferably automatically add code that can prevent it and/or at least for example issue an automatic warning about such vulnerabilities, and/or for example at least the data stack is better protected by any of the above methods and/or for example by automatically keeping return addresses at a separate place from the data (and if in some cases executable code is also kept in the stack then preferably these executable codes are also preferably automatically kept in a separate place from the data). Of course, various combinations of the above and other variations can also be used. Of course, like other features of this invention, these features can be used also independently of any other features of this invention.
Another preferable improvement is that the user can have for example two or more Operating systems running at the same time (for example Windows Me and windows XP or XP and Longhorn), so that the user can for example jump between them preferably instantly or almost instantly, for example by pressing some key or key combination or clicking on some icon, instead of having to shut down Windows and reboot. This is preferably done for example by keeping a mirror image of the loaded and running OS (for example like in sleep mode, which means that while the user is in one OS the other OS is dormant or simply the user can switch between the OS's after entering sleep mode), or for example by having preferably separate swap files so that both Operating systems can be actually running at the same time -which means that preferably one or more additional OS elements are operating below the two (or more) Operating Systems and are in charge of the resource sharing between them. As explained above, this is preferably done together with copy on write so that only the changes between various instances of the same OS
are saved, and of course it can be done more efficiently with a processor that is especially designed to support it, such as Intel's Vanderpool, but using such special 20/ 10/05 Yaron Mayer 91 / 186 element or elements bellow the running Operating Systems can work also with a normal processor. Vanderpool uses an additional more privileged ring below ring 0 for the control system below the OSs, however this was described for example in US applications 10/301,575 and 10/644,841 by the present inventor a long time before Intel started to talk about this (first priority was on April 2 and April 8, 2002). In addition, as explained in those applications, there can be a special more privileged area or areas within ring 0 or for example below ring 0. In other words, there can be even one or more additional higher privileged areas or rings or sub-rings with even higher privileges, for example in addition to ring -1. For example (instead of one control system, for example in ring -1, which for example can take care of both running for example 2 or more OSs or virtual machines which the user can switch between and the security for each OS or virtual machine and/or also the security within each OS or virtual machine, such as for example enforcing automatic segregation between programs within that OS), there can be for example a separate control system for each OS (which for example runs below the OS, for example in ring -1, and for example takes care of the security within that OS, such as for example enforcing automatic segregation between programs within that OS, and/or for example takes care of any other desired control system below that OS), and for example an even more privileged control system, for example in ring -2, which for example takes care of the context switching and/or security between the OSs.
However, since typically the user might want to enable at least some file and/or directory sharing between the various OSs, it is more preferable that the same control system and/or security system indeed handles both the security between the OSs or virtual machines and within them, since otherwise a security system which runs below the OS but is not aware of the context switching between OSs might for example become confused or even for example might misbehave for example by assuming that some change (made for example by another OS) was created by hardware malfunction or unknown type of attack and for example might restore it automatically (for example if it guards changes in some files or directories with redundancy), or for example another OS might for example damage a special file system run by the security system of a separate OS or for example confuse the user for example by showing him special files and/or directories which are used by the security system of the other OS but for example are not normally visible to the user.
Another possible variation is that for example various protocols are defined for better cooperation between the OSs and/or their security systems so that for example there are standard mechanisms for letting each guest OS and/or its security system know that it is being used in a mufti-OS environment and/or for example which directories and/or resources can be accessed by other OSs and in what type of access. Another possible variation is that the security systems ask the user before making such automatic restores and so the user can easily know for example which changes he/she made from another OS wants to keep. Another possible variation is that in this mode for example certain fiznctions are automatically disabled or are available to only one OS (for example by choice of the user and/or by automatic choices), for example when there are problems of allowing two or more separate processes to access the same hardware at the same time. Although there are for example systems that allow the user to run a window of another OS by emulation, this is much more efficient.

20/10/05 Yaron Mayer 92/186 Another possible variation is to add to the computer various sensors that can automatically monitor the condition of the user, for example by various biometrics, such as for example sensing the user's heartbeat and/or respiration (for example by a special remote microphone), skin temperature (for example through sensors in the keyboard and/or mouse) etc., so that for example if the system senses a serious problem preferably the OS or a special application can for example warn the user and/or for example call directly one or more emergency numbers and request assistance for the user, for example through synthesized speech or SMS or for example use Instant Messaging. Another possible variation is that this sensing is not limited to when the user is sitting near the computer, so that for example there are various additional sensors for example in the room or in the house or for example some sensors which are worn by the user (for example if the user is at known risk) and preferably connect automatically to the computer for example by UWB or Bluetooth or other short range wireless connection. Similar systems can be very useful for example with various special sensors for example in trains or in cars, since for example if the train's driver has a heart attack and does not press the breaks before collapsing it can cause a dangerous accident. So preferably the driver's cabinet contains various biometric sensors which can work for example as described above, and/or for example additional sensors such as for example sensors in the seat or on various elements which the driver is supposed to interact with, and preferably the train's computer has also sensors (such as for example radar and/or ultrasound and/or video cameras) which can sense for example if the train is moving too fast toward a too near obstacle and then for example can preferably apply the brakes automatically and/or sound a warning. Although there are for example some trains which contain a 'dead man switch' which means that for example every 30-seconds the system indicates a sound and/or light and the driver has to press some switch to show that he/she is still alive and if he fails to press it a stronger warning is indicated and if he still fails to press it the train automatically stops, an automatic sensing system as described above is better since it can be much more convenient to the driver and it can preferably sense problems immediately without having to wait for the next activation. Another possible variation is that the system includes for example also one or more video cameras that constantly monitor the driver's cart and for example the computer's system can automatically analyze for example un-normal positions of the driver and/or for example the image is broadcast automatically for example every few seconds to various ground stations.
Similar sensors can be used for example in cars, so that for example if the computerized system senses that something is wrong with the driver (for example the driver has fallen asleep or is not feeling well, which in the case of a car can also be based for example on sensing erratic behavior of controlling the car - for example erratic movements which seem to ignore the track) it can for example try to alert the driver by sound and/or for example jolting or rocking the driver's seat, and/or for example can apply an automatic system which can preferably sense the contours of the road and/or the white lines and/or the position on the road and/or the surrounding vehicles and/or other objects and can preferably automatically slow down and move the car sideways and come to a safe automatic stop on the margins of the road and/or for example issue an automatic call to emergency services. In addition, for 20/10/05 Yaron Mayer 93/186 example in cars that have various sensors against collisions (for example radar, visual, ultrasound, etc.), preferably the car has also sensors between the front and back wheels, so that the car can also preferably instantly warn the driver and/or automatically take over for example in case an object, for example a kid, gets between the two sets of wheels. Another possible variation is that for example the car's sensors of impending collisions can be left active at least partially (preferably with low energy consumption) even for example when the car is parking (for example by activating some radar and/or other signals and/or sensors for example every second or other convenient interval at least for short range), so that if the car senses for example an impending collision preferably it can for example automatically broadcast a warning for example by automatically sounding the horn and/or for example by automatically flashing lights (and/or for example automatic wireless communication). Another possible variation is that is such cases the car can also automatically activate for example one or more video and/or still cameras and thus can for example keep photos for example if another car hits the parking car, so that the hitting car can preferably later be identified with proof.
Another possible variation is to add for example preferably automatic preferably smart temperature and/or light permeability control to cars, for example while they are parking and/or while people are in the car, preferably by computerized control.
Preferably for example during parking preferably the car's computer system (and/or for example an additional preferably computerized system, which can for example be installed as an add-on in existing cars) preferably uses automatic heat and/or light sensors to decide what to do and preferably uses low energy methods and/or for example operates when the user is about to enter the car and/or also when people are in the car. This can be done for example in at least one of the following variations:
Preferably the car uses smart windows which can be automatically adjusted for example for heat permeability and/or light permeability for example mechanically and/or electronically (for example by their own nature and/or by command). The idea of using smart windows also in cars is not new, but what is missing is automatic smart control. Preferably electronically controlled smart windows are used, such as for example the already existing Suspended Particle Device (SPD) windows, which are comprised of two panes of glass sandwiched around a special film containing a liquid suspension, as described for example in http://64.233.183.104/custom''a=cache:IBOAtitTIBUUJ:
_wvv~~.sun-sentinel.com/technolo ylchi-windows,0,2384687.story+
"/o22Scientists+see +improved+windows'%22&hl=en&ie=UTF-8. In the liquid suspension are microscopic light-absorbing particles that are randomly scattered to block the passage of light for making the window dark. When an electric charge is applied the particles line up in tight rows, allowing light to pass through for making the window transparent. SPDs also allow a range of transparency, permitting for darker or lighter window tints depending on the amount of voltage applied. Research Frontiers Inc., (RFI) of Woodbury, N.Y., holds over 360 patents relative to SPD technology and is actively licensing the technology to film and glass manufacturers worldwide. Unlike other smart 20/10/05 Yaron Mayer 94/186 window technologies it's durable, cheap and relatively easy to make and apply, and it is expected to cost around $15 to $30 per square foot, compared for example o $80 to $150 per square foot for electrochromics or LCD windows.
This is also much better than LCD windows, since LCD windows typically enable only a dark and a bright state without in-between states. SPD windows are capable of going from completely dark to clear almost instantaneously. In darkened mode, the glass appears a very dark blue (Chicago Bears blue) with lighter tint levels having a slightly blue cast. However, a 100-square-foot window uses about the same amount of electricity as a 60-watt light bulb, which means that preferably the car is able to apply smart energy considerations as explained below. Another possible variation is to use for example the smart windows described in http:,!/www.nature.com/news/2004 /040809/pf/040809-2 pf.hixnl, published online on August 10, 2004.
According to this article, a team of researchers has created a window coating that reflects the Sun's heat without filtering out visible light. At lower temperatures the new coating allows through both visible and infrared rays, just like normal glass, but once it heats up above 29°C, its atomic structure changes and it begins to reflect heat. It was invented by chemist Troy Manning together with Ivan Parkin at University College London and is made from vanadium dioxide mixed with 1.9% tungsten metal, and apparently they have been able to change the mixture to reach also lowers threshold temperatures, even a slow as 5°C, which means that various glasses can be prepared according to the desired threshold. However, such a window is problematic for computerized control since it does not respond automatically to computerized control, so preferably such a windows is used in combination with a window than can change on command, such as for example the SPD windows, so that for example the glass contains for example both the coating needed for the Automatic changing by temperature, and an inner layer of the material needed for SPD. Another problem is that since car windows are usually specific for each car model, thus creating problems for mass production, and since the solution is preferably made available also for existing car owners, preferably the vanadium dioxide mixture (and/or for example other mixtures with similar properties) can also be marketed for example as a spray or other means which the user can use to coat exiting windows and/or for example similar spray or other coating means which can be sold to car manufacturers for easy addition to their production lines. Similarly, the SPD windows could have an even bigger problem in creating two layers for car windows, since that might mean having to create for example two layers of half thickness for each type of window glass for each model in order to add the SPD layer in between.
Therefore a better solution is that preferably for example instead of two glass layers only one layer of glass is used, and preferably the SPD layer is coated for example on the inside or outside of the glass (but more preferably inside), and preferably an additional transparent coating is added over the SPD, preferably to insulate and protect it. This additional layer can be for example based on some transparent nylon or plastic, which is also preferably electrically insulating, since electricity needs to be run through the SPD
layer.
The means for adding these two layers (the SPD layer and the additional cover 20/10/05 Yaron Mayer 95/186 layer) can also be sold for example to car manufacturers for preferably easy integration with their production lines, for example in the form of a spray, and/or for example sold also to existing users, preferably as a kit, preferably with some means for ensuring that the layers have been coated in a sufficiently thick and regular way, and/or sold at least to garages or other professional services which can preferably easily add these coatings to existing car windows. Another possible variation is that for example the vanadium dioxide mixture layer (and/or for example other mixtures with similar properties) is preferably also covered with an additional transparent protection layer for example to protect it from peeling off or being scratched. An article in Israeli news paper Maariv from Aug. 25, 2005 suggests using in cars windows that change light by changing polarization but does not show any enabling way to do it. This would be problematic since car windows are rectangular and the short article in Maariv does not refer to this problem or show how to do it in practice. So preferably if such a solution is used, preferably it is done by adding for example between two layers of glass (in which preferably only one of them is preferably polarized) a third preferably circle shaped polarized layer which can preferably be rotated preferably by electronic command between the two external layers, thus preventing the user from being physically disturbed by the rotation. However, this means that only part of the window can be darkened this way. Another possible variation is for example to use more than one such circle in the inner layer, so that better covering is available (for example 2-10 or any other convenient number), and/or using for example more than one layer, so that there are preferably much less holes between the circles, for example by partial overlap between circles and/or for example enabling partial overlap between the circles within the same inner space, so that for example two or more preferably thin inner circles can be rotating partially on top of each other. This material can be for example based on preferably thin plastic compared to the car's glass, such as for example the material from which polarized add-ons for sun glasses are made (for example lmm or less in thickness). The control of the rotation of these circles can be for example based on small electric engines. (Of course a circular shape is just an example and other shapes can also be used, such as for example elliptical shapes or for example mufti-rib shapes). However this solution seems more crude and probably less efficient than for example SPD glass or similar solutions. Another possible variation is to use for example one or more inner layers which can be for example moved up or down independently of the Window itself (but preferably not higher than the window), so that for example 1-4 or more inner layers coated with different combinations of vanadium dioxide can be preferably automatically moved up or down, each suited for a different threshold. Similarly another possible variation is that for example an inner layer with the SPD material can be for example automatically lowered up or down so that for example for keeping the windows clear during parking (for example in the winter), the car preferably simply lowers them, thus reducing any energy requirements to 0. On the other hand, for example in the summer the car might for example most of the time decide on maximum darkness, which means simply automatically turning off 20/10/05 Yaron Mayer 96/186 the energy to the SPD layer during parking. However, if for example the car decides on an intermediate state, preferably it can be made for example by either pulling the SPD layer partially in or out of position, and/or activating the SPD control for a certain intermediate level of dimming. Another possible variation is to simply use for example a light opaque layer of cheap material or materials (for example thin layer of plastic) which the car can automatically move up or down during parking, so that for example during parking if the car and/or the user decides on heat reduction, this layer is preferably automatically moved up. In this case this layer can be for example on the inner side of the windows without being between two glasses, since it would be normally used only when parking, thus not disturbing the passengers or driver when they are in the car. Another possible variation is that such a layer might be moved also from other directions but moving a thin layer automatically up and down for example from the same inner space in the door when the window is, is of course much easier and requires little change in car design. Of course, for example while parking, the car might decide automatically to what height to pull this layer up or down, thus for example reaching any range of desired heat penetration in-between states. Another possible variation, for example if 2 or more glass layers are already used, is to use for example a combination with a low-a type of glass such as for example the type described in http://www.ener~yde~ot.corala~lcllibrary%newpages!effwindo.asp, which can reflect for example between 70%-75% of the heat that would normally go to the outdoors, back in, during winter. However, in the Summer, according to that article, "low-E glass reflects about 25% more heat back outside than a single-paned window and 11 % more than a standard double-paned window.
The U-value for a double-paned window with Low-E glass starts at about 0.4.
If a Low-E film is suspended between the glass panes then U-values approach 0.333 and even more of the harmful ultraviolet rays are blocked. A newer type of Low-E glass, often referred to as 'southern' Low-E glass, is designed to be most effective during the summer, by reflecting much of the sun's heat away from the inside of the home. Very often Low-E glass is combined with gas filling for U-values as low as 0.15".
2. In some types of smart windows energy is required to keep the window dark and in some energy is needed to keep the window open to light, however since either way the car might need to choose levels different from the lowest energy state, preferably the computerized system also senses automatically the power level of the car's battery and preferably if the remaining energy goes down beyond a certain level then preferably the system can automatically for example reduce the operation of the automatic heat control and/or for example stop it and/or for example automatically start the engine preferably for a short time to charge the battery. Of course this could create dangerous air pollution if done in a closed space, but since the car preferably uses automatic sensors there is usually no problem since the car would normally have no reason to activate these means anyway in a closed space, such as for example in a garage on in an underground parking place, unless for example pre-heating is used automatically. Preferably the car senses automatically according to the 20/10/05 Yaron Mayer 97/186 temperature and/or light level and/or other measurements what is most desirable. For example in a cold winter day preferably the car automatically brightens the car windows while parking, preferably till the desired temperature is reached, and for example on a hot summer day preferably the car automatically darkens the windows while parking. (However, for example on a snow day darkening the windows might for example be an advantage because darker windows become hotter in the Sun and thus can for example better melt for example ice or snow that might otherwise accumulate on the window, however on the other hand if the snow has already accumulated then melting a the snow will create more ice). Or for example on a mildly cold day if the car is in a shaded parking place then preferably the car might automatically brighten the windows or for example leave or change them into an intermediate state and/or for example if the car is in the Sun then automatically the windows are made darker. Although for example a heat sensor within the car might be sufficient for example for deciding if to make the windows brighter or lighter, using for example also a light sensor can be important and can improve the decision making of the car, and also it can help for example for determining if the car is in a closed underground place or closed garage indoors, which means that for example the car must know automatically not to activate the engine for recharging the battery, since that could create dangerous air pollution. However, with a light sensor alone there is a problem of determining for example if a darkness is due to being in a closed place or due to night time, so the car preferably uses also a real-time digital clock which takes into account also the time in the day. In addition, preferably the car uses more than one temperature sensor, since for example the temperature inside the car might be considerably higher than the outside temperature, so preferably the car has at least one sensor in the car and at least one outside, in order to be able to make also smarter predictions based on outside temperature and not only depending on the internal temperature sensing. Another possible variation is that for example the car automatically adjusts the light permeability of the windows and/or the heat permeability of the windows when people are in the car, for example according to the operation of the air conditioner, so that for example if the air conditioner is set to cool, the car preferably automatically also reduces the heat permeability and/or light permeability of the windows and if it is set to heat then preferably vice versa (However when people are in the car of course preferably the light permeability is not reduced below a level that would cause visibility problems). Preferably the windows are capable of changing in more than one dimension, so that for example the heat and light permeabilities can preferably be controlled at least somewhat independently, so that for example the car can change the windows independently for visibility and for heat considerations.
3. Preferably the car can automatically activate for example the fan when the heat exceeds a certain temperature, so that preferably fresh air is automatically circulated through the car and the warm air gets thrown out of the car.
Typically a car fan without activating the air conditioner can for example consume approximately 40 watts, which is much less then if for example the 20/10/05 YaronMayer 98/1$6 air conditioner is activated, and could run for example for 12 hours or more before draining the car's battery. However this is of course much less efficient unless combined with much smarter methods, which preferably enable the activation of this only when the user is about to return to the car or for example this is automatically stopped if the battery goes below a certain level, as explained above, and/or the car's engine can be for example automatically started preferably for a short time for recharging the battery and then stopped automatically, as explained above. These solutions are preferably applied also for example to SPD windows or other solutions that consume energy unless they are is the state that requires no energy, since if the glasses of the car windows for example altogether have a size of about 3.15 square meters (which is about 33 square feet), about 20 watts of electricity is required for example for keeping them clear.. However, as explained above being able for example to also automatically move the SPD layer in or out of position for example while parking is better. Another possible variation is that for example at least one additional fan, preferably with at least one additional tunnel that can allow air in or out of the car, can be used, in order to improve the circulation of the air. This additional fan can be for example on the back side of the car, so that for example preferably both fans can work at the same time, preferably one for pushing fresh air into the car and one for pulling air out of the car.
4. When the user leaves the car preferably he/she can set a timer which tells the car approximately when he/she is about to return. This can be for example by rotating a mechanical timer button or for example pressing or rotating a button which controls a digital display, and/or for example the car can ask the user automatically, for example by voice communication when he leaves the car when approximately he/she is about to return, etc., and then for example he she can set the timer manually and/or for example also by voice command, which the car preferably acknowledges to make sure it got it correctly.
5. Another possible variation is that the user can for example use a remote car control which can preferably send a message to the car for example from a distance of preferably up to a few hundred meters or more (or any other convenient distance) to automatically prepare the car for entry, for example by reaching a pre-defined temperature (which can mean for example heating in the winter and cooling in the summer, etc.). This can be done for example by a radio signal from the remote control and/or for example by cell phone communication, etc.
6. Another possible variation is to use similar methods for example for automatically dimming the light when the sun is disturbing the driver, so that for example light sensors preferably automatically make the appropriate window or part of it darker if the car senses that the sun is blinding the user directly, and/or for example doing this automatically also for passenger windows. Another possible variation is that for better efficiency preferably this is combined also with sensing for example the position of the driver 20/10/05 Yaron Mayer 99/186 and/or the passenger and/or for example being able to darken or brighten one or more smaller specific areas in the window (For example by using SPD
windows or LCD windows with smaller controllable areas that can change independently), so that for example the car can automatically darken for example only a smaller square near the point where the sun is seen and for example leave the rest of the window brighter.
7. In addition, preferably if the car can for example sense, for example by motion detectors and/or weight detectors and/or other detectors that for example a child or animal has been left in a closed parked car, it can for example start making sound and/or visual warnings and/or for example can automatically activate cooling controls for example more vigorously, such as for example also the air conditioner itself at least once in a while when needed and/or for example automatically opening one or more window at least partially, etc., and/or for example sending an automatic cellular phone message to the driver, etc. However, preferably the car can of course differentiate between a situation in which for example a child or animal was left by mistake in the car and a situation in which users are normally sitting within the parked car - for example by assuming that if the key is still in the ignition keyhole then the users are in control of the car, and, as implied above, manual override is preferably possible at all the states. So preferably if for example the key is in the ignition keyhole and there are people in the car while the gear is in parking then preferably nothing is done and/or for example only automatic heat permeability controls are used without automatically making the windows darker (and/or for example the user can allow the car to that also automatically for example even when there are people in the car together with the key). For example when the car is in parking without people inside then preferably both automatic heat permeability and/or automatic windows darkening is used if needed (for example according to the actual temperature and/or light conditions and/or time of day), preferably by default, preferably unless for example the users for example change some switch which overrides partially or in whole such automatic controls for example in general or for times of parking.
Of course, various combinations of the above solutions can also be used.
Another possible variation is that for example when the gear control lever is in Parking state the car can preferably automatically activate also the handbrakes (for example every time or for example only if the car is for example in a steep slope, which can be sensed for example by an automatic horizontal balance sensor) and preferably when the gear control is removed out of parking state preferably the car can automatically also release the handbrakes. However, if for example the car is on a steep slope, automatically releasing the handbrakes at the wrong time might be dangerous, so preferably in such cases it is released automatically for example only after the gear is for example in Drive or in Reverse and the driver presses the gas lever, and/or for example at least in some cases a warning is automatically issued to the driver to release it instead of automatically releasing it. And of course if such automatic 20/10/05 Yaron Mayer 100/186 activation and/or release of the handbrakes is possible, preferably the deriver can also cancel this automatic mode, for example by changing some switch.
Another problem which cars is that for example the upper part of the engine is oiled automatically only when the user starts the engine, which is too late and causes the engine to be gradually damaged each time for about 1-2 second when the engine is being started, since it takes about 2 second for the oiling to reach the engine. Fiat solved this by activating the oiling when the user starts turning the key, however this still is not reliable since many times the user turns the key too fast and thus still starts the ignition before sufficient oil reaches the engine (in addition they added a mechanism for taking care of the excess oil while the engine is still not running).
Therefore a better solution is to preferably use earlier sensing, such for example start oiling when the driver opens the door and enters or for example when he/she sits in his/her seat (for example by weight sensors and/or electromagnetic sensors and/or movement sensors) or for example when his/her hand moves toward the ignition keyhole (for example by infrared short range sensor, or any other relevant sensor). This is more preferable than sensing for example sitting, since it might take sometimes even a few minutes or more, or he/she might even for example prefer to remain parking for some time. On the other hand, after the driver inserts the key he/she usually starts the engine almost immediately, however he/she might for example just rotate the key partially for the electricity and stay parked for a while.
So most preferably the sensor is based on the driver nearing his hand to the key (preferably for example by infrared sensor as explained above), since that is the most reliable predictor, since the driver won't normally hold his/her hand there unless he/she indeed wants to start the engine. Another possible variation is that preferably the system can also automatically stop the oiling - for example if the sensor is activated but more then a certain time passes and the engine has not been started yet (for example 30 or 60 seconds or any other convenient time).
However, preferably this deactivation is not used if the user's hand itself is sensed near the ignition keyhole, since when there the chance is very large that the user will start the engine any second. Another possible variation is for example when an RFID
immobilizer is installed, or with any other RFID for example on the key and/or keyholder and/or remote control, sensing automatically when the user's key is close enough to the ignition keyhole, however, as explained above that is less reliable than sensing the user's hand at that position. However redesigning the engine for enabling the circulation of the extra oil even when the engine is not yet running might be expensive. Therefore another possible variation is for example to add one or more preferably small oil containers preferably above the engine, which are preferably automatically full all the time or at least when parking, and when the user starts the engine preferably the top container or containers are automatically opened preferably instantly and pour their oil on the engine until the oil from the normal pump reaches the engine. Another problem is the inefficiency and waste of gas and air pollution when the car stops or moves very slowly for example in red lights or in traffic jams. This has been solved in hybrid cars (in which the car has an additional electric engine with special batteries for it) or mild hybrid cars (which use the alternator and the normal car battery for a short electrical push when the car begins to move after a stop) by automatically switching to electric engine when the car 20/10/05 Yaron Mayer 101/186 strops or moved below a certain speed. So in these cases preferably the system oils the engine automatically a short time before switching to the combustion engine.
Another possible variation is that instead of or in addition to hybrid or mild hybrid solutions, preferably when the car stops and/or when it starts moving sufficiently slowly preferably the engine can automatically go down to a very low speed in which very low energy is used and preferably exhaust levels are very low, but preferably this speed is sufficient to enable the car to preferably instantly or almost instantly go back to normal speed when needed.
Another problem is creating smarter preferably computerized vehicles which can preferably use virtual tracks and thus can for example replace LRT (Light Rail Transit). There is for example a new smart 2-part or 3-part articulated bus called Phileas, which is now in experimental stage in Netherlands, which can follow a virtual track marked by a magnet every 4 meters, which identifies the magnets by sensors, and each set of wheels is steer-able, so that each part of the articulated bus can more easily maneuver into the desired position. This can save a lot on infrastructure, however since there are at most 3 parts per bus, in terms of cost per passenger, in high demand routes this can still be operationally more expensive than running a light train (after the rail already exists). The Phileas is intended to be a hybrid bus, thus saving on gas and pollution. Another smart computerized solution is the Civis bus, which is guided by a camera at the front of the vehicle, which follows special stripes at the center of the traffic lane, and this detection device works up to a distance of 30 meters. The driver can take over the control at any moment. The Civis (which is 18.5 m long) will operate in Clermont-Ferrand and Rouen in France, and in Las Vegas, USA. However, the Civis uses a lot of fuel due to its considerable weight (17 tons), and another disadvantage is that the guidance is less reliable if the detection is based on fewer than three guidance stripes.
In Netherlands the authorities decided that the visual tracking system is not sufficiently reliable, due to rain, autumn leaves, snow, and the low angle of the sun, and that is why they decided to use instead the Phileas. Both of these buses are examples of BRT (Bus Rapid Transit) systems. A better solution would be preferably to enable more parts for the articulated bus and/or additional coaches, and/or preferably enable an even cheaper virtual rail, which will still be preferably reliable enough, and/or preferably enable greater flexibility in deviating from the track. This is preferably done by preferably giving each coach and/or articulated part the ability to preferably automatically follow and imitate the same steering movements of the driver in the first part. This can be done for example by computerized control and communications, so that preferably each coach and/or articulated part preferably knows, preferably exactly, the distance (preferably for example in terms of number of wheel rotations) between it and the previous part and/or between it and the first part, and preferably all the steering actions of the driver of the first part are preferably automatically transmitted also to the other parts (for example by digital communication), so that preferably each articulated part and/or coach can preferably automatically repeat the same steering actions at the same position in the road (for example by doing exactly the same as the driver after the correct number of wheel rotations has occurred). This can enable easily using more than 2-3 parts, such as for example even 4-10 or even more articulated parts or coaches. However, such a 20/10/05 Yaron Mayer 102/186 method alone would have the disadvantage that various deviations might accumulate after a while if there is no self correcting direct feedback.
Therefore, preferably this system is preferably combined with automatic ability to sense the correct position relative to the virtual track and/or automatically correct the accumulated deviation, preferably compared to the first part (i.e., preferably the deviation is corrected to be the same as the deviation of the 1 S' part from the virtual track, since the driver would normally know best the desired deviation, even though another possible variation is for example to correct the deviation compared for example to general guidelines regardless of the deviation of the first part, but that is less preferable since the driver might have for example deviated on purpose for various reasons, such as for example a temporary problem on the track). This is preferably done for example by visual sensors that can automatically sense the marked trail (for example by video cameras). This has the advantage that it is cheaper than the Phileas method (since the track has to be marked anyway also for humans to know the track of the virtual railway, and thus no additional magnets or other indications are needed), and secondly, this is now much more reliable and less vulnerable to problems even when the marks are for example temporarily partially covered for example by leaves or by snow, since the parts can follow the first part's driver's steering movements automatically and thus the visual tracking can be used for example to correct errors for example once in a while and can be much more robust for example in cases where the marks temporarily cannot be seen.
Another advantage is that this way for example there can be more than one such bus line so that for example each line has a different route but for example at least some sections are shared by more than one line. This would be very difficult in a system that is based only on following a marked rail without being also automatically able to imitate the driver's steering, since the other parts would not know which of the routes to follow for example after the vehicle exits the section of the route which is shared by more than one line. Another possible variation is to use for example a different color (and/or other different visual indication or indications, such as for example different line widths and/or patterns and/or other visual means and/or other means) for each line so that preferably the sensors of each vehicle can preferably also be instructed to follow the correct marking. This is better than using for example the Phileas magnets every 4 meters, since these magnets would make it more difficult to mark different routes (unless for example each such magnets can also have a special pattern or fingerprint and for example more magnets are used at least in shared sections, which is preferably done anyway, for example also in order to prevent the system from becoming confused for example if other magnets or magnetic fields or electromagnetic fields are in the area). Preferably there are multiple sensors on each part and preferably the part's computer preferably takes into account the average deviation from the marked track so that if for example the track is temporarily not visible then preferably it keeps for example following just the steering actions preferably until it becomes visible again, and also it can preferably for example understand for example that according to the steering moves performed it couldn't have moved for example more than a certain distance from the track, for example in case part of the mark is covered and for example the sensor for example perceives by mistake another mark, for example on the other side of the road, and/or for example it can see that according to the current angle between it 20/10/05 Yaron Mayer 103/1$6 and the first part and/or the previous parts andlor the new angle that would be created by moving to that mark this cannot be the correct mark. Such a system is also much more flexible than a light train because if for example there is a problem in the installation pipes below the road (which is the reason why so much money is spent on moving the pipes sideways before putting the tracks so that they are not under the tracks), and/or for example in case of temporary road blocks, under-road piping repairs, or other problems, preferably the driver can for example easily deviate for example 1 or even more meters from the normal route. Preferably the system also transmits automatically to the other parts the current deviation between the first part to the virtual track, and thus preferably automatically preferably each part can adjust its deviation to the deviation that was broadcast by the first part, preferably when reaching the same position in which that deviation was relevant.
Another possible variation is that the driver can even deviate completely from the marked track when desired (for example if there is a suspect object that needs diverting traffic away), and then preferably the driver can for example send the other parts (for example by pressing a button or moving a lever) an automatic command to temporarily ignore the marked virtual track altogether and just follow the steering movements of the first part and/or at least temporarily use other means for correcting accumulated deviations. Of course various combination of the above and other variations can also be used.
Another possible variation is that for example in straight sections the driver can for example issue a command to the other parts to align themselves automatically so that they become preferably exactly straight after the first part and/or for example each part after the previous part, and/or for example the parts can decide do this automatically for example when the first part transmits that the steering position of the driver's wheels for example are exactly balanced, thus indicating a straight line.
For the creating the actual alignment preferably the parts can for example use visual means such as for example video cameras and/or other sensors in order to measure for example the difference in the distances between each part to the previous part on the right side compared to the left side, and/or for example the hinge or hinges between each two parts can automatically measure and report the angle in which it is currently in. For making the actual correction preferably the parts use of course the ability to steer preferably each wheel or each pair of wheels independently. This is another way of getting rid of the accumulated deviations. This way the need for marking the virtual track or depending on it can be even further reduced.
Another possible variation is that for example even without a visually marked track the first part can for example broadcast to the other parts at least once in a while (for example every 30 seconds or for example a few minutes or any other convenient interval, or for example when the first part senses conspicuous elements in the contour which can be used as good reference points) various automatic measurements of its position relative to the road or to the surroundings or to said conspicuous elements, for example by radar and/or the visual imagery and/or other sensors, and thus for example the computerized system on each part can for example compare the data it received from the first part with its own measurements when it reaches the same spot and thus automatically calculate the amount of the current deviation. Like in the adjustment according to the marked virtual track, in this case 20/10/05 Yaron Mayer 104/186 also preferably the system automatically takes into account for example the reasonable possible deviation for example according to the recent steering maneuvers performed and/or according to the current angles, so that preferably it will not make a correction for example if the projected correction means significant deviation from the current angle and/or position. Of course various combination of the above and other variations can also be used.
Of course, if for example 1 or 2 electrical wires are used on top of the route for supplying electrical power to the smart bus, then preferably this can be used is addition to or instead of the visual tracking, and this means that preferably each part has at least one or more arms which connect to the top electrical wire or wires, and preferably these arms are flexible and extendable, for example by being able to change their angle and/or preferably automatically become shorter or longer as needed (for example like a foldable antenna, for example of the type that uses movable tubes within each other or for example like multiple connected X's which can become shorter or longer by changing the angle of each X), so that preferably they can work OK for example even if the part deviates for example even 1 or a few meters (or less or more) from the normal route, and preferably each such arm also automatically senses the distance between the part and the electrical wire.
Another possible variation is to add for example to each part also automatic impending collision detectors (for example visual and/or by radar and/or laser and/or any other known means) for example sideways and/or also forwards and/or backwards, so that preferably, for example even when the part automatically adjusts its position, it preferably automatically avoids moving in a way that would cause it to collide into something. Preferably such sensors are also added for example between the wheels, so that preferably they can detect also for example if a child or an animal runs or is about to run between the wheels and can preferably automatically take evasive actions, such as for example maneuvering sideways to avoid the collision and/or for example causing automatic braking or at least slowing, etc. However, the visual sensing and automatic correction in combination which the automatic imitation of the steering actions of the driver is just an example, and this can be used for example also in combination with any other sensing methods, such as for example in combination with the Phileas, since the automatic imitation automatically makes it more reliable to use the feedback sensing, since preferably the sensing is needed just for correcting deviations at least once in a while, and preferably in all of these variations preferably the deviation of the first part from the route is preferably automatically sensed by the first part and preferably automatically conveyed by communication also to the other parts. Another possible variation is that for example in systems like the Phileas, even without steering motions imitation, preferably the first part can automatically for example instruct the other parts to repeat the same deviation of the 1 St part, so that for example if the driver deviates for example even 1 or more meters from the normal tracks for example due to some problem, preferably the other parts can automatically try to reach the same deviation (for example at least in one of the possible operation modes), preferably at the same spot, preferably for example also by counting wheel turns. So for example at stations with special elevated platforms preferably the driver can for example instruct the other parts to alight themselves automatically with the exact markings (and/or for example there is 20/10/05 Yaron Mayer 105/186 a special signal at such stations with issues that command automatically to the parts, for example by wireless and/or special magnetic patterns and/or for example special optical marks), and for example during travel or in normal stations without elevated platforms preferably the parts are automatically in the mode that imitates the deviations of the first part (with or without imitating the steering movements of the driver of the first part. However even for example in a system like Phileas, adding for example also the ability to imitate steering motions means very little addition in costs (since it is mainly some additional communication and some additional computer control), and has the advantage of for example enabling the bus much more easily for example to temporarily deviate entirely from the marked route and/or for example enables much better control when for example more than one line share a common section, as explained above.
Of course various combination of the above and other variations can also be used. Of course, like other features of this invention, these features can be used also independently of any other features of this invention.
Similarly, preferably the car alarm is improved so that if the car is being stolen, preferably the alarm system automatically broadcasts a distress signal (preferably secretly), preferably through a hidden cellular device, and preferably indicates the position of the car for example according to GPS and/or for example according to the nearest cell positions in the cellular system. Another possible variation is that for example the car's system can automatically broadcast for example to parents if their son or daughter drive carelessly (for example too fast, or with too sharp turns and/or other indicators of dangerous driving which can preferably be automatically measured by the car itself). Although there are systems today where other drivers are asked to report this to the parents, it is much more preferable that the car's computerized system can report it directly by itself, preferably through the same cellular system that can be used also by the automatic alarm for example if the car is being stolen. In airplanes for example a similar system can preferably also sense for example if the plane has been hijacked, for example by sensing that the biometrics of the pilot indicate a different pilot (for example by automatic fingerprint readers in at least some of the controls which the pilot has to touch and/or for example automatic iris readers in the pilot's helmet) and/or sensing that unauthorized persons are in the cockpit (for example by sensing one or more people standing or sitting in a suspicious position for example for more than a limited period) and then for example the system can automatically send a wireless warning to various ground stations (and preferably also for example automatically open one or more microphones and/or video cameras which automatically broadcast what is going on in the cockpit and/or for example the microphones and/or video cameras normally broadcast the situation automatically every once in a while to one or more ground stations even when no special event is detected) and/or for example to security persons on the plane itself and/or for example the system can ask the pilot (preferably by a hidden method of for example displaying some digits which have a special meaning or for example flushing them. ,etc.) for identifying himself with a special code which only the legitimate pilot would know, and so for example if a hijacker is sitting in the seat instead of the pilot he would not know the correct 20/10/05 Yaron Mayer 106/186 response or even that he was asked to respond and if the pilot is still in the seat and the hijacker is standing next to him the hijacker preferably would not be able to see the signal (for example by using viewing angles which only the sitting pilot can see) or would not understand it and then the pilot can for example ignore it or enter a special code instead of his/her normal code that indicates that the plane has been hijacked and/or can convey other messages) and/or for example one or more controls in the cockpit can be used by the pilot to indicate various problems (which can preferably automatically activate for example automatic wireless warnings), for example by moving a lever into a special position which has no real mechanical function but is used in that position to activate automatic warnings, etc. In addition, in cockpits preferably the computerized system preferably has also means for automatically disabling hijackers, such as for example shooting tranquilizer arrows or needles (or for example electric shocker needles) at anyone who is standing at a certain height and/or who is standing next to the pilot for more than a certain time limit and/or who is standing at an unauthorized position (for example automatically or for example upon a hidden command from the pilot or for example upon hidden wireless command by ground control, preferably with high encryption that makes sure that only authorized commands will go through) and/or for example at the person in the pilot's seat (for example if the system has determined that the pilot is not legitimate) (and/or for example automatically electrically shocking the illegitimate person and the pilot's seat) and/or for example releasing a preferably odorless gas, preferably together with automatically activating an automatic pilot and/or for example activating a special mode which takes navigation commands from the secure wireless channel. In addition, preferably the cockpit is protected by a system of at least two preferably fortified preferably closed automatic doors, so that any person entering or leaving must first pass one door, then close it and then pass the other door. This is better then the prior art since in the prior art cockpits are either not protected by a fortified door or are protected by only a single fortified door, which is still not safe enough because a hijacker can for example run in when the door opens for the pilot to go to the toilet for example. If the passage near the cockpit is too small for adding normally the second fortified door then preferably one of the doors can be for example based on a rotating part-circle, or for example the two doors are connected with a foldable sleeve (for example like an accordion) which is pulled out only when someone has to pass through the two-door system.
Another possible improvement is for example improving the software in cellular phone networks and/or in the cellular phone itself so that for example the phone can preferably indicate to the user differently for example in cases of bad reception if the bad reception is on the side of the user or on the side of the other person with whom he/she is trying to talk. This is better than the prior art, in which the phone indicates when there is bad reception but does not indicate if it is caused by the side of the user or by the side of the other person. This information can be for example supplied to the phone by the cellular network and/or the phone itself can deduce it automatically for example from the quality of its connection with the cell in comparison to the quality of the connection with the other phone. Another possible variation is that for example the cellular phone can automatically indicate to the user the current level of radiation it is using, for example by some visual indication 20/10/05 Yaron Mayer 107/186 and/or for example by some auditory indication, especially for example if the radiation becomes higher than a certain limit. Preferably the user himself/herself can manually set the threshold. Another possible variation is that for example when there is a bad reception and the user for example prefers to talk later when the reception improves, preferably the user can tell the phone for example to indicate to him/her automatically when the reception improves (which can be done for example by a special ring). In this case, preferably the indication can be for example different according to the source of the bad reception, so if the source was the user's own phone then preferably the phone simply indicates when the connection with the cell becomes better, and if it was the other phone then preferably the cellular system automatically informs the user's phone when the reception is better, preferably according to the information it receives from the cells near the other phone.
Another possible variation is to create for example preferably computerized smarter water disposal systems in homes, so that for example if the user wants to user "grey water" (i.e. for example water from the shower) for example to water the garden, preferably the water goes through one or more sensors which can preferably (for example by visual and/or spectroscopic analysis and/or other preferably cheap and preferably instant on-the-fly means) find out for example if the water contains soap or is sufficiently clear, and thus can for example automatically toggle a valve which dispenses the water for example either to the sewer system or to the garden.
This can be very useful since for example when people take a shower it is undesirable that the soap reach the garden (which might even create the danger of polluting deep underground water reserves), but for example perhaps in 90% or more of the shower time the soap has already been washed away so the water is relatively clear, and thus this clear water can preferably be safely identified and used this way. Preferably this system lets the water pass through a temporary buffer in order to create some delay for deciding about the clarity of the water, however this may be unnecessary since for example decision according to visual analysis can be more or less instantaneous. Of course this can also be used for example in combination with one or more filters, Another problem is that for example in laptops typically the hard disk is significantly slower than in non-mobile computers, in order to save power and extend the number of hours until the batteries run out of power, which causes many programs to load considerably more slowly and to work slower when saving or reading files. However this creates the absurd situation that even though the laptop might be used most of the time on a desk, connected to the wall electricity outlet, than on the road, the disk still works at the low speed all the time. So this is preferably solved by using a variable-speed hard disk which can automatically work significantly faster when the laptop is connected to the network electricity.
So preferably the computer and/or the OS and/or the disk itself can automatically increase or decrease the speed of the hard disk according to sensing if the computer is currently connected to the network electricity or is currently running on the batteries. In addition, preferably the user can also for example press some button or request the OS to increase temporarily the disk's speed to the fast mode even when not connected to the external electricity (for example if the user needs something 20/10/05 Yaron Mayer 108/186 done fast, and then preferably the disk for example automatically reverts back to the slow speed for example after 5 or 10 minutes or any other convenient time, and/or for example according to the amount of power left and/or the current processes running, such as for example until one or more specific tasks finish).
Similarly, preferably when the portable computer is connected to the wall preferably the hardware and/or the OS can also for example automatically increase the speed of the CPU so that it consumes more power and works faster (and/or the user can for example request it explicitly for example at least for a short time even when the portable is not connected to the electrical outlet) and/or for example automatically (and/or by temporary user request) increase the brightness of the screen, and/or for example increase the speed and/or power consumption of other elements. In case the user requests the increase in disk speed and/or the other increases in power consumption explicitly while the computer is working on batteries, preferably the system resorts automatically to normal power consumption for example after a specific task is completed and/or for example after a certain time period (which can be for example set automatically or by the user). However, there is a problem that if the disk's engine is optimized to work efficiently when the power is on, it might work considerably inefficiently when running on the batteries, and if it optimized to run at high efficiency when running on the batteries it will not run efficiently when running for example in double speed when connected to the wall, thus increasing even further the heat dispersion problem in the laptop. In order to solve this, preferably the disk has at least two sets of engines or at least two sets of coils, which are used for example at different combinations in order to work efficiently in the low speed or in the fast speed (or other speeds if more than two speeds are available). In addition, preferably the disk's DSP automatically starts working for example at higher MHz when the wall power is sensed and/or for example more than one DSP can be used in order to speed up the processing. Another possible variation is using for example a disk with more heads on the same arm (which is typically moved in rotational movement part of a circle from the side, in a way similar to a phonograph's needle, typically by a voice coil), so that for example less movement is sufficient to cover the entire range. Although this means also having to move more mass, the arm is typically much more massive then its tip with the head, so adding one or more additional heads that point for example sideways, as shown in Fig. 5a below, will not change much. Another possible variation is adding also for example additional heads, so that for example there are more heads at the length of the arm, however that could create a linearity problem. Other possible improvements that should enable faster disks with very little energy increase or even a reduction in energy consumption are shown in Fig. Sb-c. Another possible variation is to use for example instead of moving heads some elongated multi-head structure which does not have to move at all, so that preferably the point of reading is chosen electronically, for example by varying the position of some crossing point electronically. (Such a solution of course could make also normal hard disks work considerably faster). Another possible variation is to use even more than two speeds or modes. Another possible variation is that for example the user can choose in advance when buying the laptop if he/she prefers to get the laptop with a faster speed hard disk (for example a double-speed hard disk that will cause the battery power to run out for example after 2 hours), or a slow speed typical laptop hard disk 20/10/05 Yaron Mayer 109/186 which is for example twice slower but allows the battery with average usage to last for example for 3 hours). 'The heat dissipation problem with the faster disk is preferably solved for example by activating automatically for example an additional fan when the disk works at the higher speed, and/or adding for example additional heat conductors between the internals of the laptop to its outer shell. Of course, various combinations of the above and other variations can also be used. Of course, like other features of this invention, these features can be used also independently of any other features of this invention.
Another issue that has to do with the reliability issue is the fact that when people use Windows for example from an Internet Cafe, many times they forget to close down open connections and/or at least they leave behind traces such as for example various cookie files, temporary files, history logs, etc. There have already been cases that users who subsequently used the same computer misused this for example to send a false suicide note or to send a false kidnapping message, etc.
Although some web based email sites, such as for example Hotmail and Yahoo, allow the user to mark when he/she is using a public computer, this relies on the user marking it and is anyway just a limited solution. Therefore, preferably the OS itself, preferably during installation, enables the administrator to specify that this is a public-use computer, and preferably this setting can be changed only for example with the original installation disk and/or with a password. Preferably when defined as a public computer, the OS itself indicates this in outgoing electronic communications such as for example emails, for example by adding this info at the socket layer, and preferably any session-related traces are automatically removed by the system for example after a short time of inactivity and/or if the user does not re-enter a password chosen by the original person that started the session, or for example such traces are not saved at all. Another possible variation is that in addition, for example the OS allows the user to send additional email messages from the same session only if he know the password entered or chosen by the user when he/she started the session, etc.
Brief describtion of the drawings Fig. 1 is a flow chart of a preferable way the Instant Reset and Instant boot are implemented.
Fig. 2 is an illustration of a preferable example of using a separate area with separate heads on the disk or other non-volatile memory for running a hardware supported rollback feature.
Fig. 3 is an illustration of a preferable example of using a separate area with separate heads on the disk or other non-volatile memory for running one or more hardware supported FAT areas.
Fig. 4 is an example of one of the best MIDI search engine's results (prior art).

20/10/05 Yaron Mayer 110/186 Figs. Sa-c are illustrations of a few preferable configurations that can considerably increase the speed of the hard disk, and preferably also reduce its power consumption.
Fig. 6 is an example of multiple checkboxes that can be marked or unmarked by the user.
Fig. 7 is an illustration of an improved computer case in which at least the area that supports the external CD and/or DVD drives is preferably rotate-able between two positions, so that the same case can be used either as a desktop case or as a tower case.
Important Clarification and Glossary:
All these drawings are just exemplary drawings. They should not be interpreted as literal positioning, shapes, angles, or sizes of the various elements. Throughout the patent whenever variations or various solutions or improvements are mentioned, it is also possible to use various combinations of these variations or of elements in them, and when combinations are used, it is also possible to use at least some elements in them separately or in other combinations. These variations are preferably in different embodiments. In other words: certain features of the invention, which are described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the invention, which are described in the context of a single embodiment, may also be provided separately or in any suitable sub-combination. Eventhough the preferred embodiments use mainly the terminology of Microsoft Windows, which is the most common and familiar operating system, the current invention can be used also in other operating systems, such as for example Linux, Macintosh, or other operating systems, even if they use different terminologies or different implementations of various features. "OS" as used throughout the patent, including the claims, means Operating System. FAT is short for File Allocation Table. However, as used throughout the patent, including the claims, FAT can mean also any other central data structure related to file allocation or management. "Scandisk" is the typical software used in Microsoft Windows to scan the disk. On normal runs it is used mainly to find inconsistencies between actual file sizes and the sizes reported in the FAT, but it can be used also for example for thorough scan to check for bad sectors, etc. As used throughout the patent, including the claims, "Scandisk" means either Scandisk, or any other similar software for checking the Integrity of the files or directory structures. "Image", as used throughout the patent, including the claims, means a non-volatile memory Image of the OS state and preferably also loaded programs, loaded drivers, memory status, status of peripheral devices, and/or any other data that is needed for creating a sufficient snapshot of the computer's condition, so that the computer can be instantly restored to that state and operate properly by restoring or using the data from said Image.
Throughout the patent, including the claims, whenever "disk" or "disks" is mentioned, it can be either a hard disk or hard disks, or any other type of fast 20/10/05 Yaron Mayer 111/186 access not-volatile memory, such as for example MRAM (Magnetic RAM), 3d Nano-memory chips, etc., and whenever heads are mentioned, it can be either read/write heads of disks, or any access mechanism for areas in other types of non-volatile memory, including when such access means do not require actual physical movement by a mechanical element.
Detailed description of the preferred embodiments All of descriptions in this and other sections are intended to be illustrative examples and not limiting.
Referring to Fig. 1, I show a flow chart of a preferable way the Instant Reset and Instant boot are implemented. When a boot sequence starts (1), preferably the system checks if there is an Image that can be used for instant boot (2), and, if so, performs instant boot by loading the Image into memory (4), otherwise it performs normal boot (3) and preferably saves the OS Image upon finishing the boot. The OS
Image preferably contains also all needed info about loaded drivers and/or other loaded software and preferably also for example about the state of peripheral devices, and/or any other data that is needed for creating a sufficient snapshot of the computer's condition, so that the computer can be instantly restored to that state and operate properly by restoring or using the data from said Image.
Regarding the state of the peripheral devices and resetting them, it can be handled for example in at least one of the following ways:
1. Preferably peripheral devices can be preferably instantly reset to their original status as it would exist after a normal boot, preferably for example by improving the standard protocol of drivers so that preferably each driver and device has a function for instant reset. Another possible variation is that preferably each device driver can preferably instantly query the device to see if it is in a proper state or needs to be reset.
2. Preferably the system constantly updates some area in non-volatile memory or for example some buffer or stack with the current state of the devices, so that it can be preferably instantly determined if any of the devices was involved for example in a crash or needs reset.

20/10/05 Yaron Mayer 112/186 3. Preferably at least one or more of the devices can be kept in its current state if the user so desires instead of resetting, so that for example if the user was in the middle of an Internet connection, the user can for example remain connected without having to reset the modem or Ethernet card and reconnect.
Preferably during or after the reset the system asks the user if he wants various devices to remain in their previous states or for example it is defined as default before any reset is needed and the user can change it, and during the reset the system decides what do to with such devices according to the last given instructions. As in clause 2 above, preferably this is done by automatically saving the current state of the devices in a buffer or stack.
4. If any tests or resets are still needed in one or more devices which cannot be done instantly, preferably the system can automatically decide which devices are not critical and can therefore be dealt with in the background after the user can already start working, in a way similar to postponing the disks scan, so that for example if it takes some time to check a CD device, preferably this is done after the user can already start working, since the user typically will not need to access the CD immediately. This option can be preferably used also in normal boots or instant boots or when restoring from hibernate.
5. Preferably when a Reset or an instant boot is performed, the image is first reloaded into memory including all the drivers as if they have already checked and/or reset the relevant devices, and THEN the drivers are instructed to activate the instant actual reset on the actual devices, so that the state of the device conforms to the state that the driver is supposed to represent.
6. Preferably the data on the status of any peripheral devices that can be saved in the image includes also any plug and play data for such devices and/or for any other card or relevant elements in the computer, so that preferably no plug and play automatic tests are normally needed during booting. Preferably at least during any boot or reset that is not based on turning off and turning on again the computer (cold boot) there is no need for any plug and play check for example at least of installed cards since the devices and cards that are coupled to the mainboard do not change, so preferably the system can automatically identify if it is being reset or rebooted without a cold boot, and if so, it preferably simply uses automatically the plug-and-play solution or configuration that was used last time as saved in the image. However the user might for example remove the keyboard or the mouse or a printer cable even without turning off the computer, so preferably the system checks if such devices have changed. Another possible variation is that even if a cold-boot is done, preferably the system can check instantly if the configuration of devices and/or cards and/or other relevant elements has changed or is the same as the last image, and thus avoid for example any unnecessary plug-and-play checks and instantly choose the configuration used last time, preferably as saved in the image, if the configuration has not changed.

20/10/05 Yaron Mayer 113/186 The Image is preferably saved on the disk or other non-volatile memory with at least some preferably fast compression that allows faster transfer of the data to and from the disk. The system then preferably allows the user to start working immediately (6), and preferably immediately afterwards checks if there is a problem that requires Scandisk (7). If there is such a problem, then preferably Scandisk is performed at the background without interrupting the user's work (8), preferably with hardware support that enables it to finish even much faster, as explained in the reference to Fig. 3. Preferably the system allows a "Reset" function, which means that whenever the system gets stuck (9), preferably the user is able to press some special button or some key or keys on the keyboard in a way that causes the computer's memory to instantly Reset from the saved Image, without a need to go through a boot sequence at all (10). The special button or key is preferably sensed either by hardware or by some process which preferably runs below the Operating system and thus is not affected even when the system becomes stuck. After activating the Reset (10), preferably the system again checks if there is a problem that requires Scandisk (7), and, if so, preferably performs it again in the background as explained above (8). In addition, during normal operation, preferably any cut &
paste buffers are automatically saved also on the disk or other non-volatile memory, so that they can be immediately available on the next boot or after the next Reset.
Similarly, preferably any currently edited files or windows are preferably automatically saved on the disk or other non-volatile memory preferably after sufficient minimal changes have accumulated (such as for example after at least 10 new characters have been added or changed) or every short while (for example every 30 seconds), so that they can be immediately available on the next boot or after the next Reset. Although something like this exists for example in Word, it is not available in many other programs, so preferably this is ensured by the OS
itself.
Preferably the System allows also "undo" in case the "Reset" button or command was pressed by accident, for example by saving an additional Image of the OS
and of open windows/applications before restoring the boot Image. Of course, preferably any of the above principles or variations can be used also during recovery from hibernate and/or during any boot or instant boot, such as for example the instant boot described by IBM, since in these processes too reducing any waste of time on dealing with the peripheral devices and/or any waste of time for scandisk, can allow the user to be able to start working much sooner. However, there is of course a difference between instant boot or reset and restoring from hibernate, since in the instant boot or reset the drivers have to typically be reset to the initial state after boot, whereas when restoring from hibernate they have to typically be restored to their exact state at the time of requesting the hibernate. Another possible variation is that for example when restoring from hibernate or from Reset, the system can also automatically for example continue printing from the point it stopped, for example by saving the relevant information about the process of printing and preferably being able to query the printer exactly where it stopped for example in terms of characters and/or in terms of printed pages. Another possible variation is that the user can define or save for example the normal task bar itself or parts of it, so that for example upon any boot by default some Dos window will be open at a certain directory or for example Word will be open with a certain file, until changed by the user and/or for example the Internet connection will be automatically activated and 20/10/05 Yaron Mayer 114/186 some browser windows will automatically open at certain sites. Another possible variation is that the user can for example define group-icons, which means that a single icon can connect a number of icons so that when the user clicks on the group icon a number of applications will open automatically, with or without restoring also for example their exact arrangement of the desktop. This way for example if some users are used to work with Word on the left side of the screen and some excel table on the right side, then clicking on the group icon or saving this as boot default will automatically open the two or more applications in the correct configuration.
Another possible variation is that preferably the last sleep mode that was used is by default not erased and the user is offered for example upon normal reboot as one of the options the possibility to return as if from the last sleep mode, except that some programs that were running then will not be restored (since if it is a normal reboot then these processed have already been closed). For this preferably the OS can for example automatically add to the last sleep mode data for example upon normal shutting down and/or when specific processes have ended, the information that these processes are no longer relevant. Of course, various combinations of the above and other variations can also be used.
Referring to Fig. 2, I show a preferable variation where for example any changes at all that happen for example on the hard disk or other non-volatile preferably fast-access memory (20) (and possibly even on other connected writeable media, such as for example CD or DVD or other backup media) at any time are completely undo-able at least for a certain time period (or as long as there is sufficient room to save the info needed for the undo), in a way similar for example to the undo feature in a single Word document. If this is implemented also for example for other connected media, the rollback areas for them can be for example on those media and/or for example on a separate rollback area or areas or on part of the normal rollback area within the disk (or other fast non-volatile memory). This is preferably accomplished by keeping one or more rollback logs, preferably backed up by appropriate hardware on the disk. The rollback can be enabled for example by creating a backup of each changed file or directory in another area at least for a certain time period or until for example the backup buffer becomes full and older backups have to be deleted automatically. Another possible variation, which saves much more space, is for example to keep a rollback log of all changes for example of directories, files, FAT
areas, and/or any other data (such as for example even any low-level changes in disk tracks), so that any changes that were made on the storage media can be rolled back by simply tracing back the log of changes (this way only the changes have to be saved). Preferably this log or rollback buffer or buffers are encrypted and are highly guarded and/or are kept also in more than one place, in order to reduce the chance of its destruction by mistake or by some malicious software. This way even if the user has made a horrible mistake and the entire system has been compromised, even the worst damage can preferably still be automatically undone. Preferably the Operating System or a special Security System constantly guards itself and its files and preferably also these logs from any unauthorized changes. Another possible variation is that even commands such as for example format or re-partition or even low-level format are not able to destroy the rollback areas, so that for example at least a certain percent of the disk or other non-volatile memory is always reserved 20/10/05 Yaron Mayer 115/186 for the rollback info. Preferably the rollback logs or buffers or at least the most recent changes in them are always backed up in at least two or more separate places and/or also protected by additional encryption and/or redundancy data, so that damages can be fixed. Another possible variation is that the rollback feature is supported also by hardware, for example by a special area in the CPU or on the hard disk interface card, so that it is always available for example from a special ROM
even if for example the system has been booted from another device, such as for example a diskette or CD or network drive. If it is an inherent part of the hard disk, this has the additional advantage that preferably at least part of the overhead of keeping the rollback files is run by special hardware for example on the hard disk's interface card, so that it does not burden the system or slow down disk operations.
This can be done for example by keeping one or more additional read/write heads (22b) constantly near a special area of the disk (22) that is used for the rollback logs, so that accessing it for every disk change causes no additional access or seek activity of the normal read/write heads. Such an implementation can be also more secure since access to the rollback area can be limited for example on a hardware level, so that for example only an explicit command by the user entered directly by the user to the operating system through a direct command can restore changes from the rollback, so no malicious program can for example activate the command.
Preferably when the user requests to restore things from the rollback, the following part of the rollback buffer is still kept, so that the user can for example also redo the "undo" by simply moving again forward on the rollback log, thus reinserting the cancelled changes. Preferably new changes to the rollback from that point on are kept on a separate part or buffer or branch, so that making additional changes from that point on will not overwrite the original "forward" part of the rollback, otherwise even changing one character after the undo can destroy the possibility of undoing the undo and returning to the original situation before the undo. (This is unlike for example the undo feature in Word, where undoing something and then adding new changes destroys the ability to go back to the situation before the undo).
Preferably when going again forwards the user is shown the various branches that exist and can choose the appropriate one. Another possible variation is to apply this taking into account of branching also for example when the user moves backwards and forwards for example with web browsers, so that for example if the user chooses a different Iink after going back to a previous page and then for example goes back again, preferably the browser automatically displays the different paths available if the user moves forward again (for example in the form of branching chart).
Another possible variation is to add such features also for example to word processing programs, such as for example Word, so that there too the user can choose which Redo he wants if there are a number of possible branches to choose from.
Another possible variation is to add to word processing programs such as for example Word also an option that if the user for example types something by mistake while "overwrite" is pressed when he/she actually intended to use normal insert mode (which can happen quite often) preferably the overwritten part is always saved automatically for example in some buffer and preferably the user can press some button (or for example a combination of two buttons) which instantly restores the lost text as if the mode had been "insert" instead of "overwrite" (this can be called for example "retroactively changing mode"), instead of having to use cut or copy to 20/10/05 Yaron Mayer 116/186 save the new part, than use undo, and then use paste again. Preferably the Undo in word processors such as for example Word is also improved so that even deleting the entire contents of the file and saving it is undoable. This is very important since in the prior art for example if the user by mistake presses "~a" (which stands for "mark all the text") instead of "~s" (save) and then presses backspace to delete one or more characters and then for example presses "~s" again, the entire contents of the file can be erased and then saved like this, and then the undo does not work, so the entire file can become lost. Another possible variation is that for example when using cut & paste if the user for example presses by mistake again "~C" (copy) instead of ~v (paste) (for example over the section that was supposed to be written over)(which happens many times since these are adjacent keys on the keyboard), the new copied text normally overwrites the previous one in the copy buffer. So preferably the user can press some undo key which brings back the previous copy buffer. This can be easily implemented for example by saving the copy buffers automatically in some stack.
Since the area assigned for keeping the rollback logs is necessarily limited, preferably the rollback file or files use one or more circular buffers, so when it is full the oldest changes logged are deleted by overwriting them with the new data, and pointers to the logical beginning and end of each circular buffer are updated accordingly If the rollback is hardware based, another possible variation is that since it can preferably work even below the operating system level, the rollback is based for example on low-level hard disk data, such as for example simply recording all changes in disk tracks or sectors, etc., so that it is independent of any file formats used by the operating system. However, this can be problematic since hard disks today typically have for example auto-moving of bad tracks to a hidden pool of "spare" tracks, so this is preferably taken into consideration.
Another possible variation is that the lower level hardware is also aware of upper formats.
The variations of using special hardware for example in the hard disk itself are more preferable since this is safer and faster, and can be also immune to changes done while the computer was booted from another source, unless for example a malicious software booted from another source makes on purpose so many changes that the rollback logs become overwritten. In order to prevent this, one possible variation is that for example if the hard disk senses that the boot was not made from it, it will block all further changes for example after the log file becomes too full (for example counting the cumulative amount of changes since the boot), and request the user to boot from the hard disk. Another possible variation is for example some combination between the OS and the hardware support, so that for example there are two types of low-level write commands, one with rollback enabled (for example called RWrite, for Rollback enabled Write, or for example called SafeWrite) and one without, so that for example the operating system decides to use the safe (rollback enabled) write automatically for example when allowing changes in highly strategic directories and/or files, such as for example system files, ".doc"
files and program source files. Another possible variation is that for example the Operating System or the computer's security system decide when to use the rollback enabled write and when the normal write, and for example takes care that normal files or directories are changed with the safe write, but for example swap files and other 20/10/05 Yaron Mayer 117/186 temporary files are changed with the normal write, in order to avoid burdening the rollback buffer with unimportant changes. This is less safe than the variation where every change is logged on the rollback files but has the advantage that the rollback buffer is reserved for more important changes, so they can be kept for a longer time than if also less important changes are kept on the logs. Another possible variation is that for example normal programs can also choose to use it depending on the importance of the files. However, a malicious program might for example try to create on purpose so many changes as to fill the rollback circular buffer and make it lose more real changes. Therefore, such behavior is preferably intercepted by the Operating System or a special Security system as a highly suspicious behavior (for example by identifying programs which keep rewriting the same files again and again apparently for no reason, or other suspicious or unusual behaviors).
Therefore, preferably for example only the security system and/or the operating system can have access to the saving or restoring from the rollback buffer. However, if every change in the disk is automatically saved in the rollback buffer, then still a malicious program might create endless changes on purpose, so preferably it is intercepted preferably after a short time as highly suspicious behavior. Another possible variation is that for example each program or each installation directory has by default only up to a certain percent of the rollback areas allocate to it, so that it cannot take up too much of the rollback resources unless given explicit permission by the user (in this case preferably each has its own rollback circular buffer).
However, a hardware based general rollback feature also can have a serious drawback that changes for example in one important file can only be undone by undoing changes in the entire disk, so for example to fix a damage that was caused to that file two months ago the user would have to undo changes of two months in the entire disk, restore the file, and then restore back the last two months on the entire disks - a very dangerous activity if anything goes wrong during the process for some reason. Therefore, a more preferable variation is that the hardware supported rollback or undo can be used also for each file separately, for example by saving a separate rollback buffer or entry for each file, or for example each log entry contains also the name and full path of the relevant file (passed to it for example as a parameter during the write operation), so that the user can choose for example if to use an "undo" on the entire disk or only on a specific file or directory or group of files or group of directories. Preferably this path info changes only when the changes start referring to a separate file, so as long as the changes are in one file, no overhead of repeating the path is needed. Another possible variation is that for example the Security system and/or the operating system use the rollback log automatically for backing up any changes in highly strategic directories and/or files without hardware support. Of course, similar principles can be used also in other types of non-volatile memory that exist or will exist in the future, so that for example if some MRAM (Magnetic RAM) or 3D memory chips are used, preferably the rollback area or areas have independent access control for fast access without slowing down the normal access the actual data areas. These rollback features can be used also independently of any other features of this invention. Of course, various combinations of the above and other variations can also be used.

20/10/05 Yaron Mayer 118/186 Referring to Fig. 3, I show an illustration of a preferable example of using a separate area or areas (32) with separate read-write heads (32b) on the disk (or other non-volatile memory)(30) for running one or more hardware supported FAT (File Allocation Table) areas. Preferably, during or after a fast-boot or a Reset that uses the memory Image (and/or even during or after a normal boot), if the FAT of the disks needs to be checked, preferably it is done in the background, after the user can already start working, since waiting for scandisk to finish can take several minutes and can be very aggravating to most users. Preferably the Scandisk (disk canning software) or similar software is backed up by special Hard-disk hardware, in a way similar to the hardware that supports automatic disk rollback, described in the reference to Fig. 2. Preferably this is done by using hard-disks wherein a special area or areas (32) is dedicated for FAT information, and preferably independent head or heads (32b) are used for read and write in those areas. Another problem with scandisk is that for example in Windows 98 scanning the drive where the OS is installed (typically drive C:) can take a long time, since many background operations can cause the scan to restart. So preferably even if there are problematic background changes at the time of the scan, preferably the system automatically keeps track of its recent scanning activity and thus preferably can jump back and forth temporarily if needed but does not need to restart the scan after such changes.
This has the further advantage that also with normal disk activity any reading or writing of files can become faster even if they are fragmented, since less movements of the heads are needed to access the FAT area each time some jump is needed.
Since each disk can have more than one partition, preferably the FAT areas of all partitions are kept in the same special area or areas (32). Preferably these areas are also guarded better in terms of security, so that for example any write-access to them is monitored more closely. Of course, various combinations of the above and other variations can also be used, such as for example various combinations of features of Fig. 2 with features Fig. 3, so that for example both separate FAT
area or areas with special access and other separate Rollback area or areas with special access are used, or for example the same special area or areas are used for both the rollback and the FAT. Another possible variation is that the disks or other non-volatile memory contain also one or more processors that can themselves conduct the comparison between the files and the FAT, so that it can be done in the background even with little or no consuming of CPU resources from the computer itself. Of course, similar principles can be used also in other types of non-volatile memory that exist or will exist in the future, so that for example if some MRAM
(Magnetic RAM) or 3D memory chips are used, preferably the FAT area or areas have independent access such as for example independent communication channel and/or processor for fast access without slowing down the normal access the actual data areas. Similar principles can be used for example to speed up writing and/or reading for example on CDs, DVDs, and writeable or rewriteable CDs or DVDs (for example by using two or more separate laser beams - one or more for the normal data and one or more for a FAT or similar area), since jumping back and forth between the FAT area and the normal data areas is one of the things that most slow down such devices for example when copying a large number of files to them. Of course, these features can be used also independently of any other features of this 20/10/05 Yaron Mayer 119/186 invention. Of course, various combinations of the above and other variations can also be used.
Referring to Figs. Sa-c I show illustrations of a few preferable configurations that can considerably increase the speed of the hard disk andJor reduce its power consumption. Fig. 5 a shows a hard disk (50) with one of the rotating plates (53a) and its central hub (53b). As can be seen, the arm (55) that contains the read-write head (51) rotates part of a circle (along the dotted arc) in order to reach any desired track in the disk. Typically there are multiple such plates, and the arms go also between them, so that typically each arm can read/write the relevant sides of both the plate that is above it and the plate that is below it. (Typically all the arms move together between the plates, thus reading and writing the same tracks on multiple plates at the same time, however making for example one or more of these arms independent from the gn~up can supply for example the desired independent heads for the independent rollback area and/or independent FAT area that were discussed above). By adding for example a preferably small fork with an additional head (52) the arm now only needs to move half of the way in order to reach any desired track, so that for example head 52 can take care of all the inner tracks and for example head 51 can take care of all the outer tracks. Since the arm itself is much more massive than the heads, this addition should not cause a significant addition to the total mass of the arm. An additional improvement in this variation is that preferably both heads can now read and write at the same time, thus doubling also the speed of data transfer. Of course, this is just an example and for example more than one additional head can be added in a similar way to each arm, so that for example there are a number of such forks (for example all at one side, or more preferably at both sides of the arm, to keep the balance, so that head 51 becomes in the middle.
(Like head 51, the added head 52 is preferably actually two heads, one for reading the appropriate side of the plate that is below it and one for reading the appropriate side of the plate that is above it, and as explained above this is preferably repeated for all the plates). Fig. 5b shows a similar solution, except that the arm (55) is now stationary, preferably reaching the middle track, and preferably at its tip (54) is connected an additional preferably thin rotating plate (57) which contains preferably multiple read-write heads (56). This plate is preferably rotated by a flat step engine or voice coil, and its mass is now preferably much smaller and also the amount of rotation needed is much smaller (for example only 1/6 or the original arc, if there are now for example 6, preferably double sided, read/write heads). And like in Fig.
5a, preferably each head covers only its own range of tracks and all heads can preferably work simultaneously, so that preferably when the data is written it is also spread between the tracks accordingly, thus increasing the read/write transfer rate by a factor of 6, in this example. (Of course 6 heads is just an example and any other convenient number can also be used). The smaller mass of plate 57 and the much smaller range of rotation that is needed can thus also reduce considerably the power consumption and thus can be especially fit for example also for hard disks in laptops (mobile computers). However, using such a round small plate has a problem that the movement of the heads in relation to the disk is not linear, so that for example the heads that are near the innermost track and near the outermost track move much less than the middle heads, thus creating a large difference in the thickness of the 20/10/05 Yaron Mayer 120/186 corresponding tracks. Therefore, instead of a round small plate preferably the heads are on a special shape that corrects for this non-linear movement - for example some concave hyperbolic shape or cycloid shape or other mathematically appropriate shape (this can be done for example by changing the shape of the plate and/or by changing the positions of the heads instead of being all on the edges). On the other hand there is no such problem if the additional forks are added in the configuration of Fig. SOa - if all the tips with the head are on the same dotted arc (Although in this case also the linearity is not complete, the distortions are much smaller due to the remote axis of rotation of the arm, and therefore they are not important, since each head keeps using the same path for writing and for reading).
The configuration of Fig. 5c is very similar to that of Fig. 5b, except that the hub (54) of plate 57 is now outside the area of the disk's rotating plates (53b), thus allowing more mom for the mechanics of the engine that rotates plate 57 and reducing the non-linearity problem, however the shape of plate 57 is preferably also corrected for linearity in this case like in plate of Fig Sb. Both in the configurations of Fig. 5b and of Fig. 5c the heads can be for example just on one side of the plate (like in Fig. 5b) or on both sides (like in Fig. 5c), however if both sides are used then preferably the heads on the right are shifted in position compared to the heads on the left, so that altogether each head covers a different range of tracks.
This has the advantage that more resolution in dividing the tracks between the heads can be achieved without putting the heads too close to each other. Another advantage of the configurations of Figs. SOa-c that since each head has its own range of tracks, another possible variation is that preferably the heads that deal with more external tracks use higher frequency and thus can write more data per each track in the external tracks, thus preferably creating more even data density across the disk, unlike the current disks, in which the amount of data on the outer tracks is the same per track as in the inner tracks, thus wasting a lot of space. This can thus in addition increase the available space on the disk on average for example by a factor of 2 or more. In this case preferably each head writes according to the highest density that can be used in the most inner track within its sub-range of tracks, however another possible variation is that each head can also increase its frequency when moving into the more external tracks within its range. Of course these configurations are preferably used for all the layers of the disk, so that preferably multiple such side plates replace the normal arms. Another possible variation is that, for example in the configurations of Figs. 5b and/or Sc, instead of jumping into a certain position each time, plate 57 for example constantly rotates (thus removing the need for fast acceleration and stopping for each jump), and the rotations of plate 57 and of the disk's plates (53b) are specially correlated. In this case also, the shape of the plates is preferably specially designed to correct for various linearity problems and/or to create special more desired patterns of intersection with the disk's rotating plates.
However this solution is much more problematic and requires unusual read/write patterns. Another possible variation is for example independent arms for each sub-range of tracks, or for example multiple independent arms (so that for example there are 2-3 hinges of arms sets instead of 1 ). This can for example also further increase the efficiency of access order optimizations, such as for example NCQ & TCQ).
Of course these are just examples and other configurations with similar principles can also be used. Of course, various combinations of the above variations can also be 20/ 10/05 Yaron M ayer 121 / 18 6 used. Of course, like other features of this invention, these features can be used also independently of any other features of this invention.
Figs. 4 & 6 have been mentioned briefly in the patent summary and are just used for illustrating certain points in the prior art.
Referring to Fig. 7 I show an illustration of an improved computer case (70) in which at least the area that supports the external CD and/or DVD drives (71) is preferably rotate-able between two positions, so that the same case can be used either as a desktop case or as a tower case, thus giving the user much more flexibility in choosing the most convenient orientation without having to buy different cases. This is preferably done by making the case strong enough to support even large screen on top of it when used in the desktop orientation, and preferably at least the area that supports the external CD and/or DVD drives (71), is preferably rotate-able between two positions, preferably in 90 degrees (preferably only back and forth between the two position - to avoid excess bending of the cables), so that preferably the user can easily choose one of these two positions, at least by screwing the part when the case is open, but even more preferably the user can for example press one or more levers or buttons and then can preferably rotate the part even when the case is closed. Another possible variation is that for example the frame that holds the 3.5 devices (72) is also similarly rotate-able, although that is less important since for example zip drives, hard disks and normal diskette devices can work ok both in the horizontal and ion the vertical position. Preferably the rotating frame can be for example pulled a little out to the front and then rotated when slightly outside of the case - so that the corners of the frame can rotate freely (preferably the inner part of the frame has a part with round edges), or for example the rotating frame has its corners always a little in front of the case, so that it can be rotated even without having to pull it out forwards.
While the invention has been described with respect to a limited number of embodiments, it will be appreciated that many variations, modifications, expansions and other applications of the invention may be made which are included within the scope of the present invention, as would be obvious to those skilled in the art.

Claims (111)

I claim:
1. A System for improving the efficiency, comfort, and/or reliability in Operating Systems, comprising at least one of:
a. A mechanism for instant Resetting of the OS into the normal state it would be in after a successful boot, without the need to boot at all;
b. A mechanism for automatically scanning the nonvolatile memory in the background without significantly slowing down the computer after a boot or a Reset while allowing the user to immediately start working after the boot or Reset;
c. A mechanism for preventing other programs from snatching the focus while the user is typing;
d. A mechanism for allowing the user to install a new Operating System in another partition or directory with copying the desktop of the original system to the new system and automatically converting as many programs as possible to work in the new system;
e. An automatic rollback feature that is adapted to enable undoing any changes on the non-volatile memory;
f. Independent access mechanisms to at least one rollback area, so as not to adversely affect speed of access to the normal data areas;
g. Independent access mechanisms to at least one FAT area, so as not to adversely affect speed of access to the normal data areas;
h. Improved versions of at least one of Word processors and Internet browsers and/or other applications.
2. The system of claim 1 wherein an Image of the state of the OS is saved immediately after a successful boot on non-volatile memory and is automatically updated when new drivers and/or software that changes the state after a boot is added.
3. The system of claim 2 wherein more than one Image can be saved, so that the system can preferably go back also to the previous Image when needed.
4. The system of any of the above claims wherein whenever the system gets stuck and/or the user wants to clear the computer's memory and go back to a state like after a normal boot, the user can cause the computer's memory to instantly Reset from the saved Image, without a need to go through a boot sequence at all.
5. The system of claim 4 wherein for activating said Reset, the user's request is sensed by at least one of Hardware, and Some process that runs below the Operating system and thus in not affected even when the system becomes stuck.
6. The system of any of claims 2-5 wherein at least one of the following features exist:
a. Any cut & paste buffers are automatically saved also on the disk or other non-volatile memory; so that they can be immediately available on the next boot or after the next Reset;
b. Any currently edited files or windows are automatically saved on the disk or other non-volatile memory after sufficient minimal changes have accumulated, so that they can be immediately available on the next boot or after the next Reset;
c. After a fast-boot or Reset that uses the memory Image, and/or even during or after a normal boot, if the FAT of the disks or other non-volatile memory needs to be checked, it is done in the background and without significantly slowing down the disk or the CPU, after the user can already start working;
d. The disk or other non-volatile memory scanning software is backed up by hardware, by using special area or areas dedicated for FAT
information, and independent access means are used for read and write in those areas;
e. Any reading or writing of files is done with the aid of using separate access means to access the FAT area or areas.
7. The system of any of the above claims wherein when the user is in the middle of typing something, the focus can be automatically snatched away by another program only under at least one of the following limitations:
a. The change of focus can occur only after the user has stopped typing for a certain minimal period;
b. The focus can be snatch by other programs only in case of emergency, c. The focus can be snatched by other programs only in case of emergency, and such emergency can be decided only by at least one of The OS, the security system of the computer, the firewall, and any other software which has been given explicit permission by the user to have such rights;
d. Programs are not allowed to snatch away the focus while the user is in the middle of typing something, but in case of emergency, instead of snatching away the focus, important messages can be displayed by flashing a message and/or other conspicuous visual means and/or by audible sound, so that the user's attention can be immediately grabbed, without automatically disturbing his typing efforts;
e. If the focus is snatched while the user was typing, his keystrokes continue to be kept in a buffer, so that when the user notices that the focus has changed and goes back to the original window where he was typing, the keys that he typed while the focus has changed are again available.
8. The system of any of the above claims wherein when installing a new OS in a new directory or partition, the new system copies the desktop configuration and links from the old system into the desktop of the new system, and at least one of the following is done in order to enable the links in the new desktop to work in the new OS:
a. During installation of the new system, the system tries to automatically convert components that are different between the two systems to work on the new system;
b. During installation of the new system, the system tries to locate the original files which were used for the installation and then tries to reinstall automatically the correct drivers or components that are needed for the new system;
c. Each Windows system keeps information about the path and name of the original file from which it was installed in at least one of The registry, and At least one directory where the installed program or component or drivers resides;
d. If the system does not success in converting the relevant links to work on the new system, then the system does at least one of the following:
1. The system marks the relevant links on the new desktop as non-operational and encourages the user to look for other versions of those programs that are fitted to work on the new system, and 2. The system allows the link to activate the version that runs under the old system or creates another copy of it, and uses emulation of the old system when needed in order to let it run;
e. A new protocol for installing programs is implemented so that each installation of new software installs both the appropriate drivers or components and at least one set of alternate drivers or components for additional OS, and each time the program is loaded into memory the appropriate set of drivers or components is automatically chosen by the OS, and the parts of the installation that require updating registries and/or installing various components in system directories are suspended and are executed automatically when the new OS is activated for the first time.
9. The system of any of the above claims wherein changes that happen on at least one of {the hard disk, other non-volatile fast access memory, and other connected writeble media} are completely undo-able at least for a certain time period or as long as there is sufficient room for saving the info needed for the undo, by using at least one hardware supported rollback area.
10. The system of claim 9 wherein the undo feature is accomplished by at least one of the following features:
a. At least one rollback buffer is kept and is encrypted and is highly guarded and/or is kept also in more than one place;
b. Even commands such as format or re-partition or even low-level format are not able to destroy the at least one rollback area, so at least a certain percent of the non-volatile memory is always reserved for the rollback info;
c. The rollback logs or at least the most recent changes in them are always backed up in at least two or more separate places and/or also protected by additional encryption and/or redundancy data, so that damages can be fixed;
d. Only an explicit command by the user entered directly by the user to the operating system through a direct command can restore changes from the rollback, so no malicious program can activate the command;
e. When the user requests to restore things from the rollback, the log is still kept, so that the user can also redo the "undo" by simply moving again forward on the rollback log, thus reinserting the cancelled changes, and new changes to the rollback from that point on are kept on a separate part or buffer or branch, so that making additional changes from that point on will not overwrite the original "forward"
part of the rollback;
f. When going again forwards the user is shown the various branches that exist and can choose the appropriate one;
g. The rollback file or files use one or more circular buffers, so when it is full the oldest changes logged are deleted by overwriting them with the new data, and pointers to the logical beginning and end of each circular buffer are updated accordingly;
h. If the hard disk senses that the boot was not made from it, it will block all further changes after the log file becomes too full, and request the user to boot from the hard disk;
i. There are two types of low-level write commands, one with rollback enabled and one without, so that the rollback enabled write is used for important data and the normal write is used for at least one of unimportant data, temporary file areas and swap file areas;
j. At least one of the operating system and the computer's security system decide when to use the rollback enabled write and when to use the normal write;
k. If a malicious program tries to create suspicious massive changes on purpose in order to fill the rollback buffer, it is intercepted as highly suspicious behavior.
11. The system of any of the above claims wherein the hardware supported undo can be used also for each file separately, by at least one of:
a. Saving a separate rollback buffer or entry for each file;
b. Each log entry contains also the name and full path of the relevant file, so that the user can choose if to use an "undo" on the entire disk or only on a specific file or directory or group of files or group of directories;

c. Said path info changes only when the changes start referring to a separate file, so as long as the changes are in one file, no overhead of repeating the path is needed.
12. The system of any of the above claims wherein at least one separate FAT
area on the non-volatile memory is used with independent access that does not slow down access to normal data areas.
13. The system of any of the above claims wherein said non-volatile memory is at least one hard disk and said independent access is based on at least one independent read/write head for accessing the at least one separate FAT area.
14. The system of any of the above claims wherein said non-volatile memory is Magnetic RAM and said independent access is based on at least one of independent communication channel, and independent processor.
15. The system of any of the above claims wherein said non-volatile memory is at least one of writeable or rewriteable CDs or DVDs and at least two separate laser beams are used - at least one for the normal data and at least one for the at least one special FAT area.
16. The system of any of the above claims wherein at least one of separate FAT
area access and separate Rollback area access are enabled, by at least one of:
a. Using a separate access to the at least one separate rollback area and a different separate access to the at least one separate FAT area;
b. Using the same at least one special area with special access for both the rollback and the FAT;
c. The disks or other non-volatile memory contain also one or more processors that can themselves conduct the comparison between the files and the FAT, so that it can be done in the background even with little or no consuming of CPU resources from the computer itself.
17. A method for improving the efficiency, comfort, and/or reliability in Operating Systems, based on at least one of the following steps:
a. Providing a mechanism for instant Resetting of the OS into the normal state it would be in after a successful boot, without the need to boot at all;
b. Providing a mechanism for automatically scanning the nonvolatile memory in the background without significantly slowing down the computer after a boot or a Reset while allowing the user to immediately start working after the boot or Reset;
c. Providing a mechanism for preventing other programs from snatching the focus while the user is typing;
d. Providing a mechanism for allowing the user to install a new Operating System in another partition or directory with copying the desktop of the original system to the new system and automatically converting as many programs as possible to work in the new system;
e. Providing an automatic rollback feature that is adapted to enable undoing any changes on the non-volatile memory;
f. Providing independent access mechanisms to at least one rollback area, so as not to adversely affect speed of access to the normal data areas;
g. Providing independent access mechanisms to at least one FAT area, so as not to adversely affect speed of access to the normal data areas;
h. Providing improved versions of at least one of Word processors and Internet browsers and/or other applications.
18. The method of claim 17 wherein an Image of the state of the OS is saved immediately after a successful boot on non-volatile memory and is automatically updated when new drivers and/or software that changes the state after a boot is added.
19. The method of claim 18 wherein more than one Image can be saved, so that the system can preferably go back also to the previous Image when needed.
20. The method of any of the above claims wherein whenever at least one of:
{a.
The system gets stuck, b. The user wants to clear the computer's memory and go back to a state like after a normal boot}, the user can cause the computer's memory to instantly Reset from the saved Image, without a need to go through a boot sequence at all.
21. The method of claim 20 wherein for activating said Reset, the user's request is sensed by at least one of Hardware, and Some process that runs below the Operating system and thus in not affected even when the system becomes stuck.
22. The method of any of claims 18-21 wherein at least one of the following features exist:
a. Any cut & paste buffers are automatically saved also on the disk or other non-volatile memory, so that they can be immediately available on the next boot or after the next Reset;
b. Any currently edited files or windows are automatically saved on the disk or other non-volatile memory after sufficient minimal changes have accumulated, so that they can be immediately available on the next boot or after the next Reset;
c. After a fast-boot or Reset that uses the memory Image, and/or even during or after a normal boot, if the FAT of the disks or other non-volatile memory needs to be checked, it is done in the background and without significantly slowing down the disk or the CPU, after the user can already start working;
d. The disk or other non-volatile memory scanning software is backed up by hardware, by using special area or areas dedicated for FAT
information, and independent access means are used for read and write in those areas;
e. Any reading or writing of files is done with the aid of using separate access means to access the FAT area or areas.
23. The method of any of the above claims wherein when the user is in the middle of typing something, the focus can be automatically snatched away by another program only under at least one of the following limitations:
a. The change of focus can occur only after the user has stopped typing for a certain minimal period;
b. The focus can be snatch by other programs only in case of emergency;
c. The focus can be snatched by other programs only in case of emergency, and such emergency can be decided only by at least one of The OS, the security system of the computer, the firewall, and any other software which has been given explicit permission by the user to have such rights;
d. Programs are not allowed to snatch away the focus while the user is in the middle of typing something, but in case of emergency, instead of snatching away the focus, important messages can be displayed by flashing a message and/or other conspicuous visual means and/or by audible sound, so that the user's attention can be immediately grabbed, without automatically disturbing his typing efforts;
e. If the focus is snatched while the user was typing, his keystrokes continue to be kept in a buffer, so that when the user notices that the focus has changed and goes back to the original window where he was typing, the keys that he typed while the focus has changed are again available.
24. The method of any of the above claims wherein when installing a new OS in a new directory or partition, the new system copies the desktop configuration and links from the old system into the desktop of the new system, and at least one of the following is done in order to enable the links in the new desktop to work in the new OS:

a. During installation of the new system, the system tries to automatically convert components that are different between the two systems to work on the new system;
b. During installation of the new system, the system tries to locate the original files which were used for the installation and then tries to reinstall automatically the correct drivers or components that are needed for the new system;
c. Each Windows system keeps information about the path and name of the original file from which it was installed in at least one of The registry, and At least one directory where the installed program or component or drivers resides;
d. If the system does not success in converting the relevant links to work on the new system, then the system does at least one of the following:
1. The system marks the relevant links on the new desktop as non-operational and encourages the user to look for other versions of those programs that are fitted to work on the new system, and 2. The system allows the link to activate the version that runs under the old system or creates another copy of it, and uses emulation of the old system when needed in order to let it run;
e. A new protocol for installing programs is implemented so that each installation of new software installs both the appropriate drivers or components and at least one set of alternate drivers or components for additional OS, and each time the program is loaded into memory the appropriate set of drivers or components is automatically chosen by the OS, and the parts of the installation that require updating registries and/or installing various components in system directories are suspended and are executed automatically when the new OS is activated for the first time.
25. The method of any of the above claims wherein changes that happen on at least one of {the hard disk, other non-volatile fast access memory, and other connected writeble media} are completely undo-able at least for a certain time period or as long as there is sufficient room for saving the info needed for the undo, by using at least one hardware supported rollback area.
26. The method of claim 25 wherein the undo feature is accomplished by at least one of the following features:
a. At least one rollback buffer is kept and is encrypted and is highly guarded and/or is kept also in more than one place;
b. Even commands such as format or re-partition or even low-level format are not able to destroy the at least one rollback area, so at least a certain percent of the non-volatile memory is always reserved for the rollback info;
c. The rollback logs or at least the most recent changes in them are always backed up in at least two or more separate places and/or also protected by additional encryption and/or redundancy data, so that damages can be fixed;
d. Only an explicit command by the user entered directly by the user to the operating system through a direct command can restore changes from the rollback, so no malicious program can activate the command;
e. When the user requests to restore things from the rollback, the log is still kept, so that the user can also redo the "undo" by simply moving again forward on the rollback log, thus reinserting the cancelled changes, and new changes to the rollback from that point on are kept on a separate part or buffer or branch, so that making additional changes from that point on will not overwrite the original "forward"
part of the rollback;
f. When going again forwards the user is shown the various branches that exist and can choose the appropriate one;
g. The rollback file or files use one or more circular buffers, so when it is full the oldest changes logged are deleted by overwriting them with the new data, and pointers to the logical beginning and end of each circular buffer are updated accordingly;
h. If the hard disk senses that the boot was not made from it, it will block all further changes after the log file becomes too full, and request the user to boot from the hard disk;
i. There are two types of low-level write commands, one with rollback enabled and one without, so that the rollback enabled write is used for important data and the normal write is used for at least one of unimportant data, temporary file areas and swap file areas;
j. At least one of the operating system and the computer's security system decide when to use the rollback enabled write and when to use the normal write;
k. If a malicious program tries to create suspicious massive changes on purpose in order to fill the rollback buffer, it is intercepted as highly suspicious behavior.
27. The method of any of the above claims wherein the hardware supported undo can be used also for each file separately, by at least one of:
a. Saving a separate rollback buffer or entry for each file;
b. Each log entry contains also the name and full path of the relevant file, so that the user can choose if to use an "undo" on the entire disk or only on a specific file or directory or group of files or group of directories;
c. Said path info changes only when the changes start referring to a separate file, so as long as the changes are in one file, no overhead of repeating the path is needed.
28. The system of any of the above claims wherein at least one separate FAT
area on the non-volatile memory is used with independent access that does not slow down access to normal data areas.
29. The method of any of the above claims wherein said non-volatile memory is at least one hard disk and said independent access is based on at least one independent read/write head for accessing the at least one separate FAT area.
30. The method of any of the above claims wherein said non-volatile memory is Magnetic RAM and said independent access is based on at least one of independent communication channel, and independent processor.
31. The method of any of the above claims wherein said non-volatile memory is at least one of writeable or rewriteable CDs or DVDs and at least two separate laser beams are used - at least one for the normal data and at least one for the at least one special FAT area.
32. The method of any of the above claims wherein at least one of separate FAT
area access and separate Rollback area access are enabled, by at least one of a. Using a separate access to the at least one separate rollback area and a different separate access to the at least one separate FAT area;
b. Using the same at least one special area with special access for both the rollback and the FAT;
c. The disks or other non-volatile memory contain also one or more processors that can themselves conduct the comparison between the files and the FAT, so that it can be done in the background even with little or no consuming of CPU resources from the computer itself.
33. The system of any of the above claims wherein any changes in the entire hard disk or other types of preferably fast mass storage non-volatile memory after or during installation of new software, are completely undo-able at least for a certain time period by using a rollback buffer.
34. The system of any of the above claims wherein each program or each installation directory has by default only up to a certain percent of the rollback areas allocate to it, so that it cannot take up too much of the rollback resources unless given explicit permission by the user.
35. The method of any of the above claims wherein any changes in the entire hard disk or other types of preferably fast mass storage non-volatile memory after or during installation of new software, are completely undo-able at least for a certain time period by using a rollback buffer.
36. The method of any of the above claims wherein each program or each installation directory has by default only up to a certain percent of the rollback areas allocate to it, so that it cannot take up too much of the rollback resources unless given explicit permission by the user.
37. The system of any of the above claims wherein the system runs a minimal scandisk in advance at most only on the area where the image itself is stored or does that only if there is some CRC problem when trying to get the image, since only that area might have to be scanned before the boot or Reset if there is a problem.
38. The system of any of the above claims wherein clicking with the mouse on any part of the desktop and/or pressing Alt-Tab until a clear-desk-top icon is selected and/or pressing one ore more special keys will immediately bring the desktop fully into the foreground so that other windows that cover parts of it move down to the task bar.
39. The system of any of the above claims wherein at least one of the following features exist regarding priority of processes:
a. The user can easily define the desired priority level for a processes by clicking on the place where the priority is indicated at or near the taskbar and/or on the window of the process, by at least one of Defining percentages, Increasing or decreasing some default values in discrete steps, and Using more general definitions, such as "Very high, high, medium, low, very low";
b. The OS indicates to the user clearly the priority level of each process, at or near the task bar and/or at the top line of the window of the process, by at least one of Colors, numeric values, textual values, and appropriate icons, the level of priority that has been given to each process, by indicating it near or on each square in the taskbar that shows active processes or elsewhere;
c. The OS remembers the priorities given by the user to various processes and uses these defaults or at least takes them into consideration for assigning automatically the priorities the next time the user does similar things or activates the same processes, unless the user again changes the priorities;
d. The taskbar can show automatically how much percent of CPU is being used on average by each open process;
e. The priority of background and/or foreground processes is automatically dynamically increased according to the type of the work the user is doing in the foreground window;
f. If the user changes the priority by clicking on something on the process window itself, the user is asked if to keep a high priority for this process also when it is in background, or this is the assumed default and the user has to indicate if he wishes otherwise;

g. If the user changes the priority by clicking at or near the taskbar then preferably the system assumes automatically that this refers to the process when running in background;
40. The system of any of the above claims wherein at least one of the following features exist regarding resetting the state of the peripheral devices during Reset or during an instant boot:
a. Peripheral devices can be instantly reset to their original status as it would exist after a normal boot by improving the standard protocol of drivers so that they have a function for instant reset;
b. Device drivers can instantly query the device to see if it is in a proper state or needs to be reset;
c. The system constantly updates some area in non-volatile memory or some buffer or stack with the current state of the devices, so that it can be instantly determined if any of the devices was involved in a crash or needs reset;
d. At least one or more of the devices can be kept in its current state if the user so desires instead of resetting;
e. During or after the reset the system asks the user if he wants various devices to remain in their previous states, or it is defined as default before any reset is needed and the user can change it;
f. If any tests or resets are still needed in one or more devices which cannot be done instantly, the system can automatically decide which devices are not critical and can therefore be dealt with in the background after the user can already start working, in a way similar to postponing the disks scan;
g. When a restore or an instant boot is performed, the image is first reloaded into memory including all the drivers as if they have already checked and/or reset the relevant devices, and then the drivers are instructed to activate the instant actual reset on the actual devices, so that the state of the device conforms to the state that the driver is supposed to represent;
h. The data on the status of any peripheral devices that can be saved in the image includes also any plug and play data for such devices and/or for any other card or relevant elements in the computer, so that no plug and play automatic tests are normally needed during booting;
i. At least during any boot or reset that is not based on turning off and turning on again the computer (cold boot) the system can automatically identify if it is being reset or rebooted without a cold boot, and if so, it simply uses automatically the plug-and-play solution or configuration that was used last time as saved in the image;
j. Even if a cold-boot is done, the system can check instantly if the configuration of devices and/or cards and/or other relevant elements has changed or is the same as the last image, and thus avoid any unnecessary plug-and-play checks and instantly choose the configuration used last time.
41. The system of any of the above claims wherein at least one of the following features exist:
a. The user can define or save the normal task bar itself or parts of it, so that upon any boot it is available again by default;
b. The user can for define group-icons, which means that a single icon can connect a number of icons so that when the user clicks the group icon a number of applications will open automatically, with or without restoring also their exact arrangement of the desktop.
42. A System for improving the efficiency, comfort, and/or reliability in Operating Systems, wherein in at least one word processor at least one of the following features exist:
a. New changes after an undo are kept on a separate part or buffer or branch, so that making additional changes from that point on will not overwrite the original "forward" part of in case the user wants to redo it again, and when going again forwards the user is shown the various branches that exist and can choose the appropriate one;
b. If the user types something by mistake while "overwrite" is pressed when he actually intended to use normal insert mode, the overwritten part is always saved automatically in some buffer and the user can press a button or buttons which instantly restore the lost text as if the mode has been "insert" instead of "overwrite";
c. The Undo in word processors is also improved so that even deleting the entire contents of the file and saving it is undoable;
d. There is a file-compare feature that can show exactly the textual differences between two or more files while disregarding irrelevant data such as line breaks and fonts.
43. The method of any of the above claims wherein the system runs a minimal scandisk in advance at most only on the area where the image itself is stored or does that only if there is some CRC problem when trying to get the image, since only that area might have to be scanned before the boot or Reset if there is a problem.
44. The method of any of the above claims wherein clicking with the mouse on any part of the desktop and/or pressing Alt-Tab until a clear-desk-top icon is selected and/or pressing one ore more special keys will immediately bring the desktop fully into the foreground so that other windows that cover parts of it move down to the task bar.
45. The method of any of the above claims wherein at least one of the following features exist regarding priority of processes:

a. The user can easily define the desired priority level for a processes by clicking on the place where the priority is indicated at or near the taskbar and/or on the window of the process, by at least one of Defining percentages, Increasing or decreasing some default values in discrete steps, and Using more general definitions, such as "Very high, high, medium, low, very low";
b. The OS indicates to the user clearly the priority level of each process, at or near the task bar and/or at the top line of the window of the process, by at least one of Colors, numeric values, textual values, and appropriate icons, the level of priority that has been given to each process, by indicating it near or on each square in the taskbar that shows active processes or elsewhere;
c. The OS remembers the priorities given by the user to various processes and uses these defaults or at least takes them into consideration for assigning automatically the priorities the next time the user does similar things or activates the same processes, unless the user again changes the priorities;
d. The taskbar can show automatically how much percent of CPU is being used on average by each open process;
e. The priority of background and/or foreground processes is automatically dynamically increased according to the type of the work the user is doing in the foreground window;
f. If the user changes the priority by clicking on something on the process window itself, the user is asked if to keep a high priority for this process also when it is in background, or this is the assumed default and the user has to indicate if he wishes otherwise;
g. If the user changes the priority by clicking at or near the taskbar then preferably the system assumes automatically that this refers to the process when running in background.
46. The method of any of the above claims wherein at least one of the following features exist regarding resetting the state of the peripheral devices during Reset or during an instant boot:
a. Peripheral devices can be instantly reset to their original status as it would exist after a normal boot by improving the standard protocol of drivers so that they have a function for instant reset;
b. Device drivers can instantly query the device to see if it is in a proper state or needs to be reset;
c. The system constantly updates some area in non-volatile memory or some buffer or stack with the current state of the devices, so that it can be instantly determined if any of the devices was involved in a crash or needs reset;
d. At least one or more of the devices can be kept in its current state if the user so desires instead of resetting;

e. During or after the reset the system asks the user if he wants various devices to remain in their previous states, or it is defined as default before any reset is needed and the user can change it;
f. If any tests or resets are still needed in one or more devices which cannot be done instantly, the system can automatically decide which devices are not critical and can therefore be dealt with in the background after the user can already start working, in a way similar to postponing the disks scan;
g. When a restore or an instant boot is performed, the image is first reloaded into memory including all the drivers as if they have already checked and/or reset the relevant devices, and then the drivers are instructed to activate the instant actual reset on the actual devices, so that the state of the device conforms to the state that the driver is supposed to represent;
h. The data on the status of any peripheral devices that can be saved in the image includes also any plug and play data for such devices and/or for any other card or relevant elements in the computer, so that no plug and play automatic tests are normally needed during booting;
i. At least during any boot or reset that is not based on turning off and turning on again the computer (cold boot) the system can automatically identify if it is being reset or rebooted without a cold boot, and if so, it simply uses automatically the plug-and-play solution or configuration that was used last time as saved in the image;
j. Even if a cold-boot is done, the system can check instantly if the configuration of devices and/or cards and/or other relevant elements has changed or is the same as the last image, and thus avoid any unnecessary plug-and-play checks and instantly choose the configuration used last time.
47. The method of any of the above claims wherein at least one of the following features exist:
a. The user can define or save the normal task bar itself or parts of it, so that upon any boot it is available again by default;
b. The user can for define group-icons, which means that a single icon can connect a number of icons so that when the user clicks the group icon a number of applications will open automatically, with or without restoring also their exact arrangement of the desktop.
48. A method for improving the efficiency, comfort, and/or reliability in Operating Systems, wherein at least one of the following features exist:
a. New changes after an undo are kept on a separate part or buffer or branch, so that making additional changes from that point on will not overwrite the original "forward" part of in case the user wants to redo it again, and when going again forwards the user is shown the various branches that exist and can choose the appropriate one;
b. If the user types something by mistake while "overwrite" is pressed when he actually intended to use normal insert mode, the overwritten part is always saved automatically in some buffer and the user can press a button or buttons which instantly restore the lost text as if the mode has been "insert" instead of "overwrite";
c. The Undo in word processors is also improved so that even deleting the entire contents of the f 1e and saving it is undoable;
d. There is a file-compare feature that can show exactly the textual differences between two or more files while disregarding irrelevant data such as line breaks and fonts;
e. Switching the dictionary also automatically switches the language correspondingly in the small window or area where the word has to be entered;
f. When using the dictionary the user can use also forward and/or backwards movement, so that he can go back or forward to previously checked words;
g. If there is a digit in the middle of a word (and/or if it is attached at the beginning of the word) it is at least marked as a possible error;
h. When opening files with the windows dialogue box the dialogue box automatically adjusts its size to a size that is sufficiently large to display the full file name if one or more of the file names that are displayed is longer than the default, and/or a slide bar is added (for example at the bottom) that allows the user to scroll and see the full name;
i. If a file name is even too long to fit the line even when the dialogue box is in full size and/or to fit the top line of the Word Window and/or the window of other applications and/or the explanation box, the filename is preferably automatically wrapped into two or more lines and/or the font that displays the file name is automatically reduced in size by making it smaller and/or by making it thinner, and/or the user can click or otherwise jump to the end of the line and see the rest of the file name and/or cause the filename to scroll;
j. When deleting a file in the dialogue box that displays existing file names, by default immediately after the deletion the display is updated so that the list of files is displayed more or less in the same position.
49. An Operating System wherein in at least one word processor at least one of the following features exists:
a. Two files can be merged into a single file with highlighted changes just as if one of the files was created out of the other while keeping the "highlight changes" option to On;
b. Cut & paste of one file over another file and/or cut & paste of any section over another section when "highlight changes" is set to ON

automatically generates the highlighted changes between the two sections as if they were made by actually changing one to the other;
c. The word processing program behaves consistently with cut & paste where Internet pages are involved, so that if the links are to local images then they are automatically inserted into the document file itself, and if they are based on links to the actual Internet then they are included internally in the document and/or are saved as links, and/or the user has a choice about this;
d. The word processing program remembers automatically in the "Open file" dialogue box and/or in the "Save" dialogue box if the user typed last time a filename (or path) in English or in another language and leaves this as the default for the next time;
e. The user can undo the last changes even after closing and reopening a file, and this enabled by saving the undo data in the file itself, or by saving it in another local file, so that the original file only contains a link to the associated local undo file;
f. The word processor program allows the user also options of searching and/or substituting based on or including style and/or shape and/or size and/or color instead of just character strings;
g. The word processor program allows the user also options of searching for the next marked changes;
h. Combining two paragraphs or deleting the empty line between them does not change the fonts or style of the first paragraph, and fonts and/or style in the 2nd paragraph change after connecting it with the 1st paragraph only if the user allows this by default or requests this specifically;
i. If the user wants to mark large areas with the mouse, while the mouse key is still pressed, the user can use other location commands instead of waiting for the pages to scroll, and then the entire area till the next location becomes marked;

j. If the user wants to mark large areas with the mouse, pressing some key can significantly increase the speed of the scrolling;
k. If the user wants to mark large areas with the mouse, moving the mouse further to a more extreme position significantly increases the speed of the scrolling;
l. If the user wants to mark large areas with the mouse, moving the mouse further to a more extreme position significantly increases the speed of the scrolling and said effect is at least one linear and exponential;
m. If the user already marked a section for example with the mouse and then uses the mouse to click on something else and then wants to go back and increase or decrease the marked area, he can still use the mouse and/or other keys to go back and extend or reduce the section without having to start marking again from the beginning;
n. If the user first marks the entire file he/she can then use the mouse and/or other keys to reduce the marked section or remove parts of it;
o. The user can choose a specific font color and/or font attribute, which is kept automatically until changed again, so that this text appears wherever the user adds it to previous text, regardless of the color or other attributes of the previous text where the new text is inserted;
p. The user can also search for numbers or letters of logical paragraph numbering;
q. The user can automatically reformat all the logically numbered paragraphs globally or in a marked section that contains multiple indentation levels, by at least on of defining the indentation for each level, and defining general incremental indentation rules.
50. The method of any of the above claims wherein in at least one word processor at least one of the following features exist:
a. Two files can be merged into a single file with highlighted changes just as if one of the files was created out of the other while keeping the "highlight changes" option to On;
b. Cut & paste of one file over another file and/or cut & paste of any section over another section when "highlight changes" is set to ON
automatically generates the highlighted changes between the two sections as if they were made by actually changing one to the other;
c. The word processing program behaves consistently with cut & paste where Internet pages are involved, so that if the links are to local images then they are automatically inserted into the document file itself, and if they are based on links to the actual Internet then they are included internally in the document and/or are saved as links, and/or the user has a choice about this;
d. The word processing program remembers automatically in the "Open file" dialogue box and/or in the "Save" dialogue box if the user typed last time a filename (or path) in English or in another language and leaves this as the default for the next time;
e. The user can undo the last changes even after closing and reopening a file, and this enabled by saving the undo data in the file itself, or by saving it in another local file, so that the original file only contains a link to the associated local undo file;
f. The word processor program allows the user also options of searching and/or substituting based on style and/or shape and/or size and/or color instead of just character strings;
g. The word processor program allows the user also options of searching for the next marked changes;
h. The word processor program allows the user also options of searching for the next word marked as possible error;
i. Combining two paragraphs or deleting the empty line between them does not change the fonts or style of the first paragraph, and fonts and/or style in the 2nd paragraph change after connecting it with the 1st paragraph only if the user allows this by default or requests this specifically;
j. If the user wants to mark large areas with the mouse, while the mouse key is still pressed, the user can use other location commands instead of waiting for the pages to scroll, and then the entire area till the next location becomes marked;
k. If the user wants to mark large areas with the mouse, pressing some key can significantly increase the speed of the scrolling;
l. If the user wants to mark large areas with the mouse, moving the mouse further to a more extreme position significantly increases the speed of the scrolling;
m. If the user already marked a section for example with the mouse and then uses the mouse to click on something else and then wants to go back and increase or decrease the marked area, he can still use the mouse and/or other keys to go back and extend or reduce the section without having to start marking again from the beginning;
n. If the user first marks the entire file he/she can then use the mouse and/or other keys to reduce the marked section or remove parts of it;
o. The user can choose a specific font color and/or font attribute, which is kept automatically until changed again, so that this text appears wherever the user adds it to previous text, regardless of the color or other attributes of the previous text where the new text is inserted;
p. The user can also search for numbers or letters of logical paragraph numbering;
q. The user can automatically reformat all the logically numbered paragraphs globally or in a marked section that contains multiple indentation levels, by at least on of defining the indentation for each level, and defining general incremental indentation rules;
51. A System for improving the efficiency, comfort, and/or reliability in Operating Systems, comprising at least one of:
a. A mechanism for allowing the user to define at least one User which the system will enter by default and without a password if the user does not request to enter a particular User after a certain time;
b. A mechanism for allowing the user to define at least one User which the system will enter by default and without a password if the user does not request to enter a particular User after a certain time, and wherein if the system enters the User without password, it enters a limited mode where it takes no commands from the keyboard or mouse or has other limitations until the user enters some password;
c. A mechanism by which backup software can automatically rename the older versions of the same back-up-files on the backup media with some automatically sequenced extension, so that the user can automatically keep and track also older versions this way;
d. A mechanism for automatic backup of important files to the default backup directory and/or drive, so that each relevant file that has been created or changed and has not been updated for more than a certain time period, and/or after a certain threshold amount of change even if less time has elapsed, is automatically backed-up on the default back-up media;
e. A mechanism wherein during each boot the system keeps a log of all successful steps in the boot, and so even if a certain step causes a crash so that the system can't even report the problem, in the next boot the system knows by the incomplete step in the log exactly where it crashed the last time and can automatically complete the boot this time without the problematic step and can report to the user exactly what the problem was and/or can automatically remove the problem and/or offer the user to chose among a few possible corrections to the problem;
f. A mechanism for allowing the user to execute files in DOS mode also by clicking on or near their name instead of having to type it.
52. The system of any of the above claims wherein at least one of the following features exists:
a. If at least one of two compared files already contains marked changes, a different indication is used between the old changes and the new changes generated by the comparison;
b. If at least one of two compared files already contains marked changes, a different indication is used between the old changes and the new changes generated by the comparison, and said different indication is by at least one of: Using additional colors, using different special icons and/or marks near the old changes and/or near the new changes, using different special squares and/or other frames around the old and/or the new changes, using special fonts and/or other font characteristics, and marking the old changes are automatically by more faded or less lit colors;
c. When making file comparisons the system uses various heuristics in order to extract from the document important information about its structure, based on at least one of identifying headlines and identifying other different characteristics of various sections, and uses these cues to try to avoid erroneously mixing between sections;
d. When comparing files, if the user sees that one or more parts of the documents have not been properly merged, the user can mark the problematic section and tell the system to try again to merge more properly the problematic section or sections;
e. The system allows to compare also more than two files in each step, and so in the merged file of more than files changes that come from different files are marked in different colors or marked differentially by other methods;
f. When the track changes feature is On and the user breaks an automatically numbered paragraph, only the new break and the change in subsequent renumbering are shown, and the part after the break is not marked as new text, and when comparing files the same consistent difference is shown;
g. When a text is marked as deleted as a result of track changes or of file comparison the user can mark the deleted text or part of it and press a key or button or otherwise execute a command which can instantly undelete it;
h. The user can mark and copy text that is marked as deleted or any part of it and can paste it back at the same place or elsewhere as normal text;
i. The user can use a command that fades (or otherwise changes) the color of the older changes so that all the new changes from that point on will stand out;

j. The user can define separate colors for displaying the changes on the screen and when printed;
k. The user can define separate colors for displaying the changes on the screen and when printed, and by default the on-screen display is the automatic colors, and the printing by default in black if a black and white printer driver is used;
l. When comparing a group of two or more files, a summary table or other type of index can be automatically generated so that the table or index indicates which color was added on which date, so that the user can clearly see which change was entered at each date;
m. When comparing a group of two or more files, the date in which each section or element was added or changed is automatically indicated near the relevant text;
n. When comparing a group of two or more files, the files are automatically sorted by date before creating the comparison, and each new section or element is dated automatically according to the first time it appeared.
53. The system of any of the above claims wherein in a word processor URL
links are automatically and dynamically broken and restored between the lines as the paragraph changes, according to slashes and/or underlines and/or dots and/or other special characters, and when the user presses the link, it is treated as one consecutive link regardless of this automatically changing break between the lines.
54. The system of any of the above claims wherein at least one of the following features exists:
a. The word processor can allow the user to define page numbering that starts from a certain value other than 1;
b. The word processor can allow the user to define page numbering that starts from a certain value other than 1, by letting the user use a formula, so that the user can specify a variable that represents the page number plus some additional number;
c. Commands such as for example "copy" are extended so that multiple destinations can be used, so that for example copy "bet*.doc 1: n:" will copy all the relevant files to both destination drives/directories;
d. When copying a large group of files the user also has an option of "No to all" if he is asked if to overwrite files with the same name;
e. When the user searches for files on the computer the "find files"
window allows him/her to enter also more than one file name at the same time, so that all the files can be searched for during the same disk access.
55. The system of any of the above claims wherein in statistical packages when correlations or other types of output are displayed for a large number of variables, at least one of the following features exists:
a. The user can instruct the system to automatically mark for him/her the most significant correlations and/or other result types;
b. The user can instruct the system to automatically mark for him/her the most significant results, and the criteria for which correlations and/or other result types are sufficiently significant can be at least one of:
Some default criteria defined by the user and/or automatically by the system, such as for example only correlations above a certain value and/or significance above a certain value, or the cutting points automatically and/or by user definition can change dynamically according to the results, and/or the best results are marked or displayed according to a certain top percentage;
c. The user can mark one or more sections of the results so that these automatic marking or statistics will be run only on parts of the results;
d. The system can report various meta-statistics, wherein said meta-statistics include at least one of: what percent of the correlations are beyond certain cutpoints, what is the significance of these meta-results, what number of results was marked out of what total, what percent it is, and what is the chance of having such a meta-results by chance;
e. The system use more than one type of mark, so that 2 or more levels of significance are marked differently, more conspicuously and/or with different colors;
f. The system can automatically sort the results according to their value and/or importance and or significance;
g. Instead of marking correlations or other results, only the relevant results that fit the criteria and/or would have been marked are printed, thus saving paper and time;
h. Instead of marking correlations or other results, only the relevant results that fit the criteria and/or would have been marked are printed, thus saving paper and time, and this is accompanied by meta-statistics that refer also to the non-printed results;
i. The system can automatically and/or by user request generate also various graphs for visually displaying said meta-statistics;
j. For the marking and/or sorting and/or meta-statistics the system can automatically ignore at least one of: All the correlations of variables with themselves, and any other correlations that the user marked as less meaningful and/or that the system can automatically determine as being less meaningful;
k. The user can request to run various procedures also on lists of variables defined by exclusion;

l. The user can choose if the correlations will be sorted by absolute correlation, with negative correlations mixed with positive correlations, or the negative correlations appear separately;
m. The user can request that the sorting by correlation level be done separately automatically for each variable, so that for each variable the correlations are automatically sorted;
n. The user can request a combination, so that there is a sorting within each variable, but the variables themselves are automatically sorted so that the variables that have the highest correlations in general appear first.
56. The system of claim 55 wherein at least one of the following features exists:
a. These automatic markings and/or meta-statistics can be applied for each statistical procedure or command separately or for to the entire set of procedures or commands on the same Run;
b. The system can automatically run the tests also on automatic randomly divided sub-samples, and the number and/or size of the sub-samples is determined automatically according to various rules and/or according to various parameters of the actual data;
c. The correlations (or other statistics results) can also be marked differently and/or displayed in a different section if they are more stable across random sub-sample tests, and/or their sorting can take these stability results also into account;
d. For defining automatic random sub-samples the user may choose among a number of pre-defined sets of rules or define his own rules, and these definitions can then be applied automatically to any of the normal statistical procedures that are used for that run.
57. A System for improving the efficiency, comfort, and/or reliability in Operating Systems, wherein at least one of the following features exists in Internet browsers and/or other programs that access the Internet:
a. The browser can request from the server also to retrieve just a part of an Internet page, as defined by a certain line and/or the value near certain words or areas or fields in the page, and this is supported by the server being able to search also normal web pages and send back just the desired data in response to such a request;
b. The user can mark a group of links in the history list and/or in the bookmarks list of the browser, and/or in any web page that contains links, so that after the user marks the desired group or groups of links, the browser can automatically open multiple windows so that each window accesses automatically one of the marked links and/or the browser can save multiple files automatically;
c. If multiple files are saved automatically, they are saved by default with their original names, or the user can define a group name which is incremented automatically to differentiate between the files in the group, and/or the system can automatically read he title in each of the files or web pages and use that as the name;
d. The user can easily reduce or increase the size of the printed fonts, by at least one of: A specific command when printing, and reducing or increasing the size of the fonts on the screen so that this affects automatically also the printing;
e. Reducing or increasing of fonts can be also done for a specific web page and/or for a specific site instead of Globally, since for example in Netscape the changed size remains also when;
f. The same command that reduces or increase the font size on the page (and/or another command) can cause also the images to automatically grow or shrink in addition to or instead of the fonts, and this can be done independently of changing the size of the Window;
g. The http protocol is improved so that images are automatically saved by web servers in more than one size and the browser can automatically request the same image again with some parameter that tells the server to send it in a larger size and then the server automatically sends again the same image in a larger size;
h. The user can mark a group of links in the history list and/or in the bookmarks list of the browser, and/or in any web page displayed by the browser that contains links, and can automatically print the group;
i. In sites where the user has to print separately each page in a document, the browser can allow the user to define a set of steps to be performed automatically, such as pressing the icon or link that leads to the next page and then printing it, so that after pressing the "next page" link and printing it, the user can activate a command that tells the browser for repeat the last N actions an additional M times and/or until it is no longer possible;
j. When pressing a Javascript button which designates a link with the right mouse key, the same options are available as when pressing the right mouse button over normal links, such as Open in a new Window instead of in the current window, or Save the link target instead of opening it;
k. When typing one or more words or part of a url address in the location window of the browser, the browser does not attempt to go automatically to the ".com" address, but can check also if the address can be resolved also to other Top Level Domains or domain extensions, and then preferably the browser opens a a scroll Window of the existing addresses and lets the user choose the desired one., and/or the browser can also check automatically in the background, which of these possibilities shows up higher and then sort the options by popularity or even choose automatically the most popular option;

l. The user can tell the OS and/or the browser and/or the service that the user acquired domain names from, to automatically perform all the actions necessary to renew one or more specific domains on time even if the user forgets to do it, by at least one of the following methods: 1.
The browser can automatically login to the site and perform the necessary actions for renewal, 2. The service is instructed to renew it automatically like a subscription if the user does not cancel the automatic renewal until the automatic renewal time;
m. The OS and/or the browser can automatically sense the width or size of the screen and/or the resolution and/or number of fonts available, so that if a table does not fit in the page and necessitates creating automatically a horizontal scroll bar, the browser and/or the OS can decide automatically to reduce the font size accordingly so that the scroll bar is not needed and/or reduce only the width of the fonts, so that the fonts become thinner.
58. A computer system wherein the speed of the hard disk is increased and/or its power consumption is reduced, by at least one of the following features:
a. Adding at least one fork with an additional head to the rotating arms that contain the read/write heads, so the each arm now only needs to move part of the way in order to reach any desired track;
b. Adding at least one fork with an additional head to the rotating arms that contain the read/write heads, so each arm now only needs to move part of the way in order to reach any desired track, and both heads can read/write data simultaneously, thus increasing also the data transfer rate;
c. Using multiple independent arms (so that there are multiple hinges of arms sets instead of one;
d. Using multiple independent arms (so that there are multiple hinges of arms sets instead of one), in combination with access order optimization, such as NCQ & TCQ.
e. Using at least one stationary arm that reaches more or less the middle track, and carries an additional rotating plate which contains multiple read-write heads, so that considerably less movement is needed to reach any track;
f. Using at least one stationary arm that reaches more or less the middle track, and carries an additional rotating plate which contains multiple read-write heads, so that considerably less movement is needed to reach any track, and the heads can read/write data simultaneously, thus increasing also the data transfer rate;
g. Using at least one rotating plate with a hub outside the area of the disk's rotating plates, wherein said plate contains multiple read-write heads, so that considerably less movement is needed to reach any track;
h. Using at least one rotating plate with a hub outside the area of the disk's rotating plates, wherein the plate contains multiple read-write heads, so that considerably less movement is needed to reach any track, and the heads can read/write data simultaneously, thus increasing also the data transfer rate.
59. The system of claim 58 wherein the shape of the plate and/or the positions of the heads on it is specially designed to correct for non-linearity effects, so that the range of movement between tracks covered by each head is more or less the same.
60. The system of any of the above claims wherein when Internet pages are printed, the browser and/or the OS and/or the printer driver automatically check if lines are about to be truncated in the printing and, if so, this is automatically prevented by at least one of:
a. Automatically converting to landscape mode;
b. Automatic additional line wrapping if possible;
c. Automatically reducing the left and/or right page margins;
d. Automatically reducing the font size;
e. Informing the user about the problem and asking him to choose from a number of possible solutions;
f. Allowing the user to decide to truncate less important parts on the left of the pages;
g. The user can mark just part of the displayed HTML page and then use a command that prints only the marked area.
61. The system of any of the above claims wherein at least one of the following features exists:
a. The user can disable the Autorun feature that enables programs on CD's to start running automatically when the CD is inserted into the computer, without having to disable for that the Auto insert notification for that drive;
b. When printing Internet pages the browser or the printer driver shows the number of pages that will be printed before the user starts the actual printing;
c. The user can logically disable or change the function that pressing various keyboard keys has on the OS and/or on any programs that are running;
d. The dynamic linking possibilities are improved so that the user can call and use any Windows DLL from a DOS program and/or vice versa, so that Windows modules and DOS modules can transfer data between them without having to use intermediary file storage;
e. The dynamic linking possibilities are improved so that the user can call and use any Windows DLL from a DOS program and/or vice versa, by defining appropriate stubs and/or API interfaces that bridge between the two types, including any necessary conversions that are needed for compatibility, and/or using sockets and/or client/server connections within the same computer;
f. When the user searches for programs in the "Start menu" the user can request the System to automatically sort the list of installed programs in the start menu by alphabetic order, or to jump automatically to a given program in the list by typing the first letters of its name and/or a search string that is at least similar to the desired name.
62. The system of any of the above claims wherein at least one of the following features exists regarding changing the size of fonts and/or icons and/or images:
a. The user can reduce the size of fonts and/or icons and/or images on the computer's desktop by a command that affects the entire desktop and/or a marked section in it by any desired factor, and without having to restart the computer to see the change, and the change is seen instantly, like when increasing or reducing the font size in the browser;
b. If increasing the size of fonts and/or of icons on the desktop causes a problem that some icons no longer fit on the desktop, this is automatically handled by at least one of: 1. Creating vertical and/or horizontal scroll bars at the edge of the desktop, like in a normal directory window in which there items that don't fit in the Window, so that the user can drag items back in and/or resize the desktop in order to get rid of the scroll bars; 2. The system can automatically reduce spaces between icons and/or recommend to the user the maximum size that can be used without problems;
c. The OS supplies the user with an Undo command and/or a Redo command for changes in the desktop icon sizes and/or for moving icons;
d. The OS supplies the user with an Undo command and/or a Redo command for changes of moving and/or resizing icons in a directory and/or in other windows;
e. The undo of moving and/or resizing icons is incremental, so that the user can roll back till the start of the changes;
f. The OS automatically prevent the possibility that reducing the resolution and/or increasing the system font size can cause the window that asks if to keep the new resolution to appear outside of the desktop and/or cause the text is various system message windows to appear truncated, by automatically calculates the new size and ratios and thus makes sure that all the message windows appear in a visible area and that the text size in them fits the message window;

g. If the user changes the screen resolution, the fonts and/or icons on the desktop and/or in other places or applications by default remain more or less the same size, by automatically correcting for the changes caused by the changed resolution, so that if the user increases the resolution the fonts and/or icons and/or images can be automatically increased in size to compensate for this and if the user decreases the resolution the fonts and/or icons and/or images can be automatically reduced in size to compensate for this, with or without keeping the aspect ratio between height and width;
h. The user can also undo or redo changes such as for removing or adding or changing the position of items that constantly appear near the task bar;
i. By default at least the distances between the icons are corrected in each direction by its appropriate ratio of change.
63. The system of any of the above claims wherein in Tablet PC's and/or similar devices and/or other devices that accept direct input by handwriting, when the user enters text in handwriting, the system automatically solves the problem of insufficient room in a text input box or window by at least one of the following ways:
a. Letting the user continue his/her writing even beyond the edge of the input box, and then the Operating System and/or the browser or other application automatically knows from the continuity of the written text and/or from the continuity in time that this is the continuation of the same text, and therefore interprets it correctly as if it is still in the input box even if its spills out;
b. If the user runs out of space in the input box, the System and/or the browser and/or other relevant application automatically extends the box to the appropriate direction;
c. The area where the user is writing can automatically be zoomed in, however this automatic zoom does not effect the user's hand writing itself, so that the handwriting can remains at the same size and position;
d. At least the part of the handwriting that spills out of the input box is at least partially transparent and/or is visible only when the user hovers or positions the pen and/or cursor and/or mouse near it;
e. If the user for example is entering text by handwriting in some open text window and his handwriting exceeds the edge of the window, the System automatically recognizes by the continuity of the hand writing and/or of the temporal sequence that this belongs to the same text and thus the system keeps the focus in the current application even if the user for spills letters on another nearby window of another application.
64. The system of any of the above claims wherein the installation disk of the OS
contains also one or more typical usable disk images, so that the system can be instantly installed from the most appropriate image, and then the system automatically determines the actual computer's configuration and simply corrects and/or adds appropriate device drivers and/or makes other necessary adjustments, as if the system was already installed on that computer and the hardware was later changed.
65. The system of any of the above claims wherein at least one of the following features exists in at least one word processor:
a. The user can mark one or more areas in which track changes is marked as On or Off, so that different areas can be with the track changes On or Off at the same time;
b. The user can use a mode which automatically adds the words "(Currently amended)" when the user makes changes in a claim, and the words "(Currently amended)" are automatically added without track changes;
c. The user can use a mode in which deleting an entire claim automatically causes the deleted text to disappear, and the word "(Canceled)" to automatically appear instead, as if track changes has been temporarily suspended;
d. The user can use a mode in which when adding new claims at the end of the claims section, the track changes is automatically set to Off and the word "(New)" is automatically inserted at the beginning of the new claim;
e. The user can mark any area in an image or part of it and at least one of: delete it, copy it, move it, and rotate it so that all the elements in the marked section are rotated in synchrony, etc.;
f. The copy command can also be activated cumulatively, so that a sequence of copy commands can create a cumulative buffer of consecutively pasted texts, so that afterwards for example pasting at a certain position will paste back the consecutive group of pasted texts as one sequence;
g. in searching the dictionary and/or the thesaurus the user can search for synonyms of words with a specific pattern or length, or for the word itself when partial data exists, so that for example the user can use question marks or other designation to designate unknown characters.
66. The system of any of the above claims wherein in at least one of word processing programs and/or Internet browsers and/or other software the user can move any icon and/or any menu item and/or sub-menu item to any desired position by dragging it with the mouse and at least one of the following features exists:

a. The same icon and/or menu item automatically continues functioning on the new position;
b. This new position is saved automatically also after the user closes the application;
c. The user can also undo any such changes;
d. The user can also undo any such changes even after the application has been closed and reopened;
e. This feature is supported automatically for by compilers, so that the programmer does not have to do almost anything in order to enable it.
67. The system of any of the above claims wherein at least one of the following features exists:
a. When opening additional pages in the browser as additional tabs within the same window, the browser and/or OS are changed so that Alt-F4 closes only the current page (tab) and/or Alt-Tab switches also between the tabs, and/or when closing a tab page by Alt-F4 the browser or the OS warns the user or asks if he/she wants to close just that page or the entire browser window with all the open tabs;
b. There is a command which allows moving only between the windows of the same group, unlike alt-tab which moves also between the other open windows.
68. The system of any of the above claims wherein at least one of the following features exists:
a. When more than one OS is installed on the same computer the user can switch the default OS to whichever option he/she wants and/or change the order of the options (where typically the first option becomes the default) by letting the user drag an option line with the mouse to a different position in the screen that asks which system to boot;
b. When more than one OS is installed on the same computer the system automatically remembers the boot option that was last chosen and makes it automatically the default for the next boot until the user changes it;
c. When more than one OS is installed on the same computer the system automatically makes the chosen option in the boot menu into the first choice on the boot menu on the next boot;
d. Network computers in wireless networks use also automatic triangulation of the source of transmissions, so that the coordinates of the allowed space are entered into the system and/or only specific locations of known devices are white-listed, and so any intruder from an outside position cannot pretend to be an authorized user even if he succeeds in finding a vulnerability in the encryption.
69. The system of any of the above claims wherein in order to save bandwidth when looking for updates, at least one of the following is done in browsers and/or the html protocol is changed:
a. The html protocol is changed so that it is possible to define "refresh on a need basis", which means that the refresh command is initiated automatically by the site when there is any change in the page, so that the browser can get a refresh even if it didn't ask for it;
b. The html protocol is changed so that the browser asks for refresh more often, but if nothing has changed then the browser gets just a code that tells it to keep the current page or window as is;
c. When the refresh is sent, it can be a smart refresh, which tells the browser only what to change on the page instead of having to send the entire page again;
d. The page or part of it can remain open like a streaming audio or video so that the browser always waits for new input but knows how to use the new input for updating the page without having to get the whole page again and doesn't have to do anything until the new input arrives.
70. The system of any of the above claims wherein at least one of the following features exists:
a. When the user enters the task manager he/she can mark multiple programs and then tell the OS to close all of them at once;
b. When the user tries to force the closing of an application through the task manager and/or in other contexts, in case said application hasn't been closed, the OS automatically tries again repeatedly to close it at least for a certain number of times and/or till a certain time limit.
71. The system of any of the above claims wherein at least one of the following features exists in at least one word processor:
a. If track changes is used and the strikeout text contains letters on which it is hard to notice the strikeout, the strikeout line is automatically moved higher or lower on such characters, and/or for strikeout line is automatically made of a different thickness and/or length and/or angle and/or color;
b. Striked-out words behaves like normal words on the dictionary;
c. The user can mark one or more areas in the file and activate the "accept changes" command and then the "accept all changes" can be automatically done only in the marked areas;

d. When there are different sets of marked changes, the user can instruct the word processor to automatically accept all the changes but only from a certain date or dates or a certain source or sources;
e. The dictionary allows the users to use back arrows in order to go back to previous points in the dictionary. Another preferable improvement for example in words processors, and especially for example;
f. When the user wants to correct intermittently two or more sections in the same file, the user can press a key or combination of keys which causes the position in the word processor to jump automatically between the various last edited sections;
g. The word processor automatically checks the date in the system in short intervals and thus updates the date field automatically whenever it has changed, and not just if the user reopens file or prints it;
h. The user can mark with the mouse more than one area at the same time by pressing some key that tells the application not to remove the mark from the previous marked area or areas;
i. When track changes is used and a section is deleted and then reentered next to the deleted text, the word processor can automatically integrate then by removing the deleted redundant part;
j. Word processors and/or other applications and/or the dialogue box can remember and display automatically the last requested file pattern when the user tries to open a new file and if the user presses Enter then this last pattern is used;
k. When the user tries to make a repeated change but confirm it at each step (instead of just global change), the position of the search-and-replace dialogue box is always kept constant and the text itself is automatically always scrolled so that the relevant part is visible;
l. When the user tries to make a repeated change but confirm it at each step (instead of just global change), the position of the search-and-replace dialogue box can move, but when it moves the mouse cursor automatically jumps with it, so the user does not have to move the mouse to correct for the change is the position of the search-and-replace dialogue box;
m. If the user copies and pastes a new http link over a previous http link, the word processor (or other application) automatically replaces also the internal link to automatically comply with the visible link, or saves only the visible link and uses that information when the user tries to access the link;
n. When the thesaurus is used the dictionary shows near each newly found word of the thesaurus also its translation to the other language and/or a short description of its more precise meaning in a few words;
o. The thesaurus and/or the dictionary automatically takes into consideration the context in which the word exists in the file, so that when displaying semantic trees or groups of semantic branches the groups or branches are pre-sorted according to the most likely meaning when taking said context into consideration and/or only the most likely meaning branch is shown;
p. The automatic typing-error-correction system takes into account also the context, and at least one of The system chooses the word most likely according to context when there is more then one reasonable correction and/or in cases the system is not sure it shows the user that there is more than one likely correct word and asks him/her to choose the preferred one;
q. The user can activate a command which automatically indicates all the words in which spelling errors were previously automatically corrected the word processor, so that the user can check specifically these words to see if there were any such errors of changing the word to something that was not indented by the user;
r. The user can change page definitions also for a single page or range of pages and not just automatically for all the pages;
s. When using cut & paste if the user presses by mistake again "~C"
(copy) instead of ~v (paste), the user can press some undo key which brings back the previous copy buffer.
72. A computer Operating System in which in word processors and/or in editors that are used for editing software programs the editor can mark automatically matching pairs of brackets in a way that the user can easily see the matching pairs and wherein said marking is done by at least one of a. Showing each pair in a different color;
b. Show the matching pairs in a different style or for in a different height.
73. The system of any of the above claims wherein at least one of the following features exists:
a. In the dialogue box that allows the user to choose directories and files and/or in the explorer Window file extensions are shown even when the associated application is known;
b. In the dialogue box that allows the user to choose directories and files and/or in the explorer Window in addition to the icon that shows the associated application the window shows also an additional Icon that represents the general type of the file regardless of the associated application;
c. The user can change the position of the normal boxes on the taskbar that represent normally running programs by dragging them with the mouse, so that the user can conveniently re-arrange their position without having to close and reopen these programs.
74. The system of any of the above claims wherein at least one of the following features exists:

a. If the user aborts a virus scan and later wants to continue, the program can automatically continue from the last point reached;
b. The user can add to a portable computer a mini-keyboard which completes for the side keypad and/or any other keys in a way that tells the portable computer not to regard it as a replacement keyboard that disables the portable's built-in keyboard but regard it as adding certain keys to the internal keyboard;
c. The user can use the combined fax/printer/scanner and/or a normal scanner to send faxes directly through the Internet through the computer's Internet connection, which is enabled by a change in the device's firmware and/or by adding the appropriate software to the computer, so that the user can send faxes directly and instantly the same as he/she would be sending them through a normal phone line, except that the fax is sent through the Internet;
d. If the user closes an application window or tab he/she can still press some undo button which automatically reopens the last closed window or tab or file, and this is enabled by the relevant applications and/or the OS creating automatically a temporary backup of the open window or file;
e. When trying to delete a directory through a command prompt window the OS tells the user that it is a directory and tells him/her also the number of subdirectories and/or the total number of files in that directory tree and/or the total size;
f. The user can tell the OS not to enter sleep mode until a specific application has finished running;
g. The user can tell the OS not to enter sleep mode until a specific application has finished running by clicking on the applications window or for example on the square that represents it in the task bar and marking the relevant option in a menu;
h. If the user does not find a certain file name the OS automatically checks for similar names and shows the user the list of closest file names available, sorted by closeness;
i. If the user does not find a certain file name in the start menu or on the desktop the OS automatically checks for similar names and shows the user the list of closest file names available, sorted by closeness;
j. When an internal Window of a program is in front of a background window of that program and does not allow accessing the background window until the front window is closed, the OS automatically allows the user at least to move the previous window and/or perform at least other acts that do not change the way the software behaves but allows the user at least to control the view of the background window;
k. The fax logs automatically indicate near each communication also the resolution that was used in the transmission and/or if the fax was in B/W or in color;

l. The user can indicate example that the firewall should not close the web and/or the screen saver should not be activated until a certain application has finished performing some operation;
m. When a computer becomes compromised by a Trojan and becomes a seam-relay station, there are special sites or routers which identify the attacking computers and can send the users who's compromised computers have participated in the attack automatic warning messages, directly to their IP address or to their email;
n. IP addresses of compromised computers are automatically updated in one or more special URLs in real time and the OS and/or the browser automatically checks regularly in one of these official sources and sees if the IP address fits the real current IP address of the current user's computer and then warns the user;
o. There are on the Internet databases which automatically link email addresses or other identity indictors with the current IP of the user, which are automatically updated each time the user connects or disconnects from the Internet and allow also efficient searching according to the IP, and they can be used for sending automatic email warnings to users who's computers have been compromised and have become spam relay stations;
p. The firewall and/or the Security system and/or the OS can also indicate to the user automatically whenever some application is trying to download a file, or the user is warned only if an apparently executable file is being downloaded;
q. The firewall allows the user to change the permissions of multiple applications at the same time in the firewall's table by marking entire columns or other areas and then changing automatically the permissions in the marked areas.
75. The method of any of the above claims wherein in order to market the OS in low-income countries without damaging sales in countries where a normal price can be charged, the OS is sold at the desired low-income countries at the low price with few or no limitations that result in reduced functionality to the user, at least one of the following steps is used:
a. Limiting these cheap versions so that at least part of the interface and/or some application works only in languages that are not useful to most people outside the cheap countries;
b. Displaying a warning whenever the OS is started that it is illegal to use this version of the OS in any either countries than the list of qualifying countries, unless the user has a citizenship of one of these countries and/or is resident there;
c. The OS checks automatically when the user connects to the Internet if his/her IP address is in one of the qualified countries and, if not, require some certification to be filed which proves that the user is entitled to use that version of the OS outside of those countries and/or automatically stop working or start working with only limited functionality after a certain time period if said certification has not been filed;
76. The system of any of the above claims wherein at least one of the following features exists:
a. If there are more than once CD and/or DVD installed on the same computer they can be connected to a common audio connector in parallel or with some multiplexor, or cables from more than one drive can lead to a common connector or multiplexor near or at the sound card;
b. No direct connection to the sound card is needed from any of the drives, and each CD or DVD that contains sound is played by activating the sound card directly through the software that plays the data, in the same way that the sound is played from an avi file on the hard disk.
77. The system of any of the above claims wherein at least one of the following features exists:
a. When uploading a file while submitting form in an Internet browser, the browser specifically warns the user about the file name and/or path and/or size, so that the warning is more specific about such files, instead of or in addition to the normal warning if the user really intends to submit the form itself;
b. When the user types text for entering in some field in a form, the browser and/or the OS can keep it automatically in some buffer, so that if the user starts to type before the actual form field is reached, the typing is not lost but is added automatically the browser or by the OS
to the beginning of the input line;
c. The user can perform commands that affect a group of open windows, such as entering a command that prints all of them or that saves all of them or that bookmarks all of them - by entering the global command in one of the open windows of the same application, or by marking multiple boxes in the task bar and then entering the command;
d. The user can perform commands that affect a group of open windows, and in this mode the user choose automatic carrying out of the global command or to be prompted for each of the windows with the option to choose yes or no in each case;
e. The Internet browser lets the user to darken with the mouse a group of checkboxes and then with one command mark or unmark the entire group;
f. The Internet browser lets the user drag the mouse over a group of checkboxes, so that dragging it with the left button pressed immediately marks each box on the way and dragging it with the other button pressed unmarks each checkbox on the way, or vice versa;
g. When the user presses the Shift key (or some other key), marking or unmarking 2 checkboxes also marks or unmarks all the checkboxes in between;
h. When the user is filling Online forms, the Internet browser can automatically take into account the language and/or the character set of the text near each form field and automatically accept by default the input in the appropriate language or character set;
i. The user can unmark a radio button by clicking on it again or by using another mouse key.
78. A computer system wherein at least one of the following steps is used to protect the user from phishing attempts:
a. The browser or the email client automatically indicates to the user and/or warns him/her when the real href is different from the http address that is visibly shown in a link, or warns the user about this after he/she clicks on the link and gives him/her a chance to cancel before actually going to the link, and/or warns him/her that the link is phony, and/or displays an explicit recommendation not to click on the link even before the user clicks on it;
b. The browser or email client automatically indicates to the user also the real url that is within the href in the normal display of the page - next to the link or superimposed on it;
c. The browser or email client automatically indicates to the user also the real url that is within the href in the normal display of the page - next to the link or superimposed on it, and the browser or other application makes sure that this is clearly visible and/or ignores any font size and/or font color command which might hide it and/or makes it automatically even more conspicuous than the normal text;
d. The browser automatically makes sure that the url in the location window and/or in the display of real url which is shown even before the user clicks on the link is indeed displayed exactly like the actual url that it connects to, and if there are unprintable characters then they are marked with some sign and do not effect the printing of the rest of the url;
e. If there is any attempt by Javasrcipt or Active-X or some other portable code or any other program on the user's computer to put other data on top of the location Window then this is automatically prevented by the browser and/or the OS and/or the computer's Security System;
f. If there is any attempt by Javasrcipt or Active-X or some other portable code or any other program on the user's computer to put other data on top of the location Window then this is automatically prevented by automatically preventing other programs from putting any windows in front of the browser window unless the user explicitly transfers the focus to them, and/or by automatically intercepting windows that have a suspect size or shape or location or that otherwise have suspicious or unusual qualities;
g. Email messages that contain clearly misleading hrefs where the visible link does not fit the real link can be automatically blocked by spam filters, thus not reaching the user at all;
h. Normal spam filters are also improved to identify automatically for example typical patterns of mixing digits with letters in a way that tries to bypass word filters;
i. When the browser enters a site and/or for even before the user presses the link, or when the mouse is near the link, the browser automatically checks also a relevant WHOIS database and displays to the user automatically also the name under which that domain is registered and/or the country and/or the length of time this domain has existed and/or other details that can easily indicate to the user if a site is phony;
j. If the browser and/or the OS and/or the security system and/or other software also checks in one or more databases for known phishing sites, it also identifies suspect servers which were known to host such sites before and/or also checks if the domain seems to be related in one or more ways to previously known phishing domains, such as being registered to the same people, having the same email of the technical contact or billing contact, etc.;
k. There is one or more database on the Internet which collects typical word combinations and/or other typical patterns of phishing email messages, which the browser and/or other application can consult automatically, and/or the browser and/or other Internet application accumulates the typical wording patterns itself automatically when it identifies a phishing email by other methods, and thus the browser or other application can warn the user automatically of any email that seems like a typical phishing attempt;
l. The browser and/or other application and/or one or more Internet database gather list of at least the most common organization names used in typical phishing attempts, so that the browser (or other application) gathers this lists by itself and/or gets it from one or more online database, and then warns the user automatically about urls which contain the name of the organization in suspicious places.
79. A portable computer wherein the computer and/or the OS and/or the relevant part of the hardware can automatically increase or decrease its power consumption according to sensing if the computer is currently connected to the network electricity or is currently running on the batteries and/or the user can request it explicitly for a short time, wherein at least one of the following is done:
a. The hard disk's speed can be considerably improved;
b. The disk has at least two sets of engines or at least two sets of coils, which are used at different combinations in order to work in the low speed or in the fast speed; and/or the disk's DSP automatically starts working at higher MHz when the wall power is sensed; and/or more than one DSP can be used in order to speed up the processing;
c. The speed of the CPU can be improved so that it consumes more power and works faster;
d. The brightness of the screen can be increased.
80. The method of any of the above claims wherein the automatic error checking of at least one word processor includes also at least some statistical and/or semantic checking of unreasonable words or word combinations that are probably a typing error even if there is such a word and/or even if it is grammatically possible.
81. The method of claim 81 wherein the word processor uses at least one of the following methods to check for such errors:
a. Using at least some taxonomy of semantic knowledge;
b. Using a database of typical texts in which words and/or word combination of up to a few words are indexed according to their frequency of appearance;
c. Learning from the user's own behavior when such errors are made and then corrected by user.
82. The system of any of the above claims wherein the user can use a fax card or a combined fax-scanner-printer which is connected to the computer in order to actually send digital data files eventhough the connection starts like a fax communication.
83. The system of claim 82 wherein at least one of the following features exists:

a. The sending device can send one or more pseudo fax images which are actually digital data, and when it is transmitted by Fax the sending device uses a special code to tell the receiving device that one or more pseudo page images are actually a digital file, and the receiving fax is either a computer with a fax/modem card or for example a combined fax-scanner-printer which is also connected to a computer and thus can transmit the digital file to the computer as a digital file;
b. The two devices can automatically recognize each other during the handshake as having more than Fax communication capabilities, and thus can automatically switch to some other electronic file transfer protocol between them for exchanging digital files.
84. The system of any of the above claims wherein at least one of the following features exists:
a. When the user asks Windows to create a restoration point, the user has a choice of indicating if he/she wants a normal restoration point or also creating a full snapshot of the main system and registry files and/or the user can define in general if and/or when snapshot or normal restoration point will be generated when the system automatically creates them and/or the system automatically creates the snapshot files whenever it is about to make highly significant changes for example in the system;
b. Rollback info is saved automatically in more than one place, together with a copy of a sufficient reference base-point, so that the system has a much better chance of restoring it even if the registry becomes seriously damaged;
c. The registry entries are made independent of each other so that even if part of the registry is damaged it will not effect anything else;
d. The system uses transaction sequences in the registry and/or in other important system files or system areas like in a normal database with automatic rollback in case the transaction has not been completed;
e. If when trying to boot the system discovers that the system needs to load a previous snapshot of the registry and/or other critical system files, during boot the user is advised of the situation and can automatically view a list of the most recent snapshots and/or otherwise possible restoration points and can choose the most preferred ones to attempt and then the system restores it automatically and continues to boot;
f. At least one of the registry and other critical system files that are needed for snapshots are always automatically kept in at least two copies so that if one copy becomes unusable there is always an immediate backup of the most up to date version;
g. During boot the system uses the wasted time on the part of the user to display to the user at least one of Details about the number of safe restoration points that exist, various indicators of the health of the system, the current automatic back-up policy that exists, the amount of remaining free space on the disk, and the percent of disk fragmentation.
85. The system of any of the above claims wherein the system includes a firewall which allows giving specific applications differently rights for downloading and/or uploading information from the Internet and/or through all available communication channels or through specific communication channels.
86. The system of claim 85 wherein the different upload versus download permissions are enabled by at least one of a. Automatically showing the user the statistics of sending/receiving information near each application that has been allowed to access the Internet;
b. Defining a maximum ratio between upstream and downstream for each application;
c. Defining a maximum ratio between upstream and downstream for each application and automatically blocking excess uploading and/or warning the user and/or asking for his/her authorization;
d. Defining a maximum absolute amount of information that can be sent out per time;
e. Programs that the user wants to allow only to download data but not upload data are automatically prevented from any real access to the web, and the OS and/or the firewall and/or the security system intercept any attempt that these application make to contact the web and send the requests instead, and so only valid normal protocol requests for accessing web pages and/or for downloading data which are recognized by the firewall or other intermediate agent are allowed to go through;
f. The firewall or other agent for example cal also notice other suspect behaviors, such as requesting a web page with an unreasonable large parameters line or frequent repeated similar connections with parameter lines that keep changing.
87. The system of any of the above claims wherein the user can have two or more Operating systems running at the same time so that the user can jump between them by pressing some key or key combination or clicking on some icon, instead of having to shut down Windows and reboot, without using emulation.
88. The system of claim 87 wherein at least one of the following features exists:
a. There is a mirror image of the loaded and running OS like in sleep mode, so that while the user is in one OS the other OS is dormant;

b. The user can switch between the OS's after entering sleep mode;
c. Both Operating systems can be actually running at the same time and one or more additional OS elements are operating below the two (or more) Operating Systems and are in charge of the resource sharing between them;
d. Both Operating systems can be actually running at the same time and in this mode certain functions are automatically disabled or are available to only one OS.
89. The system of any of the above claims wherein at least one of the following features exists:
a. The hard disk has one or more separate heads which are used only for checking the media for errors and move automatically all the time or periodically once in a while to check this without interfering with the normal function of the hard disk;
b. The task manager automatically shows near each process also to which program and/or path and file name it belongs;
c. The OS and/or the word processor can identify automatically incremental updates of the same file according to at least one of the beginning of the file name and/or sequential numbering and/or date and time and/or by keeping automatically a log of the sequence of updating a file incrementally;
d. The OS and/or the word processor can use the knowledge of the update sequence of a series of files to search for each section or sentence when was the first time that it was entered;
e. The word processing program can ask the user automatically if various changes in the way the word processor operates are intended only for the current file or for all the files in the same directory or all the files of the same sequence or all files in general;
f. The word processor is improved so that when automatically saved files are offered after a crash, even if the user closes automatically offered files, he/she can still activate an option that restores them, even if the user in the meantime closes the word processor and then later reopens it;
g. The word processor keeps one or more buffers which point to the automatically saved files and has an indication which groups of files belong together and/or to which crash event they are related, and these files are kept in the original directories of the relevant files and/or in a special directory at least for a certain time period and/or as long as there is sufficient disk space and/or until their cumulative total space exceeds some value;
h. In the word processor the user can mark one or more sections and then toggle automatically between modes so that automatic numbers and/or letters can become manual letters and/or numbers and vice versa;
i. When the user searches for a specific file or file pattern in the windows explorer and/or in similar utilities either the files are displayed by default before the directory names or the user can easily indicate if he/she prefers the directory names before the file names or vice versa;
j. The word processor or browser can keep in memory different search strings in different open windows of the same application, so that the user indicates if he/she prefers sharing search strings between the open Windows or having one for all;
k. After the user makes changes in a certain position in the documents which causes jumping there he/she can also jump back to the position he/she was before the jump;
l. When copying text for example by copy & paste into an empty new file the headers and/or other file parameters can be automatically inserted into the new file automatically. Preferably the headers and/or other parameters are copied automatically but the user preferably can also choose for example to disable this feature or for example to disable parts of it;
m. When copying text for example by copy & paste into an empty new file the headers and/or other file parameters can be automatically inserted into the new file automatically, and the user can also choose example to disable this feature or to disable parts of it;
n. The user can simply jump between two places and then press some key (or click one of the mouse buttons) which marks the entire block between them;
o. The user can mark one place and then jump to another place and when reaching the desired destination press some key (or a mouse button) and the entire area between the two marks becomes marked;
p. The user can tell the browser to automatically merge two or more bookmark files while keeping the date of visiting and/or any other criteria as the ordering factor q. Copy & paste are automatically available from any messages displayed on the screen;
r. Copy & paste are automatically available from any messages displayed on the screen and/or the OS or some special application automatically allows the user to copy and paste from any text that appears on the screen, regardless of which program it belongs to.
90. The system of any of the above claims wherein at least one of the following features exists:
a. After programs finish installing and request a restart, by default the OS automatically determines if a full restart is needed, and then the OS automatically performs just logoff and logon instead of a full restart whenever it can determine that this is sufficient;
b. Program installers are improved so that the software vendors can easily indicate if after installation logoff logon is sufficient instead of full restart;

c. When the user himself/herself initiates a restart command, the OS
automatically asks the user if he/she really wants a full reboot and, if not, offers the user to automatically perform logoff logon instead;
d. The logon/logoff is added also to the normal Restart/Turnoff menu, so that for instead of showing only 3 options (Standby, Turnoff and Restart) the option of fast Logoff/Logon is also added;
e. If the user chooses full reboot and/or even if he/she chooses just logoff and the system begins to close applications, first of all only user applications are closed and not system processes, and the user can still press some key if he/she changes his/her mind in order to abort the reboot, and then the attempt to reboot is aborted if it has not gone too far, and/or the system can automatically undo the process and even return the OS to the state it was before the reboot was requested.
91. The system of any of the above claims wherein at least one of the following features exists:
a. DVDs and/or blue-ray or High Definition DVDs and/or other larger capacity drives support also smaller pocket-size DVD's as burn-able media and/or as ready pre-recorded media;
b. DVD capacity is further increased by using UV or extreme-UV lasers instead of red or blue;
c. The bookmarks list in the Internet browser automatically shows also near each bookmark the date it was entered, and/or the bookmarks are automatically grouped by days, with a different color for each group and/or some border marked between the groups;
d. The Internet browser keeps in memory recent changes to various form fields in the same page and/or also on previous pages, so that jumping back to a previously filled field on the same page or also on a previous page or pages will still allow the user to undo changes in that field;
e. If the user wants to copy more than one application at the same time from the "all programs" pop-up list which is activated through the Start button, to the desktop, then the user can mark more than one item at a time and/or the list remains open even after dragging an item;
f. The user can drag a shortcut also from open applications on the taskbar and/or by dragging something from the top and/or other parts of an open window and/or from the file name as it appears in a DOS
or cmd window;
g. If the user wants to uninstall more than one program at the same time, the user can mark multiple programs and then all the marked programs are uninstalled automatically;
h. The user can activate a command which automatically jumps each time to the next window in the normal task bar on in the internal group of open windows that belong to the same application or between open tabs in the same application, so that each time the user moves to the next window systematically;
i. The user can define drives and/or directories to become shared when connected by cross-linked Ethernet cable between two computers so that they become automatically not shared when connected by normal cable to the Internet;
j. If the OS gets stuck during or after the boot, the system can automatically sense it after a short time and automatically identify the driver or application that caused it to get stuck and can automatically roll-back to the state it was in before the problematic driver or application was loaded and/or before the registry change or other relevant change and can automatically continue without the problematic driver or application and/or can for automatically search for a replacement driver or application and/or automatically instruct the user what to do in order to fix the problem;
k. At least part of the OS runs below the normal OS and contains also a knowledge base about known problem that can occur, with instructions on how to solve it and automatically tries to follow those self repairing instructions whenever possible and involves the user only if for some reason it is unable to perform whatever is necessary;
l. At least part of the kernel and/or part of the OS, which is hardware independent, is able to boot properly even if there are a lot of hardware changes, so that any adjustment problems can then be fixed after this initial boot;
m. When the OS does not allow the user to access a file because it is locked by another process, the OS also lets the user know the identity of the clashing process and the clashed resource and allows the user also options such as terminate the clashing process or freezing it temporarily until the user releases again the problematic resource;
n. When there is more than one physical hard disk on the same computer and more than one partition on at least some of these disks, the OS automatically adds some mark to each drive name that indicates to which physical hard disk it belongs.
92. The system of any of the above claims wherein at least one of the following features exists:
a. Fax machines are programmed by default (and/or at least the user can choose this option) to respond with fax sounds only if fax sounds are heard in the incoming phone call;
b. The receiving fax is improved so that it is preferably able to automatically identify voice calls and thus avoids making fax sounds if it identifies human voice and/or stops immediately and gets off the line even if it started making fax sounds, as soon as it identifies the human voice;
c. The ability of the scanner/copier to overcome wrinkles in papers or overcome the black stripe that appears when scanning or photocopying books when the user can't press the book down strongly enough - is improved by adding at least one more light source in the scanner, so that shadows are automatically reduced.
93. The system of any of the above claims wherein at least one of the following features exists:
a. The user is supplied with an electronic pen which can write on normal paper and at the same time both writes with visible ink on the paper and transmits the writing sequence to the computer, so that the user can write normally while also obtaining an automatic copy on the computer;
b. In tablet PC's and/or in digital book readers and/or in programs such as winamp or other software media players and/or in other gadgets for playing songs or films, the software and/or the device is able to measure automatically not only which songs or films or books (or other media) are more or less liked by the user, but also which parts or sections in them are the best and/or which parts are less good or problematic.
94. The system of any of the above claims wherein at least one of the following features exists:
a. The user can create a copy of the OS on another partition with an automatic command, and then the system with the installed programs is automatically copied to the new partition and the drive letter references in the new installation are automatically updated to refer to the new drive letter, and the choice of the new partition is automatically added to a boot selector;
b. The user can also change the name of a boot option and/or add comments to it, while booting and/or from one or more applications that are available after the boot;
c. Partitions can be identified also by names longer than 1 letter, so that these longer names can be used in the same ways that any 1-letter name partition can be used;
d. The user can also use an update or synchronize command, which automatically updates any differences between two or more such OS-installed partitions, so that the user can update the other partition according to additional changes made in the original partitions, and/or the opposite - automatically correct the original partition according to one of the backup partitions, and/or the user can also request automatic undo of such updates;
e. Even the new partition itself for the automatically copies OS
installation can be automatically created by the special copy command, if needed, so that the user does not even need to have a new partition ready before requesting the special OS-copy command;
f. The user can mark only one or more specific installed programs and/or drivers and/or other parts to be automatically copied to the other partition, instead of automatic full copy of all the installed elements into the other partition;
g. The user can automatically backup one or more installed programs to a back-up media, so that automatically the relevant registry entry is copied to the backup media and all the relevant components are automatically copied through the relevant registry information;
h. When activating for a command like SFC (which checks the integrity of installed system files and/or compares them to their source on the installation CD and restores them when needed), this or similar commands can be used also from another OS or another installation of the OS on another partition and/or from the installation CD or DVD itself.
95. The system of any of the above claims wherein in order to prevent debug features in motherboard bridges from being used for hardware-based attack below the OS, at least one of the following is done:
a. The motherboard chipset is changed so that such debug features and/or direct communications between hardware cards and the hard disk are enabled only if some hardware element allows it, such as a jumper or a switch which has to be manually enabled by the user;
b. The user can add a card to one of the PCI slots and/or add another external device which keeps sending commands to the bridges which can over-ride any attempt by other devices to tell the bridge to sniff on data or to communicate directly with the hard drive and/or the communication channels;
c. The OS and/or a software Security System is able, through the OS kernel or even below it, to take complete control of the bridge and give it instructions that override any undesired attempts by hardware elements to sniff data and/or access directly the hard disk and/or the communication channels;
d. If some devices need to be able to exchange data with the hard disk directly, at least any command sent from the device to the hard disk can be monitored and filtered by the OS and/or by a security system installed on the OS, so that the OS and/or the security system can control what files and/or directories can be accessed directly from the device and what commands can be transmitted to the hard disk;
e. The configuration can be set to enable such a debug feature only for one or more specific slots and/or one or more specific devices, and/or other limitations are enforced.
96. An improved computer system wherein computer cases are improved so that the same case can be used either in desktop position (lying in a horizontal orientation) or as normal tower (vertical orientation), thus giving the user more flexibility in choosing the most convenient orientation without having to buy different cases, and at least one of the following features exists:
a. The case is made strong enough to support even large screen on top of it when used in the desktop orientation;
b. At least the area that supports the external CD and/or DVD drives is rotate-able between two positions, so that the user can easily choose one of these two position, at least by screwing the part when the case is open, and/or the user can rotate the part even when the case is closed;
c. The frame that holds the 3.5 devices is also similarly rotate-able.
97. A method for avoiding "DNS poisoning" comprising at least one of the following steps:
a. Internet Browsers and/or other Internet applications which need to access domains automatically query multiple DNS servers in different locations and if there is a mismatch between the IP address reported by them for the same domain then the browser (or other application) checks in additional DNS servers and chooses the one that appears in most places, and also warns immediately the user that there might still be a risk due to the mismatch;
b. The browser or other Internet application checks in one or more domain name registrars to see if the IP address given to the domain is compatible with the DNS servers that are associated with the domain's records;
c. The browser (or other Internet application) keeps historical data of IP
addresses of domains that the user has accessed and whenever there is suddenly a change performs automatically various checks;
d. The browser (or other Internet application) keeps historical data of IP
addresses of domains that the user has accessed and whenever there is suddenly a change performs automatically various checks, and said checks are at least one of querying multiple DNS servers, and checking in one or more domain name registrars;
e. The browser (or other Internet application) keeps historical data of IP
addresses of domains that the user has accessed and whenever there is suddenly a change performs automatically various checks and said checks are done before letting the user access the site;

f. The DNS servers themselves perform automatically similar checks to those described above, such as keeping historical data and checking with multiple sources;
g. The DNS servers themselves perform automatically similar checks to those described above, such as keeping historical data and checking with multiple sources immediately when there is a change, and/or checking with multiple sources whenever new data arrives;
98. A method for avoiding "DNS poisoning" comprising at least one of the following steps:
a. Using long encryption keys for any communication between DNS
servers;
b. The DNS automatically identifies "birthday attacks" (statistical bombardment with guessed session Ids in order to find the correct session Id) or other statistical based attacks by keeping track of multiple communication attempts with false session Ids purportedly coming from the same server;
c. The DNS automatically identifies "birthday attacks" (statistical bombardment with guessed session Ids in order to find the correct session Id) or other statistical based attacks by keeping track of multiple communication attempts with false session Ids purportedly coming from the same server and then automatically ignores any packets from the spoofed other DNS and automatically switches to other DNSs at least for a certain time;
d. The browser (or other Internet application) and/or DNS server automatically checks back any IP address in multiple reversed databases which find the domain name from an IP address;
e. The browser (or other Internet application) and/or or DNS server automatically checks back any IP address in multiple reversed databases which find the domain name from an IP address whenever giving it in a reply or when it changes;
f. The browser (or other Internet application) and/or NDS servers check how long the IP address has been associated with the domain according to registrar records, and if it has been associated for a short time below a certain threshold performs various checks and/or warns the user;
g. When an IP address changes, the browser (or other Internet application) and/or DNS server checks in one or more reversed Databases (which give the domain name from the IP address) if the original IP address now indeed points to a different domain, and if it is still pointing to the original domain then it is perceived as indication of possible DNS poisoning.
99. The system of any of the above claims wherein when the OS and/or various applications support 3D objects, at least one of the following features exists:
a. The objects can be resized or moved in various directions in a way similar to the current processing of 2d objects;
b. The objects can be resized or moved in various directions in a way similar to the current processing of 2d objects and size parameters are automatically updated and displayed;
c. A large taxonomy of object prototypes is available to choose from, and these objects or prototype objects can be dragged into position and then can be changed on the spot by fast scrolling over multiple objects of that prototype or sub-prototype, so that the object changes immediately in view, and/or this scrolling can be done also for modular elements of the objects;
d. A large taxonomy of object prototypes is available to choose from, and these objects or prototype objects can be dragged into position and then can be changed on the spot by fast scrolling over multiple objects of that prototype or sub-prototype, so that the object changes immediately in view, and/or this scrolling can be done also for modular elements of the objects, while the mouse drags a scroll bar next to it;
e. Various elements can be reshaped dynamically in a way similar to the Goo program, except that when pulling on a part only that part is reshaped without affecting the parts next to it.
100. An improved search engine which can automatically determine the information value of the search results wherein the search engine can determine if a web page is probably more scientific and/or has higher information value according to at least one of a. Using various heuristics for determining the information value of the search results and automatically improving the ranking of web pages according to their information value and/or indicating near each link its information value;
b. Diagnosing automatically whether it contains references and/or how many references and/or how scientific and/or of high information value are the sources that are included there;
c. Lexical and/or semantic analysis of the details about the author if such details exist;
d. Lexical and/or semantic analysis of the details about the author if such details exist such as if he/she has a PhD. title and/or has a background relevant to the field that the article deals with;
e. Determining if a web page is probably more scientific and/or has higher information value by link structure (incoming and/or outgoing) that indicate that the page (and/or the site in general) has links to and/or from other pages (and/or sites or for subdirectories in it) which are considered more scientific and/or of higher information value by the system;
f. Determining if a web page is probably more scientific and/or has higher information value by link structure in terms of percent of scientific or high information value incoming and/or outgoing links and/or in terms of absolute scientific or high information value incoming and/or outgoing links;
g. Determining if the site is on a university or in a government institute;
h. Determining if the site is on a university or in a government institute according to the top level domain;
i. Determining if the site is on a university or in a government institute and taking into account also how high the page is in the subdirectory structure of the domain;
j. If a page in a government site appears to deal with a scientific subject the search engine can assume that there is less chance for bias than if the subject is political.
101. The system of claim 100 wherein this is done in a way similar to the way that Google uses recursively the number of incoming and outgoing links to determine the authoritativeness of pages and/or sites (where authoritativeness is actually defined by popularity), except that in this case the recursion uses as criteria also various indications about the scientific or information value of the pages and/or sites and/or sub-areas in the sites.
102. The system of any of claims 100-101 wherein at least one of the following features exists:
a. Determining the initial indications can be according to various heuristics based on the content of the pages and/or additional indicators, such as starting out with known scientifically accredited sources;
b. These indicators are reassessed automatically again for each page and/or domain and/or directory tree or sub-tree, in order to avoid degradation of the information value score or scores as the recursion continues;
c. The taking into account of the information value can be applied automatically as an improvement of the results ranking algorithm;
d. The user can indicate that he/she prefers to take this into account by marking default preferences and/or by adding some special keyword or mark to the search string, and/or the search engine has a few search windows, so that one or more are defined in advance for searches for more official and/or authoritative and/or scientific information;
e. The search engine can decide automatically how much weight to give to the information value of the results according to the content of the search string itself and/or by letting the user use of semantic qualifiers;
f. The user can choose in advance more official and/or authoritative and/or scientific information by at least one of adding an indication and choosing the appropriate search window.
103. The system of any of claims 100-103 wherein the search engine can automatically ignore sources and/or results and/or pages and/or sites and/or domains and/or subdirectories in them which have an information value below a certain threshold, or mark or indicate the threshold so that results below the threshold are displayed in a separate section or window.
104. The system of any of the above claims wherein at least one of the following features exists in at least one word processor:
a. When the word processor automatically offers the user automatically saved files, the word processor automatically runs file comparison between each such file and the equivalent last saved version and shows the user by track changes the differences between this and the saved version;
b. When the word processor automatically offers the user automatically saved files, the word processor automatically runs file comparison between each such file and the equivalent last saved version, and if there are no differences then the word processor automatically does not even offer that file;
c. When the word processor automatically offers the user automatically saved files, the word processor automatically runs file comparison between each such file and the equivalent last saved version and shows the user by track changes the differences between this and the saved version, and when showing automatically the differences, the word processor marks them differently from previous marked changes;
d. When the word processor automatically offers the user automatically saved files, the word processor automatically runs file comparison between each such file and the equivalent last saved version, and the word processor automatically indicates the amount of difference;
e. When the word processor automatically offers the user automatically saved files, the word processor automatically runs file comparison between each such file and the equivalent last saved version, and the word processor can let the user jump automatically to those sections where the changes are;
f. The system indicates to the user when he/she is about to undo things to a state before the last saved version of the file and asks for his/her confirmation for that;
g. The user can search for a specific text which has one or more specific attributes, such as underline, color, marked changes, marked new text, marked deleted text, or other attributes or styles;
h. The user can define or chose from a number of available options how marked text will be shown instead of being inversed;
i. When normally searching for text marked by track changes, the word processor does not mark the changed section in black but simply jumps to its beginning, since it is already marked anyway;
j. In Word 2003 the user can toggle between viewing track changes in the old or in the new format without affecting the way the headlines and page breaks and/or images are shown;
k. The user can automatically convert marked additions to normal underlines, and/or vice-versa - automatically convert underlined sections into sections marked with track changes;
l. When searching for word combinations the word processor has an option of automatically ignoring redundant spaces;
m. When the user saves a file under a different name the user has an option to request to automatically keep open also another window with the original file.
105. The system of any of the above claims wherein at least one of the following features exists:
a. When the computer is in standby (hibernate) mode, even if the user turns the power off or even plugs the electrical wire out of the wall, when the user returns the power, the system still automatically tries to return from standby instead of normal boot;
b. When the user activates standby mode, the system first creates the image and then can for go into a mode where power is used only or mainly for keeping the RAM refreshed, and so if the power remains on, when waking up the system does not even have to restore itself from the image, and if power has been turned off then the system automatically checks first to see if there is a recent image and then recovers from the image if possible.

c. Word processors or browser or other application can remember the last search strings or search strings that were used the pervious time one or more windows of the application were open, and lets the user choose automatically the last search string or chose from a group of recent search strings;
d. Before sending an email with attachments the user can easily change the order within the list of attachments;
e. Before sending an email with attachments the user can easily change the order within the list of attachments by pointing the mouse to one of the attachments and dragging it to a different position in the list;
f. When printing pdf files from the Internet, the pdf viewer automatically adds the url info at least on the first page of the printing or on each page;
g. When saving web files the browser and/or pdf viewer and/or other applications automatically add the url info to the file, in the form of a comment or any other form which does not effect the way the file is displayed, or add it as a visible text on each page or at least on the first page;
h. The user can request to automatically reopen the entire set of windows an/or tabs that was opened last time when reopening the browser after previously closing it even after the user closes it normally;
i. Even after the user tells the browser to start from the beginning or closes the various windows or tabs, the user can enter some history List which contains the previous states of multiple browser windows and/or tabs, and thus the user can scroll back to previous sets of tabs and/or windows that were previously open together and can go back to that same state of multiple open windows and/or tabs.
j. When deleting directories the system automatically keeps a backup of the directory structure and/or a rollback log, so that if the user made a mistake the directory tree can be instantly restored;
k. When the user moves backwards and forwards with web browsers, if the user chooses a different link after going back to a previous page and then goes back again, the browser automatically displays the different paths available if the user moves forward again.
106. The system of any of the above claims wherein in 3D map applications at least one of the following features exists:
a. The 2D images are processed in advance to create extrapolated 3D
representations according to relevant visual cues, and/or by making the photographs in advance with two or more lenses or 2 or more cameras;
b. At least in popular public places, multiple photographs from multiple angles are added, which are automatically combined into the processed 3D representations and/or at least become automatically integrated when the rotation and/or angle is appropriate;
c. At least in popular public places, one or more local streaming video cameras are added, which broadcast real time streaming data, so that when the location and/or angle is appropriate the real time streaming data is automatically integrated;
d. The displayed normal images include special marks which indicate to user "hotspots" where addition 3D images are available and/or more details are available and/or live streaming data is available;
e. The displayed normal images include special marks which indicate to user "hotspots" where addition 3D images are available and/or more details are available and/or live streaming data is available, and the user can ask the program to automatically take him/her to such spots automatically;
f. When the user for example wanders sideways the program automatically guesses from the pattern and/or direction and/or speed of the user's movement where he/she is most likely to continue next and so the details for next area or areas are downloaded in advance before the user goes there, thus preferably reducing significantly the waiting experience;
g. If the user clicks on s point he/she is interested in and then continues with the zoom, the spot that was clicked upon is automatically moved by the application to the center so that is remains in focus;
h. The system can automatically predict the zooming sequence of the user, so that if a user is apparently trying to zoom into the marked spot, the system tries in advance to get each time the additional details at least one step before the user requests it.
107. The system of any of the above claims wherein at least one of the following features exists:
a. The user can indicate or mark to the OS a set or range of hours in which the computer will automatically go into sleep mode (hibernate) at a certain set of hours;
b. The user can change the size of all the open windows and/or tabs of the same application or make other format changes that affect automatically all of them;
c. If the user wants to print an article and does not notice that there is a link for a printer friendly version, the browser looks for this link automatically in the page and can ask the user automatically if he/she wants indeed to print the page as is or to use the printer friendly link;
d. web servers are improved so that if a page is not found the server itself offers a list of likely pages according to similar pages in the same directory and/or in similar directories;
e. The firewall protects also additional communication devices in addition to or apart from the network card or modem, and even when the user supposedly allowed such a device to be accessed, the user is given also a real time indication that the device is working;
f. When the webcam is filming and/or recording, the security system and/or the OS and/or some other software and/or and/or the webcam itself continuously flash some light and/or otherwise indicates to the user clearly that the webcam is currently filming and/or recording what is happening in the room;
g. In shopping meta-search the meta-search engine automatically deduces the user's country according to his/her IP and/or example asks the user about the country where he/she wants the goods shipped to, and can automatically mark near each shop alternative if it has shipments to the user's country and/or puts such shops in a separate group, and/or can exclude shops that don't ship to the user's county if the user requests that;
h. When searching for academic results, the user can request the search engine to show only results from articles from a certain date onward or before a certain date or within one or more range of dates;
i. When searching for normal web pages, the user can request the search engine to show only results from pages which were last updated from a certain date onward or before a certain date or within one or more range of dates;
j. The search engine uses its historical data to estimate if the amount of change and/or the type of change justifies regarding the page as recently updated;
108. The system of any of the above claims wherein a firewall and/or security system is used that protects against tempering with DLLs and/or other components that are used for accessing the web by at least one of a. Automatically checking for in certified database or databases the correct CRC or other fingerprint or fingerprints of the various known components and thus determining automatically if some component is suspiciously with a wrong fingerprint;
b. Lookup in encrypted database or databases of the OS, in order to check that relevant OS components have not changed;
c. When such a component is changed the firewall warns the user about it after the change or when they are changed and/or the next time the relevant application that uses the changed component tries to access the web;
d. When such a component is changed the firewall warns the user about it, and is also able to tell the user which application changed it and when;
e. Constantly monitoring the relevant components and intercepting at the moment that an application is trying to make a change and asking the user if to allow it and which program is trying to change the component.
109. The system of any of the above claims wherein accessing directories with a large number of files or sub-directories through the dialogue box is speeded up by saving automatically the structure of the current directory in at least one buffer in memory (and/or even in the disk) in the same sorted order in which it is displayed.
110. The system of claim 109 wherein at least one of the following features exists:
a. The at least one buffer is automatically updated in memory (and/or on the disk) when something changes in the directory;
b. This is done automatically for any directory recently accessed by the dialogue box, and/or the word processor (and/or other applications) can tell the OS already when they are activated to prepare the at least one buffer of their current default directory in memory;
c. An additional sorted copy of directory entries is saved automatically for directories anyway;
d. Changes in file names and/or additions and/or deletions of files are automatically updated in the at least one buffer by merging them with the already sorted directory, instead of re-sorting it again each time.
111. The system of any of the above claims wherein at least one of the following features exists:
a. When open windows of the same application are shown in the lower task bar as one group, the other windows of the same group can be shown in another task bar;
b. When open windows of the same application are shown in the lower task bar as one group, the other windows of the same group can be shown in another task bar at the top of the screen and/or at least when the user is viewing at least one of the windows of the group, and/or within the typically blue top of the main open window of the group and/or at least the user can toggle into this mode;
c. When the user clicks on the icon of a group of windows in the lower taskbar, instead of a list of names in lines below each other, the group can automatically expand into small images of the relevant Windows;
d. When the user clicks on the icon of a group of windows in the lower taskbar, instead of a list of names in lines below each other, the group can automatically expand into small images of the relevant Windows and the size of the images is preferably automatically determined by the number of windows;
e. When the user clicks on the icon of a group of windows in the lower taskbar, instead of a list of names in lines below each other, the group can automatically expand into small images of the relevant Windows, and by clicking on any of these preview images the user can jump into it;
f. When the mouse is on top of an icon in the bottom task bar and a preview small image of the window is shown, if the icon is below a certain minimal width, the image is automatically made wider than the icon;
g. The user can choose the desired size of these preview windows so that by resizing such a window the other preview windows will be of the new size defined by the user, until he/she resizes it again, and/or at least as long as it is above some minimum size defined by the system;
h. As the user moves the mouse vertically up or down over the list of names in grouped items, a preview image of the window which the mouse is currently over its name appears near the item and/or near the list.
CA002522789A 2004-10-20 2005-10-20 System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows Abandoned CA2522789A1 (en)

Applications Claiming Priority (12)

Application Number Priority Date Filing Date Title
US10/968,022 2004-10-20
US10/968,022 US9213836B2 (en) 2000-05-28 2004-10-20 System and method for comprehensive general electric protection for computers against malicious programs that may steal information and/or cause damages
GB0509451.1 2005-05-10
GB0509451A GB0509451D0 (en) 2005-05-10 2005-05-10 System and method for improving the efficiency comfort and/or reliability in operating systems such as for example windows
GB0516308.4 2005-08-09
GB0516308A GB0516308D0 (en) 2005-08-09 2005-08-09 System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows
GB0517366A GB0517366D0 (en) 2005-08-26 2005-08-26 System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows
GB0517366.1 2005-08-26
GB0517795A GB0517795D0 (en) 2005-09-02 2005-09-02 System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows
GB0517795.1 2005-09-02
GB0519932.8 2005-09-30
GBGB0519932.8A GB0519932D0 (en) 2005-09-30 2005-09-30 System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows

Publications (1)

Publication Number Publication Date
CA2522789A1 true CA2522789A1 (en) 2006-04-20

Family

ID=36242568

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002522789A Abandoned CA2522789A1 (en) 2004-10-20 2005-10-20 System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows

Country Status (1)

Country Link
CA (1) CA2522789A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112451972A (en) * 2020-11-20 2021-03-09 深圳点猫科技有限公司 Game engine-based resource compression package construction method, device, system and medium
CN113556347A (en) * 2021-07-22 2021-10-26 深信服科技股份有限公司 Detection method, device, equipment and storage medium for phishing mails
CN115746532A (en) * 2022-11-29 2023-03-07 金旸(厦门)新材料科技有限公司 Laser-engravable halogen-free flame-retardant reinforced polycarbonate material for relay and preparation method thereof
CN116755727A (en) * 2023-08-21 2023-09-15 湖南博匠信息科技有限公司 Intelligent upgrading method and system for firmware of embedded device
CN117032447A (en) * 2022-05-31 2023-11-10 荣耀终端有限公司 Alternate gesture interaction method and device, electronic chip and electronic equipment
CN117705196A (en) * 2024-01-31 2024-03-15 杭州高特电子设备股份有限公司 Energy storage air conditioner temperature fault diagnosis method and energy storage equipment

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112451972A (en) * 2020-11-20 2021-03-09 深圳点猫科技有限公司 Game engine-based resource compression package construction method, device, system and medium
CN113556347A (en) * 2021-07-22 2021-10-26 深信服科技股份有限公司 Detection method, device, equipment and storage medium for phishing mails
CN113556347B (en) * 2021-07-22 2023-04-07 深信服科技股份有限公司 Detection method, device and equipment for phishing mails and storage medium
CN117032447A (en) * 2022-05-31 2023-11-10 荣耀终端有限公司 Alternate gesture interaction method and device, electronic chip and electronic equipment
CN115746532A (en) * 2022-11-29 2023-03-07 金旸(厦门)新材料科技有限公司 Laser-engravable halogen-free flame-retardant reinforced polycarbonate material for relay and preparation method thereof
CN116755727A (en) * 2023-08-21 2023-09-15 湖南博匠信息科技有限公司 Intelligent upgrading method and system for firmware of embedded device
CN116755727B (en) * 2023-08-21 2023-11-03 湖南博匠信息科技有限公司 Intelligent upgrading method and system for firmware of embedded device
CN117705196A (en) * 2024-01-31 2024-03-15 杭州高特电子设备股份有限公司 Energy storage air conditioner temperature fault diagnosis method and energy storage equipment
CN117705196B (en) * 2024-01-31 2024-05-03 杭州高特电子设备股份有限公司 Energy storage air conditioner temperature fault diagnosis method and energy storage equipment

Similar Documents

Publication Publication Date Title
US20070128899A1 (en) System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
US20050240756A1 (en) System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows.
US20080177994A1 (en) System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
CA2653299A1 (en) System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows
CA2522789A1 (en) System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows
KR20050039562A (en) Pre-login data access
GB2434463A (en) System and method for improving the efficiency and reliability of an Operating System
US8850563B2 (en) Portable computer accounts
GB2445279A (en) System and method for improving the efficiency, comfort and/or reliability in operating systems.
US8112813B1 (en) Interactive image-based document for secured data access
KR100496462B1 (en) Method for protecting from keystroke logging
CA2568975A1 (en) System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows
CA2614795A1 (en) System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows
CA2501524A1 (en) System and method for improving the efficiency, comfort, and/or reliability in operating systems, such as for example windows
Zegeer et al. Analysis of Elderly Pedestrian Accidents and Recommended Countermeasures.
Martin Computer jargon dictionary and thesaurus
Macintosh et al. Apple Computer Inc
McFedries Windows 8 Visual Quick Tips
Colmer et al. The Senior's Guide to Computer Tips and Tricks: Windows XP, Internet Explorer, Microsoft Word, and Outlook
Rich My Online Privacy for Seniors
Doyle Complete ICT for Cambridge IGCSE®
Granneman Don't click on the blue e!: switching to Firefox
Stephen Get Started In Computing: Teach Yourself
Sullivan Online Predators: A Parent's Guide for the Virtual Playground
Boyce et al. Windows 8 Bible

Legal Events

Date Code Title Description
FZDE Dead