Monday, February 14, 2005

I forgot to say my basic point about the gift thing, which was “Fuck Valentine’s Day.” If you love somebody, you love them all year ’round, not just on fucking valentine’s day, regardless of what the Whitman’s Sampler and Russell Stover assholes try and tell you. I can’t think of a more retarded holiday.

When we were in like, 6th grade, I had a crush on this girl Becky. My school had “Candygrams” that you could send to somebody for 50 cents and the money went to the “Student Council,” whatever the hell that was. So I must have sent Becky like 50 to 100 candygrams all from “Your Secret Admirer.” Somebody put 2 and 2 together and figured out it was me and that was really fun. 6th grade sucked. Anyway fuck Valentine’s Day in the neck.

/hug

Sunday, February 13, 2005

Yep, it’s my fuckin’ birthday. Well, it was on the 12th. At least some people remembered this year. I am so tired of this gift-giving thing. Once a year I can handle, but I feel like they’re trying to stretch it out so you feel compelled to buy stuff all year long. Yes I know that seems like a “duhhh” type of a thing to say, that’s what ad agencies are for after all, to convince people that they need stuff that they really don’t. But I’m willing to suspsend my misanthropy and cynicism for the month of December, and while I’m certainly not one ever to be “filled with xmas cheer,” I can appreciate the smiles on others’ faces when you give them something they want, even if they may not have realized they wanted it.

The problem I’m having is that there are a finite number of gifts that are really worth giving to any particular person. I mean, after 7+ years, what am I supposed to get someone? What are they supposed to get me? I’m certainly not complaining about my present this year and I don’t want certain people to misconstrue this as such . But over the course of the year we have Birthday, Valentine’s Day, Anniversary, Mother’s/Father’s day, Christmas. That’s potentially 5 different occasions for a particular person every year. That’s a lot of presents, especially when the person in question either doesn’t want anything, or only wants things that are either immaterial (world peace type shit) or wants stuff that’s so insanely expensive that it’s just not realistic (a new car, jetski, whatever). [Did the previous sentence contain a comma splice?]

I do a lot of thinking these days, about various things. I used to be the kind of person who got really worked up in debates and fought valiantly to prove my side of the argument. I’m the guy who, when debating points with a conservative, will come across as a left wing nutcase; but when debating with a liberal will come across as a fascist. Like many (or maybe not?) I don’t fit neatly into any real box. I have some “liberal” positions and I have some “conservative” positions. It’s probably best if I don’t state any of them here. But lately when I see people debating a point on which I have a well-defined position I find myself playing the role of the quiet observer. Sadly this has come about because I just feel like debating itself is an exercise in futility. In all the history of mankind, I wonder how many debates have ever really changed anybody’s minds. Among the things I’ve picked up about people over the years is that they like to be right — I don’t know too many people who like being wrong on a regular basis. The basic point of a debate is to convince the other party that their position is wrong, or misguided, or whatever euphemism you prefer. The topics that frequently come up for debate are those about which most people already have well-formed opinions that they may have held since childhood. So you have people arguing either side of an issue, and both of them feel that they are absolutely right and the other person is absolutely wrong, and in reality neither side will ever be swayed no matter how much debate takes place.

This all really has nothing to do with anything but I think it illustrates my cynicism pretty well. I realize that the point of a debate between two parties on a given issue is frequently to sway the opinions of those who haven’t already formed them, and if it was an “honest” debate I’d say that would be a worthy exercise in and of itself. But the old cynicism kicks in and you realize that people are just underhanded and feed the masses all sorts of disinformation… I’m reminded of the three types of lies: “A lie, a damn lie, and a statistic.” (The first time I heard that phrase was from my 8th grade math teacher, Mr. Collum).

I’ve probably said too much already. The older I get the dumber I feel. Or maybe I feel just as smart but just so much more powerless. I really used to feel I could take on the world. Now I just feel like the world isn’t worth my time. But man, I felt like a smart motherfucker when I was 18.

I leave you with the quote I used in my high school yearbook photo:

I got the key to the highway, billed out and bound to go. I’m gonna leave here runnin’, walkin is most’ too slow.

