• entries
7
2
• views
5120

Random thoughts, discussion, and rants of a CS undergrad.

## Photon re-re-rewritten

I finally decided on a reasonable design for my Core/Task/Kernel issues. A Core simply registers a simple Updater class with the Kernel and then reads any data from the Updater, a reasonable example is below:

class Core{    public:        Core() :            task_(new CoreUpdater())        {            Kernel::getInstance().addTask(task_);        }        // core interface    private:        class CoreUpdater : public Task        {        friend class Core;        public:            void update();        private:            // data members        };        CoreUpdater task_;};

This works very nicely, it also prevents Application and the various Tasks from being Singletons. I'm still dissatisfied with my current use of Singletons, Log, Kernel and each of the Cores are singletons. If anyone has any suggestions (or actually reads this thing) I'd love to hear them, if you want I'd even give you credit for your design suggestion if I really like it and go with it)

As far as other news is concerned, I've been bored lately, now that I've been in classes a week I feel comfortable commenting on how they seem:
Univ. Physics II - seems easy enough, new material but a good pair of teachers, tons of webassign homework though
Discrete Math II - pretty awkward teacher, hard to follow and spends 30 minutes of class making awkward statements
Professional Communications - not the most interesting class, but seems alright. I get to write a user manual / do a presentation on some software I like. I will probably choose something like SCons.
Computer Organizaiton - I was worried after the first day, because it seemed like tons of new material. I read a little and I'm already ahead. Won't be bad but won't be a breeze like CS4 either. Assembler/Logic Design are the two halfs of the course. Only bad part of CompOrg is this kid in the class that I hardly know but he seemingly refuses to acknowledge me when I've said hi before, I've never really dealt with this before so it sort of annoys me, even though I know I haven't done anything to him.

Cool progress on photon today, I added a State/StateManager which evolved into a Task/Kernel system. I've always liked Richard Fine's Enginuity series but most of it doesn't fit my style very well. I finally took some inspiration, my Task/Kernel system is similar in many ways to his, I made some STL tweaks, and I'm using boost::shared_ptr, but I feel like the series is owed some props nonetheless, my Task interface is extremely similar.

I'm completely changing the way that the entrypoint system is done, the previous system was a hack that made C++ look like Java. I made a post asking for advice, but unfortunately I haven't gotten any replies. I'm going for a system somewhere between 2 and 3 right now.

I rewrote test00 for photon, which is important because it's essentially the basecode, it makes an empty window, most of the other basic sample programs are tiny modifications on test00, especially with the new Task system.

Kelly gets back sometime today, and I'm getting sort of excited about starting my 3rd quarter Monday. It feels weird that I'm about to start my 3rd set of classes in college, when I think about it it doesn't seem like it's been 6 months since I lived back in Cary at all. At the same time, it feels like I've been here in Rochester way longer than 6 months. Maybe I'm a victim of some sort of time paradox, and I've been in rochester for like 2 years, but I've only been out of Cary for 3 months... that's probably what it is, time and space must have converged temporarily.

## Progress is progress

Made some progress today, and I got some food too. That makes today a good day. wow, that's sad

• VideoCore

• Application class reconfiguration

• ResourceManager implementations

• video::Texture class (test)

• util::ResourceFile

• video::Color,video::Pen,video::Font

• move OpenAL beyond setup

I slept late today, and I am on a roll so I think I'm going try to test all complete interfaces.

I'm going to examine each module line by line, write a few tests, and even check my docs (built using NaturalDocs)

## CozTheme

I also, from time to time, work on a small php project that I use to maintain my webpages (ie. ZEngine) It's named cozTheme for historical reasons (the same reasons my GDnet username is cozman)

I'm thinking of modifying cozTheme to be nice with it's use of mySQL so that when I get photon online I could host a wiki on the Sourceforge server as well as the cozTheme database.

I know that most likely a Wiki prefixes all of it's variables, and it's likely I wouldn't have any problems, but at the moment cozTheme is extremely sloppy with it's db access.

## Some work, some sleep

I'm still up.. so keeping with tradition, I'm posting.

I think I've been distracted lately, I've been pretty bored, and I really want to hear from Kelly. The only good news today was that I finally got all of my grades. My physics grade (pretty much the only one I wasn't too sure about) came in, I got a 4.0 this quarter, which makes me happy because last quarter I got a 3.75, mainly because I did terribly on a midterm.

I didn't get much work done today, I played a lot with python and wrote some scripts to convert nova/photon-old code to photon code.

I realize I never really explained what I was working on, so I figure I'll lay it out now.

A while ago I made something that quite a few people have used or heard of, ZEngine. I hated ZEngine since version 0.8.1 or so, and instead of releasing 0.9 I split the project, rewriting almost all of the inside, and 80% of the public interface.

I generally refer to this split as nova or photon-old. (for the curious it was briefly named nova, then renamed to photon before I left the project in favor of another)

After a long period of not getting much done, I decided to return to nova/photon-old, and that is what photon is. It's an OpenGL library, mainly for personal use, similar in features (but not design, implementation, or coding style) to ZEngine.

I'm going to lay out what has to be done on photon, perhaps that will encourage me:

• VideoCore

• Application class reconfiguration

• ResourceManager implementations

• video::Texture class (test)

• util::ResourceFile

• video::Color,video::Pen,video::Font

• move OpenAL beyond setup

Alright, well.. I'm going to get to bed.. I'd bet on seeing another post in roughly 24 hours.

## Schedule Whacked, Not Working

I threw off my schedule already..

I've been on Spring Break for just a few days and already I've screwed up my sleep schedule. I couldn't sleep last night, I layed in bed for an hour last night trying to sleep until Andrew ended up turning on the TV because he was up too, then I didn't get to sleep until like 10am.

Now it's 6AM the next day and I'm up, after sleeping from like 10:30am until 6:45pm. I'll probably get to bed soon, I've become like completely nocturnal in 2 days.

I was off to a good start, I wrote some OpenAL code, and documented a ton of code I had written, also reworked my exception class heirarchy. Then I decided to try compiling boost::python.. which is why I was up until 10am.

When I woke up I played with it some more, downloaded SWIG but got distracted learning SCons. I've got a reasonable SConstruct file built, it's better already than my makefile.

I ran out of Cheers on TiVo, so I'm not sure what I'll do while I try to go to sleep.

note to self: get some real food tomorrow, lunchables and goldfish isn't cutting it

Noticed I only seem to post when I've been up all night.. oh well, that means I'll probably post a lot this week

## Why I'm up

I decided to make this a separate post, not sure why.

Registration was today for 2nd years, so I stayed up all night so I could make it into the classes I need. I made it into my classes no problem, so it looks like next quarter I'll be taking Professional Communications (a class on writing documentation it seems), University Physics II, Discrete Math II, and Computer Organization (an asm class, I'm done with the core CS1-4 sequence now)

I have FYE (First Year Enrichment, which is as useless as it sounds) at 11, so I decided not to go back to sleep b/c I shouldn't miss it (we have to pass it, but that pretty much just means going) I'll probably come back after Discrete and sleep until CS.

I've been working on one nasty piece of code almost the entire time I've been up, which makes me mad. It's STL heavy so it's a pain in the ass to debug, I converted my old ConfigFile code to a much better approach, but something isn't working right.. gdb isn't helping at all either.

## Introduction

I've been around gamedev for a while, I finally did this whole GDnet+ thing and now I'm giving this journal a try. I'm not sure what I'm going to write here, but I figure I should make at least an introduction post.

My Programming History:
I learned QBASIC a long time ago, then learned C from an ancient book that was falling apart, even writing a game in Mode 13h, followed by a language I found called Euphoria, from there I went to C++, dabbled in Perl, then went back to C++ and learned most of the STL. Then to teach some people, and also for my first programming class here at university I learned Java. I've also had experience in C#, PHP, Lua, and a few other minor languages. 90% of the time I'm writing C++, the rest of the time I like writing Python, it's one of my favourite languages.

School:
I'm a hybrid first-second year here, I currently have 40 credit hours which gives me 2nd year standing, but I've only been here a few months, so I'm not sure how to answer the question truthfully. I don't know what else to say, I'll probably talk about school/class quite a bit on here if I remember to update.

Personal Junk:
I'm an 18 year old CS major at RIT, I grew up in North Carolina and got out when I could. I live with Andrew, my homeboy from 2nd grade, who is a CE major here. I spend a ton of my time with my girlfriend, Kelly, who is a BioChem major here.