The 46 Best-ever Freeware Utilities
http://www.techsupportalert.com/best_46_free_utilities.htm
There are a lot of great freeware products out there. Many are as good or even better than their commercial alternatives. This list features my personal pick of the "best of the best."
All these utilities in this list have been featured in past issues of of my free monthly newsletter "Support Alert" More freebies are featured in every new issue. If you are interested in great utilities and freeware you really should consider subscribing. It's free.
You'll get the most from this list by browsing through it at leisure. The pathologically impatient can consult the index.
This page is updated regularly. Last update: September 27, 2005.
Bookmark now : del.icio.us furl spurl
The Best-ever Freeware List
1 Best Free Web Browser
Internet Explorer is a good browser but it has become such a target for malicious exploits that it is now a major security risk. Quite separately, the browser itself is now looking dated with most alternative products offering tabbed browsing and other productivity enhancements. There are several excellent alternatives but Mozilla Firefox is the stand-out pick. It's safer than Internet Explorer, so safe in fact that many users have reported no spyware infections since they started using the product. It's also browses faster than Internet Explorer and since the release of version 1.0, it's stable and reliable as well. It loads a little slower than IE but once running, it zips along at lightning speed. With tabbed browsing and more free extensions than you could ever want, it offers a major upgrade in your browsing experience. Unlike IE, it's also standards compliant. Firefox is now my everyday browser though occasionally I have to fire up IE to browse a site designed around IE's non-standard features. (4.7MB) http://www.mozilla.org/products/firefox/
http://www.techsupportalert.com/firefox.htm <= Free Firefox migration guide
2 Best Free Anti-Virus Software Updated September 27, 2005
There are two equal recommendations in this category. First there is AVG Antivirus 7.0 Free Edition. This product [1] has been continuously refined since it was first released in 1991 and now offers very impressive protection capabilities. Additionally, it's relatively small, light on resources, has regular automatic updates and handles email scanning. There is a free and a pro version, the only difference being that the free version has a few non-critical features disabled and has no direct technical support. Even so, it's an impressive package and offers the financially challenged a real alternative to the major anti-virus suites. Equally impressive is the free Avast! scanner [2] though its funky media player style interface is not to everyone's taste. Avast! also required periodic re-registration while AVG does not. A possible third option is AntiVir [3]. It offers slightly better detection rates than either AVG or Avast! but the lack of email scanning precludes general recommendation. However it's the perfect choice as a second on-demand scanner. If you use it in this role, make sure you disable its resident virus guard during installation to prevent it interfering with your main AV scanner.
[1] http://free.grisoft.com
[2] http://www.avast.com (5MB)
[3] http://www.free-av.com (6.8MB)
[4] http://www.techsupportalert.com/free-vs-paid-av.htm <= review of the effectiveness of free security software
3 Best Free Adware/Spyware/Scumware Remover Updated August 23, 2005
My top recommendation is Microsoft's Antispyware program [1] which is currently available as a free beta to users of Windows 2000 and later. The Microsoft program is based on the Giant Antispyware product that Microsoft purchased late in 2004. I used Giant for some time and found it to offer outstanding detection and real time protection against the current plague of scumware products. The only minus being that it uses a fair slab of processing power and that could can slow down older PCs. The free Microsoft version is very similar to the previous commercial Giant version. I just hope Microsoft doesn't mess around too much with this excellent product however Microsoft's track record in this area has not been good. It's something I'll be keeping a close eye on; so far, so good. Microsoft has announced that the product will remain free even when out of beta so, subject to my previous reservations, it's a good long term choice. For Windows 9x and ME users I suggest two free products: Ad-Aware SE V1.6 [2] and SpyBot Search and Destroy V1.4 [3]. Both work well together and between them you'll get excellent protection. If you have a relatively fast PC, I suggest you turn on the TeaTimer option when you install SpyBot. It will give you reasonable active protection but at the cost of eating up some of your processing power. The active protection offered by TeaTimer is not as comprehensive as the Microsoft product but Internet Explorer users can augment it by using SpywareBlaster (see next item)
[1] http://www.microsoft.com/athome/security/spyware/software/default.mspx ( 6.4MB)
[2] http://www.lavasoftusa.com/software/adaware/ (1.7MB)
[3] http://www.safer-networking.org/en/index.html (4.6MB)
4 Best Free Browser Protection Utility
There's a scumware plague at the moment. All it takes is a visit to a pushy web site or a loaded shareware install and next minute your Internet Explorer homepage has been changed, your default search setting altered, unwanted ads pop up on your screen and worse. You can help protect Internet Explorer against these attacks by using SpywareBlaster [1]. It's is not a system scanner rather it is monitor that's designed to prevent an initial infection. It provides active protection for Internet Explorer users against thousands of malevolent products that use ActiveX based exploits and offers defenses against hostile sites and unwanted cookies as well. SpywareBlaster can be used with Firefox but there's not much point as Firefox doesn't need to be protected against ActiveX exploits. SpywareBlaster is free but the automatic update service costs $9.95 annually. A companion program to SpywareBlaster is SpywareGuard [2]. It is also a protective program that checks programs before they are run for malware signatures and also checks program behavior as well. However of late SpywareGuard seems to have been rather neglected with no new signature updates for more than a year so I can no longer give it my recommendation. SpywareBlaster though, is a terrific product and a must-have for Internet Explorer users who also use the free version of Ad-Aware. If you are using Microsoft Antispyware, Ad-Aware Pro or other anti-spyware utility with a real-time monitor, you don't really need it.
[1] http://www.javacoolsoftware.com/spywareblaster.html (2.2MB)
[2] http://www.javacoolsoftware.com/spywareguard.html (1.96MB)
5 Best Free Firewall Updated September 27, 2005
No other single product class seems to cause as much angst to average users in their installation and day-to-day use as Firewalls. That's why my choice for "best" goes to Kerio Personal Firewall [1], the product that seems to cause the fewest problems for users yet manages first rate protection as well. However it looks like Kerio may be discontinuing this product by the end of 2005 so hop in and get a copy while it is still available. The latest free version (V6) of the ZoneAlarm firewall [2] comes in a a good second choice though there have been considerable teething problems with the new version. Also the current ZoneAlarm free has become a true bare bones version of that company's class-leading commercial firewall. Such is life. More adventurous users and the technically inclined may however wish to consider Sygate [3]. It offers more control and more information but is not the easiest to setup and use. Sygate has recently been purchased by Symantec and that doesn't bode well for the future. The most technically advanced firewall of all is possibly the latest Tiny version. However it is so fiendishly difficult to install and setup that I can only recommend it to network specialists and masochists. Note: The free and paid versions of Kerio and Sygate are the same. If you don't buy the product some advanced features are automatically turned off after 30 days.
[1] http://www.kerio.com/kpf_home.html (7.3MB)
[2] http://www.zonelabs.com/store/content/company/products/znalm/freeDownload.jsp (9.0MB)
[3] http://smb.sygate.com/products/spf/summary_spf.htm (8.8MB)
6 Best Free Trojan Scanner/Trojan Remover Updated August 23, 2005
Ewido is the best of a new crop of anti-Trojan programs. On my recent tests over at www.anti-trojan-software-reviews.com it emerged as was one of the few products that could reliably detect polymorphic and process injecting Trojans that were totally missed by anti-virus products like Norton and AVG. Unfortunately the free version of Ewido doesn’t have a memory monitor and this omission significantly reduces the level of active protection provided. However the on-demand scanner is excellent. I recommend that all average PC users who don't have an anti-trojan scanner download Ewido and scan their PCs weekly. I suspect you may be surprised at what you will find. Ewido is also pretty good at removing some spyware infections so bear that in mind next time you encounter a spyware product you can't remove with normal anti-spyware products like Ad-Aware. Note that Ewido only works with Windows 2000 and later so Win 9X users should consider the free version of a2 (a-squared) anti-trojan as an alternative. It's not quite as effective as Ewido but is still an excellent product. High risk PC users such as P2P file sharers and frequenters of hack sites, should however consider the industrial strength protection of Trojan Hunter or the full version of Ewido both of which offer the active protection they need. Note: The free version of Ewido is actually the same as the paid version but after 14 days the active protection (i.e. memory monitor) becomes non-functional.
http://www.ewido.net/en/ (2.2MB)
http://www.anti-trojan-software-reviews.com/review-ewido.htm <= review of Ewido
7 Best Free Rootkit Scanner/Remover Updated September 27, 2005
Rootkits are a special kind of software tool used to hide trojans, viruses and other malware from your anti-virus scanner and other security products. Unfortunately there are extremely effective which means that some of you reading this will be infected even though you believe your PC to be totally clean. Thankfully there is a new class of security product now available called rootkit detectors that use specialized techniques to detect these dangerous intruders. Most of these detectors require quite a bit of technical skill to interpret the results but one of the simplest to use and most effective is also free. It's called BlackLight [1] and is currently available as a free beta from F-Secure until the 1st of January 2006. I suggest everyone download this product and scan their PC. The chances of you being infected are small but for five minutes work it's not worth taking the risk. BlackLight will detect most rootkits missed by AV scanners but can still be fooled by state-of-the-art rootkits like Hacker Defender. To detect this and a few other insidious rootkits, you need heavier artillery. Currently the biggest gun in the rootkit detection war is a free Chinese product called IceSword [2]. It will reveal absolutely everything running on your PC. Usage, however, requires considerable skill together with the patience to work out the program which is currently only documented in Chinese. In the hands of an expert, its an amazing tool.
[1] http://www.f-secure.com/blacklight/cure.shtml Windows 2000 and later, 911KB.
[2] http://www.Xfocus.net/tools/200505/1032.html slow Chinese site, 1.5MB
8 Best Free Intrusion Prevention and Detection Utility for Home Use
These days all users face a real risk of malicious programs secretly installing themselves on your computer. Anti-virus and anti-spyware products dramatically reduce the chance of infection but you can enhance your protection further by installing an additional layer of defense with an intrusion detection program. For advanced users Prevx is a stand out recommendation. It's so good I made it my Free Product of the Year for 2004. However it's talkative nature and sometimes cryptic messages make it only suitable for experienced users. For other users (but not beginners) I recommend the free version of WinPatrol. Like Prevx it provides a vital "last ditch" defense layer by telling you when a product is trying to change any of the critical settings on your PC such as the registry and auto-start areas. WinPatrol simply throws up a dialog asking whether you want to allow the change or not. Of course being warned is useless unless you have some idea how to respond to the warning. That's why neither Prevx nor WinPatrol is suited to inexperienced users. If you are a beginner you should seriously consider the $29.95 Plus version of WinPatrol which provides lots of guidance to help you make sense of any warning messages. As a bonus it offers better protection as well.
http://www.prevx.com/prevxhome.asp (7.5MB)
http://www.winpatrol.com/ (880KB)
http://www.techsupportalert.com/intrusion-detection.htm <= Brief survey of IDS software
9 Best Free Anonymous Surfing Service Updated September 27, 2005.
There are lots of reasons folks have for wanting to surf anonymously, ranging from simple paranoia to possibly being murdered by a malevolent foreign government. Whatever the reasons, commercial services that offer anonymity are doing real well. However one of the best services JAP, is totally free. In fact JAP is perhaps a little too good. That's why the German Police insisted in 2004 that a backdoor be put into the product to allow interception of child pornographers. This was done but subsequently removed as a result of court action by JAP. An alternative to JAP is another system called Tor. It not only allows anonymous browsing but anonymous email, IM, and IRC chat as well. Given the US Navy origin of Tor, the suspicion arises that this system may indeed have a permanent backdoor. However the source code is now publicly available so that suspicion can now be set aside. Whatever, both JAP and Tor offer a level of secrecy that is better than many commercial systems. However expect your surfing to slow down as you'll be relayed through a chain of servers. You'll also need to change your browser settings to work through a proxy. Note: the latest V5 release of JAP now allows Tor users to use JAP as a software access point.
http://anon.inf.tu-dresden.de/index_en.html
http://tor.eff.org/
10 Best Free Software Suite Updated August 23, 2005.
The Open CD site offers for free a wonderful collection of just about every application software product you need to run a PC including the latest version of OpenOffice. Many of these freebies substitute admirably for expensive commercial products. There is Abi Word as an alternative for MS Word, OpenOffice for MS Office XP, Thunderbird for Outlook, The Gimp for Adobe Photoshop, 7-zip for WinZip and many more. If you then add to this collection some of the other utilities from my "46 Best-ever Utilities" collection you will have all the software you'll ever need without spending a cent. Note: All of the Open CD utilities can be downloaded for free as a CD ISO image. If you have a slow connection you can purchase the CD for a as little as $1.99. In addition to the Windows versions, the CD also contains the same collection of programs implemented under a version of Linux called Ubuntu that can be booted and run directly from the CD. That way you not only get to try all these great programs you can try Linux as well, without interfering in any way with your current Windows installation.
http://theopencd.org
(Sponsored Links)
The Best Windows Backup Software
We are in the process of updating all the backup reviews at our site but I can tell you right now that the top product has blitzed the field for a second year in row. In fact, it's improved so much that it's now a one horse race for our "editor's choice." The updated review of the top product is now online. If you have been looking for a backup program, this is the one.
http://www.backup-software-reviews.com/
The Best Spyware Detector
If you use Ad-Aware or SpyBot you will be surprised just how more effectively SpySweeper detects and protects your PC from Adware, Spyware, Trojans and other malicious products. That's why it won the prized "Editor's Choice" award in PC Magazine's massive March 2004 survey of anti-Spyware products. Try the free evaluation copy and see for yourself.
http://www.webroot.com/wb/products/spysweeper/index.php?rc=1132
The Best Remote Access Software
Our reviewer had given this product category away as "too slow, tool clumsy and too unreliable" but after reviewing this product he's changed his mind; "at long last a remote access solution that actually works! Quite frankly we agree with him, it's an impressive product. Read the full review here:
http://www.pcsupportadvisor.com/best_remote_access_software.htm
The Best Spam Blocker for Dummies
Most spam filters require you to be a computer expert. Our Editor has found two spam filters for average users that will remove the spam from your email and yet are simple to use.
http://www.techsupportalert.com/best-antispam.htm
The Best Anti-trojan Scanner
Most users are not aware that their anti-virus scanner can only provide a moderate level of protection against trojan programs that try and take control of your PC. To really protect your computer, you need a dedicated anti-trojan program. Our editor's have reviewed every major product on the market and have concluded that two scanners stand head and shoulders above the other contenders.
http://www.anti-trojan-software-reviews.com
11 Best Free File Manager
Windows Explorer is fine for simple file management activities but when you have some serious work to do, you need a two pane file manager. I use Directory Opus which is without doubt the best product in this class but costs $59. Recently I discovered xplorer². It offers a good part of the functionality of Directory Opus and is totally free. As a bonus, its user interface is very similar to Windows Explorer, so most users will find this tool easy to learn and use.(575KB)
http://www.netez.com/xplorer2/x2lite.htm
12 Best Free Email Client
Thunderbird is a free open source POP and IMAP email client developed by Mozilla.org, the same folks who brought you Firefox. Feature-wise it sits somewhere between Outlook Express and Outlook which means that it offers an upgrade to Express users and a downgrade to those who use the more advanced PIM features of Outlook. All Outlook Express users should seriously consider switching. You’ll be rewarded with a more advanced product including built- in spam filtering, built-in RSS reader, better security, message color coding, fast email search and the ability to view your mail in conversational threads. On top of that, the product is more secure than OE and, unlike the latter, is still being actively developed. The transition is made easier by the fact that Thunderbird looks and works similar to OE. Tools within Thunderbird also allow you to easily import OE account settings and stored email. Outlook users who aren’t reliant on calendaring, Microsoft Exchange or Outlook plug-ins should also consider switching. If you switch to Thunderbird, you should also consider using the free Copernic Desktop Search program, the latest version of which now indexes Thunderbird email files.
http://www.mozilla.org/products/thunderbird
http://www.nidelven-it.no/articles/introduction_to_thunderbird
13 Best Free Web Mail Accessory
Two suggestions: the first is a nifty free product called YPOPs! (formerly YahooPops!) that allows you to collect your Yahoo webmail from within your POP email client such as Outlook, Thunderbird or Eudora. I use it on multiple Yahoo accounts and it works wonderfully. The second suggestion is an Open Source utility called MrPostman. It's a much more flexible product than YPOPs! and will download HotMail, Lycos, Yahoo and several other webmail services into your POP email client. It can also give you access to email accounts on MS Exchange 5.5. If you only use Yahoo webmail, go with YPOPs! as MrPostman is a more complex program and can need a bit of fiddling to work correctly. You'll find a couple of links below that will help you. Note that MrPostman requires the Java Runtime Environment to be installed on your PC.
http://yahoopops.sourceforge.net/ (1.3MB)
http://mrpostman.sourceforge.net/ (1.5MB)
http://2mod2.com/mohot/ <= Installing Mr Postman
http://sourceforge.net/forum/?group_id=68124 <= MrPostman forum
14 Best Free Clipboard Replacement Utility New! Added August 23, 2005
The regular clipboard in Windows has limitations – one item at a time and no retention after logging off. Clipboard replacement utilities provide the ability to hold multiple items and store them for future use, even after logging off. There are many free clipboard replacement utilities available, including CLCL,
Clipboard Magic, Clipboard Recorder, Clippy 2001, Ditto, DzSoft Paste & Save, and Yankee Clipper III. While none of these have the very extensive set of features of the class-leading shareware product ClipMate 6 ($29.95), they all offer the basic clipboard replacement features that 95% of us really want and
need. If you just need a basic clipboard replacement utility, look no further than Clipboard Recorder [1]. It will store up to 99 items that can be easily selected and pasted from the popup history list by pressing the shortcut key (Ctrl-Alt-V by default). It supports a variety of formats (text, RTF, HTML, CSV, Bitmap, etc.) and has the ability to transfer copied items between computers. In addition, it is a very small program and uses very little resources. Clipboard Recorder is what the regular clipboard in Windows should have been! However, if you need advanced features such as the ability to support additional item types, create groups of items, search previous items, and synchronize clipboards across multiple computers, then I would recommend trying Ditto [2]. In addition to its extended feature set, its user interface is very clean, easy to use, and has many configurable options that you can configure to meet your needs. Note that Ditto requires DAO to be installed [3].
[1] http://www.lw-works.com/ Windows 98 and later, 382 KB
[2] http://ditto-cp.sourceforge.net/ Windows 95 and later, 422KB
[3] http://ditto-cp.sourceforge.net/dao_setup.exe .3MB
15 Best Free HTML Editor New! Added August 23, 2005
This is one of my most requested items but up until now I've not been able to give any product my hearty endorsement. There have been any number of contenders: Amaya for example, impressed with its standards compliance but was incomplete while Selida looked slick but had too many bugs. Finally a worthy contender has arrived on the scene in the form of the Open Source Nvu. In reality Nvu is nothing new but rather a reworking of the old Netscape Composer. Composer was always a solid product and the revamp has lifted the product into another class. Here is an HTML editor and site manager that's easy enough for beginners to use but powerful enough to build large sites. It's closer in concept to Microsoft's FrontPage more than any other product but unlike FrontPage it, thankfully, produces standards compliant code. Its easy-to-use WYSIWYG editor will delight HTML newbies while HTML honchos can simply click a tab to switch to code view. Multiple tabs can be kept open to allow simultaneous editing and there is excellent support for forms, tables and templates. An internal spell-checker is included. CSS is handled through the CaScadeS editor from Mozilla Composer. Nvu also has the handy ability to call W3C's HTML validator from within the product. It's also extensible via XUL. Nvu can upload files to your site via FTP and has some basic site management features but this is not its strength. Overall it's an impressive product; no, it's not a replacement for DreamWeaver but those looking for a competent, free HTML editor that's easy to use need look no further. Free Open Source, Windows 98 and later plus Linux, 6.57MB
http://www.nvu.com/
16 Best Free Spam Filter for the Average User
This is a difficult category as ordinary users need products that are easy to use and frankly, most free spam filters are way too complex to set up and use. The best products in this class are in fact, shareware not free. That said, MailWasher is for most folks, the best free option. MailWasher is an email preview utility that allows you to check your email on your mail server before you download it to your PC. The advantage of this approach is that you can kill unwanted messages including spam, viruses and large attachments before they get anywhere near your computer. MailWasher flags for you any messages containing possible spam and viruses for you to quickly check. It's a simple idea but quite effective and one which average users find easy to understand. The last free version of MailWasher [2] before it went commercial is still floating around the web. It lacks many of the advanced spam detection features of the current commercial version but is still quite effective. Alternatively, try XTerminator [3] which works much the same way as MailWasher and is totally free. I must say though, I prefer MailWasher's user interface
[1] http://www.mailwasher.net ( 3.05MB)
[2] http://www.321download.com/LastFreeware/page2.html#Mailwasher (1.57MB)
[3] http://www.artplus.hr/adapps/eng/xterminator.htm (1.87MB)
[4] http://www.techsupportalert.com/best-antispam.htm <=brief review of the best spam blockers
17 Best Free Spam Filter for Experienced Users
There are many different spam filters available employing lots of different techniques. In my experience "learning" spam filters that use the Bayesian statistical approach out-perform most other types of filters I've tried. Not only are they better at detecting spam they are also less liable to classify your real mail as spam. This effectiveness takes a little time to develop as the filter has to be trained to recognize your spam from your normal mail. It takes a week or so before results start becoming accurate and best results may take a month or more. POPFile, a free, open source spam filter, was one of the first Bayesian filters and is still one of the best. It works as a proxy mail server so that means that it can be used with any POP email client. Setup is reasonably straightforward for experienced users but beginners may be better off with Mailwasher. If you use Outlook there are several excellent free Bayesian spam filters available including SpamBayes and K9. Both are simple to install though, like all statistical filters, they need to go through a training phase before they reach full effectiveness.
http://popfile.sourceforge.net/old_index.html (4.3MB)
http://spambayes.sourceforge.net/ (3.6MB)
http://www.keir.net/k9.html (113KB)
18 Best Free Popup Stopper
The need for popup stopper utilities has fallen away in recent months as many browsers such as Firefox now have this function built in. If you need a separate popup stopper and have good PC skills I suggest you try The Proxomitron.. It operates by filtering and transforming all your Web pages on the fly. As a result you can not only stop pop-ups but pop-unders, ads, flash animations, status bar scrollers and just about anything else. Besides, next time you are asked what pop-up stopper you use, you can answer; "why, I use The Proxomitron" and how cool is that. The first link below is to version 4.5, the last and final version of this superb utility. The following two links offer useful setup and usage tips. Note: For Novice PC users I suggest you try the Google toolbar rather than The Proxomitron. It's free as well and has an excellent popup filter built in. It's nowhere near as flexible as as The Proxomitron, but it requires no setup. As a bonus it also makes Google searches easier.
http://computercops.biz/files/ProxN45.exe
http://accs-net.com/smallfish/prox.htm
http://www.sankey.ws/proxomitron.html
http://toolbar.google.com/
19 Best Free Desktop Search Utility Updated September 27, 2005
In early 2004 there were no contenders for this title. Today we have a wealth of choices. In a close race I would have to say the Free Desktop Search from Yahoo comes out in front because of the clear way it presents search results. It's powered by the well established X1 local search engine and can index the contents of 200 different file types including Word, Excel, PowerPoint, PDF, Outlook, Outlook Express, HTML, text, ZIP and Adobe PhotoShop though at the moment it will only handle email files from Outlook, Outlook Express and Thunderbird. It will index html files but can't index your web browsing history. If the later is important to you, you may want to look at Version 2 of Google desktop search. It not only will search your web history but offers an Outlook toolbar, integrated Gmail search and a novel desktop sidebar that allows personalized search, news, weather, photos and more. The Sidebar also includes a quite effective application launcher. Some folks love the Sidebar others, me included, find it intrusive. Unfortunately though, to run either the Yahoo or Google DTS you'll need Windows 2000 or later. If you are stuck with earlier version of Windows then try the free Copernic Desktop Search. It offers many of the key features as the others though the presentation of search results is not quite as elegant as Yahoo DTS.
http://desktop.yahoo.com
http://desktop.google.com (1.4MB)
http://www.copernic.com/en/products/desktop-search/download.html (2.3MB)
20 Best Free Digital Image Viewer Updated August 3, 2005
Two good choices here. First there's the classic IrfanView. Irfan is a first class product but one for which I have mixed feelings. That's why it's been in and out of my "46 Best Freeware" list several times. It's an amazingly capable product but it just doesn't work the way I want it to. Other users though, just love it. A product I feel more comfortable with is XNView. Like Irfan it is very versatile; it can read and display nearly 400 types of graphic files and convert any of these to over 50 formats. It displays pictures very quickly and these may be viewed full screen, as slideshows or thumbnails. It's quite capable at processing images, too; you can adjust brightness, color, apply filters or effects, crop photos, re-size, convert format and more. These operations can also be carried out from a batch file, which makes it ideal for converting large digital photos to smaller sizes for the web or emailing. It supports drop and drag, has many plug-ins, is available in 44 languages and has full cross-platform support including Mac. XNView has a lot of similarities with IrfanView, so many in fact, that it comes perilously close to plagiarism. Put positively, one may say that imitation is the sincerest form of flattery however the developer of IrfanView must feel more than a little miffed. XNView is free for non-commercial use, all Windows versions plus many other platforms. The standard version for Windows is 3.3MB but I suggest you download the complete version with all plug-ins which weighs in at 6.8MB
http://perso.wanadoo.fr/pierre.g/xnview/endownloadwin32.html
21 Best Free Digital Image Editor Updated September 27, 2005
I use to recommend The Gimp but after dozens of letters from less-experienced users who couldn't manage to install it or work out the idiosyncratic user interface, I've decided to confine that recommendation to experienced users. If that's you and you patient enough to learn the product's sometimes quaint ways then you have no need to consider anything else. For other users I have two recommendations: First there is Paint.net, an amazingly sophisticated piece of work from computer science students at Washington State University. It's not quite as powerful as The Gimp but a lot easier to use and install. It's also getting better; the new V2.5 continues this product's impressive development record. It is however only for Windows 2000 and later and you'll need Microsoft's bulky .NET framework installed on your PC. My second choice is PhotoPlus 6.0 from a company called Serif. It's an impressive piece of work; again it installs easily and it's loaded with features including layer support. In fact, it looks and feels like a "lite" version of Adobe PhotoShop except that it is relatively easy to use. I say "relatively" because graphics editing is by its nature, not simple. Both Paint.net and PhotoPlus are outstanding free products. Which is the best? Easy, the answer is .... your call ;>)
http://www.gimp.org/windows/ (7.07MB)
http://www.eecs.wsu.edu/paint.net/ (5.1MB)
http://www.freeserifsoftware.com/software/PhotoPlus/default.asp (19.4MB)
22 Best Free Digital Photo Organizer
It’s rare for me to be utterly wowed by a product but this one certainly did it. When you first run Picasa it offers to scan your whole hard drive (or designated locations) for photos and videos. Scanning is surprisingly quick and when finished you’ll have all your shots neatly organized into folders on a time line basis. Now you can view you shots one at a time, in slideshow or traversing the time line. The editing features are limited compared to professional image editors yet they provide you with every function amateur photographers need including one click red eye reduction. Similarly adding labels to photos is a cinch while a simple but effective star rating system allows you to flag favorite snaps. Individual folders can also be password protected. Facilities are provided to import your images from your camera in multiple formats including RAW. You can send photos to your choice of web printing service, cut a CD, print to a local printer or share with others via your own blog or instant messaging. Simply sensational. Windows 98 or later, 300MHz Pentium with 128MB memory or better, 3.2MB.
http://www.picasa.com/
23 Best Free Notepad Replacement
There are lots of text editors and Notepad replacements. Some of these aspire to be programming editors while others try to be word processors. What I love about EditPad is that, unlike the others, it concentrates on simply being a better plain text editor and in that role, it succeeds brilliantly. It has a Notepad like interface combined with tabbed document windows and the ability to open as many documents as you like with no file size limitations. I use it every day for tasks as diverse as writing Support Alert Newsletter to examining my web log files. Some of the latter can be up to 100MB, yet EditPad handles these huge files with ease. (849KB).
http://www.editpadlite.com/editpadlite.html
24 The Best File Archiver/Zip Utility
When I last looked at archiving utilities I checked out six utilities: QuickZip, ICEOWS, IZArc, TUGZip, ZipGenius and 7-Zip. The product that impressed me the most was the Open Source program 7-Zip. It was the only product in the group that could unpack a multi-part RAR volume embedded in a ZIP archive and the only product to give a meaningful error message when an attempt was made to unpack a 256bit encrypted WinZip archive. However I was unable to recommend 7-Zip due to the lack of drop-and drag. With the release of version V4.23 on the 29th of July that feature has now been added. Also new is the ability to copy directly from one archive to another. 7-Zip still handles fewer archive types than IZArc, my former top recommendation. It only supports 7z, ZIP, CAB, RAR, ARJ, GZIP, BZIP2, Z, TAR, CPIO, RPM and DEB while IZArc can read nearly 50 archive types including media formats like ISO, BIN and IMG and can write (and convert) to 12. You couldn't go wrong with either product. 7-Zip is a little more robust while IZArc is a little more flexible. If you already use WinZip you'll find either 7-Zip or IZArc make excellent companion products. They can can read just about all the major archive formats WinZip can't, including the widely used RAR.
http://www.izarc.org/download.html Windows 9x and later, 3.1MB
http://www.7-zip.org/ Windows 9x and later, 1.05MB
25 Best Free Hotkey Utility
Hotkeycontrol XP is a free utility that allows you to define your own hotkeys so that a single key press can launch an application, insert commonly used text, change your volume, or just about anything else. Hotkeycontrol works with all versions of Windows from 98 onwards, though some features will only work with Win2K or XP. Some folks with slower PCs have reported that Hotkeycontrol can be a little slow to react. If you experience this, you might like to try PS Hot Launch VVL as an alternative. It works on all versions of Windows and is an excellent performer even on slow PCs. A third alternative is not really a hotkey utility at all but achieves the same result by using "magic words." It places a tiny text box on your screen and when you type specially assigned words into the box, they will launch a program, go to a web site or whatever. For example if you type "mail" it can launch your mail reader. Type in "46" and it can take you to the web page of the "46 Best-ever Freeware Utilities." Of course, it's up to you to define these magic words and you can have as many as you want. It all works very neatly with some really nice touches like auto-complete for your magic words which means you only have to type in two or three letters and SlickRun will complete the rest. Nice too, is an eyedropper tool that allows you to identify a program you want to "hotkey" just by clicking in its application window. There's also a built-in note jotter and a calendar date display. It requires Win 98 or later.
http://www.digital-miner.com/hkcontrol.html (0.91KB)
http://www.pssoftlab.com/pshl_info.phtml (743KB)
http://www.bayden.com/SlickRun/ (168KB)
26 Best Free Registry Cleaner
To keep the registries on my PCs in top running order I use Fix-It utilities. This is a commercial product but I must admit that Toni Helenius' Easy Cleaner performs almost as well and is totally free. As a bonus, it will also detect duplicate files and help you clean up temp files to make more disk space. Remember though, as with every Registry cleaner, to back up your Windows Registry before use. (2.64MB)
http://personal.inet.fi/business/toniarts/ecleane.htm
27 Best Free BitTorrent Client
It's amazing how quickly BitTorrent has become one of the major download formats. With good reason, too: it's fast, equitable and efficient. If you haven't yet installed a BitTorrent client on your PC, you should as there are some great free clients available. I recommend the Open Source program Azureus. It's beautifully implemented, well supported and, being Java based, is available for multiple platforms. The latest version also features a new technology called DHT (Distributed Hash Table) which distributes indexing responsibility across multiple clients rather than relying on a single web-based tracker. With BitTorrent sites coming and going regularly DHT is definitely a plus. One downside with Azureus is that the Java code will eat up your CPU cycles so you need a reasonably fast PC. Those with older machines should check out BitTornado. It's also cross platform and is fast and highly configurable as well. Both products are adware and spyware free.
http://azureus.sourceforge.net/ (6.4MB)
http://bittornado.com/ (3.3MB
28 The Best Free FTP Client
I used WS_FTP Pro as my principal FTP client for years. What started out as simple and effective product gradually with each new version became more feature-bloated and less effective for routine tasks. With the release of Version 9 it was clear to me that the product had totally lost its way so I started looking for an alternative. After trying seven different FTP clients I decided that the best for me was the Open Source utility FileZilla. It uses a simple layout based on a two pane interface that looks a bit like the early versions of WS_FTP. But this simplicity is deceptive, it is actually a quite powerful product There's a full featured site manager, firewall and proxy support, SSL and Kerberos GSS security, restart, drop and drag and a lot more. The only significant feature that's missing is site-to-site transfer but that's of no importance to me. What is of importance is that FileZilla is fast, totally reliable, secure and and very easy to use. There's also a free FileZilla FTP server which I haven't used but I hear that it's just as good as the client. (4.5MB)
http://filezilla.sourceforge.net/
29 Best Free Bookmark Cleaner
AM-DeadLink scans your bookmark file for dead links or duplicate links. When I tried it on my huge favorites file I discovered 17% of my links were dead. I've now got a much leaner set of favorites and the comfort of knowing that the links actually work. (546KB)
http://aignes.com/press/deadlink140.htm
30 Best Free Route Tracer
3D Traceroute graphically displays Internet route information. You can use it for technical tasks such as diagnosing slow connections or for general purpose snooping like determining the location and owner of a web site or tracing spammers. (996KB)
http://www.d3tr.de/
31 Best Free Screen Capture Utility
Two recommendations here: The first is PrintScreen. It does exactly what I want, in the way I want and furthermore avoids the trap of providing lots of useless and confusing features. It's the little things that count like making the hot key PrtSc so I don't have to remember it, and automatically sequentially naming the output files for multiple screen shots. A second recommendation is Screen Hunter. It's a commercial product but the free version is excellent, offering more features than Gadwin at the cost of a little added complexity. Both products work with Win 98 and later.
http://www.gadwin.com/printscreen/?prnscr (976KB)
http://www.wisdom-soft.com/products/screenhunter.htm (381KB)
32 Best Free Search Toolbar
Search toolbars allow users to do web searches without having to go first to the home page of a search engine. This really saves a lot of time. In the last year search toolbars have become a hotly competed product class and as result, users now have an excellent choice. The "best" in terms of features is probably Yahoo's Toolbar whose features include anti-spyware capabilities as well as popup blocking. It's for Internet Explorer but they are currently offering a beta version for Firefox. My only beef with the Yahoo product is that I prefer to use Google for my web searches rather than Yahoo and that's why I use the Google Toolbar which also offers popup blocking though no anti-spyware features. On the other hand it includes a useful web form spell-checker and a few other goodies not found in the Yahoo product. Google also offers a full Firefox version as well as the standard IE version. Some folks still like Dave’s Quick Search Bar because it gives access to multiple search engines. Another advantage is that it resides in your task bar rather than your browser so it's easily accessible from any application. Other Dave's features include a dictionary, thesaurus, calculator and a lot of customizability.
http://toolbar.yahoo.com/ie (3MB)
http://www.dqsd.net/ (327KB)
http://toolbar.google.com/deskbar/ (447KB)
33 Best Free Download Manager
For some time I've been recommending Star Downloader but the freeware version has been effectively frozen at version 1.44 with future enhancements restricted to the shareware version. It is however, still a fine choice. After trying half a dozen other products, I've settled on "Free Downloader" as my new selection. It's fast, stable and integrates well into both Internet Explorer and Firefox. Furthermore, there is no embedded adware or nag screen. After using it for a couple of weeks, I've decided that it's actually just as good as Star Downloader with the advantage that it's still being actively developed. (1.31MB).
http://www.freedownloadmanager.org/download.htm
34 Best Free Web Site Ripper
HTTrack is one impressive product: it's easy to use, has an excellent user interface, offers every feature you could want, is blindingly fast and free of any adware as well. If you like to download web sites so that you can "browse them offline", this is the product to get. ( 3.23MB)
http://www.httrack.com/
35 Best Free Download/Upload Meter New, September 27, 2005
NetMeter shows upload and download speeds, along with cumulative weekly and monthly volumes and projected values. The program reminds me in many ways of Hagel's excellent $20 shareware product "DU Meter." In essence, everything you need for nix. Freeware, all Windows versions, 601KB.
http://readerror.gmxhome.de/
36 Best Free TCP Settings Tweaker
Whether you use a modem or broadband, you'll get a faster connection if you tweak your connection's TCP parameters. Among the most important of these is MaxMTU which, in simple terms, needs to be set to the largest value possible without your data being broken up into smaller chunks en-route. Most techies determine MaxMTU by trial and error pinging using different packet sizes but it's a tedious procedure and definitely not for beginners. TCPOptimizer from SpeedGuide.net is a free utility that will do the job for you automatically. Furthermore, it will use this value to advise you on your other TCP settings and then apply these values at the press of the button. There are commercial programs that will do much the same thing but TCPOptimizer does it just as well and is totally free. The only minus is the lack of in-program help. However you'll find a useful FAQ at the SpeedGuide site. (225KB)
http://www.speedguide.net/downloads.php
http://www.speedguide.net/faq_in.php?category=100
37 Best Free File Cleaner
I've tried quite a few commercial products designed to clean unused, temporary and unnecessary files off your hard disk but must say that the free utility "Empty Temp Folders" ranks with the best. It takes a few minutes to set up but after that, just press a button to recover many megabytes of disk space. An equally attractive alternative is CCleaner. It's a tad easier to use though not quite as effective in removing temporary files. Its default settings are also quite aggressive so check the options carefully before running for the first time. Both products may be used together for maximum cleaning. Between them you may be surprise how much disk space you will free up.
http://www.danish-shareware.dk/soft/emptemp (667KB)
http://www.ccleaner.com/ (403KB)
38 Best Free Resource Meter
This is cute. TinyResMeter is an itsy-bitsy system monitor. Unlike many other monitors, it doesn't consume a lot of CPU utilization in order to tell you your CPU utilization. In addition to CPU usage, you can optionally monitor cache, RAM, page file and swap file usage, running processes and threads, disk space utilization and a number of other parameters as well. Also built-in, is a screen grabber that saves the current screen to disk when you press PrintScreen. How they fit all this into 96KB beats me. I
http://perso.accelance.net/~pesoft/trm/us_trm.html
39 Best Free Sticky Notes Utility
Some people hate these programs others swear they can't work effectively without them. I used to be in the first category but with so many things on my plate these days, I'm slowly being converted. The function that I find really useful is the reminder that pops up at a designated time and date. I use it for simple things like "put up the latest issue on the web site." ATnotes is a neat implementation that features configurable alarms, resizable windows, variable fonts and a host of other useful features. The product is remarkably similar to the commercial sticky notes utility called, TurboNotes. Is imitation the sincerest form of flattery? Maybe not. NOTE: As of the 30th of May 2005, development work has ceased and the author's site pulled down. However someone has built a mirror of the author's site [1] where you can read about ATnotes and download the final version. You can also download ATNotes from the a number of other sites including the second link below. (723KB)
[1] http://atnotes.free.fr/news.html
[2] http://www.pcworld.com/downloads/file_description/0,fid,17660,00.asp
40 Best Free Secure Erase Utility
Eraser is a free, GNU license utility that will securely erase files, folders or even whole disks from any Windows or DOS PC. Eraser overwrites data area with selectable random data patterns and also wipes data in the paging file, Internet cache, temporary files, Internet cookies, unused disk space and a number of other places where data can secretly lurk. It handles FAT16, FAT32 and NTFS partitions as well. Erasing files with high security will always be a difficult and time consuming task and can never offer absolute 100% safety. However Eraser makes the task about as easy as it be, with a security level beyond most conceivable requirements. An impressive package. (2.8MB)
http://sourceforge.net/projects/eraser
41 Best Free Registry Editor
I've used the full version of Resplendent Registry Editor for years and have never had any reason to look for an alternative. Recently a subscriber asked me what was the best free registry editor and that made me realize I've never looked at that particular product category. The first product I checked out was Registrar Lite, the free version of Resplendent Registry Editor and I'd have to say it's an impressive freebie. To start with, it works totally reliably - an essential feature for any registry editor. On top of that, the user interface is simple, the functionality excellent and, perhaps most importantly, it has a really fast search. I did, however, miss a "search and delete" option - that's unfortunately only available on the full product. That said, it leaves Regedit for dead. If you know a better free registry editor, drop me an email. (2.0MB).
http://www.resplendence.com/reglite
42 Best Free Process Viewer
PrcView has long been my personal choice but Process Explorer has pushed it aside. The reason? A better display setup coupled with more features and even more information. Process Explorer uses two vertical panes. The top contains all active processes while the second shows either all the handles opened by a selected process or, optimally, a list of DLLs and memory mapped files. A very handy search feature allows you to work backwards from named DLLs or handles to the owning process. A gem. Freeware, 230KB.
http://www.sysinternals.com/ntw2k/freeware/procexp.shtml
43 Best Free PC Inventory Tool
The freeware utility AIDA32 was the best system inventorying tool ever, regardless of price. It documented just about every aspect of your hardware and software configuration as well as checking networks and providing memory benchmarks. However the developer announced in March 2004 that the free product had been frozen. Development work shifted to a commercial organization called Lavalys and AIDA32 was re-launced as Everest. Lavalys now provide a commercial "professional" version of Everest as well as a free home version. The free version is not as full featured as the old AIDA32 but it is still impressive. You can however still find the old AIDA32 at the second link below.
http://www.lavalys.com/products.php?lang=en (3.0MB)
http://www.soft32.com/download_9181.html (5MB)
44 Best Free Search and Replace Utility
There are several contenders for this title but HandyFile's excellent Find and Replace program is my favorite. It's fast, has a simple but effective user interface and some nice features including support for regular expressions. It started life as a free product before going commercial however the free version is still floating around and can be downloaded from a number of sites including the one below. (361KB)
http://www.pcsupportadvisor.com/downloads/HFFRSetup.exe
45 Best Free Outliner
I'm not a great fan of outliners - my brain doesn't work that way. Some folks however, swear by them and if that includes you, then you should check out Keynote, an Open Source freeware program that has a dedicated band of followers. Its major design attribute is its ease of use. Words like "natural" and "seamless" come close to the mark but really don't capture the essence of what is really a great design. What do you do with it? Well to quote the web site “KeyNote is used by screenwriters to draft screenplays, by medical doctors to keep patient databases, by developers to store source code snippets - and to everyone it serves as a place to put all the random pieces of information that have no particular structure of relationship to other data, and do not fit easily in task-specific applications such as word-processors, databases or spreadsheets.” (1.7MB)
http://www.tranglos.com/free/index.html
46 Best Free Rename Utility
Two great choices here: First Lupas Rename 2000. This is a small utility for Win 98 and later that globally renames all the files in a directory and its subdirectories. It can convert names to upper/lower case, change the case of the first letter, add text, left crop, right crop and just about anything else you can think of. And unlike DOS based utilities, it will work on hidden files as well. Add in a nice GUI interface, an undo feature, full preview of changes, MP3 tag renaming, support for regular expressions and the fact that it's free and you have an outstanding product. The second and equally attractive option is Flexible Renamer. It's quite similar to Lupas and choosing between them is not easy. Lupas seems to me to be easier to use for simply renaming files while Flexible Renamer has the edge with tags. Flexible Renamer can also can bulk change file attributes while Lupas can't. It also runs without installation, a definite plus.
http://www.azheavymetal.com/~lupasrename/download.php <= Lupas (742KB) http://hp.vector.co.jp/authors/VA014830/english/FlexRena/ <= Flexible Renamer (648KB)
Sunday, October 16, 2005
Friday, October 14, 2005
人生是不公平的,习惯去接受它吧
导读:人生是不公平的,习惯去接受它吧。
1.人生是不公平的,习惯去接受它吧。
2.这个世界不会在乎你的自尊,这个世界期望你先做出成绩,再去强调自己的感受。
3.你不会一离开学校就有百万年薪,你不会马上就是拥有移动电话的副总裁,两者你都必须靠努力赚来。
4.如果你觉得你的老板很凶,等你当了老板就知道了,老板是没有工作任期保障的。
5.在速食店煎个汉堡并不是作贱自己,你的祖父母对煎汉堡有完全不同的定义。
6.如果你一事无成,不是你父母的错,所以不要只会对自己犯的错发牢骚,从错误中去学习。
7.在你出生前,你的父母并不像现在这般无趣,他们变成这样是因为忙着付你的开销,洗你的衣服,听你吹嘘自己有多了不起,所以在你拯救被父母这代人破坏的热带雨林前,先整理一下自己的房间吧。
8.在学校里可能有赢家和输家,在人生中却还言之过早,学校可能会不断给你机会找到正确的答案,真实人生中却完全不是这么回事。
9.人生不是学期制,人生没有寒假,没有哪个雇主有兴趣协助你寻找自我,请用自己的空暇做这件事吧。
10.电视上演的并不是真实的人生,真实人生中每个人都要离开咖啡厅去上班。
1.人生是不公平的,习惯去接受它吧。
2.这个世界不会在乎你的自尊,这个世界期望你先做出成绩,再去强调自己的感受。
3.你不会一离开学校就有百万年薪,你不会马上就是拥有移动电话的副总裁,两者你都必须靠努力赚来。
4.如果你觉得你的老板很凶,等你当了老板就知道了,老板是没有工作任期保障的。
5.在速食店煎个汉堡并不是作贱自己,你的祖父母对煎汉堡有完全不同的定义。
6.如果你一事无成,不是你父母的错,所以不要只会对自己犯的错发牢骚,从错误中去学习。
7.在你出生前,你的父母并不像现在这般无趣,他们变成这样是因为忙着付你的开销,洗你的衣服,听你吹嘘自己有多了不起,所以在你拯救被父母这代人破坏的热带雨林前,先整理一下自己的房间吧。
8.在学校里可能有赢家和输家,在人生中却还言之过早,学校可能会不断给你机会找到正确的答案,真实人生中却完全不是这么回事。
9.人生不是学期制,人生没有寒假,没有哪个雇主有兴趣协助你寻找自我,请用自己的空暇做这件事吧。
10.电视上演的并不是真实的人生,真实人生中每个人都要离开咖啡厅去上班。
Sunday, October 09, 2005
7.開発実施
7.開発実施
「アクティビティー・リスト」
・開発実施作業の準備
・開発実施環境の設定
・モジュール作成と単体テスト
・テスト仕様作成
・統合テストa
・システム・テストの計画と準備
・統合テストb
<成果物>
(1)統合テストa(コンポーネント間統合テスト)済プログラム
(2)モジュール仕様書
(3)テスト計画書
・統合テストa計画
・統合テストb計画
・システム・テスト計画
(4)テスト仕様書
・単体テスト仕様
・統合テストa仕様
・統合テストb仕様
(5)システム・テスト環境
(6)カットオーバー基準
(7)統合テストb(サブシステム間統合テスト)済プログラム
<開発基準>
・コンポーネントとモジュールが定義され、コンポーネント間、モジュール間の
インターフェース仕様が完成していること
・共通モジュールが設計され、ソフトウェア部品の利用方針が確立されてこと
・モジュール構造について、実装の観点でのレビュー/インスペクションが
テクニカル・アドバイザーなどを交えて完了していること
・ウィンドウ仕様や帳票レイアウトなど、ユーザー・インターフェース仕様が
作成され、利用部門を交えて評価と検証がなされていること
・データベース仕様、ファイル仕様が完成し、利用部門やスペシャリストを
交えた検証がなされていること
・デッドロック回避のための、全データベースの統一したアクセス順序の制約
が定められ、データベース処理の設計についての妥当性が検証されていること
・内部設計の結果に基づいて外部仕様が更新されており、内部仕様との矛盾がないこと
また、更新された外部仕様についてユーザーとの合意がなされていること
・内部仕様及びプラットフォーム要件に基づいて、キャパシティー/パフォーマンス
の検証がなされ、実現のための必要十分なシステム資源が手当されていること
・開発実施以降のWBSが詳細化され、マスター・スケジュールに基づいて、適切な
作業スケジュールにブレークダウンされていること
・開発実施とテストの要員の手当ができており、組織図があること
・開発実施とテストの進め方のガイド、及びシステム稼動に至る作業内容が
明確化されており、レビューされていること
・開発用の機器やツールなど、必要十分な資源が割り当てられていること
・テストの全段階を網羅したCTP(テスト方針書)が完成していること
・開発実施以降に必要なテスト・ツールが設計/準備されていること
・進捗管理手順、変更管理手順、問題管理手順、及びライブラリー管理手順が
できていること
<完了基準>
・システム/サブシステム内の機能及びモジュール相互間/コンポーネント
相互間までのインターフェースが検証済であること
・テストのカバレッジが明確であること
・計画された全テスト・ケースが実施され、95%以上が正しく検証されていること
また、残りのケースの検証時期と手段が定められ記述されていること
・外部仕様書/内部仕様書に対する変更管理が正しく実施されていること
・発生した問題が記録され、問題管理が適切に実施されていること
・残存バグの個数が一定の基準以下であること
例)
重要度1 : 2件
重要度2 : 7件
重要度3以下 : 20件
・サブシステム間統合テスト(Itb)の環境及びテスト・データの準備が整っていること
(Itbを実施するケースのみ)
・キャパシティー/パフォーマンスの測定による検証が完了し、オーバーフローの恐れが
ないこと
・プロジェクトのトータル・コストが再見積りされ、予算内に収まること
※Itbが実施されない場合(サブシステム化が行われない場合)、さらに以下が追加される。
・全開発対象ソフトウェアが開発済であること
・システム・テストに必要な詳細計画、テスト環境、大半のテスト・ケース、
テスト・データ/DBが揃っていること
・リグレッション・テスト環境が整えられていること
・システム・テストの作業計画が作成され、システム環境や、テスト・チームと
関連部門(利用部門/購入者)の体制/役割負担/権限責任など協力体制について
利用部門(購入者)との合意が取れていること
・カットオーバー基準が必須項目に展開され、各項目の基準値が妥当な値に設定
されていること。また、利用部門(購入者)と合意されていること
※サブシステム間統合テストの完了基準は以下のとおり。
・全開発対象ソフトウェアが開発済であること
・サブシステム間のインターフェースが全量検証済であること。未検証のインターフェース
が残っている場合、システム・テストの早い時点で検証される計画であること
・計画された全テスト・ケースが実施され、95%以上が正しく検証されていること
・残存バグの個数が一定の基準以下であること
例)
重要度1 : 2件
重要度2 : 7件
重要度3以下 : 20件
・キャパシティー/パフォーマンスの測定による検証がこの局面に予定された内容に
ついて完了し、オーバーフローの恐れが無いこと
・システム・テストに必要な詳細計画、テスト環境、大半のテスト・ケース、
テスト・データ/DBが揃っていること
・リグレッション・テスト環境が整えられていること
・システム・テストの作業計画が作成され、システム環境や、テスト・チームと
関連部門(利用部門/購入者)の体制/役割負担/権限責任など協力体制について
利用部門(購入者)との合意が取れていること
・カットオーバー基準が必須項目に展開され、各項目の基準値が妥当な値に設定
されていること。また、利用部門(購入者)と合意されていること
大項目の例)
・品質の要件
・キャパシティー/パフォーマンスの要件
・運用の要件
・移行の要件
・保守拡張の要件
・契約履行の要件(SIプロジェクトのケース)
「アクティビティー・リスト」
・開発実施作業の準備
・開発実施環境の設定
・モジュール作成と単体テスト
・テスト仕様作成
・統合テストa
・システム・テストの計画と準備
・統合テストb
<成果物>
(1)統合テストa(コンポーネント間統合テスト)済プログラム
(2)モジュール仕様書
(3)テスト計画書
・統合テストa計画
・統合テストb計画
・システム・テスト計画
(4)テスト仕様書
・単体テスト仕様
・統合テストa仕様
・統合テストb仕様
(5)システム・テスト環境
(6)カットオーバー基準
(7)統合テストb(サブシステム間統合テスト)済プログラム
<開発基準>
・コンポーネントとモジュールが定義され、コンポーネント間、モジュール間の
インターフェース仕様が完成していること
・共通モジュールが設計され、ソフトウェア部品の利用方針が確立されてこと
・モジュール構造について、実装の観点でのレビュー/インスペクションが
テクニカル・アドバイザーなどを交えて完了していること
・ウィンドウ仕様や帳票レイアウトなど、ユーザー・インターフェース仕様が
作成され、利用部門を交えて評価と検証がなされていること
・データベース仕様、ファイル仕様が完成し、利用部門やスペシャリストを
交えた検証がなされていること
・デッドロック回避のための、全データベースの統一したアクセス順序の制約
が定められ、データベース処理の設計についての妥当性が検証されていること
・内部設計の結果に基づいて外部仕様が更新されており、内部仕様との矛盾がないこと
また、更新された外部仕様についてユーザーとの合意がなされていること
・内部仕様及びプラットフォーム要件に基づいて、キャパシティー/パフォーマンス
の検証がなされ、実現のための必要十分なシステム資源が手当されていること
・開発実施以降のWBSが詳細化され、マスター・スケジュールに基づいて、適切な
作業スケジュールにブレークダウンされていること
・開発実施とテストの要員の手当ができており、組織図があること
・開発実施とテストの進め方のガイド、及びシステム稼動に至る作業内容が
明確化されており、レビューされていること
・開発用の機器やツールなど、必要十分な資源が割り当てられていること
・テストの全段階を網羅したCTP(テスト方針書)が完成していること
・開発実施以降に必要なテスト・ツールが設計/準備されていること
・進捗管理手順、変更管理手順、問題管理手順、及びライブラリー管理手順が
できていること
<完了基準>
・システム/サブシステム内の機能及びモジュール相互間/コンポーネント
相互間までのインターフェースが検証済であること
・テストのカバレッジが明確であること
・計画された全テスト・ケースが実施され、95%以上が正しく検証されていること
また、残りのケースの検証時期と手段が定められ記述されていること
・外部仕様書/内部仕様書に対する変更管理が正しく実施されていること
・発生した問題が記録され、問題管理が適切に実施されていること
・残存バグの個数が一定の基準以下であること
例)
重要度1 : 2件
重要度2 : 7件
重要度3以下 : 20件
・サブシステム間統合テスト(Itb)の環境及びテスト・データの準備が整っていること
(Itbを実施するケースのみ)
・キャパシティー/パフォーマンスの測定による検証が完了し、オーバーフローの恐れが
ないこと
・プロジェクトのトータル・コストが再見積りされ、予算内に収まること
※Itbが実施されない場合(サブシステム化が行われない場合)、さらに以下が追加される。
・全開発対象ソフトウェアが開発済であること
・システム・テストに必要な詳細計画、テスト環境、大半のテスト・ケース、
テスト・データ/DBが揃っていること
・リグレッション・テスト環境が整えられていること
・システム・テストの作業計画が作成され、システム環境や、テスト・チームと
関連部門(利用部門/購入者)の体制/役割負担/権限責任など協力体制について
利用部門(購入者)との合意が取れていること
・カットオーバー基準が必須項目に展開され、各項目の基準値が妥当な値に設定
されていること。また、利用部門(購入者)と合意されていること
※サブシステム間統合テストの完了基準は以下のとおり。
・全開発対象ソフトウェアが開発済であること
・サブシステム間のインターフェースが全量検証済であること。未検証のインターフェース
が残っている場合、システム・テストの早い時点で検証される計画であること
・計画された全テスト・ケースが実施され、95%以上が正しく検証されていること
・残存バグの個数が一定の基準以下であること
例)
重要度1 : 2件
重要度2 : 7件
重要度3以下 : 20件
・キャパシティー/パフォーマンスの測定による検証がこの局面に予定された内容に
ついて完了し、オーバーフローの恐れが無いこと
・システム・テストに必要な詳細計画、テスト環境、大半のテスト・ケース、
テスト・データ/DBが揃っていること
・リグレッション・テスト環境が整えられていること
・システム・テストの作業計画が作成され、システム環境や、テスト・チームと
関連部門(利用部門/購入者)の体制/役割負担/権限責任など協力体制について
利用部門(購入者)との合意が取れていること
・カットオーバー基準が必須項目に展開され、各項目の基準値が妥当な値に設定
されていること。また、利用部門(購入者)と合意されていること
大項目の例)
・品質の要件
・キャパシティー/パフォーマンスの要件
・運用の要件
・移行の要件
・保守拡張の要件
・契約履行の要件(SIプロジェクトのケース)
6.内部設計
内部設計
「アクティビティー・リスト」
・サブシステム内部構造の設計
・内部仕様の基準作成
・共通処理機能の設計
・プログラム機能仕様の作成
・データベースの記述
・モジュールの定義
・システム性能/容量の検証
・テスト方針書の作成
・テスト環境の整備
・内部仕様書の編集
・開発実施の計画
「内部仕様書に含む項目の例」
1)プログラム機能仕様
・プログラム構造図
・プログラム機能仕様(コンポーネント・レベル)
・共通処理機能仕様
・モジュール構造記述
2)データベース記述
3)システム性能/容量分析書
添付)プラットフォームの仕様
<開始基準>
(1)外部仕様の品質
・サブシステムが識別され、サブシステム間のインターフェース仕様が完全に
記述されていること
・入出力、データベース、他システムとのインターフェース仕様が完全に
記述されていること
・機能が構造化記述されていること。
・機能仕様、データベース仕様、ユーザー・インターフェース仕様など、
外部仕様の各各の要素について、テクニカル・アドバイザーなどを交えた
インスペクションが実施され、ユーザーを含めたレビューが完了していること。
・デッドロック回避のための、全データベースの統一したアクセス順序の制約が
確定され、データベース処理の設計についての妥当性が検証されていること。
・OS,ミドルウェア、DBMS、ネットワーク、開発ツール、ソフトウェア部品、
開発言語など、使用するプラットフォームの構成と仕様が確定していること。
・移行サブシステムの外部仕様が定められ記述されていること。
・運用・保守の方針が定められ記述されていること。
・外部仕様書について、利用部門やマネジメントからの合意が文書上で
なされていること。
(2)内部設計開始のフィージビリティー
・内部設計の要員の手当が出来ており、組織図があること。
・内部設計作業の進め方のガイドが出来ており、レビューされていること。
・テスト全体のストラテジーが記述されていること。
・マスター・スケジュールに基づいて、内部設計以降のWBSが適切にブレークダウン
されていること。
・変更管理の手順ができていること。
・内部設計以降の進捗管理の方法が確立されていること。
・ウォークスルーやインスペクションなど、内部設計の品質管理の仕組みが
確立されていること。
<内部設計の完了基準>
(1)内部仕様の品質
・プログラム構造と扱うデータが確定していること。
・コンポーネント、モジュールが識別され定義されていること(インターフェース/
リンケージの記述、使用データ構造の記述を含む)
・コンポーネント・レベルの機能仕様が構造化記述されていること。
・成果物の品質がレビューされていること。
・外部設計時点での未決事項はすべて解決されていること。
・内部設計での未決・保留事項がすべてリストアップされ、かつ早期解消のアクション
が定められており、そのための内部設計の再作業が5%未満であること
(インクリメンタルや繰返し型の開発工程を取る場合は、次回の作業計画に
これらが組み込まれていること)
・内部仕様およびプラットフォーム要件に基づいて、キャパシティー/パフォーマンス
の検証がなされ、実現のための必要十分なシステム資源が手当されていると
同時に、資源のコストが予算内に納まること。
・移行システムの内部設計の進捗が予定の状態に達していること。
・内部設計の結果を踏まえて、外部仕様が更新されており、内部仕様との矛盾が
ないこと、また、更新された外部仕様につき利用部門やマネジメントと合意されていること。
(2)プロジェクト管理
・テストの全段階を網羅したCTPが完成していること。
・開発実施以降のWBSが詳細化されていること
・開発工数が再見積りされ、プロジェクト予算内に収まること。
(3)開発実施およびテストの準備
・要員の手当てが出来ており、組織図があること。
・開発用の機器やツールなど、必要十分な資源が割り当てられていること
・開発実施の進め方のガイド及びシステム稼動に至る作業内容が明確化されており
レビューされていること。
・マスター・スケジュールに基づいて、適切な作業スケジュールにブレークダウン
がなされていること
・進捗管理手順ができていること(カットオーバーまでを見越したもの)
・変更管理手順ができていること(カットオーバーまでを見越したもの)
・問題管理手順ができていること(カットオーバーまでを見越したもの)
・ライブラリー管理手順ができていること(カットオーバーまでを見越したもの)
「アクティビティー・リスト」
・サブシステム内部構造の設計
・内部仕様の基準作成
・共通処理機能の設計
・プログラム機能仕様の作成
・データベースの記述
・モジュールの定義
・システム性能/容量の検証
・テスト方針書の作成
・テスト環境の整備
・内部仕様書の編集
・開発実施の計画
「内部仕様書に含む項目の例」
1)プログラム機能仕様
・プログラム構造図
・プログラム機能仕様(コンポーネント・レベル)
・共通処理機能仕様
・モジュール構造記述
2)データベース記述
3)システム性能/容量分析書
添付)プラットフォームの仕様
<開始基準>
(1)外部仕様の品質
・サブシステムが識別され、サブシステム間のインターフェース仕様が完全に
記述されていること
・入出力、データベース、他システムとのインターフェース仕様が完全に
記述されていること
・機能が構造化記述されていること。
・機能仕様、データベース仕様、ユーザー・インターフェース仕様など、
外部仕様の各各の要素について、テクニカル・アドバイザーなどを交えた
インスペクションが実施され、ユーザーを含めたレビューが完了していること。
・デッドロック回避のための、全データベースの統一したアクセス順序の制約が
確定され、データベース処理の設計についての妥当性が検証されていること。
・OS,ミドルウェア、DBMS、ネットワーク、開発ツール、ソフトウェア部品、
開発言語など、使用するプラットフォームの構成と仕様が確定していること。
・移行サブシステムの外部仕様が定められ記述されていること。
・運用・保守の方針が定められ記述されていること。
・外部仕様書について、利用部門やマネジメントからの合意が文書上で
なされていること。
(2)内部設計開始のフィージビリティー
・内部設計の要員の手当が出来ており、組織図があること。
・内部設計作業の進め方のガイドが出来ており、レビューされていること。
・テスト全体のストラテジーが記述されていること。
・マスター・スケジュールに基づいて、内部設計以降のWBSが適切にブレークダウン
されていること。
・変更管理の手順ができていること。
・内部設計以降の進捗管理の方法が確立されていること。
・ウォークスルーやインスペクションなど、内部設計の品質管理の仕組みが
確立されていること。
<内部設計の完了基準>
(1)内部仕様の品質
・プログラム構造と扱うデータが確定していること。
・コンポーネント、モジュールが識別され定義されていること(インターフェース/
リンケージの記述、使用データ構造の記述を含む)
・コンポーネント・レベルの機能仕様が構造化記述されていること。
・成果物の品質がレビューされていること。
・外部設計時点での未決事項はすべて解決されていること。
・内部設計での未決・保留事項がすべてリストアップされ、かつ早期解消のアクション
が定められており、そのための内部設計の再作業が5%未満であること
(インクリメンタルや繰返し型の開発工程を取る場合は、次回の作業計画に
これらが組み込まれていること)
・内部仕様およびプラットフォーム要件に基づいて、キャパシティー/パフォーマンス
の検証がなされ、実現のための必要十分なシステム資源が手当されていると
同時に、資源のコストが予算内に納まること。
・移行システムの内部設計の進捗が予定の状態に達していること。
・内部設計の結果を踏まえて、外部仕様が更新されており、内部仕様との矛盾が
ないこと、また、更新された外部仕様につき利用部門やマネジメントと合意されていること。
(2)プロジェクト管理
・テストの全段階を網羅したCTPが完成していること。
・開発実施以降のWBSが詳細化されていること
・開発工数が再見積りされ、プロジェクト予算内に収まること。
(3)開発実施およびテストの準備
・要員の手当てが出来ており、組織図があること。
・開発用の機器やツールなど、必要十分な資源が割り当てられていること
・開発実施の進め方のガイド及びシステム稼動に至る作業内容が明確化されており
レビューされていること。
・マスター・スケジュールに基づいて、適切な作業スケジュールにブレークダウン
がなされていること
・進捗管理手順ができていること(カットオーバーまでを見越したもの)
・変更管理手順ができていること(カットオーバーまでを見越したもの)
・問題管理手順ができていること(カットオーバーまでを見越したもの)
・ライブラリー管理手順ができていること(カットオーバーまでを見越したもの)
5.外部設計
外部設計
「アクティビティー・リスト」
・サブシステムの定義
・外部仕様の基準作成
・システム機能仕様の作成
・新適用業務フローの作成
・ユーザー・インターフェースの設計
・データベースの設計
・システム処理機能の記述
・移行の設計
・運用・障害対策・セキュリティーの設計
・プラットフォーム構成の確認
・外部仕様書の編集
・内部設計以降の開発計画作成
「外部仕様書に含む項目の例」
1)新システム概要
・新システムの目的
・適用業務システムの構成と機能概要
・新システムの基本要件、前提条件/制約事項など
2)システム構成
・プラットフォームの構成(ハードウェア/ソフトウェア/ネットワーク)
・適用業務プログラム構成
3)システム機能仕様
・外部コード表
・外部入出力一覧
・DFD新物理モデル
・他システムやサブシステム間のインターフェース仕様
4)新適用業務フロー
5)ユーザー・インターフェース仕様
・業務イベント一覧表
・ウインドウ入出力一覧、ウインドウ・フォーマット(ハードコピー可)
・ウインドウ仕様(データの表示条件/タイミング、チェック仕様、
グラフや画像の仕様など)
・ウインドウ状態遷移図
・ウインドウ操作仕様
・入出力帳票一覧、帳票レイアウト(ハードコピー可)
6)データベース仕様
・データベース/ファイル一覧(名称、目的、編成方法、データ量など)
・データベース仕様(テーブル関連図、テーブル定義書、索引一覧)
・ファイル仕様(アクセス方式、ファイル編成、保管期間)
・データベース障害対策記述
・データ・ディクショナリー(更新済み)
7)トランザクション/バッチ処理記述
8)移行仕様(「移行仕様書」として別冊も可)
・システム移行の基本方針
・システム移行仕様(移行データ、移行方法、移行サブシステム仕様)
9)運用・障害対策仕様(「システム運用・障害対策仕様書」として別冊も可)
・システム運用の基本方針
・システム運用手順(クライアント運用/サーバー運用、センター運用)
・運用障害サブシステム仕様
・バックアップ/リカバリー手順
・セキュリティーに関する仕様
10)プラットフォーム構成と仕様
<開始基準>
(1)要件定義の品質
・システム化の目標が明確であり、スポンサー/利用部門と合意されていること。
・システム化に対する前提条件/制約条件が明確なこと。
・稼動環境と開発環境のプラットフォーム要件が確定していること
・新論理モデルがDFD4点セットで完成していること
・扱うデータ項目の全量が抽出され、データ・フロー記述、データストア記述
が作成されていて、全てのデータの流れに一貫性/整合性があること
・処理機能記述によって、データ項目の変換ロジックや導出データの処理ロジック
も含めデータの流れの整合性が確認できること
・新要件の取り込め箇所が明確であり、システム化ニーズとの合致していて、
個々の要件との対応付けが可能なこと。
・データ項目がネーミング・ルールに則って記述され、データ・ディクショナリー
が作成されていること
・データ・ストアが正規化されていること、また、データ・プロー記述、データストア
記述について、バッカスーナウア式表記などを用いて、その構造が明確に記述
されていること
・ER図が完成し、新論理DFD(データ・フロー、データ・ストア)との対応付けが
明確なこと
・開発対象範囲が定められ、データ・フローとデータ・ストアの各データ項目の
データ量の見積りが得られていること
・対象業務プロセスの実現手段が決定していること
・業務プロセスとの関連、GUI,操作性なども含めて、ユーザー・インターフェース
についての要件が確定していること
・他システムとのインターフェースについての要件が確定していること
・キャパシティー/パフォーマンス、信頼性、安全性、セキュリティーなどに
ついての前提要件が、実現性の検討も含めて確認され定義されていること
・要件定義書について、プロジェクト・オーナーや利用部門との合意が文書上で
なされていること
(2)外部設計開始のフィージビリティー
・PMPが作成され、外部設計以降のWBSが作られていること
・外部設計以降のマスター・スケジュールが作成済で、WBSと一致していること
・ウォークスルーやインスペクション、エンド・ユーザーやテクニカル・アドバイザー
を交えたレビューなど、外部設計の品質管理の仕組みが確定されていること
・外部設計以降の進捗管理のj方法が確立されていること
・外部設計以降の開発方法、開発環境と使用ツール、標準/手順/ガイド類に
ついて確立されていること、もしくは、標準/ガイド類については外部設計の
作業開始までに完成あせるプランがあること
・プロトタイピングを適用する場合や繰返し型の開発工程を取る場合、その目的
繰返しの回数、期間やコストに対する優先順位の考え方、完了基準、変更管理の
仕組みなど、管理方法が明確にされ、利用部門との合意がなされていること
<完了基準>
(1)外部仕様の品質
・サブシステムが識別され、サブシステム間のインターフェース仕様が完全に
記述されていること
・他システムとのインターフェース仕様が完成していること
・OS、ミドルウェア、DBMS、ネットワーク、開発ツール、ソフトウェア部品、
開発言語など、使用するプラットフォームの構成と仕様が確定していること
・サブシステムのコンポーネントが定義され、コンポーネント間のインターフェース
仕様が完成していること
・各サブシステムごとの機能が構造化記述されていること
・業務イベントの分析に基づいて、ウィンドウ仕様(ウィンドウ・フォーマット、
ウィンドウ状態遷移図、ウィンドウ操作仕様)や帳票レイアウトなど、
ユーザー・インターフェース仕様が作成され、利用部門を交えて評価と検証
がなされていること
・データベース仕様、ファイル仕様が完成し、利用部門やスペシャリストを
交えた検証がなされていること
・デッドロック回避のための、全データベースの統一したアクセス順序の制約
が確立され、データベース処理の設計についての妥当性が検証されていること
・移行の方針が定められ、移行仕様が作成されていること
・運用と保守、セキュリティーの方針が定められ、運用・障害対策仕様、
セキュリティーに関する仕様が作成されていること
・要件定義時点での未決事項は全て解決済みであること
・外部設計の未決・保留事項が全てリストアップされ、早期解消のアクションが
定められて、そのための再作業量が5%未満であること
・キャパシティー/パフォーマンスの見積りがなされ、予想される資源のコスト
が予算内に収まること
・外部仕様書について、、スペシャリストを交えて品質の検証がなされていること
・外部仕様書について、スポンサー側(利用部門とマネジメント)との合意が
文書上でなされていること
(2)プロジェクト遂行のフィージビリティー
・開発工数が見積もられ、予想されるプロジェクト・トータルの予算内に収まること
・マスター・スケジュールが確定し、サブシステムが明瞭な形での
アロー・ダイアグラム(PERT図)が記述されていること
・内部設計以降のWBSが詳細化されていること
・内部設計の早期でのテスト計画完成のプラン、及びテスト全体のストラテジー
が記述されていること
(3)内部設計開始の準備
・要員の手当てができており、体制図があること
・内部設計作業の進め方のガイドができており、レビューされていること
・マスター・スケジュールに基づいて、適切な作業スケジュールに
ブレークダウンがなされていること
・変更管理の手順が確立されていること
・品質管理、進捗管理の方法が記述され、準備ができていること
<システムテスト>
・新機能(正常/異常/復旧):New Function Testing
・回帰 :Regression Testing
・負荷 :Load/Stress Testing
・環境変化 :Enviroment Simulation
・パフォーマンス測定 :Performance Measurement Testing
「アクティビティー・リスト」
・サブシステムの定義
・外部仕様の基準作成
・システム機能仕様の作成
・新適用業務フローの作成
・ユーザー・インターフェースの設計
・データベースの設計
・システム処理機能の記述
・移行の設計
・運用・障害対策・セキュリティーの設計
・プラットフォーム構成の確認
・外部仕様書の編集
・内部設計以降の開発計画作成
「外部仕様書に含む項目の例」
1)新システム概要
・新システムの目的
・適用業務システムの構成と機能概要
・新システムの基本要件、前提条件/制約事項など
2)システム構成
・プラットフォームの構成(ハードウェア/ソフトウェア/ネットワーク)
・適用業務プログラム構成
3)システム機能仕様
・外部コード表
・外部入出力一覧
・DFD新物理モデル
・他システムやサブシステム間のインターフェース仕様
4)新適用業務フロー
5)ユーザー・インターフェース仕様
・業務イベント一覧表
・ウインドウ入出力一覧、ウインドウ・フォーマット(ハードコピー可)
・ウインドウ仕様(データの表示条件/タイミング、チェック仕様、
グラフや画像の仕様など)
・ウインドウ状態遷移図
・ウインドウ操作仕様
・入出力帳票一覧、帳票レイアウト(ハードコピー可)
6)データベース仕様
・データベース/ファイル一覧(名称、目的、編成方法、データ量など)
・データベース仕様(テーブル関連図、テーブル定義書、索引一覧)
・ファイル仕様(アクセス方式、ファイル編成、保管期間)
・データベース障害対策記述
・データ・ディクショナリー(更新済み)
7)トランザクション/バッチ処理記述
8)移行仕様(「移行仕様書」として別冊も可)
・システム移行の基本方針
・システム移行仕様(移行データ、移行方法、移行サブシステム仕様)
9)運用・障害対策仕様(「システム運用・障害対策仕様書」として別冊も可)
・システム運用の基本方針
・システム運用手順(クライアント運用/サーバー運用、センター運用)
・運用障害サブシステム仕様
・バックアップ/リカバリー手順
・セキュリティーに関する仕様
10)プラットフォーム構成と仕様
<開始基準>
(1)要件定義の品質
・システム化の目標が明確であり、スポンサー/利用部門と合意されていること。
・システム化に対する前提条件/制約条件が明確なこと。
・稼動環境と開発環境のプラットフォーム要件が確定していること
・新論理モデルがDFD4点セットで完成していること
・扱うデータ項目の全量が抽出され、データ・フロー記述、データストア記述
が作成されていて、全てのデータの流れに一貫性/整合性があること
・処理機能記述によって、データ項目の変換ロジックや導出データの処理ロジック
も含めデータの流れの整合性が確認できること
・新要件の取り込め箇所が明確であり、システム化ニーズとの合致していて、
個々の要件との対応付けが可能なこと。
・データ項目がネーミング・ルールに則って記述され、データ・ディクショナリー
が作成されていること
・データ・ストアが正規化されていること、また、データ・プロー記述、データストア
記述について、バッカスーナウア式表記などを用いて、その構造が明確に記述
されていること
・ER図が完成し、新論理DFD(データ・フロー、データ・ストア)との対応付けが
明確なこと
・開発対象範囲が定められ、データ・フローとデータ・ストアの各データ項目の
データ量の見積りが得られていること
・対象業務プロセスの実現手段が決定していること
・業務プロセスとの関連、GUI,操作性なども含めて、ユーザー・インターフェース
についての要件が確定していること
・他システムとのインターフェースについての要件が確定していること
・キャパシティー/パフォーマンス、信頼性、安全性、セキュリティーなどに
ついての前提要件が、実現性の検討も含めて確認され定義されていること
・要件定義書について、プロジェクト・オーナーや利用部門との合意が文書上で
なされていること
(2)外部設計開始のフィージビリティー
・PMPが作成され、外部設計以降のWBSが作られていること
・外部設計以降のマスター・スケジュールが作成済で、WBSと一致していること
・ウォークスルーやインスペクション、エンド・ユーザーやテクニカル・アドバイザー
を交えたレビューなど、外部設計の品質管理の仕組みが確定されていること
・外部設計以降の進捗管理のj方法が確立されていること
・外部設計以降の開発方法、開発環境と使用ツール、標準/手順/ガイド類に
ついて確立されていること、もしくは、標準/ガイド類については外部設計の
作業開始までに完成あせるプランがあること
・プロトタイピングを適用する場合や繰返し型の開発工程を取る場合、その目的
繰返しの回数、期間やコストに対する優先順位の考え方、完了基準、変更管理の
仕組みなど、管理方法が明確にされ、利用部門との合意がなされていること
<完了基準>
(1)外部仕様の品質
・サブシステムが識別され、サブシステム間のインターフェース仕様が完全に
記述されていること
・他システムとのインターフェース仕様が完成していること
・OS、ミドルウェア、DBMS、ネットワーク、開発ツール、ソフトウェア部品、
開発言語など、使用するプラットフォームの構成と仕様が確定していること
・サブシステムのコンポーネントが定義され、コンポーネント間のインターフェース
仕様が完成していること
・各サブシステムごとの機能が構造化記述されていること
・業務イベントの分析に基づいて、ウィンドウ仕様(ウィンドウ・フォーマット、
ウィンドウ状態遷移図、ウィンドウ操作仕様)や帳票レイアウトなど、
ユーザー・インターフェース仕様が作成され、利用部門を交えて評価と検証
がなされていること
・データベース仕様、ファイル仕様が完成し、利用部門やスペシャリストを
交えた検証がなされていること
・デッドロック回避のための、全データベースの統一したアクセス順序の制約
が確立され、データベース処理の設計についての妥当性が検証されていること
・移行の方針が定められ、移行仕様が作成されていること
・運用と保守、セキュリティーの方針が定められ、運用・障害対策仕様、
セキュリティーに関する仕様が作成されていること
・要件定義時点での未決事項は全て解決済みであること
・外部設計の未決・保留事項が全てリストアップされ、早期解消のアクションが
定められて、そのための再作業量が5%未満であること
・キャパシティー/パフォーマンスの見積りがなされ、予想される資源のコスト
が予算内に収まること
・外部仕様書について、、スペシャリストを交えて品質の検証がなされていること
・外部仕様書について、スポンサー側(利用部門とマネジメント)との合意が
文書上でなされていること
(2)プロジェクト遂行のフィージビリティー
・開発工数が見積もられ、予想されるプロジェクト・トータルの予算内に収まること
・マスター・スケジュールが確定し、サブシステムが明瞭な形での
アロー・ダイアグラム(PERT図)が記述されていること
・内部設計以降のWBSが詳細化されていること
・内部設計の早期でのテスト計画完成のプラン、及びテスト全体のストラテジー
が記述されていること
(3)内部設計開始の準備
・要員の手当てができており、体制図があること
・内部設計作業の進め方のガイドができており、レビューされていること
・マスター・スケジュールに基づいて、適切な作業スケジュールに
ブレークダウンがなされていること
・変更管理の手順が確立されていること
・品質管理、進捗管理の方法が記述され、準備ができていること
<システムテスト>
・新機能(正常/異常/復旧):New Function Testing
・回帰 :Regression Testing
・負荷 :Load/Stress Testing
・環境変化 :Enviroment Simulation
・パフォーマンス測定 :Performance Measurement Testing
4.要件定義
要件定義「アクティビティー・リスト」
・要件定義の計画と基準作成
・DFD現物理モデルの作成
・DFD現論理モデルの作成
・要件調査計画の作成
・要件の調査と分析
・システム化範囲の検討
・DFD新論理モデルの作成
・データの正規化
・ER図作成
・正規化結果のDFDへの反映
・フラットフォームの検討と確定
・システム要件の整理
・要件定義書の編集
・要件定義書の編集レビュー
・外部設計以降の開発計画作成
[要件定義書に含む項目の例]
*)要件定義書は数十ページから数百ページ、時にはバインダー数冊と、開発対象の
大きさによってその記述量が異なってくるが、含む項目については基本的に同じ。
いずれにしても”完了基準”を達成していることが重要。
1)システム化目標
2)新システムの業務要件
・適用業務の構成
・DFD新論理モデル(DFD4点セット)
・システム化の対象範囲、新規要件のリストなど
3)新システムのデータ要件
・ER図と正規化データ項目表(正規化結果)
・データ項目定義書(データ・ディクショナリー)
4)新システムの品質要件、及びその他の設計上の前提条件や制約事項
・他システムや外部との尹テーフェース要件、監査と機密保護の要件、キャパシティー
/パフォーマンス要件、バックアップと回復の要件、移行要件、システム拡張
の要件など、必要に応じて記述
・その他、再利用や部品化に対する方針などを含めて、品質特性(機能性、信頼性
使用性、効率性、保守性、移植性)に関して、前提となる要件、或いは
特記すべき事項があれば記述
5)プラットフォーム(ハードウェア/ソフトウェア/ネットワーク)要件
・稼働環境の基盤についての要件
・開発環境と手段についての要件
6)費用対効果
付録)
・業務用語集
・DFD現物理モデル/DFD現論理モデル
・保留事項/未決事項
・要件定義の計画と基準作成
・DFD現物理モデルの作成
・DFD現論理モデルの作成
・要件調査計画の作成
・要件の調査と分析
・システム化範囲の検討
・DFD新論理モデルの作成
・データの正規化
・ER図作成
・正規化結果のDFDへの反映
・フラットフォームの検討と確定
・システム要件の整理
・要件定義書の編集
・要件定義書の編集レビュー
・外部設計以降の開発計画作成
[要件定義書に含む項目の例]
*)要件定義書は数十ページから数百ページ、時にはバインダー数冊と、開発対象の
大きさによってその記述量が異なってくるが、含む項目については基本的に同じ。
いずれにしても”完了基準”を達成していることが重要。
1)システム化目標
2)新システムの業務要件
・適用業務の構成
・DFD新論理モデル(DFD4点セット)
・システム化の対象範囲、新規要件のリストなど
3)新システムのデータ要件
・ER図と正規化データ項目表(正規化結果)
・データ項目定義書(データ・ディクショナリー)
4)新システムの品質要件、及びその他の設計上の前提条件や制約事項
・他システムや外部との尹テーフェース要件、監査と機密保護の要件、キャパシティー
/パフォーマンス要件、バックアップと回復の要件、移行要件、システム拡張
の要件など、必要に応じて記述
・その他、再利用や部品化に対する方針などを含めて、品質特性(機能性、信頼性
使用性、効率性、保守性、移植性)に関して、前提となる要件、或いは
特記すべき事項があれば記述
5)プラットフォーム(ハードウェア/ソフトウェア/ネットワーク)要件
・稼働環境の基盤についての要件
・開発環境と手段についての要件
6)費用対効果
付録)
・業務用語集
・DFD現物理モデル/DFD現論理モデル
・保留事項/未決事項
Thursday, October 06, 2005
Re:【推薦】中国オフショア開発実践マニュアル(1)
Re:【推薦】中国オフショア開発実践マニュアル(1)
丁 偉儒 2005-03-09 00:15:13
先ず、我々がやらなければならないことは自分を知ることです。
自分を分析、まとめることです。
自分の仕組みを詳しく勉強することです。
東忠は市場で高く評価されています。
自分の力遥か以上に評価されています。
何故、それはオフショア開発の本質を良く知っている部分が多いからです。
そして、其の本質に基づいて、仕組みを構築しているからです。
IT教育、開発手順、品質保証仕組み、テスト専門組織...
しかし、社員は特にオフショア開発基地の社員まだ若くて、弱いです。
品質もまだ十分ではないです。
それでも、市場で高く評価されているのは、よく言えば我々がオフショアの本質を良く理解して、正しい方向へ向かって前進していることです。
悪くいえば、我々はオフショア開発の実体を良く理解して、お客さんに気付かせないように、良く感じてもらえるように化粧していることです。
東京の納入前のバグつぶしも、杭州の開発ラインの構築も、営業のプレゼンも..
我々はもっと自分を研究しましょう。
東忠はオフショアトップクラスの専門会社を忘れないで下さい。
IBM、NEC、東芝、日立、NRIなど世界一流の企業が東忠を評価していることを忘れないで下さい。
それは東忠のオフショア開発のレベルを反映しているのです。
それも、東忠全体のレベルです。杭州だけでも、東京だけでもないです。
それを分析して、まとめれば掲題のマニュアルより100倍も価値あるマニュアルになるはずです。
作者が主催のセミナーで私が参加した感触では、よく日本人の目で中国を見ているとのことです。
でも、東忠にはそれ以上(経験も、年齢も、能力も)の日本人がたくさんいます。
東忠の日本人の感触を確かめないことはないです。
東忠の日本人に確信がないものは作者からも確信が得られにくいです。
つまり、表現象のまとめが多いとのことです。
オフショアの本質はなんでしょうか。東忠の内部に答えがあります。
皆で其の答えを出したら、世界一のオフショア開発マニュアルです。
ちなみに、日本山梨大学ソフトウエア品質工学博士、日本の一流企業で十数年ソフトウエア品質及びオフショア開発経験し、現在折江大学ソフトウエア品質管理工学熊教授(中国トップクラス。彼の博士指導先生は日本ソフトウエア品質世界の名人)は東忠のオフショアビジネスモデルは非常に有効と判断し、そのモデルを理論武装して、中国のオフショア開発業界の東忠モデルにする予定です。すでに、研究プロジェクトを発足しました。
そして、今年の11月に、日本科学技術聯盟(略JUSE、世界の4大品質組織の一つ)下のSPCT(ソフトウエアプロセス委員会、会長日本東京大学飯塚先生)が杭州にて日中ソフトウエアオフショア開発ワークショップを開催予定で、其の中主なの内容の一つは東忠モデルの研究です。
飯塚先生(日本ソフトウエア品質世界で超有名)から直接指名を受けて、先月日本のソフトウエア品質専門会社の倉田社長が事前準備と現場視察で杭州東忠を尋ねました。
そして、日本のSPCTを代表して、東忠に正式な依頼をしました。
SPCTの会員は日本の企業から構成されています。NEC、日立、東芝、住商情報システム等一流企業が多いです。
そのSPCTが東忠を研究したいというのです。
最後に、戻りますが、我々がやることは先ず自分を正しく知ることです。
オフショア開発の真髄はなんでしょう。
日本と中国の意識ギャップを正しく理解し、其のギャップを埋めるプロセ
スを作って、埋めていくこと。
必要でれば、このことの意味を徹底議論、徹底ディスカッションしましょう。
以上
丁 偉儒 2005-03-09 00:15:13
先ず、我々がやらなければならないことは自分を知ることです。
自分を分析、まとめることです。
自分の仕組みを詳しく勉強することです。
東忠は市場で高く評価されています。
自分の力遥か以上に評価されています。
何故、それはオフショア開発の本質を良く知っている部分が多いからです。
そして、其の本質に基づいて、仕組みを構築しているからです。
IT教育、開発手順、品質保証仕組み、テスト専門組織...
しかし、社員は特にオフショア開発基地の社員まだ若くて、弱いです。
品質もまだ十分ではないです。
それでも、市場で高く評価されているのは、よく言えば我々がオフショアの本質を良く理解して、正しい方向へ向かって前進していることです。
悪くいえば、我々はオフショア開発の実体を良く理解して、お客さんに気付かせないように、良く感じてもらえるように化粧していることです。
東京の納入前のバグつぶしも、杭州の開発ラインの構築も、営業のプレゼンも..
我々はもっと自分を研究しましょう。
東忠はオフショアトップクラスの専門会社を忘れないで下さい。
IBM、NEC、東芝、日立、NRIなど世界一流の企業が東忠を評価していることを忘れないで下さい。
それは東忠のオフショア開発のレベルを反映しているのです。
それも、東忠全体のレベルです。杭州だけでも、東京だけでもないです。
それを分析して、まとめれば掲題のマニュアルより100倍も価値あるマニュアルになるはずです。
作者が主催のセミナーで私が参加した感触では、よく日本人の目で中国を見ているとのことです。
でも、東忠にはそれ以上(経験も、年齢も、能力も)の日本人がたくさんいます。
東忠の日本人の感触を確かめないことはないです。
東忠の日本人に確信がないものは作者からも確信が得られにくいです。
つまり、表現象のまとめが多いとのことです。
オフショアの本質はなんでしょうか。東忠の内部に答えがあります。
皆で其の答えを出したら、世界一のオフショア開発マニュアルです。
ちなみに、日本山梨大学ソフトウエア品質工学博士、日本の一流企業で十数年ソフトウエア品質及びオフショア開発経験し、現在折江大学ソフトウエア品質管理工学熊教授(中国トップクラス。彼の博士指導先生は日本ソフトウエア品質世界の名人)は東忠のオフショアビジネスモデルは非常に有効と判断し、そのモデルを理論武装して、中国のオフショア開発業界の東忠モデルにする予定です。すでに、研究プロジェクトを発足しました。
そして、今年の11月に、日本科学技術聯盟(略JUSE、世界の4大品質組織の一つ)下のSPCT(ソフトウエアプロセス委員会、会長日本東京大学飯塚先生)が杭州にて日中ソフトウエアオフショア開発ワークショップを開催予定で、其の中主なの内容の一つは東忠モデルの研究です。
飯塚先生(日本ソフトウエア品質世界で超有名)から直接指名を受けて、先月日本のソフトウエア品質専門会社の倉田社長が事前準備と現場視察で杭州東忠を尋ねました。
そして、日本のSPCTを代表して、東忠に正式な依頼をしました。
SPCTの会員は日本の企業から構成されています。NEC、日立、東芝、住商情報システム等一流企業が多いです。
そのSPCTが東忠を研究したいというのです。
最後に、戻りますが、我々がやることは先ず自分を正しく知ることです。
オフショア開発の真髄はなんでしょう。
日本と中国の意識ギャップを正しく理解し、其のギャップを埋めるプロセ
スを作って、埋めていくこと。
必要でれば、このことの意味を徹底議論、徹底ディスカッションしましょう。
以上
Monday, October 03, 2005
关于IBM, ISSC和Belle Wong
『职场天地』 [企业管理]关于IBM, ISSC和Belle Wong,我不得不说的话。
作者:stateart 提交日期:2005-7-3 13:57:00
对于在IBM ISSC发生的事,大家可能并不了解,简单介绍如下:
ISSC多数员工在外高桥办公,少数管理层则在金贸。近日,管理层以客户要求为名,将公司上下班的班车发车时间分别提前15分钟和推迟30分钟。特别是下班班车6:15PM发车,给许多员工带来不便。于是,有某些员工在网上散发对ISSC管理层,特别是对管理者Belle Wong个人的不满。
我无意评判公司这一举措以及某些员工反应的对错。但是,我认为,让我一个局外人也无法容忍的,是Belle Wong致WK(ISSC HR manager)的邮件。此件附于其后,供大家参考。
在过去的日子里,我听说过种种对员工不尊重的例子。比如,深圳的一间工厂,以狼狗守门,防止打工妹出去。打工妹的同乡,男友若翻墙而入求一见,则放狗追而咬之。可是,今天,我更感觉震惊!对员工的粗暴对待,竟然会发生在IBM, AN INDUSTRY LEADER!请务必看看Ms.Wong的邮件,其间的粗俗与傲慢,让人无法置信竟是出自IBM的一个高层!
同时附上的是我致ISSC员工的一封个人信件,并说明如下:
1。我会同时将此信件内容,在力所能及的范围内,发送至IBM及IBM CHINA高级管理层;
2。如果ISSC的雇员及其它TX认同我表达的观点,欢迎将此内容转送,转贴。我本人对国内论坛情况不十分了解。如大家能提供帮助,使此事能为更多的人了解,关注,我认为是一件好事。
3。如有TX认为我反应过激或不妥,也欢迎指出。但是,不夸张地说,Belle Wong的邮件内容是一个挑战,不仅仅是对IBM价值观的挑战,也是对人权价值的挑战。同时,也是对民主文明的进步社会的一个挑战!
作者:stateart 回复日期:2005-7-3 13:57:54
致ISSC员工的一封信
Dear ISSC guys,
I am not with either IBM China or ISSC. However, I accidentally got a chance to see Belle Wong's message to ISSC employees, and of course, got the chance to learn how terrible situations you guys are facing. What a shame!!! I mean, how could Ms. Wong, an IBM leader, use so insolent language in a message to ISSC employees! I believe it's a strong offence to IBM's values. How could she talks like a king or queen, without showing respects to her IBM fellows? It's a discrimination against human rights.
I have been with several multi-national companies in the past ten years, and to be honest, it's a shock for me to see Ms. Wong's message - it destroys not only her image, but also IBM's. How could she treat you guys, the most valuable company assets, like ragtag, or slaves?
Regardless of the arguments on shuttle bus schedule (On this case, I would say it's very common for companies located in WGQ open from 9am to 5:30 pm - it's a local standard, and ISSC should follow it to maintain company's competitive position), I assume Ms. Wong's notes is enough - it's the time for you to stand up and raise your voice. I am appealing you guys to forward her message to higher IBM management team, to IBM China CEO, to IBM global executive team. Speak it out, and take actions, it's time to protect your human rights, and IBM values!
Best Regards.
An IBM customer
作者:stateart 回复日期:2005-7-3 13:59:41
Belle Wong给WK的邮件,供参考
WK,
Thanks, very amusing, they obviously are a bunch of friends that have gathered see the time stamp and use company resources at around mid day and put the similar comments together,
Have you sent out my message about game playing and non work related internet use during physical presence in IBM's workplace? and use of IBM resources means instant dismisal? Please send the massage out now. The use of sending message like this using company time and resource is not ACCEPTABLE to me. If they wish to play any further they will all be sacked for the misuse of company resources. They maybe at lunch time , but they can get out and dream about the greener pastures and the gym and swimming pools in the open WGQ, but not using the company resources to get onto the website and criticise IBM, ISSC, I will terminate their employment instantly. I dont want anyone in our company whose heart is already somewhere else and whose mouth is already so bias. I will be in WGQ every Wednesday and will walk around the 2 buildings and if I catch anyone accessing the internet doing rubbish like this or playing games or watching movies as I mentioned to you last time, then the staff will be dismissed instantly and they can not say that I have not warned them, as I have spoken with you 2 weeks ago and asked you to send the message out then.
I will have my ways to deal with these spoil brats .
I will sack in 10s and hundreds if I have to if they dare to bad mouth the company, they have a choice and they are welcome to leave NOW.
I have spoken with some ISSC AMS staff about the Bus schedule time table change, and WK guess what , they said it is about time that ISSC is changing its image to more professional and more customer oriented and true services company now, moving to staring work 9AM and finishing work at 6PM which is something they have not been fulfilled in the past and feeling very very ashame of. Now they will be like other prfessionals.
Lets not be blind sided by some ignorant minority and think that we have a problem when we dont.
Belle
Belle Wong
ISSC AMS GR Delivery Executive
Phone 86 21 6100 8511
SH Mobile 1365 184 0390
Personal Assistance Nancy Fang
Phone 86 21 6100 8298
作者:stateart 提交日期:2005-7-3 13:57:00
对于在IBM ISSC发生的事,大家可能并不了解,简单介绍如下:
ISSC多数员工在外高桥办公,少数管理层则在金贸。近日,管理层以客户要求为名,将公司上下班的班车发车时间分别提前15分钟和推迟30分钟。特别是下班班车6:15PM发车,给许多员工带来不便。于是,有某些员工在网上散发对ISSC管理层,特别是对管理者Belle Wong个人的不满。
我无意评判公司这一举措以及某些员工反应的对错。但是,我认为,让我一个局外人也无法容忍的,是Belle Wong致WK(ISSC HR manager)的邮件。此件附于其后,供大家参考。
在过去的日子里,我听说过种种对员工不尊重的例子。比如,深圳的一间工厂,以狼狗守门,防止打工妹出去。打工妹的同乡,男友若翻墙而入求一见,则放狗追而咬之。可是,今天,我更感觉震惊!对员工的粗暴对待,竟然会发生在IBM, AN INDUSTRY LEADER!请务必看看Ms.Wong的邮件,其间的粗俗与傲慢,让人无法置信竟是出自IBM的一个高层!
同时附上的是我致ISSC员工的一封个人信件,并说明如下:
1。我会同时将此信件内容,在力所能及的范围内,发送至IBM及IBM CHINA高级管理层;
2。如果ISSC的雇员及其它TX认同我表达的观点,欢迎将此内容转送,转贴。我本人对国内论坛情况不十分了解。如大家能提供帮助,使此事能为更多的人了解,关注,我认为是一件好事。
3。如有TX认为我反应过激或不妥,也欢迎指出。但是,不夸张地说,Belle Wong的邮件内容是一个挑战,不仅仅是对IBM价值观的挑战,也是对人权价值的挑战。同时,也是对民主文明的进步社会的一个挑战!
作者:stateart 回复日期:2005-7-3 13:57:54
致ISSC员工的一封信
Dear ISSC guys,
I am not with either IBM China or ISSC. However, I accidentally got a chance to see Belle Wong's message to ISSC employees, and of course, got the chance to learn how terrible situations you guys are facing. What a shame!!! I mean, how could Ms. Wong, an IBM leader, use so insolent language in a message to ISSC employees! I believe it's a strong offence to IBM's values. How could she talks like a king or queen, without showing respects to her IBM fellows? It's a discrimination against human rights.
I have been with several multi-national companies in the past ten years, and to be honest, it's a shock for me to see Ms. Wong's message - it destroys not only her image, but also IBM's. How could she treat you guys, the most valuable company assets, like ragtag, or slaves?
Regardless of the arguments on shuttle bus schedule (On this case, I would say it's very common for companies located in WGQ open from 9am to 5:30 pm - it's a local standard, and ISSC should follow it to maintain company's competitive position), I assume Ms. Wong's notes is enough - it's the time for you to stand up and raise your voice. I am appealing you guys to forward her message to higher IBM management team, to IBM China CEO, to IBM global executive team. Speak it out, and take actions, it's time to protect your human rights, and IBM values!
Best Regards.
An IBM customer
作者:stateart 回复日期:2005-7-3 13:59:41
Belle Wong给WK的邮件,供参考
WK,
Thanks, very amusing, they obviously are a bunch of friends that have gathered see the time stamp and use company resources at around mid day and put the similar comments together,
Have you sent out my message about game playing and non work related internet use during physical presence in IBM's workplace? and use of IBM resources means instant dismisal? Please send the massage out now. The use of sending message like this using company time and resource is not ACCEPTABLE to me. If they wish to play any further they will all be sacked for the misuse of company resources. They maybe at lunch time , but they can get out and dream about the greener pastures and the gym and swimming pools in the open WGQ, but not using the company resources to get onto the website and criticise IBM, ISSC, I will terminate their employment instantly. I dont want anyone in our company whose heart is already somewhere else and whose mouth is already so bias. I will be in WGQ every Wednesday and will walk around the 2 buildings and if I catch anyone accessing the internet doing rubbish like this or playing games or watching movies as I mentioned to you last time, then the staff will be dismissed instantly and they can not say that I have not warned them, as I have spoken with you 2 weeks ago and asked you to send the message out then.
I will have my ways to deal with these spoil brats .
I will sack in 10s and hundreds if I have to if they dare to bad mouth the company, they have a choice and they are welcome to leave NOW.
I have spoken with some ISSC AMS staff about the Bus schedule time table change, and WK guess what , they said it is about time that ISSC is changing its image to more professional and more customer oriented and true services company now, moving to staring work 9AM and finishing work at 6PM which is something they have not been fulfilled in the past and feeling very very ashame of. Now they will be like other prfessionals.
Lets not be blind sided by some ignorant minority and think that we have a problem when we dont.
Belle
Belle Wong
ISSC AMS GR Delivery Executive
Phone 86 21 6100 8511
SH Mobile 1365 184 0390
Personal Assistance Nancy Fang
Phone 86 21 6100 8298
Thursday, September 29, 2005
フリーエンジニアになると、どんな生活が待っているのか
首都圏コンピュータ技術者協同組合 SE,プログラマの独立を支援
http://mcea.jp/
野口和裕2005/9/2
フリーエンジニアになると、どんな生活が待っているのか。そもそもフリーエンジニアで食えるだろうか。@IT自分戦略研究所で以前「実録:私がフリーエンジニアになるまで」を執筆した筆者が、フリーエンジニアになった以後を振り返り、その疑問に答えよう。
フリーエンジニアになって3年以上たちました。その間にさまざまな出来事がありました。今回は、フリーエンジニアになった後、私なりに気がついた点を述べさせていただきます。フリーを目指すエンジニアだけでなく、将来のことを考えているエンジニアのお役に立てれば幸いです。なお、フリーエンジニアになるまでの経緯については、「実録:私がフリーエンジニアになるまで」をご覧いただければと思います。
■フリーになって
フリーになる前は、フリーといえば緊張の毎日でその日その日をしのいでいく……、というイメージでした。フリーになった当初こそ、少しバタバタしていたのですが、その後は常に安定しています。
現在は営業・顧客折衝・上流設計担当のパートナーと、製造を担当するパートナーとでチームを組んでいます。私の仕事はそのチームで外部設計・内部設計といった上流から製造への橋渡しを担当するSEとしての業務と、主にSE向けの人材育成の仕事です。
会社員時代の管理職としての仕事や、そのほかの雑用から解放され、自分の得意分野に専念でき本当に楽しい毎日です。フリーになって良かった、そう感じています。
■フリーで大切なこと
いまが順調である理由を考えてみると、信頼できるパートナーがいるということが大きいと思います。
フリーでは営業していては仕事ができない、仕事していたら営業ができないというジレンマがあります。そういった中、それぞれの得意分野、専門性を生かしてチームを組むと、良い相乗効果が生まれます。
私はパートナーのおかげで、私はほとんど営業活動しなくてもよく、また製造においても、とても優秀な信頼できるパートナーがいるので、自分の得意分野に専念することができます。フリーで大切な能力は(フリーに限らないかもしれませんが)、仲間と信頼関係を築けることではないかと思います。信頼関係を築くという能力は、結局人間性の問題だと思います。スキルではないのでしょうね。抜群のコミュニケーション能力を持っていたとしても、不誠実であれば信頼を築くことは難しいですから。
ビジネスといっても、最終的には人と人のかかわり、関係だと思います。会社員のような後ろ盾のない、フリーであれば、なおさらです。
■プロであるとは
ここで少し話が変わって、皆さんにとって「プロであるとは」、どういうことだと思いますか。私は昔、お金を稼げることだと思っていたのですが、少し考えが変わりました。周囲の人とWin-Winの関係を目指して、それを実現する努力を惜しまないこと。いまはそう思います。
顧客に満足を与えても、自分が納得していなければ、プロと呼べないと思います。顧客以外にも、例えば一緒に仕事をしている外注さんがいた場合、その外注さんが不満ではいけません。自分も満足、顧客も満足、外注さんも満足という関係を作れることがプロの証だと私は思います。
高度に専門的なスキルを持った人でも、自分がよければいいという人がいると思いますし、わが身を犠牲にしてまで顧客に尽くしている人をみたら、プロというより奴隷かな、と思います。意外とこういう人多くありませんか?
Win-Winの関係を目指すのは簡単ではないと思います。まずは、自分のWinをはっきり認識し、主張する勇気が必要です。さらに顧客のWinを顧客の立場(自分の立場でなくて)で考えることも必要です。最後にその両方をWin-Winに持っていく。難しいかもしれないですが、最後まであきらめたくないことです。それができてこそ、プロフェッショナルだと思うのです。
私はたいした能力も、胸を張る資格もないのですが、私たちがパートナーと共に常にWin-Winを目指していたから、ここまで順調だったのではないかと思います。
結局Win-Winでなければ、継続して良い仕事はこなくなると感じています。
皆さんにとっての「プロであるとは」とは何でしょうか。
■キャリアの開発
資格というのは、自分を1つの商品とみたてて、その市場価値を上げるために取るわけですが、自分という商品をどうするかを考える前に、まず顧客とは誰か、そして自分がその顧客に与える価値とは何か、という観点で考えることが大切だと思います。
商品を開発するときは、まず顧客像をはっきりさせますよね。マンションを作るときは、高齢者向けか、ファミリー向けか、はたまたDINKSか、それによって間取りやデザインも変わってきます。自分自身のキャリアも同じではないでしょうか。
私の思う顧客像は……
金額よりも品質を優先するお客さま(多少高くても良いものを望まれる)
お互いの利益を尊重していただけるお客さま(なかなかステキなお客さまですよね)
こういう顧客の立場から見た、契約したいSEの価値とはどういうものであるか、という視点で考えます。ITスキルはある程度以上あることはもちろんのことですが、それにプラスして業務スキル、さらにはヒューマンスキル(+人間性)が必要だと思います。
「このSEは、ここまで俺たちのことを考えているのか」と思われるぐらい、顧客の立場になるSE」「運用の最後まで、収益がきちんとでるところまでフォローしていく」。そんなSE。
そうであれば、納得していただけるのではないかと思います。
「多少高くても良いものを」と望まれるお客さまの期待、価値を裏切らないように、そういう視点で足りないところ(だらけですが)を磨いていきたいと思っています。のです。
■収入について
さて、皆さんが気になる収入の話です。
会社員時代よりは上がりました。しかし、それ以上に大切と思われるのは、収入の「入り口」を分散できる、ということかもしれません。
会社員の収入は、基本的に1つの会社からですが、フリーの場合は、1つに限らずいろいろと広げていくことが可能です。IT関連にかかわらず、自分のやりたいことを見つけて、時間のあるとき、少しずつ種まきし収入に結びつける、なんてことができます。
例えば会社員の場合、カレー屋を開業したい場合、副業が認められていない場合、会社を辞めるしかないですが、フリーの場合は、カレー屋を開きつつSEをすることは不可能ではありません。ランチタイムと夜はカレー屋の店頭に立ち、空き時間にプログラムの設計です。夜中は仕込みかデバッグか……。
株式投資でリスクを減らす1つの方法として、分散して投資する方法がありますが、収入を分散することは社会生活のリスクを減らすことに効果的です。
私もいま、興味あることを見つけて勉強会や研修などに参加して、将来の商売のネタにしていこうと計画中です。どこまでビジネスになるのか未知数ですが、リスクヘッジというより、好きなことをしている時間はとても楽しいです。好きこそものの上手なれで、いつかこちらが本業になるかもしれません。カレー屋ではありませんよ、ちなみに。
また、フリーになると確定申告は自分でしなければなりません(税理士さんに代行してもらうにせよ)。自分の収入、経費、いくら税金を払っているかが把握できます。頑張れば収入は増えるし、努力すれば経費を減らせます。税金だけはどうにもなりませんが、それでも、工夫の余地は会社員よりはあります、今後自分の資産運用を自分で管理する時代になりそうですが、これはとてもいい勉強になります。
■フリーの形態
最近、私は会社(有限会社)を設立しました。フリーがある程度軌道に乗ったら節税、そのほかいろんな点でメリットが多い会社設立を検討することをお勧めします。
ポイントは、
ある程度の収入が継続して見込める
もう会社員にはもどらないと決意した
だと思います。ある程度収入があっても、その波が激しければ、かえって損をしてしまうかもしれません。また、個人事業主であれば、入ってきたお金を自由に使えますが、法人だと、その自由はある程度制限されます。何といっても会社のお金ですから。
しかし、個人事業主は退職金や年金(国民年金)の点で不利なことは否めません。将来のハッピーリタイヤ(私は目指せ生涯現役で、必要ないと思っていますが)に向けて利益の先送りがある程度できる法人化は検討した方が良いと思います。
また、法人化すると、いままで考えていなかったような経営者の視点で物事を見るようになります。書籍を読んだりセミナーに参加しただけでは、この視点はなかなか実感できませんでした。
会社の設立登記は、規制緩和のおかげで比較的簡単にできます。私も、司法書士に頼まず自分でやってみました。法務局や公証人役場など思いがけずていねいに教えてもらえました。やってみると、自分の会社を自分で作る、「俺は社長だ!」。そんな実感がわきます。自分の会社名を考えたりするのも楽しいですし、会社印ができたときもうれしくて、そこいらじゅうにペタペタと押しました……。
■フリーになってのメリット/デメリット
ここで、私がフリーになって感じたメリット、デメリットをまとめてみます。
メリット
(1)独立することで、姿勢が消極的(与えられた仕事)な姿勢から、積極的な姿勢に変わり、このことが人生についても深く考えるきっかけになった。
(2)自分に対する評価をすぐ知ることができる(厳しい評価でもすぐ分かることはいいはず)。
(3)時間配分が自由にできるので、家族との時間が増えた。ひょっとして家族は迷惑かも。ただし、どこかに常駐して仕事をする場合はこの限りではありません。
(4)雇用関係でなく、信頼関係で結ばれた本当の仲間ができた。
(5)収入の「入り口」の分散化(多角化)が会社員よりは容易。
(6)経営者の視点が経験できる。
デメリット
(1)1人で仕事していると孤独を感じる。これは結構厳しいです。普段から飲み友だち、興味のあるコミュニティ仲間などを作っておきましょう。
(2)私は幸いにも経験ありませんが、契約をきちんとしておかないと、取引先と支払いがないといった法的なトラブルがあった場合は大変のようです。
(3)病気や怪我などで働けなくなったときの保障(これらをサポートする仕組みもあるようです)。
■自分戦略
いま思うと会社員時代は、今後どういうスキルを持っていたら安泰か、飯が食えるのかでキャリアや自分戦略を考えていました。
フリーになってからは、どうしたら自分の価値観(大切にしているもの)を仕事を通じて実現できるだろうか、という観点で考えるようになりました。
なぜ、そのような心境の変化があったのかを考えると、フリーになってからは、自分の行動は自由に決めることができます。その自由が、人生について深く考えさせてくれるのだと思います。
結局、フリーになって一番良かったのは、自分の価値観を発見できたことです。
ここでエイブラハム・マズローの言葉を引用させてください。
「どう行動するべきかをいつも社会が教えてくれる世界、すなわち、社会が次のステップを指図して、エスカレーターに乗せてくれる楽な世界では、自分の弱みや失敗に直面することがないだけでなく、自分の強みを知ることもない。」(『フリーエージェント社会の到来』ダニエル・ピンク著、ダイヤモンド社刊)。
いま、この言葉を実感しています!
http://mcea.jp/
野口和裕2005/9/2
フリーエンジニアになると、どんな生活が待っているのか。そもそもフリーエンジニアで食えるだろうか。@IT自分戦略研究所で以前「実録:私がフリーエンジニアになるまで」を執筆した筆者が、フリーエンジニアになった以後を振り返り、その疑問に答えよう。
フリーエンジニアになって3年以上たちました。その間にさまざまな出来事がありました。今回は、フリーエンジニアになった後、私なりに気がついた点を述べさせていただきます。フリーを目指すエンジニアだけでなく、将来のことを考えているエンジニアのお役に立てれば幸いです。なお、フリーエンジニアになるまでの経緯については、「実録:私がフリーエンジニアになるまで」をご覧いただければと思います。
■フリーになって
フリーになる前は、フリーといえば緊張の毎日でその日その日をしのいでいく……、というイメージでした。フリーになった当初こそ、少しバタバタしていたのですが、その後は常に安定しています。
現在は営業・顧客折衝・上流設計担当のパートナーと、製造を担当するパートナーとでチームを組んでいます。私の仕事はそのチームで外部設計・内部設計といった上流から製造への橋渡しを担当するSEとしての業務と、主にSE向けの人材育成の仕事です。
会社員時代の管理職としての仕事や、そのほかの雑用から解放され、自分の得意分野に専念でき本当に楽しい毎日です。フリーになって良かった、そう感じています。
■フリーで大切なこと
いまが順調である理由を考えてみると、信頼できるパートナーがいるということが大きいと思います。
フリーでは営業していては仕事ができない、仕事していたら営業ができないというジレンマがあります。そういった中、それぞれの得意分野、専門性を生かしてチームを組むと、良い相乗効果が生まれます。
私はパートナーのおかげで、私はほとんど営業活動しなくてもよく、また製造においても、とても優秀な信頼できるパートナーがいるので、自分の得意分野に専念することができます。フリーで大切な能力は(フリーに限らないかもしれませんが)、仲間と信頼関係を築けることではないかと思います。信頼関係を築くという能力は、結局人間性の問題だと思います。スキルではないのでしょうね。抜群のコミュニケーション能力を持っていたとしても、不誠実であれば信頼を築くことは難しいですから。
ビジネスといっても、最終的には人と人のかかわり、関係だと思います。会社員のような後ろ盾のない、フリーであれば、なおさらです。
■プロであるとは
ここで少し話が変わって、皆さんにとって「プロであるとは」、どういうことだと思いますか。私は昔、お金を稼げることだと思っていたのですが、少し考えが変わりました。周囲の人とWin-Winの関係を目指して、それを実現する努力を惜しまないこと。いまはそう思います。
顧客に満足を与えても、自分が納得していなければ、プロと呼べないと思います。顧客以外にも、例えば一緒に仕事をしている外注さんがいた場合、その外注さんが不満ではいけません。自分も満足、顧客も満足、外注さんも満足という関係を作れることがプロの証だと私は思います。
高度に専門的なスキルを持った人でも、自分がよければいいという人がいると思いますし、わが身を犠牲にしてまで顧客に尽くしている人をみたら、プロというより奴隷かな、と思います。意外とこういう人多くありませんか?
Win-Winの関係を目指すのは簡単ではないと思います。まずは、自分のWinをはっきり認識し、主張する勇気が必要です。さらに顧客のWinを顧客の立場(自分の立場でなくて)で考えることも必要です。最後にその両方をWin-Winに持っていく。難しいかもしれないですが、最後まであきらめたくないことです。それができてこそ、プロフェッショナルだと思うのです。
私はたいした能力も、胸を張る資格もないのですが、私たちがパートナーと共に常にWin-Winを目指していたから、ここまで順調だったのではないかと思います。
結局Win-Winでなければ、継続して良い仕事はこなくなると感じています。
皆さんにとっての「プロであるとは」とは何でしょうか。
■キャリアの開発
資格というのは、自分を1つの商品とみたてて、その市場価値を上げるために取るわけですが、自分という商品をどうするかを考える前に、まず顧客とは誰か、そして自分がその顧客に与える価値とは何か、という観点で考えることが大切だと思います。
商品を開発するときは、まず顧客像をはっきりさせますよね。マンションを作るときは、高齢者向けか、ファミリー向けか、はたまたDINKSか、それによって間取りやデザインも変わってきます。自分自身のキャリアも同じではないでしょうか。
私の思う顧客像は……
金額よりも品質を優先するお客さま(多少高くても良いものを望まれる)
お互いの利益を尊重していただけるお客さま(なかなかステキなお客さまですよね)
こういう顧客の立場から見た、契約したいSEの価値とはどういうものであるか、という視点で考えます。ITスキルはある程度以上あることはもちろんのことですが、それにプラスして業務スキル、さらにはヒューマンスキル(+人間性)が必要だと思います。
「このSEは、ここまで俺たちのことを考えているのか」と思われるぐらい、顧客の立場になるSE」「運用の最後まで、収益がきちんとでるところまでフォローしていく」。そんなSE。
そうであれば、納得していただけるのではないかと思います。
「多少高くても良いものを」と望まれるお客さまの期待、価値を裏切らないように、そういう視点で足りないところ(だらけですが)を磨いていきたいと思っています。のです。
■収入について
さて、皆さんが気になる収入の話です。
会社員時代よりは上がりました。しかし、それ以上に大切と思われるのは、収入の「入り口」を分散できる、ということかもしれません。
会社員の収入は、基本的に1つの会社からですが、フリーの場合は、1つに限らずいろいろと広げていくことが可能です。IT関連にかかわらず、自分のやりたいことを見つけて、時間のあるとき、少しずつ種まきし収入に結びつける、なんてことができます。
例えば会社員の場合、カレー屋を開業したい場合、副業が認められていない場合、会社を辞めるしかないですが、フリーの場合は、カレー屋を開きつつSEをすることは不可能ではありません。ランチタイムと夜はカレー屋の店頭に立ち、空き時間にプログラムの設計です。夜中は仕込みかデバッグか……。
株式投資でリスクを減らす1つの方法として、分散して投資する方法がありますが、収入を分散することは社会生活のリスクを減らすことに効果的です。
私もいま、興味あることを見つけて勉強会や研修などに参加して、将来の商売のネタにしていこうと計画中です。どこまでビジネスになるのか未知数ですが、リスクヘッジというより、好きなことをしている時間はとても楽しいです。好きこそものの上手なれで、いつかこちらが本業になるかもしれません。カレー屋ではありませんよ、ちなみに。
また、フリーになると確定申告は自分でしなければなりません(税理士さんに代行してもらうにせよ)。自分の収入、経費、いくら税金を払っているかが把握できます。頑張れば収入は増えるし、努力すれば経費を減らせます。税金だけはどうにもなりませんが、それでも、工夫の余地は会社員よりはあります、今後自分の資産運用を自分で管理する時代になりそうですが、これはとてもいい勉強になります。
■フリーの形態
最近、私は会社(有限会社)を設立しました。フリーがある程度軌道に乗ったら節税、そのほかいろんな点でメリットが多い会社設立を検討することをお勧めします。
ポイントは、
ある程度の収入が継続して見込める
もう会社員にはもどらないと決意した
だと思います。ある程度収入があっても、その波が激しければ、かえって損をしてしまうかもしれません。また、個人事業主であれば、入ってきたお金を自由に使えますが、法人だと、その自由はある程度制限されます。何といっても会社のお金ですから。
しかし、個人事業主は退職金や年金(国民年金)の点で不利なことは否めません。将来のハッピーリタイヤ(私は目指せ生涯現役で、必要ないと思っていますが)に向けて利益の先送りがある程度できる法人化は検討した方が良いと思います。
また、法人化すると、いままで考えていなかったような経営者の視点で物事を見るようになります。書籍を読んだりセミナーに参加しただけでは、この視点はなかなか実感できませんでした。
会社の設立登記は、規制緩和のおかげで比較的簡単にできます。私も、司法書士に頼まず自分でやってみました。法務局や公証人役場など思いがけずていねいに教えてもらえました。やってみると、自分の会社を自分で作る、「俺は社長だ!」。そんな実感がわきます。自分の会社名を考えたりするのも楽しいですし、会社印ができたときもうれしくて、そこいらじゅうにペタペタと押しました……。
■フリーになってのメリット/デメリット
ここで、私がフリーになって感じたメリット、デメリットをまとめてみます。
メリット
(1)独立することで、姿勢が消極的(与えられた仕事)な姿勢から、積極的な姿勢に変わり、このことが人生についても深く考えるきっかけになった。
(2)自分に対する評価をすぐ知ることができる(厳しい評価でもすぐ分かることはいいはず)。
(3)時間配分が自由にできるので、家族との時間が増えた。ひょっとして家族は迷惑かも。ただし、どこかに常駐して仕事をする場合はこの限りではありません。
(4)雇用関係でなく、信頼関係で結ばれた本当の仲間ができた。
(5)収入の「入り口」の分散化(多角化)が会社員よりは容易。
(6)経営者の視点が経験できる。
デメリット
(1)1人で仕事していると孤独を感じる。これは結構厳しいです。普段から飲み友だち、興味のあるコミュニティ仲間などを作っておきましょう。
(2)私は幸いにも経験ありませんが、契約をきちんとしておかないと、取引先と支払いがないといった法的なトラブルがあった場合は大変のようです。
(3)病気や怪我などで働けなくなったときの保障(これらをサポートする仕組みもあるようです)。
■自分戦略
いま思うと会社員時代は、今後どういうスキルを持っていたら安泰か、飯が食えるのかでキャリアや自分戦略を考えていました。
フリーになってからは、どうしたら自分の価値観(大切にしているもの)を仕事を通じて実現できるだろうか、という観点で考えるようになりました。
なぜ、そのような心境の変化があったのかを考えると、フリーになってからは、自分の行動は自由に決めることができます。その自由が、人生について深く考えさせてくれるのだと思います。
結局、フリーになって一番良かったのは、自分の価値観を発見できたことです。
ここでエイブラハム・マズローの言葉を引用させてください。
「どう行動するべきかをいつも社会が教えてくれる世界、すなわち、社会が次のステップを指図して、エスカレーターに乗せてくれる楽な世界では、自分の弱みや失敗に直面することがないだけでなく、自分の強みを知ることもない。」(『フリーエージェント社会の到来』ダニエル・ピンク著、ダイヤモンド社刊)。
いま、この言葉を実感しています!
Tuesday, September 27, 2005
完全用Linux工作,摈弃Windows
我已经半年没有使用 Windows 的方式工作了。Linux 高效的完成了我所有的工作。
GNU/Linux 不是每个人都想用的。如果你只需要处理一般的事务,打游戏,那么你不需要了解下面这些了。
我不是一个狂热的自由软件份子,虽然我很喜欢自由软件。这篇文章也不是用来推行自由软件运动的,虽然我觉得自由软件运动是非常好的。
这篇文章也不是用来比较 Linux 和 Windows 内核效率,文件系统,网络服务的。我现在是作为一个用户而不是一个开发者来说话的,我们的讨论是基于操作,应用层面的。是为了告诉大学里还不了解,或者不理解 UNIX 的科学工作者和大学生,UNIX 比 Windows 更适合用于科学研究工作,请大家理解 UNIX 的工作方式,不要用 Windows 的标准来要求 Linux,而要用一个科学工作者的标准来要求自己,用UNIX 的思想来武装自己。
我显然是反对在大学,特别是理工科专业推广 Windows 的。我也反对在对"娃娃"们的计算机启蒙教育中使用 Windows。因为 Windows 不论从技术上,经济上,思想风格上都是与我们培养高科技人才的目标格格不入的。Windows 的流行属于历史遗留问题,爷爷一级的人当然已经不可救药,但是我们不应该让下一代继续走上歧途。
UNIX 不是计算机专家的专利
当我建议一些非计算机专业的人用 Linux 的时候,很多人说:"UNIX 是计算机系的人用的,我们不能理解。" "UNIX 是男孩用的,我们女孩不用。"
但是其实世界上的大多数科学家和工程师几乎用的都是 UNIX 作为他们的电脑工具。就因为它简单,可靠,稳定,强大,有趣。甚至很多时候 UNIX 就是唯一的选择。
你说:"我们都会用 UNIX 的话,你们计算机专业的人还用来干什么?" 很容幸的告诉你,计算机专业的有一部分人就是专门为你们提供这样强大而方便的计算机工具的。如果他们制造的工具只有自己会用的话,那这个工具还有什么用?
理解 GNU/Linux 不要用 Windows 的标准来要求 Linux。
由于GNU/Linux这个词太长,下面如果没有特别指明,"Linux"就是指GNU/Linux"。
在这个年代,恐怕没有人需要我来介绍 Linux 是什么了吧?如果你觉得"Linux 只不过是跟 DOS 差不多的东西",那请问问你旁边的 Linux 用户,Linux 到底是什么?
那为什么我还要写一篇这样的文章?因为,我发现还有很多人不不理解 Linux 和 UNIX,虽然他们也在用它,但是他们有时会问:"为什么 Linux 不能像 Windows 那样 ……?","怎么Redhat Linux不能 mount NTFS 分区!","Linux 下用什么整理硬盘?","什么时候OpenOffice才能完全兼容Word文件啊?","现在还有什么Windows能干的事情Linux干不了的?"……
他们有40G的硬盘,却只为 Linux 分配了2G空间,有时还抱怨"这个东西怎么占这么多硬盘!" 似乎 Windows 该占用大部分硬盘。他们把重要的数据装在Windows的分区,似乎信不过Linux。他们总是到处寻找新奇的,好看的GUI程序,对命令行的东西一概不屑一顾。他们对Drag&Drop,菜单配置,自动升级非常感兴趣。他们如果找到一个很像 Windows 程序的 Linux 程序,一定会很高兴的说:"哈哈!Linux 也能……了!"如果Linux在某种测试中胜过Windows,他们会高兴得跳起来。他们没有办法用Linux 解决问题的时候,甚至用Wine来运行Windows程序。有时实在没办法,只好重起到Windows,或者干脆省得麻烦,在 Windows 下装一个 VMWare 虚拟一个 Linux 玩。
你如果出现了上面的情况,说明你的思想受到了 Windows 的某种潜移默化的影响和误导。你没有能够从本质上理解存在于 Linux 身上的 UNIX 思想。你支持 Linux,你喜欢 Linux,你能从中感觉到快乐,这非常好。你现在只需要明白的是:Linux 从来就不是一个玩具,它是天才UNIX的后代。UNIX 是自晶体管发明以来最伟大的发明,它从诞生那一天开始就比 Windows 的设计出色。
你要体会什么叫做"设计",一个糟糕的设计并不是到后来缝缝补补就可以变好的,而一个出色的设计,不但可以以不变应万变,而且可以影响到后来者。一个出色的设计配上一个出色的实现,那就是非常出色的发明。Linux 就是这样的一个出色的发明。Linux 并不需要追赶 Windows,也不需要打垮微软。它的最终目标是改变整个计算机世界,还人们自由,给人们乐趣和方便。
Unix 是简单的,你不需要成为一个天才也能理解这种简单。
UNIX的设计者 Dennis Ritchie 说:"Unix is simple. It just takes a genius to understand its simplicity." 但是我不这么认为,因为我不是一个天才,但是我却勇敢的把 Windows 完全删除掉,遇到不明白的事情的时候努力用 UNIX 的方式去解决,而不是寻求 Windows 的帮助。现在我体会到了 UNIX 的思想和好处,我可以用比 Windows 高效几倍的效率工作。因为我相信这样的信念:"Windows 能办到的事 Linux 一定能办到,而且办的更好。"
这小节开头的话应该改成:"Unix 是简单的,你不需要成为一个天才或是计算机专家。但是在这个冲斥着 Windows 错误观念的世界,你需要信念和勇气才能理解它的简单。" 我下面就告诉你一些我理解到的东西。首先,你要知道的是微软在国际科学领域是根本没有地位的。
微软的地位
微软的名声在欧洲和美国的大学里,特别是在计算机系里之坏,大家可能有所耳闻。我认识的 MIT,Stanford 的教授,贝尔实验室的专家,甚至一个欧洲小国的高中计算机老师都绝口不提微软的名字。在他们眼里,微软只是一个没有真技术,专靠在落后国家商业宣传和垄断经营的小公司。这个"小"并不是说它人少,钱少,而是说它先进技术少。
我上次和王益合作写了一个算法演示程序,那个算法是贝尔实验室一位科学家Steven Fortune很天才的发明,为了程序能够被身边大多数人使用,我们选择了 VC+MFC 作为平台。我在分析算法时还得到 Fortune 很热情的鼓励,寄给我一份资料,还多次回信耐心的给我讲解了很多细节。但是程序完成之后,我把样品发给 Fortune,他回信说:"对不起。我机器上没有 MFC。" 话说的很客气,但是我已经感觉到了他对 Windows的不屑。然后我把 MFC 静态编译进程序再发给他,他就没有再回信了。他显然不是瞧不起我,而是确实有难处。
你能感觉到这位科学家对微软和 Windows 是什么态度了吧?不是反感,而是他心里根本没有 Windows 这个东西!微软在高科技领域没有发展,那么它怎么生存呢?到发展中国家去发展一下,他们的人民还对电脑一无所知,我说不定甚至可以打入大学的计算机系呢。我送他们软件,我捐钱盖大楼,我出钱找图灵奖获得者来演讲,让他们觉得我们都是科学家!
好了,现在全国的大学包括清华,几乎所有人机器必装盗版 Win2000,Office XP,学校的选课系统是非IE不能正确浏览,论文用 Word 编辑,演示用ppt做,email 的通知附件是 doc 文件,你不用 Word 打不开,连 863 项目都用 VC 写程序了。我很久以前就看到一份报纸说,"微软为什么不严厉打击盗版?" 这篇文章说,微软非但不打击中国的盗版行为,而且有放任之趋势。放长线吊大鱼,"以后我要你们加倍的来还我!" 确实如此,它的目的快实现了。
Windows 笼罩下的中国计算机教育
说句丢脸的话,比尔盖茨很久以前是我的偶像…… //blush
在中国,比尔盖茨被很多人奉为神圣,"少年电脑天才",甚至有的人提到他的名字就做出"抱拳对天"的姿势。很多人谈到微软的"新技术","高科技" 都是眉飞色舞。各种"VC编程圣经","深入了解 Visual C++"之类的书,在开头几页都会出现非常肉麻的字眼,"在那团团的混沌中,一个开天辟地的精灵,Windows 1.0,诞生了……"
微软的软件被这么多人盗用,那么人们是怎样使用这些盗版程序的呢?先看看电脑培训班,教的都是一些 DOS 命令,打字,Windows 基本操作,Word 文档处理,PowerPoint,高级班可能有 Excel,Access…… 参加各种微软认证考试,MCSE,MSDE 的人络绎不绝。考试辅导班都贴出了"280元,考过为止"之类的字样。考试参考资料更是昂贵,有些电脑书店整整两书架都是"Microsoft Press"的东西。我有个同学参加认证考试,每门考试都要200多元。而且你一次考不过可以再考,又要交钱。他后来还津津乐道跟我说,看我,花了XXXX(一个四位数)元考过了微软认证,得到一张比尔盖茨亲笔签名的证书和价值6000元的 Windows XP 内部发行版。
"电脑要从娃娃抓起",我们再来看看娃娃们学的是什么。大部分家长给孩子买了电脑之后,他们首先就会装一个盗版的 Windows,然后买来盗版的游戏开始玩。如果哪个孩子会用 Delphi 编程序,那可不得了。报社记者,电视台争相报导,说,某某学校的初中生某某,在别人都还在玩电脑游戏这种"初级阶段"的时候就已经用 Delphi 写程序了。镜头还瞄准了他显示器上面的像框中的比尔盖茨头像!
我刚进入大学计算机系时还不懂得什么是操作系统,因为我以前只用过"中华学习机"。看到新入学的同学们各个谈论的都是 "Windows 95","VC"…… 我简直觉得我落后了好几十年一样,整个一土人,根本跟他们答不上话。好不容易找到一个比较熟的同学问了一下:"你们天天谈论的瘟95是什么啊?"答:"win95就是一个操作系统,跟DOS是一类。""朵死是什么?" "你连DOS都不知道是什么?别在计算机系混了。" 学校上课当然不讲VC编程之类的东西,但是上 Pascal 的老师有一次就说:"嗨,我们学校真是落后。现在别人都用 C, C++,甚至 VC 了,我们还在讲 Pascal。不知道什么时候才能有VC课啊。你们出去也是要用VC的,只好自学了。" 于是,有些同学很多时候上课都捧着一本很重的"Windows 编程大全"之类的书,根本没有听课。吃饭时就念念有词的跟我说,"代码的优化是无止境的","匈牙利命名法真是伟大的发明" …… 这就是中国很多大学计算机系的情况。
感觉到无知了?这不是偶然的,而是微软长久以来埋下的伏笔。它要让无知的大家都把它奉为神圣,它要让支持UNIX,Xwindow的人一旦说 UNIX 好,Xwindow 好的时候,都被一群人围着说教:"这个 Windows 也能做到","你对 Windows 有偏见","微软才是主流啊","你敢瞧不起 win2k?",".NET 就是世界潮流","微软的毕竟是新技术","有钱就是有技术"…… 甚至在一番论战比较后败下来还是要说:"Windows 性能差点,但是易用性强","Windows 是老百姓用的,要求别那么?quot;,"微软那么有钱,以后想超过 UNIX 还不容易吗?"……
发达国家的计算机教育
我前段时间在 USENET 发文问有关 Scheme 语言的问题时,认识了一位丹麦人。他解决了我所有的问题,并且建议我阅读一些很"深奥"的有关程序语言语法,文法的书,他告诉我很多网站可以学习 LISP,Scheme,人工智能,算法。他叫我看 Jonathan Rees 的论文 "Syntactic Closures"。他还打包给我寄过来一份 MIT 的 "How to Design Programs"。他说他在自己的 PC 机上装的是 Linux,他用 Emacs 编辑,运行Scheme 程序。他对 Emacs 的了解和爱好真是使人惊讶。他大学本科毕业时做的毕业设计是一个 Scheme 解释器。这对于我来说是望尘末及了。
他是那么的不厌其烦,我的每一个问题他都详细的回答。我有时都觉得过于详细了,怎么这么耐心啊?我觉得他似乎是我的高中老师。他是什么样的人呢?我好奇的打听了他的情况。原来,他是丹麦一所普通高中的计算机老师。
他说他在高中里讲授程序设计和算法,计算机语言文法。他说用 Scheme,他的学生不用再为内存泄漏等程序语言本身的问题而烦恼,而专注于问题和算法本身。有利于培养学生解决问题的能力,特别是用计算机解决数学问题的能力。
天哪!为什么欧洲出现那么多数学家,几何学家?你看看别人重视的是什么!我们的计算机教育如果继续这样下去,只会沿着弯路越走越远!
微软和它的朋友们的如意算盘
下面来看看微软的收入是怎么来的。首先,Windows 98系列操作系统,一个就是 100多美元,每次升级又是几乎同样的价钱。Windows NT 还要贵几倍,而且有用户数目限制,5个用户的,10个用户的…… 以后如果要增加用户数目还要按比例付钱。
花了如此多钱买来的操作系统就能用了吗?它竟然连压缩程序都没有提供!你装上Windows 之后一般第一件事就是去下载一个 WinZip 吧,"只要 29 美元"。Windows会中病毒啊,马上花 70 美元买一个 Norton AntiVirus 吧。还有黑客呢?再买一个Norton Internet Security 好了,100 美元。系统需要优化,磁盘需要整理,买一个Norton System Works 是你最佳的解决方案,100美元。
可是你现在还是不能干正事啊!你想要一个 Word, PowerPoint?那就买一套 Office XP 吧,一起买便宜些,$459.90。
那些程序不会用啊!那些菜单怎么设置,到底有什么功能啊?看"帮助"也学不会。买本书看看吧,我推荐"Special Edition Using Microsoft Office XP",不贵,$27.99。这本书里面大部分是屏幕抓图,还是买一本旧的比较划算,$17.85。
你如果只是当个秘书,上面的差不多还凑合了。可是你有更高的追求,你想成为 Windows程序员。首先买一个 Visual Studio.NET 吧,要不然怎么编译程序。$494.95。
为了紧跟微软动向,世界潮流,不能不注册个 MSDN 什么的吧?这个贵一点,不过物有所值啊,$2,799。
嗯,你现在已经是上层阶级,白领人士了。你现在可以像这样"自由"的,"安全"的生活了。
为什么要反对使用 Windows
很多人都说不应该完全否定 Window,Windows 也有它的长处。不应该骂微软。
对。Windows 容易操作,适合普通用户。如果微软把它自己定位在 P&G,Philips 那样的地位,能够给我们的百姓提供周到的,完善的,价廉物美的服务。那我肯定是很喜欢它的。但是从上面的种种情况说明,微软是一个野心极大的国际垄断组织!它的产品没有一个是不出问题的:Windows 不稳定,容易中病毒,而微软不为大家免费提供杀毒软件。我就是要让你们花钱买我的朋友 Symantec 的杀毒软件,谁叫你们已经上了我的贼船?这叫什么售后服务啊!
你买来微软的程序,安装的时候一般都有一个协议,说:"由于微软的程序造成你的数据损坏或丢失,微软概不负责。" 我想很多人肯定觉得这个不合理,不想按那个 "I accept"。但是你的软件买都买来了,钱都花了,现在一按 "I decline",安装程序马上就会退出。你只好被迫点击了 "I accept"!这不是不平等条约吗?
我已经目睹了好几个朋友的文档被 Microsoft Word 损坏,有的是编辑了十多天的30多页的论文,有的是费了很大工夫做出来的个人简历,那个朋友为此失去了到自己向往的P&G 工作的机会。就在他要投简历的前一个晚上,就在那一瞬间…… 不知道他痛哭的时候有没有想起要投诉微软,可是谁叫我们用的都是盗版呢,况且你还点击了 "I accept"。
微软仗势已经占有大部分PC市场,制定不符合国际标准的"微软的标准",以不合理的方式压制其它公司的软件,这个问题已经在美国司法部闹了很久了。他甚至在 Windows系列操作系统中放置能够通过网络泄漏用户信息的代码,以至于 Windows 刚进入澳大利亚时被澳大利亚政府禁止使用。
有些人说:"微软毕竟开创了一个历史,造就了今天的 IT 行业。" 但是,如果没有微软,我们今天早就用上非常稳定,非常可靠,非常方便,非常"傻瓜"的软件了!微软是阻挡信息技术发展的罪魁祸首。
微软的程序的工作方式(注意,我只是说操作方式,病毒的事情另外算)确实适合于一般家庭,上上网,发发邮件,打打游戏都不错。可是微软却要把自己包装成什么"高科技"企业,要在世界各地设置"研究院",在大学计算机系赠送不适合用于科研的 Windows产品,甚至出钱请图灵奖得主来中国畅谈"二十一世纪的计算",还在大会上宣传自己的 .NET 技术。非要把别人认为自己是科学的,自己是领导世界高科技的。但是呢?它什么高科技也没有。欧洲,美国,哪一个关键部门在用微软的东西?NASA? DOE? CERN?你仔细想一想,微软的程序对人类到底有什么重大作用?
什么是 Windows 能干而 Linux 干不了的事情?---
"Windows 能干而 Linux 干不了的事情,那就是不需要干的事情。"
有个朋友看我半年没有用 Windows,有时就会问我:"你只用 Linux,有没有发现有些Windows 能处理的事情 Linux 干不了?"---
我回答说:"Windows 能干而 Linux 干不了的事情,那就是不需要干的事情。"
Windows 能做的有益的事情 Linux 都能做---
Windows 下的某些功能确实是我们需要的,那么 Linux 的开发者们和用户也需要这种功能,他们就会去实现这种功能,而且比 Windows 的方式好得多。由于大多数科学家,工程师用的都是 Linux 或者某种商业 UNIX, 所以几乎所有商业的科学工程程序,比如Matlab, Mathematica, AutoCAD, Candence的,Synopsys的,Avant! 的……全都是先有UNIX 的版本(包括Linux),然后再考虑移植给 Windows,甚至根本不移植给Windows,因为 Windows 的机器一般没有足够的能力运行这样的程序。你不要以为只有 Windows 才有 PSpice, UNIX 的 HSpice 要好得多,而且可以运行在大型主机上。当然它们不是免费的,但是它们值那个价钱。
但是 Windows 下有些东西在 Linux 下没有很相似的,或者你找到很多类似的,但是它们每一个比起 Windows 的那个程序都要差很多,那么原因有两种可能性:
有一个完全类似的程序,但是由于它乍一看不漂亮,被你忽略了。而其它程序虽然看起来很漂亮,但是它们是一些初学编程的人写的。现在由于 Gtk, Qt 的诞生,Linux 下开发图形界面程序极其简单,很多初中生甚至小学生都可以随手编出一些漂亮不中用的程序。如果你整天寻找这样的程序挑来挑去,永远也找不到你满意的。当然也有一流的程序用 Gtk 和 Qt,比如 GVIM 就可以用 Gtk 作为图形界面,我还知道 Synopsys 一些程序用了 Qt。
我曾经也犯过这样的错误,从外表区分一切。结果优秀的 FVWM, lftp, Mutt, wget 都被我忽略过。当我找回它们的时候,我是那么的羞愧不已,它们现在都是我的朋友我第一次看到 FVWM 觉得它只不过是一个有很厚很难看边框的东西。可是现在,我的同学看到 FVWM 都说:"哇!真漂亮。"
有另一种完全不同的方式可以达到相同的目的,甚至更好。
很多人很关心 Open Office, Star Office, AbiWord, ... 他们多么盼望有一天某一个Linux 程序能够完全兼容的打开一个复杂的 doc 文档。但是你永远也不可能有那一天。为什么呢?因为微软为了占有市场,必定不会让其它系统的程序能够完全兼容它的文档格式。它一定会不断变化 doc 文档的内部结构,隐藏一些秘密,让其它公司的程序打开 doc 文档时总是有某种问题,从而你必需购买 Microsoft Office 和 Windows。
你应该想一下,那么多的高智商的大学教授,科学家,学生,他们用的都是 Linux 或者其它类型的 UNIX,他们没有 Word 可用,怎么处理文档呢?这么多年没有一个像Open Office 的程序出现,难道大家没有办法写文档吗?
显然不是这样。你看看那些高水平的学术杂志,论文,那些大学教授的网页,那些漂亮的幻灯片,它们是什么做的?原来 UNIX 用户早就有非常方便的 troff, LaTeX, SGML等东西可以处理文档,而且它们比起 Word 都要高明的多。Word 显然被这些大拿忽略了,以至于很久以来没有人想在 Linux 下开发一个类似 Word 的程序,除非某些公司想抢微软的饭碗。
很多人留着 Windows 在硬盘上的原因无非是为了用 Word 和 PowerPoint。我见过一个教授,他的 Windows 笔记本电脑上除了 PowerPoint 什么都没有。有一天演示的时候,他指着堆乱字符说:"对不起,这是一个公式……怎么每次都是这样……" 其实有比PowerPoint 好几百倍的东西可以制造幻灯片,你可以用最简单的方法制造世界一流效果的论文和幻灯片。你待会儿可以看看我的TeX网页,你就会知道为什么我可以完全离开 Windows。
Windows 能做的那些没用的事情 Linux 永远做不好
电脑游戏
有些人说 Linux 下不能玩 Windows 下所能得到的所有游戏。的确,Linux 下虽然也有少量的游戏,比如 Quake。但是它没有 Counter Strike, 没有 Star Craft, ……
并不是说电脑游戏不该玩,但是应该适可而止。电脑是用来处理事务,帮助你学习,解决问题的工具,而不是一个玩具!整天沉迷于电脑游戏中,而不出去感觉外面的世界,你会变得越来越冷酷,越来越缺乏人情味。你与真实的世界越来越远。
你可以在 CS 里杀人,你可以在 Tomb Raider 里探险,你甚至可以在 Tony Hawk's Pro Skaters 里滑板…… 但是 It's not real!你虽然有很高的"反恐技巧",但是遇到歹徒的时候,你是那么的怯懦;你虽然控制 Laura 伸手敏捷,但是你打篮球的时候怎么总是被人断球?你虽然可以轻易的在 THPS 里作出一个 "360 kickflip to hangten grind to fakie",但是你踩在自己的滑板上的时候还不会 ollie!
说回来,如果你偶尔玩一下电脑游戏未尝不可。但是世界上有远比 Windows + PC 更好的游戏方式。Sony 的 PlayStation2, SEGA 的 DreamCast, Nintendo 的 N64,Namco的街机……每一个都比 Windows 游戏精彩,每一个都有如此高的3D性能,以至于Pentium4, Itanium + GForce4 都无法与它们比美!
Linux 的用户们都是关心解决世界的关键问题的份子,他们哪里有时间用自己的机器来玩游戏啊?他们每天用Linux高效的做完自己的工作就到阳光下享受自然去了。要玩游戏也是玩一些类似推箱子,贪吃蛇之类的智力小游戏。所以,你知道为什么 Linux 几乎没有游戏了吧?
"整理硬盘,优化系统"
这是一个非常有意思的话题,仅次于有关"病毒"的话题。相信很多 Windows 用户都有整理硬盘的经历。在很多 Windows 用户眼里,"硬盘用久了,会出现碎片,速度会减慢,需要一个程序来整理,整理硬盘的时候不要做其它工作",这好像是天经地义的事情。
我也曾经津津有味的看着 Norton Defrag 一点一点的把我的硬盘排序,调整,用图形的方式显示出来,然后报告?quot;100% 没有碎片。你的硬盘现在已经达到最佳状态。" 我现在才发觉我那时是多么的幼稚。
Linux 和 UNIX 用户似乎从来没有"整理硬盘"这种说法呢?你觉得很奇怪吗?如果你觉得很奇怪,那说明你的思想在某种程度上被微软的垃圾程序禁锢了。你需要明白,UNIX 的大型主机很多必须是一天24小时,一年365又1/4天不停运转的,要是每个星期都要整理一次硬盘,在整理的时候几乎不能干任何事情,那是绝对行不通的!
Linux 机器根本不用整理硬盘,这就是为什么没有看到过 Linux 用户整理硬盘。Linux 的文件系统是比 Windows 的 FAT, FAT32, NTFS 高明得多的文件系统,它们不但可以对文件设置权限,实施完全的保护,而且可以"越用越整齐","越用碎片越少"!你应该把文件大部分放在 Linux 的分区,而不是 Windows 分区,因为它比 Windows分区可靠得多。
还有更滑稽的事情就是有很多"Norton System Doctor","Windows 优化大师","超级兔仔注册表魔法" 之类的程序存在,而且价格昂贵。似乎一个操作系统本来应该有很多问题,需要别的厂商做程序来"优化"它,而且为了得到优化,你需要付钱!这些问题 Linux 根本就没有,所以不需要什么优化。Linux 内核本身就是高度优化的。
IDE
有些人在抱怨为什么 Linux 没有一个良好的 IDE 开发环境。Linux 现在已经有一些IDE 了,但是总是有很多问题。你是不是正在寻找,正在期望 Linux 某一天可以有一个VC那样的开发环境?你有没有发现你正在进入微软给你设下的怪圈?你为什么一定要用 IDE?你说:"IDE 开发迅速,调试方便,适合大型程序……" 那说明微软的程序在你脑子里已经比较根深蒂固,你需要好好清醒一下了,看看我来告诉你。
高明的 UNIX 程序员不用 IDE,IDE 从来就是给初级 Windows 程序员用的。
你看看大型的 UNIX 程序,包括 Linux 内核,各种网络服务程序,Xwindow 程序在内,哪一个是 IDE 搞出来的?我们实验室的 EDA 程序也没有一个是 IDE 弄的,我还知道Candence, Synopsys,Mentor 的高性能的图形界面 EDA 程序也都不是 IDE 写的。你信不信,微软的人在写 Windows 本身的时候也根本不用 IDE。微软内部程序员最喜欢的编辑器其实是 VIM,用 VIM 的微软程序员上次向乌干达的可怜儿童捐助了1000多美元,这是值得称赞的。
有一次某杂志采访一些出名的 Linux 内核程序员,包括 Linus 在内,没有一个人用IDE,有的人用 VIM,有的用 Emacs,只有 Linus 说"GNU Emacs is evil",但是其实他用的是一种跟 Emacs 有同样键绑定功能的 MicroEmacs。大家都是用编辑器编辑了程序文件,然后用 make 这样的自动工具调用 gcc 编译器完成编译工作的。甚至高级的 Windows 程序员也不用 IDE,他们可以从命令行调用 cl,nmake 来编译自己的程序。虽然这样的 Windows 程序员很少,但是他们却是最了解 Windows,最高明的Windows 程序员。
为什么 UNIX 程序员不用 IDE?明白了这个道理你就能体会到 UNIX 的设计思想了。首先,一个 IDE 集成了编辑器,编译器,汇编器,调试器,跟踪器…… 这个编辑器功能肯定比不上 VIM 或 Emacs,编译器比不上 GCC,汇编器比不上 as,调试器比不上 gdb,ddd, 跟踪器比不上 strace, ltrace, truss。你得到的是一套整合的低能的程序。如果你对调试器的功能不满意,你只好换用另外一套 IDE,但是这套 IDE 的热键,菜单,编辑器功能,按钮…… 跟原来那个有很大不同。你不得不花很多时间来熟悉新的环境,而不能保持原来的某些东西。
而在 UNIX 下就不一样了。你可以用你最喜欢的 VIM 编辑程序,你在 VIM 里可以调用GNU make,make 可以调用 gcc, ld, ... make 的出错信息可以被 VIM 捕获,VIM 能帮你在源程序里定位。你如果喜欢 icc, 你可以让 make 用 icc 而不是 gcc。你如果觉得 gdb 跟踪变量时比较麻烦,你可以用 ddd 来显示各种数据结构之间的关系。你还可以在 Emacs 里调用 gdb,那样就可以同步显示源代码了。而且 VIM 和 Emacs 还可以编辑很多其它东西,比如信件,LaTeX 文档,HTML,配置文件…… 你不用另外找一个什么编辑器来干这些杂活了。很多程序比如 Mutt, tin 都可以在内部使用 VIM,这样就更方便了。实际上 make 在其它方面还能帮你很多忙,我的每一个比较大型的 LaTeX文档都是用 make 维护的。
Linux 能干的高精尖的事情 Windows 都干不了
当然有很多事情是Linux/UNIX的专利了。因为 Windows 只能装在 PC 机上,好像以前也有 Alpha 可以使用 Windows NT,但是就是没见到有人用。PC 机的能力是很低的,像我们编程序处理 NP-Hard 问题的人,用 Windows 的机器显然速度不够,而且有时一个问题算上几天甚至几个星期,Windows 机器是以"死机"著称的,我们怎么能放心?所以几乎所有科学计算程序,EDA 程序,高性能图像处理程序都不是 Windows 的。他们有时也会移植一些给 Windows,但是常常降低那些程序的能力。你比较过 Windows 版本的 Mathematica 和 Linux 的有什么区别吗?
IBM 制造的最大的并行计算机有 8000 多个处理器,Windows 不可能有能力管理这么多处理器,它用的是什么操作系统?答案是 Linux。
《泰坦尼克号》电影里的三维动画,那么细腻逼真,Windows机器能做出来吗?不行。那也是 Linux 机器做的。
民航总局用来训练地情人员的虚拟现实训练设备,Windows 当然无能为力。那都是商业的 IRIX 机器。
UNIX 是最早支持 TCP/IP 网络协议的系统。它上面有很多可以互相协作的网络服务程序,它们经过多年的使用和修订,已经达到比较完善的程度。而就在1997年,微软的比尔盖茨还在扬言:"Internet 是没有前途的。" 微软的这个"远见卓识"大家应该都已见识,它后来加上的网络服务程序IIS漏洞之多,让公安部都频频发出警报,大家也是见识了的。
其实你知道了,Windows 没有一样有用的事情能比 UNIX 干的更好。
Linux 干不了的有用的事情 Windows 照样干不了
当然 Linux 不是万能的。它也有不能干的事情,电脑也有干不了的事情。但是 Linux干不了的事情,Windows 肯定也干不了。这些事情就是我们需要探索,需要努力的事情了。在你探索的过程中,Linux 必定是你的好伙伴。
不要把Linux和Xwindow掩盖起来!不要把我们的用户当成傻瓜。
什么?你早就知道 Windows 是垃圾?噢!你怎么不早说呢!害我废话这么多。嘿嘿。
"好了。你知道 Windows 是垃圾,你现在用什么?quot;
"Linux + Xwindow"
"那我问你,Xwindow 是什么样的?"
"不就是跟 Windows 差不多吗?只不过 'Start' 按钮比较方,而且上面不是一个Windows 标志,而是一个脚丫子。点击一下居然还有很漂亮的中文菜单。我喜欢!"
"你知道什么是'根窗口'吗?"
"不知道。从来没听说过呢?"
"根窗口就是遮盖整个屏幕的那个最大的窗口。"
"哪儿有什么窗口啊!我没有看到呢?"
你发现了问题吗?这些 Linux 用户说是在用 Linux 和 Xwindow,但是他们对 Linux和 Xwindow 几乎完全不了解。很多人用了那么久 Xwindow 都不知道根窗口是什么东西,不知道其实按钮也是窗口,不知道窗口管理器和其它程序有什么关系,大家都以为窗口上面的按钮是程序自己放上去的,不知道窗口?quot;class name","resource name"是什么东西。他们也不知道 .Xdefaults 是用来干什么的。特别是他们很多人都不知道 Xwindow 的字体是如何命名的,什么是 fontset,有了一个新的字体也不知道怎么安装。
他们被遮在 Linux 之上的一层一层的包装迷惑了,他们等待有图形界面的工具来帮助完成一切事情,他们认为 Linux 跟 Windows 一样,只是麻烦一点。他们知道 Linux内核很好,但是他们感觉不到 Linux 和 Xwindow 在操作层面的天生的先进性,随后不久就把 Linux 完全删除掉了。你发现没有,要用户理解 UNIX 和 Xwindow 的操作层面的先进性,才是留住用户的最好办法。如果用户体会不到操作时的方便和高效,内核再好他们也不会理会。
但是用摹仿 Windows 的作法来吸引用户,永远会失败的。因为 Linux 如果摹仿Windows那一套低效率的方式,那么 Linux 的这套"低效率方式"永远比不上Windows 的那一套"低效率方式"。那么用户就会说:"这个 Linux,没有一样比的上 Windows。"
Linux 天生就是继承了 UNIX 的高效的工作方式,为什么我们要把它掩盖起来?我们为什么只告诉用户 KDE 的菜单怎么用?我们为什么不能像早期的 Xwindow 书籍那样第一节就告诉用户什么是 X server, 什么是 X client,什么是 Window Manager, 什么是根窗口。第二章就告诉用户窗口有哪些属性,什么是 classname, resource name, hint,怎样使用 .Xdefaults, xrdb ……
在这里我又不得不说一下那些 Linux 的发行公司和写书的人,他们把 Linux 和Xwindow 包装起来,却没有从基本上告诉用户 Xwindow 的工作原理。很多书籍讲授的层次就是在Gnome, KDE 的菜单操作的层次,靠大量抓图来占篇幅,"繁荣"Linux 书籍市场。
现在很多人已经把能够利用别人的库写出一个好看的程序作为自己编程水平的象征。在这?quot;图形化","可视化" 的年代,你如果还在用 troff, LaTeX 写文档,你还在用VIM 自己编辑 HTML,用 Mutt 处理邮件,你还在用文本模式的 gdb 调试程序,你还在用Xlib 写程序, 你还在用 tin 上 USENET,你还在自己写 Makefile,写机器代码,你还在玩 Clossal Cave 这样的字符模式冒险游戏,那你就是老古董。
其实这种思想是错误的。虽然你是一个坚决的 Linux 支持者,但是你的思想是 Windows的思想。你认为图形界面,菜单,按钮就可以解决一切问题,就可以给你高效方便。你还是没能摆脱微软给你的潜移默化的东西。你其实离不开 Windows 那样的环境,你迟早会删掉自己的 Linux。
GUI vs. CLI
做一个坚定不移的"两面派"
大家看到这个标题是不是热血沸腾?两派大虾都可以围攻我了:
GUI派用户:"哇!我一看你这小子就是 CLI 的。要不然自己写什么 Makefile?用什么Mutt?"
CLI派用户:"切~ 你还用 X!高手都不用 X。你是 GUI 那边的。"
可怜的我:"555~~ 你们都不要我~~ GUI 和 CLI 就那么水火不容吗?"
计算机界这样的门派之分还很多。很有特点的就是 CLI 和 GUI 了。CLI (Command LIne)的狂热份子声称永远不用 X。我上次在实验室看到一个同学用一个 SecureCRT 登录到Sun 机器,然后用一个 vanilla vi 编辑程序,我建议他启动一个 GVIM 过来显示在Exceed 上可以有语法加亮。但是他坚决反对,说:"高手不用X。你想想,要是我在一个很慢的网络连接怎么用 X?而且好多服务器没有装 X 程序。"
但是我们实验室的网速可够快,Windows 机器都有 Exceed 啊,而且 Sun 机器有全套X 客户程序包括 GVIM。他说他是 CLI 的坚决拥护者,但是他却在用 Windows,他后来打开了好几个 SecureCRT,每次从文本框输入地址,用户名和密码,从下拉菜单选择"SSH2",然后点击"Connnect"。他还不断的夸SecureCRT是"网络管理员投票选出的最受欢迎的登录方式"。老天,SecureCRT 本身就是个 GUI 啊,他其实没有明白Xwindow 的好处。
你说我是 GUI 的?我虽然很少在 console 下工作。但是我对 bash, VIM 很熟悉,我可以让 bash 按照我的键绑定方式来工作。我可以在 rxvt 里使用 Mutt 来收发 email。我的每个桌面上都常常堆放着一打不同大小的 rxvt。我用 VIM 编辑 LaTeX。我自己写Makefile 来维护 LaTeX 文档。我有时用 mpg321 来放 mp3。我上BBS用的我自己写的expect 脚本。 好了,CLI 派的朋友可以收我做盟友了
你说我是 CLI 的老古董?我的 FVWM 被我配置为可以"手写操作",我只要画一个"r"就可以启动 rxvt,我只要画一个 "U" 就可以启动 GVIM,…… 我用 GVIM 语法加亮模式编辑程序,我用 Mozilla 浏览网页,…… GUI 派的现在好像认我做朋友了
好了。CLI 派的朋友,虽然我很喜欢命令行,但是我有时在屏幕上左右画一下就可以执行:
Module FvwmConsole -terminal rxvt -geometry 45x5-0+0 -bg gold -fg midnightblue -fn "-adobe-courier-medium-r-*-*-14-*-*-*-*-*-*-*"
你是不是现在又想把我逐出师门?
GUI 派的朋友,虽然我很喜欢窗口。但是我可以在 FvwmConsole 里输入:
All (rxvt) MoveToDesk
把我所有的 rxvt 移动到我现在工作的桌面。"这家伙,怎么这么快就叛变了!"
其实何必分什么 GUI 和 CLI,UNIX 和 Xwindow 都是工业标准,它们从设计那天开始就有非常灵活的用法,各个程序,不管是 GUI 还是命令行的都可以互相协作。UNIX 和X 是一家,何必搞的那么偏激,非此即彼?你从我上面的行为可以看出 GUI 和 CLI的模糊界线吗?我就是坚定不移的"两面派"。
UNIX 是简单的--
"我相信简单就是最好,如果太复杂,我是不能理解的。" -Seymour Cray
很多第一次用 Linux 的人会惊奇的发现,Linux 的程序居然不?quot;安装"就可以运行,程序拷贝到随便那个目录都可以用,而不是一定要占用你第一个分区的空间。程序的设置只是一些简简单单的文本文件。你根本不需要什么"注册表修改器" 就可以改变系统的设置。这就叫做简单,但是简单就是美。虽然这只是 UNIX 简单性的一个肤浅的认识,你已经体会到了某些东西。
但是简单并不意味着功能弱,并不意味着落后。相反,简单意味着强大,意味着生命力。
我不会再继续阐述我理解到的"UNIX 的简单",因为这个需要自己去体会。
UNIX 是永恒的
有人说:"Plan9 会取代 UNIX,Mach 会取代 Linux 内核。"
但是你如果是一个深入体会了 UNIX 的人,你就会知道:UNIX 的思想是永恒的,不管时过境迁,Plan9 是否代替 UNIX,UNIX 的灵魂都会在 Plan9 身上现形!
我为同一个设备写过 Linux 内核和 Windows VxD 驱动程序。写 Linux 驱动程序时,我对 UNIX 设计的完美的一致性,远见性所折服。UNIX 用同样界面的 read(), write()系统调用就可以对不同的对象:普通文件,设备文件,管道,管道文件,socket,……进行统一的读写操作。我跟本不需要写一个测试用的应用程序就可以对我的设备驱动进行测试,因为 cat, cp, dd, 它们也使用了同样的 read(), write(),设备和普通文件在应用程序眼里没有区别。在那个还没有 Smalltalk, 没有 C++ 的年代,UNIX 的设计者已经使用了所谓的 "面向对象方法"。对,C 语言也可以实现面向对象。
UNIX 的系统调用几十年都没有很大变化,这非但不是顽固,不进步的象征,反而是UNIX 的远见卓识的体现!这就跟 TeX 程序几十年都不变的情况差不多。这些才是真正的永恒的 master piece! 你应该改变所有软件都必需从 0.1, 1.0, 1.1, 1.2, 2.0,..., 3.0, 3.1, 95, 98, 2000, XP, ... 不断升级的想法。
Windows 就不同了,它在最开头只是一个 DOS 之上的图形包装而已。后来为了兼容以前的糟糕设计,不得不加上很多累赘。我写 VxD 驱动程序的时候就深有体会,Windows 95 程序对设备的操作只有用 DeviceIoControl,我不得不写了两个应用程序来对设备驱动进行测试。Windows 内核的不一致性和隐密性使我非常恼火。不过 Windows WDM驱动程序现在也有了 ReadFile, WriteFile,…… 那说明什么?那说明 Windows 在向UNIX 学习,或者有可能是某个 UNIX 设计人员在微软打了几天临工,顺手加了几个UNIX 的东西进去。这样做是没有用的,Windows 从一开始就是非常糟糕的设计,它的历史的包袱太沉重了,缝缝补补有什么用?它只能永远的被 UNIX 甩在身后!
UNIX 是强大的
让聪明人干任何他们想干的事情。
UNIX 的一个特点就是非常高的灵活性,Xwindow 也具有这种灵活性。这种灵活性体现在哪里呢?
UNIX 的程序一般都有很多参数,不管你现在用的着用不着,总有人需要某些参数。它们的行为很多都可以用配置文件来改变。比如 GNU bash, 通常缺省的命令行输入方式是 Emacs 方式,但是只要我编辑一个 .inputrc 文件,就可以把它变成 vi 的输入方式,而且我还可以自己绑定键序列到某些操作。我可以用 shopt 来设置它的很多特点,比如是否进行通配符扩展,是否可以把一个变量当作一个目录来cd,是否可以自动纠正某些明显的目录名打字错误 ……
UNIX 程序设计的思想是提供给用户"机制",而不限制用户制定"政策"。这是一个重要的尊重用户的作法。
我们再来看看 Xwindow。Xwindow 是一个出色的设计,它把显示服务器和客户程序分开。一个显示上既可以显示本机上的程序,也可以显示别的机器上的 X 程序,而它们都遵守你的窗口管理器的统一指挥,它们之间可以方便的传送剪贴版数据,各种事件 …… 比如有时我的 XFree86 上会出现四个不同机器上的 XTerm,两个不同机器上的 GVIM,…… 它们统一受本机上的 FVWM 指挥。
Xwindow 程序都具有很多很多命令行参数和 resource 参数。你可以随意的在命令行或者 .Xdefaults 文件设置所有的颜色,字体,尺寸…… 而且如果你用 xrdb 把 .Xdefaults 导入到根窗口,那么其它机器上没有经过配置的同样的程序,显示到你的机器上的时候也会遵守同样的外观规定。
Xwindow 的窗口具有 Property, 也就是一些可以自己定义的共享数据(原子)。正是因为这些 Property 的存在,使得 Xwindow 具有无比强大的生命力。X 的窗口管理器和其它客户程序之间并没有统一的协议,但是后来出现了 ICCCM(客户程序间通信规范),这个规范就是通过 property 定义的。现在又有人定义了一套"扩展的窗口协议(EWM Hints)",使得Xwindow 可以具有某些 Windows 的特征,比如一个工具条程序可以告诉窗口管理器:"这个屏幕下面被我占据了24个像素的空间,你最大化程序的时候不要越过这个界线。"
一个强大的窗口管理程序比如 FVWM,它收到这样的提示时,可以答应工具条程序的这个要求,也可以不答应。一切选择的权力在于谁?当然是用户了!
你想想,是不是有些 Windows 程序常常弹出一个窗口要你选择 "Yes or No"?你不点击它它就不下去。你觉不觉得你的程序在侵犯你的尊严?你是一个人,一个智慧的生物,怎能受到一个程序如此的待遇?
还有就是很多 Windows 程序把人当成傻瓜,而它是"智能程序"。比如,有一个程序就是喜欢把你的每句话第一个字母都变成大写,我不说它是谁了,你遇到的时候就知道了。
如果连"一句话开头一个字母要大写"这么明显的问题都需要程序帮你纠正的话,人脑还用来干什么?况且如果你故意想要不大写的话,那就更麻烦了,我楞是没有从它那一大堆菜单里找到怎么关闭这个愚蠢的选项。
只有符号才能完全操纵计算机。
我们来说说很多初学 Linux 的用户。虽然他们在用 Linux,但是他们打心眼儿里是觉得Windows 的工作方式好,他们希望 Linux 有一天能"像Windows那样"。你说:"我的鼠标一点,我菜单一拉,…… 就可以完成我的操作。" 但是我要告诉你:"Linux 从来没有摹仿 Windows,将来也不会。Linux 从诞生之日起,它的工作方式就比 Windows 的先进。
Linux 属于能勇敢面对符号的人。只有符号才能完全操纵计算机。"
看看优秀的 UNIX 程序,XFree86, FVWM, VIM, Emacs, proftpd, Mutt, wget, tin, ... 没有一个不是用配置文件来设置选项的。为什么这些程序没有方便的菜单可以用来配置?难道它们的设计者就那么低能,连个图形配置界面也写不出来?
当然不是。因为图形界面配置方式的能力是极其有限的,而配置文件和程序语言的表达能力却是无限的。用图形界面配置这些程序的话,如果你想达到配置文件的效果,你需要成百上千的菜单,checkbox, radio button, ... 到时候你根本没办法找到你需要修改的地方了!而各个程序的配置文件的语法都有很多相似之处,一般就是一些命令,设置一些变量,参数,…… 一旦用会了一个,其它的也就容易理解了。如果你用惯了 awk, sed, Perl,你会觉得那才是真正的自动化啊。
鼠标虽然是很好的工具,但是它的表达能力是有限的。你不可能光用鼠标就让电脑完全明白你的意思,它毕竟只有3个按钮。看看我的MetaPost页你就能体会到鼠标的这一弱点。所以我们虽然很喜欢鼠标,但是却不能完全依赖它。
各个小程序的完美配合
这就是UNIX最重要的特点了,它就是UNIX设计的思想。让每个程序只具有一项专门的能力,然后让它们合作。Xwindow也继承了这种好传统。这恐怕就是Windows和其它操作系统望尘末及的地方了。UNIX 程序设计之统一,配合之完美,真使我难以置信!shell, grep, find, awk, sed, make, Perl, Emacs, vi, tin, Mutt, ... 它们是那么的具有一致性!你一旦学会了 sed 的正则表达式,其它程序基本上都能用了。你一旦学会了vi 和 VIM, 你会发现它的操作是那么的有规律性,似乎vi的设计者在几十年前就已经设计好了 VIM 在今天的完美而统一的操作方式!而且vi的操作还体现在 Mutt, tin 等很多程序中。你甚至可以把 bash 设置为 vi 的输入方式来输入命令行,我就是这么做的。一个程序可以调用另外一个程序来得到数据,可以把数据交给它处理后返回来,可以在自己的窗口里"嵌入"另外一个程序。
在 Windows 和其它非 UNIX 操作系统中,这种合作是非常困难的。我曾经在Windows下使用 Perl来进行一些自动工作。但是 Windows 的文件操作,管道是如此的不稳定,程序之间基本不能合作。你别想在 Visual Studio 窗口里面嵌入 UltraEdit 编辑器,你别想用一个 expect 脚本来控制 telnet 到水木清华BBS。
Windows 的程序都是大而全,大而杂,所有的电子邮件程序都需要自己提供编辑器,自己发送和收取邮件,自己显示邮件的附件。每一个BBS程序都提供自己的Virtual Terminal, 自己的通讯代码。每一个 IDE 都自己提供编辑器,编译器,汇编器,调试器。人们为了使用一种新的程序,需要适应所有这些它提供的界面,而不能使用自己喜欢的编辑器的键绑定,菜单组织…… 不能 DIY!
你要知道,最高级的电脑是定做的,自己想要什么什么CPU,什么主板,多少内存,什么硬盘,键盘,鼠标,显示器都是自己选择的。最高级的滑板,自己想要什么牌子的版面,什么牌子的沙,什么桥,什么轮子,什么轴承,也都是自己选的。最高级的古球拍,木板,胶皮,海绵,胶水都是可以自己选择…… 而用 Windows 程序,你得到的是大杂烩,就像你去买"品牌机",只有那么几种配置,而且附带很多你不需要的软件和服务;就像你去买组装好的滑板,你想要大一点的轮子和窄一点的板子,但是你没有这种选择余地!Windows 程序就相当于最廉价,最次的滑板。但是它却会花你更多的钱,因为一旦一个部件坏了,或者你不喜欢了,你不能另外找一个好的换掉它,你必需重新买全套配件!
而 UNIX 和 Xwindow 就是高档的"组装货"。比如我用 Mutt 的时候,我可以用 VIM也可以用 pico 来编辑邮件,我可以用 ImageMagick 也可以用 xv 来显示附件里的图片,我可以用 lynx 把 HTML 附件转成文本嵌入窗口中,我也可以把 HTML 附件交给Mozilla 图形显示。我可以让 GnuPG 帮我把邮件进行数字签名和加密,我也可以用其它 PGP 程序。
我想让 Postfix 而不是 sendmail 帮我发出邮件,我想让 fetchmail 帮我收邮件,转发给 postfix,然后被我自己写的Perl过滤器处理…… 这一切我都可以办到!我可以选择我最喜欢的专门的程序来完成专门的工作,然后把它们结合在一起,我也可以分别得到它们的好处。
学 UNIX 绝对不是浪费时间
有人告诉我:"你看我用 Windows 什么都不用学。而用 Linux,光是安装就花了我一个星期!"
首先,我要告诉你的是,你装 Linux 花了一个星期,不是因为 Linux 不好装,而是因为你已经习惯了 Windows,对 Linux 最初难以理解而已。你想一想你最初安装Windows的时候呢?你花了多少时间搞明白什么是硬盘分区?什么是盘符?什么是目录?你认为Windows 就是那么容易可以学会的吗?虽然你觉得没花时间学,但是你以前在用别人的机器的时候已经耳濡目染,自然就了解了。而且由于你想要 Linux 和 Windows 并存于硬盘上,又增加了安装难度。而且你肯定没有得到有经验的 Linux 用户的帮助,否则他们会在20分种之内帮你搞定。一个星期也太夸张了.
如果一开始用的就是Linux就没有这个问题。你想想如果你没有用过 windows,你肯定会很习惯 /etc, /usr, /usr/local ,... 而不是 C:, D:, E:, ... 是不是?如果你只用过Linux,你第一次用 windows 时恐怕也会问:"/bin 目录哪里去了啊?"
最重要的是,你用惯了的UNIX工具,它们可以伴随你一生,而不会那么容易变化或消失。你可以永远不用再换另外的工具了。除非那个工具比你这个好的太多,而且可以完全模拟你现在的工具。
我们实验室一个60多岁的老师,用vi, cc, make, ...都几十年了,他以前的经验绝对没有白费,而且教会了我们一批又一批的学生。vi 伴随着 UNIX 的最初发行而诞生,直到今天还是世界上头两号编辑器之一!有些人的 FVWM 配置文件已经用了 10 多年,现在完全不经修改还可以用。
看看 Windows 的工具,你从 Borland C++ 换到 VC, 就必需适应新的环境:菜单不同了,颜色不同了,按钮不同了,帮助信息不同了,热键不同了,编译器参数,调试器功能也不同了,…… 那个时候恐怕花要花你很多时间去适应。当你刚刚适应了 VC, 你又要换成VJ, PowerBuilder, C++Builder, ...
很多windows程序员都是这样,开头在dos下用Turbo C, 然后是 Borland C, VC, C++ Builder, ......不断追赶微软的潮流。而且微软的SDK, MFC, .NET …… 什么都在不断变化,不断出问题,又不断的在修改…… Windows 程序员不得不买又厚又重的 Microsoft Press 的书籍,看了才一个月,又过时了。今天你才学会了写 VxD,明天你就必须用WDM 了。你不得不注册 MSDN 才能赶上 Microsoft 的步伐。很多人说:"计算机是贵族的专业。" 这就是微软一手造成的。
这些东西才是没完没了的浪费大家的时间和金钱的。这是是浪费生命!我们为什么不使用从诞生就那么一致和完美的 UNIX?你需要理解先进工具的设计理念。UNIX 的工具就像我们用的汽车,它的离合器,油门,刹车,方向盘,后视镜,永远都在同样的位置。用惯了的话,你对你的汽车的每一个部件都会了如指掌,甚至你自己都可以修车了。这难道不好吗?
有人说:"你说我们需要了解 UNIX,难道你要开车还必须了解汽车的结构吗?" 你去问问开车的司机,哪一个不了解汽车的结构的,那他的驾照就是混来的。你难道想要傻瓜型的"微软牌汽车"吗?我们来看看:
你买的微软牌汽车最开头只有一个座位,每加一个座位你得向汽车公司付钱。车上的防撞气囊不时会冒出来,说是为了你的安全。每开100英里要大修一次,每过一年要换一次引擎。附带的,你还必须换用由微软汽车公司指定的石油公司提供的新型号的机油。你的车出了问题,但是法律规定,你不准私自拆开你的汽车来修理,你必需到微软汽车公司指定的维修点去,需要付相当多的钱才能修好一个小毛病。
最可气的是,你每换一个型号的微软牌汽车,它的刹车和离合器都在不同的位置,你需要重新去考驾驶执照。如果这辆汽车在途中刹车失灵,你受了重伤,你也不能状告微软汽车公司,因为你买来汽车之后必须签一个合同,说"由于微软牌汽车对你和家人造成的一切死伤,微软概不负责。"
怎样完全用 GNU/Linux 工作
说了这么多 Windows 的不好。我还没有告诉你我怎么用 Linux 处理有些必要的事情。半年以前我由于中文老是配置不好,一直是双系统,不时需要重起到 Win2k 来处理汉字。后来我找到了 miniChinput, XSIM 和 SCIM 输入法。这下可以处理汉字了。而且 VIM 和Emacs 对汉字支持越来越好。我的大部分文本是用 VIM 编辑的,包括程序,信件,网页,LaTeX 论文,MetaPost 绘图语言。
我不用 Word 这样的程序写论文,而是用 LaTeX,因为这是世界上效果最好,最方便的论文工具,是大多数学术杂志要求的格式。幻灯都是用 ConTeXt 做的,用起来很简单,而且效果非常漂亮。你可以看看我的TeX介绍。
至于绘图,你可以用很多可视化的工具,比如 xfig,dia。但是对于我来说,任何可视化的工具都不能完成某些任务,我需要一种可以精确描述图形的语言。我找到了MetaPost。它简单又好用,而且效果是世界一流的。我的插图,如果不是图像,都是MetaPost 画出来的。
我曾经抱怨 mozilla-mail 经常突然消失,损坏我好几封快要完成的信件。后来我发现mozilla 的邮件处理程序确实是不稳定的,功能又弱,有经验的 UNIX 用户都不用这样的程序。Mutt 是一个非常稳定可靠的 UNIX 邮件处理程序,而且功能非常强大。我曾经为 Gnome 和 KDE 的不稳定而烦恼。现在我找到了非常强大的 FVWM。KDE,Gnome也能和 FVWM 一起工作。虽然 Gnome 和 KDE 总体不稳定,但是某些部件程序还不错,很多 gtk, Qt 的程序也很不错,它们很多都是可以独立于这些桌面环境运行的。
Linux 有很多强大方便的工作方式是 Windows 没有的,或者有类似的东西,但是很差劲或者用起来不方便。比如 ssh 服务,rsync,cvs,expect ……
结论
我写这么多的目的是什么?我希望喜欢 Linux 的朋友,完全清除微软和 Windows 灌输在你脑子里的谬论,别再相信它们所谓的"新技术",别再追赶 Windows,因为追赶Windows = 倒退。马克思有一个思想很重要,"新生事物并不一定是在最近出现的。"
UNIX,Xwindow, TeX 虽然都比 Windows 先出现,但是它们才是先进生产力的代表。我们要清楚的认识到什么才是真正的现代化,什么才是真正的自动化。
消除学计算机很难的幻觉,勇敢的拿起像 bash, FVWM, TeX, VIM, Emacs, Mutt ……这样强大的程序,勇敢的面对符号。不要再埋怨"Linux 为什么不能像 Windows 那样",不要再浪费时间试用这样那样的程序,不要再忙着升级。你需要理解 UNIX 的工作方式,因为那是大多数科学家的工作方式。Linux 可以成为你的好朋友,你需要认识它,了解它,信任它,才能完全的靠它来高效的工作。当然,在游戏机,手机,掌上电脑里,或者在用电脑来娱乐的时候,用一些"傻瓜软件"还是不错的.
我希望小学,中学的计算机老师能够提高自己的素质,在孩子们的启蒙教育中充分利用Linux 神秘的特点,引起孩子们对数学,对符号的好奇心。诱导他们用计算机来解决世界上的有趣问题,而不要把教学的范围局限于计算机的操作和它自身的问题。
附录: 我用来处理日常事务的 Linux 程序
好了好了。我知道你发现自己应该转向 Linux,你很后悔当初为什么中了微软的邪。但是不要着急。因为这些东西本来只是工具,它们是用来完成你的主要任务的辅助而已。你以前选错了工具,这不要紧。你还是拥有你自己原来的专业技能,那才是最重要的。工具的东西只有慢慢适应转换,不能一蹴而就,否则你会感到非常没意思,甚至放弃。
如果你只想做一个像我这样的普通用户,主要目的是用 Linux 来完成自己的任务,那就可以不用系统管理员或者网络管理员的标准来要求自己,因为当一个系统和网络管理员确实很辛苦。这里我对实验室的网管同学鞠一躬,谢谢你的指点和帮助. 不用把你的机器当成网络服务器,不用开放没有必要的服务,设置好 ssh, ftp 已经足够了。这样会省去了解很多没必要了解的东西的时间。不用过度考虑"安全",因为 Linux 缺省已经很安全了。不过你有兴趣了解更多那也无妨。
下面给出一些推荐使用的可以处理一般事情的程序。至于你的专业上要用到的科学和工程软件比如 Matlab, Mathematica, Maple, HSpice, Design Compiler, …… 还有其它物理上的,化学上的,生物上的 …… 都必然有 Linux 和 UNIX 的版本。当然他们很多不是免费的,不要总是觉得什么都应该免费,自由不等于免费。它们是经过很多人辛勤劳动的产物,是可靠的程序,它们物有所值。
下面列出我常用的一些 Linux 程序。一个列表里可能有很多,那是为了方便你来选择,我列出了比较信得过的。但其实很多只有第一个是我真正在用的,我不喜欢试用程序。我不是一个合格的网络管理员,我的服务器都只设置了我自己需要的功能,那样可以省去我很多麻烦。
Shell: bash。它结合了 csh 和 ksh 的优点,并且有 readline 功能,你可以随意绑定自己的键盘。
编辑器: VIM, Emacs。
程序开发: GCC, make, ld, Scheme48, j2sdk, Perl, Python, Tcl/Tk ...
论文,幻灯工具:LaTeX, ConTeXt
绘图工具:MetaPost。这个语言太强了,以至于我只用它了。你不熟悉的话可以用xfig, dia 来画一些流程图之类的图片。
图像处理:ImageMagick。其中的 import 程序可以屏幕抓图,convert 程序可以转换图像格式,display 可以显示图片和简单编辑(缩放,换质量,转格式,简单绘图,简单虑镜)。通常我就这么点需要。如果你要更强大的图像工具可以用 Gimp, 它几乎和Photoshop差不多。
自动管理工具:make。我可以用make来自动编译程序,自动编译文档,自动更新插图…… 全自动,而且不会重复劳动。
数值计算程序:SciLab。这个程序基本上可以代替 Matlab。
代数计算程序:MAXIMA。这个程序基于世界上最老的计算机代数系统之一: 由美国能源部(DOE)发行的 MIT Macsyma 系统。它是用 Common Lisp 实现的。很多现在的符号计算程序比如 Maple 都从 MAXIMA 身上学到很多东西。它现在经过 DOE 批准以GPL发行,永远是一个自由软件。
加密程序:GnuPG。我的 PGP 密钥就是它搞出来的。
打包,压缩程序。什么都有: tar, gzip, bzip2, zip, rar, ...
虚拟光驱程序。Linux 不需要虚拟光驱程序,直接 mount 就行了。
ftp 服务器:proftpd, vsftpd。proftpd 功能很强,但是我只用了最简单的一种设置。
WWW 服务器:apache。(我一般没有开)
ftp 客户程序:lftp,ncftp。它们都是文本方式操作的,但是比起图形界面的方便的多。比如 lftp 几乎具有 bash 的所有方便功能,Tab 补全,bookmark, queue, 后台下载,镜像…… Linux 也有图形界面的 ftp 客户程序,但是大多不稳定,有很多问题。这就是很多人抱怨 Linux 不如 Windows 的一个小原因。还有很多人用 Wine 模拟 Windows 的leapftp,其实 lftp 比 leapftp 好很多,你需要的只是适应一下。
自动下载工具:wget。它非常稳定,有一次我下载一个程序,用 IE 和 Mozilla 下载回来的文件都是坏的,最后还是 wget 可靠的传输了数据。用它甚至可以镜像整个网站,比起WebZip 这样的 Windows 程序强多了,而且不会因为你不付钱就在下载回来的网页里强制插入广告。
虚拟终端:rxvt, xterm, gnome-terminal, mlterm, ...
X server: XFree86
窗口管理器:FVWM。编译加入了 libstroke。
中文输入:XSIM。被我修改过以适应 FVWM 的需要。另外推荐你还可以用 SCIM。
email 处理:Mutt + Postfix + fetchmail
看 PDF, PS, DJVU 文件:Acrobat Reader, xpdf, GhostScript, gv, djvu工具包和netscape 插件。
看CAJ文档。我从来不看CAJ之类的文档,如果找不到PDF或PS,直接去图书馆借最好。
看网页:Mozilla, Phoenix, lynx。Mozilla-Xft 的显示效果比IE 好很多。
英汉字典:IBM智能词典,星际译王。
编辑网页:我用VIM 直接写 HTML。你如果想要图形方式的可以用其它的比如screem, BlueFish。
登录其它 UNIX, Linux 机器:openSSH, telnet。 我喜欢用 openSSH 把其它机器的X 程序通过 ssh 加密的隧道传到我机器上显示。
登录 Windows2000 server 的 display service: rdesktop,...我有一天试了一下,不错。后来就没有用过了。
同步程序:rsync。我用 rsync 通过 ssh 来跟某些机器同步数据,或者做自己机器上不同目录间的同步。
上BBS:rxvt(或任何一种终端) + telnet + chatbot(helloooo 机器人的程序)
QQ, ICQ: 我没有 QQ 或 ICQ。不过你可以用 Gaim, 它同时支持 QQ, ICQ 和很多其它的即时通信方式。ICQ 用户也可以用 Licq。
放录像:MPlayer, RealPlayer。MPlayer 太好了,直接就可以放 VCD, DVD, divx, wma, wmv ... 用 Windows 的同学都很羡慕我,说 Windows 要放这个需要大堆插件。rm 最好还是用 realplayer 放,它也是免费的。
放音乐: xmms(mp3,ogg都可以), mpg321(放mp3), ogg123(放ogg)。mpg321 不如xmms管理音乐文件那么方便,但是有时我还是用 mpg321 放 mp3 作为背景音乐,因为懒得开一个xmms窗口:-)
游戏:我觉得 KDE 的那个 ksokoban(推箱子),很好玩 :-)
看 Word 文档。请 Word 用户把文档全部转为 PDF 或 PS 再给我,文档里没有特殊的格式干脆就用文本吧,何必那么麻烦。以前很奇怪的是,通知里本来没有什么特殊的格式居然还要发doc附件的email。现在好了,我们系发通知都用文本,PDF,甚至图片了。
其它程序:还有很多我需要用而你不一定用得着的。比如,Doctor Scheme,
Scheme48, Scsh, kawa...这些程序只有 Doctor Scheme 有Windows版本。还有很多幕后工作但是你一般不察觉的:xinetd, telnetd, sshd, crond, atd, lpd, ... 他们都比 Windows 的对应者强的多,或者根本没有对应者。
附:
写给支持和反对《完全用Linux工作》的人们
作者:王垠
在一阵阵唾骂和欢呼声中,《完全用linux工作》被转载到了天涯海角。很多人支持我,也有很多人唾骂我。我不知道它是怎样流传到那么多地方,其实我不知道它都被转到哪里去了…… 我知道现在这篇文章又会罗里罗索写很长(因为我计划写这样一个东西已经很久了,坐在Emacs前面总是有一种巫师在炼丹的感觉……),所以先提出中心思想吧。中心思想就是:
我只是一个傻瓜。看《完全用Linux 工作》的时候请用你们自己的判断力。
几乎所有人都承认,那篇文章很偏激。当时的情况是这样,我用 Linux 的时候被一个同学鄙视了,说:"你怎么用像 DOS 一样落后的东西,真土!看我漂亮的 Win2000..." 这跟当面嘲笑别人老婆或者妈妈有什么区别?我义愤填膺啊,就几乎跟他吵起来。然后就写出了这篇文章放在主页上,叫了几个人来看。接着我珍爱的 TeX 又受到众人鄙视,于是我又写了一篇文章打击 Word,然后把 TeX 捧上了天。道理很简单,鄙视我喜欢的东西的人就是敌人 --邪教徒或者恐怖分子--他支持的我就反对,他反对的我就支持。为了使人信服,举例必用大科学家,世界一流大学,一流实验室的名号,虽然我不跟其中任何一种沾边。还好那时候我还不认识上帝,要不就打他的名字了。论据不管是实际经历还是自己推测的,先写上去再说。扬眉吐气啊!隔壁微软研究院的哥们居然都被我打动了,开始写 Linux 程序,学用 LaTeX 和 Emacs。不过几天之后我就把它删掉了,因为我自己都感觉到偏激。
于是就没管那篇文章了。可是没想到它竟然已经被转载到那么多地方,似乎引起不小的波澜。有段时间每天都收到十几封email,国内的,国外的,问技术问题的,夸我的,骂我的,讲道理的,鄙视我的,想交朋友的,语重心长的,号称要删掉机器上的 Windows 的…… 我的主页居然也占据了"王垠"在 Google 上的首选位置,把那个日本的什么王公贵族"李王垠殿下"都挤下去了。大家似乎都知道我天花乱坠的本事了,有人就想找我写文章向别人推荐商业软件,我很后悔没有趁机狠狠赚一笔。走到图书馆,亮出借书证,管理员张大了嘴说:"哇!你就是那个 Linux 牛人啊!",也不知道他是褒是贬。甚至有人把他的 BBS 昵称都改成了"坚决拥护精神领袖花生" (花生是我的外号)。为此还骗到了好几顿报告?quot;报告"是清华专用动词,意思是请客吃饭)。虽然我觉得自己身上没有什么值得自豪的东西,但是又有点为自己兴风作浪的本事感到惊讶。虽然我一再告诫自己要谦虚,但是不由的有一种毛泽东,甘地,甚至摩西的感觉。我更加体会到"网络上没有人知道你是一头猪"的真理性。其实,不但网络上没有人知道我是一头猪,实际生活中也没有人知道,其实我是一头笨猪。
这么长的时间之后,还有人写信给我说"深受鼓舞","提壶灌顶","对不起我还在用 Windows 给你写信","真想删掉Windows 啊" …… 我很好奇,我的文章真的有那么大的威力?我再看这篇文章,觉得有点惨不忍睹,看了开头就不忍心再看下去。我告诉同学我很后悔写了一篇这么偏激的文章,可是他?quot;徼枉必须过正,你没有错",所以我也搞不清楚自己这样写对不对,这样自责对不对。就像我从来不敢看自己照片,却有时被人称为帅哥,就让我无法判断自己是否帅一样。所以现在我就开始怀疑我自己是否真是一头笨猪。也许多年以后,我会正确的评价我的想法。就像我现在觉得我15岁的照片挺养眼一样,也许我会发现自己其实是一头聪明猪?
写这篇文章不是为了让自己免得被骂,也不是为了显示高深的猪的哲理。只是因为我深深的感到人应该有自己的判断力,不要简单的接受别人说的 DO's 和 DONT's。怀疑一切,同时又敞开心扉去了解一切。
看过《完全用Linux工作》的朋友,请仔细检查里面的 DO's 和 DONT's。
GNU/Linux 不是每个人都想用的。如果你只需要处理一般的事务,打游戏,那么你不需要了解下面这些了。
我不是一个狂热的自由软件份子,虽然我很喜欢自由软件。这篇文章也不是用来推行自由软件运动的,虽然我觉得自由软件运动是非常好的。
这篇文章也不是用来比较 Linux 和 Windows 内核效率,文件系统,网络服务的。我现在是作为一个用户而不是一个开发者来说话的,我们的讨论是基于操作,应用层面的。是为了告诉大学里还不了解,或者不理解 UNIX 的科学工作者和大学生,UNIX 比 Windows 更适合用于科学研究工作,请大家理解 UNIX 的工作方式,不要用 Windows 的标准来要求 Linux,而要用一个科学工作者的标准来要求自己,用UNIX 的思想来武装自己。
我显然是反对在大学,特别是理工科专业推广 Windows 的。我也反对在对"娃娃"们的计算机启蒙教育中使用 Windows。因为 Windows 不论从技术上,经济上,思想风格上都是与我们培养高科技人才的目标格格不入的。Windows 的流行属于历史遗留问题,爷爷一级的人当然已经不可救药,但是我们不应该让下一代继续走上歧途。
UNIX 不是计算机专家的专利
当我建议一些非计算机专业的人用 Linux 的时候,很多人说:"UNIX 是计算机系的人用的,我们不能理解。" "UNIX 是男孩用的,我们女孩不用。"
但是其实世界上的大多数科学家和工程师几乎用的都是 UNIX 作为他们的电脑工具。就因为它简单,可靠,稳定,强大,有趣。甚至很多时候 UNIX 就是唯一的选择。
你说:"我们都会用 UNIX 的话,你们计算机专业的人还用来干什么?" 很容幸的告诉你,计算机专业的有一部分人就是专门为你们提供这样强大而方便的计算机工具的。如果他们制造的工具只有自己会用的话,那这个工具还有什么用?
理解 GNU/Linux 不要用 Windows 的标准来要求 Linux。
由于GNU/Linux这个词太长,下面如果没有特别指明,"Linux"就是指GNU/Linux"。
在这个年代,恐怕没有人需要我来介绍 Linux 是什么了吧?如果你觉得"Linux 只不过是跟 DOS 差不多的东西",那请问问你旁边的 Linux 用户,Linux 到底是什么?
那为什么我还要写一篇这样的文章?因为,我发现还有很多人不不理解 Linux 和 UNIX,虽然他们也在用它,但是他们有时会问:"为什么 Linux 不能像 Windows 那样 ……?","怎么Redhat Linux不能 mount NTFS 分区!","Linux 下用什么整理硬盘?","什么时候OpenOffice才能完全兼容Word文件啊?","现在还有什么Windows能干的事情Linux干不了的?"……
他们有40G的硬盘,却只为 Linux 分配了2G空间,有时还抱怨"这个东西怎么占这么多硬盘!" 似乎 Windows 该占用大部分硬盘。他们把重要的数据装在Windows的分区,似乎信不过Linux。他们总是到处寻找新奇的,好看的GUI程序,对命令行的东西一概不屑一顾。他们对Drag&Drop,菜单配置,自动升级非常感兴趣。他们如果找到一个很像 Windows 程序的 Linux 程序,一定会很高兴的说:"哈哈!Linux 也能……了!"如果Linux在某种测试中胜过Windows,他们会高兴得跳起来。他们没有办法用Linux 解决问题的时候,甚至用Wine来运行Windows程序。有时实在没办法,只好重起到Windows,或者干脆省得麻烦,在 Windows 下装一个 VMWare 虚拟一个 Linux 玩。
你如果出现了上面的情况,说明你的思想受到了 Windows 的某种潜移默化的影响和误导。你没有能够从本质上理解存在于 Linux 身上的 UNIX 思想。你支持 Linux,你喜欢 Linux,你能从中感觉到快乐,这非常好。你现在只需要明白的是:Linux 从来就不是一个玩具,它是天才UNIX的后代。UNIX 是自晶体管发明以来最伟大的发明,它从诞生那一天开始就比 Windows 的设计出色。
你要体会什么叫做"设计",一个糟糕的设计并不是到后来缝缝补补就可以变好的,而一个出色的设计,不但可以以不变应万变,而且可以影响到后来者。一个出色的设计配上一个出色的实现,那就是非常出色的发明。Linux 就是这样的一个出色的发明。Linux 并不需要追赶 Windows,也不需要打垮微软。它的最终目标是改变整个计算机世界,还人们自由,给人们乐趣和方便。
Unix 是简单的,你不需要成为一个天才也能理解这种简单。
UNIX的设计者 Dennis Ritchie 说:"Unix is simple. It just takes a genius to understand its simplicity." 但是我不这么认为,因为我不是一个天才,但是我却勇敢的把 Windows 完全删除掉,遇到不明白的事情的时候努力用 UNIX 的方式去解决,而不是寻求 Windows 的帮助。现在我体会到了 UNIX 的思想和好处,我可以用比 Windows 高效几倍的效率工作。因为我相信这样的信念:"Windows 能办到的事 Linux 一定能办到,而且办的更好。"
这小节开头的话应该改成:"Unix 是简单的,你不需要成为一个天才或是计算机专家。但是在这个冲斥着 Windows 错误观念的世界,你需要信念和勇气才能理解它的简单。" 我下面就告诉你一些我理解到的东西。首先,你要知道的是微软在国际科学领域是根本没有地位的。
微软的地位
微软的名声在欧洲和美国的大学里,特别是在计算机系里之坏,大家可能有所耳闻。我认识的 MIT,Stanford 的教授,贝尔实验室的专家,甚至一个欧洲小国的高中计算机老师都绝口不提微软的名字。在他们眼里,微软只是一个没有真技术,专靠在落后国家商业宣传和垄断经营的小公司。这个"小"并不是说它人少,钱少,而是说它先进技术少。
我上次和王益合作写了一个算法演示程序,那个算法是贝尔实验室一位科学家Steven Fortune很天才的发明,为了程序能够被身边大多数人使用,我们选择了 VC+MFC 作为平台。我在分析算法时还得到 Fortune 很热情的鼓励,寄给我一份资料,还多次回信耐心的给我讲解了很多细节。但是程序完成之后,我把样品发给 Fortune,他回信说:"对不起。我机器上没有 MFC。" 话说的很客气,但是我已经感觉到了他对 Windows的不屑。然后我把 MFC 静态编译进程序再发给他,他就没有再回信了。他显然不是瞧不起我,而是确实有难处。
你能感觉到这位科学家对微软和 Windows 是什么态度了吧?不是反感,而是他心里根本没有 Windows 这个东西!微软在高科技领域没有发展,那么它怎么生存呢?到发展中国家去发展一下,他们的人民还对电脑一无所知,我说不定甚至可以打入大学的计算机系呢。我送他们软件,我捐钱盖大楼,我出钱找图灵奖获得者来演讲,让他们觉得我们都是科学家!
好了,现在全国的大学包括清华,几乎所有人机器必装盗版 Win2000,Office XP,学校的选课系统是非IE不能正确浏览,论文用 Word 编辑,演示用ppt做,email 的通知附件是 doc 文件,你不用 Word 打不开,连 863 项目都用 VC 写程序了。我很久以前就看到一份报纸说,"微软为什么不严厉打击盗版?" 这篇文章说,微软非但不打击中国的盗版行为,而且有放任之趋势。放长线吊大鱼,"以后我要你们加倍的来还我!" 确实如此,它的目的快实现了。
Windows 笼罩下的中国计算机教育
说句丢脸的话,比尔盖茨很久以前是我的偶像…… //blush
在中国,比尔盖茨被很多人奉为神圣,"少年电脑天才",甚至有的人提到他的名字就做出"抱拳对天"的姿势。很多人谈到微软的"新技术","高科技" 都是眉飞色舞。各种"VC编程圣经","深入了解 Visual C++"之类的书,在开头几页都会出现非常肉麻的字眼,"在那团团的混沌中,一个开天辟地的精灵,Windows 1.0,诞生了……"
微软的软件被这么多人盗用,那么人们是怎样使用这些盗版程序的呢?先看看电脑培训班,教的都是一些 DOS 命令,打字,Windows 基本操作,Word 文档处理,PowerPoint,高级班可能有 Excel,Access…… 参加各种微软认证考试,MCSE,MSDE 的人络绎不绝。考试辅导班都贴出了"280元,考过为止"之类的字样。考试参考资料更是昂贵,有些电脑书店整整两书架都是"Microsoft Press"的东西。我有个同学参加认证考试,每门考试都要200多元。而且你一次考不过可以再考,又要交钱。他后来还津津乐道跟我说,看我,花了XXXX(一个四位数)元考过了微软认证,得到一张比尔盖茨亲笔签名的证书和价值6000元的 Windows XP 内部发行版。
"电脑要从娃娃抓起",我们再来看看娃娃们学的是什么。大部分家长给孩子买了电脑之后,他们首先就会装一个盗版的 Windows,然后买来盗版的游戏开始玩。如果哪个孩子会用 Delphi 编程序,那可不得了。报社记者,电视台争相报导,说,某某学校的初中生某某,在别人都还在玩电脑游戏这种"初级阶段"的时候就已经用 Delphi 写程序了。镜头还瞄准了他显示器上面的像框中的比尔盖茨头像!
我刚进入大学计算机系时还不懂得什么是操作系统,因为我以前只用过"中华学习机"。看到新入学的同学们各个谈论的都是 "Windows 95","VC"…… 我简直觉得我落后了好几十年一样,整个一土人,根本跟他们答不上话。好不容易找到一个比较熟的同学问了一下:"你们天天谈论的瘟95是什么啊?"答:"win95就是一个操作系统,跟DOS是一类。""朵死是什么?" "你连DOS都不知道是什么?别在计算机系混了。" 学校上课当然不讲VC编程之类的东西,但是上 Pascal 的老师有一次就说:"嗨,我们学校真是落后。现在别人都用 C, C++,甚至 VC 了,我们还在讲 Pascal。不知道什么时候才能有VC课啊。你们出去也是要用VC的,只好自学了。" 于是,有些同学很多时候上课都捧着一本很重的"Windows 编程大全"之类的书,根本没有听课。吃饭时就念念有词的跟我说,"代码的优化是无止境的","匈牙利命名法真是伟大的发明" …… 这就是中国很多大学计算机系的情况。
感觉到无知了?这不是偶然的,而是微软长久以来埋下的伏笔。它要让无知的大家都把它奉为神圣,它要让支持UNIX,Xwindow的人一旦说 UNIX 好,Xwindow 好的时候,都被一群人围着说教:"这个 Windows 也能做到","你对 Windows 有偏见","微软才是主流啊","你敢瞧不起 win2k?",".NET 就是世界潮流","微软的毕竟是新技术","有钱就是有技术"…… 甚至在一番论战比较后败下来还是要说:"Windows 性能差点,但是易用性强","Windows 是老百姓用的,要求别那么?quot;,"微软那么有钱,以后想超过 UNIX 还不容易吗?"……
发达国家的计算机教育
我前段时间在 USENET 发文问有关 Scheme 语言的问题时,认识了一位丹麦人。他解决了我所有的问题,并且建议我阅读一些很"深奥"的有关程序语言语法,文法的书,他告诉我很多网站可以学习 LISP,Scheme,人工智能,算法。他叫我看 Jonathan Rees 的论文 "Syntactic Closures"。他还打包给我寄过来一份 MIT 的 "How to Design Programs"。他说他在自己的 PC 机上装的是 Linux,他用 Emacs 编辑,运行Scheme 程序。他对 Emacs 的了解和爱好真是使人惊讶。他大学本科毕业时做的毕业设计是一个 Scheme 解释器。这对于我来说是望尘末及了。
他是那么的不厌其烦,我的每一个问题他都详细的回答。我有时都觉得过于详细了,怎么这么耐心啊?我觉得他似乎是我的高中老师。他是什么样的人呢?我好奇的打听了他的情况。原来,他是丹麦一所普通高中的计算机老师。
他说他在高中里讲授程序设计和算法,计算机语言文法。他说用 Scheme,他的学生不用再为内存泄漏等程序语言本身的问题而烦恼,而专注于问题和算法本身。有利于培养学生解决问题的能力,特别是用计算机解决数学问题的能力。
天哪!为什么欧洲出现那么多数学家,几何学家?你看看别人重视的是什么!我们的计算机教育如果继续这样下去,只会沿着弯路越走越远!
微软和它的朋友们的如意算盘
下面来看看微软的收入是怎么来的。首先,Windows 98系列操作系统,一个就是 100多美元,每次升级又是几乎同样的价钱。Windows NT 还要贵几倍,而且有用户数目限制,5个用户的,10个用户的…… 以后如果要增加用户数目还要按比例付钱。
花了如此多钱买来的操作系统就能用了吗?它竟然连压缩程序都没有提供!你装上Windows 之后一般第一件事就是去下载一个 WinZip 吧,"只要 29 美元"。Windows会中病毒啊,马上花 70 美元买一个 Norton AntiVirus 吧。还有黑客呢?再买一个Norton Internet Security 好了,100 美元。系统需要优化,磁盘需要整理,买一个Norton System Works 是你最佳的解决方案,100美元。
可是你现在还是不能干正事啊!你想要一个 Word, PowerPoint?那就买一套 Office XP 吧,一起买便宜些,$459.90。
那些程序不会用啊!那些菜单怎么设置,到底有什么功能啊?看"帮助"也学不会。买本书看看吧,我推荐"Special Edition Using Microsoft Office XP",不贵,$27.99。这本书里面大部分是屏幕抓图,还是买一本旧的比较划算,$17.85。
你如果只是当个秘书,上面的差不多还凑合了。可是你有更高的追求,你想成为 Windows程序员。首先买一个 Visual Studio.NET 吧,要不然怎么编译程序。$494.95。
为了紧跟微软动向,世界潮流,不能不注册个 MSDN 什么的吧?这个贵一点,不过物有所值啊,$2,799。
嗯,你现在已经是上层阶级,白领人士了。你现在可以像这样"自由"的,"安全"的生活了。
为什么要反对使用 Windows
很多人都说不应该完全否定 Window,Windows 也有它的长处。不应该骂微软。
对。Windows 容易操作,适合普通用户。如果微软把它自己定位在 P&G,Philips 那样的地位,能够给我们的百姓提供周到的,完善的,价廉物美的服务。那我肯定是很喜欢它的。但是从上面的种种情况说明,微软是一个野心极大的国际垄断组织!它的产品没有一个是不出问题的:Windows 不稳定,容易中病毒,而微软不为大家免费提供杀毒软件。我就是要让你们花钱买我的朋友 Symantec 的杀毒软件,谁叫你们已经上了我的贼船?这叫什么售后服务啊!
你买来微软的程序,安装的时候一般都有一个协议,说:"由于微软的程序造成你的数据损坏或丢失,微软概不负责。" 我想很多人肯定觉得这个不合理,不想按那个 "I accept"。但是你的软件买都买来了,钱都花了,现在一按 "I decline",安装程序马上就会退出。你只好被迫点击了 "I accept"!这不是不平等条约吗?
我已经目睹了好几个朋友的文档被 Microsoft Word 损坏,有的是编辑了十多天的30多页的论文,有的是费了很大工夫做出来的个人简历,那个朋友为此失去了到自己向往的P&G 工作的机会。就在他要投简历的前一个晚上,就在那一瞬间…… 不知道他痛哭的时候有没有想起要投诉微软,可是谁叫我们用的都是盗版呢,况且你还点击了 "I accept"。
微软仗势已经占有大部分PC市场,制定不符合国际标准的"微软的标准",以不合理的方式压制其它公司的软件,这个问题已经在美国司法部闹了很久了。他甚至在 Windows系列操作系统中放置能够通过网络泄漏用户信息的代码,以至于 Windows 刚进入澳大利亚时被澳大利亚政府禁止使用。
有些人说:"微软毕竟开创了一个历史,造就了今天的 IT 行业。" 但是,如果没有微软,我们今天早就用上非常稳定,非常可靠,非常方便,非常"傻瓜"的软件了!微软是阻挡信息技术发展的罪魁祸首。
微软的程序的工作方式(注意,我只是说操作方式,病毒的事情另外算)确实适合于一般家庭,上上网,发发邮件,打打游戏都不错。可是微软却要把自己包装成什么"高科技"企业,要在世界各地设置"研究院",在大学计算机系赠送不适合用于科研的 Windows产品,甚至出钱请图灵奖得主来中国畅谈"二十一世纪的计算",还在大会上宣传自己的 .NET 技术。非要把别人认为自己是科学的,自己是领导世界高科技的。但是呢?它什么高科技也没有。欧洲,美国,哪一个关键部门在用微软的东西?NASA? DOE? CERN?你仔细想一想,微软的程序对人类到底有什么重大作用?
什么是 Windows 能干而 Linux 干不了的事情?---
"Windows 能干而 Linux 干不了的事情,那就是不需要干的事情。"
有个朋友看我半年没有用 Windows,有时就会问我:"你只用 Linux,有没有发现有些Windows 能处理的事情 Linux 干不了?"---
我回答说:"Windows 能干而 Linux 干不了的事情,那就是不需要干的事情。"
Windows 能做的有益的事情 Linux 都能做---
Windows 下的某些功能确实是我们需要的,那么 Linux 的开发者们和用户也需要这种功能,他们就会去实现这种功能,而且比 Windows 的方式好得多。由于大多数科学家,工程师用的都是 Linux 或者某种商业 UNIX, 所以几乎所有商业的科学工程程序,比如Matlab, Mathematica, AutoCAD, Candence的,Synopsys的,Avant! 的……全都是先有UNIX 的版本(包括Linux),然后再考虑移植给 Windows,甚至根本不移植给Windows,因为 Windows 的机器一般没有足够的能力运行这样的程序。你不要以为只有 Windows 才有 PSpice, UNIX 的 HSpice 要好得多,而且可以运行在大型主机上。当然它们不是免费的,但是它们值那个价钱。
但是 Windows 下有些东西在 Linux 下没有很相似的,或者你找到很多类似的,但是它们每一个比起 Windows 的那个程序都要差很多,那么原因有两种可能性:
有一个完全类似的程序,但是由于它乍一看不漂亮,被你忽略了。而其它程序虽然看起来很漂亮,但是它们是一些初学编程的人写的。现在由于 Gtk, Qt 的诞生,Linux 下开发图形界面程序极其简单,很多初中生甚至小学生都可以随手编出一些漂亮不中用的程序。如果你整天寻找这样的程序挑来挑去,永远也找不到你满意的。当然也有一流的程序用 Gtk 和 Qt,比如 GVIM 就可以用 Gtk 作为图形界面,我还知道 Synopsys 一些程序用了 Qt。
我曾经也犯过这样的错误,从外表区分一切。结果优秀的 FVWM, lftp, Mutt, wget 都被我忽略过。当我找回它们的时候,我是那么的羞愧不已,它们现在都是我的朋友我第一次看到 FVWM 觉得它只不过是一个有很厚很难看边框的东西。可是现在,我的同学看到 FVWM 都说:"哇!真漂亮。"
有另一种完全不同的方式可以达到相同的目的,甚至更好。
很多人很关心 Open Office, Star Office, AbiWord, ... 他们多么盼望有一天某一个Linux 程序能够完全兼容的打开一个复杂的 doc 文档。但是你永远也不可能有那一天。为什么呢?因为微软为了占有市场,必定不会让其它系统的程序能够完全兼容它的文档格式。它一定会不断变化 doc 文档的内部结构,隐藏一些秘密,让其它公司的程序打开 doc 文档时总是有某种问题,从而你必需购买 Microsoft Office 和 Windows。
你应该想一下,那么多的高智商的大学教授,科学家,学生,他们用的都是 Linux 或者其它类型的 UNIX,他们没有 Word 可用,怎么处理文档呢?这么多年没有一个像Open Office 的程序出现,难道大家没有办法写文档吗?
显然不是这样。你看看那些高水平的学术杂志,论文,那些大学教授的网页,那些漂亮的幻灯片,它们是什么做的?原来 UNIX 用户早就有非常方便的 troff, LaTeX, SGML等东西可以处理文档,而且它们比起 Word 都要高明的多。Word 显然被这些大拿忽略了,以至于很久以来没有人想在 Linux 下开发一个类似 Word 的程序,除非某些公司想抢微软的饭碗。
很多人留着 Windows 在硬盘上的原因无非是为了用 Word 和 PowerPoint。我见过一个教授,他的 Windows 笔记本电脑上除了 PowerPoint 什么都没有。有一天演示的时候,他指着堆乱字符说:"对不起,这是一个公式……怎么每次都是这样……" 其实有比PowerPoint 好几百倍的东西可以制造幻灯片,你可以用最简单的方法制造世界一流效果的论文和幻灯片。你待会儿可以看看我的TeX网页,你就会知道为什么我可以完全离开 Windows。
Windows 能做的那些没用的事情 Linux 永远做不好
电脑游戏
有些人说 Linux 下不能玩 Windows 下所能得到的所有游戏。的确,Linux 下虽然也有少量的游戏,比如 Quake。但是它没有 Counter Strike, 没有 Star Craft, ……
并不是说电脑游戏不该玩,但是应该适可而止。电脑是用来处理事务,帮助你学习,解决问题的工具,而不是一个玩具!整天沉迷于电脑游戏中,而不出去感觉外面的世界,你会变得越来越冷酷,越来越缺乏人情味。你与真实的世界越来越远。
你可以在 CS 里杀人,你可以在 Tomb Raider 里探险,你甚至可以在 Tony Hawk's Pro Skaters 里滑板…… 但是 It's not real!你虽然有很高的"反恐技巧",但是遇到歹徒的时候,你是那么的怯懦;你虽然控制 Laura 伸手敏捷,但是你打篮球的时候怎么总是被人断球?你虽然可以轻易的在 THPS 里作出一个 "360 kickflip to hangten grind to fakie",但是你踩在自己的滑板上的时候还不会 ollie!
说回来,如果你偶尔玩一下电脑游戏未尝不可。但是世界上有远比 Windows + PC 更好的游戏方式。Sony 的 PlayStation2, SEGA 的 DreamCast, Nintendo 的 N64,Namco的街机……每一个都比 Windows 游戏精彩,每一个都有如此高的3D性能,以至于Pentium4, Itanium + GForce4 都无法与它们比美!
Linux 的用户们都是关心解决世界的关键问题的份子,他们哪里有时间用自己的机器来玩游戏啊?他们每天用Linux高效的做完自己的工作就到阳光下享受自然去了。要玩游戏也是玩一些类似推箱子,贪吃蛇之类的智力小游戏。所以,你知道为什么 Linux 几乎没有游戏了吧?
"整理硬盘,优化系统"
这是一个非常有意思的话题,仅次于有关"病毒"的话题。相信很多 Windows 用户都有整理硬盘的经历。在很多 Windows 用户眼里,"硬盘用久了,会出现碎片,速度会减慢,需要一个程序来整理,整理硬盘的时候不要做其它工作",这好像是天经地义的事情。
我也曾经津津有味的看着 Norton Defrag 一点一点的把我的硬盘排序,调整,用图形的方式显示出来,然后报告?quot;100% 没有碎片。你的硬盘现在已经达到最佳状态。" 我现在才发觉我那时是多么的幼稚。
Linux 和 UNIX 用户似乎从来没有"整理硬盘"这种说法呢?你觉得很奇怪吗?如果你觉得很奇怪,那说明你的思想在某种程度上被微软的垃圾程序禁锢了。你需要明白,UNIX 的大型主机很多必须是一天24小时,一年365又1/4天不停运转的,要是每个星期都要整理一次硬盘,在整理的时候几乎不能干任何事情,那是绝对行不通的!
Linux 机器根本不用整理硬盘,这就是为什么没有看到过 Linux 用户整理硬盘。Linux 的文件系统是比 Windows 的 FAT, FAT32, NTFS 高明得多的文件系统,它们不但可以对文件设置权限,实施完全的保护,而且可以"越用越整齐","越用碎片越少"!你应该把文件大部分放在 Linux 的分区,而不是 Windows 分区,因为它比 Windows分区可靠得多。
还有更滑稽的事情就是有很多"Norton System Doctor","Windows 优化大师","超级兔仔注册表魔法" 之类的程序存在,而且价格昂贵。似乎一个操作系统本来应该有很多问题,需要别的厂商做程序来"优化"它,而且为了得到优化,你需要付钱!这些问题 Linux 根本就没有,所以不需要什么优化。Linux 内核本身就是高度优化的。
IDE
有些人在抱怨为什么 Linux 没有一个良好的 IDE 开发环境。Linux 现在已经有一些IDE 了,但是总是有很多问题。你是不是正在寻找,正在期望 Linux 某一天可以有一个VC那样的开发环境?你有没有发现你正在进入微软给你设下的怪圈?你为什么一定要用 IDE?你说:"IDE 开发迅速,调试方便,适合大型程序……" 那说明微软的程序在你脑子里已经比较根深蒂固,你需要好好清醒一下了,看看我来告诉你。
高明的 UNIX 程序员不用 IDE,IDE 从来就是给初级 Windows 程序员用的。
你看看大型的 UNIX 程序,包括 Linux 内核,各种网络服务程序,Xwindow 程序在内,哪一个是 IDE 搞出来的?我们实验室的 EDA 程序也没有一个是 IDE 弄的,我还知道Candence, Synopsys,Mentor 的高性能的图形界面 EDA 程序也都不是 IDE 写的。你信不信,微软的人在写 Windows 本身的时候也根本不用 IDE。微软内部程序员最喜欢的编辑器其实是 VIM,用 VIM 的微软程序员上次向乌干达的可怜儿童捐助了1000多美元,这是值得称赞的。
有一次某杂志采访一些出名的 Linux 内核程序员,包括 Linus 在内,没有一个人用IDE,有的人用 VIM,有的用 Emacs,只有 Linus 说"GNU Emacs is evil",但是其实他用的是一种跟 Emacs 有同样键绑定功能的 MicroEmacs。大家都是用编辑器编辑了程序文件,然后用 make 这样的自动工具调用 gcc 编译器完成编译工作的。甚至高级的 Windows 程序员也不用 IDE,他们可以从命令行调用 cl,nmake 来编译自己的程序。虽然这样的 Windows 程序员很少,但是他们却是最了解 Windows,最高明的Windows 程序员。
为什么 UNIX 程序员不用 IDE?明白了这个道理你就能体会到 UNIX 的设计思想了。首先,一个 IDE 集成了编辑器,编译器,汇编器,调试器,跟踪器…… 这个编辑器功能肯定比不上 VIM 或 Emacs,编译器比不上 GCC,汇编器比不上 as,调试器比不上 gdb,ddd, 跟踪器比不上 strace, ltrace, truss。你得到的是一套整合的低能的程序。如果你对调试器的功能不满意,你只好换用另外一套 IDE,但是这套 IDE 的热键,菜单,编辑器功能,按钮…… 跟原来那个有很大不同。你不得不花很多时间来熟悉新的环境,而不能保持原来的某些东西。
而在 UNIX 下就不一样了。你可以用你最喜欢的 VIM 编辑程序,你在 VIM 里可以调用GNU make,make 可以调用 gcc, ld, ... make 的出错信息可以被 VIM 捕获,VIM 能帮你在源程序里定位。你如果喜欢 icc, 你可以让 make 用 icc 而不是 gcc。你如果觉得 gdb 跟踪变量时比较麻烦,你可以用 ddd 来显示各种数据结构之间的关系。你还可以在 Emacs 里调用 gdb,那样就可以同步显示源代码了。而且 VIM 和 Emacs 还可以编辑很多其它东西,比如信件,LaTeX 文档,HTML,配置文件…… 你不用另外找一个什么编辑器来干这些杂活了。很多程序比如 Mutt, tin 都可以在内部使用 VIM,这样就更方便了。实际上 make 在其它方面还能帮你很多忙,我的每一个比较大型的 LaTeX文档都是用 make 维护的。
Linux 能干的高精尖的事情 Windows 都干不了
当然有很多事情是Linux/UNIX的专利了。因为 Windows 只能装在 PC 机上,好像以前也有 Alpha 可以使用 Windows NT,但是就是没见到有人用。PC 机的能力是很低的,像我们编程序处理 NP-Hard 问题的人,用 Windows 的机器显然速度不够,而且有时一个问题算上几天甚至几个星期,Windows 机器是以"死机"著称的,我们怎么能放心?所以几乎所有科学计算程序,EDA 程序,高性能图像处理程序都不是 Windows 的。他们有时也会移植一些给 Windows,但是常常降低那些程序的能力。你比较过 Windows 版本的 Mathematica 和 Linux 的有什么区别吗?
IBM 制造的最大的并行计算机有 8000 多个处理器,Windows 不可能有能力管理这么多处理器,它用的是什么操作系统?答案是 Linux。
《泰坦尼克号》电影里的三维动画,那么细腻逼真,Windows机器能做出来吗?不行。那也是 Linux 机器做的。
民航总局用来训练地情人员的虚拟现实训练设备,Windows 当然无能为力。那都是商业的 IRIX 机器。
UNIX 是最早支持 TCP/IP 网络协议的系统。它上面有很多可以互相协作的网络服务程序,它们经过多年的使用和修订,已经达到比较完善的程度。而就在1997年,微软的比尔盖茨还在扬言:"Internet 是没有前途的。" 微软的这个"远见卓识"大家应该都已见识,它后来加上的网络服务程序IIS漏洞之多,让公安部都频频发出警报,大家也是见识了的。
其实你知道了,Windows 没有一样有用的事情能比 UNIX 干的更好。
Linux 干不了的有用的事情 Windows 照样干不了
当然 Linux 不是万能的。它也有不能干的事情,电脑也有干不了的事情。但是 Linux干不了的事情,Windows 肯定也干不了。这些事情就是我们需要探索,需要努力的事情了。在你探索的过程中,Linux 必定是你的好伙伴。
不要把Linux和Xwindow掩盖起来!不要把我们的用户当成傻瓜。
什么?你早就知道 Windows 是垃圾?噢!你怎么不早说呢!害我废话这么多。嘿嘿。
"好了。你知道 Windows 是垃圾,你现在用什么?quot;
"Linux + Xwindow"
"那我问你,Xwindow 是什么样的?"
"不就是跟 Windows 差不多吗?只不过 'Start' 按钮比较方,而且上面不是一个Windows 标志,而是一个脚丫子。点击一下居然还有很漂亮的中文菜单。我喜欢!"
"你知道什么是'根窗口'吗?"
"不知道。从来没听说过呢?"
"根窗口就是遮盖整个屏幕的那个最大的窗口。"
"哪儿有什么窗口啊!我没有看到呢?"
你发现了问题吗?这些 Linux 用户说是在用 Linux 和 Xwindow,但是他们对 Linux和 Xwindow 几乎完全不了解。很多人用了那么久 Xwindow 都不知道根窗口是什么东西,不知道其实按钮也是窗口,不知道窗口管理器和其它程序有什么关系,大家都以为窗口上面的按钮是程序自己放上去的,不知道窗口?quot;class name","resource name"是什么东西。他们也不知道 .Xdefaults 是用来干什么的。特别是他们很多人都不知道 Xwindow 的字体是如何命名的,什么是 fontset,有了一个新的字体也不知道怎么安装。
他们被遮在 Linux 之上的一层一层的包装迷惑了,他们等待有图形界面的工具来帮助完成一切事情,他们认为 Linux 跟 Windows 一样,只是麻烦一点。他们知道 Linux内核很好,但是他们感觉不到 Linux 和 Xwindow 在操作层面的天生的先进性,随后不久就把 Linux 完全删除掉了。你发现没有,要用户理解 UNIX 和 Xwindow 的操作层面的先进性,才是留住用户的最好办法。如果用户体会不到操作时的方便和高效,内核再好他们也不会理会。
但是用摹仿 Windows 的作法来吸引用户,永远会失败的。因为 Linux 如果摹仿Windows那一套低效率的方式,那么 Linux 的这套"低效率方式"永远比不上Windows 的那一套"低效率方式"。那么用户就会说:"这个 Linux,没有一样比的上 Windows。"
Linux 天生就是继承了 UNIX 的高效的工作方式,为什么我们要把它掩盖起来?我们为什么只告诉用户 KDE 的菜单怎么用?我们为什么不能像早期的 Xwindow 书籍那样第一节就告诉用户什么是 X server, 什么是 X client,什么是 Window Manager, 什么是根窗口。第二章就告诉用户窗口有哪些属性,什么是 classname, resource name, hint,怎样使用 .Xdefaults, xrdb ……
在这里我又不得不说一下那些 Linux 的发行公司和写书的人,他们把 Linux 和Xwindow 包装起来,却没有从基本上告诉用户 Xwindow 的工作原理。很多书籍讲授的层次就是在Gnome, KDE 的菜单操作的层次,靠大量抓图来占篇幅,"繁荣"Linux 书籍市场。
现在很多人已经把能够利用别人的库写出一个好看的程序作为自己编程水平的象征。在这?quot;图形化","可视化" 的年代,你如果还在用 troff, LaTeX 写文档,你还在用VIM 自己编辑 HTML,用 Mutt 处理邮件,你还在用文本模式的 gdb 调试程序,你还在用Xlib 写程序, 你还在用 tin 上 USENET,你还在自己写 Makefile,写机器代码,你还在玩 Clossal Cave 这样的字符模式冒险游戏,那你就是老古董。
其实这种思想是错误的。虽然你是一个坚决的 Linux 支持者,但是你的思想是 Windows的思想。你认为图形界面,菜单,按钮就可以解决一切问题,就可以给你高效方便。你还是没能摆脱微软给你的潜移默化的东西。你其实离不开 Windows 那样的环境,你迟早会删掉自己的 Linux。
GUI vs. CLI
做一个坚定不移的"两面派"
大家看到这个标题是不是热血沸腾?两派大虾都可以围攻我了:
GUI派用户:"哇!我一看你这小子就是 CLI 的。要不然自己写什么 Makefile?用什么Mutt?"
CLI派用户:"切~ 你还用 X!高手都不用 X。你是 GUI 那边的。"
可怜的我:"555~~ 你们都不要我~~ GUI 和 CLI 就那么水火不容吗?"
计算机界这样的门派之分还很多。很有特点的就是 CLI 和 GUI 了。CLI (Command LIne)的狂热份子声称永远不用 X。我上次在实验室看到一个同学用一个 SecureCRT 登录到Sun 机器,然后用一个 vanilla vi 编辑程序,我建议他启动一个 GVIM 过来显示在Exceed 上可以有语法加亮。但是他坚决反对,说:"高手不用X。你想想,要是我在一个很慢的网络连接怎么用 X?而且好多服务器没有装 X 程序。"
但是我们实验室的网速可够快,Windows 机器都有 Exceed 啊,而且 Sun 机器有全套X 客户程序包括 GVIM。他说他是 CLI 的坚决拥护者,但是他却在用 Windows,他后来打开了好几个 SecureCRT,每次从文本框输入地址,用户名和密码,从下拉菜单选择"SSH2",然后点击"Connnect"。他还不断的夸SecureCRT是"网络管理员投票选出的最受欢迎的登录方式"。老天,SecureCRT 本身就是个 GUI 啊,他其实没有明白Xwindow 的好处。
你说我是 GUI 的?我虽然很少在 console 下工作。但是我对 bash, VIM 很熟悉,我可以让 bash 按照我的键绑定方式来工作。我可以在 rxvt 里使用 Mutt 来收发 email。我的每个桌面上都常常堆放着一打不同大小的 rxvt。我用 VIM 编辑 LaTeX。我自己写Makefile 来维护 LaTeX 文档。我有时用 mpg321 来放 mp3。我上BBS用的我自己写的expect 脚本。 好了,CLI 派的朋友可以收我做盟友了
你说我是 CLI 的老古董?我的 FVWM 被我配置为可以"手写操作",我只要画一个"r"就可以启动 rxvt,我只要画一个 "U" 就可以启动 GVIM,…… 我用 GVIM 语法加亮模式编辑程序,我用 Mozilla 浏览网页,…… GUI 派的现在好像认我做朋友了
好了。CLI 派的朋友,虽然我很喜欢命令行,但是我有时在屏幕上左右画一下就可以执行:
Module FvwmConsole -terminal rxvt -geometry 45x5-0+0 -bg gold -fg midnightblue -fn "-adobe-courier-medium-r-*-*-14-*-*-*-*-*-*-*"
你是不是现在又想把我逐出师门?
GUI 派的朋友,虽然我很喜欢窗口。但是我可以在 FvwmConsole 里输入:
All (rxvt) MoveToDesk
把我所有的 rxvt 移动到我现在工作的桌面。"这家伙,怎么这么快就叛变了!"
其实何必分什么 GUI 和 CLI,UNIX 和 Xwindow 都是工业标准,它们从设计那天开始就有非常灵活的用法,各个程序,不管是 GUI 还是命令行的都可以互相协作。UNIX 和X 是一家,何必搞的那么偏激,非此即彼?你从我上面的行为可以看出 GUI 和 CLI的模糊界线吗?我就是坚定不移的"两面派"。
UNIX 是简单的--
"我相信简单就是最好,如果太复杂,我是不能理解的。" -Seymour Cray
很多第一次用 Linux 的人会惊奇的发现,Linux 的程序居然不?quot;安装"就可以运行,程序拷贝到随便那个目录都可以用,而不是一定要占用你第一个分区的空间。程序的设置只是一些简简单单的文本文件。你根本不需要什么"注册表修改器" 就可以改变系统的设置。这就叫做简单,但是简单就是美。虽然这只是 UNIX 简单性的一个肤浅的认识,你已经体会到了某些东西。
但是简单并不意味着功能弱,并不意味着落后。相反,简单意味着强大,意味着生命力。
我不会再继续阐述我理解到的"UNIX 的简单",因为这个需要自己去体会。
UNIX 是永恒的
有人说:"Plan9 会取代 UNIX,Mach 会取代 Linux 内核。"
但是你如果是一个深入体会了 UNIX 的人,你就会知道:UNIX 的思想是永恒的,不管时过境迁,Plan9 是否代替 UNIX,UNIX 的灵魂都会在 Plan9 身上现形!
我为同一个设备写过 Linux 内核和 Windows VxD 驱动程序。写 Linux 驱动程序时,我对 UNIX 设计的完美的一致性,远见性所折服。UNIX 用同样界面的 read(), write()系统调用就可以对不同的对象:普通文件,设备文件,管道,管道文件,socket,……进行统一的读写操作。我跟本不需要写一个测试用的应用程序就可以对我的设备驱动进行测试,因为 cat, cp, dd, 它们也使用了同样的 read(), write(),设备和普通文件在应用程序眼里没有区别。在那个还没有 Smalltalk, 没有 C++ 的年代,UNIX 的设计者已经使用了所谓的 "面向对象方法"。对,C 语言也可以实现面向对象。
UNIX 的系统调用几十年都没有很大变化,这非但不是顽固,不进步的象征,反而是UNIX 的远见卓识的体现!这就跟 TeX 程序几十年都不变的情况差不多。这些才是真正的永恒的 master piece! 你应该改变所有软件都必需从 0.1, 1.0, 1.1, 1.2, 2.0,..., 3.0, 3.1, 95, 98, 2000, XP, ... 不断升级的想法。
Windows 就不同了,它在最开头只是一个 DOS 之上的图形包装而已。后来为了兼容以前的糟糕设计,不得不加上很多累赘。我写 VxD 驱动程序的时候就深有体会,Windows 95 程序对设备的操作只有用 DeviceIoControl,我不得不写了两个应用程序来对设备驱动进行测试。Windows 内核的不一致性和隐密性使我非常恼火。不过 Windows WDM驱动程序现在也有了 ReadFile, WriteFile,…… 那说明什么?那说明 Windows 在向UNIX 学习,或者有可能是某个 UNIX 设计人员在微软打了几天临工,顺手加了几个UNIX 的东西进去。这样做是没有用的,Windows 从一开始就是非常糟糕的设计,它的历史的包袱太沉重了,缝缝补补有什么用?它只能永远的被 UNIX 甩在身后!
UNIX 是强大的
让聪明人干任何他们想干的事情。
UNIX 的一个特点就是非常高的灵活性,Xwindow 也具有这种灵活性。这种灵活性体现在哪里呢?
UNIX 的程序一般都有很多参数,不管你现在用的着用不着,总有人需要某些参数。它们的行为很多都可以用配置文件来改变。比如 GNU bash, 通常缺省的命令行输入方式是 Emacs 方式,但是只要我编辑一个 .inputrc 文件,就可以把它变成 vi 的输入方式,而且我还可以自己绑定键序列到某些操作。我可以用 shopt 来设置它的很多特点,比如是否进行通配符扩展,是否可以把一个变量当作一个目录来cd,是否可以自动纠正某些明显的目录名打字错误 ……
UNIX 程序设计的思想是提供给用户"机制",而不限制用户制定"政策"。这是一个重要的尊重用户的作法。
我们再来看看 Xwindow。Xwindow 是一个出色的设计,它把显示服务器和客户程序分开。一个显示上既可以显示本机上的程序,也可以显示别的机器上的 X 程序,而它们都遵守你的窗口管理器的统一指挥,它们之间可以方便的传送剪贴版数据,各种事件 …… 比如有时我的 XFree86 上会出现四个不同机器上的 XTerm,两个不同机器上的 GVIM,…… 它们统一受本机上的 FVWM 指挥。
Xwindow 程序都具有很多很多命令行参数和 resource 参数。你可以随意的在命令行或者 .Xdefaults 文件设置所有的颜色,字体,尺寸…… 而且如果你用 xrdb 把 .Xdefaults 导入到根窗口,那么其它机器上没有经过配置的同样的程序,显示到你的机器上的时候也会遵守同样的外观规定。
Xwindow 的窗口具有 Property, 也就是一些可以自己定义的共享数据(原子)。正是因为这些 Property 的存在,使得 Xwindow 具有无比强大的生命力。X 的窗口管理器和其它客户程序之间并没有统一的协议,但是后来出现了 ICCCM(客户程序间通信规范),这个规范就是通过 property 定义的。现在又有人定义了一套"扩展的窗口协议(EWM Hints)",使得Xwindow 可以具有某些 Windows 的特征,比如一个工具条程序可以告诉窗口管理器:"这个屏幕下面被我占据了24个像素的空间,你最大化程序的时候不要越过这个界线。"
一个强大的窗口管理程序比如 FVWM,它收到这样的提示时,可以答应工具条程序的这个要求,也可以不答应。一切选择的权力在于谁?当然是用户了!
你想想,是不是有些 Windows 程序常常弹出一个窗口要你选择 "Yes or No"?你不点击它它就不下去。你觉不觉得你的程序在侵犯你的尊严?你是一个人,一个智慧的生物,怎能受到一个程序如此的待遇?
还有就是很多 Windows 程序把人当成傻瓜,而它是"智能程序"。比如,有一个程序就是喜欢把你的每句话第一个字母都变成大写,我不说它是谁了,你遇到的时候就知道了。
如果连"一句话开头一个字母要大写"这么明显的问题都需要程序帮你纠正的话,人脑还用来干什么?况且如果你故意想要不大写的话,那就更麻烦了,我楞是没有从它那一大堆菜单里找到怎么关闭这个愚蠢的选项。
只有符号才能完全操纵计算机。
我们来说说很多初学 Linux 的用户。虽然他们在用 Linux,但是他们打心眼儿里是觉得Windows 的工作方式好,他们希望 Linux 有一天能"像Windows那样"。你说:"我的鼠标一点,我菜单一拉,…… 就可以完成我的操作。" 但是我要告诉你:"Linux 从来没有摹仿 Windows,将来也不会。Linux 从诞生之日起,它的工作方式就比 Windows 的先进。
Linux 属于能勇敢面对符号的人。只有符号才能完全操纵计算机。"
看看优秀的 UNIX 程序,XFree86, FVWM, VIM, Emacs, proftpd, Mutt, wget, tin, ... 没有一个不是用配置文件来设置选项的。为什么这些程序没有方便的菜单可以用来配置?难道它们的设计者就那么低能,连个图形配置界面也写不出来?
当然不是。因为图形界面配置方式的能力是极其有限的,而配置文件和程序语言的表达能力却是无限的。用图形界面配置这些程序的话,如果你想达到配置文件的效果,你需要成百上千的菜单,checkbox, radio button, ... 到时候你根本没办法找到你需要修改的地方了!而各个程序的配置文件的语法都有很多相似之处,一般就是一些命令,设置一些变量,参数,…… 一旦用会了一个,其它的也就容易理解了。如果你用惯了 awk, sed, Perl,你会觉得那才是真正的自动化啊。
鼠标虽然是很好的工具,但是它的表达能力是有限的。你不可能光用鼠标就让电脑完全明白你的意思,它毕竟只有3个按钮。看看我的MetaPost页你就能体会到鼠标的这一弱点。所以我们虽然很喜欢鼠标,但是却不能完全依赖它。
各个小程序的完美配合
这就是UNIX最重要的特点了,它就是UNIX设计的思想。让每个程序只具有一项专门的能力,然后让它们合作。Xwindow也继承了这种好传统。这恐怕就是Windows和其它操作系统望尘末及的地方了。UNIX 程序设计之统一,配合之完美,真使我难以置信!shell, grep, find, awk, sed, make, Perl, Emacs, vi, tin, Mutt, ... 它们是那么的具有一致性!你一旦学会了 sed 的正则表达式,其它程序基本上都能用了。你一旦学会了vi 和 VIM, 你会发现它的操作是那么的有规律性,似乎vi的设计者在几十年前就已经设计好了 VIM 在今天的完美而统一的操作方式!而且vi的操作还体现在 Mutt, tin 等很多程序中。你甚至可以把 bash 设置为 vi 的输入方式来输入命令行,我就是这么做的。一个程序可以调用另外一个程序来得到数据,可以把数据交给它处理后返回来,可以在自己的窗口里"嵌入"另外一个程序。
在 Windows 和其它非 UNIX 操作系统中,这种合作是非常困难的。我曾经在Windows下使用 Perl来进行一些自动工作。但是 Windows 的文件操作,管道是如此的不稳定,程序之间基本不能合作。你别想在 Visual Studio 窗口里面嵌入 UltraEdit 编辑器,你别想用一个 expect 脚本来控制 telnet 到水木清华BBS。
Windows 的程序都是大而全,大而杂,所有的电子邮件程序都需要自己提供编辑器,自己发送和收取邮件,自己显示邮件的附件。每一个BBS程序都提供自己的Virtual Terminal, 自己的通讯代码。每一个 IDE 都自己提供编辑器,编译器,汇编器,调试器。人们为了使用一种新的程序,需要适应所有这些它提供的界面,而不能使用自己喜欢的编辑器的键绑定,菜单组织…… 不能 DIY!
你要知道,最高级的电脑是定做的,自己想要什么什么CPU,什么主板,多少内存,什么硬盘,键盘,鼠标,显示器都是自己选择的。最高级的滑板,自己想要什么牌子的版面,什么牌子的沙,什么桥,什么轮子,什么轴承,也都是自己选的。最高级的古球拍,木板,胶皮,海绵,胶水都是可以自己选择…… 而用 Windows 程序,你得到的是大杂烩,就像你去买"品牌机",只有那么几种配置,而且附带很多你不需要的软件和服务;就像你去买组装好的滑板,你想要大一点的轮子和窄一点的板子,但是你没有这种选择余地!Windows 程序就相当于最廉价,最次的滑板。但是它却会花你更多的钱,因为一旦一个部件坏了,或者你不喜欢了,你不能另外找一个好的换掉它,你必需重新买全套配件!
而 UNIX 和 Xwindow 就是高档的"组装货"。比如我用 Mutt 的时候,我可以用 VIM也可以用 pico 来编辑邮件,我可以用 ImageMagick 也可以用 xv 来显示附件里的图片,我可以用 lynx 把 HTML 附件转成文本嵌入窗口中,我也可以把 HTML 附件交给Mozilla 图形显示。我可以让 GnuPG 帮我把邮件进行数字签名和加密,我也可以用其它 PGP 程序。
我想让 Postfix 而不是 sendmail 帮我发出邮件,我想让 fetchmail 帮我收邮件,转发给 postfix,然后被我自己写的Perl过滤器处理…… 这一切我都可以办到!我可以选择我最喜欢的专门的程序来完成专门的工作,然后把它们结合在一起,我也可以分别得到它们的好处。
学 UNIX 绝对不是浪费时间
有人告诉我:"你看我用 Windows 什么都不用学。而用 Linux,光是安装就花了我一个星期!"
首先,我要告诉你的是,你装 Linux 花了一个星期,不是因为 Linux 不好装,而是因为你已经习惯了 Windows,对 Linux 最初难以理解而已。你想一想你最初安装Windows的时候呢?你花了多少时间搞明白什么是硬盘分区?什么是盘符?什么是目录?你认为Windows 就是那么容易可以学会的吗?虽然你觉得没花时间学,但是你以前在用别人的机器的时候已经耳濡目染,自然就了解了。而且由于你想要 Linux 和 Windows 并存于硬盘上,又增加了安装难度。而且你肯定没有得到有经验的 Linux 用户的帮助,否则他们会在20分种之内帮你搞定。一个星期也太夸张了.
如果一开始用的就是Linux就没有这个问题。你想想如果你没有用过 windows,你肯定会很习惯 /etc, /usr, /usr/local ,... 而不是 C:, D:, E:, ... 是不是?如果你只用过Linux,你第一次用 windows 时恐怕也会问:"/bin 目录哪里去了啊?"
最重要的是,你用惯了的UNIX工具,它们可以伴随你一生,而不会那么容易变化或消失。你可以永远不用再换另外的工具了。除非那个工具比你这个好的太多,而且可以完全模拟你现在的工具。
我们实验室一个60多岁的老师,用vi, cc, make, ...都几十年了,他以前的经验绝对没有白费,而且教会了我们一批又一批的学生。vi 伴随着 UNIX 的最初发行而诞生,直到今天还是世界上头两号编辑器之一!有些人的 FVWM 配置文件已经用了 10 多年,现在完全不经修改还可以用。
看看 Windows 的工具,你从 Borland C++ 换到 VC, 就必需适应新的环境:菜单不同了,颜色不同了,按钮不同了,帮助信息不同了,热键不同了,编译器参数,调试器功能也不同了,…… 那个时候恐怕花要花你很多时间去适应。当你刚刚适应了 VC, 你又要换成VJ, PowerBuilder, C++Builder, ...
很多windows程序员都是这样,开头在dos下用Turbo C, 然后是 Borland C, VC, C++ Builder, ......不断追赶微软的潮流。而且微软的SDK, MFC, .NET …… 什么都在不断变化,不断出问题,又不断的在修改…… Windows 程序员不得不买又厚又重的 Microsoft Press 的书籍,看了才一个月,又过时了。今天你才学会了写 VxD,明天你就必须用WDM 了。你不得不注册 MSDN 才能赶上 Microsoft 的步伐。很多人说:"计算机是贵族的专业。" 这就是微软一手造成的。
这些东西才是没完没了的浪费大家的时间和金钱的。这是是浪费生命!我们为什么不使用从诞生就那么一致和完美的 UNIX?你需要理解先进工具的设计理念。UNIX 的工具就像我们用的汽车,它的离合器,油门,刹车,方向盘,后视镜,永远都在同样的位置。用惯了的话,你对你的汽车的每一个部件都会了如指掌,甚至你自己都可以修车了。这难道不好吗?
有人说:"你说我们需要了解 UNIX,难道你要开车还必须了解汽车的结构吗?" 你去问问开车的司机,哪一个不了解汽车的结构的,那他的驾照就是混来的。你难道想要傻瓜型的"微软牌汽车"吗?我们来看看:
你买的微软牌汽车最开头只有一个座位,每加一个座位你得向汽车公司付钱。车上的防撞气囊不时会冒出来,说是为了你的安全。每开100英里要大修一次,每过一年要换一次引擎。附带的,你还必须换用由微软汽车公司指定的石油公司提供的新型号的机油。你的车出了问题,但是法律规定,你不准私自拆开你的汽车来修理,你必需到微软汽车公司指定的维修点去,需要付相当多的钱才能修好一个小毛病。
最可气的是,你每换一个型号的微软牌汽车,它的刹车和离合器都在不同的位置,你需要重新去考驾驶执照。如果这辆汽车在途中刹车失灵,你受了重伤,你也不能状告微软汽车公司,因为你买来汽车之后必须签一个合同,说"由于微软牌汽车对你和家人造成的一切死伤,微软概不负责。"
怎样完全用 GNU/Linux 工作
说了这么多 Windows 的不好。我还没有告诉你我怎么用 Linux 处理有些必要的事情。半年以前我由于中文老是配置不好,一直是双系统,不时需要重起到 Win2k 来处理汉字。后来我找到了 miniChinput, XSIM 和 SCIM 输入法。这下可以处理汉字了。而且 VIM 和Emacs 对汉字支持越来越好。我的大部分文本是用 VIM 编辑的,包括程序,信件,网页,LaTeX 论文,MetaPost 绘图语言。
我不用 Word 这样的程序写论文,而是用 LaTeX,因为这是世界上效果最好,最方便的论文工具,是大多数学术杂志要求的格式。幻灯都是用 ConTeXt 做的,用起来很简单,而且效果非常漂亮。你可以看看我的TeX介绍。
至于绘图,你可以用很多可视化的工具,比如 xfig,dia。但是对于我来说,任何可视化的工具都不能完成某些任务,我需要一种可以精确描述图形的语言。我找到了MetaPost。它简单又好用,而且效果是世界一流的。我的插图,如果不是图像,都是MetaPost 画出来的。
我曾经抱怨 mozilla-mail 经常突然消失,损坏我好几封快要完成的信件。后来我发现mozilla 的邮件处理程序确实是不稳定的,功能又弱,有经验的 UNIX 用户都不用这样的程序。Mutt 是一个非常稳定可靠的 UNIX 邮件处理程序,而且功能非常强大。我曾经为 Gnome 和 KDE 的不稳定而烦恼。现在我找到了非常强大的 FVWM。KDE,Gnome也能和 FVWM 一起工作。虽然 Gnome 和 KDE 总体不稳定,但是某些部件程序还不错,很多 gtk, Qt 的程序也很不错,它们很多都是可以独立于这些桌面环境运行的。
Linux 有很多强大方便的工作方式是 Windows 没有的,或者有类似的东西,但是很差劲或者用起来不方便。比如 ssh 服务,rsync,cvs,expect ……
结论
我写这么多的目的是什么?我希望喜欢 Linux 的朋友,完全清除微软和 Windows 灌输在你脑子里的谬论,别再相信它们所谓的"新技术",别再追赶 Windows,因为追赶Windows = 倒退。马克思有一个思想很重要,"新生事物并不一定是在最近出现的。"
UNIX,Xwindow, TeX 虽然都比 Windows 先出现,但是它们才是先进生产力的代表。我们要清楚的认识到什么才是真正的现代化,什么才是真正的自动化。
消除学计算机很难的幻觉,勇敢的拿起像 bash, FVWM, TeX, VIM, Emacs, Mutt ……这样强大的程序,勇敢的面对符号。不要再埋怨"Linux 为什么不能像 Windows 那样",不要再浪费时间试用这样那样的程序,不要再忙着升级。你需要理解 UNIX 的工作方式,因为那是大多数科学家的工作方式。Linux 可以成为你的好朋友,你需要认识它,了解它,信任它,才能完全的靠它来高效的工作。当然,在游戏机,手机,掌上电脑里,或者在用电脑来娱乐的时候,用一些"傻瓜软件"还是不错的.
我希望小学,中学的计算机老师能够提高自己的素质,在孩子们的启蒙教育中充分利用Linux 神秘的特点,引起孩子们对数学,对符号的好奇心。诱导他们用计算机来解决世界上的有趣问题,而不要把教学的范围局限于计算机的操作和它自身的问题。
附录: 我用来处理日常事务的 Linux 程序
好了好了。我知道你发现自己应该转向 Linux,你很后悔当初为什么中了微软的邪。但是不要着急。因为这些东西本来只是工具,它们是用来完成你的主要任务的辅助而已。你以前选错了工具,这不要紧。你还是拥有你自己原来的专业技能,那才是最重要的。工具的东西只有慢慢适应转换,不能一蹴而就,否则你会感到非常没意思,甚至放弃。
如果你只想做一个像我这样的普通用户,主要目的是用 Linux 来完成自己的任务,那就可以不用系统管理员或者网络管理员的标准来要求自己,因为当一个系统和网络管理员确实很辛苦。这里我对实验室的网管同学鞠一躬,谢谢你的指点和帮助. 不用把你的机器当成网络服务器,不用开放没有必要的服务,设置好 ssh, ftp 已经足够了。这样会省去了解很多没必要了解的东西的时间。不用过度考虑"安全",因为 Linux 缺省已经很安全了。不过你有兴趣了解更多那也无妨。
下面给出一些推荐使用的可以处理一般事情的程序。至于你的专业上要用到的科学和工程软件比如 Matlab, Mathematica, Maple, HSpice, Design Compiler, …… 还有其它物理上的,化学上的,生物上的 …… 都必然有 Linux 和 UNIX 的版本。当然他们很多不是免费的,不要总是觉得什么都应该免费,自由不等于免费。它们是经过很多人辛勤劳动的产物,是可靠的程序,它们物有所值。
下面列出我常用的一些 Linux 程序。一个列表里可能有很多,那是为了方便你来选择,我列出了比较信得过的。但其实很多只有第一个是我真正在用的,我不喜欢试用程序。我不是一个合格的网络管理员,我的服务器都只设置了我自己需要的功能,那样可以省去我很多麻烦。
Shell: bash。它结合了 csh 和 ksh 的优点,并且有 readline 功能,你可以随意绑定自己的键盘。
编辑器: VIM, Emacs。
程序开发: GCC, make, ld, Scheme48, j2sdk, Perl, Python, Tcl/Tk ...
论文,幻灯工具:LaTeX, ConTeXt
绘图工具:MetaPost。这个语言太强了,以至于我只用它了。你不熟悉的话可以用xfig, dia 来画一些流程图之类的图片。
图像处理:ImageMagick。其中的 import 程序可以屏幕抓图,convert 程序可以转换图像格式,display 可以显示图片和简单编辑(缩放,换质量,转格式,简单绘图,简单虑镜)。通常我就这么点需要。如果你要更强大的图像工具可以用 Gimp, 它几乎和Photoshop差不多。
自动管理工具:make。我可以用make来自动编译程序,自动编译文档,自动更新插图…… 全自动,而且不会重复劳动。
数值计算程序:SciLab。这个程序基本上可以代替 Matlab。
代数计算程序:MAXIMA。这个程序基于世界上最老的计算机代数系统之一: 由美国能源部(DOE)发行的 MIT Macsyma 系统。它是用 Common Lisp 实现的。很多现在的符号计算程序比如 Maple 都从 MAXIMA 身上学到很多东西。它现在经过 DOE 批准以GPL发行,永远是一个自由软件。
加密程序:GnuPG。我的 PGP 密钥就是它搞出来的。
打包,压缩程序。什么都有: tar, gzip, bzip2, zip, rar, ...
虚拟光驱程序。Linux 不需要虚拟光驱程序,直接 mount 就行了。
ftp 服务器:proftpd, vsftpd。proftpd 功能很强,但是我只用了最简单的一种设置。
WWW 服务器:apache。(我一般没有开)
ftp 客户程序:lftp,ncftp。它们都是文本方式操作的,但是比起图形界面的方便的多。比如 lftp 几乎具有 bash 的所有方便功能,Tab 补全,bookmark, queue, 后台下载,镜像…… Linux 也有图形界面的 ftp 客户程序,但是大多不稳定,有很多问题。这就是很多人抱怨 Linux 不如 Windows 的一个小原因。还有很多人用 Wine 模拟 Windows 的leapftp,其实 lftp 比 leapftp 好很多,你需要的只是适应一下。
自动下载工具:wget。它非常稳定,有一次我下载一个程序,用 IE 和 Mozilla 下载回来的文件都是坏的,最后还是 wget 可靠的传输了数据。用它甚至可以镜像整个网站,比起WebZip 这样的 Windows 程序强多了,而且不会因为你不付钱就在下载回来的网页里强制插入广告。
虚拟终端:rxvt, xterm, gnome-terminal, mlterm, ...
X server: XFree86
窗口管理器:FVWM。编译加入了 libstroke。
中文输入:XSIM。被我修改过以适应 FVWM 的需要。另外推荐你还可以用 SCIM。
email 处理:Mutt + Postfix + fetchmail
看 PDF, PS, DJVU 文件:Acrobat Reader, xpdf, GhostScript, gv, djvu工具包和netscape 插件。
看CAJ文档。我从来不看CAJ之类的文档,如果找不到PDF或PS,直接去图书馆借最好。
看网页:Mozilla, Phoenix, lynx。Mozilla-Xft 的显示效果比IE 好很多。
英汉字典:IBM智能词典,星际译王。
编辑网页:我用VIM 直接写 HTML。你如果想要图形方式的可以用其它的比如screem, BlueFish。
登录其它 UNIX, Linux 机器:openSSH, telnet。 我喜欢用 openSSH 把其它机器的X 程序通过 ssh 加密的隧道传到我机器上显示。
登录 Windows2000 server 的 display service: rdesktop,...我有一天试了一下,不错。后来就没有用过了。
同步程序:rsync。我用 rsync 通过 ssh 来跟某些机器同步数据,或者做自己机器上不同目录间的同步。
上BBS:rxvt(或任何一种终端) + telnet + chatbot(helloooo 机器人的程序)
QQ, ICQ: 我没有 QQ 或 ICQ。不过你可以用 Gaim, 它同时支持 QQ, ICQ 和很多其它的即时通信方式。ICQ 用户也可以用 Licq。
放录像:MPlayer, RealPlayer。MPlayer 太好了,直接就可以放 VCD, DVD, divx, wma, wmv ... 用 Windows 的同学都很羡慕我,说 Windows 要放这个需要大堆插件。rm 最好还是用 realplayer 放,它也是免费的。
放音乐: xmms(mp3,ogg都可以), mpg321(放mp3), ogg123(放ogg)。mpg321 不如xmms管理音乐文件那么方便,但是有时我还是用 mpg321 放 mp3 作为背景音乐,因为懒得开一个xmms窗口:-)
游戏:我觉得 KDE 的那个 ksokoban(推箱子),很好玩 :-)
看 Word 文档。请 Word 用户把文档全部转为 PDF 或 PS 再给我,文档里没有特殊的格式干脆就用文本吧,何必那么麻烦。以前很奇怪的是,通知里本来没有什么特殊的格式居然还要发doc附件的email。现在好了,我们系发通知都用文本,PDF,甚至图片了。
其它程序:还有很多我需要用而你不一定用得着的。比如,Doctor Scheme,
Scheme48, Scsh, kawa...这些程序只有 Doctor Scheme 有Windows版本。还有很多幕后工作但是你一般不察觉的:xinetd, telnetd, sshd, crond, atd, lpd, ... 他们都比 Windows 的对应者强的多,或者根本没有对应者。
附:
写给支持和反对《完全用Linux工作》的人们
作者:王垠
在一阵阵唾骂和欢呼声中,《完全用linux工作》被转载到了天涯海角。很多人支持我,也有很多人唾骂我。我不知道它是怎样流传到那么多地方,其实我不知道它都被转到哪里去了…… 我知道现在这篇文章又会罗里罗索写很长(因为我计划写这样一个东西已经很久了,坐在Emacs前面总是有一种巫师在炼丹的感觉……),所以先提出中心思想吧。中心思想就是:
我只是一个傻瓜。看《完全用Linux 工作》的时候请用你们自己的判断力。
几乎所有人都承认,那篇文章很偏激。当时的情况是这样,我用 Linux 的时候被一个同学鄙视了,说:"你怎么用像 DOS 一样落后的东西,真土!看我漂亮的 Win2000..." 这跟当面嘲笑别人老婆或者妈妈有什么区别?我义愤填膺啊,就几乎跟他吵起来。然后就写出了这篇文章放在主页上,叫了几个人来看。接着我珍爱的 TeX 又受到众人鄙视,于是我又写了一篇文章打击 Word,然后把 TeX 捧上了天。道理很简单,鄙视我喜欢的东西的人就是敌人 --邪教徒或者恐怖分子--他支持的我就反对,他反对的我就支持。为了使人信服,举例必用大科学家,世界一流大学,一流实验室的名号,虽然我不跟其中任何一种沾边。还好那时候我还不认识上帝,要不就打他的名字了。论据不管是实际经历还是自己推测的,先写上去再说。扬眉吐气啊!隔壁微软研究院的哥们居然都被我打动了,开始写 Linux 程序,学用 LaTeX 和 Emacs。不过几天之后我就把它删掉了,因为我自己都感觉到偏激。
于是就没管那篇文章了。可是没想到它竟然已经被转载到那么多地方,似乎引起不小的波澜。有段时间每天都收到十几封email,国内的,国外的,问技术问题的,夸我的,骂我的,讲道理的,鄙视我的,想交朋友的,语重心长的,号称要删掉机器上的 Windows 的…… 我的主页居然也占据了"王垠"在 Google 上的首选位置,把那个日本的什么王公贵族"李王垠殿下"都挤下去了。大家似乎都知道我天花乱坠的本事了,有人就想找我写文章向别人推荐商业软件,我很后悔没有趁机狠狠赚一笔。走到图书馆,亮出借书证,管理员张大了嘴说:"哇!你就是那个 Linux 牛人啊!",也不知道他是褒是贬。甚至有人把他的 BBS 昵称都改成了"坚决拥护精神领袖花生" (花生是我的外号)。为此还骗到了好几顿报告?quot;报告"是清华专用动词,意思是请客吃饭)。虽然我觉得自己身上没有什么值得自豪的东西,但是又有点为自己兴风作浪的本事感到惊讶。虽然我一再告诫自己要谦虚,但是不由的有一种毛泽东,甘地,甚至摩西的感觉。我更加体会到"网络上没有人知道你是一头猪"的真理性。其实,不但网络上没有人知道我是一头猪,实际生活中也没有人知道,其实我是一头笨猪。
这么长的时间之后,还有人写信给我说"深受鼓舞","提壶灌顶","对不起我还在用 Windows 给你写信","真想删掉Windows 啊" …… 我很好奇,我的文章真的有那么大的威力?我再看这篇文章,觉得有点惨不忍睹,看了开头就不忍心再看下去。我告诉同学我很后悔写了一篇这么偏激的文章,可是他?quot;徼枉必须过正,你没有错",所以我也搞不清楚自己这样写对不对,这样自责对不对。就像我从来不敢看自己照片,却有时被人称为帅哥,就让我无法判断自己是否帅一样。所以现在我就开始怀疑我自己是否真是一头笨猪。也许多年以后,我会正确的评价我的想法。就像我现在觉得我15岁的照片挺养眼一样,也许我会发现自己其实是一头聪明猪?
写这篇文章不是为了让自己免得被骂,也不是为了显示高深的猪的哲理。只是因为我深深的感到人应该有自己的判断力,不要简单的接受别人说的 DO's 和 DONT's。怀疑一切,同时又敞开心扉去了解一切。
看过《完全用Linux工作》的朋友,请仔细检查里面的 DO's 和 DONT's。
Subscribe to:
Posts (Atom)