God I loved that song.

Tuesday, February 08, 2005

Adventures in Dog Shit. It’s not just a meaningless phrase! Two members of my family happen not to be humans. Bruiser and Sierra are my dogs and their specialty is making huge piles of dog crap.

Like humans, they both have weird habits when they crap. Bruiser’s idiosyncracy is the way he walks around while taking a crap. He cops a squat, starts pooping, then something a few feet away gets his attention, so he does a squat-walk and leaves a trail of shit all over the place. This is a joy to clean up, especially when he does it on somebody’s lawn. Sierra’s oddity is the way her movements just seem to come upon her out of nowhere. We’ll be walking down the street at a good clip, and she’ll just come to a dead stop and start making brown toothpaste. She also tends to crap 2 or 3 times when you walk her. Really, a treat.

The joy of being the human here is that I get to pick up these treasures, which I’ve been doing on and off for the past 4+ years, since we lived in Albany. If only I could sell it…

Bruiser is a big boy, weighs around 110-120 at his summer weight, and he’s had problems with his back-right leg for a while. Lately he’s also been having problems with his back-left and front-right legs as well which is very sad. He refuses to do what (to a human) would be the obvious course of action and just stay off his legs and insists on walking all over the place, and jumping up onto the counter to get loaves of bread or whatever is in reach — or humping Sierra like there’s no tomorrow — further injuring himself. It’s painful to watch, especially when he limps over to me and starts pawing me with his bad leg, like “Hey man, this hurts, fix it please?” I wish I could. The ice on the ground certainly isn’t helping his leg, he keeps slipping, and absolutely insists on plowing through the snowbanks. I really have to yank his leash to keep him out.

Hopefully when the weather gets warmer things will get better.

Had roast beef and potatoes for dinner last night and it was deeeeelicious (I didn’t cook). I think the reason I like to cook is mostly the fact that I like to eat. Maybe pizza tonight… mmm…

February 7, 2005

I’m at work. I’m writing some code.

I think I want to be a chef. I made chicken quesadillas last night. It was something I’d wanted to do for a while but I had no idea how to prepare the chicken. I mean, a quesadilla is a simple thing to make – it’s cheese between two flour tortillas. But if you want to add chicken, then how to you prepare it? I mean, you don’t throw raw chicken in there and cooking it without seasoning would make it taste assy. I ended up marinating it in some generic Seven Seas Robusto Italian dressing and chopping it up and using it like that. I used 2 chicken breasts to make 3 big quesadillas, and it was good. If I’d had the right cheese I bet they woulda been awesome (had slices of regular American cheese instead of shredded Monterey Jack like recommended).

I swear I get a greater sense of accomplishment from cooking than I ever did from any job I ever had. I should open a restaurant. But then I’d probably eat everything. :-\ I want to open a Boston Market or an Arby’s, or maybe just a diner.

But for now I have to be content with typing into a computer all day. At least at this job I have a window through which to look. New York City is interesting to look at too.

I’m even including a “Now playing” link so Xanga can get some money. This is kind of a neat concept I guess, integrating with the Amazon webservices stuff.

February 4, 2005 2

I hate blogs! I hate the word, I hate the idea that people think someone else cares what they ate for breakfast.

I’m misanthropic like that.

What’s a spleen for?

Evan's Semi-complete Aimster Saga

The following was written by me in my Slashdot journal on September 02, 2001. I have not edited it since then except for formatting.

This is long and rambling and will likely have parts that make no sense. I just finished writing it at 5:33 am right now Sunday morning, so that is my excuse. What’s yours?

In September 2000 I was gearing up to return to Dartmouth College in New Hampshire to begin my senior year. To say I wasn’t looking forward to it would be an understatement. I had two courses left in my Computer Science major: Theory of Computation and the “culminating experience,” a course that I guess takes the place of a senior thesis. The most theoretical aspects of Computer Science have never interested me, and since I know that I will never have a use for the vast majority of them. To graduate I still needed to take 8 more classes and none of the offerings were terribly appealing. For the fall term I enrolled in Theory of computation, an econ class, and a government class (the standard courseload is 3 classes). I wasn’t terribly thrilled with any of my classes.

