a brilliant tweetstorm on hiring/onboarding

@patio11 is worth following on twitter, but in particular recently he posted this tweetstorm talking about the hiring and onboarding process that really struck me as being worth a read:

If there is a talent shortage, it is of people who know how to run a hiring process like it is a business.

— Patrick McKenzie (@patio11) August 31, 2016

I know you like *your* company's hiring process, but your peers'… if your sales team executed like that, you'd fire them in two weeks.

— Patrick McKenzie (@patio11) August 31, 2016

"How many leads did you talk to today?" "I dunno." "Guess for me." "Three? Could have been four."

— Patrick McKenzie (@patio11) August 31, 2016

"What's the status of this lead?" "Oh I DQed them." "Why?" "Culture fit." "What does that mean?" "Fit. For our culture."

— Patrick McKenzie (@patio11) August 31, 2016

"When's the last time you talked to Bob?" "Yesterday." "Show me the email." *shows email from 3 weeks ago promising a callback*

— Patrick McKenzie (@patio11) August 31, 2016

"Where's sell sheet vs Google?" "Our what?" "When they're considering us and Google, what tested message do we repeat?" "I wing it, dawg."

— Patrick McKenzie (@patio11) August 31, 2016

"Suppose an engineer intros you to a warm prospect. What's next action?" "Thank them." "And then?" "I'm thinking call w/ no script or CTA."

— Patrick McKenzie (@patio11) August 31, 2016

"What's our conversion rate?" "What's that word mean?" "How many leads did we get this quarter?" "Ooh, quarter means three months."

— Patrick McKenzie (@patio11) August 31, 2016

"Describe to me how we developed our sales process." "We copied a ten year old blog post repeating Google's third-hand." "Why?" "Google's!"

— Patrick McKenzie (@patio11) August 31, 2016

"Tell me how we do lead nurturing here." "What's that?" "Even if they're not ready to take a job we send them something, right?" "Lol why."

— Patrick McKenzie (@patio11) August 31, 2016

"You still working Amy?" "Yep." "Who can know that she trusts who we can ask to talk us up to Amy?" "That's both useless and impossible."

— Patrick McKenzie (@patio11) August 31, 2016

"How's our pricing compare to competitors?" "Better than market." "I know we tell people that but is. It. True." "Why does it matter?"

— Patrick McKenzie (@patio11) August 31, 2016

"So how did that sales call go?" "I asked an engineer to take it." "… You have a plan." "He flaked. Prospect was alone for an hour." /2

— Patrick McKenzie (@patio11) August 31, 2016

"JESUS CHRIST." "What?" "How do we salvage that prospect?" "He got pissy. Poor culture fit. DQed." "How do we never do this again?" "Why?"

— Patrick McKenzie (@patio11) August 31, 2016

"How'd last call go?" "Crap lead man." "OK, so how would you rate your performance on selling?" "Oh I only do that when excited about lead."

— Patrick McKenzie (@patio11) August 31, 2016

"What's customers purchasing process look like?" "Is that a trick? They use our sales process." "… OK. What's that look like?" "Wing it!"

— Patrick McKenzie (@patio11) August 31, 2016

"Who's the leads economic buyer?" "The lead. Duh." "They make all decisions." "Of course." "They ever ask anyone for input?" "Prob no. Why?"

— Patrick McKenzie (@patio11) August 31, 2016

"What were the deals you were happiest about last year at time of close?" "X, Y, Z." "Which is best one year later?" "What do you mean?"

— Patrick McKenzie (@patio11) August 31, 2016

"Explain to me how you qualify." "I've got hard DQs and soft DQs." "Name a hard DQ." "None exist." "A soft DQ." "Lead's school is subpar."

— Patrick McKenzie (@patio11) August 31, 2016

"What's the difference between a soft DQ and a hard DQ?" "Oh, a DQ is a DQ, unless I've got a vibe." "A vibe." "You know, like passion."

— Patrick McKenzie (@patio11) August 31, 2016

"Where do we source?" "Industry standard is to buy leads from 1 provider and scrape 1 free one." "And where do WE source?" "Like I said."

— Patrick McKenzie (@patio11) August 31, 2016

"What's your job here?" "Protecting the company from bad sales." "… Explain." "One bad deal closed worse than 100 good ones missed."

— Patrick McKenzie (@patio11) August 31, 2016

