Archive for February, 2007
I suck at FizzBuzz
Why can’t programmers … program? has certainly been a hot topic (the followup mentions everyone tried to solve FizzBuzz in 20 bytes or less, etc).
I suck at Fizzbuzz problems, because my first response (in my brain) is always, “Why the fuck would I ever want to do that?”. I eventually get around to some “if mod foo == 0″ solution but then get all irate again: “I’ve used modulo exactly once in my life, and for a toy program to figure out when I was on call without doing a database query.”
I suppose, then, there are 2 camps. One, “You suck if you can’t come up with 20 different fizzbuzz solutions, because it proves you don’t have the programming abstraction chops to deal with real-world problems”.
The other, “You used freaky date math to not do a database query? OK I suppose you’re not an idiot.” It might technically count as one of those “innovative solutions” that FizzBuzz problems are supposed to illustrate.
I’m very bad at tests. I always have been. I’ve been quizzed in tech interviews before; the jobs I wanted were less “ok stand at the chalkboard in front of the class whiteboard and perform, monkey-boy write some code”, and more “let’s have a conversation about programming”. I get excited about questions that have real-world applications, I get frustrated at endless abstraction for the sake of it.
The FizzBuzzers are probably almost certainly right, though, in that the great majority of people that can’t solve it somehow probably can’t program for shit. I just wish they weren’t.
Why women aren’t interested in web nerdery (one phallus-enabled person’s view)
Gruber asks, so I’ll answer.
It’s a shitty job full of dickheads, in the real and figurative senses.
Seriously, what does this job have going for it:
- access to technology, about 3 months before everyone else gets it
- You might get filthy rich. Or you might not. In fact you might end up broke or in debt.
- Your only real choice for where to live is Silicon Valley (and it’s surroundings), or maybe the Seattle area. But who wants to live there, anyway? If you’re not in the fantastically rich sector yet, yeesh, why bother.
- You probably work hours that put med students/interns to shame. The other night I was typing when I was asleep; I woke up realizing that I’d just written a bunch of code in the wrong function. (My wife totally appreciates this behavior.)
And so on, and so on. It’s a shit job. That’s strike one.
Strike Two is: web nerdery is still dominated by infantile fuckheads who think arguments about YUI versus Scriptaculous are awesome. Hell, look at how much front page news ESR got for installing a new distro.
I am guilty of this, of course. It’s an intellectual job, so being “right” is important, even when it’s right in a subjective sense. Of course in the interim, there are prick-waving fuckhead shouting matches (it’s called Digg.com, have you heard of it?), flamewars, snotty t-shirts, and more. We literally wear our affiliations, and you can have my operating system when you pry it from my cold, dead hands.
I do not know, and am no qualified to judge, if this sort of behavior is somehow antithetical to nature or nurture in women. I assume a little of both; geek culture feeds geek culture, and testosterone isn’t helping.
I guess that’s Strike Three: this job is a sausage-fest. Nuff said.
In summation: it’s a shitty job, that requires equal parts intellectual arrogance and OCD, and is still largely dominated by men. You can probably get the same intellectual “high” from winning a legal case, curing a patient, or working in other engineering/science fields, and be home in time for dinner (or have a life, or whatever else floats your boat).
Test-Last development method
Yesterday: Customer makes request as to when I can take app live. “Oh, probably as soon as you give me some feedback on the 86 changes I made. You know, test them some. Make sure it works, make sure I haven’t inadvertently left debugging anywhere, stuff like that. But mostly to make sure it works.”
“OK”, customer says. “I’ll start doing some testing. We’ll shoot on live by Friday. Is that reasonable?”
“Sure”, I say. “We will plan on shaking all the bugs out tomorrow, and we’ll flip the switch Friday.”
This morning I get a phone call about how one of the forms in the app isn’t working. “That’s because I haven’t taken it live yet, since you never got back to me if it worked or not. Remember when we talked yesterday, about you testing things?”
“Oh.” He sounds sullen and dejected. “I’ve already started giving out the URL to people to start using it.”
So this is his way-new paradigm: Take the app live without telling the developer, then start testing things. It’s the time-honored test-last development method.
At least we’re testing at all, I suppose, but bear in mind that I can’t change anything because now the database is “production”.
Startupping: Lessons Learned
From http://www.startupping.com/2007/02/20/best-and-worst-decisions-part-1/
I’ve made loads of mistakes so I’ll try to think of one with a good lesson for startups - one of the biggest mistakes I made in a previous company was accepting a high dollar contract once for something that wasn’t core to the vision of the business we were running at the time. While the revenue initially feels great, there’s nothing worse than pursuing a piece of business that isn’t core to the startup’s vision. Lesson learned - once you decide what it is you are going to do, don’t pursue efforts that distract from the vision.
This is pretty much what we do every few months. We’ve been trying to launch a new product since October. Every time the same damn thing happens:
- Set aggressive schedule
- Realize schedule is too aggressive/we’ve underestimated requirements
- Pad out schedule some
- CRISIS! Schedule is blown
- Meander off on tangents
- Reconvene to try to get back on track
- GOTO 1
We’ve tried 3 launches of $NEWPRODUCT: one in late summer of last year, then October of last year, then this month.
Guess what we haven’t launched.
The biggest problem is we accept work outside our core business: because it’s a lot of money, typically, but also because small businesses (as opposed to “startups”) tend to have a deep-set fear of turning down work. We have to start doing that, or we’ll never launch, and if we never launch we are possibly depriving ourselves of even greater growth (revenue and overall).
Signs you need to step away from the keyboard
So I asked TheBoss, “Why do you have a big bucket of water in your office?”
He replies, “Well I was keeping some roses in it, for Valentine’s Day, and just haven’t gotten around to deleting it yet.”
Camino bug 333531
Camino bug 333531 has been pushed to 1.2 (if not later). This makes me sad, because the current implementation is worse than a pop-up window.
Now if only I can work out how to make Adblock work in Camino …
Well, that was uninteresting.
Here’s my allow-me-to-sum-up of the closing today:
“Here is a (describes document).” scribble scribble Lather, rinse, repeat.
I suppose the entire process was unintersting because we have a standard 30-year fully amortized loan (so there’s no need to explain anything to us; we pay $X per month for the next 30 years, the end), and when it comes to title issues, it’s just not worth wasting everyone’s time explaining what might happen, when it really isn’t that common any more.
But there you go, we’re home owners now.
Dear Google: Partner Program, please
In the beginning was Urchin; and Urchin was good.
OK not really “in the beginning”, but whatever.
Anyway, before I joined up, we were an Urchin shop. We had been using it since sometime before version 3; we still have customers on version 3 right now (it’s a long story). Customers where by and large happy with Urchin.
Around Urchin 5, Google bought them, and turned their hosted Urchin 6 into Google Analytics. All was still well (after the launch fiasco, that is) with but one exception: having to tell all our customers 1)we no longer can offer them Urchin and 2)you’re now Google’s customer for analytics.
BROADLY SPEAKING, neither of these is particularly bad. Obviously Urchin was pretty good, if Google bought it. (Or, Google could get Urchin at a price they were happy with, but never mind) Many of our larger customers have AdWords already, so integration was great for them. We picked up a couple of billable hours converting their UTM-based analytics to Google.
Lately we’ve started doing the same thing for Co-op: it’s easier than dealing with 20 different, custom search engine installs (htdig on one, some other search tool on another, hand-rolled PHP on yet another …). Again, everyone’s happy, right? Customer gets best-of-breed search, we get a few billables.
BUT. In the big picture, we run around evangelizing for Google, handing over portions of our customers. Like I said it makes lots of sense for them, but it would be nice if Google would at least acknowledge that we’re doing some work for them, here.
I suppose there was various ways to handle this - ours probably isn’t optimal - but let’s face it, Google is a little on the nutty side with respect to this. They don’t want to deal with a 3-person company, they’re too ADD to write up a strong “partner” API like everyone else … but we need it. We need to manage our customers as sub-units of “us”, not “a random person attached to the Teat of Goog”.
Spotlight changes in 10.5
Computerworld lists some of the updates and additions to Spotlight here. It’s mostly it’s boring stuff (yay, networked Spotlight! We don’t have a Mac server, so, big whoop!), but what I’d really like to see is Spotlight not suck donkey balls.
My backup script relies on the “mdfind” command, which is really just a command line Spotlight (along with mdls). So what I did was, run mdfind looking for various metadata, then take that list as input to tar.
What’s nice about this is it works well in Finder and command line; the “important files” were tagged Red in Finder, and thus had kMDFinderSomethingSomething==6. What Apple’s shit-tacular Backup app called “Purchased Music” was kMDItemType==’MP-4 (Protected)’ or some such.
So before I took my rig apart to pack it up to move, I wanted to do a backup. It took 2 seconds, so something’s totally wrong.
The short story is, suddenly and without warning, there is no more “Purchased Music” (the metadata string is gone) and mdfind cannot find anything on the drive. I can find other data on other drives, but not on the drive in question.
Interestingly, I can’t find anything on that drive with Finder, either: Go to folder in Finder, do cmd-F and select the SAME CRITERIA as my script, and nothing.
Good times.
I have done the usual dance of deleting and recreating spotlight indexes and so on. Nothing.
So, there’s my big feature request: Make Spotlight not suck.
Cynicism, Jobs, iTunes, and DRM
Ya’lls are some cynical motherfuckers.
“He’s just doing it because he’s in trouble in Norway”. “He had no problem selling iTunes DRM 2 billlion times, and NOW he’s suddenly against it?”. “He’s just doing it because iTunes Store unit sales are dropping”.
Look, do you want DRM, or not? Why must every last one of you look a gift horse in the mouth?
He could be bluffing. (He probably is) He could just be doing this knowing that the labels would die before giving away the keys (he probably is). He might even know he can’t do it without all of them on board (he probably does).
But the fact is, right now it’s in the labels hands. Steve said, “I’ll turn off DRM in a heartbeat”. He ostensibly has legally binding agreements with them to provide DRM unless they say otherwise.
They have 2 choices (again, as near as anyone can tell): 1, allow DRM-free, or 2, require DRM. If they pick #1, it’s back in Steve’s court. If they say #2, it’s all their fault. (Maybe there’s a #3, I dunno)
Did The Steve say what he said knowing they’d take #2? Maybe. I don’t know, and I’m guessing you don’t either. Maybe if you’re not privvy to the details, you should shut the fuck up? (And if you do know, preach it, yo.)
All I know is, The Steve said he’d remove DRM if allowed (you know, the guy everyone says “shakes up industries”). Doctorow’s “end of the DRM wars” could be in sight.
You can remain vigilant and not look a gift horse in the mouth. There’s a difference between “cautious” and “cynical”.
Comments(0)


