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)

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
=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).

testing LiveJournal mirroring

I figure LJ was my home for long-format writing (or at least, longer than 140/420 characters that twitter and facebook respectively support in the standard post) for several years, so I might as well mirror whatever I write here back over there for tradition’s sake (and who knows, there might be people who only ever read my LJ). This is mostly a test post to see if the mirroring plugin I’ve installed is working. Right now only my p3rlm0nk LJ is set up as a post mirror but if any other users on perilouscodpiece wish to set this up I’ll be happy to (of course, so far I’m the only one using this blog…).

php5 OO vs. Java OO

It seems pretty obvious that the designers of php5’s object orientation support were drawing their inspiration from Java in a lot of ways. Still, there are some lurking surprises if you come from that background. One of these days I should catalog them. In particular I recall that most of them had to do with the “type decorator/attribute” things like static and protected and so on.