inside the man

Thursday, March 31, 2005

Bullets from heaven

A woman in my home town was hit by a bullet while sleeping. The strange thing is that this was a large caliber bullet that fell through the roof of her house, pierced her bedroom ceiling, and hit her in the chest as she slept next to her husband. Police believe that the bullet was fired into the air from somewhere near by. The women was not seriously injured.

Wednesday, March 30, 2005

A Wendy Doniger on originality in art

"That is, if everything [artisticly] good has already been done and you have kept it in your museum permanently, you have a choice of buying something good and derivative - one more still life or fruit - or something bad and new - a statue made of condoms."

(From "Finding our memories in other people's myths" in Museums and the New Pluralism edited by David Goa, Canadian Museums Association, Ottawa, 2002)
Opening salvos in p2p vs. MGM

Ars technical coverage of early media commentary on this facinating US Supreme Court case.

Tuesday, March 29, 2005

Launch day

(Related documents: Making Easter egg rockets, Egg rocket technical analysis)

On Easter Monday, 2005, my range crew and I headed for the snow covered rocket range. Yes, there was snow on the ground for Easter - I am in Edmonton, Alberta, Canada, north of the 50th parallel.

The first egg rocket attempt. "Passion Power" awaits final preparation on the launch pad.

The first egg rocket attempt. "Passion Power" is connected to ignition and in the launch tube. Unfortunately, this attempt misfired.

The most successful launch. "Bunny Blast", on her second flight, went about 5 m vertically and 17 m horizontally as pictured.

The three egg rockets at the end of the day - two completely intact and one will never fly again

Range Log

1Passion Power1/4AMisfire
2Easter Explosion1/2ANose dive, damaged
3Bunny Blast1/2ANose dive
4Passion Power1/4AApprox. 4 m altitude
5Bunny Blast1/2AApprox. 5 m altitude, 17 m horizontal distance

Experimental findings

  • Yes, an egg can withstand a moment of 70 g's of acceleration.
  • The launch tube works some of the time. Perhaps a longer tube would work better?
  • Yes, the "Bunny Blast" survived two launches without damage (and will fly again as soon as I buy more engines).
Egg rocket technical analysis

(Related documents: Making Easter egg rockets, Launch day)

Like any good geek, I could not just make the egg rockets and fly them. I first had to dust off the old physics texts and crunch some numbers. Below, I have a brief technical analysis of each of the three egg rockets that I made, along with some predictive flight data. Of course, the flight data prediction is based on some invalid assumptions about the aerodynamics of eggs with cardboard fins. In fact, these calculations are based on standard model rocket aerodynamics. (See the perl script that I use to estimate model rocket flights below. You can get decent engine data from NAR.)

This analysis raised some interesting questions:

  • Will an egg, in this case "Bunny Blast", be able to withstand a peak accelleration of over 70 g's and a mean accelleration of over 30 g's?
  • Will the launch tube direct the flight path enough for an egg rocket to get anywhere near its maximum potential altitude (around 16 m for "Easter Explosion" and "Bunny Blast")?
  • Will a single egg rocket survive for a second launch?

Passion Power analysis (1/4A Estes engine)

cross sectional radius : 0.041 m
launch mass : 0.011 kg
post burn mass : 0.0095 kg
peak thrust : 4.95 N
average thrust : 2.36 N
burn time : 0.25 s

max. velocity : 28.9604901918914 m/s = 104.257764690809 km/h
peak acceleration : 450 m/s2 = 45.8715596330275 g's
ave. acceleration : 230.243902439024 m/s2 = 23.4703264463837 g's
post burn alt. : 4.81842958309773 m
coast gain : 6.14234647811197 m
max. altitude : 10.9607760612097 m
ideal coast delay : 0.860726810000525 s

Easter Explosion analysis (1/2A Estes engine)

cross sectional radius : 0.041 m
launch mass : 0.012 kg
post burn mass : 0.0095 kg
peak thrust : 7.62 N
average thrust : 3.03 N
burn time : 0.36 s

max. velocity : 34.542802811189 m/s = 124.35409012028 km/h
peak acceleration : 635 m/s2 = 64.7298674821611 g's
ave. acceleration : 281.860465116279 m/s2 = 28.7319536306095 g's
post burn alt. : 9.45684385967625 m
coast gain : 6.80957853315583 m
max. altitude : 16.2664223928321 m
ideal coast delay : 0.881845816626088 s

