Older blog entries for scjody (starting at number 4)

Harbinger: Thursday's early morning bike ride ended on an unpleasant note as I rode up the Rideau Canal to discover that a cyclist had fallen into a drained section of the canal at Hartwell's Locks. Pretty serious fall, several meters.. I don't know if they're alright or not, there was a news team there but I haven't seen anything reported..

Unpleasantness: I have so far made a point of not talking about my job search here, but shortly after getting home I discovered a certain company I had interviewed with had decided not to offer me a job. Quite disappointing as I liked the company and position, even if it wasn't free software. But what annoys me the most is that they ignored all my phone messages and emails asking what was going on. During my second interview, they told me that a decision would probably be made within a few days, but after a week of waiting, I started calling them. It took a furthur week before I could get ahold of someone, who told me that they'd sent me a letter, which still hasn't arrived. All our other communications have been email or phone.. why send a letter in this day and age?

On a complete tangent, I've noticed that a significant number of people here live in Ottawa or are moving here: zeevon, Skud, cmacd, dyork.. Anyone else? Show of hands? :) I've only been here for about a month, but it seems nice.

I'm still trying to get a 2.4 kernel running properly. I need 2.4 so I can access my (USB-impaired) friend's Canon S100 (USB only) digital camera. Even 2.4.0-test9 doesn't work with gphoto2, so I tried test10-pre4 (which doesn't compile.. yes with 2.7.2.3) and then test10-pre3, which panics on boot. I don't have the right kind of cable here to connect a serial console, so it looks like a trip to Radio Shack tomorrow if I want to see where it's panicing.

I'm also going the other way, to see what kernel breaks support for my DE205 network card. I started with 2.3.1 and am patching, grepping for ewrk3, and compiling if the driver has changed. I've made it to 2.3.15 and so far it works. In 2.3.45, the driver was marked obsolete with no indication of what replaces it. In 2.3.44, the driver is present but won't compile.

18 Oct 2000 (updated 21 Oct 2000 at 03:38 UTC) »
Hacking: Finished the Gnapster modifications, but before I make a patch I want to see if I can avoid making Gnapster require libxmms. I would imagine this is possible, and would make my patch more likely to be accepted. On Polegame, I modified the timer code (fairly critical to gameflow) to run under Linux.. time.h allows much cleaner code than the Windows stuff I'm porting!

Annoyance: I finally compiled one of the 2.4.0 test kernels (test 9) to get USB support working for my friend's new toy.. Unfortunately my network card (DE205 / Etherworks 3) is no longer supported. Some digging reveals that back in 2.3.45, a bunch of new code was accepted into the driver (ewrk3.c), but at the same time, Config.in was changed so that you never see the option to compile it in. Manually editing .config (wow, just like the old days) allows me to get it in, but it doesn't compile. I have no idea what to do about this.

Movies: Have watched quite a few since last week.. Of these I highly recommend Rouge (red) (of course, see the beginning two movies of the trilogy first:) and Lola Rennt (Run Lola Run). I have been meaning to see Lola for a while, and as it was playing at a local independant theater, I went to see it. Unfortunately, on the way home, I lost my bike computer, so I put up a couple of signs to test peoples' honesty.

Life: My sister was in town last weekend, so we went out for various meals and activities. Unfortunately she sprained her ankle on Friday night so on Saturday we went to the hospital.. It's apparently much better now. Also went to Alia's birthday party on Saturday night.

9 Oct 2000 (updated 9 Oct 2000 at 14:37 UTC) »

Spent the afternoon playing with Gnapster, so that downloaded .mp3's would automatically queue in xmms. That much was fairly easy, but I decided to add an option to Preferences. This was more challenging, given that I've never done any gtk programming. The gtk part isn't working yet.. I'm going to wait until Kevin gets home and ask him what I'm doing wrong :)

Oh yeah that reminds me, it's Thanksgiving weekend in Canada.. and I have nowhere to go :( Not only that, but the guys I'm staying with have both gone home for the weekend. (Home for me is Newfoundland, the other side of the country..)

I finally did some polegame in the evening. Decided to try compiling Gameloop.cpp (which is where all the fun happens). I turned up a whole stack of problems, and am now working on them. One fun thing I discovered: there is another way for the game to end: If the direct draw init fails, DestroyWindow is called. Not sure how to port this. Probably just exit(1). I also commented out a lot of sound initialization code.. I'm going to comment out all sound for now. I'd rather just get the game working first.

After completing Gameloop.cpp, I moved on to Layers.cpp. There, I discovered a rather interesting piece of code:
#define dSCROLLACCELERATION = 1;
[...]
nScrollVelocity +=dSCROLLACCELERATION;

I had to stare at it for a while before I realized what was wrong, but now a larger question: why did it compile correctly under Visual C++?

I finished Layers.cpp and tried to compile the rest of the .cpp's in control/ . The only one left that won't compile is Timer.cpp, and I'll work on that tomorrow. It seems to do a couple of Windows-specific things.

8 Oct 2000 (updated 8 Oct 2000 at 04:40 UTC) »
Yesterday: No coding. Dad was in town on business so we went to MEC then went out for drinks, supper. We went to a pub with a huge selection of international beers, and I had a poisonously strong (~8%) porter followed by a more sedate stout.. Unfortunately, we didn't end up eating until about 21:00, by which time I was ready to eat the table, having not eaten since lunch at 12:30.

Today, spent some time on irc #debian, someone there asked how to get comments from an HTML page, so I wrote a Perl script (it sounded fun and I was bored). Unfortunately it took longer than I expected and he had left when I got it done. But it was a fun script to write.

I finally got down to Polegame late in the evening, and wrote the needed code to quit the game. *cheer* ai.cpp now compiles. So does everything else in the ai subdirectory after a few case and \ to / changes in the includes. Not sure if it will link though. I'm really starting to need Makefiles.. Must find someone with VC++ who can produce a set for me.

Currently working on the code in the AI subsystem that quits the game. The game exit is coded into the sprite control code for a jacket slam (jacket slams are used during scene changes in the game, as well as at exit). The way it works under Windows is to use PostMessage to send a WM_CLOSE event to the current window. The callback for WM_CLOSE cleans up a few things then exits. To replace this in a platform independant way, I have a few options:

  1. Add some gotos. I considered this option for about 20 seconds before slapping myself silly :)
  2. Rework the code, quitting the game in a more traditional way (e.g. running off the end of main() )
  3. Make my own callback which would be passed to the appropriate sprite on initialization, and which would call code similar to the WM_CLOSE callback.

After careful consideration and code browsing I have selected the third option as the least painful. Reworking the code would be too complex as I have no way of testing it right now.

Well, that's about it for tonight. I know exactly where I want to put the callback, and I have a fairly good idea )of what it needs to do. I went to see Titus tonight, which severely cut into my coding time.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!