At the beginning of October, a friend of mine who was attending RPI told me that there was an opening at Aimster for a Mac developer. The first version of Aimster’s client had recently been released and was met with tons of press. My friend talked to his boss, John Deep, and John was interested in meeting with me. So one day I drove to Albany and met with John and the rest of the Aimster crew. Aimster seemed like a great idea to me. Share files just like Napster, but only with the people on your AIM buddy list. Combine two of the day’s hottest applications and be useful at the same time. Seemed like a brilliant idea to me. I spent the night in my friend’s basement and the next day met with John who offered me the job. He told me what was offering, which included salary, a new Powerbook, health insurance, and stock options. The salary was generous, but less than six figures. I had recently read that the average salary for computer science graduates was about $46,000, and the offer was enough that I decided to give it a go.

I’ll leave out the battle that ensued with my mother. Suffice it to say that she wasn’t thrilled with my decision to drop out of an Ivy League school for no apparent reason.

I asked John for some kind of a contract. After all, I was taking a huge step by quitting school and it seemed that my mother would never speak to me again. I needed some kind of assurance that he wasn’t just making this all up. He was reluctant to do this. He said “That’s not the way I operate, you’re going to have to trust me.” I explained that I needed something, I couldn’t risk my whole future on his word alone. He said I should write up a contract and forward it to his secretary. I did, including the points John and I had agreed on. She wrote back saying that he said that looked fine. He would sign it when I arrived in Albany.

I did all the paperwork at school and withdrew from the college. I can go back at pretty much any time by filling out a 1 page form explaining why I was gone and what I did. I spent several weeks living in my friend’s basement until I got an apartment that would take me, my girlfriend, and our two dogs.

I get to Aimster and wanted to get my Powerbook as soon as possible. I should mention that I did not own a Macintosh, having sold my powerbook 4 months before in favor of an Athlon system. John said we’d go to CompUSA and get one. The day we were supposed to go, he never showed up. He put it off for several days and then one day said “Why don’t you just use the G4 in the office for now?” At this point I suspected something was up. Pretty much everybody else at Aimster had gotten brand new Sony VAIO laptops. At least 8 of them at ~$2600 each.

At the time, there were two other Mac developers. One (call him Mr. A) had been an RPI student who had taken time off to work for Aimster, and the other (call him Mr. B) was… well, I never really knew anything about his background. Let’s just say he wanted to write Aimster in AppleScript.

My own background in programming was pretty limited. Pretty much all my C++ experience was from class. I had experience with CodeWarrior but not with developing GUI apps. I had 2 or 3 classes that used codewarrior for development, and the rest were using gcc on Linux. I knew data structures, algorithms, STL, all that stuff, but only really in a class setting. And as I said, I’d never developed a GUI app before.

When I started going to the Aimster office, the first topic we discussed was what programming environment to use. Mr B wanted to use RealBasic, which was pretty simple to use and was basically Visual Basic for Mac, and Mr A said that real basic was too weak and we should use CodeWarrior. I played around with Real Basic and it was incredibly easy to use. I had a whole gui laid out in less than a day. However, Real Basic’s limitations showed themselves pretty quickly, mostly with regard to networking and threading.

Things were not going well. Around Christmas 2000 the “Mac team” and John had a meeting where we told him we had decided not to use Real Basic. It was simply too weak for our purposes. And since the Windows client was written in C++, developing in Real Basic would have made portability extremely difficult. There are ways to incorporate C code into Real Basic apps, but it’s a real pain. Anyway, John freaked out at this and said that if we couldn’t do it in Real Basic then we had to cancel the Mac version. This was something he had hinted at a few times so it wasn’t entirely a surprise. Every time I had asked him about my supposed Powerbook, he’d said “well, we don’t know if there’s going to be a mac version or not, so let’s hold off,” which I didn’t find especially reassuring. Anyway, we managed to convince him that we could do it in Codewarrior, though I’m sure he still didn’t believe us. And I can’t really say that I blame him, since things were really not going well. However, the computer I was working on was a piece of garbage. It would give random linker errors, wouldn’t even compile Metrowerks’s own sample code (nor Apple’s), crashed randomly, and when code did compile, the debugger didn’t work at all, so I couldn’t step through anything, making debugging a complete crapshoot. At least on Linux/windows you can write output to cerr so you know what the hell is going on. I resorted to putting ::SysBeep(30); calls throughout the program. If it beeped once, I knew it got to point X in the app. If it beeped twice, I knew it got to point Y, etc. It was absolutely awful. I wanted to format the hard drive but they did not have the CD. I borrowed Mr A’s powerbook CD and did a clean install (which for non-Mac users replaces all of the System files and leaves mostly everything else intact) and reinstalled codewarrior. This helped quite a bit, as I could now use the debugger, but the computer still crashed randomly and frequently. One day it crashed 37 times in 6 hours. I counted. I tried formatting the computer with mr A’s powerbook CD but it didn’t work for one reason or another. So I was somewhat better off than I had started.