Bunny Blast analysis (1/2A Estes engine)

cross sectional radius : 0.041 m
launch mass : 0.011 kg
post burn mass : 0.0085 kg
peak thrust : 7.62 N
average thrust : 3.03 N
burn time : 0.36 s

max. velocity : 34.7112453713632 m/s = 124.960483336908 km/h
peak acceleration : 692.727272727273 m/s2 = 70.6144008896302 g's
ave. acceleration : 310.769230769231 m/s2 = 31.6788206696464 g's
post burn alt. : 9.75682236975913 m
coast gain : 6.29926022593795 m
max. altitude : 16.0560825956971 m
ideal coast delay : 0.840274567949676 s

Model rocket flight data prediction perl script

This is the script that I wrote based on Randy Culp's web site and mathematical fragments that I cobbled together from here and there. If any able physicist (including Randy) cares to review this, I would be greatful. Of course, this is not optimized code by any means. There is proliferation of variables in order to help me follow the math. If any software geek wants to clean up the code, that would also be interesting - assuming the physics are valid.


# A single stage model rocket flight statistics estimator
# Chris Hammond-Thrasher
# Based on

use strict;
use Math::Complex;
use Math::Trig qw(atan);

# Constants
my $VERSION = "0.1.2";
my $RHO = 1.22; # air density kg/m**3
my $CD = 0.75; # drag coeficient, 0.75 is typical for rockets
my $G = 9.81; # acceleration due to gravity m/s**2

# Variables
my $radius; # cross sectional radius of rockets in meters
my $mass1; # launch mass including engine
my $mass2; # mass once fuel is consumed
my $thrust_peak; # peak thrust of motor in Newtons
my $thrust_ave; # average thrust of motor in Newtons
my $burn_time; # burn time in seconds

