The Cave

21 Jan

Calvin Cooledge

President Calvin Coolidge was known for his reticence. According to legend, at a party, a woman bet her friend that she could get him to speak to her anyway. She went up and said: “Hello, Mr. President, I bet my friend that I could get you to say three words to me.”

“You lose,” Coolidge replied, and walked away.

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
09 Jan

Rule of Acquisition #109

Rule of Acquisition #109: Dignity and an empty sack are worth the sack.

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
13 Nov

IOCCC is Back

The International Obfuscated C Code Contest is back. Whew. For a while there I was afraid we’d suffer a dearth of obfuscated C code <g>

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
04 Sep

Obfuscated Quine

Impossible to understand Javascript” is an understatement. Here’s the code

_=$_=+[],$=+!_,_$=!_+”,_$$=!$+”,__=({})+”,_$_=($/_)+”,__$=__[$+$+$+$+$];$_$=[][__$+__[$]+_$_[$]+__$+_$$[$]+_$[_]];$__=($_$+”)[$$$$=(($+$)+''+(($<<$)*($+$+$)))]+($_$+”)[$$$$-$]+_$$[$]+_$$[$+$];__$$=(__$=$_$+”)[$_++]+__$[$_++]+__$[$_++]+__$[$_++]+__$[$_++]+__$[$_++]+__$[$_++]+__$[$_++];$_$()[_][$__](”+_$$[_]+__[$]+_$[$]+’($$=_,$$$=[];$$<($<<($+$+$));$$++)$$$[$$]=($<<$$)’);_$_$=$_$()[_][$__](”+_$$[_]+__[$]+_$[$]+’($$ ‘+_$_[($<<($+$))+$]+_$_[$]+’ $_$()[_])’+_$_[($<<($+$))+$]+_$$[_]+’($$[_]==_$$[$+$+$]&&$$[$]==$__[_]&&$$[$+$]==_$$[$+$+$])$$’);$__$=__$$+’ (){‘+_$[$]+_$[$+$+$]+_$[_]+__$$[$]+_$[$]+_$_[$]+’(‘;_$__=$_$()[_][$__](”+_$$[_]+__[$]+_$[$]+’($$ ‘+_$_[($<<($+$))+$]+_$_[$]+’ $_$()[_])’+_$_[($<<($+$))+$]+_$$[_]+’($$[_]==_$_$[($<<($+$))*($+$+$)]&&$$[$]==_$[$+$+$]&&$$[$+$]==_$[_]&&$$[$<<($+$)]==__[$])$$’);_$$$=$_$()[_][$__](”+_$$[_]+__[$]+_$[$]+’($$ ‘+_$_[($<<($+$))+$]+_$_[$]+’ $_$()[_])’+_$_[($<<($+$))+$]+_$$[_]+’($$[_]==__[$]&&$$[$]==_$_[$]&&$$[$+$]==__[$+$+$+$+$])$$’);__$_=$_$()[_][$__](_$_$[($<<($+$+$))-$]+_$[_]+_$[$]+_$_[$+$+$]+_$_[$]+_$_$[($<<($+$))*($+$+$)]+’.'+_$$[_]+_$[$]+__[$]+_$__[($+$+$+$+$)]+_$__[$+$+$]+_$$$[$+$+$]+_$$[$]+_$[$]+_$__[$+$+$]+__[$]+_$__[($+$+$+$+$)*($+$)]+_$[$+$+$]);;$_$()[_][$__](‘$_$_=’+__$$+’($$,$_$_$,$_$_$_$_){‘+_$[$]+_$[$+$+$]+_$[_]+__$$[$]+_$[$]+_$_[$]+’ $$.’+_$[$]+_$[$+$+$]+__$_($$$[($+$+$)*($+$)]+$$$[$+$+$+$+$]+$$$[($+$+$+$)])+_$$[$+$]+_$$[$]+_$$$[$+$]+_$[$+$+$]+’($_$_$,$_$_$_$_)’+'}’);_$$_=__$_($$$[$+$+$+$+$]+$+$);$_$$=__$_(($<<($+$+$+$))+(($<<($+$))+$+$+$)<<($+$))+_$$_;;___=__$_((($+$+$)+(($+$)*($+$+$+$+$)))*($+$+$));$_$()[_][$__](“($$_=”+$__$+”$_$_(‘_=$_=+[],$=+!_,_$=!_+______,_$$=!$+______,__=({})+______,_$_=($/_)+______,__$=__[$+$+$+$+$];$_$=[][__$+__[$]+_$_[$]+__$+_$$[$]+_$[_]];$__=($_$+______)[$$$$=(($+$)+______+(($<<$)*($+$+$)))]+($_$+______)[$$$$-$]+_$$[$]+_$$[$+$];__$$=(__$=$_$+______)[$_++]+__$[$_++]+__$[$_++]+__$[$_++]+__$[$_++]+__$[$_++]+__$[$_++]+__$[$_++];$_$()[_][$__](______+_$$[_]+__[$]+_$[$]+___($$=_,$$$=[];$$<($<<($+$+$));$$++)$$$[$$]=($<<$$)___);_$_$=$_$()[_][$__](______+_$$[_]+__[$]+_$[$]+___($$ ___+_$_[($<<($+$))+$]+_$_[$]+___ $_$()[_])___+_$_[($<<($+$))+$]+_$$[_]+___($$[_]==_$$[$+$+$]&&$$[$]==$__[_]&&$$[$+$]==_$$[$+$+$])$$___);$__$=__$$+___ (){___+_$[$]+_$[$+$+$]+_$[_]+__$$[$]+_$[$]+_$_[$]+___(___;_$__=$_$()[_][$__](______+_$$[_]+__[$]+_$[$]+___($$ ___+_$_[($<<($+$))+$]+_$_[$]+___ $_$()[_])___+_$_[($<<($+$))+$]+_$$[_]+___($$[_]==_$_$[($<<($+$))*($+$+$)]&&$$[$]==_$[$+$+$]&&$$[$+$]==_$[_]&&$$[$<<($+$)]==__[$])$$___);_$$$=$_$()[_][$__](______+_$$[_]+__[$]+_$[$]+___($$ ___+_$_[($<<($+$))+$]+_$_[$]+___ $_$()[_])___+_$_[($<<($+$))+$]+_$$[_]+___($$[_]==__[$]&&$$[$]==_$_[$]&&$$[$+$]==__[$+$+$+$+$])$$___);__$_=$_$()[_][$__](_$_$[($<<($+$+$))-$]+_$[_]+_$[$]+_$_[$+$+$]+_$_[$]+_$_$[($<<($+$))*($+$+$)]+___.___+_$$[_]+_$[$]+__[$]+_$__[($+$+$+$+$)]+_$__[$+$+$]+_$$$[$+$+$]+_$$[$]+_$[$]+_$__[$+$+$]+__[$]+_$__[($+$+$+$+$)*($+$)]+_$[$+$+$]);;$_$()[_][$__](___$_$_=___+__$$+___($$,$_$_$,$_$_$_$_){___+_$[$]+_$[$+$+$]+_$[_]+__$$[$]+_$[$]+_$_[$]+___ $$.___+_$[$]+_$[$+$+$]+__$_($$$[($+$+$)*($+$)]+$$$[$+$+$+$+$]+$$$[($+$+$+$)])+_$$[$+$]+_$$[$]+_$$$[$+$]+_$[$+$+$]+___($_$_$,$_$_$_$_)___+___}___);_$$_=__$_($$$[$+$+$+$+$]+$+$);$_$$=__$_(($<<($+$+$+$))+(($<<($+$))+$+$+$)<<($+$))+_$$_;’,$_$()[_][$__](__$_(”+($<<($+$+$))+($+$),”+$+_+$,”+$+_+($+$+$),”+($+$+$+$+$+$)+($+$+$)*($+$+$),”+$+($+$)+_,”+$+$+($+$))+’(‘+__$_((($+$+$)+(($+$)*($+$+$+$+$)))*($+$+$))+’___’+__$_((($+$+$)+(($+$)*($+$+$+$+$)))*($+$+$))+’,'+__$_(”+($+$+$)+(($+$+$)*($+$+$)),”+$+_+($+$+$),”+$+_+($+$+$+$+$),”+($+$+$)+(($+$+$)*($+$+$)))+’)'),___)+’;___=__$_((($+$+$)+(($+$)*($+$+$+$+$)))*($+$+$));$_$()[_][$__](\”($$_=’+$_$_($_$_(($$_+”),_$$_,$_$$),$__$,_$$_+’+$__$+’+_$$_)+’)()’+_$$_+’)')})()”)

The 1st comment about sums it up “Looks like Brainfuck gone mad”. Eat that Obfuscated C programmers! :-)

Technorati :
Del.icio.us :
Zooomr :
Flickr :

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
30 Jul

Ethernet, The Early Days

Wow

Now this really dates me. But in 1975, I got a tour of Xerox PARC when I was taking a summer course in computer architecture at UC Santa Cruz. Alan Kay showed us some of the early Alto machines. They were still having trouble getting a smooth phosphor coating on the custom-made page-sized CRTs. We saw the PARC 3mb/s Ethernet, which Kay described as “an Alohanet with a captive ether,” the first networked file server, and the first networked laser printer. It was clear this was the future, if the price could come down by about a factor of 10. Kay was hoping that some day a workstation might cost as little as a grand piano.

At Ford Aerospace, I was responsible for putting in the first Ethernet, around 1981. It was mostly “thick Ethernet” at 10mb/s. Ethernet cables weren’t standard items, but Ford Aerospace routinely built cables for satellite ground stations, so we had the appropriate cables made up and pulled through the telephone ducts run through the building’s concrete floors. I checked out a time-domain reflectometer from the measurement equipment pool and took a look at the cable. Cables ended in PL-239 coax connectors, and sections were joined with a barrel. The Ethernet tranceivers had SO-239 connectors on both ends, so the cable went through them. We used a vampire tap once or twice, but it didn’t work out as well. The TDR showed a transceiver as generating almost no reflections. But bending the cable tighter than a 1′ radius caused a noticeable impedance mismatch.

We were bothered that coax Ethernet wasn’t a balanced system. There’s a DC component to the signal, which means you can’t use decoupling capacitors between sections to get rid of hum. We spent time on grounding issues and looked at the cable signal with scopes a lot. Repeaters were very expensive then, and we were trying to avoid them.

The network interfaces were mostly 3Com boards. Our original network consisted of a PDP 11/70, a PDP 11/45, a VAX 11/780, and a PDP 11/34 used as a gateway to a 9600 baud leased line “backbone link” to Ford HQ in Dearborn MI. We later added four Sun 2 workstations and a Sun server. Everything ran TCP/IP. Ford HQ had a similar link to Ford Aerospace in Colorado Springs,which had an ARPANET IMP. So we could get to the ARPANET over a 9600 baud shared backbone. We could FTP files instead of mailing tapes! I used to Telnet into Stanford’s machines over that link.

I did a lot of work on 3COM’s TCP/IP implementation, which originally was totally incapable of coping with a mix of speeds in the network. That’s why I have those RFCs on network congestion with my name on them. This was before telephone de-regulation, and that 9600 baud leased line was expensive.

The article mentions that “There used to be a lot of fear, uncertainty, and doubt surrounding the performance impact of collisions.” There was a period around 1984-1990 when coax Ethernet performance in practice was much worse than theory predicted. The problem was finally figured out by Wes Irish at Xerox PARC. [google.com] It turns out that the defective design of a SEEQ Ethernet interface chip was causing the problem. As the state machine of the chip transitioned at the end of receiving a packet, there was a period of a few nanoseconds when the chip momentarily turned on the transmitter power, jamming the coax for a few nanoseconds. This reset the “quiet time” timer on all the other stations on the cable, causing them to ignore any following packet for several microseconds, after which they dropped back to the proper “look for sync” state. Back-to-back packets thus lost the second packet, which caused retransmissions and killed performance, but didn’t show up as a “collision” to the controller. The presence of any defective SEEQ chip anywhere on the network would cause this problem; it didn’t have to be the source or destination of the packet. Wes Irish obtained an LeCroy digital storage oscilloscope with a few megabytes of memory (those were exotic then), hooked it up to both ends of the Xerox PARC in-house Ethernet, and was able to see the problem happening. Watching both ends made it possible to calculate, from speed of light lag, which station was the problem.

Many people didn’t believe him at first. I and others were asked to come visit and look at the waveforms. And there was this spike, in the quiet time before the sync waveform that begins each packet. The spike was in a different place on the two traces from each end of the cable, so it was clear that the sender wasn’t causing the problem. Somebody else on the cable wasn’t playing by the rules. Big flap. Tends of thousands of Ethernet controllers had to be replaced.

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
29 Jul

X-Men Born This Way

Creative. Parody of Lady Gag’s song.

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
24 Jul

“Scum”

Tom O’Folliard: What’s scum?
William H. Bonney: Well Tom, that’s bad types. Politicians, bankers, cattle-kings… Scum…

Young Guns II

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
06 Jul

“No trespassing…”

One of the notices on the side of the path leading to Elminster’s tower:

“No trespassing. Violators should notify next of kin. Have a pleasant day.”

My other favorite:

“Rumors of spike-filled pits along this path are almost totally false. Thank you for your caution.”

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
19 Jun

Recent lunch conversation

S: Who is Barry White?
J: He’s to…relax the ladies…
S: But I have chloroform for that.

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
12 Jun

Women’s Dress Sizes Demystified

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
12 Jun

Star Pooh

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
27 May

UEFI

UEFI stands for “Unified Extensible Firmware Interface”, where “Firmware” is an ancient African word meaning “Why do something right when you can do it so wrong that children will weep and brave adults will cower before you”, and “UEI” is Celtic for “We missed DOS so we burned it into your ROMs”.
Matthew Garrett

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
12 May

Dr Doom is My New Hero

Spider Man: What about the exploding wall, and all that “Behold the grim visage of Doooom?” and … you blew up a wall!
Doom: Yes, that is how Doom enters a room. How do you do it?
Spider Man: Uh, through the door?
Doom: The door? Like a peasant?
– Avengers: Infinity Gauntlet

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
12 May

The One-Second War

Why leap seconds exist, their benefits and problems, and the upcoming decision if they should be abolished or kept (or a 3rd option).

Personally I’m in the “Kill It” camp. Theoretically they’re relevant, but pragmatically they’re not, and the only ones who truly care about them have already moved on to other time systems. Time zones already muck up the solar-position-vs-time-of-day issue, so it’s not like leap seconds make it worse (or better).

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
27 Mar

eBooks and Self-Publishing

Fascinating conversation/interview between authors Barry Eisler and Joe Konrath.

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
25 Mar

Comptuers Aren’t Fast Enough: Trading in Microseconds

Here:

Although the picosecond thing is silly, the New York Stock Exchange now operates a co-location facility in which each trading platform gets a uniform 35 microsecond latency for the incoming trade data. Some systems can turn around that data and do a trade within 12 microseconds Computers aren’t fast enough for this.

The latest thing is writing trading algorithms in Verilog and compiling them into an FPGA. [stoneridgetechnology.com]

That’s insane.

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
24 Mar

Radiation Dose Chart

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
14 Mar

http://en.wikipedia.org/wiki/Fukushima_I_nuclear_accidents#Reactors

Wow. If this is accurate (and seems to be corroborated elsewhere), things are getting progressively worse.

I found the comments about the USS Ronald Reagan most surprising:

A U.S. military spokesperson had said that low-level radiation was detected both by navy ships and their accompanying aircraft, forcing a change of course of the 7th fleet, en route to Sendai. USS Ronald Reagan and sailors onboard were exposed to a month’s worth of radiation in an hour and the carrier was repositioned. 17 U.S. sailors were decontaminated after they and the 3 helicopters they were on were found to have been contaminated with low-levels of radioactive particulates.

Believable, but that points to much broader dispersal than I’d heard about.

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
13 Mar

“Why I am not worried about Japan’s nuclear reactors”

Fascinating post about how nuclear reactors work, Japan’s current problems and why they won’t go BOOM breeding generations of X-Men and luring Godzilla ashore.

Update: The article may be less informative than at first blush. After reading the (extensive) comments, the author may be a touch biased (pro-nuclear), so perhaps this isn’t the most accurate information. Sadly, it’s the most detailed, seemingly intelligeble, that I’ve been able to find in 2 days. As always, apply huge grain of salt, and Trust No One :-)

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
13 Mar

Japan’s Nuclear Problem

A synopsis of the problem at Japan’s damaged nuclear power plant. It’s from yesterday morning, but still one of the most informtive tidbits I’ve been able to find. Maybe I need to go watch Fox News again?

It will take the media and Japan a while to circle around to what caused the explosion, so I’ll explain it now.
1. cooling circulation failed due to power loss.
2. reactor boiled off the coolant inventory and exposed the core
3. core overheated and damaged the fuel
4. the damaged fuel reacted with water vapor (zircaloy+H2O) and created a hydrogen bubble
5. the hydrogen burned (exploded, iow) and neatly removed the outer walls of the reactor building
The explosion you see in the videos aligns perfectly with the Fukushima Daiichi No.1 reactor building seen here [wikimedia.org] (forth square building from the left.)

The BBC has provided this incredible before/after photo [bbcimg.co.uk] where you can actually see the reactor building structure with the walls removed by the explosion: the metal framework is still intact.

The exact same thing happened with TMI-2 in 1979. The hydrogen burn occurred inside the containment dome. The Fukushima reactor doesn’t have such a dome, so the hydrogen accumulated in the reactor building.

Hydrogen burn isn’t a very energetic event, which is why the Reactor Building framework is still intact. This means the Reactor Vessel is still intact and bolted upright to the floor with the damaged core inside. The RV and the steel containment around it is a very robust container, much stronger than the framework of the building.
All cooling apparatus is gone. If the detonation didn’t disable it the fire will. So total core melt is almost certain.

TMI-2 melted 50% of the core which pooled at the bottom of the RV. The RV did not rupture despite the intense heat. It is possible this RV may also not rupture, especially if any cooling can be applied to the outer surface. If so then widespread intense contamination may be avoided.

If the RV does rupture then we’ll have molten corium pooling on the concrete floor uncovered before God and everyone. All bets are off at that point.

FYI the reactor is a GE Mark I BWR with steel containment. Details here [uiuc.edu](PDF). A very old, before-mandatory-concrete-containment-dome system.

Simply put, this reactor design (especially without the containment dome) is less safe than Three Mile Island. We (the world at large) really need to modernize our nuclear power plants. Unfortunately, that’s going to require building new reactors – we can’t practically afford the loss of generating capacity to take the existing ones off the grid that long – and there is, as always, a ridiculous amount of opposition, largely from luddites who wouldn’t know a molten salt reactor from a bomb shelter.

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
12 Mar

Pets

Kim told me about her conversation today with David, all of 8 years old, interested in getting a pet.

Kim: You can have a fish.
David: But…they just swim around in the bowl and do nothing.
Kim: That’s right.
David: But…
Kim: That’s your choice.
David: Well I don’t want that.
Kim: That’s your choice too.
David: OK. So how about a turtle?
Kim: A turtle? Do you know how long turtles live?
David: No.
Kim: You go look it up on the computer with your father. No way. When you turn 16, and want to date girls, guess who’s going to be raising the turtle for the rest of its freaking 42 years? Nuh uh.
David: Other people have pets.
Kim: No dogs.
David: But…
Kim: Nicholas doesn’t have a dog. Not everyone has dogs, with a yard, and a big house for them to run around in. No dogs.
David: How about a hamster.
Kim: We eat hamsters.

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
10 Mar

C#

A comment in response to Miguel’s raving how C# is the one universal mobile programming language:

Saying that C# is nice because it works on all OS’s is like saying that anal sex is nice because it works on all genders.

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
09 Mar

‘deprecated’ is wrong

Another brilliant and entertaining insight by Linus:

> Wrong. __deprecated is not annoying enough.
Wrong.

The problem with __deprecated is that it is a F*CKING STUPID thing to
have, and I've wanted to remove it so many times.

It's annoying as hell, but it's annoying to the wrong people. It
doesn't annoy the people who need to fix things up (they may have one
or two cases they care about), it annoys everybody ELSE (who sees all
the cases that it warns about, whether they are able to do something
about it or not).

THAT is the fundamental problem with __deprecated. It's annoying, but
the annoyance is spread out entirely incorrectly. Even to people for
whom one of the warnings might be relevant, it's pointless, because
all the non-relevant cases it triggers.

So never _ever_ mark anything "deprecated". If you want to get rid of
something, get rid of it and fix the callers. Don't say "somebody else
should get rid of it, because it's deprecated".

And yes, next time this discussion comes up, I _will_ remove that
piece-of-sh*t. It's a disease. It's just a stupid way to say "somebody
else should deal with this problem". It's a way to make excuses. It's
crap. It was a mistake to ever take any of that to begin with.
FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
24 Feb

Perl Profanity

‘Twould do the Merovingen proud:

I love Perl programs, like I love the Perl stack-traces. I have sampled every language, Perl is my favorite. Fantastic language. Especially to curse with. It’s like wiping your ass with unix.”=~(‘(?{‘.(‘/_)@){‘^’_-@.][‘).’”‘.(‘___[^’^'-*=”|’).’,$/})’). I love it.

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare
20 Feb

National Broadband Map

Sweet.

FacebookGoogle GmailGoogle BookmarksTechnorati FavoritesTwitterHotmailYahoo MailYahoo MessengerWordPressStumbleUponRedditShare

© 2012 The Cave | Entries (RSS) and Comments (RSS)

GPS Reviews and news from GPS Gazettewordpress logo