Inception

Inception


Possibly the best action sci-fi I’ve ever seen. It is not as confusing as say Primer, not as mind-numbingly STUPID as Avatar but filled with great action.

I’ve seen a few headlines about the movies plot; how it might be ‘too smart’ for the average movie go-er. I think that is insulting to the average person, and I hope that movies like this will retrain the “industry” to continue to make “smart” movies instead of anticipating that the average person is a drooling slack-jawed yokel who is missing a tooth. The movie is not “too smart”, it is perfect. There is a lot of things you get to try and process, and the best part is the two days AFTER seeing the movie where you are still thinking about all the little details.

I didn’t see any commercials or reviews of this movie before hand, so I really didn’t know what it was about. I prefer this.
RANT
I feel that move movie trailers show way too much *visual* information. That is an important distinction to me. I can read the back of a book and get the outline of a plot, but nothing is spoiled. I can see an extended trailer for a movie, and what typically happens is you are given a voice over of the plot but then shown every major event in the movie. It is those small snippets that kill it. The best example of a ruined movie is the trailer for Surrogates.
END RANT
The movie is about mucking in someone elses mind to either extract or plant an idea, which makes this just as much of a heist film as a science fiction one. There is a team of people (The Spot Man, The Architect, The Chemist, The Forger and The Extractor), each person has their own sort of specialty. The one common task they all have is while in a shared dream state, one person has to be the host for the dream environment, and also be the anchor to bring everyone else back. This is where the movie gets complex, and very very interesting.

It reminds me of programming in two ways. The movie is basically a stack data structure. Last In, First Out. That might be hard from some people to follow, but all the move does is pop-off the stack in a very spectacular way. It also reminds me of a recursive function, but I’m not going to fully explain that.

Each dream environment, or Object, on the stack is ultimately in the mind of the “Anchor”, but the Architect designs the actual environments. By far the coolest character is not the main character Cobb (Leonardo DiCaprio), but the Point Man played by Joseph Gordon-Levitt. Every second his in on the screen, he is either doing or saying something that is completely awesome. The tumbling hallway sequence is astounding!

I don’t want to say anything else about the movie. I have really liked all of Christopher Nolan’s movies (The Following, Memento, Insomnia, Batman stuff), so it is no surprise I enjoyed this one as well. It still catches me off guard about how good it is.

Muay Thai – Sparring

Friday was the first class where I really sparred. It was the first class where I was punched and kicked, repeatedly, in the head. It was about what I expected. It didn’t hurt, and I had a fun time doing it, though there are some lasting effects.

I did feel a little out of it for a while, and that was a combination of many things. First off, I got hit pretty hard a few times, and Juan (one of the coaches) gladly landed a well placed kick to my head. I also didn’t have my abdominals tightened up enough at the last second of a round with another guy and got nailed pretty good there. Also, sparring seems to be 2 to 3 times more difficult, cardio wise, than the normal drills we practice. Did I mention this is all we did during class? Aside from the warm ups, it was bout 40 minutes non-stop of sparring. We’d switched partners every round.

Both coaches, Stephanie and Juan, have been asking me over the past few weeks if I have all my sparring gear. I took this as a hint, so while I wait for my head guard to come in I was able to borrow someone else’s Friday. Juan has been pretty excited about my progress, and started asking Stephanie if I could begin. So, as Juan partnered up with me and let me have it, I felt a strange sense of pride and accomplishment. It was nice that he didn’t seem to baby me.

The other part of sparring that still feels odd, is punching someone in the face. I wouldn’t say we are all “friends” there, but we are very friendly. That would be like punching a friend (specifically, in the face), or a loved one. I had a really hard time doing it.

When I think about it, the only other times I’ve truly hit someone was back in grade school. Keep in mind, when I say “hit”, I really mean mindlessly flailing my arms. At those few very times, there was a mixture of fear and anger (mostly fear), and that really takes you out of the moment.

