It's been a long time. yada yada yada, everyone has times
where they don't post a diary entry for a long time and go
through the schpiel of what happened since then. Here's
mine.
Boring old life
I got my drivers license. I got a job at Eat 'n' Park. I'm
very happy with my relationship with my girlfriend. 'Nuff
said.
school
Well, my last entry was about how I couldn't take my SAT,
but I got to take the test the next month. I got my scores
back, a total of 1210.
I applied to the University of Pittsburgh, but didn't get
accepted. My GPA is 2.44, so that's understandable. If I
don't get into Robert Morris College (The privates school in
Moon Township, PA, not the other one), then I'm going to the
local community college for a year, and apply to pitt and
RMC again (and whatever other colleges catch my fancy).
Code
I've done a lot of coding lately. I've been learning PyGame, which is an SDL
interface for Python, and right now my big learning project
is a breakout game. I know about xboing and xbreaky(?), but
I want to do something on the level of Krypton
Egg, which is the self-proclaimed best breakout game in
the world, and I can find no evidence to disprove that. I'm
having so much fun doing game programming.
I wrote a couple of sprite classes for PyGame, that are
general enough that I think I might release them as a
package. Maybe I'll even extend them to C, I think they
would be well-received by the (small, but fast-growing)
PyGame community.
Exanoks
Before I started on my breakout game, I started writing an
Exanoks client utilizing PyGame. I haven't touched the code
in a while, but I'm hoping that it'll become the "official"
client for Exanoks.
Web site
I completely rewrote my web site in Python,
using the Twisted.Web web
server. I really think it's neat.
Alright, I'm officially a retard and a slacker. And anyone
who is reading this gets to find out why. I'm a
senior in high school, and I never took the SAT or even PSAT
tests. So this year, I signed up for SAT on November 4th
(today), and also signed up for a SAT prep course for 150
dollars (both the test and the course fees came out of my
mother's pocket). Well, I went to ONE of the 12 or so
classes in the prep course, which means my mother can't get
her $75 refund back for students who attend all of the
classes.
And that's not all of it. Well, I'm obviously not out taking
the SAT right now, as I'm sitting at home typing this. Well,
I realized last night that I had no photo ID, which is
required to take the test. You're supposed to get a physical
description on school stationary signed by the principal if
you don't have photo ID. It was a little late for that.
It gets better. I lost the ticket that I'm supposed to
present at the test center for admission. Since I don't have
that, I can't reschedule the test for another date for even
a small fee.. I have to register all over again, paying the
full amount. Oh, and yes, there's even more. The deadline
for signing up for the next test on December 12 is passed,
and I have to pay a late fee to get in.
So, let's summarize: Didn't go to prep courses: slacker. No
photo ID: retard. No phsyical description: slacker (never
got around to getting one from school). Lost SAT ticket: retard.
I feel so good about myself right now.
Woohoo! I got my drum set today. It's not exactly a quality
one, but I know how to get a good sound out of it. It's got
one cracked ride ("repaired" so it doesn't crack further),
but it sounds good, and another huge 18"
crash that sounds like shit unless you play it very quietly.
Came with throne, sticks, stands, 3 toms, standard snare.
$150.
Now
on to become a drumming god!
I love Lisa. I wish she would accept help, though. She won't go to a doctor, and she's having problems. :(
FreeBSD
I installed FreeBSD last night, accidentally overwriting
my Debian /usr partition, but I'm not too disappointed,
because this is turning out to be quite nice. I've installed
bunches of applications with Ports, and I'm having a ball.
Although I have a few gripes. It took me quite a while to
figure out how to update the skeletons in ports, and I'm a
debian user, so I'm used to things like apt-get
update. After finding some 3rd party
documentation, and a little bit of tweaking around, I
figured out how to update the skeleton. Also, the Makefile
in /usr/ports really needs some work in the 'update' rule.
It doesn't check to see if $SUP or $SUPFLAGS are defined,
and it tries to run
$(SUP) $(SUPFLAGS)
$(PORTSSUPFILE).
This is obviously bad, because I
had no
idea that I needed to define $SUP and $SUPFLAGS from the
error messages I got (It was trying to execute
$PORTSSUPFILE). I think I may submit a patch that
helps out with the usability of this Makefile. Maybe check
for $SUP(FLAGS), and if they're not defined, use default
values, and if the 'cvsup' command isn't on the system,
recommend that the user install the cvsup-bin port.
I also had a few more ideas for contributions. A set of
update scripts that updated each different ports tree with a
different 'cvsup' command. This would require writing (or
generating on-the-fly) several different supfiles, one for
each ports category.
My other idea was to write a script that upgrades all
currently installed software if there is a new version in
the ports skeleton tree. I have to figure out the system a
little better before I tackle that one, though. Oh, and if
any of this stuff has been implemented already, please
someone let me (carmstro)
know. :)
Other than these few problems I've had so far, I must say I've been quite pleased with FreeBSD so far. It's a much more "integrated" system than most Linux distributions, even moreso than Debian, at least in my first impression. We'll see if that impression lasts long, though.
The Pixies kick ass.
I want one of those modern skooter things with the really
thin bases.
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.
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.
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!