« March 2005 | Main | May 2005 »

April 29, 2005

Algorithms

It’s nice that Bill is talking about retaking Algorithms after incompleting it. I have to say, Mazumdar was completely right: most days, you don’t use it at all, but on some days, it’s the difference between night and day. I think he said algorithm analysis will never get you a job, but you may lose your job if you don’t know about it. It hasn’t been that way at Matterform, but there are times when we go, “Why is this so slow?” And usually, there are two possible answers:

  1. The SQL statement we’re using is really bad. 9 times out of ten, this is the problem. (SQL is very fast! You just need to know how to tweak it.)
  2. Somebody did something really stupid

Last week, we discovered that there was a priority queue in the middle of our POP3 code. The guy who wrote it had used the naïve implementation—put all the elements into an array, and sort the array by priority after each insert. So, if I have N items, it’s going to take what, 1/2N * NlogN, just to insert all the items? So that makes it what, about O(N**2 log N)? Of course, popping is a snap, because they’re all sorted. Popping is O(1).

Then I recalled priority queues. Couldn’t recall a fucking thing about them. Pulled out my copy of “Algorithms in C++”, which really is a great book even though it’s in C++, and wrote an array-based priority queue in about an hour. This one has the property O(log N) for insertion and removal (although it maintains O(1) if you just want to look at the top item). So here are the rough numbers:

Naïve implementation: in 6 seconds, 100 items
Heap-in-array implementation: in 7 seconds, 20,000 items

I think we have a winner. :)

Sadly, I think what I mostly got out of the class is that I can recognize runtime behavior (more-or-less ;), recall the names of alternatives that we should be using, and code up an alternative and be able to tell that it’s right. But even this is a big edge over the competition (apparently).

Posted by FusionGyro at 02:04 PM | Comments (0) | TrackBack

April 21, 2005

Observational Injunction

  1. Ebony pukes
  2. Lllama eats it
  3. Lllama grows hair
  4. Ebody eats it
  5. Goto 1

Posted by FusionGyro at 07:53 PM | Comments (0) | TrackBack

April 18, 2005

Towards the East

Alex has been generally unhappy since she got an IUD on last Thursday. The doctor, this hairy, acne-laden hagdyke from another dimension, has a number of flaws, not the least of which are her appearance and demeanor. Anyway, she decided to take a time/pain tradeoff during the procedure which has left Alex with pain since it happened. To save about 10-15 minutes of wriggling time. I think it’s pathetic that this person spent nine or twelve or however many years getting trained to be a doctor, and won’t spend 10 minutes to do something the nice way for a patient. Telling.

Michael was telling me about this doctor in Albuquerque who doesn’t take insurance or medicare or medicaid, only money, and does house calls at any time of day. We both really like this idea. The doctors seem to like it too—more money, more personable customers, better life for everyone involved. And all because they factored out the things that make it inhumane: paperwork, waiting, rushed doctors, etc. This doctor had a quote which I’ll paraphrase: when doctors could do nothing but pat you on the hand and tell you when you might get better, they were revered. Now that they can treat more things than any other time in history, they are disliked and considered an inconvenience. Wish I had a link to this guy’s site or something.

Last week was go-live for Spamfire 2, though in reality we’d been selling it to existing customers for a while. It’s been really exhausting, very difficult to get or stay motivated for anything at home. I’ve been sleeping a lot. When I get to work I have 2 hours of tech support to look forward to, usually with nothing to say except wish you’d read the documentation and not freaked out, or wait for the next version, it’ll be out soon. It’s hard for me to imagine grown men getting so angry and mean about something, but not having the courage or the wisdom to read the fucking manual. But I guess this is true of anything. As Michael said, “even iShit will require customer service.” We often talk about iShit, a hypothetical program that does nothing but has a really nice UI and lots of people need for keeping track of their shit. In practice, it’s probably a lot like Delicious Library. This leads to the other thing we talk about a lot, the “it’s like XXX, but worse” phenomenon. A lot of people seem bent on poor imitation. A friend of mine is about to embark on a project to recreate Civ 2, but “with shorter games.” A guy at REALworld was talking about his RB Design Award contender, “it’s like Delicious Library, but written in REALbasic.”

I’m glad for all the time I spent not interacting with customers at Matterform prior to two weeks ago. I was even more glad at ARSC, because Jeff and Derek even hid from me that they were demoing the software. But now, we have people writing to us saying, drop the language you use, this is alpha, this is blah. You would say, they’re just users, it won’t affect you. But it does. And these people assume they’re going to get a sub-human who doesn’t care about the product, because the other companies they deal with are big and staffed with sub-humans who don’t care about the product, so they pick harsher words. Still, I’m surprised that grown men are so harsh. It’s just a program. Programs have bugs. They get fixed. It’s not the end of the world. $17.95 is not a fraud-worthy sum.