"Man we lucked out on X." "Yeah." "Where'd they hear about us." "Dunno." "Freebie: it was that blog post from Bob in DevOps." "Cool." /2

— Patrick McKenzie (@patio11) August 31, 2016

"So what are you going to ask Bob in DevOps to do for us?" "I don't follow." "How can we use Bob to accomplish our goals?" "Not on our team"

— Patrick McKenzie (@patio11) August 31, 2016

"I've got good news for you: Bob is writing another post." "Cool." "What are you going to ask Bob to say in that post?" "Uh I don't DevOps."

— Patrick McKenzie (@patio11) August 31, 2016

"Why'd you DQ this lead?" "Spelling mistake in an email to me." "… Explain." "Well that says 'careless.' They know how important I am."

— Patrick McKenzie (@patio11) August 31, 2016

"Why'd you DQ this lead?" "Spelling mistake in an email to me." "… Explain." "Well that says 'careless.' They know how important I am."

— Patrick McKenzie (@patio11) August 31, 2016

"What do we have that Competitor X doesn't have?" "Culture." "Imagine you worked for X and question reversed. Answer?" "Hmm, culture."

— Patrick McKenzie (@patio11) August 31, 2016

"What's an ask you could make of any team in company that would make your sales job easier?" "Dunno." "Make one up." "We could use Ruby?" /2

— Patrick McKenzie (@patio11) August 31, 2016

"GREAT. OK, who do we have to ask internally to start using Ruby?" "Dunno." "Probably VPEng. How would we ask him to?" "Not my job to."

— Patrick McKenzie (@patio11) August 31, 2016

"What happened to Susan?" "Went with a competitor." "Which one?" "She wouldn't tell me." "… So which one?" "What so we hire private eye?"

— Patrick McKenzie (@patio11) August 31, 2016

"Susan went with a competitor." "Sucks, yeah." "So when are you following up with Susan?" "Did you not hear 'went with a competitor' boss?"

— Patrick McKenzie (@patio11) August 31, 2016

"But… what if Susan isn't happy with the competitor?" "Good. She was disloyal. No culture fit." "Why'd she owe us loyalty?" "Well DUH."

— Patrick McKenzie (@patio11) August 31, 2016

"Who out-executes us at sales?" "Competitor X." "Why?" "They're Internet famous." "What does that mean?" "They have a blog." "Do we?" "No."

— Patrick McKenzie (@patio11) August 31, 2016

"So they're out-executing us, on something important, because they have a blog." "Yeah." "So when are you starting to blog?" "I'm busy."

— Patrick McKenzie (@patio11) August 31, 2016

"Why should people join us?" "The mission!" "Who articulates the mission best?" "The CEO." "Do we have her talk to candidates?" "Lol no."

— Patrick McKenzie (@patio11) August 31, 2016

"Why not?" "Because she's the CEO and has important work to do." "OK but we have video of her talking right." "Yeah." "Do we send it?" "Why"

— Patrick McKenzie (@patio11) August 31, 2016

"Explain 'equity' to someone who has never heard it before." *does* "Explain why we use NQSOs to 10 year veteran." *same explanation*

— Patrick McKenzie (@patio11) August 31, 2016

"So you're in the biz of convincing highly mathematical individuals to trade stock for money." "Yep." "How much is our stock worth?" "Lots."

— Patrick McKenzie (@patio11) August 31, 2016

"Your answer on valuation is 'lots.'" "Well 'not lots' clearly wouldn't get it done right?"

— Patrick McKenzie (@patio11) August 31, 2016

"Could we give devs well-designed Excel spreadsheets with valuation calculators." "A good idea." "Do so." "I don't design/Excel sorry."

— Patrick McKenzie (@patio11) August 31, 2016

"You don't do design or Excel." "No." "OK, let me take another tact: who in a software company does design or Excel?" "Lol nobody."

— Patrick McKenzie (@patio11) August 31, 2016

"What we spend on outsourced lead gen last quarter?" "$0." "What do we pay recruiters?" "$25k a placement." "How many placements?" "Ten."

— Patrick McKenzie (@patio11) August 31, 2016

"OK, so imagine you had a $250k budget for making stuff." "They'd never give me a budget." "Play along. What would you make?" "Sounds risky"

— Patrick McKenzie (@patio11) August 31, 2016

"OK, I get that. Imagine its your hated rival at Competitor X. What could *they* get made for $250k?" "Dunno." "How many books/movies/apps?"

— Patrick McKenzie (@patio11) August 31, 2016

