Working at Yahoo! is like drinking from a fire hose

Stick with me I will get to the Yahoo bit in a minute but you need to understand a few things first.
I would say one of my main motivations in life is avoiding boredom. I abhor boredom
From webster: to regard with extreme repugnance
I could not agree more. I loathe it.
There are various reasons for this not least of which is I have absolutely no reason to be bored. There are a million books I haven’t read, a thousand technologies I haven’t investigated a billions trees I haven’t seen, a million paths I haven’t trod and 6 billion people I haven’t met….. you get the point.
So when I am bored I have got to ask myself if I am really bored or am I just being stupid. That brings me to my other motivation. Eradicating my own ignorance, I do this with extreme prejudice. I do not consider myself stupid or ignorant but if there is one thing I do know I don’t know enough.
Now that you understand a bit more about what motivates me you know why I joined Yahoo. As I mentioned in the title working here is like drinking from a fire hose. The amount of stuff going on is staggering and the scale of everything is vast. It’s the perfect place for me.

Delete /dev/md0

If ever you make a mistake with software raid and you want to start from scratch by removing /dev/md0, the following command is a good place to start.

mdadm -S /dev/md0

Then create the array again as normal using something like
mdadm –create /dev/md0 –level=5 –raid-devices=3 /dev/sd[abc]1

Test::Harness Confused test output

If ever you get this error when using Test::Harness check to make sure that you are not printing anything that is interfering with it. See:
Test Anything Protocol

Test/Item/m_find_using_term_ids….ok 2/90Confused test output: test 2 answered after test 2
Test/Item/m_find_using_term_ids….ok 3/90Confused test output: test 3 answered after test 3
Test/Item/m_find_using_term_ids….ok 4/90Confused test output: test 4 answered after test 4

DegradedArray event

If you ever get one of these, count your lucky stars and get the array fixed. In my case I have lost one of the drives.

This is an automatically generated mail message from mdadm
running on debian
A DegradedArray event had been detected on md device /dev/md0.
Faithfully yours, etc.
P.S. The /proc/mdstat file currently contains the following:
Personalities : [linear] [raid1]
md0 : active raid1 hdc1[1]
78148096 blocks [2/1] [_U]
unused devices:

Debian NO_PUBKEY

If you ever get an error like this.

W: GPG error: http://non-us.debian.org stable/non-US Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY F1D53D8C4F368D5D
W: You may want to run apt-get update to correct these problems

The way I solved it was as follows. As root…

# apt-get install gnupg
# gpg –keyserver wwwkeys.eu.pgp.net –recv-keys F1D53D8C4F368D5D
# gpg –armor –export F1D53D8C4F368D5D | apt-key add –
# gpg –export F1D53D8C4F368D5D >> /etc/apt/trusted.gpg
# gpg –list-keys

Yahoo Slurp

Not sure if anyone else has noticed recently but Slurp has been doing a lot of of Spidering lately. I actually took extreme measures today and added a crawl delay to the site.

WWW::Mechanize Fun

I have been writing a test suite for a website recently and came upon the following error.

Illegal value ‘GBR’ for field ‘country_iso’ at /usr/local/share/perl/5.8.4/WWW/Mechanize.pm line 1232

This seemed strange to me at first but when I thought about it I was using the following code

$mech->select(“country_iso”, ‘GBR’ );

If the value i.e. “GBR” in my case is not a valid select option then obviously WWW::Mechanize or rather HTML::Form will throw an error. It was actually HTML::Form::ListInput that the error came from but this is a package declared in the HTML/Form.pm module.

SSH Connection Reset By Peer

If ever you see the following when using SSH and it all seems inexplicable.
Read from remote host www.somehwhere.com: Connection reset by peer
There may be a quick cure (caveat, your mileage may vary). Some routers, i.e. Linksys WRT54G will close a connecting that does not appear busy. So far I have found that if I add
ServerAliveInterval = 300
ServerAliveCountMax = 300
to my /etc/ssh/ssh_config file then everything is fine.
Basically we are send a message to the server every “ServerAliveInterval” seconds and if the client has not had a response after “ServerAliveCountMax” messages then the connection will disconnect. This makes the connection look active to hardware that thinks it’s doing you a favour by disconnecting idle connections.
see “man ssh_config” for more details.
I have also noticed the following method but have not tried it
echo 300 > /proc/sys/net/ipv4/tcp_keepalive_time

Packard Bell Store and Save

Their 400Gb 3500 model works a treat under Debian stable. It comes up as a scsi device when switched on. To see the device use dmesg and look for something like the following output.
sdc1
sd 13:0:0:0: Attached scsi disk sdc
sd 13:0:0:0: Attached scsi generic sg3 type 0