| "For the great enemy of truth
is very often not the lie -- deliberate, contrived and dishonest -- but
the myth -- persistent, persuasive and unrealistic. Too often we hold fast
to the clichés of our forebears. We subject all facts to a prefabricated
set of interpretations. We enjoy the comfort of opinion without the discomfort
of thought."
JFK
Yale University graduating class speech (June 11, 1962) |
May the source be with you, but remember the KISS principle ;-)
|
Softpanorama
(slightly skeptical) Open Source Software Educational
Society
This is a self-education oriented site that contains resources for the independent study in computer science and programming. The latter is the area were open source really shines: the academic value of open source software (OSS) cannot be overestimated ( "free as in education" is important meaning of "free").
The main purpose of the "slightly skeptical" approach (which is a signature of the site) is to stimulate people to think about Unix administration and software development problems and to increase an understanding of the computer science history in general and, especially, open source history. Much of it goes against mainstream orthodoxy and you might not agree with some views expressed, but we hope that all-in-all those pages will might be a worthwhile reading.
The importance of knowing computer science history (and knowing it well) is the leitmotiv of many pages and several e-books that the site contains. The quote "Those who cannot remember the past are condemned to repeat it" is especially true in software engineering. The site also tries to help CS students to find better textbooks (and sometimes cheaper textbooks) as well as help to find suitable to self-education resources on the WEB. It also helps to survive of dullness of current CS curriculum with its OO and Java overload and a lot of detached from reality high level concepts but few interesting, exiting ideas: the key elements of the Unix culture are no longer taught. Some important skills like the ability to use the full spectrum of Unix tools with pipes are actually dying and can and should be saved.
We should also understand that open source is not a panacea and that overcomplexity is the cancer of open source: it defeats the idea of open source much better then any real or imaginable opponent. The key to successful programming is not "source code", it's "understanding". When and if complexity is out of hand it badly affect the ability of people to understand the codebase and thus reliability and maintainability of the code base. This classic Greek tragedy theme of open source -- the same qualities that ensure the initial success of the hero later predetermines his downfall in played in many areas but Linux is probably one of the most visible victim of its success. It became Microsoft of Unix with a typical distribution like RHEL or Suse overloaded with arcane and complex subsystems and pretty resource-hungry kernel. In a way it now matter less and less whether particular component is open source or not as fewer and fewer people can benefit from the availability of the codebase. Paradoxically closed source products with open API and internal scripting language like Microsoft Office are in some respects more open then a large C-written open source product which does not support internal macro language.
This site is one of the few that raises red flags about overcomplexity in software as well as important side effect of deterioration of the quality and architectural integrity of the codebase with the growth of the complexity of the product. We need to figure out how to design simpler software systems. Design is measured not by quantity, but by quality. That's were Unix traditions comes into play, but recently they were distorted by competition with Microsoft, which in a way is "The king of software overcomplexity", the company which stripped IBM from this title (although IBM still desperately fights for the title as we can see in Tivoli, WebSphere and several other products ;-). Sometimes good points can be brought home more easily in the form of humor; for that purpose we created Softpanorama IT Slackers Society with its own manifest and Ten Commandments.
There is also an important social dimension of the "overcomplexity trap": first we build the system that we cannot understand and as an unanticipated side effect to the management ranks are promoted people who cannot understand anything at all and for whom self-serving deception and creating of virtual reality for their bosses, in best Potemkin villages style is the normal way of life :-). This side social effect of overcomplexity contributed to dilbertalization of IT and stimulated rise to power of micromanagers as one of the most prolific brand of corporate sociopaths. Unfortunately they became a dangerous epidemics in IT as popularity of Dilbert cartoons attests. This realistic and somewhat pessimistic view might help students deeply interested in software technologies better grasp the pitfalls, trade offs and compromises of modern corporate IT environment, especially software development environment. It's far from a "paradise for creative minds" and it drastically changed to the worse for the last decade...
Another sign of deterioration of the IT environment (especially in large corporations) is IT obscurantism with catchy slogan "IT Doesn't Matter". The father of "IT obscurantism" is Nicholas Carr, a former executive editor of the Harvard Business Review (who never was a programmer and has a degree in English studies). Despite lipstick on the pig in a form of Harvard Business Review respectability, his HBR article is a perfect example of frivolous treatment of history and anti-intellectualism tradition. It's only junk ("Dilbertalised') IT which does not matter. In this sense Carr's ideas are "the most dangerous advice to CEOs has come from people who either had no idea of what they didn't know, or from those who pretended to know what they didn't." As such they were pretty well received in corporate boardrooms as a philosophical justification of outsourcing ;-)
For software developers currently only
scripting languages can provide
some shelter from overcomplexity. That's why the site treats Java and OO with skepticism
they deserve. Both are "one step forward, two steps back"
technologies as they stimulate codebase bloat. We feel that any IT student should learn classic
Unix shell (as well as visual shell environment as exemplified by
OFM) and command line automation
as exemplified by classic Unix utilities
and pipes as well as by
Expect and
TCL. Also one of the "P"
family of scripting languages
is a necessary part of any serious programmer of system administrator arsenal (and
the list of "P" languages actually includes languages with names which do not start
from the letter "P", for example
TCL and Ruby which can viewed as Perl 6 :-). While
there is no silver bullet in fighting overcomplexity, the usage of scripting
languages (or any VHLL languages) permit hiding complexity on compiler/interpreter
level (pushing it on the level of abstract machine the language implements, where due to more static nature of such abstraction it can be better contained).
Scripting language also permit cleaner separation of "programming in the large"
from "programming in the small" and best of them permit smooth integration of lower
language fragments (for example Java or C). That's
why scripting languages represent the most important area of open source development.
Unlike most OSS sites this site believes that Unix is much more important then Linux
and we are not overly excited about this poster child of open source movement. Moreover we feel that a tandem of Windows desktop and
Unix server on a separate or a virtual machine is
a more productive environment then any single OS environment be it
Windows,
Linux or
Solaris. The author generally
prefers "Unixified Windows" as a
client. The latter has an amazing free tool
SFU 3.5 ( funny
enough, in 2004 it
was nominated as a
finalist for the LinuxWorld Product Excellence Awards in the Best System Integration
Solution category; in a way this is Microsoft's "Linux for Windows"). We also
hold very high opinion about major BSD flavors (this site is running on a FreeBSD
server). As for Linux the most important segments of Linux OS development are community
distributions like Debian and Gentoo as well as
minidistributions
like Knoppix.
The site rejects "cargo cult software engineering" like Capability Maturity Model (CMM) and links such phenomena with old and dangerous science disease called Lysenkoism. We also have a strong anti "cult of personality" stance (see "slightly skeptical" biographies of Richard Stallman and Linux Torvalds ). "Freedom" is overused and often abused word. You need to use the best tool if you can afford, not the cheapest one. There is little freedom (besides zero price) in using complex open software unless you want to risk your sanity by modifying (and possibly maintaining your fork of ) huge codebase. Scriptability does matter and a product with built-in macro-language often is better then open source product without :-). Paradoxically Stallman never managed to understand the value of scriptability despite being the author of Emacs. That's why many GNU-tools are so backward in this respect.
The site promotes deeper understanding of
open source development viewing it as a special type of academic research (with
the same pitfalls and limitations involved) and understands "free" mainly as
in "free education". For students it might be better limited to the initial stages
of their career of programmers, the stage on which they can demonstrate to themselves
and the world the level of their talent before moving on. It rejects
romantic ideas inherent in both Stallmanism
and Raymondism
We also try to promote usage of old proven command-line tools like
Orthodox file managers (OFM),
Orthodox editors like "eastern
orthodox editors" (Xedit, Kedit, THE, etc) and western orthodox editors (vi,
vim, etc), as well as
classic Unix utilities. Special
attention is devoted to pipes
as a glue for
classic Unix tools.
| Warning:
Web is now a dangerous place. For your protection you are strongly
advised using a separate instance of Windows on Microsoft Virtual PC
or VMware if you use a Windows-based WEB browser. In view of the recent wave of Malicious iframe attacks it is important to understand that in case you see a pop-up that asks to install any plug-in, often misleadingly claimed to be from a reputable software vendor like Microsoft more often then not it means that the particular page was hacked. Never install any ActiveX plug-ins on prompt -- go to the vendor site and do it manually. Analysis of approximately 4,000 compromised sites delivering the malicious IFRAMES code has shown that the overwhelming majority -- 98% -- were running the Apache Web server[Sophos2007]. This is typical for budget Web hosting providers and this statistics may reflect the fact that attack target them. As such this site is not immune. Pages on this site do not require any plug-ins or ActiveX controls but please note that since May of 2007 Google started using rich content ads which for some pages lead to requests to download ActiveX controls. If you are not working in a separate instance of Windows under VM it is safer to ignore such requests. |
Unix Find Tutorial : Unix sort command : Unix cut command : Windows XP Slow Startup and Shutdown : VNC on Solaris : VNC on Linux : Sorting Algorithms : AWK Programming : Free Registry tools : Norton Ghost : Windows Resource Kit : Algorithms : Microsoft Registry Tools : Unix_system_calls : AWK : VNC on Linux: Solaris vs Linux : Assembler : Orthodox_File_Managers : Scripting_Page : Windows Process Viewers: Solaris zones: Dual_boot : Editors : find : VNC: Windows Command Line Tools: Unix dd utility: Compilers : Skeptical Antivirus/Malware Page : Shells : Pipes: Skeptics : Decompilation :
Linux Performance Tuning : LVM : Linux Multipath : Linux Disk Management : SLES Registration : SUSE 10 SP2 Installation Checklist : Suse installation : Suse : Financial Blogorama : Financial Humor : SAT : bash Control Structures : Loops in Shell : if statements : Pipes and Coroutines in Shell : Bash : Social Dynamics of Free Software Licenses : Skeptical view on financial news : Tivoli : TEC : TFM : ITM : Yast : Sudo : Literate Programming : Malware Defense Strategy : Malicious iframe attack : Hosting : Solaris vs Linux : TCP Protocol Layers : Micromanagers : Network Troubleshooting : Tivoli Redbooks Solaris vs Linux : A Slightly Skeptical View on Scripting Languages : Peephole Refactoring : Program Slicing : The History of Development of Norton Commander : IT Outsourcing Skeptic : Log Auditing : VNC : Softpanorama Society Orthodox File Managers Site : Windows Process Viewers :
Recent articles:
Copyright © 1996-2008 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. Submit comments This document is an industrial compilation designed and created exclusively for educational use and is placed under the copyright of the Open Content License(OPL). Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.
Standard disclaimer: The statements, views and opinions presented on this web page are those of the author and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.
Created: May 16, 1996; Last modified: November 08, 2008