Here, with your own classmates, there is no anger or even a little rivalry going on. We all work together, and I like every person there, even if during normal drills they are aggressive or spastic. I like to use that as an opportunity to learn; adapt to someones else level and push myself.

What I’m getting at is it was very difficult for me to really hit someone in the face. I wasn’t afraid, and I wasn’t angry, so I kept thinking in the back of my mind “But I don’t want to hurt anyone…”. After getting knocked around senselessly a few times, I eventually adjusted, and figured we are both in this for the same thing.

After a while, it became a little easier to become less reactionary and try and plan things. What I really started to get good at was either completely blocking a punch to the face, or taking it in a less hurtful way :)

Still, it is Sunday, and my left ear is still tender, and my nose still has the strange smell and feeling that it got punched, my legs are sore and my knees are bruised from kneeing another guys knee. Oh, and my jaw is KILLING me. I was clenching down on the mouth piece a lot, and it is sore from that.

We have next week off, so by the time we start up I should have all of my gear. Looking forward to it.

Okay Dad, you win :)

I did sort of thrown down the gauntlet with one of my previous posts.

Dad, I no longer doubt that you truly are my biggest fan :)

Livermore is probably a tie between myself and Jenny, but mostly me because I might check out a post from work… daily…

Shutter Island

Shutter Island

Shutter Island

Michele and I saw this in the theaters when it came out, and I just re-watched it the other night. Both times,  I was pleasantly surprised. I didn’t think it would hold up to a second viewing, so I’m not even sure why I tried that hypthesis out, boredom I guess.

The first, and probably the best, thing this movie has going for it is atmosphere. Between the scenery and almost overbearing score, it oozes a subtle tension. It is not overwhelming, just enough to keep your eyes peeled open, and your butt glued to the seat. The second, and close tie, is the story, acting and dialog. It is all very good, and I really like the era this takes place in; post-WWII, were everyone calls each other ‘boss’ or ‘chief’, smokes unfiltered lucky strikes, and resolved most conflicts with “fisticuffs”.

The main premise is two US Marshals are sent to a isolated metal institution for the criminally insane because one of the patients went missing. The movie quickly moves to the conclusion that there is more to this case, since it was physically impossible to the patient to ‘escape’. So, the likely conclusion is someone must be covering something up… or so it would seam.

Now, both of Marshals are in a quandary. They have their perception of the evidence that is presented, which includes other inmates and the staff also says, as well as the administrations reluctance to provide any real help.

To top if off, the missing patient suddenly re-appears. She is totally unscathed, and cannot recall where she has been the last few days.

After all of that, Teddy Daniels reveals his own personal reasons for coming to Shutter Island, and he intends to “blow the lid off of the place”. Not all is what it seems, but you’ll just have to watch it. Maybe twice, it is certainly worth it.

4th of July in Monterey

Michele and I purposefully did not make any July 4th plans, because we both silently and secretly waited for Steve and Summer to invite us down. We’d mumble back and forth “So, no fireworks in Antioch this year…”, “Yeah, maybe Steve and Summer will invite us down…”. As it got closer to July, there was a possibility that the two of them had other arrangements, and we might have to fend for ourselves!

So, last week, the phone finally rang. Whew, what a relief.

After some deliberation, we decided that it would be best if we stayed two nights in Monterey. I was very hesitant, mostly because spending the night in Monterey is very expensive. I’m so stingy that I forced us to stay in a small and crappy Super 8, rather than a decent hotel with more breathing room. Thats right family, suffer for my scrooge McDuck mentality while I swim in my vast riches!

We left Saturday morning to hit up a children’s museum. Steve and Summer met us there after lunch, which is kinda odd because they paid $7 each to go into a small children’s play area. I’ve barely accepted the responsibility of my own kids, so even when my friends are okay with being around my kids I sort of think, “But, why would you do that? They aren’t even yours, and they are kind of tedious and whiny.”