if (scalar(@ARGV) == 6) {
# Show banner
print "\nSingle Stage Rocket Flight Estimator v. $VERSION\n\n";

# Assign variables
$radius = $ARGV[0];
$mass1 = $ARGV[1];
$mass2 = $ARGV[2];
$thrust_peak = $ARGV[3];
$thrust_ave = $ARGV[4];
$burn_time = $ARGV[5];
} elsif (scalar(@ARGV) == 0) {
# Show banner
print "\nSingle Stage Rocket Flight Estimator v. $VERSION\n\n";

# Interactive mode

# Radius
while (1) {
print "Enter the cross sectional radius of the ",
"rocket in meters: ";
$radius = ;
if ($radius > 0) {
} else {

# Launch mass
while (1) {
print "Enter the launch mass in kilograms: ";
$mass1 = ;
if ($mass1 > 0) {
} else {

# Post burn mass
while (1) {
print "Enter the post burn mass in kilograms: ";
$mass2 = ;
if ($mass2 > 0) {
} else {

# Peak thrust
while (1) {
print "Enter the peak motor thrust in Newtons: ";
$thrust_peak = ;
if ($thrust_peak > 0) {
} else {

# Mean thrust
while (1) {
print "Enter the average motor thrust in Newtons: ";
$thrust_ave = ;
if ($thrust_ave > 0) {
} else {

# Burn time
while (1) {
print "Enter the burn time of your motor in seconds: ";
$burn_time = ;
if ($burn_time > 0) {
} else {
print "\n";

} else {
die "usage: radius launch_mass post_burn_mass ",
"peak_thrust average_thrust burn_time\n";

# Print inputs
print "INPUT VALUES\n";
print "cross sectional radius : $radius m\n";
print "launch mass : $mass1 kg\n";
print "post burn mass : $mass2 kg\n";
print "peak thrust : $thrust_peak N\n";
print "average thrust : $thrust_ave N\n";
print "burn time : $burn_time s\n";
print "\nOUTPUT VALUES\n";

# Calculations
my $area = $radius ** 2 * pi; # cross sectional area of rocket m**2
#print "Area: $area m2\n";

my $k = 0.5 * $RHO * $CD * $area; # coeficient of friction
#print "k: $k\n";

my $mass_ave = ($mass1 + $mass2) / 2; # average mass during burn

my $q = sqrt(($thrust_ave - ($mass_ave * $G)) / $k); # interim variable
#print "q: $q\n";

my $x = 2 * $k * $q / $mass_ave; # interim variable
#print "x: $x\n";

my $vmax = $q * (1 - exp(-1 * $x * $burn_time)) /
(1 + exp(-1 * $x * $burn_time)); # maximum velocity at end of burn
print "max. velocity : $vmax m/s = ", $vmax * 3.6 , " km/h\n";

my $peak_accel = $thrust_peak / $mass1;
print "peak acceleration : $peak_accel m/s2 = ",
$peak_accel / $G, " g's\n";

my $ave_accel = $thrust_ave / $mass_ave;
print "ave. acceleration : $ave_accel m/s2 = ",
$ave_accel / $G, " g's\n";

my $y1 = (-1 * $mass_ave / (2 * $k)) *
log(($thrust_ave - ($mass_ave * $G) - ($k * ($vmax ** 2))) /
($thrust_ave - ($mass_ave * $G))); # altitude gain during burn
print "post burn alt. : $y1 m\n";

my $y2 = ($mass2 / (2 * $k)) *
log((($mass2 * $G) + ($k * ($vmax ** 2))) /
($mass2 * $G)); # altitude gain during coast
print "coast gain : $y2 m\n";

my $y = $y1 + $y2; # maximum altitude
print "max. altitude : $y m\n";

my $qa = sqrt(($mass2 * $G) / $k); # interim variable
#print "qa : $qa\n";

my $qb = sqrt(($G * $k) / $mass2); # interim variable
#print "qb : $qb\n";

my $ctime = (atan($vmax / $qa)) / $qb; # ideal coast time
print "ideal coast delay : $ctime s\n";
Making Easter egg rockets

(Related documents: Egg rocket technical analysis, Launch day)

A few days before Easter, I was day dreaming about an unusual Easter egg project could I do with the kids. I considered an over the top Easter egg diorama, but that was too static. Then I thought about Easter egg robots, which I would like to try, but I did not have any electronic part around the house. Then it dawned on me - Easter egg rockets! Would they blast to pieces upon ignition? Would they fly around unpredictably? Only one way to find out. This is my story.

A fine Easter egg rocket

How to make an Easter egg rocket

You will need the following materials (mostly standard model rocket stuff):

  • One or more raw grade A eggs (any size will probably work - I used large)
  • One 1/4A or 1/2A engine per egg
  • One fuse per engine
  • Model rocket recovery wadding (a.k.a. fireproof toilet paper)
  • A model rocket igniter
  • Card stock for fins (balsa wood would work too)
  • Construction paper for the fin template
  • A Pringles-style potato chip can
  • A pencil
  • Tweezers
  • A modeling knife and/or scissors
  • Carpenter's glue

Step 1: Blow out the eggs. Pierce a small hole in the top and bottom of each egg with something long, thin and sharp. Stir around inside the egg in order to burst the yolk. Blow into one hole so that all the contents of the egg are forced out the other hole. Boil the empty eggs for a few minutes and let them dry.

Step 2: Expand the bottom hole just enough to fit in your rocket engine.

Three eggs with holes just large enough to fit a 1/4A or 1/2A model rocket engine. Tweezers seem to work well for expanding the hole.

Step 3: Make a fin template out of construction paper. Be certain to test the curve against your eggs and adjust or redo until the curve is right. Then use this template to cut out four fins per egg.

Use construction paper as a template for the card stock fins. You might have to try a couple of times before you get the curvature of the egg just right.

Step 4: Using as little carpenter's glue as possible, glue on your fins. Since I could not think of a better way to do it, I just lined them all up visually. Once the glue has dried for 15 minutes or more, use your finger to smooth on a reinforcing layer of glue down both sides of each fin. Then, let everything dry for at least two hours.

Three egg rockets with freshly glued fins

Step 5: Put a wad of recovery wadding into the nose of the egg rocket. This serves as a cushion and stabilizer for the engine. You need enough wadding so that the end of the engine will remain 1 to 2 mm outside of the egg when firmly pressed into the wadding cushion.

One egg rocket with a wad of recovery wadding inside

Step 6: Insert the engine and make sure that it is stable inside the egg rocket. The end of the engine should remain 1 to 2 mm outside of the egg when firmly pressed into the wadding cushion. If necessary, add or remove some wadding.

One egg rocket with the engine inserted

Step 7: Cut the bottom off of your launch tube so that it is open at both ends. Also cut off any lip on either end that a rocket could catch onto. I also glued a plastic straw unto the side of the tube so that I could attach the tube to the rod on my standard model rock launch pad. However, everything will probably work fine if you simply launch with the tube standing upright on the ground stabilized by a few rocks.

Three unpainted egg rockets ready to go along with their launch tube

Step 8: Decorate your egg rockets! This is an Easter activity after all.

Three decorated, and seasonally named, egg rockets ready for launch

Step 9: Prep and launch from inside the launch tube as you would prep and launch any model rocket (see NAR for more information).

So, what happened when I launched them? Watch for an upcoming post to find out (see launch day).

Monday, March 28, 2005

How the Secret Service cracks 256-bit symmetrical encryption keys

How the US Secret Service uses a distributed computing network and customized dictionaries built from users' emails and unencrypted documents.
Go in business

Robert Tsao of Taiwan's United Microelectronic Corp. (UMC) credits his playing of weiqi (also known as go or baduk) for part of his business success. "Before placing the game pieces, you have to think where your rival will move after you. This kind of training equips players with the ability forward planning."

Saturday, March 26, 2005

Octopi sneak away on two legs?

Two videos of strange cephalopod behavior. Part of a UC Berkeley robotics project.
Canadian Government Statement on Proposals for Copyright Reform

This statement was posted by Canadian Heritage on March 24th. Ars technica comments here, interpreting this as stopping short of the American DMCA [EFF]. The Globe and Mail interprets this as a clear indication that the Canadian government will intruduce legislation to make "free downloading illegal" by June 2005.

Thursday, March 24, 2005

Internet Archive: Moving Image Archive

Got a few (thousand) hours to kill? Check out the free movie archive at
We actually saw another planet

The Spitzer orbital telescope has detected infrared emissions from two planets outside of our solar system. Previously, observations of extra-solar planets had been limited to indirect observations of a planet's interaction with the light of its star.

Monday, March 21, 2005

Tuesday, March 15, 2005

Relics held by Rome for centuries returned to Constantinople

In a show of Catholic-Orthodox unity, the Holy See in Rome has returned relics of St. Gregory Nazianzen and St. John Chrysostom to the Constantinople See. The relics of Gregory Nazianzen (330-390) have been in Rome since the 8th century iconoclastic controversy, and the relics of John Chysostom (349-407) were brought to Rome following the 13th century sacking of Constantinople by Western European crusaders.
Making a living is difficult for most artists - but what if your medium was human cadavers?

A controversial German artist who works with cadavers faces new controversy after trying to expand to Poland, where his father, who leads the project, allegedly served with the SS.

Schneier: "See how two-factor authentication doesn't solve anything?"

It is fun to quote out of context. However, Scheier's recent blog post on the failure of two factor authentication does make a strong case about the need for new remote user authentication mechanisms that are resistant to today's strongest attacks.

Sunday, March 13, 2005

Left on the scrap pile of myth and tradition.

Tuesday, March 08, 2005

How to recognize plaintext?

Bruce Schneier wrote this nice little piece about how to programatically recognize plaintext in 1998. It contains an accessible discussion of Claude Shannon's concept of unicity distance.
Michael Geist on chilling Canadian Internet regulatory trends

An interesting discussion of the dual threat of real time monitoring of all Internet traffic by law enforcement and the trend for ISPs to give preferrential treatment to some traffic. Time to write your MP.

Friday, March 04, 2005

A star 16% larger than Jupiter found

This in an interesting story. It makes me think how close we are to living in a binary star system.

Thursday, March 03, 2005

FUD-based encyclopedias

Slashdot covers Aaron Krowne's, head of Emory University's library research department, response to McHenry's recent attack on Wikipedia and other community-based reference resources. Interesting stuff.

Blog Archive

About Me

My photo
Edmonton, Alberta, Canada
Returned to working as a Management Consultant, specializing in risk, security, and regulatory compliance, with Fujitsu Canada after running the IT shop in the largest library in the South Pacific.

CC Developing Nations
This work is licensed under a Creative Commons Developing Nations license.

Site Meter