Then Aimster’s office moved. I took this opportunity to take the G4 home with me since I was getting very little work done at the office. This was a bad move as I got even less done at home. One problem I had with this project was that there is very little, very poor documentation for CodeWarrior. The documentation that comes with codewarrior is not helpful at all and little else exists. The only printed material I found on the topic was from circa 1992.

For about a month I was held up on the problem of creating tables. If you’ve ever used a Mac, I wanted to create tables like the Finder’s list view, in which the search results would be displayed. This seemed to be something nobody ever wanted to do. Macster, the Mac Napster client (which has since been purchased by Napster and been renamed “Napster for Mac”), had beautiful tables for search results, and I wanted something very similar to that. However, I didn’t know whom to ask or even what exactly to ask. I posted several questions to the codewarrior.mac.* newsgroups begging for help with tables. A very few kind souls lent me a hand and I began to understand how tables worked, but things were not going the way I had planned. The problem was abruptly solved when Mr. A (who I only spoke to every 2-3 weeks or so) informed me he had a table working. (It turned out that I should have been using CodeWarrior’s LOutlineTable class all along instead of trying to use their LTableView class… ARGH).

At some point I decided to move the operation back to the office. The new office was absolutely awful. The carpet was nasty, we had only old broken up folding tables to work on. Not a single non-broken chair. Even the reporter who profiled Aimster for the Washington Post (article here) agreed. Mr. A was still MIA and Mr. B was still in AppleScript land. At some point around March, Mr. B was officially no longer working on Mac Aimster and became the webmaster. So it was Mr A with his Powerbook and me with 50% of a G4 desktop. We were getting a lot of pressure from the bosses to show something, since it had been about 6 months. However, we were told by the Windows team that it had taken them longer than that and they were significantly better equipped than we were… they actually got some support from management whereas we got nothing whatsoever.

Anyway, once the table fiasco was behind us, development proceeded at a much more appropriate pace. We were hampered somewhat by the myriad changes in Aimster’s encryption schemes and all the new features constantly being added to the service, which added countless days to our development time. A moving target and all that, blah blah blah.

To make this long story shorter, we released Aimster for Mac 1.001 on June 26 2001, well behind schedule. We quickly released a new version the next day due to a pretty big bug. We were getting about 3,000 downloads of the Mac client per day, which we thought was great. The reviews were in and most people thought it was great, if a bit unstable. Well, “a bit” is a bit of an understatement. However, we had only our two development machines to test on and the program ran pretty well on them. When I mentioned to John that we needed more machines so that we could test, he basically said to forget about that idea. If people have an incompatible computer (such as, for example, an iMac) then too bad for them. How can we be expected to support every idiosyncracy of every computer system? This was his attitude. I saw no logic in it whatsoever.

Aimster moved its office again to Albany’s business district. We got a T3 into the office and it was really quite nice. No birds living in the vents like at the previous office, they actually had toilet paper in the bathrooms, whereas at the old office we had to bring our own, nobody was selling crack on the corner outside the office, etc.