"Dunno." "What's a book cost to make?" "Dunno." "I assert it can be done for $50k." "Sounds unlikely." "Can you turn book into candidates?"

— Patrick McKenzie (@patio11) August 31, 2016

"I can't imagine devs read books." "OK, do they use websites?" "Yeah." "Can you get a website made?" "We have a jobs page." "Think bigger."

— Patrick McKenzie (@patio11) August 31, 2016

"Bigger than a jobs page?" "Yeah." "Like, a jobs *listing* page?" "Like something that an engineer outside our company would enjoy using."

— Patrick McKenzie (@patio11) August 31, 2016

"I don't know, that sounds like a Project." "Ever asked any dev in this company what they did over a weekend?" "Apps or some shit I dunno."

— Patrick McKenzie (@patio11) August 31, 2016

"Could your hated rival, with $250k, possibly cause an app that devs would use to exist?" "Buy dev time? Lol. Impossible right."

— Patrick McKenzie (@patio11) August 31, 2016

As the CEO of a company dedicated to improving the technical hiring process, he is to some degree talking his own book here, but his points are incredibly valid. Hiring is fundamentally a sales process, and yet at most companies it is run by people who do not understand that (or, typically, anything about the roles they’re trying to fill, but that’s a rant for a different day).

pc.o updates

For those of you that use services on perilouscodpiece.org, there’ve been some updates:

  • Debian 6 -> 7 OS upgrade
  • Disk space doubled, to ~40gb
  • WordPress and TT-RSS updated to latest revisions

As always, please let me know if you see odd or unexpected behavior. For those of you that don’t use pc.o, if you’re interested let me know; I’m generally pretty open to friends using the machine.

wordpress admin note: w3 total cache and wordpress update process

I’m not 100% sure it’s the root cause, but it seems like having the W3 Total Cache plugin enabled messes with upgrades to 3.3/3.3.1. At least, when I had it enabled upgrades would present a blank screen in the admin UI, and disabling it allowed them to proceed as normal. (On the whole I am happy with W3TC for performance reasons; this host is a fairly small Xen-hosted virtualized environment so it’s not the brawniest machine ever.)

developer half-life

“Developer half-life” is a rough term for how long, on average, it takes for someone at that company to burn out and quit (technically, for the quit-rate for a given cohort to be 50%). It’s possible to get salary data from places like glassdoor, salary.com, etc. but sometimes I wish there was a way to get this metric too. During my tenure at NYTD it seemed like the senior engineering people tended to last two, maybe three years before moving on to greener, less stressful pastures. I made it to about two and a half years. Some shops it’s more, some places it’s less, but it seems there are constants of organizational behavior that are relatively invariant and add up to a “fuck you, I’m out” at predictable intervals for everyone in a given cohort. Like radioactive decay, it’s a random process that still has a certain mechanistic predictability to it in aggregate (really hoping I’m remembering the science right there; it’s been a long time). I sometimes wonder what it might be like to work at a place where people reach “escape velocity” and orbit forever without tracing an eventual bright trail back down the gravity well of demoralization.

(I should footnote here that I’m reasonably happy with my current gig. The only thing that bugs me about the company doesn’t have much to do with them, just that we’re in a soulless office park with no particularly good lunch options around. On the other hand, I’ll take “management I don’t want to throw off the 8th floor” over “the cafeteria serves excellent sushi” any day of the week.)

Conversely, as engineering management, it pays huge dividends to keep an eye on your average tenure because recruiters are screamingly expensive and finding good people is hard — all the moreso if you have a reputation (*cough* Zynga. EA. ShitiGroup.) for being a meatgrinder for technical talent — to say nothing of the harder to quantify long-term benefits of organization continuity. I haven’t progressed far enough up the ladder to be managing managers yet, but if/when I do, you can bet I’ll notice if turnover under manager A is 0% for a given year and 60% for manager B.

Codermetrics sounds like old bullshit in new form

So O’Reilly is publishing a new book, called Codermetrics. The sample first chapter is linked from the product page there. I read over that and some initial thoughts made their way into irc:

 3:08 PM < volkadav> haha so there's some new oreilly 
book called Codermetrics
 3:08 PM < volkadav> which appears to be some sort of 
"we can track and quantify people and yay!!!" for the 
manager set
 3:08 PM < volkadav> i read the first chapter online 
