June 19, 2013
All Great Books
I just returned from my grandmother's memorial service.
I am shattered.
I have stored in my hippocampal cells more lovely and loving memories of my grandmother than I can recall in a day. She was one of the more grounded members of my family: a well-educated teacher of English at Rutgers University, an avid bicyclist, a connoisseur of fine foods, a lover of the written word, a corrector of the family's grammar.
A lot of people like to think that their grandmother is (or was) perfect, but they are in error.
Only mine was.
It's the truth.
My fondest childhood memories all revolve around our times in Stone Harbor, New Jersey. Each summer I would go away for a week or two to stay at "Gam's House," my grandparents' cottage on Stone Court. It was just a block north of the Stone Harbor bird sanctuary, a few quick blocks from the ocean, and a dozen or so blocks to Bob's Bikes and Stone Harbor's main strip.
I would spend hours each day boogie boarding and swimming in the Atlantic there. She would soak up the sun while reading a book. Often I would be out swimming so long that I would come back to find her asleep, her tiny, bunioned feet buried in the sand. In later years we would talk about Shakespeare (which she loved) and Star Trek (which she hated).
We had a wonderful times in Stone Harbor, always. Whether it was time on the beach, time spent bicycling with her up to Avalon, time spent catching hermit crabs in inner tidepools, or hours spent just sitting around the cottage and reading my silly sci/fi books in the shade, we always had fun.
Even the best books eventually come to their conclusions and run out of pages.
The best thing about the festivities of this weekend had to be the post-Memorial-Service Memorial Service...we wandered to the south tip of Stone Harbor with a portion of her ashes. Each of us picked up a small sea shell from a collection gathered at her other ocean home and filled it with said ashes, then walked into the ocean to dispose of them as we saw fit.
I was practically paralyzed at this. I grabbed the first shell that my hand came upon. The bag of ashes came my way. They were so white, with small fragments of I could only assume bone. I felt uneasy.
I am not religious or even particularly spiritual. I know that her views were fairly similar to my own. My unease was primarily over the idea that this was, two weeks ago, the material that composed my grandmother's then-living body. Flashes of Heinlein's Stranger in a Strange Land entered my head. Thoughts of eating the dead out love. Touching the dead out of love, at least. I cast aside notions of grossness because...well...I love her. The idea of scooping her up into my hands is a bit odd, but carries an intimacy that I will cherish always.
I collected a small portion and began to walk into the surf. My eyes watered. I stopped being able to breath. This was, in a weird way, going to be the last time I went swimming in the Atlantic with my grandmother. I dwelled on this thought for a moment. Part of me was tempted. Oh so tempted. To. Just. Keep. Going.
My jeans were soaked. So was my face.
Breath, I remembered.
I sank my hands into the Atlantic, and I watched my grandmother go, off to swim on her own.
The shell, I thought. If I keep it, does it become a white elephant? Some silly memento of this moment that I spend too much time of my life futzing over?
All things are impermanent, just as my grandmother was, and just as I shall be. Perhaps I should let it go. Cold waves continued to lap up my jeans, soaking me from the bottom, while hot tears kept coming, soaking me from the top.
What would she do, if our roles were reversed?
I guess that's not important now. What would I do?
I decided to keep the shell. She is gone now, but not forgotten. I held the shell in my hand for a while, and walked down the beach in hunt of something interesting while hoping that my face, maybe even my pants, would dry off.
Honestly, I'm actually not looking forward to a time that I can think about our last swim together without getting wet.
March 21, 2013
Using your own Cisco Phone with SpeakEasy
If you know me, you know that I love hardware. I buy electronic doodads so that I can take them apart, hack them, and do something fun with them.
My new'ish job is another 'virtual job.' Mostly I work from home, though I do hit the road for months at a time sometimes. The company gave me a laptop loaded up with software including a voice-over-ip-phone application. The software is set up to use a VoIP provider called SpeakEasy.
I decided that it would be fun to get a physical phone to use with the service. I'm not very good at doing the pre-purchase research. Mostly I just like to buy something that looks like it might work, try it out, and if it didn't work I'll usually figure out why I bought the wrong thing. It's a learning process. S. Hadden said it best, I make a great government spender.
Anyway, getting the phone set up with SpeakEasy is not very easy. A lot of forum posts have info saying, "It can't be done." When I called them up, tech support also said that it couldn't be done -- they had to provision the phone, put their own firmware, yadda yadda yadda. They were very adamant about this, and recommended that I buy a pre-provisioned phone from them for some insane price.
Thankfully SpeakEasy/Megapath tech support is full of it. I got my phone working.
To start, I updated the phone firmware to the latest version (7.5.4 as of this writing). I then played with a lot of settings to make it work. My home network has 4 layers of NAT firewalls, with various partitions, VPNs, etc. Many of my network enclaves don't allow egress traffic except over a VPN connection, so that if some day my NAS gets powned it won't exfiltrate all of my data :). Strangely, my phone works behind 3 layers of NAT, but not 4. I haven't yet tried a STUN server, but the phone is well-protected where it lives for now. I'll tinker with STUN and see if it helps.
Anyway, on to the actual configuration!
The main is on your Extension configuration. Enable Advanced Settings and then set the following: Proxy is speakeasy.net, Outbound Proxy is ash-remote.voice.speakeasy.net, Use Outbound Proxy set to Yes, Register set to Yes, Use OB Proxy in Dialog set to yes. Note that these settings will not be available to you unless you log in as administrator and choose 'Advanced' in the upper right hand corner of the web page.
Under Subscribe Information for your line, set your Display Name to your name, User ID to your user id (of the form XXXXX_PHONENUMBER_YYY). Don't append the domain to the user id, this will happen automatically because of the 'Proxy' setting above. Punch in your password, say "Yes" to "Use AuthID", set Auth ID to your phone number without any punctuation, and set Reversed Auth Realm to 'BroadWorks' (no idea if this last part is actually necessary, but a packet capture of VoIP soft phones used it and it works).
Next you'll have to play with SIP settings. Go to the SIP tab and scroll down to NAT Support Parameters. If you're using a NAT router like me, say "Yes" to "Handle VIA received", "Insert VIA rport", and "ASend Resp to Src Port". Say No to everything else. If these settings don't work, try using a STUN Server (there are plenty of public stun servers available here.
After that, reboot your phone and you should be good to go.
September 21, 2012
Out with the old...
And in with the new...
I spent a long time working on my last motorcycle, and not nearly enough time riding it. This time around I've decided to go high-tech and get a modern'ish bike with fuel injection that should, I hope, get me around for a long time.
Once the new bike is broken out, I'm hopeful to have a little time to make it back east while onboard. A long-distance motorcycle trip sounds just about right right now.
September 20, 2012
Driving East on 94
Work has taken me to the oilfields of North Dakota to assess what may be my last large-scale SCADA systems assessment.
Working with Digital Bond has been a fantastic experience over the last year+. The troubles with control system security are something that absolutely fascinate me. I first started down this path perhaps even before I was formally interested in computer security at all -- the old video game series Marathon filled me with funny ideas about survivable computer systems: systems that kept running even after the death of their creator species, systems that discovered ways to survive the closure of the universe and make themselves gods of a fashion.
Feeling a bit boddhisatva, I've often mused that I'm going to die some day. I will not be remembered. Indeed, I wonder if the human race is going to survive our own machinations and lack of resolve. That's fine. Silly video games made me wonder, though: what can survive us?
Artificial intelligence I thought, for a time. Alas, reality sunk in: self-modifying shell scripts do not appear to be our future. And anyway, we have to conquer survivable systems so that intelligences may have a platform on which to operate first.
I am growing more pessimistic that even this is possible, at least so long as humans live (oh irony).
Computer security is a field is highly odd. Human society has greatly advanced over the last 30 years thanks to increased information processing and information sharing (aside: "define: information"). We end up blowing up the few cool things that we make. I think there are reasons for this that are not entirely new. I'm plenty guilty in that regard. When not fighting each other, we fail to make things that are well thought out. And then, when this is pointed out, we go back to fighting.
May 20, 2012
Black Lodge Research
I'm lucky enough to run into some really talented researchers often in my little niche world of control systems security. I landed in Seattle on Friday broken and battered. Now I'm on the mend, feeling well enough to go for a short jog and well enough to check out Seattle's premier hackerspace, Black Lodge Research.
Living in a city as I'm about to do is going to have a lot of advantages, not the least of which being access to wonderful minds like those at BLR...I can't wait.