Archive for December 2006
My letter to Carl Sagan
Early on in life I knew what my interests were: physics and history. Although very early on I did not know the interest in natural science was really even called physics. Actually, I knew and I did not know.
As an elementary school student, I spent a lot of time at the library, and distinctly remember Kevles’s book The Physicists sitting on the shelf, big, thick, and full of accounts of my heroes in American science. And there was the profoundly influential Ferris book The Red Limit, where we talked about redshifts and the ballooning universe. And The National Geographic, with articles by astronomer Allan Sandage. These guys really were my role models. They were scientists who stood tall enough to be seen from a small town in Missouri.
And, then, of course there was Carl Sagan, with his Broca’s Brain, Dragons of Eden, and Cosmos. It’s not often someone can introduce a new word into the language, but Carl Sagan did. Billions.
Sometime in the mid 70s while I was in secondary school, I determined that I should write to Dr. Sagan and ask him what should be my approach if I wanted to become an astronomer, which was my goal at the time. How I found his Cornell address I do not recall, this period being pre-Internet, pre-cable, and, even, pre-microwave oven. My guess is that I found it at the library. Ithaca can’t be that big, in hindsight, and he was likely one of the most well-known people in town. Nothing more than “Prof. Carl Sagan, Ithaca, NY” probably would have worked on the envelope.
So I wrote my letter, and lo, some weeks later, came a reply. Carl Sagan had personally taken the time to respond to my inquiry. I am still honored, and humbled, by this. And I have that letter in my files, along with a signed photo of him. Therein he suggested that if I wanted to study the stars, I should take a course of study consisting of math and physics —- which I did. By 1991 I had a Ph.D. in physics, and while not specializing in astronomy, I nonetheless had a thorough grounding in the subject I loved.
Not every day did I awake and recall Prof. Sagan’s advice, of course, but his encouragement provided one of a number of nudges to continue in the direction of physics as a way of looking at the world. While I no longer make my living directly from physical science, I would not dream of not having pursued my chosen course of study. I love that I have that background, and would do it again if given a half a chance. One man did make a difference in the life of a kid from Missouri, and I will always be grateful for his personal encouragement.
Through his tireless reaching out to the world of young scientists, he did not simply invite one to listen to him, but far more importantly, he invited one to join him. That is leadership.
He passed from our midst ten years ago come this December 20, and sadly, way before his time. But I’ll never forget what he did for me. I corresponded with Carl Sagan. I still can hardly believe it happened.
[tags]carl sagan[/tags]
Dumping the JXTA Cache
hamada kindly pointed out that there is utility code in platform/binding/java/contrib/cm/Dump.java that allows one to dump the JXTA cache articles without running JXTA and doing the same via the DiscoveryService.
Copy Dump.java to a working directory and compile:
#!/bin/sh
rel=Pavlova
jxtah=$HOME/JXTA/Release/${rel}/
javac -cp $jxtah/platform/binding/java/jnlp/lib/jxta.jar Dump.java
then run
#!/bin/sh
source $HOME/lib/JXTAfuncs.sh
function db() {
# process db files
flist=`find $apph/cm -name \*.tbl`
for i in ${flist}; do
echo Processing db ${i}
java -cp ${cp} Dump -dir / -type db -file ${i}
done
}
function idx() {
# process idx files
flist=`find $apph/cm -name \*.idx`
for i in ${flist}; do
echo Processing index ${i}
java -cp ${cp} Dump -dir / -type index -file ${i}
done
}
function offsets() {
# process offset files
flist=`find $apph/cm -type f|grep offsets`
for i in ${flist}; do
echo Processing offset ${i}
java -cp ${cp} Dump -dir / -type offsets -file ${i}
done
}
function main() {
unset cp
rel=Pavlova
jxtah=$HOME/JXTA/Release/${rel}/
apph=${HOME}/Beacon
cp=.
jxtaclasspath $jxtah cp
db
idx
offsets
}
main
where $HOME/lib/JXTAfuncs.sh is
function jxtaclasspath {
local usage="Usage: jxtaclasspath relHome outputvar"
local classp
jhome=${1:?need a JXTA_REL_HOME. $usage}
if [ ! -d $jhome ] ; then
echo $jhome does not exist
return -1
fi
tmp=${2:?need a output variable. $usage}
eval classp=\$$2
for i in ${jhome}/platform/binding/java/jnlp/lib/*.jar ; do
classp=${i}:${classp}
done
eval "$2=$classp"
return 0
}
The shell function jxtaclasspath takes two arguments, the base directory pointing at the platform build, and the shell classpath variable cp. cp is modified on output to contain a usable classpath to the platform jars. You will probably need to tweak the platform basedir jxtah, as well as apph, which points to the application JXTA_HOME.
[tags]jxta,p2p[/tags]