It is probably for the best that I don't know what Steve was prompting Caralyne to say...

My point is, Steve and Summer are very very nice people, nicer than me in fact, so I’m glad they still like to invite us over.

Either way, Summer found it entertaining.

As much as it kills us as parents to watch him have a go at the ladder, he is actually very safe. He naturally practices the 3-points of contact procedure. He destroys all other credibility with the rest of his wreakless behavior

I knew it! This ladder is unsafe, I call a work stoppage!

Caralyne is preparing for her debut

Whats this? Typical Owen, what a ham. Hey little hammy, get off the stage!

After some play time, Caralyne rode with Steve and Summer to Peets while Michele drove me to An Olde Town Tattoo Parlor so I could pop in and say hi to Glenn. He was in the middle of prepping someones leg for a tattoo, so after he peeled off the transfer paper, he ran out and happily greeted me with a big hug. Since Michele and Owen were waiting, I didn’t want to keep them waiting too long, so I told him we were staying for the next two nights and we’d get together on the beach tomorrow. He also invited us to the BBQ that the Tattoo parlor was having, it was their two year ‘birthday’, cake and all, but things were tightly compacted into our schedule as it was, so we didn’t make it.

We briefly went to the Dennis The Menace park, but after 10 minutes, it was blatantly apparent that Owen was over exhausted and in need of sleep. He fought hard though, it was a strange mixture of him laughing hysterically while crossing the unstable ‘Indiana Jones’ bridge, then collapsing in a fit of crying rage. Actually, that sounds a lot like my “Rose Peak” hike… Yup, he’s my kid!

The following day, we took the kids back to the Dennis The Menace park. This time, we had a full nights rest behind us, so we got to do a bit more running around.

First, I had to climb the rock wall. Just to make sure it was safe (and fun).

Then give Caralyne a little assistance. She really didn't need much, she was scared so I helped her choose which "pig noses" to grab hold of and step on.

Great job Caralyne!

Wow, and Michele too!

OWEN!? Wait a minute... Who's cheating??

Caralyne turned feral on us

The park is pretty nice, there are a lot of really cool slides, tunnels, climbing equipment, etc..

Around Lunch time we stopped by Trader Joes to pick up some last minute food items and ran into Summer and Steve there. We decided to grab lunch, but split off into two groups. Michele took Owen back to the Motel to nap while Caralyne and I got something to eat with Summer and Steve and hung out at their apartment for a while. Caralyne and I played Super Mario Brothers 3 on the Wii, then prepared for the beach BBQ.

All the attendee’s showed up around the same time, which is pretty darn impressive. What was also cool is Steve sent out a Google Latitude URL to the guests so they knew exactly where to meet us on the crowded beach. Pretty sweet! it is really neat when technology can help you plan and properly mobilize the entire group with a few simple tools like GPS and email. Those of us without cool smart phones (Glenn and myself) had to rely on smoke signals, my special eyes, and wandering.

Owen hung out in his wagon the whole time. I don't think he liked how the sand felt.

Erin and Glenn. Caralyne was borderline terrified of the two, so Erin was really nice and fostered a good repport by building a sand castle with Caralyne.

Like my capri's? Look, it was hot and I did't have shorts. Pants suck. Anyway, I did my best to try and help out with the food by tending the coals and burning the meat.

Owen enjoying the sunset while we pack up.

Thanks again Summer and Steve. Now, lets go blow some crap up!

After a late evening with some fireworks, we finally got back to our room around 10:30pm, tossed Owen in bed, and hit the hay.

The next morning we packed up, checked out by 10am, and met Steve and Summer at Peets for coffee/breakfast, and then hit the Aquarium. Steve always gives us a well planned guided tour, and I get to hear stories about all the display, posters, and exhibits.

Around 3pm we grabbed lunch and headed home. It was a nice conclusion to our pleasant weekend in a cooler climate with our friends.

Timecrimes

Time... for a Crime!

