Archive for January, 2004
W32/Novarg
SysAdmins, beware of new virus that speards with email. (CERT Advisory)
My mailbox have been hit 7 times, before I update virus definitions on mail server.
If you are using McAfee, definition #4319 is able to identify this virus.
linkfest
I am not writing on a daily basis, but I update my linkfest (right side of the screen) more frequently. Like other contents of this weblog, linkfest has links about UNIX System and Network administration.
A RSS feed is available, as well as links archive.
The joy of broadband

No comments!
Optimizing Mozilla Web browser
As regular readers know, I use Mozilla Firebird as my primary (but not default) web browser on my Windows laptop. But I also use Mozilla web browser suit when they release a new version just to see what has changed.
I have previously posted a short article about Optimizing Mozilla Firebird in this weblog which had many visitors.
Now I would like to share my experience about optimizing Mozilla Web Browser version 1.6. Since mozilla runs on a variety of different platform, most of tricks you learn here applies on all supported platform. However I have only tested these settings on Windows XP and FreeBSD 4.x/5.x.
Following is useful part of my prefs.js. I assume you know where to find this file. In my BSD, it is located at ~/.mozilla/default/avd9f2pr.slt/prefs.js:
user_pref("browser.tabs.loadInBackground", true);
user_pref("dom.disable_open_during_load", true);
user_pref("network.http.max-connections", 48);
user_pref("network.http.max-connections-per-server", 16);
user_pref("network.http.pipelining", true);
user_pref("network.http.pipelining.firstrequest", true);
user_pref("network.http.pipelining.maxrequests", 6);
user_pref("network.http.proxy.pipelining", true);
Above settings are mostly network related and makes web pages appear faster than the default configuration.
If you are living in Unix world and compile mozilla from source code (or install it from ports collection in BSD), I suggest using following “make” options. Since I am a FreeBSD user, I already put them in /etc/make.conf to make life easier:
CPUTYPE= P4 CFLAGS= -O -pipe COPTFLAGS= -O2 -pipe WITH_GTK2= YES WITH_GUI= YES WITH_XFT= YES WITH_OPTIMIZED_CFLAGS= YES
Above settings tells make utility to use Pentium 4 optimization to make binaries, as well as using GTK2 (makes your UI looks much smoother) and XFT (for font anti-aliasing). The last line is also very important which makes mozilla makefile to force compiler optimization which makes your browser launch faster.
It is obvious that you should change the CPUTYPE statement with appropriate cpu identifier. As example of make.conf explains:
# Currently the following CPU types are recognized: # Intel x86 architecture: # (AMD CPUs) athlon-mp athlon-xp athlon-4 athlon-tbird athlon k6-3 # k6-2 k6 k5 # (Intel CPUs) p4 p3 p2 i686 i586/mmx i586 i486 i386 # Alpha/AXP architecture: ev67 ev6 pca56 ev56 ev5 ev45 ev4 # Intel ia64 architecture: itanium
This is my about:buildconfig output that shows what compiler flags were used to make the mozilla binary code:
Compiler: cc Version: gcc version 3.3.3 [FreeBSD] 20031106 Compiler flags: -Wall -W -Wno-unused -Wpointer-arith -Wcast-align -Wno-long-long -O -pipe -O2 -D_THREAD_SAFE -pipe
Note that the above system configuration also applies to Mozilla Firebird as well as other programs you compile after you update /etc/make.conf with mentioned configurations.
Beware that using compiler optimization may cause instability in generated binary program. But in my experience, it works fine with Mozilla builds.
I am currently running:
[root@hpc:~]# uname -a FreeBSD hpc 5.2-CURRENT FreeBSD 5.2-CURRENT #1: Wed Jan 14 03:46:31 IRST 2004 root@hpc:/usr/obj/usr/src/sys/HOME i386
sync; sync; halt
If you are an oldschool UNIX sysadmin, you already know what does “sync; sync; halt” mean. But many new UNIX sysadmins that I know, are using new style “shutdown” command.
Why sysadmins were using this command, and why did they use “sync” twice, is something lost in history. This combination was among the first UNIX commands I learned to use with our old Sun SparcStation IPX, seven years ago.
But seriously, why sync twice? In fact “sync” does not perform better if you run it twice or more. Running it twice just buys some time for the first sync to flush disk buffer. Here you can find a better explanation than mine.
However, this is not being used anymore, because the new operating systems has a builtin mechanism to make sure the disk buffer has written to disk before going down.
RPC Ping error message
First, please take a look at following shot from my MovableType activity log. This shows an error messages returned by weblogs.com when my MT pinged to inform them that this weblog is updated:

Well, I am really pissed off. What is it? A joke or what?
I would like to give them a piece of advice:
Dear Weblogs.com,
Don’t be (or pretend to be) funny, because it is not funny at all. I guess you are suffering from serious capacity problems. If it is so, make your service commercial, or sell out. A good service is a service that always works. If you cannot provide such service to your non-paying customers, you better stop this free service.
Thank you
phewwww. Now I feel much better.
Hosting Reliability
FreeBSD advocates will be pleased to hear this:
Seven of the top nine sites run on FreeBSD. The exceptions are Datapipe, which is doing a fine job of promoting the reliability of Windows 2003, and German hosting company komplex.net which runs on Linux.
Source: Netcraft report
Stevens’ Books
If you are familiar with TCP/IP, you have probably read “TCP/IP Illustrated” books, by Richard Stevens. He was the author of many excellent books, including “TCP/IP Illustrated” series, “UNIX Network Programming” and some other books, as well as different RFCs and technical papers. Despite he has passed away in September 1999, his books and papers are still the best resources to get in depth information about TCP/IP protocol stack, as well as programming for UNIX environment.
A complete list of his books, RFCs and technical papers is available on his homepage.
Following is complete list of his published books until 1999:
- UNIX Network Programming, Volume 2, Second Edition: Interprocess Communications
- UNIX Network Programming, Volume 1, Second Edition: Networking APIs: Sockets and XTI
- TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP, and the UNIX Domain Protocols
- TCP/IP Illustrated, Volume 2: The Implementation
- TCP/IP Illustrated, Volume 1: The Protocols
- Advanced Programming in the UNIX Environment
- UNIX Network Programming
The BSD Vision
As the holy Developers’ Handbook says:
To produce the best UNIX®-like operating system package possible, with due respect to the original software tools ideology as well as usability, performance and stability.
Bill Joy after Sun
I haven’t seen this wired article since tonight. An interview with Bill Joy after he left Sun. I love the way he thinks about successful projects:
I’ve always said that all successful systems were small systems initially. Great, world-changing things - Java, for instance - always start small. The ideal project is one where people don’t have meetings, they have lunch. The size of the team should be the size of the lunch table.
and his opinion about OS X:
Re-implementing what I designed in 1979 is not interesting to me personally. For kids who are 20 years younger than me, Linux is a great way to cut your teeth. It’s a cultural phenomenon and a business phenomenon. Mac OS X is a rock-solid system that’s beautifully designed. I much prefer it to Linux.
A highly recommended reading for all IT geeks.
