Tuesday, October 30, 2007

Movie plot weapon

You heard it here first kids,

High powered microwave weapon ... FROM SPACE.

Use it to start fires on the ground of a country that has been giving us too much lip.

Let's see here.

a match is what, about 1BTU?

via google, to metric is:
1055.05585 Joules

lets check that
1 gram of cellulose releases 1.5cal/mg in burning, since flame spreads,
6279 J/g would be more than enough to ignite 1 gram of wood.
Once a small patch is ignited, it should spread.

on the low end of density of something like oak (0.6g/cc) that means 3767.4 J/cc.
spreading that out to a 1mm thick slice, thats what, 10cm^2 area that needs the 3767 J.

lets double it to 7534.8 J required due to losses from the delivery of the energy over time.

A LEO satellite orbits the earth every 90 min.
Lets say it is visible, um, 1/9th of the time. 10 min. (the ISS is visible here ~5 min)
so lets give you 1 minute of time to deliver the required energy.

7534.8/60 = 125.58 watts
for things of this nature. but, the energy doesn't have to "return" so the R_r^2 squared term is removed. further simplifying, lets just say that P_r = P_t*o*a
0 = (5% absorbed*)
a = power in/power delivered = 0.1

so P_r = P_t * 0.005

sweet. P_t needs to be ~ 25116 watts

thats 25.116 kw. The Boeing 702 satellite bus can provide 25kw.

* from "An experiment with microwave radiation to determine absorption
coefficients and defects of wood - Physics Education,Number 6,Volume 28"
It is really low, it seems... if i was serious i would look to see what frequency wood absorbs the most. scotts says that it CAN happen...

I'm going to claim that it is possible to start a fire from space with a satellite using electromagnetic radiation.

Who's with me?

Thursday, October 25, 2007

Pumpkin Carving Pics

We all carved pumpkins last weekend, so I thought I would share some photoz.

I designed the pattern for and carved the F-35 one.

Monday, October 22, 2007



If it doesn't play, just click it.

Thursday, October 18, 2007

Update: Congress Watcher

So, listening to a commenter, here are two photos of the data, before and after.

As you can see, the thomas way shows 3 bills in the screen, the Joe way shows 8. You lose information, but I don't care about that information. (until I click the link on the right)
Last major action is nice, but meh. I would rather it be like fark, a headline and a link to more information. Also, when you click on the bill link in the thomas version, it doesn't take you directly to the bill. So I fixed that too.

The Thomas Way:

The Joe way:

My version is not as good looking, so if anyone wants to make it snazzy then ask me about it. I don't know that it is worth it. With this, I wanted RAW DATA and not some dressed up CSS-XML-AJAX-laden-takes-forever-to-load-and-serve page.

Oh, and it also renders very well in w3m. thomas won't.

Monday, October 15, 2007

Congress Watcher

I often go to Thomas to see what congress is up to. I typically go to the yesterday in congress and read through the bill summaries.

I don't like the interface.

So I made a new one.

It consists of a bit of python code that parses the yesterday in congress page. The output from that is run on my server using PHP. I would be interested in finding out a better way to do this if anyone thinks it was a sloppy kludge.

The php code (congresswatcher.php)

And the python code (


##### ######
# Usage: ./ <number of days ago> > congress_watcher.html #
# Use zero days to get yesterday's congress #
##### ######

import urllib2 #for website grabbing/reading
import re #for regexp stuff
import csv # for exporting the data
import time # for the sleep()

import datetime #for datetime... duh!
import sys # for the arguements

daysago = sys.argv[1]

timez = - datetime.timedelta(int(daysago))

yestz = timez - datetime.timedelta(1)

todaydate = ''

todaydate += str(timez.year)
todaydate += '0'*(timez.month < 10) + str(timez.month)

todaydate += '0'*( < 10) + str(

yestdate = ''
yestdate += str(yestz.year)
yestdate += '0'*(yestz.month < 10) + str(yestz.month)

yestdate += '0'*( < 10) + str(

base_website = ''
base_website += 'cgi-bin/bdquery?&Db=d110&querybd=@OR(@FIELD(FLD961+'

base_website += yestdate
base_website += ')+@FIELD(FLD010+'
base_website += yestdate
base_website += ')+@FIELD(FLD961+'

base_website += todaydate
base_website += ')+@FIELD(FLD010+'
base_website += todaydate
base_website += '))'

website = urllib2.urlopen(base_website)

except urllib2.HTTPError, e:
print 'Cannot retrieve URL: HTTP Error Code', e.code

except urllib2.URLError, e:
print 'Cannot retrieve URL: ' + e.reason[1]

website_html =

#output the header stuff for the html
print '<html>'

print '<body>'
print '<h1>Congress Watcher</h1><br><br>'

#check if they actually had congress
lazy = ''
lazy = re.findall(r'<hr><B>No formal action was',website_html)

if (len(lazy)>0):
print 'No Congress yesterday'
print '</body>'

print '</html>'

dataz = re.findall(r'</A>: ["A-Z a-z,-.0-9()]+', website_html)

numz = re.findall(r'>[A-z. 0-9]+</A>:', website_html)

basebill = ''

print '<table>'

for ii in range(len(dataz)):

numz[ii] = numz[ii][1:] #remove the '>'

numz[ii] = numz[ii][:-6] #remove the ' </A>: '

dataz[ii] = dataz[ii][7:]

billlink = '<a href="' + basebill + numz[ii] + ':">'

billlink += numz[ii] + '</a>'

print '<tr><td>' + billlink + '</td>'

print '<td>' + dataz[ii] + '</td>' + '</tr>'

print '<tr><td><br></td></tr>'

print '</table>'
print '</body>'
print '</head>'

Friday, October 05, 2007

Finally! They got the Browns!

The news

I have been following this story for a very long time. At least six months, I think.
Nice to see a peaceful resolution, and they got their come-uppins with out a big shootout with the federales.

Tuesday, October 02, 2007

Boat pieces and assembly

Tonight we(Sara and I) cut out the boat and put it together with zip ties.
The next step is to get some epoxy and fibreglass to make all of the edges.
Then paint + finish. Finally, use in water. I need to make oars and get oarlocks.

Here are two excited boat builders!