Finger info for phaethon@icculus.org...



Raw source and immediate archive at http://www.icculus.org/~phaethon/plan/

Entries are currently sorted in: Newest First

Syntax (time and date in UTC, my local timezone is PST/PDT):
[YEAR].[MONTH].[DAY] <space> ~[APPROX. HOUR] <space> <space> [SUMMARY]
<empty line>
[CONTENT]
<empty line>
<empty line>



2002.04.21 ~03 Documenting MD3 and MD4

http://www.icculus.org/~phaethon/q3a/formats/formats.html

Partly I was bored, partly the forums at quake3world.com had me realize
documentation on MD3 and MD4 formats is pretty sparse. My documentation on
MD3 format were based on the files from the Q3AToolsSource package, and my
personal experience wrestling with the format for my Blender MD3 import module.

I have no personal experience rangling with MD4. My words on MD4 are mostly
shots in the dark, based on patterns from MD3 and Blender. Still, it's best
to get familiar with MD4 at some level, even if I am spewing hogwash as
I look over the header files.


2002.04.15 ~00 TinySCHEME

Poking around with Google, I came across TinySCHEME. It's a really tiny
Scheme implementation without all the setjmp/longjmp doohickeys I've had
problems with in other Scheme implementations. TinySCHEME is derived from
MiniSCHEME, (heavily) modified to work as the extension language to a mini
web server frontend. TinySCHEME compiles into QVM bytecode with some minor
modifications and a few extra libc function reimplementations.

I may wind up using this as the primary Scheme core.

In other news, I finally got around to slicing down the size of my .plan,
now that I have attained "hugest fscking plan file":

phaethon@gamehenge$ ls -s * | sort -n | tail -5
  8 theoddone33
  12 vogon
  16 chunky
  24 yoda
  36 phaethon


2002.04.13 ~10 Depressed over tail-recursion

I'm still depressed that my Scheme implementation isn't properly
tail-recursive, and that I still haven't figured out how to make it T-R.
It's been a real showstopper.


2002.04.03 ~07 "The CUSP emulator corpse stirs back to life.--More--"

http://www.linux.ucla.edu/~phaethon/cuspemu/

Turns out that UCLA Computer Science Department (which is one of the few
universities that places CompSci under "Engineering") is *still* using
the crufty PITA POS known as CUSP for its assembly/machine-language course.
I'm not too fond of having had CUSP shoved down my throat, instead of
a real CPU.

A short background on CUSP (Carleton's Utterly Simple Processor):
 * Developed at the University of Carleton (Ottawa, Canada) in late 80s for their assembly language course (they have since moved on to Real CPUs(TM)).
 * Fictitious CPU, exists only in emulation.
 * The only "official" emulator is binary-only (sourceless) MS-DOS EXE last updated 1992.
 * Copyright encumberance causes... "special parties" for the UCLA CS-33 students.

A short dump of CUSP specs:
 * 12-bit address bus, 24-bit data bus
 * 4096 (i.e. 2**12) memory words (24 bits per word)
 * 4096 I/O ports (8 bits per port), separate address space
 * memory addressable 24-bit or 8-bit (but not 12)
 * 1 24-bit general-purpose register
 * 4 12-bit special-purpose registers
 * 4 CPU condition flags
 * 10 instruction addressing modes
 * 1 instruction occupies only a single whole word
 * Five devices:
  - Keyboard, input
  - CRT, output (monospace text, 14 rows, 38 columns)
  - tape, input/output permanent storage (emulated as a file)
  - printer (emulated as a file)
  - timer (in emulated system ticks, not host time)

PHFC (expands to many thing: Officially "Phaethon's Hack For CUSP", but
my personal favorite expansion is "PHFC Handles F***ing CUSP") is my
(incomplete) GPL'd implementation of the CUSP emulator. For varying
reasons, I got dismissed (kicked out) from the CompSci program at UCLA,
so I have no chance of taking CS-33 again. So I don't have need of
completing the emulator.

PHFC is, as far as I recall, the first time I started a large-ish
programming project, using compilation in parts, autoconf/automake,
function pointers, and (meaningful) data encapsulation. As I said,
I'm not too fond of CUSP. This fact is reflected in my choice of
filenames and variable names. A few choice selections:
  * cataplex.l (asm source lexical analysis)
  * cramps.y (asm source grammar)
  * spasm.c (assmebler, linker)
  * phfc_bitch_and_die() (error messaging)

Just recently, though, a student taking CS-33 this quarter sent me e-mail
querying about PHFC, along the lines of actively helping development. I'd
really prefer handing off the project to someone else, since I'm not in
the mood to hack PHFC to completion (for whatever "complete" means).
But not many people would be both willing and able to take on the project.

On another note, turns out I had my old e-mail address on my PHFC pages,
which is no longer valid (much less its domain). I'm surprised he found
my current e-mail address at all. Well, OK, granted, it's the canonical
pattern of ${~username}@${domain} reflected in the URL, but this person
had determination to contact me [above mindless clicking].


2002.03.27 ~06 IRC snippet

This is gonna be a a classic for me. Victim's name obscured out of (little
remaining) respect.

