Posts in category import

Roll your own subversion

Under Cygwin…

Waiting for an official subversion 1.4 - but until then, I lost my command line svn because Tortoise SVN (awesome BTW) updated my working copy to the new format.

Abbreviated setup (I'm not telling you how to use tar, etc). It's also good idea to disable your virus scanner for a few minutes. Spawning processes under cygwin is painful to start with…

  1. Download both subversion and it's deps. Currently:

These are from

  1. Extract them both
  2. $ ./configure --prefix=/usr/local/svn14 --enable-all-static --disable-mod-activation
  3. make all
  4. make check

(You can usually just do "make check" but there seems to be a bug where it won't properly build the dependencies)

  1. make install
  2. add to .profile:
    alias svn14="/usr/local/svn14/bin/svn"

I have done this on two machines now. On both, some symlink stuff failed under one of the python checks. Oh well…

Make DVD Installer from CDs

Just stumbled on this online. Feel free to extrapolate:

  1. Create a Temp folder on harddrive. Name this folder "HL2_DVD" This will be the Label of our DVD.
  2. Copy all contents of CD1 to this Temp folder.
  3. From CD2 copy just two files! The "cab" file (hl2.CAB) and the "installer.dll" file to the main directory of the Temp folder.
  4. From CD3 copy the "hl23.CAB" file to the main directory of the Temp folder.
  5. From CD4 copy the "hl24.CAB" file to the main directory of the Temp folder.
  6. From CD5 copy the "hl25.CAB" file to the main directory of the Temp folder.
  7. Now download and install "Orca".
  8. Once Orca is installed go to the Temp folder and right click the file "hl2.msi" and from near the top of the menu choose "Edit with Orca".
  9. When opened you will see 2 window panes, go to the "Tables" one on the left and scroll down to Media"
    1. Click on "Media" this will show you the entries in the Right pane. There will be 6 columns.
    2. Change all the entries in the "VolumeLabel" column to HL2_DVD
    3. Then "Save" it. (You can also use a program called "Masai Editor" instead of "Orca")
  10. Now burn to a DVD using Nero using the Label HL2_DVD.

Annoying Reboot Prompt

Text: Updating your computer is almost complete - Restart Now?

I just saw the following tip from Daniel Turini on CodeProject:

I found this after a lot of Googling, so I'd like to share the solution. Yep, this may not be new or even advanced but it surely helped me…

Anyone who is running Windows XP SP2 know what I'm talking about. That stupid, annoying, most ill-designed dialog box ever invented in the history of the computer science that asks "Updating your computer is almost complete. You must restart your computer for the updates to take effect. Do you want to restart your computer now?" And there are only two options: Restart Now/Restart Later. "Restart Later" means that this stupid thing will ask you again in 10 minutes. Yes, if you're willing to work for the next 4 hours until lunch before rebooting, this means you'll need to answer this question 24 times. Did I mention that the dialog steals the focus?

Now, to get rid of it: Start / Run / gpedit.msc / Local Computer Policy / Computer Configuration / Administrative Templates / Windows Components / Windows Update / Re-prompt for restart with scheduled installations

You can configure how often it will nag you (I re-configured it for 720 minutes, which means I'll be asked twice on a work day), or completely disable it.

Oh, I almost forgot: this setting is only loaded when Windows starts, so a reboot is needed. If that stupid dialog is on your screen now, just stop the "Automatic Updates" service (but keep it as Automatic, so it gets reloaded on the next start) and you won't see it again.

Addition (28-June-2006):
In response to this comment, I'd like to flag up here that he is completely right. I offer this tip as a short delaying tactic so that you can continue your work until the end of the day. At the end of the day you shut down your PC and when you reboot the following morning everything is installed and patched up. This should not be used to delay the installation of patches and security updates indefinitely. As a matter of course you should install security updates as quickly as you can.

Fix missing HAL, etc in Windows XP

For example, if you already have some knowledge of the commands involved, many "Missing or corrupt HAL.DLL," "Invalid Boot.Ini," or "Windows could not start…" problems can be fixed with these five shortcut steps:

  • Boot from your XP Setup CD and enter the Recovery Console
  • Run "Attrib -H -R -S" on the C:\Boot.ini file
  • Delete the C:\Boot.ini file
  • Run "Bootcfg /Rebuild"
  • Run Fixboot

API Reference Page

Remove USB Icon

I had an external drive running for hours and hours to stress test it. Then my "remove" icon was gone. Nothing to right click, etc.

Finally found this:

C:\WINDOWS\system32\rundll32.exe shell32.dll,Control_RunDLL hotplug.dll

Just made it an icon on my desktop for emergencies.

Unattended XP Install

Paste code for others

Cleaning up your bblog blog

I am sick of these spammers putting trackback crap. My system doesn't allow trackbacks nor comments, but I have over a thousand filling up my database anyway. When I move fully to my new server, I plan on converting it all to a non-public wiki anyway.

To clean yours out:

Go into SQL, whatever way you normally do.

use blog; <-- yours may be different of course
DELETE FROM bB_comments where type = 'comment';
DELETE FROM bB_comments where type = 'trackback';

Now to stop them: Go into the bblog directory:

mv trackback.php trackback_disabled.php

I'll update this later if there's more.

Good for eBay

Some interesting httpd rewriting with perl

<VirtualHost *>
  ServerName svn.whatever
  ServerAlias svn
my $svn_path = "/var/svn";
my $svn_location = "";
my $trac_path = "/var/trac";
opendir(SVN_ROOT, $svn_path) or die "Cannot open $svn_path";

while (my $name = readdir(SVN_ROOT)) {
  if ($name =~ /^[[:alnum:]]+$/) {
    $Location{"$svn_location/$name"} = {
      DAV => "svn",
      SVNPath => "$svn_path/$name",
      AuthType => "Basic",
      AuthName => "\"Subversion login\"",
      AuthUserFile => "$trac_path/access.user",
      AuthGroupFile => "$trac_path/",
      Require => "group $name",




Pet Care link

Marlin P Jones

I used to buy geek crap from these guys all the time ;)

Tater Tot Casserole

Ingredients: 1 32 oz bag tater tots
½ cup sour cream
½ cup butter
1 cup cheddar cheese
1 can cream of chicken soup
½ med onion (chopped)
1 cup corn flakes

Directions: Thaw tater tots and break up. Add ingredients one by one, mixing after each. Spread in buttered pan, best if let set overnight. Top with corn flakes that have been mixed with ½ cup melted butter. Cook at 350 for 50 mins.

ntpd troubles

Moving server, having trouble. Found this. Seems to fix the windows client, not the linux one.

Subject: ntpd default change

To: None

From: Christos Zoulas

List: current-users

Date: 01/16/2004 17:56:40


People who use windows ntp clients [and other unauthenticated clients] served by netbsd ntp servers will notice after upgrading ntpd to current their clients cannot sync anymore.

So that others don't spend time debugging this:

  1. Authentication in the new version of ntp is turned on by default;

you'll have to turn it off. The option to do this has also changed. If you had in your config file "authenticate no" should change it to "disable auth".

  1. "restrict notrust" means don't trust unauthenticated packets, so remove

notrust from your restrict line. This seemed to work fine before with "authenticate no".

Of course, you should only do this if you really need to. If your clients can authenticate, you should keep authentication on.

I hope this is useful,


My DIY Bike Rack

Using qmail in an RPM (or YUM) world...

I was trying to run 'yum update' on my webmail server, which runs the highly recommended distro. Well, to get it to stop trying to install exim / sendmail / postfix I was able to create a "fake_mta.spec" based on one I found online (but had to transcribe into a VM box):

# Use rpmbuild -bb to install this

Buildarch: noarch
Conflicts: sendmail, exim, postfix, qmail
Group: Productivity/Networking/Email/Servers
License: GPL
Name: fake_mta
Provides: smtp_daemon
Release: 1adm
Summary: Fake package to protect qmail's sendmail files.
Version: 1


A fake package so that qmail won't get hosed,
even tho RPM/YUM don't know about it.

* Sun Sep 25 2005 Aaron D. Marasco
- Shamelessly stolen from SuSE security list (Chris Mahmood)


!GreaseMonkey Rocks! :)

Finally playing with it (instead of sleeping)

Anyway, I like the auto-linkifier, but I changed one line to make it actually tell me it did the autolinkify.


Changed line 39:

a.appendChild(document.createTextNode(match[0] + " (autolinked)"));

Netflix vs. Blockbuster

Well, I've had Netflix since forever (391 DVDs since 2001). Yes, sometimes they throttle. But I haven't had much problem with that because I don't have my queue full of all new releases. To make a long story very short, they kick BB's ass. I have tried BB for a little over two weeks now. The only advantage I see in BB is the ability to get 2 games or DVDs a month at the local store.

Selection: Netflix just has more movies, period. I really want to see the DVD "Star Wars: Clone Wars" from the Cartoon Network. BB has no mention of it, NF has had it in my saved queue since I first heard about it.

Availability: BB is crap. Of course, it is very possible that they are throttling me. Here's my current queue - note this is Apr 2005… I have added at the end of every line the year the movie is from

Movie Title Rating Availability
Bamboozled [WS] R Long Wait 2000
Shaolin Soccer PG13 Short Wait 2001
Eurotrip [WS] [Unrated] NR Short Wait 2004
Astronaut's Wife R Short Wait 1999
Torque [WS] PG13 Short Wait 2004
Honey [WS] PG13 Short Wait 2004
Tommyknockers NR Long Wait 1993
Fish Called Wanda R Short Wait 1988
Booty Call R Long Wait 1997
White Chicks [WS] PG13 Short Wait 2004
Club Dread [WS] NR Short Wait 2004

I have no idea how "The Bootiest Edition" of Booty Call from 1997 can be a 'Long Wait' along with an old Stephen King miniseries. As a guy I used to work with liked to say, "I call bullshit!"

Mjolnir, Ghost, Backup, etc

NOTE TO EVERYBODY WHO IS NOT ME: You can ignore this post. It's just random notes that I need somewhere safe. However, as of Dec 2006, it no longer applies, I use a modified version of SaraB.

Ghost really doesn't like my combo of SATA, IDE, LVM, and whatnot. To get the IDE (hdb) backup copied to the SATA (sda) I had to:
1. GHOST /FDSZ /IAL image /boot from hdb (Drive 4) to an image.
2. Put a partition on sdb (good thing it was empty)
3. Re-run ghost, copy image to sdb (not sda2 where it should be!)
4. Boot from CentOS install DVD with kernel command line:
linux rescue hdb=noprobe noexec=off noexec32=off
(took ~2 hours to find out the last two stop grub 0.95 from segfaulting on an install!)
5. mount up /dev/sda2 (destination) somewhere. Go into that directory and wipe it clean.
6. From that directory: dump -0 -f - /dev/sdb1 | restore -rf -
7. Relabel sdb1 so we don't have two /boot partitions!: tune2fs -Ljunk /dev/sdb1
8. unmount /dev/sda2
9. chroot /mnt/sysimage
10. grub --no-floppy
root (hd0,1)
setup (hd0) <== kept segfaulting here on SATA drive until noexec flags from above.
[Don't use grub-install that bombed too!]

OK, that's all the scraps of paper I can find. I really need to get a backup system running on this server before I migrate to it!

How to edit RAM disk images

I really want to read more about how this nash/lvm stuff works on my server…

Editing Ramdisks (initrds)

Following are the steps that enable one to edit a ramdisk for any changes:

  1. gunzip -c /boot/initrd-.img >initrd.img
  2. mkdir tmpDir
  3. mount -o loop initrd.img tmpDir/
  4. cd tmpDir
  5. Make all necessary changes (copy over modules, edit linuxrc etc)
  6. umount tmpDir
  7. gzip -9c initrd.img >/boot/initrd-.img

(stolen from )


At some point, they stopped making them loopback ISOs and now they are just a compressed cpio archive:

 mkdir initrd
 cd initrd/
 gzip -dc /boot/initrd-2.6.23-0.104.rc3.fc8.img | cpio -id

The cpio is in the "new" format, so when recompressing, you need to use --format='newc' .

(stolen from )

My Kingdom for a Command Line!

I need to disable a drive in Linux (the BIOS hides it, but the kernel is 'too smart'). I searched high and low for "linux kernel command line" etc, etc.

Anyway, what I was looking for:



One of my 3 Linux boxes has that man page. The other 2 DON'T. That, and it seems ancient but helpful nonetheless.

Ghost no likee LVM

Yet more problems with Ghost… LVM crashes it with some nasty error about sectors that were in the negative billions. Anyway, tell it to just blindly copy Linux partition sectors (which sucks):

ghost /FDSZ /IAL

Firefox and Thunderbird Extensions

These are the ones I currently use. Find the links yoself.

FF: (ListZilla exported this list:) someorbityellow 0.2.2 - A theme for Firefox based on Orbit 3+1 Autofill 0.2 - Automatically fill out HTML forms BugMeNot 0.6.2 - Bypass compulsory web registration with the context menu via Ext2Abc 0.2.1 - Alphabetizes your extension manager list. Flashblock 1.3.1 - Replaces Flash objects with a button you can click to view them. Flowing Tabs 0.4 - Wrap excess browser tabs onto multiple rows Forecastfox - Get international weather forecasts and display it in any toolbar or statusbar with this highly customizable extension. googlebar - The Googlebar for Firefox GooglePreview 0.9 - Inserts web site previews in google and yahoo search results. Linky 2.6.0 - Open/download/validate links and pictures in tabs or windows ListZilla 0.5.1 - Outputs an alphabetical list of either extensions or themes to a text, vB code, or HTML file. miniT (drag+indicator) 0.5 - Adds tab dragging with drop place indicator. QuickNote 0.6 - A note taking extension with advanced features SpoofStick 1.05 - A simple way to detect spoofed websites.

Allow Empty Subject (c'mon!)
No New Window on Double Click
Quote Colors
QuickNote (Interchanges with FF)
Virtual Identity (very useful for mailing lists)

A Link

Secret Firefox settings

Shamelessly stolen from:

Go check it out!

Settings for me to remember:

browser.cache.memory.capacity 32000
layout.frames.force_resizability true
config.trim_on_minimize false 

Today was proxy fixing day!

Well, spent half of today fixing computers for the woman's family.

They insist on using AOL DSL, so to share the connection they have to use AnalogX Proxy instead of a "normal" wireless router. I got that up and running a year or so ago. But there have been glitches that I wasn't aware of until today.

Problem 1: Firefox don't work. On either client machine. Weird DNS issue too that I had once before with other reasons (look around on this blog). Basically any site you went to would be the same site as the first. Example - home page is, then I try to go to and it is google again. Type and you get a 404 from saying "I don't have /cgi-bin/whatever "

OK, so the fix. AnalogX proxy cannot handle HTTP/1.1 - you need to do HTTP/1.0 only.

Find "network.http.proxy.version" and make it "1.0"

Problem 2: Apparently, Microsoft in their infinite wisdom f'd up WindowsUpdate with SP2. The one machine worked fine. The other machine (brand new Dell laptop) didn't. So I update the other machine to SP2 and now it doesn't get WindowsUpdate either! Turns out that post-SP2 WindowsUpdate IGNORES THE PROXY SETTINGS YOU PUT INTERNET EXPLORER!!! What's the POINT?!?!

The fix: I'm not sure. There is a program "proxycfg" that sets up the proxy settings. I'm not sure which worked, one of these two (from the command line):

proxycfg -u

Supposedly updates the settings based on your IE ones. I'm not sure if that worked. Other possible:

proxycfg -p ""

(Obviously, put your proxy server/port in there)

As always, if this helped solve your problems, please drop me a 'thanx' note.

Shutting down VMWare clients

In /etc/services on CLIENT:

# Local services
shutdown 6666/tcp

In /etc/inetd.conf on CLIENT:

shutdown stream tcp nowait root /sbin/shutnow

In /sbin/shutnow of CLIENT: (you can prolly get rid of this and move this all into inetd.conf above, but I used to do other things too…)

/sbin/shutdown -h now

On the CLIENT's iptables rules, I have:

0 0 DROP tcp -- eth1 * tcp dpt:6666

So nobody can reach that port from eth1 (internet). The host will be hitting the port on eth2 which is the host-only virtual network.

Then on the HOST in /etc/init.d/kill_vms (new file):

# chkconfig: 4 90 08
# description: Kills VMs on shutdown/reboot
/usr/bin/telnet 6666 < /dev/zero
while [ "foo$PIDS" != "foo" ]
do {
echo "Delaying shutdown... VMWare still on $PIDS"
sleep 10
PIDS=`pidof vmware-vmx`

So then on the server you install the "kill_vms" with chkconfig (fix the IP from to your virtual client IP of course!).

It won't work the first time you reboot, sorry. If you 'touch' the file /var/lock/subsys/kill_vms (at least on my ancient RH based system) then it should. Also, it will hang forever if you don't have the virtual machine set to 'Close on shutdown' and I think maybe another option in VMWare about closing if all clients close.

GPart - Guess partitions

Friend has his partition table hosed. He's starting with this, and it seems to be working very well. Looks awesome, figured I would virtually jot it down…

Follow-up: He was able to get back his data. He actually ended up using this:

mydiff - INI style diff

Well, needed to compare two 300MB directories at work yesterday. Unfortunately, 'regular' diff just wasn't cutting it. A file would be declared different even if it was an INI style moved section… Example:

File 1:

File 2:

Obviously, these two files are EFFECTIVELY the same, but diff will show the first as having the entire [a] section only, then [b] common, then file 2 only having… the same exact [a] section. So I whipped up a perl script to tell me that those two files are the same. This script may have problems and might not do what you want (it was quick and dirty) but it may help others (and me later, which is what this blog is more for anyway)… Looking at it this morning I can see a handful of places to easily condense it, but oh well… and if you care, these were Quartus project files and associated files (CSF, PSF, etc). Note: It fails when there is a < > or | in the text file. But if usually dumps so little you can eyeball it and decide if it is OK.

#!/usr/bin/perl -w
use Data::Dumper;
my $textdump;
my %lhash;
my %rhash;
my $debug = 0;
my $file = $ARGV[0];
# Some filenames have () in them that we need to escape:
$file =~ s/\(/\\(/g;
$file =~ s/\)/\\)/g;

open (INPUT, "diff -iEbwBrsty --suppress-common-lines Projects/$file Folder\\ for\\ Experimenting/Projects/$file|");
while (<INPUT>) {
        if ($_ =~ /Files .*differ$/) {
                #Binary files
                print "Binary file comparison - they differ.\n";
        if ($_ =~ /Files .*identical$/) {
                print "No diff!\n";
        my $a = 0;
        # For some reason chomp was giving me problems (cygwin, win2k)
        $_ =~ /^(.*)([<>\|])(.*)$/;
        my $left = $1;
        my $dir = $2;
        my $right = $3;
        $left =~ /^\s*(.*?)\s*$/;
        $left = $1;
        $right =~ /^\s*(.*?)\s*$/;
        $right = $1;
#       print "1: '$left'\n2: '$dir'\n3: '$right'\n";
        # OK, now we have all we wanted...
        if ($dir eq '<') {
        if ($dir eq '>') {
        if ($dir eq '|') {
        print "Missed this: $left $dir $right\n" unless $a;
} # while

foreach (sort keys %lhash) {
        if (not exists $rhash{$_}) {
                # No Match...
                print "Only in left: '$_'\n";
        } else {
                if ($lhash{$_} != $rhash{$_}) {
                        print "Left count not equal to Right, $_\n";

foreach (sort keys %rhash) {
        if (not exists $lhash{$_}) {
                # No Match...
                print "Only in right: '$_'\n";
        } else {
                if ($lhash{$_} != $rhash{$_}) {
                        print "Left count not equal to Right, $_\n";

print Dumper(\%rhash) if $debug;
print Dumper(\%lhash) if $debug;

Finally... some rebate laws!?!

(Note, I almost never advocate new laws…)

Yes, it is California only, but note (from FatWallet):

I think the law will have a nationwide effect. Here's why:

Almost 75% of technology companies are headquartered in California, so all of them are subject directly to the law.

The law pertains to anyone who offers a rebate to a California resident, and that affects the remainder of companies (even though California would have a tougher time enforcing it's law on companies outside of its jurisdiction).

No matter, since everyone will have to comply with the California law where it pertains to California residents, they will not be able to differentiate them from residents of other states and so they will be forced to apply the terms of the law to everyone.


The FTC WANT you to report to them when you don't get the rebates using consumer protection laws! :)

Cool rescue CD system

Print everything after the last occurrence

This may be long and convoluted but it is the first thing that came to mind and it worked.

Had a log file that would delimit with "As Of nn/nn/nnnn" which could be multimegabytes. Didn't feel like doing a perl solution that day, so:

grep -n 'As Of' sourcefile | tail -1 | awk -F":" '{print $1}' | xargs -r -iX awk 'FNR>=X' sourcefile > outfile

Again, likely an easier solution, but this was Q&D.

More cpio tricks

Cleaning out my desk and came across these notes…

find /mnt/old_root -depth -print | cpio -odv | gzip -c -v -1 > /opt/bad_disk/old_root.cpio.gz

find -depth -print | cpio -odv > tempo.cpio
cpio -idvm < tempo.cpio

Neat trick:

tar cf - . | (cd /usr/local ; tar xvf - ) 

Peeking on a process

We have a problem at work with an ssh failing, but I don't have access to the source of the program running ssh. So I replaced ssh with this script, renaming the old ssh to ssh_orig. The extra flags on ssh were just me seeing if I can get the thing to work, you can ignore them:

echo $* >> /tmp/ssh-$$-in
ssh_orig -C -2 -x $* | tee /tmp/ssh-$$-out

This creates a bunch of files in /tmp/ with the input command line string given to the script in the -in files and the output in the -out files.

Note, this will probably cause a security audit problem since you messed with ssh. ;)

Anti-phishing site

Smartass Answer

Next time I get a dumb Q:

eBay Negative Ratings Sorter

Removing Norton !AntiVirus for GOOD

Hello Aaron,

Thank you for contacting Symantec Online Technical Support.

In your message you wrote:

I previously had NAV 2000 installed. I had paid for subscription upgrades and my last one expired 6/21/04. I bought NAV 2004. I went to install, it said to uninstall 2000, so I did. I now installed and activated NAV 2004. However, when I start it, it says I get 366 days of subscription but still shows 6/21/04 as the end date! I cannot even run the program.

Aaron, this issue occurs due to traces of the previous version still present on your computer. In order to resolve this issue, I suggest that you uninstall Norton AntiVirus (NAV) 2004, uninstall previous version completely using Rnav2003.exe utility, perform clean boot of Windows and then reinstall NAV 2004.

Please follow the steps in the URL provided below to uninstall NAV 2004:

Title: 'Uninstalling Norton AntiVirus 2004 or Norton AntiVirus 2004 Professional Edition' Document ID: 2003080311011006

Web URL:

Rnav2003.exe is a utility that manually uninstalls the program files and registry entries that are installed by NAV 5.0/2000/2001/2002/2003. Please follow the steps in the URL provided below to uninstall NAV by using Rnav2003.exe:

Title: 'How to uninstall Norton AntiVirus 2003 or earlier by using the Rnav2003.exe removal utility' Document ID: 2001092114452606

Web URL:

A clean boot is a restart of Windows with no applications running and with as few extra drivers loading as possible. Please refer the document provided below for instructions to clean boot your computer:

Title: 'Configuring Windows 98 to clean boot' Document ID: 199869145548

Web URL:

Please click on the URL link mentioned below to read the Knowledge Base Document for the installation procedure, if you have the installation program in the CD:

Title: 'Installing Norton AntiVirus 2004 or Norton AntiVirus 2004 Professional from the CD' Document ID: 2003072912563606

Web URL:

If you have purchased the software from Symantec Store, please be aware that when you purchase a downloadable product from the Symantec Store, you may, for the purpose of reinstalling a replacement copy, download the software any number of times from the Symantec Store within a period of 60 days from the date of purchase at no additional charge.

If it is more than 60 days then this is not possible unless the Extended Download Service (EDS) had been previously purchased.

If you have purchased the EDS, you may download the software any number of times, for a period of one year after the date of purchase.

If you know your order number and your password, or know both the email address and credit card number under which the order was placed, you can download it again from Symantec store. Please note that you may download the software only for a period of one year after the date of purchase.

For re-downloading the software, please refer to the link provided below:

Web URL:

If you do not remember your order details or encounter a difficulty during the download process or have any concerns regarding the download of the software, I recommend that you contact Symantec Store. You may contact Symantec Store directly by calling the following phone numbers:

International: 1-952-646-5623 North America: 866-285-6460

Or by Web at:\question

Note that Symantec Store is only responsible for software that is downloaded from the Symantec Store Web site. If you purchased the Norton software from another location then please contact the site you purchased from for assistance regarding the re-download of the software.

Please refer to the link provided below for the installation of Norton AntiVirus (NAV) that has been downloaded:

Title: 'Installing Norton AntiVirus 2004 or Norton AntiVirus 2004 Professional Edition that was downloaded from the Symantec Store' Document ID: 2003072611124806

Web URL:

Please let us know if this resolves the issue or if we can be of further assistance.


Yeshaswini Symantec Authorized Technical Support

Radio listings

Radio listings. If you want to know what song you just heard. And the album it is from.

One of the few advantages of a handful of media companies owning all the stations.

Windows XP Wireless Network Dropping?

This site is AWESOME.

It's trying to be a collective knowledge base of the world.

Sounds cheesy, don't it?

I can click this link all frikken DAY!

How else would I learn about ?

What's so cool is that ANYONE can contribute. In fact, if you looked up 'Prospect' this morning you wouldn't see my hometown in CT. Why? Well, somebody else wrote up an article (actually, a bot that pulled the data from gov't servers) but never added it to the 'disambiguity' page. So I just did. And NOW if you search for 'Prospect', you'll see a link to the Prospect, Connecticut page.

Bank routing numbers

Do it until it works!

# From (Ben Okopnik)
# Rerun command line until successful
until $*; do sleep 1; done

Lazy Origami

cpio Cheat Sheet

Bernie's abbreviated Solaris/Linux cpio How-To

1. Backing up files to a cpio file

cd to the directory you want to archive, and issue the command

solaris-$ find . -depth -print | cpio -ocBdum > filename.cpio


linux-$ find . -depth -print | cpio -o -H newc > filename.cpio

2. Restoring files from a cpio file

cd to the directory you want the archived files written to, and issue the command

solaris-$ cpio -icBdum < filename.cpio


linux-$ cpio -idum -H newc < filename.cpio

3. Backing up files to a cpio tape

cd to the directory you want to archive, and issue the command

solaris-$ find . -depth -print | cpio -ocBdum > /dev/rmt/0


linux-$ find . -depth -print | cpio -o -H newc > /dev/rmt0

4. Restoring files from a cpio tape

cd to the directory you want the archived files written to, and issue the command

solaris-$ cpio -icBdum < /dev/rmt/0


linux-$ cpio -idum -H newc < /dev/rmt0

5. Restoring a particular file from a cpio tape

cd to the directory you want the archived file (/etc/hosts in this example) written to, and issue the command

solaris-$ cpio -icBdum < /dev/rmt/0 "/etc/hosts"


linux-$ cpio -idum -H newc < /dev/rmt0 "/etc/hosts"

6. Some other local (Linux) examples

local out:

find etc -depth -print | cpio -o -H newc > cpios/etc.cpio
find include -depth -print | cpio -o -H newc > cpios/include.cpio

local in:

cpio -idum -H newc < /mnt/home/cpios/etc.cpio
cpio -idum -H newc < /mnt/home/cpios/include.cpio

7. Some network (Linux) examples

net out:

pull: remote cpio -> local archive
rsh -n remote_host "cd /remote_dir ; find remote_file -depth -print | cpio -o -H newc" > local_archive
push: local cpio -> remote archive
find local_file -depth -print | cpio -o -H newc -F remote_host:/remote_dir/remote_archive

net in:

pull: remote archive -> local cpio
cpio -idum -H newc -F remote_host:/remote_dir/remote_archive
rsh -n remote_host dd if=/remote_dir/remote_archive | cpio -idum -H newc
push: local archive -> remote cpio
dd if=/local_dir/local_archive | rsh -n remote_host "cd /remote_dir ; cpio -idum -H newc"

Free Web Site Registrations

Skip logins on pages like New York Times…

How Old Are You?

Today is my 10430th day. Yay.

Finding pinouts

Found this online today when looking for PCI pinouts…
More specifically…

Also useful is

Here's the PCI Spec I DID find...

Google Groups Link

              The PCI (Peripheral Component Interconnect) Bus

This file is not intended to be a thorough coverage of the PCI standard.
It is for informational purposes only, and is intended to give designers
and hobbyists an overview of the bus so that they might be able to design
their own PCI cards. Thus, I/O operations are explained in the most
detail, while memory operations, which will usually not be dealt with
by an I/O card, are only briefly explained. Hobbyists are also warned
that, due to the higher clock speeds involved, PCI cards are more
difficult to design than ISA cards or cards for other slower busses.
Many companies are now making PCI prototyping cards, and, for those
fortunate enough to have access to FPGA programmers, companies like
Xilinx are offering PCI compliant designs which you can use as a starting
point for your own projects.

For a copy of the full PCI standard, contact:

     PCI Special Interest Group (SIG)
     PO Box 14070
     Portland, OR 97214

     There is also a spec for CompactPCI, which uses the same timing
and signals, but uses a eurocard connector and format. This is not
presently covered in any detail within this document.

Pinout (5 volt and 3.3 volt boards)

               -12V     01      *TRST
                TCK             +12V
                GND             TMS
                TDO             TDI
                +5V             +5V
                +5V             *INTA
              *INTB             *INTC
              *INTD             +5V
            *PRSNT1             reserved
           reserved     10      +I/O V (+5 or +3.3) 
            *PRSNT2             reserved
                GND   Key3.3    GND
                GND   Key3.3    GND
           reserved             reserved
                GND             *RST
                CLK             +I/O V (+5 or +3.3)
                GND             *GNT
                REQ             GND
+I/O V (+5 or +3.3)     20      reserved
               AD31             AD30
               AD29             +3.3V
                GND             AD28
               AD27             AD26
               AD25             GND
              +3.3V             AD24
              C/BE3             IDSEL
               AD23             +3.3V     
                GND             AD22      
               AD21             AD20
               AD19     30      GND
              +3.3V             AD18  
               AD17             AD16
              C/BE2             +3.3V
                GND             *FRAME
              *IRDY             GND
              +3.3V             *TRDY
            *DEVSEL             GND
                GND             *STOP
              *LOCK             +3.3V
              *PERR     40      SDONE
              +3.3V             *SBO
              *SERR             GND
              +3.3V             PAR
              C/BE1             AD15
               AD14             +3.3V
                GND             AD13
               AD12             AD11
               AD10     49      AD9
                GND    Key5     GND
                GND    Key5     GND
                AD8     52      C/BE0
                AD7             +3.3V
              +3.3V             AD6
                AD5             AD4
                AD3             GND
                GND             AD2
+I/O V (+5 or +3.3)             +I/O V (+5 or +3.3) 
             *ACK64     60      *REQ64
                +5V             +5V
                +5V     62      +5V
             (64 Bit Bus Extension Only)
           reserved     63      GND      
                GND             C/BE7
              C/BE6             C/BE5
              C/BE4             +I/O V (+5 or +3.3)
                GND             PAR64
               AD63             AD62
               AD61             GND
+I/O V (+5 or +3.3)     70      AD60
               AD59             AD58
               AD57             GND
                GND             AD56
               AD55             AD54
               AD53             +I/O V (+5 or +3.3)
                GND             AD52
               AD51             AD50
               AD49             GND
+I/O V (+5 or +3.3)             AD48   
               AD47     80      AD46
               AD45             GND
                GND             AD44
               AD43             AD42
               AD41             +I/O V (+5 or +3.3)
                GND             AD40
               AD39             AD38
               AD37             GND
+I/O V (+5 or +3.3)             AD36   
               AD35             AD34
               AD33     90      GND
           reserved             reserved
           reserved             GND
                GND     94      reserved

* - Active Low

PCI slots are keyed so that a 3.3 volt card cannot be plugged into a 5
        volt slot, and a 5.5 volt card cannot be plugged into a 3 volt
        card. Dual voltage cards are possible.
Key3.3 - At this location, a key is present on 3.3 volt boards. On 5 volt
        boards, these pins are GND.
Key5 - At this location, a key is present on 5 volt boards. On 3.3 volt 
        boards, these pins are GND.

Signal Descriptions:

AD(x): Address/Data Lines.
CLK: Clock. 33 MHz maximum.
C/BE(x): Command, Byte Enable.
FRAME: Used to indicate whether the cycle is an address phase or
     or a data phase.
DEVSEL: Device Select.
IDSEL: Initialization Device Select
INT(x): Interrupt
IRDY: Initiator Ready
LOCK: Used to manage resource locks on the PCI bus.
REQ: Request. Requests a PCI transfer.
GNT: Grant. indicates that permission to use PCI is granted.
PAR: Parity. Used for AD0-31 and C/BE0-3.
PERR: Parity Error.
RST: Reset.
SBO: Snoop Backoff.
SDONE: Snoop Done.
SERR: System Error. Indicates an address parity error for special cycles
        or a system error.
STOP: Asserted by Target. Requests the master to stop the current transfer 
TCK: Test Clock
TDI: Test Data Input
TDO: Test Data Output
TMS: Test Mode Select
TRDY: Target Ready
TRST: Test Logic Reset

The PCI bus treats all transfers as a burst operation. Each cycle begins
with an address phase followed by one or more data phases. Data phases
may repeat indefinately, but are limited by a timer that defines the
maximum amount of time that the PCI device may control the bus. This
timer is set by the CPU as part of the configuration space. Each device
has its own timer (see the Latency Timer in the configuration space).

The same lines are used for address and data. The command lines are also
used for byte enable lines. This is done to reduce the overall number
of pins on the PCI connector.

The Command lines (C/BE3 to C/BE0) indicate the type of bus transfer during
the address phase.

C/BE    Command Type
0000    Interrupt Acknowledge
0001    Special Cycle
0010    I/O Read
0011    I/O Write
0100    reserved
0101    reserved
0110    Memory Read
0111    Memory Write
1000    reserved
1001    reserved
1010    Configuration Read
1011    Configuration Write
1100    Multiple Memory Read
1101    Dual Address Cycle
1110    Memory-Read Line
1111    Memory Write and Invalidate

The three basic types of transfers are I/O, Memory, and Configuration.

PCI timing diagrams:

            ___     ___     ___     ___     ___     ___    
CLK     ___|   |___|   |___|   |___|   |___|   |___|   |___

        _______                                   _________
FRAME          |_________________________________|

                ______  _______  ______  ______  ______
AD      -------<______><_______><______><______><______>---
                Address  Data1    Data2   Data3   Data4

                ______  _______________________________
C/BE    -------<______><_______________________________>---
                Command   Byte Enable Signals

         ____________                                   ___
IRDY                 |_________________________________|

         _____________                                  ___
TRDY                  |________________________________|

         ______________                                 ___
DEVSEL                 |_______________________________|

PCI transfer cycle, 4 data phases, no wait states.
Data is transferred on the rising edge of CLK.

                         [1]              [2]        [3]
            ___     ___     ___     ___     ___     ___     ___     ___
CLK     ___|   |___|   |___|   |___|   |___|   |___|   |___|   |___|   |__

        _______                                                  _________
FRAME          |________________________________________________|

                                   A               B               C
                ______           ______________  ______  _____________
AD      -------<______>---------<______________><______><_____________>---
                Address           Data1           Data2   Data3

                ______  ______________________________________________
C/BE    -------<______><______________________________________________>---
                Command   Byte Enable Signals

         ____________                                    _____         ___
IRDY                 |__________________________________|     |_______|

                        Wait            Wait
         ______________________         ______                         ___
TRDY                           |_______|      |_______________________|

         ______________                                                ___
DEVSEL                 |______________________________________________|

PCI transfer cycle, with wait states.
Data is transferred on the rising edge of CLK at points labled A, B, and C.

Bus Cycles:

Interrupt Acknowledge (0000)

        The interrupt controller automatically recognizes and reacts to
the INTA (interrupt acknowledge) command. In the data phase, it transfers
the interrupt vector to the AD lines.

Special Cycle (0001)

        0x0000                  Processor Shutdown
        0x0001                  Processor Halt
        0x0002                  x86 Specific Code
        0x0003 to 0xFFFF        Reserved

I/O Read (0010) and I/O Write (0011)

        Input/Output device read or write operation. The AD lines contain
a byte address (AD0 and AD1 must be decoded).
PCI I/O ports may be 8 or 16 bits.
PCI allows 32 bits of address space. On IBM compatible machines, the
Intel CPU is limited to 16 bits of I/O space, which is further limited
by some ISA cards that may also be installed in the machine (many ISA
cards only decode the lower 10 bits of address space, and thus mirror
themselves throughout the 16 bit I/O space). This limit assumes that the
machine supports ISA or EISA slots in addition to PCI slots.
        The PCI configuration space may also be accessed through I/O
ports 0x0CF8 (Address) and 0x0CFC (Data). The address port must be
written first.

Memory Read (0110) and Memory Write (0111)

        A read or write to the system memory space. The AD lines contain
a doubleword address. AD0 and AD1 do not need to be decoded. The Byte
Enable lines (C/BE) indicate which bytes are valid.

Configuration Read (1010) and Configuration Write (1011)

        A read or write to the PCI device configuration space, which is
256 bytes in length. It is accessed in doubleword units.
AD0 and AD1 contain 0, AD2-7 contain the doubleword address, AD8-10
are used for selecting the addressed unit a the malfunction unit,
and the remaining AD lines are not used.

Address     Bit 32      16   15           0

00          Unit ID        | Manufacturer ID
04          Status         | Command
08          Class Code               | Revision
0C          BIST  | Header | Latency | CLS
10-24            Base Address Register
28          Reserved
2C          Reserved
30          Expansion ROM Base Address
34          Reserved
38          Reserved
3C          MaxLat|MnGNT   | INT-pin | INT-line
40-FF       available for PCI unit

Multiple Memory Read (1100)

This is an extension of the memory read bus cycle. It is used to read large
blocks of memory without caching, which is beneficial for long sequential
memory accesses.

Dual Address Cycle (1101)

        Two address cycles are necessary when a 64 bit address is used,
but only a 32 bit physical address exists. The least significant portion
of the address is placed on the AD lines first, followed by the most
significant 32 bits. The second address cycle also contains the command
for the type of transfer (I/O, Memory, etc). The PCI bus supports a 64 bit
I/O address space, although this is not available on Intel based PCs due
to limitations of the CPU.

Memory-Read Line (1110)

        This cycle is used to read in more than two 32 bit data blocks,
typically up to the end of a cache line. It is more effecient than
normal memory read bursts for a long series of sequential memory accesses.

Memory Write and Invalidate (1111)

        This indicates that a minimum of one cache line is to be transferred.
This allows main memory to be updated, saving a cache write-back cycle.

Bus Arbitration:

This section is under construction.

PCI Bios:

This section is under construction.


(C) Copyright 1996 by Mark Sokos. This file may be freely copied and
distributed, provided that no fee is charged.

This information is provided "as-is". While I try to insure that the
information is accurate, errors and typos may exist. Send corrections
and comments to [email protected]. The latest version of this file
may be found at


"Inside the PCI Local Bus" by Guy W. Kendall
Byte, February 1994  v 19 p. 177-180

"The Indispensible PC Hardware Book" by Hans-Peter Messmer
ISBN 0-201-8769-3

USS Anne Arundel

I'm living in Anne Arundel County and was looking up a law when I stumbled on this…

USS Anne Arundel - saw time in WWII both in the Atlantic (D-Day Troop Transport) and the Pacific…

Looks like an OCR scan that needs some proof-reading…

Seems like a cool site otherwise.

(Ed note - since then, I have created a Wikipedia article.)

mp3Tag RULES!

Let me just say this thing rocks… I need to clean up my MP3 tags because of my new iPod… I was doing a lot of manipulating with Perl, but this is so much easier. It runs under windows, but does handle most Perl REs…

Anyway, I highly recommend adding these two new "Actions" I wrote:

  1. Remove "/N" from "n/N" track numbers
    Replace with regular expression
    Field: TRACK
    Regular expression: (\d+)/\d+
    Replace matches with: $1
  2. Force track numbers to be 2 digits. (You can do this in file renaming with '$num("%track%",2)' but I cannot find another quick way to fix the TAG)
    Replace with regular expression
    Field: TRACK
    Regular expression: ^(\d)$
    Replace matches with: 0$1

These two actions can be applied together in the order listed.

Weird DNS Problem - reinstall TCP/IP on WinXP

Problem: URLs don't properly translate.

First, I go to:

(It's the home page)

Then, since it is a new machine, I do Tools→Windows Update. The link should be:

What comes out:

404 Error from Google - just like this ( with the URL trying to go to google not Microsoft, as if the DNS lookup returned the wrong IP.

At one point, I got to come up, but it kept looping and would show the main web page (but all the graphics were broken icons).

That pretty much sums it up. I have no ideas except (1) try to reinstall the TCP/IP stack (which is tough on WinXP) and (2) just wipe the damned machine and try again since it is new anyway.

Oh yeah, lastly, I removed all the network devices and reinstalled them from scratch, so there's no stupid 'Network Bridge" stuff.


netsh int ip reset c:\resetlog.txt

Full discussion:

Addendum 2007-12-12

A friend of mine had a similar problem recently, when Norton Antivirus decided that his Cybersitter was a virus and hosed the TCP stack. For that, the command was the very similar:

netsh winsock reset

It looks like there are quite a few interesting commands in there.

netsh winsock ?
netsh int ?
netsh int ip ?
netsh int ipv6 ?
netsh int ipv6 isatap ?
netsh int ip dump

Circuit City Manufacturer Rebate Escalation Line

1-800-241-1343 or ccrebatehelp@…

"We apologize if you are having trouble with your manufacturer rebates, and we are here to help you. Monday-Friday 10:00am-6:30pm EST

Please have your Circuit City sales receipt or manufacturer's rebate form available when you call us so that we can solve your problem as quickly as possible."

Makefile notes

Checking tabs:
cat -v -t -e makefile

Macro substitution:
SRCS = defs.c redraw.c calc.c
ls ${SRCS:.c=.o}
result: calc.o defs.o redraw.o
Second string can be nothing too to truncate

Suffix Rule: default begavior for a suffix:
.SUFFIXES : .o .c .s

.c.o :
$(CC) $(CFLAGS) -c $<
.s.o :
$(AS) $(ASFLAGS) -o $@ $<

$< is what triggered (only valid in suffixes)

Forcing rebuilds:
all :
make enter testex "CFLAGS=${CFLAGS}" "FRC=${FRC}"

enter : ${FRC}

testex : ${FRC}

[nothing here]

Then normal "make all" does normal. "make all FRC=force_rebuild" will do all

Debugging make files:
Try "make -d"

Misc notes:
A line starting with a hyphen ignores errors resulting from execution of that command

$? = List of prereqs that have changed
$@ = Name of current target, except for libraries, which it is the lib name
$$@ = Name of current target if used AFER colon in dependency lines
$< = Name of current prereq only in suffix rules.
$* = The name (no suffix) of the current prereq that is newer. Only for suffixes.
$% = The name of the corresponding .o file when the current target is a library
Macro Mods: (not all makes support)
D = directory of any internal mac, ex: ${@D}
F = File portion of any internal except $?

Special Tagets:
.DEFAULT : Executed if make cannot find any descriptions or suffix rules to build.
.IGNORE : Ignore error codes, same as -i option.
.PRECIOUS : Files for this target are NOT removed if make is aborted.
.SILENT : Execute commands but do not echo, same as -s option.
.SUFFIXES : See above. 

Don't Plug a 10/100 Switch Into Your Phone!

Bad things happen.

I have a patch panel for structured wiring in my house. Took me a ½ hour to figure out why all my phones were dead - I had plugged the hub into the phone system! Oopsie!

Mom's Apple Pie Recipe

Mmm Mmm Good…

2 lb Cortlands
¾ cup sugar
¼ cup flour
1 tsp. cinnamon
dash nutmeg
2 tbsp butter/marg
lemon juice
Pillsbury 9" Pie Crust

Peel/Cut Apples. Generous amount of lemon juice after first and every few - coating to prevent oxidation.

Mix with sugar, flour, nutmeg, cinn. in bowl.

Pour into crust

Dot with butter (~pat each quarter and center)

Put on top crust, seal well, vent w/ knife

40 minutes at 450F (preheated) - Golden Brown, slight bubbling from vents

Wayne's Windows Administrator Support

Many (stupid) mail servers are now assuming all cable modem users are SPAMmers, so more and more are refusing to accept my mail. Here's a script that I run to regenerate QMail's 'smtproutes' whenever I need to add new ISPs… Start:


open OUTFILE, ">smtproutes";

$s = "\n"; # Replace with your ISP's outbound server

foreach (<DATA>) {
next if /^\w*$/;
next if /#/;
print OUTFILE "$_$s.$_$s";

#CS is old compuserv, now AOL

Mozilla Must-Haves

Traceroute Sites

Using bBlog on your own server.

The installation program asks for your MySQL database name and password. I couldn't get the to work by myself, because I run my own so no admin just handed me the info. If you're in the same boat, here's all you need to do:

/usr/local/mysql/bin/mysql -p

Enter password: mypassword

mysql> CREATE database blog;
    -> ON blog.*
    -> TO blog@localhost
    -> IDENTIFIED BY 'myblogpassword';

Obviously, change the stuff in bold. Then in bBlog's setup use the user and database name of 'blog' with the password set above.

How to delete a file already in use by Windows

***** PROBLEM *****

How to delete a file already in use by Windows?

~~~~~ SOLUTION ~~~~~

1. Create the file:


2. Add the following 2 lines:


You will need the DOS short name, not the Windows' long name.

3. Save > Restart Windows

The file will be deleted when you restart.

All the GNU utils you can shake a CLI at for Windows

Has Mozilla stopped downloading?

Erase compreg.dat from Mozilla directory. It'll get rebuilt automagically.

ipchains to iptables quickie

(This is an old email I found I had written for some of my friends. No support provided, sorry.)

Here's my mini write-up for people to lazy too read the HOWTOs. ;)
See also:

The attached file goes in your startup stuff.
In-line comments for ya to understand this stuff, I hope... bold stuff isn't in the real file. If you have any Q's lemme know. LEARN BY DOING. ;)
<lotsa snips in here>
Do a "iptables --help" to see the quick commands of P, F, N, I, A, X, and D...
                # Set policies
                ./iptables -P INPUT ACCEPTI allow anything not specifically blocked thru the firewall... oh well.
                ./iptables -P FORWARD ACCEPTJeff claims to block everything he doesn't accept, and then accepts
                ./iptables -P OUTPUT ACCEPT1024 and above.... 6 of one, 1/2 dozen the other ;)
                # User defined tables
                # Shared by INPUT and FORWARD
                  ./iptables -N Protect"N" means new chain creation. But in case we run this multiple times....
                  ./iptables -F Protect"F" flushes the chain if it already existed
                # Now set up the INPUT chain  There are three default chains - INPUT, FORWARD, OUTPUT.
*** UNLIKE 2.2/IPCHAINS the INPUT and OUTPUT chains are only if the packet is destined for the firewall. FORWARD means the packet is gonna be FORWARDed (duh). ***
                  ./iptables -A INPUT -j Protect                         # Spoofs, etcEverything coming IN goes thru Protect
                  ./iptables -A INPUT -p tcp --dport 20:21 -j In_FTP     # FTP inTCP w/ destination ports 20-21 go thru In_FTP
                  ./iptables -A INPUT -p tcp -j In_Mail                  # Mail in (port can be 25 or 110)ANY TCP packet goes to In_Mail
                  ./iptables -A INPUT -p udp --dport 123 -j In_TimeSrv   # Time ServersUDP with port 123 destination goes
                  ./iptables -A INPUT -j In_New     # Any new extIF connections not specified above are blocked (telnet, ssh, etc)All check
                # The FORWARD chain
                  ./iptables -A FORWARD -j Protect                       # Spoofs, etcEverything FORWARDED goes thru Protect also
(this is why Protect is separate from others)
                # The Protect chains
                  ./iptables -A Protect -j Protect_HackersAll go here...
                  ./iptables -A Protect -i $extIF -p udp --sport 53 -j Protect_DNSuUDP source port 53 coming IN ppp+ (any ppp)
Bill would put eth2 or whatever cable modem set to

*** UNLIKE 2.2/ipchains *** -i means INPUT interface NOT 'INTERFACE'. -o means OUTPUT interface now. -i can only match INPUT and FORWARD chains, -o can only match in OUTPUT chains...
                  ./iptables -A Protect -p icmp -j Protect_ICMPICMP packets go to Protect_ICMP
These next ones get complicated. "-d" is DESTINATION IP. "-m limit" limits the number of matches of a rule. Check the HOWTO for more info. That stops it to one log entry per second. The "--log-prefix" is required for fireparse 2.0. The "Hackers" part tells me what chain matched, and the ":1" says what rule number matched. **NOTE** that you need TWO rules to LOG and then do something!!! (I am not happy with that) Oh yeah the a= part is for fireparse too... tells what its action was.
                  ./iptables -A Protect_Hackers -d -m limit --limit 1/s -j LOG --log-prefix "fp=Hackers:1 a=DROP "
                  ./iptables -A Protect_Hackers -d -j DROPDROP the packet (vs. ACCEPT, REJECT, LOG, RETURN)
[RETURN = Fall off the end of the chain. New to 2.4/IPTables. YAY!!!]
                  ./iptables -A Protect_Hackers -s -j DROP-s is source IP
This next line is just a little combo adding the input interface
                  ./iptables -A Protect_Spoofs -s -i $extIF -m limit --limit 1/s -j LOG --log-prefix "fp=Spoofs:3 a=DROP "
                  ./iptables -A Protect_Spoofs -s -i $extIF -j DROP
NOTE this next line! The new system combines NAT and packet filtering - by time the filter sees the packet, it HAS ALREADY BEEN MASQ'D BACK - meaning the destination can EASILY be the internal address of your other machines!!!
                  # Destination of 192.168.x.x is NOT a spoof because packet filter sees MASQ answers coming back with that!
Just showing that you can do subnetting on the matches (some above too):
                  ./iptables -A Protect_DNSu -s -j ACCEPT
This line logs that DNS came thru that didn't come from my "normal" DNS sources. Note there is no related action, so it falls off the end of the chain and back to where it started (in the INPUT or FORWARD chain)
                  ./iptables -A Protect_DNSu -m limit --limit 1/s -j LOG --log-prefix "fp=DNS:1 a=ACCEPT "
Just like TCP/UDP have ports, ICMP has types.... numeric or words:
                  ./iptables -A Protect_ICMP -p icmp --icmp-type 5 -i $extIF -m limit --limit 1/s -j LOG --log-prefix "fp=ICMP:1 a=DROP "
                  ./iptables -A Protect_ICMP -p icmp --icmp-type 5 -i $extIF -j DROP
                  ./iptables -A Protect_ICMP -p icmp --icmp-type echo-request -m limit --limit 2/s -j ACCEPT # Stop ping floods
                  ./iptables -A Protect_ICMP -p icmp --icmp-type echo-request -m limit --limit 1/s -j LOG --log-prefix "fp=ICMP:2 a=DROP "
                  ./iptables -A Protect_ICMP -p icmp --icmp-type echo-request -j DROP
These are for future use (I may open FTP some day)... states can be NEW, INVALID, RELATED, CONNECTED. This stops any NEW or bad connections (note I don't waste processor time checking the protocol or port since that was already done to get here!!!) Note that FTPs from my internal network will be let thru:
                  ./iptables -A In_FTP -i $extIF -m state --state NEW,INVALID -m limit --limit 1/s -j LOG --log-prefix "fp=In_FTP:1 a=DROP "
                  ./iptables -A In_FTP -i $extIF -m state --state NEW,INVALID -j DROP
Some day I may do POP3 (port 110) so I have my 'mail' rule handle 25 and 110:
                  ./iptables -A In_Mail -p tcp --dport 25 -i $extIF -j ACCEPT
                  ./iptables -A In_Mail -p tcp --dport 110 -i $extIF -m limit --limit 1/s -j LOG --log-prefix "fp=In_Mail:1 a=DROP "
                  ./iptables -A In_Mail -p tcp --dport 110 -i $extIF -j DROP
This stops any NEW connections from ppp+ to ports 0 to 1023 (the classical Unix "reserved" ports) - combo of state, limit, LOG:
                  ./iptables -A In_New -i $extIF -p tcp --dport 0:1023 -m state --state NEW,INVALID -m limit --limit 1/s -j LOG --log-prefix "fp=In_New:1 a=DROP "
                  ./iptables -A In_New -i $extIF -p tcp --dport 0:1023 -m state --state NEW,INVALID -j DROP

Now comes Part II - NAT:
                # Just masq everything outbound
IPTables is extensible. One extension is NAT - "-t nat" says to load the NAT table. It must be FIRST on the line. For NAT, there are a few internal chains, the most important being PREROUTING and POSTROUTING (entering and leaving the machine). MASQUERADE means SNAT - Source Network Address Translation - what we want to do to hide a network behind a single IP for outbound data. Note the use of "-o" vs. the "-i" above. iptables actually has primitive load balancing for both SNAT and DNAT...
                ./iptables -t nat -A POSTROUTING -o $extIF -j MASQUERADE
                # Set some hooks for the port forwarding scripts
                ./iptables -t nat -N PortFW
Seems odd, but I made a chain called PortFW. That way my firewall setup scripts can just wipe it without worrying about other things that may be in the PREROUTING chain.
                ./iptables -t nat -A PREROUTING -i $extIF -j PortFW
The "PortFW" chain is "DNAT" - Destination NAT - we hide from the internet the DESTINATION of the packet. AKA "Port Forwarding" in its simplest form. Again, this also allows load balancing if we wanted to run web server clusters. I will give you those other scripts some other time.
                echo 1 > /proc/sys/net/ipv4/ip_forwardTurns on the kernel packet forwarding
                echo "."
        # Make sure we get called to stop later
        touch /var/lock/subsys/packetfilterThe shutdown script ("/etc/rc.d/rc" sees this file and tells us to "stop")

Unix commands you shouldn't do at 3 AM....

…well, ever.

rm -rf .*

rpm -qa | xargs rpm --erase

I've done them both and felt the pain. I did the first on a 2TB machine. In 1996, when 2TB was a lot more impressive.

Right click hanging horribly?

Other symptoms included moving any file to the trash, even with 'delete' button and no context menu used.

Re-enable PGPsdkService

This took me about 6 months to track down!!!

Ghost and error 19922 SOLVED

The Symantec 'knowledge base' has this this useless link.

The 'solution' is "Symantec is investigating this problem to determine a resolution. This document will be updated when new information or a solution is available." - They have said this since at least version 6 - search their site and see at least 4 different Ghost versions saying that they are looking into it!

My situation, and fix, hope it works for you… NAV Pro 2K4 had crashed a few days before (it only happened that once) and I never shut off my desktop. Well, what was happening was the dump file was spanning at the 2GB mark. NAV has hooks in the OS that do RPC calls when the file is closed, telling NAV to scan it. Since NAV wasn't running, the RPC call was timing out. By time the RPC call failed, the Ghost client had given up the ghost (ha!) failing with error 19922.

A simple reboot fixed it, but it still took me about 3 hours of being very worried to fix, because I had made a major change to my network since the last backup…

Strange Compression Comparisons

Well, if you're desparate to do bzip2 under windows, or pretty much any other cool GNU thing (find, grep, less, wget, etc) you can download them at

C:\Documents and Settings\me>bzip2 —version bzip2, a block-sorting file compressor. Version 1.0.1, 23-June-2000.

  • adm
    Aaron D. Marasco wrote:
    > OK, a quick test. I just got a PowerPoint presentation. I am not going to mess with dictionary sizes or anything, leaving those default.
    > PPT: 1,440,768 bytes (Original file)
    > ZIP: 1,311,093 (Dunno what did it, I received it this way)
    > RAR: 1,303,276 (RAR 3.20 beta 4, which does the 'new' RAR compression, default setting)
    > RAR: 1,303,241 (Same version, told it MAX compress "m5" command line)
    > ACE: 1,305,286 (2.0 compression, normal)
    > ACE: 1,309,770 (1.0 compression, normal)
    > ACE: 1,305,274 (2.0 compression, max)
    > GZ: 1,311,109 (Created by WinACE 2.5 max compression)
    > LZH: 1,440,901 (Created by WinACE 2.5 max compression) (-- this is BIGGER. This surprises me and tells me that PPT may already be compressed?
    > .TAR.GZ: 1,311,614 (Created by WinACE 2.5 max compression)
    > CAB: 1,304,092 (Created by WinACE 2.5 max compression)
    > ZIP: 1,310,299 (Created by WinACE 2.5 max compression)
    > JAR: 1,310,299 (Created by WinACE 2.5 max compression -- I think .JAR are just renamed .ZIP anyway)
    > BZ2: 1,337,976 (bzip2 Version 1.0.2 - I couldn't see a command line to change compression)
    > GZ: 1,310,209 (gzip -9 gzip 1.3 [1999-12-21]) (-- I've never seen GZIP be smaller than BZ2?!?!?
    > And now sorted:
    > [root@neuvreidaghey shared]# sort -t' ' +1 tempo
    > RAR: 1,303,241 (Same version, told it MAX compress "m5" command line)
    > RAR: 1,303,276 (RAR 3.20 beta 4, which does the 'new' RAR compression, default setting)
    > CAB: 1,304,092 (Created by WinACE 2.5 max compression)
    > ACE: 1,305,274 (2.0 compression, max)
    > ACE: 1,305,286 (2.0 compression, normal)
    > ACE: 1,309,770 (1.0 compression, normal)
    > GZ: 1,310,209 (gzip -9 gzip 1.3 [1999-12-21]) (-- I've never seen GZIP be smaller than BZ2?!?!?
    > ZIP: 1,310,299 (Created by WinACE 2.5 max compression)
    > JAR: 1,310,299 (Created by WinACE 2.5 max compression -- I think .JAR are just renamed .ZIP anyway)
    > ZIP: 1,311,093 (Dunno what did it, I received it this way)
    > GZ: 1,311,109 (Created by WinACE 2.5 max compression)
    > .TAR.GZ: 1,311,614 (Created by WinACE 2.5 max compression)
    > BZ2: 1,337,976 (bzip2 Version 1.0.2 - I couldn't see a command line to change compression)
    > PPT: 1,440,768 bytes (Original file)
    > LZH: 1,440,901 (Created by WinACE 2.5 max compression) (-- this is BIGGER. This surprises me and tells me that PPT may already be compressed?

I think these are slightly skewed, but RAR just edged out ACE. Again, I think this is a recompression on compressed data. I would doubt that MS-CAB would normally beat ACE. This is not a directory of plaintext. You can even see that ACE can make GZip compat archives, but it was slightly larger than GZip itself. And ACE also made a smaller ZIP file than what I assume was WinZip.

And since I already bought WinACE, it's good enough.

CD-Rs bake in the sun!

OK, I had a silver CD-R (Imation 80min if you care) with MP3s. I left it in the car too much in the sun (now I flip the jewel cases over). One edge of it turned a nice golden color like the older CD-Rs are.

It had 5 CDs on it.

I have randomly sampled the files in my audio player, and they all sound fine and are as happy as can be.

Checked the SFVs of 4 of the 5.

Even though my sampling sounded fine, EVERY SINGLE FILE had a CRC failure.


Keep yer CD-Rs in the shade!!!

HP Printers crashing Win98 (and getting VxD versions under Linux)

Kitty says to me today she's having printing problems. About ½ the time, the machine just hangs when she tries to print. I reply with the standard help desk response of "reinstall the print drivers". Oh boy.

Shortly thereafter, not only did the new printer software fail to find the printer, the damned thing would BSOD (Win98) if it was booted WITHOUT the USB printer attached!

Then USB just stopped working for a while. That was cute.

Long story short - after many (many) reboots, including logged boots and many BSODs (and just plain lockups on boot) I finally noticed that even with it all supposedly uninstalled, it still BSODd without the printer attached. I'm talking manual Registry wipes uninstall. It wouldn't lock if I deleted the USB hub from Windows. Until I rebooted again and then BSOD. I found it was still loading a VxD file.

Yes folks, think WAY back. 16 bit. Windows 3.1 - "System.ini"!!! But it wasn't there either. In there is a line that says to load "*.VxD".

So I erased (OK, moved) all the HP*.VxD files in C:\Windows\System\VMM32\ (WTF?) and wow - everything was A-OK when there was no printer attached! I figured that would make a good baseline - if it don't boot without the printer, it will never boot with.

I connected the printer, pointed it to the directory where I had downloaded the drivers, and it installed without a hitch. Even installed the accessory utils automagically.

So I went back to that VMM32 directory. The HP files were back. Copied them all to my fileserver, and ran diff on them. No differences. Except… there was a file "hpziop98.vxd" what wasn't reinstalled. Lo and behold, the old directory had both "hpziop98.vxd" and "hpziop00.vxd". Kinda suspicious, huh?

Here's a Linux command for you to file away:

strings *.vxd | grep -A 20 ProductVersion'''

1, 18, 6, 0
Hewlett-Packard 1284 Driver.
1998. All rights reserved.
1, 18, 6, 0
1284 Driver.
Hewlett-Packard Company
Built on 12/30/99 2:00pm

1, 16, 7, 0
Hewlett-Packard 1284 Driver.
1998. All rights reserved.
1, 16, 7, 0
1284 Driver.
Hewlett-Packard Company
Built on 10/12/99 2:30pm

Yes folks, some time between Oct and Dec 1999, HP renamed their 1284 driver file, and didn't tell the uninstaller (which I ran at least 3 times!) to remove the older version if it saw it! AND, IEEE 1284 is PARALLEL PORT!!! Lastly, you'll note the "OriginalFilename" entry for the __98 file?!?

Fixed. Total time: almost 2.5 HOURS.

binfmt_misc - Teach the Linux kernel to do neat stuff

Stolen from

This is binfmt_misc - the generic 'wrapper'-binary handler!

WARNING: if you use recent kernel versions from Alan Cox (2.4.2acXX and later) or versions 2.4.13 and up you need to mount binfmt_misc using

mount -t binfmt_misc none /proc/sys/fs/binfmt_misc

Please dont ask me for reasons - ask Alexander Viro who did this during the stable series.


Binfmt_misc provides the ability to register additional binary formats to the Kernel without compiling an additional module/kernel. Therefore binfmt_misc needs to know magic numbers at the beginning or the filename extension of the binary.

You can get a patch to include binfmt_misc into your Kernel here. There is a patch to 2.0.30, a patch to 2.0.33/34 and a patch to 2.0.35. Binfmt_misc is integrated to Kernel 2.1.43, so there is no need to get a patch for them, just upgrade to the latest (stable ;-)) 2.1.xx Kernel.

Read Documentation/binfmt_misc.txt and Documentation/java.txt for more information on how to use binfmt_misc (or continue reading this page). The 'magic' behind binfmt_misc

binfmt_misc works as follows:

  • it maintains a linked list of structs, that contain a description of a binary format, including a magic with size (or the filename extension), offset and mask, and the interpreter name.
  • on request it invokes the given interpreter with the original program as argument, as binfmt_java and binfmt_em86 and binfmt_mz do.
  • binfmt_misc does not define any default binary-formats, you have to register an additional binary-format via the /proc interface (see below).

The /proc interface of binfmt_misc

You can find the following binfmt_misc related files/directories below /proc/sys/fs/binfmt_misc:

  • register

To register a new binary format do an echo :name:type:offset:magic:mask:interpreter: > register with appropriate name (the name for the /proc-dir entry), offset (defaults to 0, if omitted), magic and mask (which can be omitted, defaults to all 0xff) and last but not least the interpreter that is to be invoked (for example and testing '/bin/echo'). Type can be 'M' for usual magic matching or 'E' for filename extension matching (give extension in place of magic).

  • status

If you do a cat status you will get the current status (enabled/disabled) of binfmt_misc. Change the status by echoing 0 (disables) or 1 (enables) or -1 (caution: clears all previously registered binary formats) to status. I.e. for example echo 0 > status to disable binfmt_misc (temporarily).

  • name (where name is the name you gave to register)

This file does exact the same thing as status except its scope is limited to the actual binary format. By cating this file you also recieve information about the interpreter/magic, etc. of the binfmt.

Example usage of binfmt_misc (emulate binfmt_java):

cd /proc/sys/fs/binfmt_misc
echo ':Java:M::\xca\xfe\xba\xbe::/usr/local/java/bin/javawrapper:' > register
echo ':HTML:E::html::/usr/local/java/bin/appletviewer:' > register
echo ':Applet:M::<!--applet::/usr/local/java/bin/appletviewer:' > register
echo ':DEXE:M::\x0eDEX::/usr/bin/dosexec:' > register

These three lines add support for Java executables and Java applets (like binfmt_java, additionally recognising the .html extension with no need to put '<--applet>' to every applet file). You have to install the JDK amd the shell-script /usr/local/java/bin/javawrapper, too. It works around the brokeness of the Java filename handling. To add a Java binary, just make a link to the .class-file somewhere in the path.

For full featured wrapping of deeply nested class files you will have to use the wrapper script created by Colin Watson (cjw44@…) /usr/local/java/bin/javawrapper and the additionally needed little c-proggy javaclassname.c (just compile it and stick it to /usr/local/java/bin/). These C/Script combination handles nested classes properly by looking up the fq classname from the class file.

Configuration of binfmt_misc ideally takes place in one of your init scripts (see init manual to find out where they resist, usually /etc/rc.d/). This is my personal binfmt_misc configuration script, it gets called in /etc/rc/boot.local .

Geek Reference Site

I found it doing a quick search for entaglement, etc b/c of some questions I had regarding the book I am reading:

Emergency reboot with Ctrl-Alt-Delete-Shift

Note: this reboots the machine VERY harshly.


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]

Wireless Performance Stats

I cannot get this thing to connect with Encryption On using the SMC software, so I cannot turn on/off this 'Nitro' thing… was used to test. This program ROCKS!!! Server Linux, client WinXP Pro. 30 seconds per test, 8KB window (default) You can see there is a push and a pull test.

iperf --format K --port 999 -s
iperf -c neuvreidaghey -r -t 30 -p 999 --format K

802.11g, with encryption on.
[ ID] Interval Transfer Bandwidth
[1892] local port 2212 connected with port 999
[1892] 0.0-30.0 sec 56408 KBytes 1880 KBytes/sec
[1868] local port 999 connected with port 32785
[1868] 0.0-30.0 sec 60832 KBytes 2026 KBytes/sec

802.11g, with encryption off.
[ ID] Interval Transfer Bandwidth
[1888] local port 2318 connected with port 999
[1888] 0.0-30.0 sec 70120 KBytes 2337 KBytes/sec
[1868] local port 999 connected with port 32787
[1868] 0.0-30.0 sec 81504 KBytes 2716 KBytes/sec

So I am getting 15-21 Mbps of 54 theoretical - THAT SUCKS!!! [27-38% efficiency]

802.11b, encryption off.
[ ID] Interval Transfer Bandwidth
[1888] local port 2353 connected with port 999
[1888] 0.0-30.0 sec 14176 KBytes 472 KBytes/sec
[1868] local port 999 connected with port 32788
[1868] 0.0-30.0 sec 12640 KBytes 421 KBytes/sec

So that is 3.3-3.7Mbps of 11 theoretical - guess that G ain't so bad - it IS about 5x faster! [30-34%]

Just for shits, I switched the G router into B/G mixed mode environment… 802.11g (with b compat) [no encryption] [results about same as G only] I tried putting both NICs in the laptop at once, and things just got ugly. Guess with only one laptop I cannot get the B to interfere enough with the G… I will try that NITRO stuff again… maybe tomorrow, maybe this weekend.

Data General UPS Pinout

The DG UPS pinout follows:

    Pin    Off    On    Signal
    ---    ---------    ------
     1      -     -
     2     +10   -10    Are we online? +10=false, -10=true
     3      -     -
     4      -     -
     5      -     -
     6      -     -
     7      -     -
     8     +-10  +10    Is the battery low? +10=false, -10=true
     9      -     -

Don't load Win98 files onto a Win98SE machine!

Spent 5 hours trying to get Ceci's Win98SE machine to work with a wireless USB thingee. The sad part is that it worked fine for a few minutes right at the beginning… then what? Windows Update killed it!!!

So I try to reinstall the driver. This time I figure that maybe I should have the installer overwrite the files from the Windoze CD since Windows Update screwed them up in the first place.

OK, no more story time. On to the lessons learned. I can almost guarantee that you will get BSODs and all other kinds of fun stuff (eg. Device Manager CRASHING even in Safe Mode!!!) if you pop in a Windows 98 disk when installing drivers and the computer is running windows 98 SE. Oh yeah. *BIG* fun. About 5 hours later it finally hit me that the CD didn't match the OS on the boot screen!!!

Don't put a WD drive in a RAID system

Ghost, ext2 and ext3, convert ext3 -> ext2

  1. Ghost 7 doesn't do ext3. I had a hint of this moving from 30G to 40G but it is now verified. It makes fsck.ext3 core dump. Not a pretty sight. I was very afraid that I lost my firewall forever.
    1. You can fool 'mount' but not 'fsck'. You can do 'mount -t ext2' to mount ext3 as ext2. If you do 'fsck -t ext2' on corrupted ext3, it will still crash knowing it is ext3.
    2. 'tune2fs -O ^has_journal /dev/hda7' will convert an ext3 partition (eg hda7) to ext2. Since Ghost copies ext3 as ext2 (which corrupts the special journal) this is required.

Ghost and ext3

bad = I am about to try to resize an ext3 partition. Ghost hosed that job up so bad that fsck actually SegFault'd!

Stupid Linux trick - virtual partition

Stupid Linux trick number ###? - Making a virtual partition. Kinda the opposite of what I want to do.

mkdir /home/foo
dd if=/dev/zero of=/home/foo/image bs=1024 count=10240
mkfs.ext3 -F /home/foo/image
mount -t ext3 /home/foo/image /home/foo -o loop
chown foo /home/foo

This creates a 10MB home 'directory' for the user named foo. No way for them to get bigger (well, /tmp but that is beyond the scope of this example).

Pound your hardware much harder than Prime95

Using M$'s official hardware pounder:

Get Active Desktop with IE6 on NT4

ie6setup.exe /c:"ie6wzd /e:IE4Shell NTx86 /I:Y"

Car Stereo Installation Stuff

Samba WinXP Pro Mapped Drive Problem

You can see my original ordeal here.

I am sure everyone is sick of hearing Samba questions, but this is driving me nuts. I have had a samba share setup for almost two years but I upgraded my desktop to WinXP Pro and it is driving me nuts!

Some background:
Running Samba 2.2.7

I am not doing anything fancy on samba - no PDC or anything. Plain ol' Workgroup. Example section:

comment = Shared Files
path = /share/shared
public = yes
writable = yes
write list = me, acekitty
printable = no
force user = me
force group = me

I have this share mapped to my drive S on the WinXP machine. For some reason, the first time I double click in Explorer on the drive (after 'n' minutes of not accessing recently), explorer just hangs for like 2 minutes. Then it comes back like nothing was wrong! No errors on the server side. I have done the "Scheduled Tasks" possible problem fix I have seen many places:

When you connect to another computer, Windows checks for any Scheduled tasks on that computer. This can take up to 30 seconds. Open regedit and browse to key:
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/Current Version/Explorer/RemoteComputer/NameSpace
Delete the {D6277990-4C6A-11CF-8D87-00AA0060F5BF} sub-key and reboot.

So, are you ready for the weirdest part of this problem? I am also running WinXP Pro on my laptop and it has NEVER had this problem from day 1!?!?

Absolutely any help would be greatly appreciated.

  • RR


After tons and tons of research I learned that Samba was NOT the problem!

It was just plain ol' Windows being stupid. First, I found this page: here which I am linking here because if anyone else ever stumbles upon this post it may fix their problem, and it shows some control panel that there seems to be no other way to reach!?!?

Next I found (part of) my solution here.

It seems that the service "WebClient" is what is screwing me over. However… combining these two solutions STILL didn't quite work for me… every time I booted up I had to re-enter my share passwords!

Which brings me to why the problem is so original (IMO). I have only one user on this machine, with no password. So WinXP was automagically booting into that account. To get the mounted share to work, I had to do the following fun:

  1. Run 'control userpasswords2' and wipe all remembered passwords.
  2. Add a password to my WinXP account (whose name has always matched the samba server account).
  3. Use TweakUI to automatic login the user on bootup.
  4. Disable the 'WebClient' service.
  5. Reboot

I tried various permutations, and this was the only one that worked, so all the steps seemed to be required. This does not explain why my laptop has worked fine from day one. They both have the same NetBIOS settings, host files, mapped drives, etc, etc…

Thanx for trying! I now have my M, P, S, and W drives back!

  • RR

Recovery Console

Install the Recovery Console on Your Computer

You can install the Recovery Console as an option on your startup menu and use it to recover your system in the event that safe mode and other startup options do not work. This tool is for advanced users.

  • With Windows XP running, insert your Windows XP CD in the drive, and click Exit when the installation options are displayed.
  • Click Start, click Run, and then type D:\i386\winnt32.exe /cmdcons Where D: is the CD-ROM drive letter, and then press Enter. (There is a space between .exe and the slash.)
  • Follow the instructions on screen to install the Recovery Console, and when the installation is complete, restart your computer. The Recovery Console will show up in the list of available operating systems in the Startup menu. You must be an administrator to use the Recovery Console.

If the i386 directory is already installed on your computer (as might be the case in computers purchased with Windows XP pre-installed), you can use the same syntax as in Step 2, using the [path]\i386 directory without having to use the CD.

An alternative method is to boot to the CD and start WINNT.EXE, then when prompted to Install or Repair, click Repair, which installs the Recovery Console for you.

If Windows XP will not start, you can run the Recovery Console from the Setup CD.

Optimize Swap File Performance

On systems with larger amounts of memory, more than 128Mb, the hard disk based swap file is not needed as much. This tweak optimizes the use of the swap file on such systems.

Using notepad open the SYSTEM.INI file in your Windows directory.

Find the [386Enh] section and add a new line reading


Save the file and restart Windows for the change to take effect.

Registry Settings
Value Name: ConservativeSwapfileUsage
Value Data: 1

Improve Core System Performance

On systems with large amount of RAM this tweak can be enabled to force the core Windows system to be kept in memory and not paged to disk.

Registry Settings

System Key: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
Value Name: DisablePagingExecutive
Data Type: REG_DWORD (DWORD Value)
Value Data: (0 = default, 1 = disable system paging)

nForce2 Driver Problems (Abit NV7-133R)

I have changed mobos "under" Windows many, MANY times… and THAT is the problem.

This install of Win98 has lasted since early 1999 - including… many, many registry hacks (which I am still putting back in now) mobos / procs:

  • Abit BH6, Celeron overclocked to 550
  • Abit BH6, Celeron overclocked to 850, then 950
  • Abit KG7-Lite, Athlon XP 1600+
  • died on Abit NV7-133R, Athlon XP 1600+

hard drives:

  • 20 GB on the mobo
  • Promise 66 RAID 2x20 + 1x40
  • Promise 66 RAID 2x40 + 1x80
  • Promise 100 RAID 2x40 + 1x80

video cards:

  • no-name PCI plus voodoo2
  • TNT2 (forgot which one, it was only a week)
  • voodoo3 3000
  • geforce3 ti 450 (gainward)

The list doesn't include 2 SCSI cards (ISA, then SCSI), the various CD-Burners (2), ZIP drive, scanners (3), cameras (2), mp3 player, X10 control hardware, and everything else that would bloat the hell out of the registry!

So it finally caught up with me, I am reinstalling Windows right now…

To answer all questions -

  • I will NOT go to XP as my home OS. Maybe in a VMWare window with

Linux watching it very VERY closely. I considered Win2K but found out a game I like ("Alice") doesn't work there… I have also had problems with Ghost on my laptop with Win2K…

  • The tape detection was crashing VCOMM because Windows was looking

for a parallel-port tape drive (my theory)

  • And the kicker, something that people NEED TO BE AWARE OF WITH

THIS MOTHERBOARD - installing the nForce drivers from the nVidia web page KILLED win98. I did an absolutely fresh install, ran it, BOOM no booting, total lockup. In safe mode, I went in and deleted the "new" not working PCI video - I assume the nForce installer pokes something in the registry to tell Windows that the video is there, but the 133R has it disabled, so Windows tries booting and just says "WTF?" - bootlog.txt showed it dying on video init.

Mis-ID'd Hard Drive

Problem: I have an 80GB Maxtor hooked up to the on-board IDE using a nice fancy 80 pin rounded cable. My problem is that when I cold boot, it ID's the hard drive as a "MAXTOR ROMULUS" and then says error with the drive. I hit ctrl-alt-del and it reboots, properly IDs, and boots fine. Any ideas? I have messed with the IDE delay, up to 3 seconds didn't fix it…

Solution: Turns out that drive didn't like to be the 'Slave' without a 'Master'. Never saw that before and I have had Master-less drives before…

Show All Hidden Devices in Device Manager

Devices that are installed but are not currently connected to the computer (such as a Universal Serial Bus (USB) device or "ghosted" devices) are not normally displayed in Device Manager. This tweak causes all devices to be shown.

Registry Settings

System Key: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
Data Type: REG_SZ (String Value)
Value Data: (1 = show all hidden devices)

UT Server on Laptop Problem

Don't remember how I figured it out… but I remember it took months. If your UT server is playing super crappy on a laptop under WinME (or WinXP), try running SETI@Home or's RC5 cracker. It worked for me under both OSs.

How to fix /dev/null if it is broken

mknod /dev/null c 1 3 chmod a+w /dev/null

Mounting a Drive in a Windows 2000 Folder

Mounting a Drive in a Windows 2000 Folder

By Jim Pile

Reader Paul T. asks the following Windows 2000 question:

"I have a small (5.2 GB) drive that I would like to add to my Windows 2000 installation. I would prefer to add the extra 5.2 GB to my existing Drive C. Is there an easy way to do this?" You can assign an NTFS drive to a folder on another NTFS drive. When you do this, the contents of the added drive appear in this new folder. For example, if you add your 5.2 GB drive and assign it to a folder in Drive C named \Extra Data, then you have effectively added the contents of the new drive to your C drive. After you install and format your new drive, right-click My Computer and choose Manage. When the Computer Management dialog box opens, click Disk Management. Now, in the right pane of the dialog box, right-click your new drive and choose 'Change Drive Letter and Path'. If there is already a drive letter assigned, click Remove. Next, click Add. When the Add New Drive Letter or Path dialog box opens, select the 'Mount in this NTFS folder' radio button and click Browse. Click Drive C to select it and then click New Folder. Name the folder and click OK. Back in the Add New Drive Letter or Path dialog box, click OK to close the dialog box and apply your folder selection. Your new drive will now appear in your newly created Drive C folder. You can use the same procedure in Windows XP.

Move MySQL database from one machine to another

I just moved my ENTIRE MySQL database from one machine to another using netcat!

On the original firewall: ./mysqldump -A -a --opt -p | bzip2 | nc -w 3 2000

And then on the new virtual one: nc -l -p 2000 | bunzip2 | /usr/local/mysql/bin/mysql -p

So, on the fly compresion and everything!