(sample via ora's website)
 3:09 PM < volkadav> it's depressing how well it fits 
into the stereotypes i have of idiot frat boy managers
 3:09 PM < volkadav> a) lots of sports analogies
 3:09 PM <@BSDCat> stop.
 3:09 PM < volkadav> b) desperate attempts to 
quantify the unquantifiable
 3:09 PM <@BSDCat> oh please let there not be more 
than a+b
 3:10 PM < volkadav> c) main example [given in the 
first chapter] is of a team that had a series of serious 
setbacks so OF COURSE it's the fault of the two junior 
members who quit after the first year
 3:10 PM < volkadav> with METRICS and NUMBERS to prove
it couldn't POSSIBLY be management's fault
 3:10 PM < volkadav> HURRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
RRRRRRRRRRRRRRRR
 3:11 PM < volkadav> sigh.
 3:11 PM < volkadav> i mean, yes, sure it's great that
you hired people better able to answer their own questions
 3:12 PM < volkadav> buuuuut i doubt two junior people
on a team of six+ could have run the whole thing off the 
rails by themselves, brah!
 3:12 PM < volkadav> it's like every generation has to 
discover for themselves that "Scientific Management" is and
ALWAYS HAS BEEN complete and total BULLSHIT 

[Seriously, Taylor’s methods were deeply flawed to the point of it being fraudulent to even call them science. Go read up on this stuff because it expands beyond my desire to replicate here. Then cry yourself to sleep because that egregious codswallop has been cited thousands of times in scholarly works and is the basis for a lot of so-called modern management.]

Then I got off on another rant about the differences between leadership and management that probably deserves a longer blog post at a later date. Suffice to say “frantic casting about for simple measuring tools, however desperately flawed” is a perfect hallmark of a pure-strain Manager woefully unsuited to leading human beings in any ultimately productive enterprise.

“You lead people, you manage things.” ~ Grace Hopper

Logitech Quickcam 3000 For Business, PulseAudio, and Skype (Ubuntu 11.04 x86-64)

After fighting with various parts of ALSA, PulseAudio, Skype and so forth trying to figure out why my webcam microphone wasn’t picking up any sound when trying to make test calls, I finally figured out the answer: when PulseAudio’s mixer for the input level on this is 100%, the device is actually muted (the why of that I haven’t gotten around to figuring out). If you leave the “Allow Skype to automatically adjust my mixer levels” box checked in the sound devices dialog of its options pane, it will set the input level to 100%, hence muting the mic.

To restore (or enable) sound recording, all you have to do is open up PulseAudio’s settings to set the input level on the webcam’s microphone to something less than 100% and make sure the checkbox mentioned above is unchecked/disabled. How you get to your PulseAudio configs may vary by distribution; there is a shortcut to them on the Skype preference pane and you can bring up the dialog from the command line by entering “pavucontrol”. The microphone settings will be on the “Input Devices” tab, and the mixer level for the webcam mic is the slider located in that device entry.

public key for orion at perilouscodpiece dot org

I realized I never got around to making a gnupg keypair specifically for my address on this host, so here’s my new public key:

—–BEGIN PGP PUBLIC KEY BLOCK—–
Version: GnuPG v1.4.10 (GNU/Linux)

