Friday, June 22, 2007

Another favorite quote from David Brin's Earth

Dear Net-Mail User [ EweR-635-78-2267-3 aSp]:

You mailbox has just been rifled by EmilyPost, an autonomous courtesy-worm chain program released in October 2036 by an anonymous group of net subscribers in western Alaska. [ ref: sequestered confession 592864 -2376298.98634, deposited with Bank Leumi 10/23/36:20:34:21. Expiration-disclosure 10 years.] Under the civil disobedience sections of the Charter of Rio, we accept in advance the fines and penalties that will come due when our confession is released in 2046. However we feel that's a small price to pay for the message brought to you by EmilyPost.

In brief, dear friend, you are not a very polite person. EmilyPost's syntax analysis subroutines show that a very high fraction of your net exchanges are heated, vituperative, even obscene.

Of course you enjoy free speech. But EmilyPost has been designed by people who are concerned about the recent trend toward excessive nastiness in some parts of the net. EmilyPost homes in on folks like you and begins by asking them to please consider the advantages of politeness.

For one thing, your credibility ratings would rise. (EmilyPost has checked your favorite bulletin boards, and finds your ratings aren't high at all. Nobody is listening to you, sir!) Moreover, consider that courtesy can foster calm reason, turning shrill antagonism into useful debate and even consensus.

We suggest introducing an automatic delay to your mail system. Communications are so fast these days, people seldom stop and think. Some net users act like mental patients who shout out anything that comes to mind, rater than as functioning citizens with the human gift of tact.

If you wish, you may use one of the public-domain delay programs including in the version of EmilyPost, free of charge.

Of course, should you insist on continuing as before, disseminating nastiness in all directions, we have equipped EmilyPost with other options you'll soon find out about...

One of my favorite quotes from David Brin's Earth

I sometimes wonder what animals think of the phenomenon of humanity -- and especially of human babies. For no creature on the planet must seem anywhere near so obnoxious.

A baby screams and squalls. It urinates and defecates in all directions. It complains incessantly, filling the air with demanding cries. How human parents stand it is their own concern. But to great hunters, like lions and bears, our infants must be horrible indeed. They must seem to taunt them, at full volume.

"Yoo-hoo, beasteis!" babies seem to cry. "Here's a toothsome morsel, utterly helpless, soft and tender. But I needn't keep quiet like the young of other species. I don't crouch silently and blend in with the grass. You can track me by my noise or smell alone, but you don't dare!

"Because my mom and dad are the toughest, meanest sumbitches ever seen, and if you come near, they'll have your hide for a rug."

All day they scream, all night they cry. Surely if animals ever held a poll, they'd call human infants the most odious of creatures. In comparison, human adults are merely very, very scary.

--Jen Wolling, from The Earth Mother Blues, Globe Books, 2032. [hyper access 7-tEAT-687-56-1237-65p.]

Earth, David Brin

Thursday, May 31, 2007

Google street maps easter egg

Found this when exploring the streets around Google HQ: 1648 Charleston Rd, Mountain View, CA

Wednesday, May 30, 2007

Image archiving and digitizing

After my grandmother passed away, I volunteered myself to digitize the family slides so everyone could enjoy them.

I acquired a Nikon film / slide scanner, and began to work on the mountain of slides. And soon lost interest and stopped.

Recently, my mom made several pointed comments to me about finishing the job, or returning the slides so she can do it. Of course, my ego wouldn't allow for that, so I've been trying to finish scanning these things.

Today I just finished scanning another 100-slide carousel. I'm saving the slides as tiff images, and each file is about 67M. (5782 x 3946 pixels)

On average, each carousel is going to take about 6700M (or about 6G). To back these pictures up, and distribute to the family, I've been burning them on DVDs (and down-sized sets to CDs).

The cool thing about scanning all these slides is that I can literally see the difference quality makes. Some of the slides are on generic drug-store film-de-jour, and some is on Kodak Kodachrome. The Kodachrome slides have retained their colors much better than the other slides, and are much sharper when scanned.

Which got me to thinking about longevity of my digital images. These film prints are about 50 years old, and some of them (the Kodachrome) look great. I really doubt all my digital camera photos are going to last for 50 years on a CD or DVD disc.

I'm starting to think that converting my digital images to film might be the best way to go. Doing a google search for "print slides from digital pictures", you can find lots of companies offering digital->film services. From a quick perusal, $2.00 seems to be the ballpark per slide.

Now all I have to do is figure out what I'm going to do with my .avi movie clips from my camera. Super-8? :-)

Friday, May 11, 2007

Searching for common bugs

Google Code Search isn't anything new, but I had fun with it today to search for a bug that I ran into in my project's code base.

Its a simple error to make:

if ( s == "" )

Correct usage would be

if ( s.equals( "" ) )

The tricky thing is that the first (incorrect) usage will work a surprisingly large percentage of the time.

Most strings will be empty because they were initialized to "" somewhere, rather than the result of a string operation that returned an empty string:
s.substring( s.length() ) // returns an empty string

Being initialized to the constant "" means that s will be pointing to the same jvm object that will be used in the equality comparison in the first if() statement.

Anyway, here is a link to the results of a code search for == ""

google code search for == ""

Interestingly enough, some of the first hits are valid uses of == "" (at least from their comments), because the string was interned first before being used in the comparison.