While I feel the films title is really shallow and hokey, the movie itself really stands on its own. Oh, and this is your subtitle warning: it has them!

I felt like I was watching a classic Twilight Zone episode, where an ordinary middle aged man finds himself in a strange and perplexing situation and clumsily adapts to all of it. Clumsy at first, towards the end, or maybe I should say the begining? Hector, our protagonist is doing quite well at making quick and harsh decisions. The transition is pretty brilliant, I hardly noticed it until I really thought about it all.

So, what is Timecrimes about? It is based around time travel and the paradox of free-will. Let me offer a graphical representation of the movies plot:

It's simple, just start from the beginning...

The movie takes a 24 hour window and layers and warps it on to itself a few times, and it does it well enough that you are not left with lingering questions or laughing at obvious plot holes. You will be left with one perplexing question and the end, and that is “How did it all start?”

My only complaint is that it is SO well done, and the plot is so perfectly packaged up, it is easy to put it all together very early on. No a big deal, it is still nice to see how it all goes down.

It is very good, and I would put it up there with Primer, another well done time travel movie.

my audience

I like the check out Google analytics to see how this website is “useful” to the internet. Let me tell you, the internet is not at all interested in how your wonderful author, Mike Carlson, is doing. The internet is interested in how FreeBSD is doing:

I guess no one Google's for Mike Carlson... *kicks dirt*

What is even more interesting is that most of my visits come from other countries:

Check that out, folks in Barcelona and Moscow check out this site more than my Dad does in Lodi ( come on Dad, I thought you were a fan?). Antioch doesn’t count, that is just me updating and re-reading my own posts (does that make me vain?).

When I started digging into the referrals, I saw that my Samba and FreeBSD posts were linked in a few forum discussions on a Russian Samba site, a Swedish PC site and ServerFault.com. It is nice to know that other people find this information useful, so I’m going to continue writing up my fun tech experiences and put more effort into those posts.

FreeBSD and Multipath

I didn’t find any blog posts of discussions on FreeBSD and multipath (for storage) that wasn’t a man page.

That means it is up to me to write about it :)

Hardware

CPU

Machine class:	amd64
CPU Model:	Intel(R) Xeon(R) CPU           E5530  @ 2.40GHz
No. of Cores:	16

Memory

Total real memory available:	65511 MB
Logically used memory:		3945 MB
Logically available memory:	61565 MB

Storage

The storage is a large ~90TB Enterprise class Fibre Channel array, a Data Direct Networks S2A9900. Connected to that are two, dual port QLogic 2532 8Gb HBA’s. We also have two SSD drives (configured as a RAID1 device) for the ZFS Intent Log.

The storage array was configured from 120 1TB, 7200RPM Hitachi drives. It has 12 volumes in total, composed of 10 of the SATA drives (1 parity, 1 Spare), or ~7TB.

The S2N9900 has two controllers, one controller is responsible for LUN’s 1-6, the other controller is responsible for LUN’s 7-12. every LUN is presented to all four Fibre Channel ports. This got a little messy, trying to sort out 48 raw disk devices takes some patience and a decent attention span…

yeah, I did make a few typo’s here and there, thankfully creating and clearing disk labels is easy.

# camcontrol devlist|grep lun\ 0
                at scbus0 target 0 lun 0 (pass0,da0)
                at scbus1 target 0 lun 0 (pass6,da6)
                at scbus4 target 0 lun 0 (pass24,da24)
                at scbus5 target 0 lun 0 (pass30,da30)
# camcontrol inquiry da0 -S
108EA1B10001
# camcontrol inquiry da6 -S
108EA1B10001
# camcontrol inquiry da24 -S
108EA1B10001
# camcontrol inquiry da30 -S
108EA1B10001
# gmultipath label -v DDN-v00 /dev/da0 /dev/da6 /dev/da24 /dev/da30
Done.
# gmultipath status
             Name  Status  Components