mQINBE3oCOsBEADYU/f915O5wxyPKMswutXoqzQ8xAn0B7lNPUbHyTlCWQbfSefp
jyMkAZ4T78XOj9oEicN8n70/bSb23Xfrz8uwPniXW0iad5HdzrB9AJRtijgasbgP
upGfAhTxfJ6/qjQepqws8gR7r+W64sAPIedcBmWGojqpM4umHU+KZ+kY+gn9VGcL
3fp/eFy28a3RIOmu2XcZfebr86XhJL2vVntk+chpJYVePrKPm8tQi4OrBg9aiNl/
dD2p0vnPyh+GTgVbBwy/ctaY9YfAXgLa1HLEh3ACCgC9IdSkXInqpKtr60CwnzZh
6fCcVKORlnLfS57Akta0s0pJAgIdZsOEJvycYK6Sg3uqX8YilT9z7UzFv02MteaS
d+GFQkO+51XukhG6NcVSC+8Ton37DPKkkB9UIklymtvs5ge9DYc0spu8vTYWRw3X
n3EePIdKEYtZ7yStlGorStPg2czXoTmYQjYIZ8+8pL11IC0BTnHgtmkYz6F+vAds
WLGo19QL+X6NOtKA9eFzgz4iBw9dTkm8vbADALKt/iEfmyyg1VdptBY9U29JVcly
VqDCfpg1Qebbrk1eSdXhx5Dh951Ay8ybYk0oBYAhGHR73Hr64UxQrxijM0ElLV8E
RHTleOTVaX7yadYJOkE9Evxg/MEfNu48hy528EdVoFKHeL4QdF2uJXNxbQARAQAB
tExNaWNoYWVsIE9yaW9uIEphY2tzb24gKHBlcnNvbmFsIHNlcnZlciBhZGRyZXNz
KSA8b3Jpb25AcGVyaWxvdXNjb2RwaWVjZS5vcmc+iQI4BBMBAgAiBQJN6AjrAhsD
BgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAYFGNUYwQfWy+aEAC1Epf/DmIc
JXDmpfNFhGMP3QxATV6/AORFo3YGSdYiqT6Olk3A40vqDnMyx8LsYrB7YORhPc4k
f3NN7sLtt4l2LCUBXlRQumPgqd00xiRJ6SaeXqmpeO4Gutu0GvO/NTFKUps5px1S
vR3fZmJoN54k2yXFpGxQ9KA97h6l3WOEpWT/iF58cx1+oYB63NBTpqvVa7lb57zW
wem6BZVFORT6YE0bIFhs/ReIWtvseojrOE0CEGy2D37FoYuyplLAnO66BeoV3eMh
zPOEgxKNtRtYl0Q1FaQ3MTIj49rmsA8c1g5cely4uqtLLN7vICT0w6L+1Bmdq2so
INqgs1Mjtq+O3drMlUuLqHY2TlpH5NaYT6LFH/+1i4PCH/TeDwIWZrB4X0n7ejfv
EP7Y/2gA+CtNJc1gen6cJgJycFsNdfAgflSxd8IhdSAwgY26Aq9sE1WBVc2h3TQJ
XWElwWZ3MifBQjxFOP4IfVfMTtrqK4vb1OoC28HcofFXYhLzlq8TPNaBj7/vn4pM
PuJ33qrGPf/oiVN2C6X80ExFVH7ZqX997tXfLDBfrmmDC9TqBWkoq3QAVa4vVDn0
uBaNu9ObwpgFc9iFJDADlbSWzpAD3DpkxXUwD2RtXOeAfCKfbWxq10TzmxReImlg
a22r3eDhJOErAone1lmdFzzSfDoXcmYF4LkCDQRN6AjrARAAsi0bgwlfZVkbDN52
JjEq/YC50W5tT7JoA2K/5kfTkePhefmr3JQ6ZClcAannA0GmKW4cDjTeBo2zDM1N
7/6MoTJBcuAZhLqruVIIaJGhMiR6vu1OvBs+L2dyyo7cQmYV5ytMykOujg6g0LAf
efOQJhRlfOR5VfBvIVOwMU6DurKuNRskBugodf8CBIPdiT1JmxI3cI/1IYlp3crr
ZG+pivWpiLmwuWD2EbWGqNTaZ69GlBDGq3c3aU69cYZuL6alvkRj4UKY6mBAep7P
UlY9Vtm7jTCRU8+UG6UCKGgqho//SAgrFRM3IQMeYyEoY99FtWtG68nAtsbRM9hB
42ZXTvuFEp9mc00eFOn1OLvNjxpxyr7M/uULXpCGTCoQ0IDCeeUBgyVc+yYaVCJG
ncJ0Ac+qn62jaBopvnSi8Cr76RmRMPp+fDJkaMx7GWbG4DaUt3mWxARbhKBsAi5H
hvqgJ9Y/UhcSEyVbGbvAV7b4RJxKPGB7ENeeRqAJV4ISoXrv3vv+vZAtOxVx8tsK
C2dyaUiWz46s0xVQqh0gc1CJqKckp+B/K44bIlmAY8DMA6FL6a2TThXuU12Bi/DK
qYCyv8CKUdq8WM9FMvmb4rcivWLL1V2sUDhu49VqooBPs8de1cPKUDun99AO9eg9
ZhOoLmP3NcIKRI9mnmczyKF42zkAEQEAAYkCHwQYAQIACQUCTegI6wIbDAAKCRAY
FGNUYwQfW2iqD/4/ZlcErUCFb2Cf82euKfpBqYSEoaES1iB4rtyNtlHMFnF9/CIA
50sYXH/Laxn3eBa6TqvsMnIQ4PEO8Y96/JkcDk3vy3FcMII58biJVY/ozjU/Akh+
+HQNUcU3f8ALzPzHsFL4Ic+9UnbutLdqfoIYvvKw6WoAh8FKTeDbz93manRHl5tT
Fnz8HOYoKQg77LI3922ZbpRgQKp9rEz6VMh5Vls4DYBaXE9MFdDSyPzRM7RC9C0L
hrZzpq9H1NWUT/w2s1Elg9cwHl5NKgh7oYHYwAjoMieXVG78ezK49N5iFMdvDI9+
rPkQdtYlpISipzwSRbvBnNM936qAMdi9M56x1D5lmBfZ0XMeXNvRlwIBUPg/sD8S
upwP25NI6+L9vRs+PjShHjAVAp90htw2dX/Dq3GzSTjYQydYmmwAQmd1TEyNNSvA
5P8h4wU+Gl9cDgZgM2v4dstt0k4O9cJ4jo3ymhxaR3J/ZZMWEiMF21RoTE2NJ250
OOQUOb8rnCLf2VNLZKzSwFMY5whc+Vkwc93S6s0cy3IaP7rF3HgO5/3t8vdcb00e
w6UPYFJqyG1XlrG8gJnRHbu6PVJh2MTKy+cStcRPXEDKMOjeJDt+bod0ualA9x+b
HUuBZ8AO9qLBeASK2u8LAQN5ER/zRunEKbgLPpWSjcB4APyZhAFT1fZMjg==
=ubgf
—–END PGP PUBLIC KEY BLOCK—–

