Seven Laws of Sane Personal Computing

My apologies to all readers who were inconvenienced by the multi-page layout. All of the Laws, slightly re-worded [1], are here once more.  To view the original pages, click on the numerals. A sanely designed personal computer system: I – Obeys operator The operator shall retain full control of the machine at all times.  In […]

Posted in: Hot Air, Philosophy, SoftwareSucks by Stanislav 19 Comments

Seventh Law of Sane Personal Computing

The machine shall never tell a lie to the user/programmer. [1]  It shall obey all orders given to it through the human interface devices, without attempting to pass judgement on their legality or morality.  The machine shall not put the interests of any third party (including society in the abstract) above those of its user/programmer. […]

Posted in: Hot Air, Philosophy, SoftwareSucks by Stanislav No Comments

Sixth Law of Sane Personal Computing

All of the information contained inside the machine’s storage array (see the Third Law), whether executable or not, shall be accessible at all times for inspection and modification by the user/programmer, in the form preferred for modification.  The user/programmer shall have the ability to modify the functionality of any executable code within the system without […]

Posted in: Hot Air, Philosophy, SoftwareSucks by Stanislav 1 Comment

Fifth Law of Sane Personal Computing

If the machine encounters an error condition requiring the user’s manual intervention, the state of the now-halted process prior to this event shall be preserved, and the user given an opportunity to correct the error using an interactive debugger and resume execution from the saved-and-corrected state.  The debugger shall display the code which generated the […]

Posted in: Hot Air, Philosophy, SoftwareSucks by Stanislav 1 Comment

Fourth Law of Sane Personal Computing

Compilation is to be considered a form of caching, and thus shall happen solely behind the scenes, like all other forms of caching. (See: the Third Law.) The machine is to accept no externally-introduced executable code except in the form preferred for making modifications (i.e. source.)   All executable code visible during any kind of debugging […]

Posted in: Hot Air, Philosophy, SoftwareSucks by Stanislav 1 Comment

Third Law of Sane Personal Computing

Volatile storage devices (i.e. RAM) shall serve exclusively as read/write cache for non-volatile storage devices.  From the perspective of all software except for the operating system, the machine must present a single address space which can be considered non-volatile.  No computer system obeys this law which takes longer to fully recover its state from a […]

Posted in: Hot Air, Philosophy, SoftwareSucks by Stanislav 9 Comments

Second Law of Sane Personal Computing

Information which entered the machine through deliberate user action shall never be destroyed or otherwise rendered inaccessible except as a result of deliberate user action to that end.  No user action shall lead to the destruction of information unless said destruction is the explicit and sole purpose of the action.  If all non-volatile storage space […]

Posted in: Hot Air, Philosophy, SoftwareSucks by Stanislav 1 Comment

First Law of Sane Personal Computing

Assuming physically-intact hardware, the user shall retain full control of the machine at all times.  In particular, the handling of the keyboard, mouse, and other human interface devices must take absolute priority over all other processing.  The user shall have the ability to issue commands and receive immediate confirmation of said commands at all times, […]

Posted in: Hot Air, Philosophy, SoftwareSucks by Stanislav 8 Comments

"The Internet of the Future"

This picture was posted in a number of places several years ago, but has largely vanished into undeserved obscurity.  With some effort, I unearthed it and now re-post it here.  (If anyone knows its permanent home, please let me know.) If reports on the latest volley fired in the Net Neutrality Wars are filed under […]

Posted in: NonLoper by Stanislav 9 Comments

Tim Daly on Symbolics Lisp Machines

Tim Daly on Symbolics and the elimination of the Compile-Pray-Debug Cycle: “The Symbolics machine (its kittens all the way down…) gave me the insight that one of the most important parts of programming is the time it takes to “close the loop”. Start from the point of failure, find the failure in source code, fix […]

Posted in: Lisp, NonLoper, SoftwareArchaeology, Symbolics by Stanislav 1 Comment