Posts in category links

Strange Software Install Issue (Installer silently hangs)

I've been having a strange install issue with the ATI Catalyst software. It's documented here on the AMD site:

However, forums like that have a great history of disappearing when I need them most, so a summary is also now here.

Setup was totally hanging. I tried all kinds of things to trace what was happening. Then this wonderful post came along:

From Wiink:

I signed up to post in this thread since I was having the exact same issue and was really frustrated over it. I have a 4890 and have always used Ati graphics cards, never had any issues and drivers always installed flawlessly until one day i decided to update from 9.8 to the current 9.12.

I'd go through the usual uninstall methods using the ati uninstaller and then follow up with driver sweeper. Click on the exe for the 9.12 suite and it would unpack/extract then an hourglass for about 5 seconds and then nothing. I would see InstallManagerApp.exe running in the taskmanager and my hdd light would be lit, but that was about it….no install. Tried many times and nothing worked. Drove me absolutely crazy. Checked and re-checked all the cleanup, c++ redist and .net stuff….All in order and still same results - nothing.

Then I came across this thread about not having full admin permission for registry changes needed for some software installs even though I am the only user and Admin of this pc. When installing the 9.12 Catalyst Suite, it needs to change something in the registry that was now being blocked , so I ran this fix posted here and my problems were solved immediately on both my Vista and my XP Pro machines. Just remember to create a fresh system restore point before applying it. I was so happy to have the issue fixed I had to share. It specifies Vista in the post, but it worked for my Xp Pro as well flawlessly. Took about 20 minutes and fixed! And sorry for the wall of text. Just do a reboot after running the cmd file and try to install the catalyst 9.12 suite again, should work now.

Post by Michael G. Simmons:

There is a quick fix for this and any other permission issues that occur with Vista. I've seen this happen with several different installs under Vista including VS 2005 and Orcas. The problem is for some reason regisry permissions are given to the user msiserver. You can reset each entry manually, but that is a major pain. It's much easier just to fix the entire registry by using the SubInACL utility. Basically, you can use the utility to add administrator permissions to every key in the registry.

  1. Download and install the SubInACL utility.

2.Create a new text file named fix_registry_permissions.cmd and add the following text to it and save it.

    cd /d "%programfiles%\Windows Resource Kits\Tools"
    subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=administrators=f /grant=system=f
    subinacl /subkeyreg HKEY_CURRENT_USER /grant=administrators=f /grant=system=f
    subinacl /subkeyreg HKEY_CLASSES_ROOT /grant=administrators=f /grant=system=f
    subinacl /subdirectories %SystemDrive% /grant=administrators=f /grant=system=f
    subinacl /subdirectories %windir%\*.* /grant=administrators=f /grant=system=f
  1. Run the file by double-clicking on it.

That's it. It will take several minutes to finish, but at the end all registry keys will be accessable to the administrator and system, as it should be.

Using UltraCompare with TortoiseSVN

From "Nick's Head Sphere"

C:\Program Files\IDM Computer Solutions\UltraCompare\UC.exe -t %base %mine

C:\Program Files\IDM Computer Solutions\UltraCompare\UC.exe -rom %theirs %mine %merged 

Car Repair Pricing

Service Manuals for a BUNCH of stuff

"sudo" for Vista

Subversion from Perl

So I spent about three hours trying to get my perl svn_compress script running and I ran kept running into the damned thing segfaulting!