(or you can retrieve from say pgp.mit.edu, key id 63041F5B)

software engineer achievements

Our ticket/task tracking system at work has achievements, which is fairly awesome (e.g. “Gulag Archipelago — work on one project for more than 2000 hours in one year”). Recently a thread came up on the SomethingAwful comedy forums centering around (mis/ab)use of a Valve-style achievement tag generator. Here are some of my contributions to the thread, for a quick laugh. :)






new desktop :)

This pay cycle I decided that it was my birthday month, and I was tired of my old desktop struggling to keep up with things (like, say, flash videos on youtube, or even low end gaming). With Kirsti’s encouragement, I spent about $700 on newegg.com and got the parts for a new build which has gone super well so far. (Ironically since they arrived during the work day and I was pretty busy, Kirsti did most of the actual putting together of the stuff I’d intended to. I think my total contribution was installing the power supply in the case, putting in the motherboard offsets and installing the optical drive.)

CPU: AMD Phenom II x4 955 (3.2ghz quad core)
RAM: 16gb ddr3-1333 (4x4gb, G.Skill)
MB: Asus M4A87TD
Video: Gigabyte GV-N450OC2-1GI (Nvidia Fermi 450 card, 1gb vram)
HD: WD Caviar Black 1TB (sata 3, 64mb ram cache)
DVDRW: an old but still functional ata133 LG dvdrw, recycled
Case: a ThermalTake black atx mid-tower, forget the model number
Power: antec 650w green (so named for high conversion efficiency)
OS: Ubuntu 10.10 Desktop

So, so happy with how it’s turned out. :) I’ve done things with it like have two operating systems installing into virtualbox in the background (various testbed VMs) while playing Portal via Steam on wine fullscreen in high res and it never stuttered. Ripping a DVD took less than half an hour (and I’m not sure that I found the right config options to tell HandBrake to go multi-core). OS install went smooth as silk, the hardware is super-performant, and best of all it’s quiet! The loudest sound it makes is the very faint noise that comes from really thrashing the crap out of the hard drive. I kind of wanted to get an SSD for main storage, but the $/GB ratio was still just a bit out of my reach, and I’ve heard of just enough bugs and glitches still being worked out with them that I felt that sticking with spinning rust for now was the safe call. With sata-3 on the motherboard, I’ll probably still be able to upgrade just fine to an SSD in a year or two when all the software and hardware kinks have gotten worked out.

how to cleanly exit SLIME mode in emacs

Because I constantly forget how to do this whenever I’ve got cause to fool around with SLIME mode in emacs (usually when working through Land of Lisp, which is on Safari too), a note to myself:

  1. in the SLIME buffer, press “,” to enter a slime command
  2. enter “sayoonara”
  3. press enter to exit

This is enough to exit back out to ordinary emacs (from which ctrl-c ctrl-v exits, naturally).