21:55 < XXXXXX#blenderchat> anyone interesting in descussing modern philosophy?
21:55 < XXXXXX#blenderchat> anyone interested...that is
21:56 < phaethon#blenderchat> 42
21:57 < XXXXXX#blenderchat> 42? what the hell does that mean


2002.03.26 ~18 ZBoxZ dev access

http://sourceforge.net/project/memberlist.php?group_id=7522

Woohoo!

In other news, I hacked on ZBoxZ proper some more. I converted the app's
preferences data structure from an array of chars to a struct. Inspired
by LispMe, I also added a "left-handed scrollbar" option that moves the
scrollbar over to the left side, for the left-handed folks. This way,
left-handed use doesn't cover half the screen face with the hand and
stylus. No, I'm not left-handed.


2002.03.26 ~01 PalmZLib, PiNGer

An interesting little experience combining my two favorite Palm apps.

In order to properly hack on PiNGer, I hit the PNG docs on www.libpng.org.
The format is surprisingly simple, flexible, and powerful. I'm surprised
no one created it earlier... everyone probably figured GIF was "good
enough" until The Great GIF Ymezth started.

Anyway, so I started hacking on PiNGer. Well, "hack" is probably an
exaggeration at this point... I just merely shuffled variables around and
introduced a boatload of data encapsulation. This will certainly help in
maintaining and extending PiNGer in the future. Of particular note is
how PiNGer accesses various system structs directly (i.e. not using
accessor functions), a deprecated method starting with PalmOS SDK 4.0.

I ran frequent compile, upload, run cycles to check effects equivalence.
Lots of crashes. Last time I remember having crashes this frequent was...
um... using my TNT2 with nVidia drivers 0.9xx-something-something.

LispMe's DatabaseManager functions (dm-*) came in handy for tracing
PiNGer's progress. PiNGer uses a "scratchpad" database as a buffer
holding the decoded image. After a reboot, I could use LispMe to dig
through the corpse of the scratchpad. I preferred this over dragging
the PDB to the desktop then dissecting it there. I think it was because
I could start whalloping on the db with Scheme code =)

The GIF decoder seems broken. For one, PiNGer can't decode any of the
remaining GIFs I happen to have. Two, PiNGer's GIF decoder advertises
having used pieces of gif2png (gifread.c in particular), but after tracing
the two sources, this doesn't seem true any more (maybe gif2png updated?).
Still, not like this is a big loss. I'd just as soon rip out the GIF code.

Creating an updated PalmZLib from zlib-1.1.4 was very straightforward.
Tom Zerucha's 1.1.3 patch for zlib->palmzlib fit snugly with zlib-1.1.4
(read: no serious rejects by patch(1)).

I found a free-speech JPEG compression-only library for PalmOS. It is
just a Palm-ified port of the JPEG reference library (libjpeg6b), but the
_de_compression routines were left unported. As it were, the library was
created/ported to accomodate a camera module for Handspring Visor. For
the curious, www.eyemodule.com[/developer/index.asp].

I also started hacking the ZBoxZ core. My greatest achievement there as
of this moment is getting the file's list to update on a scroll event
without causing screen flicker (which was caused by erasing the whole
screen then redrawing every little component). An HTMLized version of
the Palm OS Reference manual would be of immense help to me; I find
something profoundly disturbing in "flipping through pages" of a manual
on a screen.

I should also add my PalmOS work to my .project, and finally get around to
snipping my .plan to something smaller than a monolithic 26K text stream.


Life: No Life found.

Project:
1. Project FI, Quake 3 mod (http://www.icculus.org/fi/)
 a. provide an extensible environment for a Q3 mod. The intended notion is that of "mutators" in Unreal Tournament.
 b. FI:WFC, a more faithful reproduction of Q2WF for Q3 than WFA.

2. QuakeScheme
 * Extensible language for Project FI.
 * Builds on TinySCHEME (http://tinyscheme.sourceforge.net/)
 * Deal with idiosyncrasies of Q3VM not handled by most other Scheme impls.

3. QS GUI/widget set
 a. Need to research advanced OO and GUI of Scheme derivatives and Common Lisp.
 b. Replication/extension of boxy widgets in Q3TA (Q3 PR 1.27+).
 c. Pie menus -- just to annoy theoddone33.

4. PalmOS stuff
 a. PiNGer (gfx viewer)
  * generalize interface to a "any-gfx" viewer (libpnm?)
 b. ZBoxZ (file manager)
  * beef up its appness: menus, dialogs, pen actions


When this .plan was written: 2002-04-21 00:23:59
.plan archives for this user are here (RSS here).
Powered by IcculusFinger v2.1.27
Stick it in the camel and go.