svn_path_basename: Assertion `is_canonical (path, len)' failed.

I finally found the answer. Apparently, libsvn wants '' as the current directory, not '.' like every other program since the beginning of time (Jan 1, 1970, right?).

Three hours.

Where I read the answer. Pasted here:

Peter Samuelson wrote:
> [Julian Gilbey]
>> burnside:~/debian/tex/tetex-bin $ perl -MSVN::Client -e \
>>   'sub print_names { print "<$_[0]>\n"; } $ctx=new SVN::Client;
>>   $ctx->status("", "BASE", \&print_names, 1, 1, 0, 1);' | head -5
>> <>
>> <.pc>
>> <.pc/.version>
>> <configure>
>> <INSTALL.generic>
> I reproduced your bugs with subversion 1.3.0-5, so I can properly
> discuss it with upstream.  Unfortunately, I don't know much about the
> Perl bindings.  But comparing "svn status" with your command, it does
> seem to correspond to the "." entry.  I wonder if that is even
> considered a bug.  I mean, if you prefix each entry with $(pwd)/, it is
> fine.
>> perl: /tmp/buildd/subversion-1.2.3dfsg1/subversion/libsvn_subr/path.c:377:
>> svn_path_basename: Assertion `is_canonical (path, len)' failed.
> Right, that's definitely a bug.  Even if this isn't something the perl
> bindings can fix on their own, they should carp or something.

Hi. This is an issue that gets kicked around on dev at svn from time to
time, and usually ends up with the thread fizzling out sooner or later,
with no concrete action being taken, due to a lack of an obvious right
way to proceed. I'll sum up the situation...

There exist a number of path manipulation functions (svn_path_*) which
do not conform to the usual style returning an error status as the
return value, and output data via output pointer parameters. Instead
they return data directly as the return value, and are supposed to only
ever be able to experience errors that merit assert() or abort().

Subversion defines a 'canonical path' format, and most of the functions
(apart from the canonicalizer itself, obviously!) assert that the input
path looks like a canonical path.

Various groups of C programmers will conduct heated debates on whether
this is good programming practice, or an annoyance, but that is
irrelevant where the bindings are concerned, since assert()-ing out of a
scripting language interpreter is clearly bad.

There is a fairly obvious, though non-trivial, solution:
Make the bindings test all input paths (presumably using a path-specific
SWIG "in" typemap) using the same logic as is_canonical, and
canonicalize if necessary. The problem, though, is that discussions of
this nature tend to get intertwined with the parallel issue of whether
the C code is being generally unhelpful in this situation, and should be
changed too.

OK, now you know the background.

Feel free to prod dev at svn to raise awareness of this problem which has
sadly lain dormant for far too long.


The canonical form (IIRC) is mostly common sense stuff:
* no repeated slashes
* no internal /../ sequences
* no trailing slash
BUT it has one weird rule:
* the canonical form of "." is ""

Random Unix/Linux Tips

Yeah, that's pretty much the subtitle of this blog, but I found another that has similar stuff:

My favs (I'm copying in case the site goes down):

Convert a static lib (.a) into a dynamic one (.so)

gcc -shared -o \
	-Wl,-soname, \

Create PNGs from a pdf presentation

gs -dSAFER -dBATCH -dNOPAUSE -dTextAlphaBits=4 \
    -dGraphicsAlphaBits=4 \
    -r85 -q -sDEVICE=png16m -sOutputFile=icfp-pg%02d.png \

Read a damaged CD/DVD valid parts and get the rest with rsync

As is often the case, when I bring some burned CD/DVD 
from work, I find out that its bad at some offset.
I came up with this Perl script:

#!/usr/bin/perl -w
use strict;

my $i=0;

select((select(STDOUT), $| = 1)[0]);

system("dd if=/dev/zero of=zero bs=2K count=1");

my $step = 1;

print "Sector:             ";
while(1) {
 system("dd if=/cdrom/BadSector of=sector bs=2K skip=$i".
    "count=1 >/dev/null 2>&1");
 if ($? == 0) {
     print sprintf("\b\b\b\b\b\b\b\b%08d", $i);
     system("cat sector >> data");
     $step = 1;
     $i += $step;
 } else {
     system("cat zero >> data");
     $step += $step;
     $i += $step;
     print "\nJumped over $step\nSector:             ";

With the CD/DVD mounted on /cdrom/, it will slowly but 
effectively copy sector by sector of the file mentioned 
in the 'dd' line into the file called 'data'. Reading 
sector-sector proves to be enough to correct a multitude 
of read-errors on my DVD reader, but even if that isn't 
enough, it will quickly jump over the problem areas
in the DVD, writing blank 'sectors' to mark the jumps.

After that, rsync can save the day:

rsync -vvv -B 131072 -e ssh \
	[email protected]:/path/todata data

Extra Secure Remote Desktop

I have been using Microsoft's Remote Desktop for a few years now (pretty much since I switched to XP). It's decent, and I like that it retains sessions unlike TightVNC, which is what I had used before. By using a SSH tunnel, I feel confident that my connection is secure and I am willing to visit my banks, etc. using my desktop machine via my laptop on a wireless network. Here's what I did:

On the server (in this case my desktop):

  • Installed the Cygwin build of SSHD as a service
    • Many guides are available, just search with Google above keywords like "cygwin sshd". But in a nutshell:
      • Install cygwin (duh) - include openssh (under Net) and cygrunsrv (under Admin)
      • Set up sshd: "ssh-host-config -y"
      • Start it as a service: "cygrunsrv -S sshd"
  • Allow Remote Desktop usage:
    • Right click on "My Computer" and choose "Properties"
    • Go to the "Remote" tab
    • Make sure that "Allow users to connect remotely to this computer." is checked

On the client (in this case my laptop):

  • You need a way to setup an ssh tunnel. You can use Cygwin's ssh, PuTTY, or my favorite MyEnTunnel. I previously selected MyEnTunnel for some work-related stuff, so I was able to simply add a "Profile".
  • The key is that you want a tunnel from your machine's 3390 to the remote (server) machine's port 3389 (or any other port on your local machine of your choosing). With MyEnTunnel, it is this simple:
    • Profile Page 1 Profile Page 2
  • Once MyEnTunnel has established a connection (a green padlock), you can connect.
  • Start → Run → "mstsc"
    • MSTSC setup
  • As you can see, mstsc has no idea what machine you are connecting to. As far as it knows, you connect to localhost which is your machine, which MyEnTunnel then encrypts (using PuTTY's plink) and sends to the remote machine's sshd daemon which forwards it to Windows XP listening for the Remote Desktop connection.
    • (Client:Outgoing port) -> (Client:3390) -> (Client:22) -> [encrypted link] -> (Server:22) -> (Server:3389)

How to restore a Windows restore point from Linux

Of course, the Ubuntu chest-thumping is kinda annoying and irrelevant. In fact, I would try to find any Live CD with NTFS support (Fedora maybe?) That's all you really need.

In fact it would've been easier for him to check the GRUB config file ;)

Mail relaying fun

For the second time, my damned ISP has blocked port 25. No real reason, I have secure Linux boxes as the only things sending email; I would get 5-6 server reports a day. That's all. But they blocked me again, and I am sick of arguing with the scripted Indian morons.

Main machine

Anyway, on the main Linux box, ragnarokjr (named so because it is a VM box), I was able to finally get qmail to send all mail thru TLS:

  1. Unpacked netqmail
  2. Applied the full netqmail TLS patch to get base64.h and base64.c
  3. Erased it all and re-unzipped
  4. Copied in the base64.h and base64.c
  5. Applied the remote auth patch only
  6. "make qmail-remote"
  7. Copied qmail-remote over /var/qmail/bin/qmail-remote
  8. Edited /var/qmail/control/smtproutes to include name and password: username password
  9. Made smtproutes owned by "qmailr" and chmod og-r so it's kinda secured

So now qmail-remote will use TLS on port 587 as needed to get around the stupid block…

Other machines

One of my other machines runs CentOS which uses exim instead of qmail and it took me a while to find this FAQ.

/etc/exim/exim.conf, in the "routers" section:

  driver = manualroute
  transport = remote_smtp
  route_list = *

And of course, /etc/init.d/exim restart

Hopefully, this can help somebody else. I was searching all kinds of terms like "exim upstream" (lots of Debian stuff saying what changed from standard) and it took a bit…

Offline Wikipedia

As seen on a million and one websites (/. etc al), a smart geek put together some offline Wikipedia stuff. I had some problems on my work laptop (Fedora Core 7) because of the OS (PHP executable wrongly named) and because of the way I have it partitioned (on a FAT32 partition). Anyway, here's my email to the original poster (wiki-fied):

  1. Thanks, you're a geek hero. ;)
  2. I had a few problems with relative paths, I had to edit the places that pointed at quickstart* executables.
  3. Fedora Core 7's "php5" executable is actually only named "php" - no big deal with a "ln -s /usr/bin/php /usr/bin/php5"
  4. My machine is dual-boot, and the only partition big enough was FAT32. Had some problems with the too many split files. I threw together a perl script (I had done the split by hand before downloading the Makefile ;) ). It's pasted below.

Anyway, thanks again. Feel free to add any of this stuff to your page (like the FC7 notes). If you do, please don't include my email, just credit to RevRagnarok is fine.

  • RevRagnarok
#!/usr/bin/perl -w

# This was written by RevRagnarok (I'm on Wikipedia)
# I was having problems with all the split files on a FAT32 partition. I assume
# it is because there were so many plus two entries for each (LFNs).
# This simply combines all the rec* files again into large chunks of N where
# I used 5, but you can set below with $combine.
# Verification info below.
# Lastly, I needed to modify the Makefile and remove the "split" from the
# "wikipedia" target.

use strict;

# Using: rec13778enwiki-20070802-pages-articles.xml.bz2
my $last = 13778;
my $lastd = 5; # How many digits in above (yes, I can compute this, but why?)
my $date = 20070802;
my $suffix = "enwiki-${date}-pages-articles.xml.bz2";
my $combine = 5; # This will combine every 5 into a group
                 # (If this number makes > 4 digit results, it will not sort nicely)
my $outputdir = '/data/wikipedia/'; # Don't make it the same place...

my $joinstr = '';
my $fcount = 0;

for (1 .. $last) {
  my $num = sprintf "%0${lastd}d", $_;
  $joinstr .= "rec${num}${suffix} ";
  if (($_ % $combine) == 0) {
      &catthem($joinstr, $fcount++);
      $joinstr = '';

&catthem($joinstr, $fcount++) if ($joinstr ne '');
print "All done!\n";

sub catthem ($$) {
  my $ofile = sprintf "rec%04d.bz2", $_[1];
  `/bin/cat $_[0] >${outputdir}${ofile}`; # Lazy again, there are more Perl-ish ways.
  print ".";


To make sure they were all taken in, you can do this:
bash$ bzip2 -tvv *bz2 2>&1 | grep -v ok | grep -v bz2 | wc -l

...which is equal to the number of start blocks, so I know nothing is missing now.

"Monte Carlo" Perl

This is pretty cool - had not seen it before.

Those of you with cygwin or unix and perl:

my $COUNT = 8; #Orders of magnitude
my $HIT = 0;

for(my $i = 1; $i < 10**$COUNT; ++$i){
        $HIT++ if rand()**2 + rand()**2 <= 1;
        printf "PI ~ %1.8f after %0${COUNT}i points\n", 4*$HIT/$i, $i if
               ($i % 1_000) == 0;

I got PI ~ 3.14155046 after 99999000 points and a second run with PI ~ 3.14160204 after 999990000 points

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…

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

Unattended XP Install

Paste code for others

Good for eBay

Pet Care link

Marlin P Jones

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

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!"

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 )

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 

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:

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

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.

Circuit City Manufacturer Rebate Escalation Line

1-800-241-1343 or [email protected]

"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."

Wayne's Windows Administrator Support

Mozilla Must-Haves

Traceroute Sites

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

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:
    > [[email protected] 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.

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:

Pound your hardware much harder than Prime95

Using M$'s official hardware pounder:

Car Stereo Installation Stuff