multipath/DDN-v00     N/A  da0
                           da6
                           da24
                           da30

Now, to do that 12 more times…

Whew, hard work!

Now, to create a simple ZFS volume across all 12 luns:

# zpool create zfs multipath/DDN-v00 multipath/DDN-v01 multipath/DDN-v02 multipath/DDN-v03 multipath/DDN-v04 multipath/DDN-v05 multipath/DDN-v06 multipath/DDN-v07 multipath/DDN-v08 multipath/DDN-v09 multipath/DDN-v10 multipath/DDN-v11 log mfid1

# zpool status
  pool: zfs
 state: ONLINE
 scrub: none requested
config:

	NAME                 STATE     READ WRITE CKSUM
	zfs                   ONLINE       0     0     0
	  multipath/DDN-v00  ONLINE       0     0     0
	  multipath/DDN-v01  ONLINE       0     0     0
	  multipath/DDN-v02  ONLINE       0     0     0
	  multipath/DDN-v03  ONLINE       0     0     0
	  multipath/DDN-v04  ONLINE       0     0     0
	  multipath/DDN-v05  ONLINE       0     0     0
	  multipath/DDN-v06  ONLINE       0     0     0
	  multipath/DDN-v07  ONLINE       0     0     0
	  multipath/DDN-v08  ONLINE       0     0     0
	  multipath/DDN-v09  ONLINE       0     0     0
	  multipath/DDN-v10  ONLINE       0     0     0
	  multipath/DDN-v11  ONLINE       0     0     0
	logs                 ONLINE       0     0     0
	  mfid1              ONLINE       0     0     0

errors: No known data errors

Results

These results wre obtained from two similar servers. The other server is using a Winchester Systems Storage array, and has 24GB of system memory. The Winchester Storage is ~40TB of 2TB SATA disks:

Another RAID array, just for a comparison

I used IOZone for the test (iozone -a). The default iozone test is using 64k files to 512MB files, and since I’m trying to see how the server might actually react to the real worl, I’m okay with this (ie, I fully understand that a LOT of caching is taking place, and I want that for right now).

Forward Re-Write

Forward Re-Read

Forward Read

Forward Read


Backwards Read


Random Read


Re-Read


Rec? Re-Write

Write


Strided Read

The S2N9900 is a pretty nice device. Although you have to use TELNET (yeesh, couldn’t they spend a few more bucks on a small ARM processor and use ssh?), the controllers have a decent command line environment with HELP pages. What is also nice is the company provides the documentation for their products for free, and no registration is required. Good Job!

As far as raw read and write speeds, that is hard to nail down. I’ve been using IOZone, and when I run that, and take a look at ‘zpool iostat 1′, the ZFS Pool stays at a constant 200MB/sec for writes. I’ve seen in pop up higher, like 250MB to 500MB, but 200 seems to be the ceiling. I’ve done with and without a dedicated log device, with and without gmultipath, and finally, using the SSD RAID1 as a L2ARC cache device. All results are nearly identical. Reads are pretty crazy though, with 64GB of system memory, reading a file is nearly 1GB/sec.

Stuff and Things

I don’t have a central theme with this post, but I wanted to at least do something (it has been a while).

Packet Filter

Based on Chris’s “Falling in love with pf(4)” google status, I decided to take the plunge and move off of ipfw(4) to pf(4). I’m not at the point where I could write my one filter, however, I do feel I at least understand what is happening here. I also took the time to update all my ports, so I’m even running PHP 5.3.2, the latest WP release and about 600 other installed ports (Yikes, I’ve got a LOT of stuff on this server!).

I’ve always built my own kernel, at least on my home server, so the first thing to do is sync my /usr/src tree:

$ sudo su -
root# csup ~/bin/src-supfile
...
root# vim /usr/src/sys/amd64/conf/BLACKHOLE
# pf
device          pf
device          pflog
# pf's QoS - ALTQ
options         ALTQ
options         ALTQ_CBQ        # Class Bases Queuing (CBQ)
options         ALTQ_RED        # Random Early Detection (RED)
options         ALTQ_RIO        # RED In/Out
options         ALTQ_HFSC       # Hierarchical Packet Scheduler (HFSC)
options         ALTQ_PRIQ       # Priority Queuing (PRIQ)
options         ALTQ_NOPCC      # Required for SMP build

root# cd /usr/src ; make -j8 buildkernel && make installkernel && reboot

I use tcsh, a C Shell variant, and I find the AND (&&) operator really useful to chain commands together but I require that they succeed. This way, if my build fails, it will abort and not proceed with the install and reboot.

Now that I have a updated kernel with PF enabled, I had to steal Chris’s configuration:

/etc/rc.conf

root# vim /etc/rc.conf
#
# Packet Filter
#
pf_enable="YES"
pf_rules="/etc/pf.conf"
pflog_enable="YES"

#
# Unused, pf replaces all of this
#
#natd_program="/sbin/natd"       # path to natd, if you want a different one.
#natd_enable="YES"                # Enable natd (if firewall_enable == YES).
#natd_interface="em0"               # Public interface or IPaddress to use.
#natd_flags="-u -s -m"                   # Additional flags for natd.
#firewall_enable="YES"
#firewall_script="/usr/local/etc/rc.firewall"
#firewall_logging="YES"

/etc/pf.conf

root# vim /etc/pf.conf
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42):
# cshumway@titan-project.org wrote this file. As long as you retain this notice you
# can do whatever you want with this stuff. If we meet some day, and you think
# this stuff is worth it, you can buy me a beer in return Christopher Shumway
# ----------------------------------------------------------------------------
#
# pf.conf
ext_if="em0"
int_if="em1"
lan_net="192.168.2.0/24"
open_ports="{ domain, ssh, http, https }"

# options
set skip on lo0
set skip on $int_if
set limit states 25000
set loginterface $ext_if
set state-policy if-bound

# scrub traffic
scrub in all

# NAT
nat on $ext_if from $lan_net to any -> ($ext_if)

# upnp redirection
rdr-anchor "miniupnpd"
anchor "miniupnpd"

# antispoofing
antispoof for $ext_if

# rules start here
block in
pass out on $ext_if keep state
pass in on $ext_if inet proto { tcp, udp } from any to ($ext_if) port $open_ports flags S/SA keep state
pass in on $ext_if inet proto icmp

Pretty simple, and after a reboot my top process is java, and not natd(8). I can almost feel the internet becoming faster :)

Rock n Roll Owen

Unlike me, Owen still looks like a nice guy with shades on. I look like someone who would drive a black acura and cut you off...

Owen doesn't like the Paparazzi treatment!

We’ve made up, and did a publicity photo-op together

Caralyne’s Garden

Caralyne is skillful with both tending plants, and stapling things.

Dogs

Zoey and Coal sharing the morning sun

The Poisoners Handbook

I was disappointed to find out this wasn't a Oreilly "Howto" book...

What a great book! There are so many interesting aspects and topics covered here, and not just the big obvious one the title hints at.

I heard Deborah Blum talk about her new book on the Scientific America Podcast, which was great and lively, so I put this book on the top of my “Book List” that I keep handy. So, in preparation of our Oregon trip, we (the family) too a trip to our local Barnes and Noble, where within the first minute of being there, I set off the alarmed Nook eReader that was on display. Hey, I have a gift for destruction and mayhem.

The book is organized by a poison per chapter, however, there is the underlying narrative of two Chemists/MD’s/Toxicologists in NY who did some awesome work in the field of forensics. Most notably, developing tests and methodologies for detecting poisons. What is also discussed is the corrupt politicians of the time, and the still ever present jackassery of government organizations that forced Charles Norris to continually fund the NYC medical lab out of his own pocket. The best example was when the new Mayor decided wanted to show everyone he meant business on cutting down on department spending, so he took out EVERY wall clock. The created a real problem for the medical examiners who had to cite the time of death, or keep track of their autopsy’s. Actions like this cause Charles Norris, the Chief Medical Examiner, to pay for the departments supplies out of his own paycheck. This is similar to what most public school teachers have to do.

