<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-18655535</id><updated>2011-07-07T16:21:22.425-07:00</updated><title type='text'>100% Unadulterated Cliffle</title><subtitle type='html'>Official blog of everyone's favorite sensory deviant.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-18655535.post-7957822180508170524</id><published>2008-02-08T00:44:00.000-07:00</published><updated>2008-02-08T22:52:19.172-07:00</updated><title type='text'>10 years.</title><content type='html'>I'm coming up on my 10th high school reunion.  I doubt the school will do anything official -- there were 5 graduates in my class, we could have our reunion in a booth at Denny's.&lt;br /&gt;&lt;br /&gt;All the same, it's got me thinking.  Listening to old music.  Charting out my progress.  So, it's time for one of those navel-gazing blog posts.&lt;br /&gt;&lt;br /&gt;Here's where I've been the past ten Februaries.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1998&lt;/strong&gt; - finishing high school.  All my first choice colleges had already turned me down, and I was enrolled and ready to start at Arizona State's University Honors College.  Studying Physics nights at community college, thanks in part to my shiny new driver's license and 1977 cop Nova.  Still doing piecemeal work on Windows software for Network Safety and learning cryptography, but this year my social life began to dominate -- in clubs and councils and one of the few students that had been enrolled since my school's founding, I had a lot going on.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1999&lt;/strong&gt; - living in McClintock hall at ASU, which was still the Honors dorm at the time.  Still making solid 4.0s, which wouldn't keep up for long.  Music I'd written and recorded (techno, unfortunately) was just beginning to chart on the brand-new MP3.com, resulting in my first recording contract offer -- which I declined, but still keep in a file cabinet.  I'd developed a reputation in the dorm for hanging out with all the women, which had some friends thinking I was gay, despite having just finished a semi-public breakup with my first girlfriend.  At this point I was just starting to get involved with the Political Education Coalition, as a very unusual libertarian-conservative voice among greens and reds -- though we all got along fine.  Got into a few clashes with campus security, who were a little power-happy and didn't appreciate having the state statutes explained by a kid like me.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2000&lt;/strong&gt; - living in Irish Hall, which was a wonderfully close-knit group of people while I was there.  I was just beginning the only CS course I've ever taken (digital design).  Jeannette and I were friends with occasional thoughts of dating.  Doing piecemeal contract work with Cobalt Creative, where I'd worked over the summer (over my mom's objections that I should apply for a retail job), and starting to get deeper into Java in my spare time.  I had started my first pro-student rights group, the Student Advocacy Initiative, and was spending a lot of time meeting with the Residence Hall authorities and campus groups to argue my case.  I made the campus paper a lot this year, but not just for my work: I had stopped cutting my hair, which quickly became a 'fro, and (along with my size) made me very visible in photographs.  Spent a lot of time at Jitters and Gold Bar for my caffeine.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2001&lt;/strong&gt; - still in Irish Hall with most of the same people.  I DJ'd a rave or two in the dorm courtyard.  My hair was just long enough to pull back at this point, which was good, since I was working in foodservice.  My parents had just had some unexpected expenses come up, and I needed to get a job to help with tuition and expenses.  I'd made friends with Charlie, the owner of some Tempe-area coffee shops, and was soon pulling shots and making sandwiches at his stores.  Jeannette and I were dating at this point.  School kept me busy, between two TA jobs and part-time work as a research assistant, and while I'd let SAI fall to the wayside I was serving on Honors College Council.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2002&lt;/strong&gt; - having effectively dropped out of college, I was in my last few months at AZSites, a little web sweatshop in Tempe.  I had applied there in August after people convinced me I was wasting my talents making coffee; they'd said they wanted PHP and MySQL, I'd said I knew it, and then spent a week at libraries learning them and hit the ground running.  Jeannette and I were living in apartments near school, and dating, though things were strained -- while AZSites was bringing in money, they weren't paying us, and I was living off savings, not having seen a paycheck in four months.  Having finished my business and accounting classes the year before, I knew enough to forecast my cash flow, and I could see the day looming when my savings would expire.  I had already begun planning my escape.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2003&lt;/strong&gt; - Extrasensory Applications, the company I founded after poaching most of AZSites's talent, was waffling between promise and disaster.  My savings were gone, and I was borrowing money from people for gas and sleeping on couches, too proud to completely fall back on my parents (yet -- I wound up doing so).  At one point I was literally living off quarters I had found in a couch; I got very good at optimizing fast food value menus.  At the same time, we were developing what we thought would be a home run: a system to compete with Ticketmaster.  I dug up my old distributed systems knowledge, learned Postgres, Ruby, C++, Servlets, EJB, and anything else that seemed useful.  In February it wasn't yet clear that it wouldn't work out like we'd planned.  Jeannette and I had parted ways several months earlier, which also hadn't worked out like we'd planned.&lt;br /&gt;&lt;br /&gt;As a side note, this is when my current Starbucks order (venti iced coffee, no sweetener, no room) solidified.  I ran the numbers and determined that it was the optimal caffeine-per-dollar choice; I would keep them in the fridge at the office, dilute them, and ration them over the course of a day or two.  Eventually I realized that buying beans was even cheaper.  When I couldn't afford them, I'd eat them at the supermarket.  Not kidding.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2004&lt;/strong&gt; - I had been effectively unemployed for two years, but now it was official.  After an eight-month stint at a web sweatshop making $400/week, the incredibly frugal tendencies I'd learned during the bust allowed me to save several thousand dollars.  I got a nice (government) apartment with some coworkers, kept my car alive by scavenging parts, and decided to break out on my own with my newly minted college degree (I had just finished out the ASU program with cheaper community college credits).  I had big plans, and some neat tech: this was when I first wrote Cesta, my Mac-native network analyzer, and I planned to turn it into my job.  I was dating, well respected in my social circles...and running out of money without a shipping product.&lt;br /&gt;&lt;br /&gt;About this time, my dad randomly encountered an old boss at a gas station, and mentioned that I was looking for work.  I desperately wanted to avoid working for anyone else, after two sweatshops and a failed startup, but Cesta wasn't ready...so I drew up a resume and submitted it to Choice Hotels.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2005&lt;/strong&gt; - out of government housing and back in Tempe.  My first major project with Choice, the support backend for the Choice Privileges VISA, had launched, as had the big CIS intranet system I worked on.  I had finally ditched the frankenstein Taurus I'd been fixing for six years, bought a bunch of business casual clothes, and started re-learning to cook.  As in, not ramen.  I was beginning to transition into a bigger role at Choice, talking to other groups about encryption and security (this was about the time of SOx, now called SarbOx).  I was also spending more time learning the craft of programming, having recently become able to afford the GoF and Refactoring books; this was about the time I became a noisy proponent of technology like EasyMock and Hibernate.  Becky and I had been dating for several months at this point.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2006&lt;/strong&gt; - a month into my employment at Google, having left my friends, family, and hometown for the "frozen north" (which turned out not to be all that frozen).  I was beginning to react rather badly to the code I was dropped into, which had some qualities I'm allergic to, but while I was already loud-mouthed and picky I wasn't yet bitter and resigned.  (That came a few months later.)  Google had substantially lowballed me in my initial offer -- I suspect because of my non-CS background -- and at this point hadn't yet corrected it, which didn't help.  I was enjoying my new job but seriously considering another.  On a positive note, Jeannette and I had been dating again for about a month, which (like the Google job) was totally unexpected.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2007&lt;/strong&gt; - A little over a month into my first big solo project at Google.  Some organizational changes and firm words from my manager had dragged me out of my cynical funk, and I was mentoring (officially and unofficially) two new employees.  My team was starting to make real progress, and I was starting to see a much brighter future.  Jeannette and I were living in a little townhouse near Google; her belly dance classes were in full swing, while I was reverse-engineering the Propeller microprocessor and learning to fly RC aircraft.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2008&lt;/strong&gt; - so here I am, working at one of the world's top software engineering firms and Fortune Magazine's #1 best employer, co-leading a group within my larger team, living in a much nicer apartment in Sunnyvale.  I'm not sure if 1998 me would expect this or not -- I was very optimistic, but I'd just been turned down for college and thought I was doomed to spend my life in Phoenix.  (High school brains are very dramatic like that.)&lt;br /&gt;&lt;br /&gt;I've come a long way from a tiny high school in a small town -- a town that still had hitching posts outside the school when I was growing up, and which still doesn't have a Starbucks.  I'm curious where the other four members of my graduating class have ended up, but I doubt there'll be an official reunion for me to find out.&lt;br /&gt;&lt;br /&gt;I'll close with a particularly relevant quote from my old LiveJournal, four years ago today.  During one of those insipid LJ quiz memes, I was asked the following:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;strong&gt;Q. Where do you see yourself in five years?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I'll describe where I hope to be, which may differ from where I'll actually be due to personal weakness.&lt;br /&gt;&lt;br /&gt;I hope to be in a steady, well-paying job that I enjoy (which means probably either writing or programming something interesting). Ideally, I'll be attached to a like-minded SO who shares some of my interests (which is terribly unusual, but I can hope). If I'm still in AZ, I hope to be in Tempe -- I've been many places in Arizona, but I like Tempe a lot. If I'm not in AZ, somewhere with trees would be nice, as long as it's not too cold.&lt;br /&gt;&lt;br /&gt;Oh, and with any luck, I'll be out of grad school. :-)&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-7957822180508170524?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/7957822180508170524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=7957822180508170524' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/7957822180508170524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/7957822180508170524'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2008/02/10-years.html' title='10 years.'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-5585084112083714274</id><published>2008-01-20T01:07:00.000-07:00</published><updated>2008-01-20T01:39:02.388-07:00</updated><title type='text'>Hello, blog.</title><content type='html'>I figured I'd better breathe life back into this blog, at least for one post, before I reach 18 months without posting. :-)&lt;br /&gt;&lt;br /&gt;Things have been pretty good for me over the last year.  Jeannette and I are getting along swimmingly.  My team at work has evolved quite a bit, shifting our role, and has begun to receive some recognition within the company -- we recently got an internal award for our work, but I'm not sure how much I can say.  We've grown quite a bit, and as one of the more tenured team members (over two years now!) I've mentored a few new hires.  While I'm not a technical lead -- we've already got one of those, and she rocks -- I'm driving a new project and keeping my eye out for new directions for the team.&lt;br /&gt;&lt;br /&gt;For the first year and a half or so at Google, I spent much of my free time learning this field of "computer science."  It's distinct from programming, see, and from software engineering (though I've learned a lot about those fields too).  I spent whole evenings and weekends studying and practicing, as Jeannette can attest; fortunately she's quite tolerant, since she geeks out in her own fields too.  I feel like I've got undergraduate CS under my belt now, so I'm spending more time sparring with PhDs at the office to keep learning.  Can't swing a stick at the office without hitting a few, after all.&lt;br /&gt;&lt;br /&gt;In return, I've taught a class and done a couple presentations on software engineering techniques, which I learned from my dad but folks don't seem to pick up in school.&lt;br /&gt;&lt;br /&gt;In short, I'm a lot happier with my job than I was a year or two ago.  Which is good, because I've started getting calls from more recruiters, most of which have interesting work to offer.  Sorry guys; keep me on file just in case.&lt;br /&gt;&lt;br /&gt;Speaking of recruiters, I now exist on LinkedIn -- any colleagues or friends reading this should drop me a line there.  (If I don't know you and you're reading this, I'm happy to talk to you but I will decline LinkedIn requests from strangers.)&lt;br /&gt;&lt;br /&gt;Beyond LinkedIn, I haven't bought into the whole social networking fad just yet.  The isolated fiefdoms of social networking remind me a lot of the early days of consumer internet access, when I couldn't email someone because they used CompuServe or AOL.  I'm sure it'll get straightened out with time; for now, it seems ironic that "social networking" should resemble high school cliques on a grand scale.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After years of eyeing digital SLRs, I finally bought one to replace my Minolta X700.  The technology has finally caught up with (and, in my opinion, surpassed) film for a reasonable price.  I bought a Pentax K100D, which (like my Minolta A2) has image sensor stabilization, eliminating the need/desire for expensive stabilized lenses.  My only complaints stem from being a software guy: there are parts of the firmware I want to change, and I can't.  Grr.&lt;br /&gt;&lt;br /&gt;The K10D (one zero) is a nicer camera, but unlike most modern cameras, the K100D has spectacular infrared sensitivity -- and since I'm a fan of IR photography, that sold me.&lt;br /&gt;&lt;br /&gt;So, I'll pimp some of my latest photos below.  Some are visible light, some are false-color infrared.  I won't spend too much time discussing each; click on them to go to the respective Flickr page.&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/2170586671/" title="The mystery of the question block by Microtheist, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2191/2170586671_e0898838fc_m.jpg" width="160" height="240" alt="The mystery of the question block" /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/2184175117/" title="Agave I by Microtheist, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2393/2184175117_5de8139efe_m.jpg" width="240" height="160" alt="Agave I" /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/2190217195/" title="Pines II by Microtheist, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2318/2190217195_184126a4b9_m.jpg" width="160" height="240" alt="Pines II" /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/2190214109/" title="Jeannette at Pinecrest (IR) by Microtheist, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2294/2190214109_a418d28c96_m.jpg" width="240" height="160" alt="Jeannette at Pinecrest (IR)" /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/2180428845/" title="42 on a Cloudy Day by Microtheist, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2137/2180428845_9c9f04fb63_m.jpg" width="160" height="240" alt="42 on a Cloudy Day" /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/2200365095/" title="Building 40 by Microtheist, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2385/2200365095_5ff18bc265_m.jpg" width="160" height="240" alt="Building 40" /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/2200376077/" title="Spike by Microtheist, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2101/2200376077_654b0d9965_m.jpg" width="240" height="160" alt="Spike" /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/2205529336/" title="Sunset I by Microtheist, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2065/2205529336_dbb7695fd2_m.jpg" width="240" height="160" alt="Sunset I" /&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/2190215103/" title="Pinecrest Lake and hills by Microtheist, on Flickr"&gt;&lt;img src="http://farm3.static.flickr.com/2252/2190215103_4efa6fdbd1_m.jpg" width="160" height="240" alt="Pinecrest Lake and hills" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-5585084112083714274?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/5585084112083714274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=5585084112083714274' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/5585084112083714274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/5585084112083714274'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2008/01/hello-blog.html' title='Hello, blog.'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm3.static.flickr.com/2191/2170586671_e0898838fc_t.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-115899467588908071</id><published>2006-09-22T23:54:00.000-07:00</published><updated>2006-09-22T23:57:55.906-07:00</updated><title type='text'>Photos!</title><content type='html'>Jeannette and I took some photos recently; here are a few.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/4209/1831/1600/Photo%2021.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/4209/1831/320/Photo%2021.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/4209/1831/1600/Photo%2011.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/4209/1831/320/Photo%2011.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/4209/1831/1600/Photo%2018.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/4209/1831/320/Photo%2018.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-115899467588908071?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/115899467588908071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=115899467588908071' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/115899467588908071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/115899467588908071'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/09/photos.html' title='Photos!'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-115791742930216982</id><published>2006-09-10T12:20:00.000-07:00</published><updated>2006-09-10T12:43:49.333-07:00</updated><title type='text'>Ways + Means</title><content type='html'>Folks keep pointing out that I'm not updating my blog.  This is kind of cool, really, as it means people are reading it. :-)  Hello, people!&lt;br /&gt;&lt;br /&gt;Contrary to popular belief, I am still alive.&lt;br /&gt;&lt;br /&gt;I've been out of commission for a few weeks with a back injury.  I'm largely better now, but I'm still taking things semi-easy.  (It was the same issue I had in early 2005, when a bone in my pelvis went out of alignment and made my life generally shitty.  It was rather worse this time, to the point that I could hardly walk.  I've managed to find a good chiropractor in Mountain View, and he's beaten me into shape.)&lt;br /&gt;&lt;br /&gt;Life is pretty good, other than that.  Jeannette and I are getting along marvelously, going to the beach and nerdy museums and so forth.  (This is a great area for nerdy pursuits.)&lt;br /&gt;&lt;br /&gt;At work, I've been promoted after six months, which once again demonstrates that I don't interview well. :-)  I'm now a notch short of "senior," which is the position I'm shooting for at the moment.  My team, charged with the review and processing of all incoming ads, has moved into the corporate spotlight in recent weeks &amp;mdash; though unfortunately, it was due to a pretty serious bug in some legacy code we maintain.  But it's worked out for the best: we've gained some energetic new engineers, and done some internal reorganization (no, heads didn't roll &amp;mdash; for once, I'm using "reorganization" quite literally).  We're now better prepared to kick ass and take names, which is, roughly speaking, our job.&lt;br /&gt;&lt;br /&gt;I've been charged with some higher-level design tasks, and will be semi-leading some of our new projects.  (I say "semi-leading" because there's a distinct "lead" title that I don't currently hold.)  Things are going well.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I've been hanging out with the Silicon Valley Patterns group, who are currently hosting a "language buffet" track: every few weeks they pick another programming language, try to wrap their (generally quite large) brains around it, and see what it has to teach them.  This is right up my alley &amp;mdash; its' been a hobby of mine for years &amp;mdash; so I'm attending as much as I can and trying not to talk too much. :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As a side effect, I've been putting renewed effort into my programming language, still code-named Mongoose.  I've been inhaling hard-CS papers, which are very frustrating in the way they use 20-page formal proofs to demonstrate something that's pretty freaking obvious to long-time programmers.  (My strong predilection for working prototypes over academic proofs is probably showing through here.)  Some of the research I'm doing would probably make for good papers, but I don't use enough Greek letters to be accepted by their little clique.  I'll just release my code on the net instead. :-)&lt;br /&gt;&lt;br /&gt;(For a domain with the word &lt;em&gt;science&lt;/em&gt; in its name, Computer Science seems to involve a lot of math and industrial engineering, and strangely little actual science.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;My family's coming out in September, which should rock.  It's a little early for the leaves to turn, but Mountain View is still beautiful.  I find myself still ill-equipped for leading tourist expeditions into San Francisco; I'll probably have to pick up a tourist guidebook and read it when they're not looking. :-)  At the very least, I know most of the interesting bits of Mountain View, and I can direct my dad to the Computer History Museum.  Judging from current patterns, I'll update sometime in early October and report on that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-115791742930216982?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/115791742930216982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=115791742930216982' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/115791742930216982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/115791742930216982'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/09/ways-means.html' title='Ways + Means'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-115048496511803224</id><published>2006-06-16T12:00:00.000-07:00</published><updated>2006-06-16T12:11:46.910-07:00</updated><title type='text'>DPR rides again!</title><content type='html'>Readers may remember my robot, DPR, from posts last year.  I've gotten a bit of spare time, and I've started working on him again.&lt;br /&gt;&lt;br /&gt;Last year, he used his proximity sensors to chase my feet.  This year, I got him a camera.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.cliff.biffle.org/pictures/dpr-cam.jpg" width="320" height="240"/&gt;&lt;br /&gt;&lt;br /&gt;New year, new robot-chasing-something video.  Currently, he's terribly amused by an orange street-hockey ball I picked up at Albertson's.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cliff.biffle.org/robotics/dpr-ball.mp4"&gt;DPR loves the ball.  MPEG4, 746K&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(That's a power cord you see hanging off DPR; the control is completely on-board.)&lt;br /&gt;&lt;br /&gt;I'm still working on the camera interface code, trying to teach him some new tricks.&lt;br /&gt;&lt;br /&gt;A glitch in the code yesterday caused him to lose interest in the ball, and start watching black objects...guess what the only moving black object in the room was?&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.cliff.biffle.org/pictures/dpr-cat.jpg" width="400" height="300"/&gt;&lt;br /&gt;&lt;br /&gt;The cat is surprisingly tolerant of having a small, noisy robot staring at her.  She eventually decided to lick the top of the robot and slink off.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-115048496511803224?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/115048496511803224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=115048496511803224' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/115048496511803224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/115048496511803224'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/06/dpr-rides-again.html' title='DPR rides again!'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-114825069986114430</id><published>2006-05-21T15:14:00.000-07:00</published><updated>2006-05-21T15:31:39.873-07:00</updated><title type='text'>Work, JavaOne, etc.</title><content type='html'>It seems some folks have been wondering where I've gone.  Sorry for the lack of updates; work's been nutty.&lt;br /&gt;&lt;br /&gt;I've spent the past two weeks or so working on my first real project, analyzing the performance of some of our systems here.  It's been fun: part programming, part statistical analysis, part data visualization and report writing.  Right up my alley, really, though I'm glad it's winding down.&lt;br /&gt;&lt;br /&gt;I spent much of last week at JavaOne, working our booth.  It was a lot of fun -- it got me into the city, which I haven't been able to do nearly as much as I've wanted to, and I got to show off some of our neat tech.  Met a lot of interesting people.&lt;br /&gt;&lt;br /&gt;It felt sort of appropriate on some level.  A year ago next week, I approached Google on a lark, at this very conference.  I was thrilled to be invited out to dinner with a bunch of them, where I met luminaries in the field who are now my much-respected coworkers.  I also met Brian Goetz, who wound up soliciting my help with a pre-publication review of his excellent book.&lt;br /&gt;&lt;br /&gt;Now, at dinner a year later, I was doing the inviting and helping to host, rubbing elbows with some of the same people, and some new ones.  Brian's book has been released, and was the best-selling book at JavaOne.&lt;br /&gt;&lt;br /&gt;Of course, I was still the same opinionated pedant, giving the Java team crap.  (They're used to it by now, I suspect.)&lt;br /&gt;&lt;br /&gt;At the conference, I ran into a few of my old coworkers from Choice.  They seemed to be doing well.  Things seem to have come full circle, in a sense.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;On Saturday, Jeannette and I went up into San Francisco to hang out with Morgan.  It was awfully nice being in the city, but I still don't think I could live there.  We hung out with some of her tech-industry friends, and three times in one day I got the same line:&lt;br /&gt;&lt;br /&gt;"Yeah, Google seems nice, if you like that sort of big-corporation culture."&lt;br /&gt;&lt;br /&gt;*cough*&lt;br /&gt;&lt;br /&gt;I've worked for big corporations.  I'm not sure what Google &lt;em&gt;they're&lt;/em&gt; talking about, but I think we have a disagreement in terms. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-114825069986114430?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/114825069986114430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=114825069986114430' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114825069986114430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114825069986114430'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/05/work-javaone-etc.html' title='Work, JavaOne, etc.'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-114534480952470337</id><published>2006-04-18T00:07:00.000-07:00</published><updated>2006-04-18T00:28:47.250-07:00</updated><title type='text'>And now for something completely different!</title><content type='html'>I'm doing something rather unusual: tinkering on a game engine.&lt;br /&gt;&lt;br /&gt;Some of y'all might remember, about two years ago, when I started writing an RPG for cellphones.  I eventually decided this was silly and stopped, but I had the basic foundations for a plot laid in my head.&lt;br /&gt;&lt;br /&gt;In a conversation with Chris about a week ago, it came up &amp;mdash; and I have new ideas.&lt;br /&gt;&lt;br /&gt;I'm designing an engine for adventure-game type RPGs, in the vein of Maniac Mansion, Monkey Island, Sam and Max, or Out of this World.  This genre of games has completely disappeared in the past ten years &amp;mdash; much to my dismay, since it was a real hotbed of creativity in the early 90s.  The games had depth, and had humor, interesting character interactions, and plot complexity that was totally lacking from their contemporary battle-oriented RPGs (like Final Fantasy).  Other than flight sims and Tetris, they were really the only video games I ever got into.&lt;br /&gt;&lt;br /&gt;In the early 90s, some friends and I wrote text-based adventure games of the Infocom style, like Zork or Hitchhiker.  There was a package called Adventure Game Toolkit (which is still available for download!) that let you script text games in a simple file, and run them on all sorts of different machines.  This was great, because it let you concentrate on the game design, rather than the menial programming.&lt;br /&gt;&lt;br /&gt;So, fast forward twelve years or so.  Sure, I was programming commercially back then, but my software design skills have improved over time.  I'm going to try my hand at writing a graphical counterpart to the old AGT.  And, to make things interesting for me, I'm targetting two very different systems: desktop computers and the Nintendo DS.&lt;br /&gt;&lt;br /&gt;I just bought a DS, you see, and there's a thriving homebrew software community around it.  It's a neat little machine, with neat programming problems to solve &amp;mdash; and, with a pretty damn powerful processor, a touchscreen, and good sound, it's &lt;em&gt;ideal&lt;/em&gt; for this sort of game.&lt;br /&gt;&lt;br /&gt;And once I get the engine done, the &lt;em&gt;exact same game data&lt;/em&gt; will run on both systems.  Hell, I might even make save-games transferrable &amp;mdash; the DS has wifi, after all &amp;mdash; so you can play on whatever's convenient.&lt;br /&gt;&lt;br /&gt;The programming will be a good challenge, but this lets me work in a number of areas, since I'll need graphics and sound as well.  I'm designing a game as an initial use for this engine, and with any luck it will be quite neat: an intricate, dark, and twisted plot; hand-drawn graphics that swing between comic strip and surreal Vasquez-esque scenes; a multi-path plot that gives a good feeling of player freedom.&lt;br /&gt;&lt;br /&gt;The scary thing, to me, is that &lt;em&gt;I think I can pull this off.&lt;/em&gt;  I've got some test graphics done, and discovered I've gotten pretty good at drawing people.  I've put some basic music together, somewhere between Collide and Razed in Black.  And as of yesterday, I've got a little guy walking around in a room &amp;mdash; the basics are in place.&lt;br /&gt;&lt;br /&gt;We'll see if I lose interest.  It happens. :-)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Preliminary Game Synopsis&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;You play as Evan White, who's fresh out of college and has returned to his hometown to look for work.  He runs into his old flame and some other folks he knew from way-back.&lt;br /&gt;&lt;br /&gt;And, at about the same time, murders start &amp;mdash; gruesome killings that have the town shocked and on edge.  The local police force is out of ideas, and the FBI takes up the case.  They take a particular interest in Evan, who arrived in town about the same time.&lt;br /&gt;&lt;br /&gt;Evan, meanwhile, seems to be going slowly insane.  He keeps seeing things.  Weird things.  And some crazy homeless guy is following him around yelling at him.&lt;br /&gt;&lt;br /&gt;Things get weirder from there; I'm not telling where I'm going with the plot, in case some of you decide to try to play.  Anyone who's read my fiction knows I love to put normal people in really twisted circumstances; you can expect plot twists, surprises, and character interaction similar to my novel (though it won't give you clues to the plot).  (Matt, if you're reading this, yes, I will be playing with your emotions.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-114534480952470337?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/114534480952470337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=114534480952470337' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114534480952470337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114534480952470337'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/04/and-now-for-something-completely.html' title='And now for something completely different!'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-114463669489634972</id><published>2006-04-09T19:09:00.000-07:00</published><updated>2006-04-16T15:45:09.200-07:00</updated><title type='text'>Social responsibility starts with your wallet</title><content type='html'>Those of you who talk to me in the real world have probably heard me say, more than once, "Oh, I don't give money to [&lt;em&gt;company&lt;/em&gt;]."  Frequently, the company is Sony, but there are a few others.&lt;br /&gt;&lt;br /&gt;A lot of folks have written this off as a political statement or a personal grudge, which is accurate &amp;mdash; to a degree.  In this post, I'll try to explain where I'm coming from.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Corporations are, at their core, a power-amplification device.  They're an emergent phenomenon; you can get a lot done with a group working together, but if you organize them into a legally-recognized entity, you gain special powers.  Corporations are more than the sum of their people, and are treated as such by international law.&lt;br /&gt;&lt;br /&gt;One of the most obvious effects of this: one can, when wielding a corporation, do spectacularly nasty things &amp;mdash; like defrauding all of California's electricity users, killing lots of people in India, or deliberately maneuvering through payroll law so you can avoid paying your janitorial staff even minimum wage.  (For those playing along at home, those were Enron, Union Carbide, and Wal-Mart, respectively.)&lt;br /&gt;&lt;br /&gt;When at the helm of a corporation, the humans responsible for these actions get away with disproportionately small penalties.  Stealing $500 from a convenience store might get you a few years in prison; stealing millions, like the Enron guys did, typically nets you about eight months.  Killing someone in most states may well get you executed, but when Union Carbide killed thousands in India, the punishment was certainly not proportional.&lt;br /&gt;&lt;br /&gt;This isn't a post about our legal system, however.  My point is that corporations can do heinous things without significant punishment.&lt;br /&gt;&lt;br /&gt;I don't fall into the typical trap of insisting that all corporations are evil, just as I don't think all politicians are evil.  Instead, I'm interested in how we can keep the corporations on the straight-and-narrow.&lt;br /&gt;&lt;br /&gt;There are three forces that can keep a corporation straight:&lt;br /&gt;1. The goodness of their hearts.&lt;br /&gt;2. Legal regulation.&lt;br /&gt;3. Market forces.&lt;br /&gt;&lt;br /&gt;Some corporations stay 'good' out of policy, or out of some sense of moral responsibility, and I applaud them (and their directors) for this.  In an ideal world, this is all we'd need.  However, this is the weakest of the three forces; in our stock market, an economic system governed by carnivorous chickens, a lot of companies find themselves financially forced to cut ethical corners in pursuit of shareholder value.  (Some have pointed to my employer's entrance into China as an example of this, though I believe we have higher goals in mind.)&lt;br /&gt;&lt;br /&gt;Moreover, corporations are made up of, and guided by, humans &amp;mdash; and humans are notoriously flexible in the ethics department.&lt;br /&gt;&lt;br /&gt;The next force, legal regulation, can be effective at times, but is exerted by a fundamentally ineffective (and frequently corrupt) system: politics.  Moreover, as a conservative (of the old and nigh-forgotten variety), I don't believe legal regulation is an appropriate way to guide corporate policy, or enforce morality in general.&lt;br /&gt;&lt;br /&gt;So, that leaves us with the third force: the market.  The market can exert incredible pull on a corporation, for both good and evil, because it's the only force that can hit them directly where it hurts: the pocketbook.  Too often, market forces drive a corporation to sacrifice principles and cut corners, as I mentioned above &amp;mdash; it directly counteracts the "goodness of their hearts" force, in practice.&lt;br /&gt;&lt;br /&gt;But I don't believe this is intrinsic &amp;mdash; I believe it's a side effect of our current economic system, which could probably use some work.  And such change starts with the individual.&lt;br /&gt;&lt;br /&gt;A number of companies do things that I don't like.  Let's take Sony as an example.&lt;br /&gt;&lt;br /&gt;Every Sony product I've bought in the past decade has been limited in unexpected and disappointing ways, almost always to prevent me from doing something within my legal rights, but which Sony feels would be inappropriate.  For example, I loved my MiniDisc player, but it had all sorts of restrictions and misfeatures to prevent me from stealing music.  (The fact that they also prevented me from using the player in a convenient fashion, or working on my &lt;em&gt;own&lt;/em&gt; music, was lost on them.)&lt;br /&gt;&lt;br /&gt;The rootkit debacle of a few months back is another good example.  In their effort to keep evil consumers from stealing their content, they eliminated the user's Fair Use right to back up their music or move it to their computer or portable player &amp;mdash; and, while they were at it, installed a trojan horse on the computer to watch for and prevent actions that Sony didn't like.&lt;br /&gt;&lt;br /&gt;Individuals who release such trojan horses into the wild are typically faced with fines in the millions, and jail terms.  In some cases, they're legally prevented from using a computer for several years.  Sony received no criminal penalties, and the only civil action I'm aware of is a class action suit that may wind up awarding $5 or so to those affected.  Yay.&lt;br /&gt;&lt;br /&gt;Sony has worked to prevent homebrew games and media from working on the PlayStation Portable.  As a programmer, I'd probably buy a PSP if I could write my own software &amp;mdash; and moreover, I already own a number of DVDs and have no interest in repurchasing my movies in the UMD format.&lt;br /&gt;&lt;br /&gt;I don't like these policies, and thus, I don't give Sony my money.  This is basic capitalism.  Am I, a lone person, likely to make any difference?  No, but it's my responsibility stand up for my principles by helping to guide the market.&lt;br /&gt;&lt;br /&gt;Adobe is another good example.  When Dmitry Skylarov broke the encryption on their PDF files, they arranged to have the FBI throw him in prison when he entered the country to give a talk.  When Ed Felton of Princeton planned to present his analysis of the encryption at a conference, they threatened to do the same.  This is totally unacceptable, and as a responsible consumer, I cannot support these actions by giving Adobe my money.  This is a harder one, since Adobe has the only high-quality photo manipulation software on the market; I've been trying alternatives for several years, and I keep falling back to my (now painfully out-of-date) copy of Photoshop.&lt;br /&gt;&lt;br /&gt;This is not a grudge, or some sort of kneejerk political activism.  This is the basics of responsible capitalism.  I believe the market is the only effective way to keep corporations from doing stupid things &amp;mdash; and the market is made up of consumers like me.&lt;br /&gt;&lt;br /&gt;(Of course, most of these consumers don't really care about this stuff, so change seems unlikely...but I can hope.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-114463669489634972?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/114463669489634972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=114463669489634972' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114463669489634972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114463669489634972'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/04/social-responsibility-starts-with-your.html' title='Social responsibility starts with your wallet'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-114452452692458317</id><published>2006-04-08T12:01:00.000-07:00</published><updated>2006-04-08T12:28:48.066-07:00</updated><title type='text'>Hilarity.</title><content type='html'>It's been a couple weeks of new experiences for me, which is unusual.&lt;br /&gt;&lt;br /&gt;I slept at the office for the first time.  Not, as it might have been in years past, because of a pressing deadline or emergency issue.  No, I slept at the office because my apartment was filled with deadly gas (another first).&lt;br /&gt;&lt;br /&gt;I was awoken at 1AM by my carbon monoxide alarm.  (...well, okay, roused, not awoken.  I was brushing up on the scientific rebuttals to the moon landing hoaxers, because some people are idiots and I attract those people.)&lt;br /&gt;&lt;br /&gt;Step one? Hit the thing until it stops screaming.  I've had innumerable false alarms from smoke detectors in the past, so I figured I'd silence the thing and see if it stays silenced.&lt;br /&gt;&lt;br /&gt;It didn't.&lt;br /&gt;&lt;br /&gt;Okay, then...that left me with two possibilities.  One: I'm feeling tired and fuzzy because it's ONE IN THE FREAKING MORNING, and my headache is the same nagging headache I've had all day.  Two: I'm feeling tired and headachey because I'm being slowly killed by an invisible odorless gas.&lt;br /&gt;&lt;br /&gt;I popped the detector off the wall and checked its instructions.  "If you're feeling sick," it said, "call the fire department and leave immediately.  If you're &lt;em&gt;not&lt;/em&gt; feeling sick, open some windows and go back to sleep.  Sucker."&lt;br /&gt;&lt;br /&gt;Well, as noted above, I wasn't equipped to choose between those.  So, I threw together an overnight bag and headed to the nearest available crash space: teh GOOG.  This turned out not to be a brilliant idea, as our facility is basically 24-hour and it was &lt;em&gt;not&lt;/em&gt; quiet.  But at least we have showers.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Saw Al Gore speak yesterday.  Wouldn't have considered going, were it not for &lt;a href="http://wilshipley.com/blog/2006/04/climate-crisis.html"&gt;Wil Shipley's very positive review of the talk&lt;/a&gt;.  I had the same initial reaction as Wil: "Oh, goodie, I can go listen to the man too boring to be elected president."&lt;br /&gt;&lt;br /&gt;&lt;em&gt;He was positively riveting.&lt;/em&gt;  His presentation was alternately hilarious and terrifying.  I was floored.  (Not to mention that he had the single best slide-to-speech synchronization that I've seen outside my own presentations.  &lt;a href="http://cliffle.blogspot.com/2006/01/dont-go-knocking-on-cash-cow-now.html"&gt;Just when I thought I was the only one who cared about the details.&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;As a self-styled hanger-on of the scientific community, I've been aware for some time that the "controversy" over global warming is manufactured by the "liberal" media and the politicians &amp;mdash; the scientific consensus that we're really screwing up has always been pretty solid.  Gore made this point, and others, in a very clear, very punchy fashion.  Go Al.  (Psssst.  Hey, if you try running for president again, but with the personality?  Yeah, might work out.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Got Windows XP up and running on my MacBook Pro.  &lt;a href="http://www.geekculture.com/joyoftech/joyarchives/802.html"&gt;The Joy of Tech guys said it best.&lt;/a&gt;  It works great, and is very speedy, but I'm really not sure what to do with it.  The OS doesn't even come with Flash, much less any productivity software or development tools, or Java.&lt;br /&gt;&lt;br /&gt;I see why Windows users play Solitaire: unless you want to dork around in RegEdit or Hyperterminal, it's about all the damn system comes with.&lt;br /&gt;&lt;br /&gt;But, I had to see it work.  And it does.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I admit, at the end of last week, I was honestly considering quitting my job.  (Not that I had any idea what I'd do then, having moved to a new state and all.)  I won't go into detail &amp;mdash; the information leak ninjas don't appreciate that &amp;mdash; but suffice it to say that the issues I had with Choice, in terms of poor testing and development rigor and lack of coherent design, are &lt;em&gt;magnified&lt;/em&gt; where I am now.  There's a sense that rapid system expansion and solid design are mutually incompatible, which I've proven false any number of times &amp;mdash; it implies that design is a slow process separate from coding.  Strangely, these same folks are proponents of XP (eXtreme Programming), which basically agrees with me on this.&lt;br /&gt;&lt;br /&gt;Fortunately, as I was reminded this week, that's a feature of my current location in the company, and a temporary thing at that.  So, no need to do anything rash.  My current program for fixing these issues is as follows:&lt;br /&gt;&lt;br /&gt;1. Stand my ground.  I &lt;em&gt;really do&lt;/em&gt; know a lot of the stuff I espouse, quite well.  I've been backing down in arguments because I'm new at the company, and because I have a lexicographical impedance mismatch with the CS folks.  There will be no further backing down.  (Except, of course, if I'm beaten or refuted.  There are a large number of people here that are smarter and/or more experienced than I, and when they say I'm wrong, they're probably correct.)&lt;br /&gt;&lt;br /&gt;2. Keep my manager abreast of these issues, so that it won't come as a shock when I move to step 3.&lt;br /&gt;&lt;br /&gt;3. Finish the project and, if change isn't in the wind, &lt;em&gt;move somewhere else in the company&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;So, I'm going to give this a shot and see how things go.  Everyone on my team is brilliant and capable, but we're having some paradigmatic clashes.  Stay tuned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-114452452692458317?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/114452452692458317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=114452452692458317' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114452452692458317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114452452692458317'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/04/hilarity.html' title='Hilarity.'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-114400708780428254</id><published>2006-04-02T12:32:00.000-07:00</published><updated>2006-04-02T12:44:47.816-07:00</updated><title type='text'>Iiiiiit's Stupid-Time!</title><content type='html'>I woke up this morning to find all my clocks arguing.&lt;br /&gt;&lt;br /&gt;The smarter clocks had advanced an hour; the older clocks hadn't changed.  And, I admit, some of them had been wrong for weeks.&lt;br /&gt;&lt;br /&gt;This was my first indication that the government-mandated consensual temporal hallucination had kicked in.  Yes, it seems Daylight Savings Time has started.&lt;br /&gt;&lt;br /&gt;DST still doesn't make any sense at all to me.  Arizona has ludicrous quantities of daylight, with the sun rising at or before 5 in the summer, so I've always been of the school that says "If you want more daylight, get the hell out of bed earlier."&lt;br /&gt;&lt;br /&gt;But no, in this state we "get more daylight" by agreeing to lie about what time it is.&lt;br /&gt;&lt;br /&gt;I know this is wrong.  Time as I use it is relative to a cesium standard set up by NIST, or at least to one's distance from UTC.&lt;br /&gt;&lt;br /&gt;I also understand that this doesn't get you "more daylight," in that the earth's tilt does not change.  This, of course, tells us that stupid has no mass (unlike neutrinos); if it did, the massive shift in stupid in the northern hemisphere today might have actually altered the seasons.&lt;br /&gt;&lt;br /&gt;So, what's the net effect of Daylight Savings Time?&lt;br /&gt;1. It is darker between about "5" and "6" AM.&lt;br /&gt;2. It is lighter between about "6" and "7" PM.&lt;br /&gt;&lt;br /&gt;(There's an old saying about extending your blanket by cutting off one end and sewing it on the other.)&lt;br /&gt;&lt;br /&gt;I really don't see the practical benefit of this.  Do the stores I want to visit stay open later now?  No, now they just close before sunset.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-114400708780428254?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/114400708780428254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=114400708780428254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114400708780428254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114400708780428254'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/04/iiiiiits-stupid-time.html' title='Iiiiiit&apos;s Stupid-Time!'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-114273808365994210</id><published>2006-03-18T20:12:00.000-07:00</published><updated>2006-03-18T20:14:43.673-07:00</updated><title type='text'>Cliff gets Photobooth.  Silliness ensues.</title><content type='html'>Took a break and took some photos.&lt;br /&gt;&lt;br /&gt;First, here's the weird floating hand thing that's been hanging out in my office of late.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/114427371/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/54/114427371_b8b5b4f138_o.jpg" width="640" height="480" alt="SCARY LEVITATING HAND THING" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then I began turning into some sort of blind mole rat thing.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/114427368/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/39/114427368_6e8367246a_o.jpg" width="640" height="480" alt="SCARY MUTANT CLIFF" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/114427370/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/45/114427370_95905d706d_o.jpg" width="640" height="480" alt="BLIND MOLE RAT CLIFF" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-114273808365994210?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/114273808365994210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=114273808365994210' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114273808365994210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114273808365994210'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/03/cliff-gets-photobooth-silliness-ensues.html' title='Cliff gets Photobooth.  Silliness ensues.'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-114240213605424982</id><published>2006-03-14T22:27:00.000-07:00</published><updated>2006-03-14T23:44:33.966-07:00</updated><title type='text'>MacBook Pro.  Price-competitive?</title><content type='html'>I just shelled out for a MacBook Pro.  Did I buy it because it was the cheapest laptop I could find?  No.  I bought it because I expect it to be really nice.&lt;br /&gt;&lt;br /&gt;That said.&lt;br /&gt;&lt;br /&gt;Out of curiosity, I configured a similarly-specced IBM Thinkpad.  I picked the Thinkpad because the build quality is on par with, if not better than, Apple's laptops.  I have a lot of respect for the Thinkpad line.&lt;br /&gt;&lt;br /&gt;So, here's a head-to-head.  I'm ignoring the touchy-feely stuff like "the time I save not having to reinstall Windows is worth any price difference."  Just numbers, folks.&lt;br /&gt;&lt;br /&gt;The MacBook Pro 2.0 vs. the ThinkPad T60.  Fight!&lt;br /&gt;&lt;br /&gt;The systems have identical processors (Intel T2500), RAM (1GB), disks (100GB), and ethernet connectivity (gigabit).  They have as close to identical screens as I could manage (1440x900 on the Mac, 1400x1050 on the Thinkpad).&lt;br /&gt;&lt;br /&gt;The MacBook sports a slightly better display adapter (256MB X1600 vs. 128MB X1400), and faster Bluetooth (2.0EDR vs. 1.1).  It has Firewire, optical audio in and out, and a built-in camera and microphone.  Its video output is also dual-link DVI, meaning it can drive larger screens (up through 30").&lt;br /&gt;&lt;br /&gt;The ThinkPad has an integrated modem, as well as a PCMCIA slot (in addition to the Expresscard slot) and 802.11a (in case anyone uses it).  It sports one extra USB port (3 vs. 2).  I've included a cheap ($28) Logitech webcam to get the camera and microphone.&lt;br /&gt;&lt;br /&gt;In the luxuries category, the MacBook has a backlit keyboard that automatically compensates for light levels, and a remote for accessing your media from a distance (using FrontRow).  The ThinkPad has an integrated fingerprint scanner, and (if I'm reading this right) comes with an EVDO card for accessing Verizon's data service.  (I don't count that last feature, as I'm not a Verizon subscriber.  On both machines, I'd dial in over Bluetooth through my phone, like I do today.)&lt;br /&gt;&lt;br /&gt;Size-wise, the Thinkpad is thicker and a half-pound heavier.  The Mac is wider, but the ThinkPad is deeper (because of the different screen shapes).  Both have metal enclosures, though the ThinkPad is magnesium and the MacBook aluminum.&lt;br /&gt;&lt;br /&gt;The warranties are different; the Thinkpad's is arguably better, though I've never had any issues getting an Apple laptop serviced.&lt;br /&gt;&lt;br /&gt;In my single snotty Mac-user jab, I have included Antivirus and Internet Security software on the Thinkpad.  (Lenovo offered them at a discount in the bundle.)  I know a lot of folks who get by without any Antivirus on Windows, without a problem, so if that bugs you, knock $50 off the price of the Thinkpad.  Personally, I don't want to worry about it; I run Antivirus on my one Windows machine.&lt;br /&gt;&lt;br /&gt;(If we want to start arguing over software configuration, I could always point out that the MacBook comes with vastly more bundled software, and I've left the ThinkPad at the default configuration.)&lt;br /&gt;&lt;br /&gt;Final prices:&lt;br /&gt;MacBook Pro: $2499.&lt;br /&gt;ThinkPad T60: $2717.37.&lt;br /&gt;&lt;br /&gt;Now, I did this comparison out of idle curiosity, and I was not expecting the MacBook to come out ahead.  If you strip off the antivirus and the camera, the ThinkPad still costs $100 more.&lt;br /&gt;&lt;br /&gt;Blows my mind.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-114240213605424982?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/114240213605424982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=114240213605424982' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114240213605424982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114240213605424982'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/03/macbook-pro-price-competitive.html' title='MacBook Pro.  Price-competitive?'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-114238088086474571</id><published>2006-03-14T17:00:00.000-07:00</published><updated>2006-03-14T17:10:26.986-07:00</updated><title type='text'>Horrid experiences with Metropolitan Moving</title><content type='html'>Jeannette has posted an account of her experiences with &lt;a href="http://butterflyintraining.blogspot.com/2006/03/metropolitan-moving-is-one-of-worst.html"&gt;Metropolitan Moving&lt;/a&gt; back in the summer.  They were not good.&lt;br /&gt;&lt;br /&gt;In case anyone needs a mover.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-114238088086474571?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/114238088086474571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=114238088086474571' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114238088086474571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114238088086474571'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/03/horrid-experiences-with-metropolitan.html' title='Horrid experiences with Metropolitan Moving'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-114142548569666876</id><published>2006-03-03T15:02:00.000-07:00</published><updated>2006-03-03T15:38:05.740-07:00</updated><title type='text'>Full circle</title><content type='html'>Three years ago, I wanted to get out of the house on a Saturday.  I was living with my parents at the time, to free up more of my capital for the company I was running.  I was basically living for work; my only real hobby was going to coffee shops and programming.  (Some things never change.)&lt;br /&gt;&lt;br /&gt;I'd heard mention of a new coffee shop in Cave Creek, but hadn't been there.  It was owned by the father of another Foothills Academy alum.  I decided to give it a shot &amp;mdash; Cave Creek is a lot closer to my folks' house than Scottsdale or Phoenix, so it was a quick drive.&lt;br /&gt;&lt;br /&gt;The coffee shop turned out to be nice, and I holed up in the corner with my laptop (a 75mhz Pentium I'd assembled from parts).  I was beginning to think about programming language design, and had just spent several weeks deeply immersed in Ruby.  Ruby had charmed me with its simplicity and consistency, but occasionally did things that came out of nowhere and bit me in the ass.&lt;br /&gt;&lt;br /&gt;After setting up my confuser, I made a lap through the coffee shop, scoping the place.  In the back room I found a bookshelf, laden with random books &amp;mdash; probably collected from garage sales &amp;mdash; and fell into orbit around it.  Most of the books were uninteresting; a lot of mystery novels, Tom Clancy stuff, and pet care books.  One, in particular, jumped out at me.&lt;br /&gt;&lt;br /&gt;"Digitalk," its spine said, "Smalltalk for the IBM PC."&lt;br /&gt;&lt;br /&gt;I giggled.  I'd heard of Smalltalk &amp;mdash; I remembered it from an old 1983 issue of Byte I'd found in my father's garage.  This book seemed wildly out of place at a coffee shop.  It followed me back to my table.&lt;br /&gt;&lt;br /&gt;I launched into the book, and it took no more than a few pages for the epiphany to hit.  This was a Language, in the style of LISP &amp;mdash; this was something with an Idea behind it, something with a Philosophy.  This was the language that had given birth to modern programming &amp;mdash; I knew that before I opened the book &amp;mdash; but I hadn't realized how much of its vision had been lost along the way.&lt;br /&gt;&lt;br /&gt;Ruby quickly began looking a bit dull.  It was clearly an attempt to shoehorn the ideas of Smalltalk into a language derived from Perl, and boy, did it show.  Ruby was the shadow cast on the wall of Plato's cave; Smalltalk wasn't even the source of the shadow: it was the source of the light.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, here I am three years later, at that same coffee shop.  The book is gone, appropriately enough, but my conversion is more or less complete.  In these three years I've grown personally, gotten a much better job, and moved to California; in that same time, I've viewed programming through the lens of Smalltalk, and worked out ways to apply its ideas to modern programming.  Mongoose, my pet language, is the result &amp;mdash; and it's what I'm working on here at the shop.&lt;br /&gt;&lt;br /&gt;At the same time, it's probably good that the book is gone.  Alan Kay, creator of Smalltalk, warned that people who learn a language based on an Idea tend to crystallize their perspectives: they have a hard time thinking in any other way.  It happens to LISPers, it happens to Smalltalkers, it happens to Perl programmers (though Perl's big Idea is its explicit lack of an Idea).  I've been working to avoid this, happily stealing ideas from Scheme, C#, and ML &amp;mdash; three languages about as far removed from Smalltalk as Mandarin or ASL are from English.&lt;br /&gt;&lt;br /&gt;One of the easiest ways to attack Esperanto is to point out its close ties to Latin.  "How can a language be universal," its critics say, "when it's so heavily Romance-based?"  While this may or may not be a valid point, there's another, more subtle side to this.  The real danger of basing something on an existing idea is the possibility that it's wrong.  Esperanto went with Indo-European inflection to show noun role, but it looks (from linguistic history and the development of creoles) like languages tend to move toward positional grammar over time.&lt;br /&gt;&lt;br /&gt;I came here looking for the book, I admit, but it's probably good that it's gone.  My language is very close to working, having printed its first "Hello, world!" at about 1AM this morning.  Now is probably &lt;em&gt;exactly&lt;/em&gt; the wrong time to reinject a heavy dose of influence from the Smalltalk camp.  Several parts of the Idea seem wrong now, but it's very persuasive.  Best to keep it away until my own Idea crystallizes a bit further.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-114142548569666876?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/114142548569666876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=114142548569666876' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114142548569666876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114142548569666876'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/03/full-circle.html' title='Full circle'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-114128588443791015</id><published>2006-03-02T00:43:00.000-07:00</published><updated>2006-03-02T00:51:24.446-07:00</updated><title type='text'>Rain</title><content type='html'>It rained almost continuously Sunday and Monday, and has started again just now.  (This isn't just me showing off to my Phoenix friends; I'm really digging the rain.)&lt;br /&gt;&lt;br /&gt;There's a creek out back of my apartment that floods during the rain, and I can hear the water rushing by from my bedroom.&lt;br /&gt;&lt;br /&gt;The rain was actually kind of bad this weekend, because with rain comes cold.  In this case, lots of cold, because my heater quit working.  I didn't actually notice for the first couple days, while it was still warmer inside my apartment than out &amp;mdash; but by yesterday I started wondering why it was so damn cold.&lt;br /&gt;&lt;br /&gt;And then I realized I hadn't heard the heater turn on in three days.&lt;br /&gt;&lt;br /&gt;Pilot light: check.  Wiring: check.  Thermostat: iffy.  One call to maintenance later, and I have a heater.&lt;br /&gt;&lt;br /&gt;So, I spent some of tonight basking in front of it.  I'm such a desert boy.  I hadn't ever spent three days at 50-60 degrees before; it makes me creaky and sleepy.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ran into an amusing problem at work.  One of my programs was running out of memory and crashing, so we hooked it up to an analysis tool to see what was going on.  What did the analysis tool do?&lt;br /&gt;&lt;br /&gt;It ran out of memory.  And crashed.  Hooray for irony.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'll be at Urban on Friday, in case anyone hasn't heard.&lt;br /&gt;&lt;br /&gt;But now, I must watch an ex-leak in my roof, to ensure it does not become an ex-ex-leak &amp;mdash; and then go to bed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-114128588443791015?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/114128588443791015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=114128588443791015' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114128588443791015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114128588443791015'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/03/rain.html' title='Rain'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-114047893164765948</id><published>2006-02-20T16:40:00.000-07:00</published><updated>2006-02-20T16:42:11.660-07:00</updated><title type='text'>Coffee with Sisyphus</title><content type='html'>My poor coffee pot.&lt;br /&gt;&lt;br /&gt;"*gurgle gurgle gurgle*  Yaaaaay!  I'm almost full!  *gurgle gurgle gurgle*"&lt;br /&gt;&lt;br /&gt;*whizzzzzz*&lt;br /&gt;&lt;br /&gt;"*gurgle* Oh...oh no!  No!  Where is the coffee going?"&lt;br /&gt;&lt;br /&gt;*whizzzzz*&lt;br /&gt;&lt;br /&gt;"No!  The coffee!  *gurgle gurgle* I can't brew it fast enough to replenish this loss!  *gurgle gurgle* Why must my life be so empty and futile!"&lt;br /&gt;&lt;br /&gt;*siiip*&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-114047893164765948?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/114047893164765948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=114047893164765948' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114047893164765948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/114047893164765948'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/02/coffee-with-sisyphus.html' title='Coffee with Sisyphus'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113963169222065667</id><published>2006-02-10T20:16:00.000-07:00</published><updated>2006-02-10T21:21:32.246-07:00</updated><title type='text'>Fridays, Mk II</title><content type='html'>Well, I've been here just over a month.&lt;br /&gt;&lt;br /&gt;You know you're bored and lonely when the monthly Java Tech Tips newsletter is the highlight of your Friday evening.&lt;br /&gt;&lt;br /&gt;Sigh.&lt;br /&gt;&lt;br /&gt;Got to talk to my folks a bit, which was nice, but all in all it looks like another thrilling Friday night at home doing compiler design.  I tried a couple social avenues at work today, but wound up getting semi-snubbed.  (Semi- because a lot of the folks here are socially stunted, so I must be careful not to read into their actions.)&lt;br /&gt;&lt;br /&gt;On the non-mopey front, work is going well.  I got paid (yay!) and am doing taxes (boo!).  &lt;a href="http://c133.org/blog/"&gt;clee&lt;/a&gt; came out today and toured the facilities; I'm trying to get him an interview, but he's got some other, faster prospects.&lt;br /&gt;&lt;br /&gt;I sent &lt;a href="http://cliffhacks.blogspot.com/2006/02/prototypes-and-classes.html"&gt;a post on my tech blog about object-oriented language design&lt;/a&gt; to a local mailing list, and kicked off a minor flamewar.  It provoked some good discussion in the end, though none of them seemed to want to comment on the actual blog entry.  I'm going to have to write a demo to prove my point, I know it.&lt;br /&gt;&lt;br /&gt;It's cold outside.  I'm going to throw on a jacket and go find some food.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113963169222065667?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113963169222065667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113963169222065667' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113963169222065667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113963169222065667'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/02/fridays-mk-ii.html' title='Fridays, Mk II'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113938044596955671</id><published>2006-02-07T23:29:00.000-07:00</published><updated>2006-02-07T23:34:05.980-07:00</updated><title type='text'>Music and such</title><content type='html'>So about six months ago, I picked up an album by Jim White, the lengthily-named "Drill a hole in this substrate and tell me what you see."&lt;br /&gt;&lt;br /&gt;It's excellent.  The music is good, and the guy's a very sharp lyricist.  The mood is vaguely Tom-Waits-ish, albeit less weird.  Check it out.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As quoted in numerous articles today, Verizon wants to end "Google's free lunch" by charging Google and others to send data.  I dunno about you, but I thought I already paid for my data when I paid for my internet access.&lt;br /&gt;&lt;br /&gt;Of course, some of my friends have taken it literally, and have been asking if Verizon is trying to take out the Google Caf&amp;eacute; on campus.  I suggested we mail them some takeout and see if they'll shut up. :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;More California weirdness: nearly everything has a warning label here, of the form&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;This [product/establishment/chicken] may contain chemicals known to the State of California to cause [cancer / birth defects / sleepiness / warts / social inadequacy ].&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Needless to say, I want a shirt.  "Warning: this shirt may contain chemicals..."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113938044596955671?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113938044596955671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113938044596955671' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113938044596955671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113938044596955671'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/02/music-and-such.html' title='Music and such'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113920268655842213</id><published>2006-02-05T21:43:00.000-07:00</published><updated>2006-02-05T22:11:26.586-07:00</updated><title type='text'>Still alive!</title><content type='html'>Yes, I haven't updated in a while.  Sorry 'bout that. :-)&lt;br /&gt;&lt;br /&gt;Not much is new here.  I'm all moved into my new apartment, and starting to decorate and such.&lt;br /&gt;&lt;br /&gt;There's been a bit of a payroll fuckup at Google, and I haven't been paid yet.  Grr.  At least they're &lt;em&gt;trying&lt;/em&gt; to pay me, so it's not a repeat of a few years ago. :-)&lt;br /&gt;&lt;br /&gt;Bought a video camera &amp;mdash; a Panasonic PV-GS65, to be exact.  I'd been debating buying one for some time, wondering if I'd actually use it.  Fry's in Sunnyvale had this one at a pretty steep discount &amp;mdash; to the point that it was probably a pricing error &amp;mdash; so I impulse-bought it.  So far I'm quite pleased with it, though I don't have much of anything to film.  Perhaps I'll sucker some people into working on the video projects I've been throwing around for years.&lt;br /&gt;&lt;br /&gt;Jeannette was out this weekend, and came to my semi-housewarming party.  I say "semi" because it was five people.  I keep assuring myself I'll find more friends here soon, but it's a far cry from the 20-50-strong parties we used to have at the house.&lt;br /&gt;&lt;br /&gt;She also taught me some rudimentary ASL, which I've been wanting to learn for some time.  Neat language.&lt;br /&gt;&lt;br /&gt;That's about it for now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113920268655842213?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113920268655842213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113920268655842213' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113920268655842213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113920268655842213'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/02/still-alive.html' title='Still alive!'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113832393782822794</id><published>2006-01-26T18:01:00.000-07:00</published><updated>2006-01-26T18:05:37.840-07:00</updated><title type='text'>List: Watercooler Snippets That Only Occur (Together) At Google</title><content type='html'>"A friend of mine had a pretty cogent argument for Heinlein being sexist in &lt;em&gt;Stranger&lt;/em&gt;."&lt;br /&gt;Passerby, in passing: "He's also racist."&lt;br /&gt;"Well, okay, yes--"&lt;br /&gt;Another passerby: "But that's not uncommon.  Look at Arthur C. Clarke."&lt;br /&gt;[This went on for several minutes.  Nobody stayed for more than a couple sentences.]&lt;br /&gt;&lt;br /&gt;"What's the chirality of your apartment?"  [The complex has two mirror-imaged floorplans.]&lt;br /&gt;&lt;br /&gt;"So on the right-hand rule, that means the current is passing down through your apartment?" [same]&lt;br /&gt;&lt;br /&gt;"Geeks, gamers, polyamorists -- this overlap makes sense, but it doesn't explain the Jews."  [...meaning the high percentage of Jewish geeks, not the existence of Jews.]&lt;br /&gt;&lt;br /&gt;Yes, those are all tiny, nonsensical, out-of-context fragments of larger conversations.  Mmm.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113832393782822794?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113832393782822794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113832393782822794' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113832393782822794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113832393782822794'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/01/list-watercooler-snippets-that-only.html' title='List: Watercooler Snippets That Only Occur (Together) At Google'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113816649575017902</id><published>2006-01-24T22:12:00.000-07:00</published><updated>2006-01-24T22:21:35.763-07:00</updated><title type='text'>Houston, I have an apartment!</title><content type='html'>As of today, I have the keys for my new place.  So, of course: pictures!&lt;br /&gt;&lt;br /&gt;First, the view from the front walk:&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/90915787/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/35/90915787_3bdb6902dd_o.jpg" width="240" height="320" alt="Riverstone: Front" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Appropriately enough, as you can see, my apartment is sticking its tongue out at you.&lt;br /&gt;&lt;br /&gt;Into the living room:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/90915789/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/38/90915789_1085a30292_o.jpg" width="320" height="240" alt="Riverstone: Living Room" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Stairs on the far left lead up to the bedrooms.  Note the ultra-mod bookshelf on the right, and behind it, the INCREDIBLY LUMINOUS KITCHEN, FILLED WITH FUSION POWER.  Or halogen.  One of those.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/90915788/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/19/90915788_3564897937_o.jpg" width="320" height="240" alt="Riverstone: Kitchen" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Having TAMED THE POWER OF FUSION, you can see again the bookshelf and the freakishly uniform kitchen.  It's relatively open, yet has excellent cabinet space.  Yay!&lt;br /&gt;&lt;br /&gt;From the kitchen/dining room area, one can access the porch:&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/90915790/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/18/90915790_268eb5a408_o.jpg" width="240" height="320" alt="Riverstone: Porch" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;(aka The Place To Which The Smokers Will Be Exiled For Parties.com)&lt;br /&gt;&lt;br /&gt;So, up the stairs.&lt;br /&gt;&lt;br /&gt;This here's one of the two bedrooms:&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/90915791/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/17/90915791_e70a98a765_o.jpg" width="240" height="320" alt="Riverstone: Bedroom" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note kickass window and vaulted ceilings.  (Note also same shitty vertical blinds I've had in every apartment.  Grr.  Hate.)&lt;br /&gt;&lt;br /&gt;The bedrooms are basically identical, albeit mirror-images of one another.  The view from each bedroom: trees.  Just trees.  Mmm.&lt;br /&gt;&lt;br /&gt;Out onto the balcony:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/90915786/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/15/90915786_43b82d5513_o.jpg" width="320" height="240" alt="Riverstone: Balcony" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The balcony is nice, but as you can see in the far-off duplicates, it's only partially covered.  When it rains, I'll be hiding down on the porch.&lt;br /&gt;&lt;br /&gt;So, that's the place.  The movers come on Thursday to deliver my actual stuff, but my internet connection may take another 15 days or more &amp;mdash; and that, after all, is what determines my actual move date.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113816649575017902?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113816649575017902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113816649575017902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113816649575017902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113816649575017902'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/01/houston-i-have-apartment.html' title='Houston, I have an apartment!'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113787353876413027</id><published>2006-01-21T12:57:00.000-07:00</published><updated>2006-01-21T12:58:58.766-07:00</updated><title type='text'>Tech blog!</title><content type='html'>When I switched away from LiveJournal, one of my goals was to fold my tech postings into my main blog.&lt;br /&gt;&lt;br /&gt;I've realized, again, that this would annoy the hell out of my non-techie readers, particularly without LiveJournal's &lt;code&gt;lj-cut&lt;/code&gt; tag to soften the blow.&lt;br /&gt;&lt;br /&gt;So, I've forked that portion of my blog again.  For my tech rants (including an explanation of what I'm doing to OS X today), go read &lt;a href="http://cliffhacks.blogspot.com/"&gt;my tech blog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113787353876413027?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113787353876413027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113787353876413027' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113787353876413027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113787353876413027'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/01/tech-blog.html' title='Tech blog!'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113786897102659284</id><published>2006-01-21T11:29:00.000-07:00</published><updated>2006-01-21T11:42:51.036-07:00</updated><title type='text'>Apartment!</title><content type='html'>I got the apartment!  *does the apartment dance*&lt;br /&gt;&lt;br /&gt;They remarked "You have such excellent recommendations!  How could anyone ever refuse you?"  I should get that on my business cards.&lt;br /&gt;&lt;br /&gt;The apartment, to clarify, is a two-bedroom townhome about a mile from my office.  I will have the two-story layout I'm so fond of, plus an extra room for a home office and lounge!&lt;br /&gt;&lt;br /&gt;Yay!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And today, I'm doing horrible, horrible things to MacOS X!  Yay!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113786897102659284?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113786897102659284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113786897102659284' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113786897102659284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113786897102659284'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/01/apartment.html' title='Apartment!'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113782436907955511</id><published>2006-01-20T23:13:00.000-07:00</published><updated>2006-01-20T23:19:29.090-07:00</updated><title type='text'>Ahhh, Fridays.</title><content type='html'>Another Friday night alone in my apartment.  It's not as bad as I was expecting, but it's not great either.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I've determined that the &lt;a href="http://www.apple.com/mightymouse/"&gt;Mighty Mouse&lt;/a&gt; that came with the Quad is actually usable.  I was skeptical, but it's become second-nature within two days.  I'm really starting to like it, though as the owner of some large fingers, I wish the scroll ball were bigger.&lt;br /&gt;&lt;br /&gt;I'm spending tonight wormed deep into Sun's Java compiler sources.  Yeah, I'm a geek.  It's reasonably straightforward, but contains close to zero meaningful comments, and has some questionable (i.e. evolved) design approaches in parts.&lt;br /&gt;&lt;br /&gt;Were this an open-source project, I'd probably refactor it and submit changes.  It ain't.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113782436907955511?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113782436907955511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113782436907955511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113782436907955511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113782436907955511'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/01/ahhh-fridays.html' title='Ahhh, Fridays.'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113760184425764373</id><published>2006-01-18T09:19:00.000-07:00</published><updated>2006-01-18T09:30:45.943-07:00</updated><title type='text'>Mac, summer camp, apartments</title><content type='html'>I'm posting this from the PowerMac.  I ordered a monitor from Dell (hiss!), but it actually seems quite nice.&lt;br /&gt;&lt;br /&gt;Being from the South, my family uses some odd units of measurement.  For example, the canonical unit of distance for car travel is the "pack."  In traditional English fashion, packs are not evenly divided: a twelve-pack is twice as long as a six-pack, which is six times as long as a can.&lt;br /&gt;&lt;br /&gt;For the execution time of computer processes, I use the "cup" unit.  It's all SI, though fortunately I haven't found anything that takes a kilocup.  Starting &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt; for my Java development, for example, is usually a one-cup event: it takes long enough that I can get one cup of coffee.&lt;br /&gt;&lt;br /&gt;Well, the PowerMac has it up in under 5 seconds.  How will I get my coffee now?  Curse you Apple!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Had lunch with some of the other new recruits yesterday.  I figured out what this job feels like so far: summer camp.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Looking at apartments, in the hopes of getting out of this temp housing (which is about 10 miles from where I want to be).  Found some nice places; I'll keep y'all updated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113760184425764373?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113760184425764373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113760184425764373' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113760184425764373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113760184425764373'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/01/mac-summer-camp-apartments.html' title='Mac, summer camp, apartments'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113735375302621990</id><published>2006-01-15T12:33:00.000-07:00</published><updated>2006-01-15T12:35:53.036-07:00</updated><title type='text'>Couple neat photos I'd forgotten to post</title><content type='html'>Woke up Saturday to find it cold, gloomy, and rainy.  Which is good.&lt;br /&gt;&lt;br /&gt;(As always, click any photo to see it bigger.)&lt;br /&gt;&lt;br /&gt;For some reason, we got a rainbow &lt;em&gt;before&lt;/em&gt; the rain, and I woke up just in time:&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/86975815/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/38/86975815_66df726ccd_m.jpg" width="180" height="240" alt="Rainbow over Santa Clara" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And later that morning, I noticed an odd phenomenon in my coffee cup.  Any time I let my coffee sit, it left a ring on the cup (due to the creamer, I suspect).  This left me with a record of my drinking pattern.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/86975814/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/42/86975814_c70f0f5bbb_m.jpg" width="180" height="240" alt="Like rings on a tree." /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;...well, &lt;em&gt;I&lt;/em&gt; was amused.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113735375302621990?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113735375302621990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113735375302621990' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113735375302621990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113735375302621990'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/01/couple-neat-photos-id-forgotten-to.html' title='Couple neat photos I&apos;d forgotten to post'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113726630407146248</id><published>2006-01-14T12:07:00.000-07:00</published><updated>2006-01-14T12:19:04.456-07:00</updated><title type='text'>Java, Vonage, Mac, and stuff</title><content type='html'>I'm getting closer to having an official project at work.  Yay!&lt;br /&gt;&lt;br /&gt;Had lunch with Dr. Bloch yesterday, after a week of scheduling conflicts.  I have tremendous respect for this fellow.  He even said one of my proposed extensions to Java was "not unreasonable."  ...now, I'm not sure if that's a good thing or not, but hey, it's something. :-)&lt;br /&gt;&lt;br /&gt;Got a Vonage line yesterday, so I now have another phone number.  I'm thoroughly impressed with Vonage.  The setup was something like this:&lt;br /&gt;1. Vonage sends me a box.&lt;br /&gt;2. I plug the box into my network.&lt;br /&gt;3. I plug a phone into the box and pick up the handset.&lt;br /&gt;4. The voice from the box tells me, politely, that I've plugged it into the wrong jack.  I move it to the adjacent jack.&lt;br /&gt;5. I have a phone line.&lt;br /&gt;&lt;br /&gt;I used it to call my parents earlier today, and while the conversation did get choppy at one point, it was far clearer than a cell phone.  (You can tell that I've used only cellphones for some time: when the conversation got choppy, I instinctively raised the phone up higher into the air.  Needless to say, that doesn't work with normal phones.)&lt;br /&gt;&lt;br /&gt;Now, I ordered Vonage because I wanted a real phone, but also because I'm a hacker and the service seemed neat.  True to form, I've already modified things slightly.  A few minutes of programming later, I had a plugin for Address Book on the Mac:&lt;br /&gt;&lt;img src="http://www.cliff.biffle.org/pictures/dial-with-vonage.jpg" width="197" height="219" alt="Screenshot of my Dial-with-Vonage plugin"/&gt;&lt;br /&gt;It works like this:&lt;br /&gt;1. Click on a phone number in your address book.  A menu pops up.&lt;br /&gt;2. Click on the brand-new Dial With Vonage option.&lt;br /&gt;3. Your Vonage phone rings.  Answer it.&lt;br /&gt;4. You hear ringing, as Vonage calls the number you selected.&lt;br /&gt;&lt;br /&gt;It's that easy.  (Now if I could just get my phone numbers to quit being so blurry! :-)&lt;br /&gt;&lt;br /&gt;Speaking of being a hacker, my shiny new Quad G5 showed up today.  I like it when people offer me discounts.  Now, if only I owned a monitor -- it's not the same ssh'ing into a machine like this.&lt;br /&gt;&lt;br /&gt;It's raining.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113726630407146248?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113726630407146248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113726630407146248' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113726630407146248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113726630407146248'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/01/java-vonage-mac-and-stuff.html' title='Java, Vonage, Mac, and stuff'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113707796314162775</id><published>2006-01-12T07:39:00.000-07:00</published><updated>2006-01-19T20:55:54.633-07:00</updated><title type='text'>Robot elves?!  Just like in the stories!</title><content type='html'>One thing that's consistently floored me about Google: it really is the way they say it is.  Both the good and the bad &amp;mdash; or at least, the bad-ish.&lt;br /&gt;&lt;br /&gt;Like the whole "don't be evil" thing.  I've heard it cited three or four times as justification for the way something works.  People really seem to have taken it to heart.&lt;br /&gt;&lt;br /&gt;For the people who've freaked out about GMail "never deleting your email," they've stated publicly that the disclaimer is because they can't guarantee it will instantly vanish, not because they're saving it up.  I doubt anyone would seriously want to keep old emails; that's a lot of storage.&lt;br /&gt;&lt;br /&gt;Anyway.&lt;br /&gt;&lt;br /&gt;Woke up Tuesday to a semi-sunny day in Santa Clara.  Got ready, got on the road, and &lt;em&gt;hit a fog bank&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Apparently, about halfway between here and Mountain View, there's a semi-biome-shift.  (According to my coworkers, north of the line you don't need residential AC; south of the line, you do.)  So, on this cold Norcal morning, that translated to an opaque wall of gray across the freeway.&lt;br /&gt;&lt;br /&gt;The down side: it really didn't help my cold.  The up side: it felt like Phoenix.  In Phoenix, the fog is brown, and is called "dust storms," but other than that they're quite similar.&lt;br /&gt;&lt;br /&gt;...well, except that in Phoenix, if you breathe the "fog," it hurts.  But that's okay, we never get out of our air-conditioned cars anyway. :-)&lt;br /&gt;&lt;br /&gt;Spent most of Tuesday in orientations of various sorts, learning about all sorts of internal stuff.  Stayed for the free dinner.  Mmm.&lt;br /&gt;&lt;br /&gt;Wednesday we learned about the web search system.  We have quite a smartass group of new recruits, but, judging from my coworkers, this isn't unusual.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Presenter, talking about odd things the search engine must deal with: "We're not sure why, but some guy keeps gzipping his hard disk and putting it out where we can find it."&lt;br /&gt;Me: "Yeah, so I can quit having to back it up.  Just use the Google cached link."&lt;br /&gt;Presenter: "..." &lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Most of Wednesday afternoon was free, and I spent it learning more about our source-control system, network architecture, and the like.  Someone emailed me out of the blue to see if I was interested in working on a project, so I guess some folks have heard of me.  (No, I can't tell you what.)&lt;br /&gt;&lt;br /&gt;So, things are starting to ramp up.  If my cold clears up the rest of the way, I'll be a happy camper.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113707796314162775?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113707796314162775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113707796314162775' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113707796314162775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113707796314162775'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/01/robot-elves-just-like-in-stories.html' title='Robot elves?!  Just like in the stories!'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113687041702371831</id><published>2006-01-09T22:12:00.000-07:00</published><updated>2006-01-09T22:20:17.050-07:00</updated><title type='text'>Day One</title><content type='html'>Started at Google today.  The day was mostly orientation, punctuated by snack breaks and lunch.  Met some neat folks and learned a lot about internal operations and policies.&lt;br /&gt;&lt;br /&gt;It seems that I'm going to be working, at least at first, on Google's advertising system.  I've met the team I'm working with, and I know what &lt;em&gt;they&lt;/em&gt; do, but I don't know specifically what &lt;em&gt;I'll&lt;/em&gt; be doing.&lt;br /&gt;&lt;br /&gt;And I can still make a latte.&lt;br /&gt;&lt;br /&gt;That is all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113687041702371831?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113687041702371831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113687041702371831' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113687041702371831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113687041702371831'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/01/day-one.html' title='Day One'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113677082935408257</id><published>2006-01-08T18:35:00.000-07:00</published><updated>2006-01-08T18:40:29.366-07:00</updated><title type='text'>Something I'm noticing.</title><content type='html'>Arizona's sunsets rock.&lt;br /&gt;&lt;br /&gt;During my time at ASU, I had plenty of outta-staters say Arizona sunsets were unbelievably colorful and varied.  A friend of the family, who lived in Minnesota, used to photograph sunsets in Phoenix and paint them in oils; she kept the photographs on hand to prove that the paintings weren't fanciful.&lt;br /&gt;&lt;br /&gt;I've spent a total of a month in California over the past year, and the sunsets are uniformly boring.  (San Francisco is the worst offender: between fog, terrain, and buildings, there rarely &lt;em&gt;is&lt;/em&gt; a sunset.)  Today's sunset was the prettiest in a while:&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/84128922/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/36/84128922_366a1d2a01_o.jpg" width="320" height="240" alt="Sunset: California" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Still, I find myself nostalgic.  My Phoenix folks will recognize this as a beautiful, but not at all unusual, Phoenix sunset:&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/84128923/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/42/84128923_76ae891b72_o.jpg" width="320" height="240" alt="Sunset: Arizona" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Neither of these photos have been altered since leaving the camera &amp;mdash; I normally &lt;em&gt;increase&lt;/em&gt; the color brilliance in my photos, because my camera tends to record less vivid colors than the eye in a given situation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113677082935408257?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113677082935408257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113677082935408257' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113677082935408257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113677082935408257'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/01/something-im-noticing.html' title='Something I&apos;m noticing.'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113675509107861117</id><published>2006-01-08T13:46:00.000-07:00</published><updated>2006-01-08T14:18:11.110-07:00</updated><title type='text'>First full day in CA</title><content type='html'>I've arrived, unpacked, and started to settle in.&lt;br /&gt;&lt;br /&gt;I'm in a nice, albeit dinky, furnished apartment while I find my real digs.  It's in Santa Clara, which is not exactly my choice of locations; so far, the place seems half Scottsdale, half industrial park.  But it's pretty, it's cool, and there's an Indian place across the street, so I'm not really complaining.&lt;br /&gt;&lt;br /&gt;First, the kitchen:&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/84006728/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/37/84006728_c2f7fb80c0_o.jpg" width="320" height="240" alt="River Terrace: kitchen" /&gt;&lt;/a&gt;&lt;br /&gt;I like the kitchen.  Nice cabinets, roomy, etc.  I just bought a load of groceries, some of which you can see on the counter.&lt;br /&gt;&lt;br /&gt;The living room:&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/84006730/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/38/84006730_0eb12e2e39_o.jpg" width="320" height="240" alt="River Terrace: living room" /&gt;&lt;/a&gt;&lt;br /&gt;The room does double-duty as a dining room and living room, and isn't really large enough to be either.  I'll have to move the table away from the wall to seat more than three, and this will block access to the couch.&lt;br /&gt;&lt;br /&gt;The distance between the couch and TV is less than my height.  I can nearly poke the TV with my toes from the couch, if I stretch out funny.&lt;br /&gt;&lt;br /&gt;The apartment did not include any sort of radio or sound system, so you can see some cheap computer speakers strewn atop the TV stand.  I must have music.&lt;br /&gt;&lt;br /&gt;The bedroom:&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/84006729/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/39/84006729_cbe793f4c5_o.jpg" width="320" height="240" alt="River Terrace: bedroom" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's very large, but it's arranged to make the space useless.&lt;br /&gt;&lt;br /&gt;The bathroom, of which there will be no pictures, is also huge.&lt;br /&gt;&lt;br /&gt;Astute readers will have noticed one element, conspicuous in its absence: any sort of desk or workspace.  Seems odd, for corporate housing.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Last night, I drove into San Francisco, to attend a party with &lt;a href="http://jaschu.wordpress.com/"&gt;Jason Schupp&lt;/a&gt;.  We went out for Eritrean food &amp;mdash; which, to me, is indistinguishable from Ethiopian, but I'm sure the Eritreans would take issue with this.&lt;br /&gt;&lt;br /&gt;The party was deep in SOMA, leaving me immersed in hipsters.  I find this subculture vaguely amusing; fortunately, several people were dressed nicely, so it didn't look like an entire room full of boys trying on daddy's suit coat or dress shirt.&lt;br /&gt;&lt;br /&gt;The people themselves were great, though, and most seemed to be geeky &amp;mdash; law students, programmers for Wordpress, Flock, and Flickr, and a bunch of others I didn't actually meet.  Fun party, though talking over the music exacerbated my already sore throat.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, I'm about to head out to a late lunch.  The Indian place across the street has received thoroughly mixed reviews online, but there seem to be a lot of folks of evident Indian descent eating there &amp;mdash; reminds me of Copper Kettle.  The lunch buffet is probably safe, I figure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113675509107861117?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113675509107861117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113675509107861117' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113675509107861117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113675509107861117'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/01/first-full-day-in-ca.html' title='First full day in CA'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113664624241317680</id><published>2006-01-07T07:59:00.000-07:00</published><updated>2006-01-07T08:04:02.473-07:00</updated><title type='text'>Don't go knocking on the cash cow now</title><content type='html'>I arrived at the airport right on time, taking my seat in Starbucks by 0707 MST.&lt;br /&gt;&lt;br /&gt;My flight, of course, is at 0820, leaving me with nearly an hour until boarding.  Why does he do this? you (my dear reader) might ask.  Does he like spending time in airports?&lt;br /&gt;&lt;br /&gt;Well, yes, actually, but that's not the real reason.  It comes back to why I don't like tailgaters.&lt;br /&gt;&lt;br /&gt;I spent last night at my parents' house, as my car, bed, and stuff were scarfed by a large truck yesterday.  As I was effectively homeless and carless, my dad picked me up in Tempe and drove me up to my ancestral home of Cave Creek.  On the way, he noted what he perceived to be a dramatic increase in aggressive driving among women.  This isn't a new observation &amp;mdash; I remember him pointing this out about the time I graduated from high school &amp;mdash; but his point still holds.  More often than not, these days, when a car aggressively tailgates me and then whooshes around me at its first opportunity, it's a female.&lt;br /&gt;&lt;br /&gt;But now, many years later, my dad has a theory.  Evolutionary psychologists might ascribe it to a stress response, brought on by being in a situation (viz. freeway traffic) for which we are biologically unprepared; Christian fundamentalists might point to women's liberation, gender equality, and other insidious liberal institutions that are destroying what it means to be a woman.  But not my father.&lt;br /&gt;&lt;br /&gt;My father blames soccer.&lt;br /&gt;&lt;br /&gt;More specifically, the now-clich&amp;eacute; "soccer mom" role.  Scottsdale (the closest major muni to Cave Creek) has an unusual percentage of stay-at-home or part-time moms, due to its generally high standard of living.  A lot of these moms wind up in the "soccer mom" position: keeping the household running, frantically running errands and picking up the kids and possibly running a business on the side.&lt;br /&gt;&lt;br /&gt;These women, my dad believes, have such packed schedules, such intricately constructed days, that even a small deviation from the plan can effectively ruin the day.  The women are aware of this &amp;mdash; subconsciously, if not consciously &amp;mdash; and may even have already suffered that slip, earlier in the day.  Thus, under tremendous stress, they frantically drive from point to point in a tremendous hurry.  The resulting behavior is interpreted, at least by us Southern folks, as aggression.&lt;br /&gt;&lt;br /&gt;I think there's something to this, but it doesn't explain Tempe.  The women who tailgate and cut me off in Tempe are usually of college age &amp;mdash; Tempe's dominant denizen, demographically.  My father (I haven't asked him) might well point to the same underlying phenomenon, but brought on by professional and academic stress, rather than family stress.&lt;br /&gt;&lt;br /&gt;Personally, I have a simpler explanation: they're bitches.  :-)&lt;br /&gt;&lt;br /&gt;Members of my family are not, generally speaking, bitches.  In terms of driving, my parents and I prize style highly, thinking it important to park correctly, drive fluidly, and just generally do it &lt;em&gt;right&lt;/em&gt;.  This is both a game to entertain ourselves (if not our passengers) while driving, and a demonstration of personal ability.  I suspect it stems from my parents' background as pilots.  (Ever noticed how, when an airliner banks into a turn, your drinks don't slide off your tray &amp;mdash; in either direction?  That's a &lt;em&gt;coordinated turn&lt;/em&gt;, where the angle of the airplane and the rate of turn are precisely synchronized to keep the effective "gravity" perpendicular to the floor.  Just one example of many.)&lt;br /&gt;&lt;br /&gt;We also don't typically find ourselves in tremendous hurries.  This is related to the style issue in two ways.  First, it helps us maintain it, by not forcing us to speed, tailgate, and be aggressive to get things done.  Second, it is, itself, an aspect of style.  Tailgating and rapid lane changes suggest, to us, a driver incapable of properly negotiating traffic and driving courteously; arriving late to an appointment, or having to ram your way through traffic to get there on time, suggest a person incapable of properly scheduling and planning.&lt;br /&gt;&lt;br /&gt;Which is why I'm at the airport an hour early.&lt;br /&gt;&lt;br /&gt;The airport is a big temporal question mark.  From curb to gate may take one as little as 10 minutes (as it did today), or as much as an hour &amp;mdash; between delays in airport traffic, construction within the airport, TSA screening, and general airport confusion, there are a lot of factors that come into play.  The easiest way to reliably get somewhere on time is to plan for the worst likely case.  (The worst &lt;em&gt;unlikely&lt;/em&gt; cases &amp;mdash; usually involving meteor impacts or cataclysmic floods &amp;mdash; are acceptable causes of lateness.)&lt;br /&gt;&lt;br /&gt;Now, this is not to say I'm never late.  (People who know me just giggled.)  Nor does it mean that I judge others based on their driving style or scheduling prowess: these are values to which members of my family hold &lt;em&gt;themselves&lt;/em&gt;.  Many of my friends are chronically flaky or crappy drivers and have never heard a word.  (On the other hand, some of my friends &amp;mdash; hi Jeannette &amp;mdash; are pretty good drivers and get crap from me all the time.)&lt;br /&gt;&lt;br /&gt;Of course, members of my family also tend to have absurdly good luck at navigating byzantine processes, like the airport.  Which leaves me with a lot of time to burn here at the airport Starbucks.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As astute readers may have inferred, from my repeated mention of airports, I'm heading out to Mountain View today.  I should have internet as soon as I get into my apartment.  I've got the weekend to track down anything I forgot, and then I start at Google at 9AM (PST) on Monday.&lt;br /&gt;&lt;br /&gt;Here goes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113664624241317680?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113664624241317680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113664624241317680' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113664624241317680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113664624241317680'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/01/dont-go-knocking-on-cash-cow-now.html' title='Don&apos;t go knocking on the cash cow now'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113641777434465398</id><published>2006-01-04T16:28:00.000-07:00</published><updated>2006-01-04T16:36:14.346-07:00</updated><title type='text'>Everything in its right place</title><content type='html'>So, as I posted a few weeks back, I'm moving to Mountain View, California.&lt;br /&gt;&lt;br /&gt;The relocation company assures me I don't have to pack.  This is weird.  I'm having trouble accepting this.&lt;br /&gt;&lt;br /&gt;Just to spite them, I've packed two small boxes.  HA!  Granted, I did it because they don't really know how to pack an SMT soldering station, or the robots.  But then, Google hired this company &amp;mdash; maybe I'm underestimating them.&lt;br /&gt;&lt;br /&gt;This past weekend, I was in MV, looking for apartments.  Jeannette was in San Francisco visiting friends, but we managed to intersect for a couple days and go see some amusing stuff.&lt;br /&gt;&lt;br /&gt;And now, my last week as an Arizona resident (for a while, at least).  I have so many people from my past competing for my time that I'm having to schedule timeslots.  I'm also having to prioritize, which breaks my heart, but my time is not infinite and I've still got a lot of stuff to get done.  (Sorry, folks.  You know I love you, and I'm sure I'll be back to visit soon.)&lt;br /&gt;&lt;br /&gt;We're having a Cliff-is-leaving get-together tonight, just a casual affair at my place.  If I've forgotten to tell you, don't take it personally: I've been so busy that I've relied on mailing lists and word of mouth to distribute the news.  Feel free to drop by, though if I don't know you, I'll leave you on the porch. :-)  Call if you need directions.&lt;br /&gt;&lt;br /&gt;My stuff leaves Friday.  I leave Saturday.  Google starts Monday.  Wish me luck!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113641777434465398?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113641777434465398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113641777434465398' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113641777434465398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113641777434465398'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2006/01/everything-in-its-right-place.html' title='Everything in its right place'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113494113380789115</id><published>2005-12-18T13:26:00.000-07:00</published><updated>2005-12-18T14:25:50.846-07:00</updated><title type='text'>We got computers...we're tapping phone lines...</title><content type='html'>From the irony department, &lt;a href="http://www.mercurynews.com/mld/mercurynews/news/breaking_news/13431831.htm"&gt;an article on dropping 'Christmas' from Christmas (from the San Jose Mercury News)&lt;/a&gt;.  Good to know there'll still be nuts for me to taunt in Norcal.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;"They have a valid point," said Steven Van Noy, 39 of Citrus Heights, on his way out the store with a bag in his hands. "Christmas should be included in their ads. I believe in Christ, and I don't like the use of 'X-mas' or the use of 'Happy Holidays.'"&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The fact that Mr. Van Noy doesn't "like the use of...'Happy Holidays'" is understandable.  After all, who wants to be reminded that there are other holiday celebrations?  If people started thinking about that, they might notice that these "Christmas" celebrations don't fall on the birth of Jesus, and are remarkably similar to pagan solstice celebrations...heeeeey...&lt;br /&gt;&lt;br /&gt;But here's the real irony.&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;Saturday's protest was organized by religious leaders including Dick Otterstad of the Church of the Divide, located in Georgetown, east of downtown Sacramento. Donning a Santa Claus costume and surrounded by a handful of supporters, Otterstad greeted shoppers with a single message: Don't forget about the meaning of Christmas.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Don't forget the meaning of &lt;em&gt;Christ&lt;/em&gt;mas, says the guy &lt;em&gt;in the Santa costume.&lt;/em&gt;  I love it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As for me, I've been flat-on-my-ass sick for a week now, with the flu followed by an opportunistic head cold.  It's been an interesting experience.  I haven't been sick since I can remember, so I now know what it feels like to have a fever.&lt;br /&gt;&lt;br /&gt;Thinking to myself, "Perhaps this is good practice for being in cold, northern Mountain View," I checked the weather there.  &lt;em&gt;It's warmer there than in Phoenix right now.&lt;/em&gt;  Colder in the summers, warmer in the winters?  Sign me up.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113494113380789115?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113494113380789115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113494113380789115' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113494113380789115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113494113380789115'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2005/12/we-got-computerswere-tapping-phone.html' title='We got computers...we&apos;re tapping phone lines...'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113410621361902363</id><published>2005-12-08T22:19:00.000-07:00</published><updated>2005-12-08T22:30:13.630-07:00</updated><title type='text'>Network sniffing from Java (wow, a techie post!)</title><content type='html'>[This is a techie post.  You have been warned.]&lt;br /&gt;&lt;br /&gt;As some of y'all may be aware, I've been working on a network analysis app for the past couple years.&lt;br /&gt;&lt;br /&gt;It's written in Objective-C, a language used primarily on the Mac.  This is fine by me &amp;mdash; I like Objective-C as a language, and a lot of my whizbang features (like voice control of traffic filtering) are Mac-specific.&lt;br /&gt;&lt;br /&gt;But the fact remains: I do most of my development in, and am currently most familiar with, Java.  I also believe that, within the next five years, Java will become the fastest application development language available.  (No, really.)&lt;br /&gt;&lt;br /&gt;So, on a lark, I started wondering what it'd take to rewrite my network analyzer in Java.  The hard part: to sniff network traffic (which will later be analyzed), the program has to worm its way down into the hardware, and this is difficult in Java.  I suspected it would require JNI (Java Native Interface, which lets you tie code written in other languages [primarily C] into Java programs), but I hadn't written any JNI in nearly ten years.&lt;br /&gt;&lt;br /&gt;I looked online to see if anyone had done my work for me.  There are a couple Java interfaces to the PCAP library, which is the gold standard when it comes to sniffing network traffic.  (It's what I use in my current application.)&lt;br /&gt;&lt;br /&gt;Unfortunately, they all suck, for two reasons.  First, they do too much work in the JNI code.  JNI code is written in C; the Java Virtual Machine, the part responsible for making modern Java so goddamn fast, can't speed up C code.  Second, they make too many assumptions about the type of traffic they'll encounter, and don't provide me a way to teach them about new types.  (They assume they're plugged into an Ethernet, which is not true if I'm hitting the net through my cellphone, like right now.)&lt;br /&gt;&lt;br /&gt;Cesta (my network analysis program) has a really flexible plugin architecture that lets it load processing code as needed, at runtime.  These libraries are the exact opposite of that.&lt;br /&gt;&lt;br /&gt;So, I'm having to write my own.  As of tonight, I have it working.  It's a very thin JNI interface to libpcap.  It should work on both 32 and 64-bit architectures, but is known to be incompatible with iSeries (AS/400) because of a design decision I made.&lt;br /&gt;&lt;br /&gt;The entertaining bit, to me, is that PCAP delivers packets by a callback, which I translate into a call to a Java interface.  Java code calls C code, which calls into libpcap, which calls a C function, which calls back into Java.  Teehee.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113410621361902363?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113410621361902363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113410621361902363' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113410621361902363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113410621361902363'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2005/12/network-sniffing-from-java-wow-techie.html' title='Network sniffing from Java (wow, a techie post!)'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113389492759235473</id><published>2005-12-06T10:58:00.000-07:00</published><updated>2005-12-06T11:48:47.626-07:00</updated><title type='text'>Does the man who made the shoes own you, clown?</title><content type='html'>In another example of Fedex Standard Overnight taking a week, I have received the offer letter.  (Hey, it's still better than the USPS, who lost a cell phone a few months back, causing me to owe T-Mobile $500.  Hooray government-sanctioned monopolies.)&lt;br /&gt;&lt;br /&gt;So, in case anyone was hanging in unnecessary suspense, I accepted the offer.  I'm currently planning to start on 9 January, but we'll see what schedule the relocation folks give me.  They &lt;em&gt;have&lt;/em&gt; told me that my temp housing will not be available until right before I start, so the schedule I gave previously is right out.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In related news, MSNBCOMGLOL is running an article by Google's CEO entitled &lt;a href="http://www.msnbc.msn.com/id/10296177/site/newsweek/"&gt;Ten Golden Rules&lt;/a&gt;.  It outlines their philosophy for managing "knowledge workers" (that is, folks like myself).  I found myself vigorously agreeing, which is particularly cool this time, since I'm going to work for them.&lt;br /&gt;&lt;br /&gt;Also, the scientific community has finally caught on to the fact that &lt;a href="http://www.nature.com/news/2005/051205/full/051205-1.html"&gt;colorblindness can be an evolutionary advantage&lt;/a&gt;.  I'm amazed that they're amazed; every other common human gene confers some advantage in some situation, even if (as with cystic fibrosis or sickle-cell anemia) it can be debilitating in others.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113389492759235473?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113389492759235473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113389492759235473' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113389492759235473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113389492759235473'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2005/12/does-man-who-made-shoes-own-you-clown.html' title='Does the man who made the shoes own you, clown?'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113347639812239555</id><published>2005-12-01T15:32:00.000-07:00</published><updated>2005-12-01T15:33:18.133-07:00</updated><title type='text'>Best present ideas ever</title><content type='html'>Now, for those of you sitting around wondering what to buy for me &amp;mdash; because I know that's just what y'all're doing &amp;mdash; remember that I don't generally do the commercial obligatory gifting days.&lt;br /&gt;&lt;br /&gt;However.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.makezine.com/blog/archive/2005/12/makes_mostly_under_100_gift_gu.html"&gt;This list of gift ideas&lt;/a&gt; pretty much nails my interests, with the obvious exception of photography.&lt;br /&gt;&lt;br /&gt;Note to self: subscribe to this magazine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113347639812239555?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113347639812239555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113347639812239555' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113347639812239555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113347639812239555'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2005/12/best-present-ideas-ever.html' title='Best present ideas ever'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113339710620453398</id><published>2005-11-30T17:26:00.000-07:00</published><updated>2005-11-30T17:32:53.546-07:00</updated><title type='text'>Psychic iCal; rough schedule</title><content type='html'>When I started at Choice in March of 2004, I entered a recurring event into iCal.&lt;br /&gt;&lt;br /&gt;It's called "MONEYS," and recurs every other Wednesday, when my paycheck appears.  (At the time, getting a regular paycheck was kind of a novel concept.  Freaking startups.)&lt;br /&gt;&lt;br /&gt;Rather than telling the event to repeat &lt;em&gt;forever&lt;/em&gt;, and littering my future calendar with paychecks, I entered a stop-date.  When I got to that date, I figured I'd extend it into the future if I were still at Choice.&lt;br /&gt;&lt;br /&gt;What stop date did I choose?  20 December 2005.&lt;br /&gt;When's my last day at Choice?  20 December 2005.&lt;br /&gt;&lt;br /&gt;Freaky.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, for all three people that read my blog, here's the schedule I'm working with right now.&lt;br /&gt;&lt;br /&gt;December: tidy up my affairs and start organizing (i.e. selling off) my stuff.&lt;br /&gt;20 December: last day at Choice.&lt;br /&gt;28ish December: apartment hunting trip to MV.&lt;br /&gt;1 January: temp housing kicks in, allowing me to visit it at the end of my trip.&lt;br /&gt;6 January: get all my stuff on the road to MV.&lt;br /&gt;8 January: move into temp housing.&lt;br /&gt;16 January: start new job.&lt;br /&gt;&lt;br /&gt;This is tentative; I'm still waiting on confirmation from the relocation guys.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113339710620453398?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113339710620453398/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113339710620453398' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113339710620453398'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113339710620453398'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2005/11/psychic-ical-rough-schedule.html' title='Psychic iCal; rough schedule'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113330782013797470</id><published>2005-11-29T16:42:00.000-07:00</published><updated>2005-11-29T16:43:40.146-07:00</updated><title type='text'>Well, that was sooner than expected</title><content type='html'>A number of scheduling issues came together today.  The timing was perfect.&lt;br /&gt;&lt;br /&gt;I submitted my resignation.&lt;br /&gt;&lt;br /&gt;I am free!&lt;br /&gt;&lt;br /&gt;(...well, in three weeks.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113330782013797470?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113330782013797470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113330782013797470' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113330782013797470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113330782013797470'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2005/11/well-that-was-sooner-than-expected.html' title='Well, that was sooner than expected'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113329111401908831</id><published>2005-11-29T11:47:00.000-07:00</published><updated>2005-11-29T12:07:22.613-07:00</updated><title type='text'>Growing up.</title><content type='html'>So, as I mentioned, I received a job offer from Google.&lt;br /&gt;&lt;br /&gt;It's in Mountain View, California, which is kind of a long commute from Tempe, so I'd have to relocate.  Before you ask, no, I don't actually know the job title or responsibilities yet.  Google is &amp;uuml;ber-secretive, and they also seem to let people get acclimated before choosing an area of focus.  Which is good.&lt;br /&gt;&lt;br /&gt;If I accept the job, it'll be the first time I've lived outside of Arizona, or moved anywhere without a social support network.  I think I'm ready for it, but it'll be interesting nonetheless.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As if to seal my decision, I arrived at work on Monday to find a performance bonus waiting for me.  I'm glad Choice likes me, but the bonus &amp;mdash; for expanding their customer data system to handle Canada, French, and the like &amp;mdash; amounts to 1/40&lt;sup&gt;th&lt;/sup&gt; of the pay increase Google's offered me.&lt;br /&gt;&lt;br /&gt;They also announced that we would receive an additional 24 hours of personal time next year.  "Personal time" is time you can take off, without pay, without getting fired.  This is in addition to my thoroughly meager vacation allotment (currently 1/3 of the starting allotment at Google), meaning that I can now take a week vacation at some point during the year, and still have three days of unpaid leave available.  Yay?  I'll just burn my (paid) sick time, thank you very much.&lt;br /&gt;&lt;br /&gt;I also received a small refrigerator magnet, for some reason.  It's like the "My mood today" magnets, in that it has a bunch of little pictures and a sliding indicator-box.  It's labeled "Today I need...."  I found some of the options particularly ironic:&lt;br /&gt;- "A day off!"  (Using my new unpaid leave!)&lt;br /&gt;- "Some respect!" or "A promotion!"  (Rub it in.)&lt;br /&gt;- "Overtime!" (Why would anyone &lt;em&gt;ever&lt;/em&gt; use this setting?!)&lt;br /&gt;- "A massage!" (There are two companies competing for me; the one that &lt;em&gt;doesn't&lt;/em&gt; offer massages gives me this magnet?!)&lt;br /&gt;&lt;br /&gt;Beyond the overt thoughtlessness of giving your employees an "I need things I can't have!" magnet, there's a practical issue: my cube contains no magnetic surfaces.  I nailed it to the wall.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, it's looking like I'm going to exercise a different kind of unpaid leave.  The kind for which you give notice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113329111401908831?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113329111401908831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113329111401908831' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113329111401908831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113329111401908831'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2005/11/growing-up.html' title='Growing up.'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113297605113050063</id><published>2005-11-25T20:32:00.000-07:00</published><updated>2005-11-25T20:34:11.140-07:00</updated><title type='text'>I R JOB</title><content type='html'>So, to put speculation to rest: I have received a job offer from Google.&lt;br /&gt;&lt;br /&gt;The numbers are smaller than I wanted.  However, it's fricking &lt;em&gt;Google&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;I'll keep everyone posted as things develop.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113297605113050063?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113297605113050063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113297605113050063' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113297605113050063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113297605113050063'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2005/11/i-r-job.html' title='I R JOB'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113244786855211588</id><published>2005-11-19T17:20:00.000-07:00</published><updated>2005-11-19T17:51:08.603-07:00</updated><title type='text'>Birthday; frustrations with electronics stores and the Democrats</title><content type='html'>&lt;code&gt;age++;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Yes, I have completed another year.&lt;br /&gt;&lt;br /&gt;Went out today in the hopes of adding more sensors to the robot.  While I work on convincing myself to strap a camera to the thing, I'm looking for some low-cost options, like simple light sensors.  So what'd I do?  I went to electronics stores.&lt;br /&gt;&lt;br /&gt;Or so I thought.  Fry's had neither photoresistors, nor the connectors I needed.  Fry's, the store that drove TechAmerica out of business!  RadioShack had photoresistors, but nothing else I needed.  (I have no idea what it is RadioShack sells these days.  Remote-controlled cars?)&lt;br /&gt;&lt;br /&gt;Anyway.  I was listening to NPR today for my daily dose of Liberal Bias&amp;trade;, and was reminded of some of the reasons why I'm so frustrated with the "political opposition" in this country.&lt;br /&gt;&lt;br /&gt;Once again, Bush delivered a speech justifying our continued presence in Iraq by linking it to the "War on Terror."  Why the hell are we still letting him get away with this?  Even the daftest of neocons must recognize that Iraq is an &lt;em&gt;entirely separate issue.&lt;/em&gt;  Why weren't a dozen senators immediately leaping over themselves to point out this idiocy?  Because the Republicans are expected to fall in line behind their party chief, and the Democrats are spineless.&lt;br /&gt;&lt;br /&gt;And, of course, criticizing the war effort "emboldens our enemies."  I'm tired and frightened of this sentiment.  Political opposition and discourse &amp;mdash; or what passes for it in this country &amp;mdash; emboldens our enemies?  Hm...is that because they "hate freedom," and political discourse is one of our fundamental freedoms?  Frankly, I think it might cut down on hatred of this country if we could be seen as something other than a unified mass of greedy fundamentalist capitalists.  But does the supposed opposition party attack this notion?  No.  It goes like this:&lt;br /&gt;&lt;br /&gt;Realist: "The war, it does not go so well."&lt;br /&gt;Neocon: "Saying that gives power to al Qaeda, like in Highlander, where they suck soul energy out of the decapitated body of the other Immortal."&lt;br /&gt;Realist, now with tail between legs: "I HEART FREEDOM."&lt;br /&gt;&lt;br /&gt;Sigh.  A more appropriate response would be "Any high school debate class in the country would recognize that as an Appeal  to Consequences of a Belief at best, and a strawman at worst."  Or, in less civil circles, "Oh, hey, that's the old &lt;em&gt;ad I'm-a-fucking-idiot&lt;/em&gt; argument."&lt;br /&gt;&lt;br /&gt;And, of course, the neocons in this country presume to have a monopoly on moral values.  Nevermind for the moment that these are the folks that want to tell you who you can marry, that want to abolish the minimum wage and send your job to India, and who count among their ranks formerly-fervent segregationalists.  Let's ignore that for the moment, and get to a more topical issue:&lt;br /&gt;&lt;br /&gt;When it came to light that the US was torturing inmates in Iraq, running secret prisons and interrogation centers in countries with poor human rights records, and the like, what happened?  The neocons, turning their Jesus-powered million-candlepower spotlight of "moral values" onto the issue, immediately banded together as one voice to do &lt;em&gt;absolutely nucking fothing.&lt;/em&gt;  No bill condemning the use of torture.  Many Republican congressmen came out in &lt;em&gt;support&lt;/em&gt; of the methods, insisting that we could only win our War on Terror if the terrorists couldn't be sure how far we would go in interrogations.&lt;br /&gt;&lt;br /&gt;In a word: &lt;em&gt;No.&lt;/em&gt;  This is not what we do in this country, and this is not what our anointed representatives do abroad.  It is fundamentally contrary to the values on which this country was founded.  If the richest, most technologically advanced nation on Earth cannot win a war without electrocuting the genitals of some terrorists, this is a problem.&lt;br /&gt;&lt;br /&gt;And I'm sure our overtures to Freedom look pretty fucking anemic in light of this.&lt;br /&gt;&lt;br /&gt;Fortunately, in response to the massive anti-torture "Eh" that arose from the right side of the aisle, the Democrats banded together to issue an "Eh" of their own.  I have not heard a single member of Congress come forward and plainly state "Torture is wrong, it is not what we do in this country."  It would have been an obvious moral crowbar in the 2004 Presidential Election.  Sadly, the closest thing I've heard isn't even from the left side: it's from McCain, who has obvious motives for disliking torture.  (I gain more respect for that guy every time I hear him talk.  If only he weren't such a social conservative.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It's conditions like this that make me think about going into politics.  We've got the Jesus Party, and the Unspecified Platform Party.  They're either espousing the ideals of their religion and ideology, or they're not espousing anything in particular.  This country needs a good shot of constitutional idealism, right in the arm.&lt;br /&gt;&lt;br /&gt;This is a nation founded on freedom, sure, but it's also a nation founded on integrity, free flow of information, personal responsibility, secularism &amp;mdash; overall, a nation founded on, and in the pursuit of, human enlightenment.  Everyone seems to have forgotten this in their race to cover their cars with flags and ribbons.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113244786855211588?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113244786855211588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113244786855211588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113244786855211588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113244786855211588'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2005/11/birthday-frustrations-with-electronics.html' title='Birthday; frustrations with electronics stores and the Democrats'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113216831258511942</id><published>2005-11-16T11:28:00.000-07:00</published><updated>2005-11-16T12:11:52.596-07:00</updated><title type='text'>Mountain View wrapup</title><content type='html'>I've been back in Phoenix for a couple days recharging.  Here's the wrapup on the Mountain View trip.&lt;br /&gt;&lt;br /&gt;Click any photo to see a larger version or comment on it specifically.&lt;br /&gt;&lt;br /&gt;First, Mountain View is pretty.&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/63954408/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/25/63954408_8a413345f2.jpg" width="500" height="375" alt="Leaves" /&gt;&lt;/a&gt;&lt;br /&gt;Look!  Pretty leaves!  And they do that EVERY YEAR!&lt;br /&gt;&lt;br /&gt;On Saturday I went to the Laughing Squid 10th Anniversary party.  It was sort of web-geeks-meet-Burning-Man.&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/63954409/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/26/63954409_13ea1c3e34.jpg" width="320" height="240" alt="Laughing Squid 10th: Exterior" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/63954411/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/24/63954411_dc5a434530.jpg" width="320" height="240" alt="Laughing Squid 10th: Interior" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hung out with a bunch of folks from Yahoo!, a couple Apple-types, and at least one Googler, but the highlight was most certainly Ouchy the Clown, who was spinning the best of Burl Ives and other modern hits.&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/63954412/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/25/63954412_516454c16d.jpg" width="320" height="240" alt="Laughing Squid 10th: Ouchy the Clown" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There were a number of exhibits there that clearly came from people with too much spare time.  My favorite, which was too dark for me to photograph, was a center-pivoted spinning rod with a seat on each end.  Each rider, facing in toward the center, could pedal to make the whole contraption spin around.  Fuuuuun.  Jason served as an excellent counterweight.&lt;br /&gt;&lt;br /&gt;At one point, we tried to pass a beer to one of the riders.  After whooshing past us several times, he finally made contact with the beer &amp;mdash; which, in devout observation of Newton's laws, shot off tangentially and beered the audience.&lt;br /&gt;&lt;br /&gt;See also: the Photoboof!&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/15432506@N00/63954413/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/35/63954413_9f850a7dbf.jpg" width="320" height="240" alt="Laughing Squid 10th: Photoboof!" /&gt;&lt;/a&gt;&lt;br /&gt;This was a homemade photobooth...err...boof, which spit out free pictures of its inhabitants.  I did not use the Photoboof!, because I wasn't sure where else the pictures would end up.  You can't trust those web developers.&lt;br /&gt;&lt;br /&gt;On the home front, the robot has learned to navigate hallways and hookah lounges with surprising grace, considering the simplicity of the program.  It's being controlled entirely by its motor-control board &amp;mdash; the equivalent of a chicken with its head cut off, running only on base neural reflexes.  I'm working to wring every last drop of smarts out of this simple system, which, among other things, means I get to rewrite the abysmal compiler and library supplied by its manufacturer.  Sigh.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113216831258511942?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113216831258511942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113216831258511942' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113216831258511942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113216831258511942'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2005/11/mountain-view-wrapup.html' title='Mountain View wrapup'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113176131522538784</id><published>2005-11-11T18:48:00.000-07:00</published><updated>2005-11-11T19:09:55.836-07:00</updated><title type='text'>Mountain View; Google vs. Microsoft</title><content type='html'>Once again, I'm at the Red Rock Coffee Company in downtown Mountain View (at Castro and Unlabelled Street #48, which Google Maps suggests may be called Villa).  I'm outside, where the air is brisk, the leaves are turning, and the traffic is...well, shitty.&lt;br /&gt;&lt;br /&gt;But I'm on foot, so it's okay.&lt;br /&gt;&lt;br /&gt;Mountain View has its perks.  I'm at this great coffee shop, across the street from (clockwise from left) an excellent Indian restaurant, a great brewery/burger joint, and one of the best Thai places in the area (so I'm told).  There are also an absurd number of tech companies here, judging from the commuter shuttles that keep passing by.  Microsoft was the most recent, which reminded me to blog.&lt;br /&gt;&lt;br /&gt;Like last time, I spent a solid five hours in my Google interview today.  I was very comfortable with everyone, which, with any luck, showed through in my responses.  I think I did well, but I really have no way of knowing.  At the very least, I had fun.&lt;br /&gt;&lt;br /&gt;I returned home to find an "e-Interview" email from Microsoft.  Now, I expected to hear from Microsoft &amp;mdash; &lt;a href="http://www.livejournal.com/~mge/"&gt;mge&lt;/a&gt; sent them my name about a week back &amp;mdash; but I found the contents of the email indicative.&lt;br /&gt;&lt;br /&gt;First of all, I can't decide whether "e-Interview" should be pronounced "EEHN-turr-vyoo" or "EIN-turr-vyoo."  I lean toward the former, but that's probably just because I like saying EEHN.&lt;br /&gt;&lt;br /&gt;But moving beyond issues of pronunciation, the email contained a curt greeting followed by a form for me to fill out.  Not, like, "How should we contact you with more information?" either.  No, this contained 11 short-answer questions, ranging from "How confident are you in your ability to write C/C++ without a reference?" to some pretty specific coding methods questions.&lt;br /&gt;&lt;br /&gt;Now, I realize I'm but a Southern boy, but I always learned that peppering someone with questions was an awfully rude way to introduce one's self.&lt;br /&gt;&lt;br /&gt;To explain why I'm taken aback by this, let's step back for a moment and look at the equivalent communication from Google.  The process went like this:&lt;br /&gt;1. Google requested my r&amp;eacute;sum&amp;eacute;.  I supplied it.&lt;br /&gt;2. Someone from Google called me and told me about what they were looking for, gave me a synopsis of how life at Google works, and offered to answer any questions I might have.  Later, he collected info on where I felt my strengths lied, to better route my further interviews.&lt;br /&gt;3. He called back a few days later to set up a phone interview.&lt;br /&gt;&lt;br /&gt;By comparison, the email from Microsoft seems awfully presumptuous.  It's as though they're assuming I want to work there &amp;mdash; they made no effort to convince me that MS was where I should be.  I've seen the questionnaire on which my name was provided, and it asks this:&lt;br /&gt;&lt;br /&gt;"Is there anyone else in your set of peers or friends who you would like to recommend as a great candidate for Software Development positions at Microsoft?"&lt;br /&gt;&lt;br /&gt;So, basically, anyone that is recommended as a great candidate obviously wants to work at Microsoft.  I did not send in my r&amp;eacute;sum&amp;eacute; unsolicited, or even solicit this contact through a friend.  No &amp;mdash; I was simply recommended.&lt;br /&gt;&lt;br /&gt;I'm trying to decide how to respond.  Compared to my correspondence with Google, this seems awfully brusque.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113176131522538784?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113176131522538784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113176131522538784' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113176131522538784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113176131522538784'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2005/11/mountain-view-google-vs-microsoft.html' title='Mountain View; Google vs. Microsoft'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113167450305164759</id><published>2005-11-10T18:49:00.000-07:00</published><updated>2005-11-10T19:01:52.776-07:00</updated><title type='text'>Upon the rails, among the weeds</title><content type='html'>I'm back in Mountain View.  It's colder this time.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.cliff.biffle.org/blog-images/san-jose-sun.jpg" width="240" height="320"/&gt;&lt;br /&gt;(The orange shiny thing in the distance is the ocean.  I'm not used to this shit yet.)&lt;br /&gt;&lt;br /&gt;For the first time, I slept on the airplane.&lt;br /&gt;&lt;br /&gt;Geek that I am, I brought the robot (which was working) to entertain myself this weekend.  TSA managed to, um, damage parts of it.  I am not amused.  Fortunately, the repairs are straightforward.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113167450305164759?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113167450305164759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113167450305164759' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113167450305164759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113167450305164759'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2005/11/upon-rails-among-weeds.html' title='Upon the rails, among the weeds'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113147805218353343</id><published>2005-11-08T12:11:00.000-07:00</published><updated>2005-11-08T13:10:47.366-07:00</updated><title type='text'>It seems my robot is Jewish.</title><content type='html'>It's Tuesday, and we all know what that means: I've finished my work for this week.  So, I've been doing math.&lt;br /&gt;&lt;br /&gt;Specifically, robot math.  (And no, I don't mean &lt;em&gt;ROBOT + ROBOT = EVIL ROBOT ARMY&lt;/em&gt;.)&lt;br /&gt;&lt;br /&gt;You may remember my &lt;a href="http://cliffle.blogspot.com/2005/11/resurrecting-ideas-from-14-year-old.html"&gt;holonomic drive&lt;/a&gt; design.  It can move in any direction without turning, sure, but I knew that its maximum speed would be different in different directions, in the way the speed of light isn't.&lt;br /&gt;&lt;br /&gt;My reasoning was thus: a wheel can exert force best in the direction it's driven &amp;mdash; in a car, for example, that'd be "forward or backwards."  Since the omni-wheels on the robot are frequently dragged side-to-side by the other wheels, as well, they can't always give their all.  The robot can exert the most force &amp;mdash; and thus move fastest, barring other influences &amp;mdash; when any two of its wheels are moving at top speed.  (If all three move at top speed, it spins in place.)&lt;br /&gt;&lt;br /&gt;I tend to think visually, so I wanted to get this idea into graph form.  The visual representation is simple: for each direction from a central point, shade outwards according to how fast the bot can move in that direction.  (Mathematically speaking, this is a polar inequality bounded by a set of three linear equations, one for each wheel.)&lt;br /&gt;&lt;br /&gt;Well, here's the amusing bit:&lt;br /&gt;&lt;img src="http://www.cliff.biffle.org/blog-images/holonomic-velocity-pattern.png"  width="307" height="306"/&gt;&lt;br /&gt;&lt;br /&gt;The &lt;em&gt;solution&lt;/em&gt; &amp;mdash; the maximum speed, given limits on the speed of each wheel &amp;mdash; is the shaded hexagon.  But boy, was it odd to see my calculator slowly drawing a shield-of-David before it shaded the center.&lt;br /&gt;&lt;br /&gt;The wheels are indicated by the fat dots around the circle there.  So, if you note the locations of the points on the hexagon, you'll see my suspicion was correct: the robot moves fastest when being driven &lt;em&gt;toward&lt;/em&gt; or &lt;em&gt;away from&lt;/em&gt; any one wheel, meaning that wheel is stationary while the other two spin at top speed.&lt;br /&gt;&lt;br /&gt;Yay!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113147805218353343?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113147805218353343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113147805218353343' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113147805218353343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113147805218353343'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2005/11/it-seems-my-robot-is-jewish.html' title='It seems my robot is Jewish.'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113130779029900217</id><published>2005-11-06T13:03:00.000-07:00</published><updated>2005-11-06T13:34:10.483-07:00</updated><title type='text'>Human textual behavior</title><content type='html'>As noted on my old blog, I was asked to submit comments on a prepublication copy of &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0321349601/ref=nosim/none0b69"&gt;Java Concurrency in Practice&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Every Java programmer should own a copy of this book.  It's that important.  I'm pretty familiar with the inner workings of the virtual machine and its memory model, but I'm still learning a lot from this marvelous book.&lt;br /&gt;&lt;br /&gt;The book also states, clearly and simply, principles that I've had to derive by hand over the past fifteen years or so.&lt;br /&gt;&lt;br /&gt;If you clicked on the link, you'll note that the book's not yet available, because we haven't finished polishing it.  I just submitted my first batch of comments.  Now, those of you who've seen me loosed on another's writing know what the authors are in for here.  My standards are high.  (Though, before I get the snide comments, I don't enforce them on my own blogging.)&lt;br /&gt;&lt;br /&gt;Fortunately, the authors dug it:&lt;br /&gt;&lt;blockquote&gt;Truly excellent comments.  I will tell the editor to push back the pub date some more :)  Keep 'em coming!&lt;br /&gt;&lt;br /&gt;Material wealth and fame will be yours for this endeavor.  (OK, a free book and a mention therein.)  And my undying gratitude.  And all the beer you can drink next I see you.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;*beams*&lt;br /&gt;&lt;br /&gt;The ironic thing here?  I still have to argue with marketing at work about where the commas go, in addition to things like verb number agreement.  I'm a programmer, after all, and obviously don't know what I'm talking about.  Perhaps I should point this out to them. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113130779029900217?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113130779029900217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113130779029900217' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113130779029900217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113130779029900217'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2005/11/human-textual-behavior.html' title='Human textual behavior'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113114229736396744</id><published>2005-11-04T14:50:00.000-07:00</published><updated>2005-11-04T15:20:44.230-07:00</updated><title type='text'>Resurrecting ideas from a 14-year-old journal: the Holonomic Drive</title><content type='html'>When I was about 10, I realized that I should keep a journal of my ideas.&lt;br /&gt;&lt;br /&gt;Mostly, I started doing this because other people were having the same ideas.  Many of the things I was sketching out in class were appearing in Popular Science and the like a few months later, so it seemed I was on to something(s).&lt;br /&gt;&lt;br /&gt;Many of the ideas were robotics-related.  I'd been tinkering on mobile robotics off and on since I was about 8, thanks to my techie parents.&lt;br /&gt;&lt;br /&gt;Around age 11, I started to think about alternative locomotive schemes.  Most robots I had encountered were driven by wheels, obviously inspired by a car or wheelchair.  As anyone who's driven a car knows, the wheel scheme limits your mobility (three-point turns, anyone?).  This is even &lt;em&gt;more&lt;/em&gt; painfully obvious to anyone bound to a wheelchair.&lt;br /&gt;&lt;br /&gt;I had seem walking robots.  Hell, I had &lt;em&gt;built&lt;/em&gt; walking robots; the robotic spider I built out of Legos in sixth grade was slow and fragile, but it freaked the hell out of the girls.  I learned a lot from it &amp;mdash; for example, I learned that building creepy robots is a great way to put off getting laid until college, if not later.  But more importantly, I learned that man-made legs are complex, error-prone, and fragile.  (For the other armchair roboticists, I used a pantograph leg mechanism with overlapping sweep and tripod gait, each with two degrees of freedom.  Not that I knew any of those words.)&lt;br /&gt;&lt;br /&gt;So, during summer school, I came up with a number of alternative schemes.  One (which I called the Trinity Motor) involved special wheels which had smaller wheels, pointing off to the sides, around the rim.  Here's a cleaned-up version of my original sketch:&lt;br /&gt;&lt;img src="http://www.cliff.biffle.org/blog-images/old-omni.png" width="184" height="184"/&gt;&lt;br /&gt;&lt;br /&gt;Envision the axle coming out of your monitor, through that hole in the center.  The whole assembly can rotate clockwise/counterclockwise (rolling to the left or right).  However, if you grab the axle and push it into your screen, or pull it out of your screen, the little wheels on the edges roll freely.  The key here is that the wheel can push along one axis (left/right, here) but &lt;em&gt;be pushed freely&lt;/em&gt; on another (in/out of your monitor).&lt;br /&gt;&lt;br /&gt;So, then you gang three of these up, 120 degrees apart around a circle, and you get this:&lt;br /&gt;&lt;img src="http://www.cliff.biffle.org/blog-images/omni-holonomic.png" width="300" height="300"/&gt;&lt;br /&gt;In this diagram, two wheels are being turned by motors (in the directions of the colored arrow) while the third wheel is being pulled along freely on its little edge-wheels.&lt;br /&gt;&lt;br /&gt;This type of drive can move freely in any direction (well, except into the air), and can even rotate while it moves: if each wheel in the diagram spun a little more counter-clockwise (or a little less clockwise), the whole body would turn as it moved.&lt;br /&gt;&lt;br /&gt;This was before the age of cheap and ubiquitous computing power, so I even designed a special joystick to control the base, doing the calculations with a series of interlinked levers.  (I now understand that the calculation is the "vector dot-product.")  The main problem I could see is the bumpy ride: as the wheel turns, it would go &lt;em&gt;thunk thunk thunk&lt;/em&gt; from edge-wheel to edge-wheel.  This can be reduced by putting more, smaller wheels on the edge, but that struck me as less-than-ideal.&lt;br /&gt;&lt;br /&gt;Anyway.  Shortly thereafter, I discovered girls, and my productivity tanked.  Fortunately, however, someone in the past &lt;em&gt;n&lt;/em&gt; years has had the same idea, and &lt;em&gt;fixed the wheel problem!&lt;/em&gt;&lt;br /&gt;&lt;a href="http://acroname.com/robotics/parts/R97-4CM-POLY-ROLLER.jpg"&gt;&lt;img src="http://acroname.com/robotics/parts/R97-4CM-POLY-ROLLER.jpg" width="320" height="320" border="1"/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Clever!&lt;/em&gt; I exclaimed.  &lt;em&gt;Two&lt;/em&gt; of my wheels, bonded back to back, so that a roller is always touching the ground!&lt;br /&gt;&lt;br /&gt;In the mainstream robotics community, these are called &lt;em&gt;omni-wheels&lt;/em&gt;, and the drivetrain design is known as a &lt;em&gt;holonomic&lt;/em&gt; drive &amp;mdash; a fancy math word that means it can rotate in place, move in any direction, or do both at the same time.&lt;br /&gt;&lt;br /&gt;My original prototype used scavenged rollerblade wheels on wire around a cut-up lawnmower wheel.  These prebuilt wheels are not only higher quality, but at $16, they're cheaper than building it myself.  I think it's time I return to robotics.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113114229736396744?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113114229736396744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113114229736396744' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113114229736396744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113114229736396744'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2005/11/resurrecting-ideas-from-14-year-old.html' title='Resurrecting ideas from a 14-year-old journal: the Holonomic Drive'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-18655535.post-113113792955719236</id><published>2005-11-04T13:53:00.000-07:00</published><updated>2005-11-04T13:58:49.563-07:00</updated><title type='text'>Who cleans the champagne off the front of the boat?</title><content type='html'>Welcome to my new blog.  I'm tired of separating my social, scientific, and techie stuff; I'm merging everything into one place.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/18655535-113113792955719236?l=cliffle.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cliffle.blogspot.com/feeds/113113792955719236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=18655535&amp;postID=113113792955719236' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113113792955719236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/18655535/posts/default/113113792955719236'/><link rel='alternate' type='text/html' href='http://cliffle.blogspot.com/2005/11/who-cleans-champagne-off-front-of-boat.html' title='Who cleans the champagne off the front of the boat?'/><author><name>Cliff L. Biffle</name><uri>http://www.blogger.com/profile/16279048507944234081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
