Older blog entries for carmstro (starting at number 3)

Coding on Exanoks

I did a lot more coding this week. Thursday I skipped school just to code. Theoretically, my pthread function queue is somewhat finished, and Ken and I are working to integrate his server code with my queue code. Hopefully soon we'll have some bare-bones client interaction (Only by telnetting to the server, though).

Fooks will no longer be written as C++ classes, instead being a shared object containing a specific set of C functions. I can't really explain it perfectly, but for some reason C++ classes in a shared object can't be dlopen()ed and instantiated directly. Ken is working on an inheritance system and a base Fook class that all the functions will be loaded in to. I have to start looking at and trying to understand his code.

Next on the list of things to do is work on the world data routines, which will offer base functions to Fook programs. I have much (most?) of the API documentation done on this, and I'm proud of how elegant some of my solutions are (Well, at least I hope they are). Also we're going to have to start working on a real client for Exanoks. Ken wrote a C++ wrapper for SDL that he'll be using in the client (It's called OODL, for Object Oriented sDL, I think it's available at sourceforge).

I'm really excited about all the progress we've been making, and also about all the knowledge I've obtained in these last few weeks.

Coding on Exanoks

Well, after a long and heated debate, I decided to switch the queue system to C++. Anyway, I got a lot accomplished today. I learned pthreads and singly linked lists, among some other smaller things. I'm really proud of the code I've been cranking out lately. My goal of having a finished queue system done by this past weekend was of course not accomplished, but that's understandable due to the change of implementation language.

Real Life

It's amazing. Ever since I actually got a real life a month or so ago, i've been coding TONS more productively. I guess it has to do with burn out. In the past I would be on the computer during any and all my free time (which there was a lot of), and I would sometimes just get so sick of it. Now I get on the computer, and I think "Okay, time to get productive with this time I have". Yum Yum Yum.

Coding on Exanoks

<sys/socket.h> is horrible. Don't argue with me on this. Anyway, Ken and I wrote up some minimal socket server code, and we're testing it. For some reason, on my machine, and only my machine, the server will always crash when one of the clients manually disconnect. The code is in the Exanoks CVS Tree (the main.cpp) file. I'd appreciate it if someone tested.

I need to really start working on the Python Microthread queuing system. It uses uthread, and it's some really wizardly stuff. Hopefully i'll be able to get a functioning queue this weekend.

Real Life

I've been hanging out with my girlfriend too much. Haven't been studying enough. I'm supposed to be going to a Kaplan SAT prep course after school on Mondays, Tuesdays, and Thursdays, but i've been going out with my girlfriend instead. Hopefully, next week we'll start going home and studying together instead of gallavanting around town. :)

Well, I'm a new advogato member, and I guess I need to get my name out there so people can certify me as an apprentice ;)

Coding
I've been working on the main C(++?) server code for Exanoks today. I have very little experience actually coding in C*, so it's been rough getting used to everything. (good thing I have Ken Rockot around, the guy who I'm working on Exanoks with. He's helping me out a lot with C*) I have a basic non-threaded server ready that accepts connections and prints out some messages. Next step is to add threading code.

I started out doing this in libCommonC++, but I just got sick of it and decided to code it the old-fashioned way, with sys/socket.h.

We don't have any protocol defined for client communication yet, so work on the main server code is going to stop soon, and I'll probably work on the base Fook library (in C*) and the protocol (on paper). I'm gonna have to start working on/finding people to work on graphics/sound/storyline for the first real game we're going to release for Exanoks. You can never start too early when it comes to quality game content.

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!