Another theme in the book was Prohibition, so there are three chapters dedicated to the two big Alcohols, Methyl Alcohol (Wood Alcohol, the industrial kind), and Ethyl Alcohol (Grain Alcohol, the good kind…).

There is a romanticized characature of Bootleggers in the media, and the view is they were sticking it to “The Man” by smuggling bathtub gin and good ol’ whiskey to Speakeasies. This was my impression of Speakeasies:

Good clean fun in a "Flower Shop"

What I didn’t really think of is that the Mob was smuggling alcohol as a means of profit, which meant they didn’t really care about providing a safe beverage, it meant using the cheapest and most widely available form of alcohol at the time. Since Prohibition shutdown legit breweries and Distileries, who specialized in Grain Alcohol, they turned to the deadly Wood Alcohol and denatured alcohol that was used in manufacturing and cleaning.

It’s all alcohol though right? I mean, what could the difference possibly be? How about when Methyl Alcohol metabolizes in your body it creates two deadly by products, formaldahide and then formic acid. What was also interesting is it takes 10 to 30 hours for this reaction to take place, so people would get drunk and die within a few days.

So, that was really bad of the boot leggers, they were making money by selling poison, so how did the governemnt respond? It the way you would expect them to, to stay headstrong on their decision and force manufaturers to put even deadlier chemicals in wood alcohol. Their rational was “If we make it less appealing, they will naturally stop drinking altogether..”.

The flip side to all of this was no matter how deadly methyl alcohol was, ethyl alcohol had it beat hands down. This is a statistics game, but people have been getting drunk and doing stupid things for centuries. That was the goal of Prohibition, to put an end to all the baggage that comes with recreational drinking: Violence, over dose, addition, health issues, etc…

The ironic part was that people drank and killed themselves with Alcohol at a higher rate during Prohibition than before of after.

The Mob wasn’t the only organization to profit from poisons. There were plenty of “legal” companies putting very unhealthy things like Thallium and Radium in all sort of cosmetics and tonics. The biggest problem with this was that Hoover wasn’t after the US Radium Corporation like he was after John Dillinger.

Just look at the products you could have bought under the guise of health back in the day:

This was prescribed as a Revitalizing tonic

Radioactive Chocolate! I'd probably eat it...

Um.. I don't really need to tell you what these are for... or do I? They go..

These are prophylactics that are fortified with radium. These are for Superman only!

I thoroughly enjoyed the other chapters, and I’m sure my buddy Jenny did as well. I mean, I could just see the look of terror as I came in every other day and talked about how Cyanide kills you, and that Ether is caustic and will leave burn marks if you are not careful… Nothing better when your co-worker who already has that “Quiet Type” look about them is reading up on poisons. So, when I read the Epilogue at the end where the author mentions that she would talk to her husband in the same way, and then he would casually slide his coffee cup out of her reach :) Jenny is safe, she drinks coffee from a travel mug.

Deborah gives great credit to Charles Norris and Alexander Gettler, as well as the staff behind them and their past and future colleges. The work Alexander did was truly amazing, the countless hours spent grinding up brain matter, boiling it down, mixing it with all sorts of acids and compounds just to detect the slightest hint of arsenic or cyanide was amazing. He also proved that the Radium Girl’s bones were radioactive by putting the bones on top of a sheet of film; the decaying radiation would show up as white spots on the file like an X-Ray does. Very mediapathic indeed!

I was sad when I read the last pages of this book, I hope there will be a follow up to other poisons like caffeine, nicotine and other radioactive substances. After all, its not always the compound that makes a poison, but the amount. Life will eventually kill you, it typically takes more time.