RSS LJ

August 10, 2004

Note to self ()

by fluffy at 10:01 PM
Don't trust Windows-based CVS stuff to not mess up branches, especially when the reason for the branch is to protect a major milestone internal build from getting messed up when I rearchitect things for the next phase of development.

(I was at work until 8PM working on some basic refactoring, then I checked stuff in, then I was at work until 9PM to clean up after it and split my development into a separate module like Antoine suggested I do to begin with, in order to avoid precisely this problem. Gnar. I'm still not sure if I reverted all of the files which were affected, either.)

Comments

#3307 08/10/2004 08:09 pm Oh Gord!
Tell me you're not using sourcesafe...please tell me you're not using source safe.

If you are, please move to something more robust, like storing printouts in cardboard boxes next to the furnace.
#3309 08/10/2004 08:22 pm
I believe I already said we're using CVS.

A confluence of three things happened:

- we're using CVSNT, a craptacular port of CVS to WinNT (which doesn't actually map D:\CVSROOT into something various CVS clients won't choke on) which seems to have trouble with tags and branches
- TortoiseCVS (the client I'm using) doesn't have very fine-grained control over reverting files
- I was pretty tired due to a long day of code merging, problem-explaining, arguing, manager-going, and subsequent dev tree forking and didn't think to test that the branch actually worked

The brief summary (I don't feel like going into detail) was that this morning I was working on merging James' stuff with mine and found that his "platform-independent" code wasn't even close to such, and it was exceedingly craptacular... at lunch I politely mentioned that I was running into some portability issues with his code and said that we should consider forking the source tree into two totally separate versions and just do it more like a parallel development, at which point he yelled "THAT'S BULLSHIT" at me and refused to actually listen to what I had to say, much arguing ensued, we got back from lunch, I met with Jason (our manager) to talk about the issues I'm having, various one-on-one talks happened (Jason-Antoine, Antoine-me, then finally Antoine-James), and so tomorrow we're going to have a meeting between the four of us to try to work these things out. In the meantime, I just did the CVS branch to try to do the parallel development idea as a temporary thing, but the branch didn't hold and so after Antoine and James had left I continued to work on what I thought was a separate code fork and then when I checked in my changes, it clobbered the HEAD branch which had previously contained the internal development milestone, and which wasn't tagged, making a revert much more difficult than it should have been.

I think I fixed all of the files which got messed up but I'm not positive, so I also sent email to Antoine and James to let them know what happened, and I'm going to try to go into work early tomorrow so I can make sure.

So right now I'm tired but can't sleep.
#3311 08/10/2004 08:38 pm Yikes
They don't have a linux box they can throw CVS on? Too bad...

I use this weird CVS interface called "bash". Smile

Sorry to hear about your other issues.
#3312 08/10/2004 08:53 pm
nope, we're a Windows-only shop for now. it rather sucks. our Exchange server (which is in Montreal) is always fucking up in aggravating ways, and so on.

when Antoine was setting up our file/CVS server I asked him why he wasn't using Linux and Samba, and he said he just wanted to get it working as quickly as possible, but he still had to install/configure/etc. XP on the system, and the user permissions issues were horrible, and the CVS server is a crappy kludge (and because of the aforementioned D:\CVSROOT thing I can't even use the cygwin commandline CVS client), and so on. But that's kind of how a lot of this stuff has gone — instead of doing it the right way to begin with, Antoine decided that getting it working first was more important. I think by now I've more than proved my point that spending the extra time to do it right the first time would have saved so much time down the road...

Oh, and Antoine really needs to understand Amdahl's law. He's annoyed that my filesystem layer isn't as fast as it theoretically could be and wants me to optimize the hell out of a piece of code which is called maybe once a frame and doesn't even take up any time right now, and at the same time he doesn't care about the massive speed-optimization stuff which had to happen for the other parts of the system. He also really wants me to switch from a binary search on a sorted list to using a hash table, because hash tables are "sexy" and binary searches aren't, never mind that hash tables take more memory and are usually much slower with the amounts of data we're working with... meh.

I agreed to try optimizing the stuff more if there was an actual measurable impact on performance. Which there won't be.

(The particular issue is that rather than storing our filesystem with nested directory structures or whatever, it's just a flat list of filenames which happen to have path separators in them. He doesn't like this, never mind that doing multiple levels of lookups on a tree structure is slower and takes more memory, and that I have an extremely clever solution to the problem of changing "directories" which works by filtering out sets of files, and makes clever use of pointer aliasing to take basically no memory or CPU, and it gives a huge performance gain when only looking at a specific filtered set and so on.)

It's kind of weird in what way his priorities are messed up with some things. I'd find it funny if he weren't my team lead.
#3314 hulver (unregistered) 08/11/2004 03:21 am Just wondering
I guess you most likely can't answer this, but is the game you're working on anywhere in this list?

http://press.nintendo.com/articles.jsp?id=3666
#3315 Anonymous 08/11/2004 03:33 am Eep.
Hmpf. I hate to sound negative, but all the things you mention, such as pressing to optimize the wrong parts of the code, pushing for cooler sounding search algorithms that might have a better scaling relation but a worse performance on the given data set, turning up their nose at something that works because it's simple (KISS!!) and is not "true this or that" (when the difference is debatable), they all sound like rookie mistakes and newbie fixations. That along with some of the hubris we discussed in the previous entry sounds a bit dangerous.

My first idea would be to invest in education. Spend some time talking to people with a printout from the profiler, and explain while optimizing the resource loader that is only invoked once in a while is not going to help the game significantly. Anyone, even a nonprogrammer, should be able to get that.
OTOH, you probably already tried that, as a reasonable person.

I suppose it's hard being "the new one", especially when you know what you are doing. Best of luck, and may the game be fun to play and well reviewed Very Happy
#3316 Ranieri (unregistered) 08/11/2004 03:36 am
Just a quick addendum to let you guys know who the A.C. of the previous post was. Yes, I forgot to fill out the form. Shame on me.
#3317 08/11/2004 05:07 am Re: Just wondering
hulver
I guess you most likely can't answer this, but is the game you're working on anywhere in this list?

http://press.nintendo.com/articles.jsp?id=3666


Questions like that are fine. Smile

We're not on that list.