Anyway.

I’ve been somewhat programmatically impotent lately. By the time we get around to the coding, it’s in PHP for Nina or whatever, I’m distracted by what all these people have said. I get home, and I don’t have it in me to continue on any of the grandiose plans I’ve started. I’ve got four projects on the back burner. I start more all the time. Somedays I just wish I were really profoundly interested in just one of these old things, and could work on it all night. But I don’t have it in me these weeks. I’ve got nothing but exhaustion.

Last week, out of the blue, I got the MFbonus. :) I’m really happy about it. Then Michael insisted I take off some time this month, to recouperate, so I’ve got the next two Friday’s off. I’m not sure what I’m going to do with the time. I’m thinking about just sleeping. I’ve got to go see Eric before he goes on his trip though. I blew off everyone in Socorro this weekend, mostly because of Alex not feeling well, and partly because of the exhaustion.

We blew the money this weekend on a new used washer and dryer. Alex has been pestering me about these for a long time. So now all we need is a sofa, a couple dressers and a new laptop for me, and our material questing will be essentially taken care of for a while. I’m content with what we have. The only things I feel like I need right now are a faster better Mac and a home in New Zealand. But those both seem incredibly distant right now.

We also got a wunder-crapper for the cats. Michael called it a shit palace. I guess the vulgarian is rubbing off on him, though I try and hold it in. I’ve been more captivated with wrecking people with blunt, G-rated sentences for while. There’s something really beautiful about saying something like “No, we only want to offend you” and watching someone get all pissed and hurt about it. “No, we just want to exclude you. Your kind.” Anyway, the litter box has basically got a filter on the side, and a collector above it. You rotate the box onto the side and the dirt slides into the filter side, then you rotate the other way and all the clumps fall into a removable container. I’m skeptical, but I’m willing to like it.

This has been the week of home improvements. Last Tuesday or whenever Faust came over, we installed my first set of CD holding shelves. We needed to get a stud finder. Now we’ve removed the door from the bathroom closet and removed a board to put the litterbox in there. It’s strange, working on the house.

Anyway, it’s 12:10 and this is long enough. Time to call it a night I think. I’m hanging out in the Io chatroom for a change. It’s kind of nice. I hope it doesn’t become a habit. :)

Posted by FusionGyro at 10:29 PM | Comments (1) | TrackBack

April 08, 2005

Wow That Sucked

On Sunday Night, Alex and I stayed up all night scared shitless because we thought we heard tapping on our windows. We still don’t know what or who it was.

Monday rolled around, and since we just started selling Spamfire 2 to some old customers over the weekend, I of course had to come in (but came in late). We worked on a few problems.

On Tuesday, I spent the whole day doing nothing but tech support. Which is fine, but doesn’t feed the soul.

On Wednesday, we were both too exhausted to do anything and Alex was randomly pissed off and tired. At work we spent the whole day trying to fix a newly emerged problem with Emal.

On Thursday, the cat woke me up by scratching my face in four places. But Michael bought lunch, which was nice, and we talked about Matterform some more. For dinner, we went to Asian Star, where they kindly gave me crab which I didn’t notice until after I’d taken a bite and reflected on how un-salmony it was. Then we went to Wal-Mart where we had the worst check-out experience imaginable after being pretty quick—the dumb bitch was a horrible bagger, took forever (45 minutes to handle three carts, of which ours was about 4x bigger). Additionally, she made many mistakes and was just generally intolerable, chatting with everyone instead of being worthy. Alex called to complain about her, then we went home and I was ill. We also were up late because of trying to do both those things.

Today wasn’t that bad. I’m looking forward to a weekend of lots of sleep.

On the programming front, I’m working on yet another little project for a friend which I think will turn out to be really cool. It’s a Rails project and it’s quite fun I have to say. I wish there were some more comprehensive non-API documentation, maybe even documentation that gets updated regularly? :) But the system is still emerging so I guess it’s not fair to expect too much of it. Definitely a high learning curve. For right now, the motto is the same as Cocoa: if something’s not working, you’re probably trying too hard.

I’m trying to decide whether I should go to Socorro next weekend or the weekend after. I’m leaning towards the weekend after. Comments?

Posted by FusionGyro at 10:16 PM | Comments (0) | TrackBack