When the summer came, several RPI students were hired to do various tasks. One guy did sysadmin stuff, one did development, one took over the webmaster position (Mr B had been laid off), one was working on the Spanish version of the program), and there were (I believe) a few others. I didn’t understand why these guys were here, but they were good guys and I didn’t have any problem with them personally, so I didn’t really give it much thought. I was just wondering how much money we were spending on these guys. Back in November-december there were a couple of times we didn’t get paid on time. We always got paid sometime the next week so I never thought much of it, but I later learned that those were times the company was out of money and we were awaiting more money from investors. So every 2 weeks I wondered whether or not I would get paid. And every 2 weeks I was relieved when I checked my bank account and saw that my check had been directly deposited.

Until August 10, 2001, a day that will live in infamy as far as I’m concerned. Friday August 10th was a pay day. I checked my account online and saw that the money hadn’t been deposited. I panicked. I called the office manager, who told me to talk to the project manager. He said that the payroll “wasn’t going to happen” and when I asked him why he said “he didn’t know” and when I asked him if it was going to happen next week, he said “I can only hope.”

At that point I fled Albany. I drove down to Queens to be with my girlfriend and to figure out what to do. Everybody told me that I would probably get paid next week, which I was hoping, but deep down I knew it was the end. I still had not paid August’s rent in Albany and had several other debts that I was planning to pay with Aug 10’s paycheck. I stayed in queens for about 2 weeks, as I saw no reason to return to Aimster if they were not going to pay me. I should note that the pay cycle was lagged by 2 weeks, so that when you get paid, you’re not getting paid for the 2 week period ending that day, you’re getting paid for the 2-week period that ended 2 weeks ago. So when I didn’t get paid on August 10, Aimster owed me 2 paychecks. This is not a trivial sum of money.

I begged and borrowed money from family and friends. When I returned to Albany, there was an eviction notice from my landlord since I had still not paid my rent. I borrowed $1100 from the friend who had first told me about the Aimster job back in October 2000 and used that to pay my rent and some other bills.

It is now September 2, 2001, and Aimster is officially out of money. With the remaining funds, everybody was given a pro-rated paycheck (which was really a loan against future payroll so they could avoid deducting taxes for now) and we got a speech about all of Aimster’s great prospects for the future. Big corporation X wants to license Aimster, company Y does too and will tell all its friends to do the same, blah blah blah ad nauseum. The management is continuing on as if nothing has changed. Except all of the programmers have returned to school. Nobody is working there anymore save some sysadmins and John himself. A couple of people were laid off, but basically everybody else is still considered an employee even though they’re not being paid. I am going to have to somehow get out of my Albany lease as I cannot afford this place on $0 income. I have applied for unemployment as that’s the only option I can think of. As far as I’m concerned, I was laid off. I can’t quit because then I can’t collect unemployment. I have been applying for jobs since August 10th but nobody really seems interested. Part of the reason I took this job was to gain programming experience. But one year of programming experience isn’t really that helpful.

The thing that really infuriates me the most about this whole ordeal was the fact that we were given no warning whatsoever. Nobody even had the common courtesy to tell us, “The payroll will be late this week.” Then when nobody got paid, nobody would even tell us what was going on. No word from management, not even an apology. We had to infer that there was no more money (which was later confirmed by the execs). Not only that, but 2 days before we were supposed to get paid, 60 computers were delivered to the Aimster office. 60 1ghz, 1GB ram AMD Athlons. So that’s where our payroll went? Isn’t that illegal? I’m sure I read somewhere that payroll must be priority #1.

So now I can only imagine what’s going on in the Aimster office. There are no programmers, so maybe John Deep just sits there staring at his computer looking at all the people online and wondering what went wrong. His blunders alone are enough to fill a textbook for a business managent course. But that’s another story.

So in conclusion, I have to say that my experience with Aimster has been one of the worst episodes of my entire life. I will leave Albany with nearly $10,000 more debt than when I arrived, not including the student loans which have come due. I wish I had just stayed in school. It is too late for me to even go for the 2001-2002 year, so I guess a year from now I’ll go back, since it seems nobody wants to hire me. I have so little faith in humanity at this point that I am considering teaching, just so I can have the opportunity to help some kid avoid making mistakes like this one.

Finally, I would like John Deep to know that I deeply hate him and wish I had never met him.

Sincerely,

Me