Recent blog entries for maelstorm

Joy has a new release -- it's up to Joy1, from Joy0. RPN, with more functional programming Joy.

They apparently have a interactive tutorial that runs under Joy, too.

Starting to force myself to learn Ocaml at home for some sound analysis stuff that a friend and I are going to play with. Should be interesting. This weekend, we learned a little bit about how Ocaml structures program code, and we also looked at his sound engineering text, and found out more about PCM, and sound in general.

Still swimming in a sea of ennui.


Trying to gear up my code for eventual migration to using something like struts, while still allowing the client's developer to take small evolutionary steps that he'll be able to grok. So the first thing I've done is set up a generic form listener that is associated with a java bean (much like struts). I don't want to re-invent the wheel, but I don't want to throw too much at him at once.

I'm not sure this is the best thing to do, though. It's too easy for him to take my implementation as holy. Which is not what I want. I don't want too much of the existing code to stay in its NIH mindset. But there is alot of code to change to make it fit something like struts.

My GC implementation for coldstore is stalled. Haven't had much drive to work on it because of...
Life is shakey right now. Still dealing with grief and loss. I've invited my brother to come out and stay with me for a few weeks so he can take some time to mourn, too.

My relationship with my gf is a bit rocky right now. It will be interesting to see how we deal with everything.

Feeling tired.

My father died slightly after my last journel entry. The funeral was three days after my birthday.

While I didn't have a good relationship with my father, it still hit me rather hard. Especially considering that a majority of my family weren't all that displeased to have him pass. I ended up giving his eulogy, and being the only one that could express any love, or compassion about him. He was definitely a hard man to love. And he was an abuser for most of my life. But he also managed to show me things that have shaped me since.

He worked for the phone company before (and after) it fragmented into the Baby Bells. When I was very young (maybe 7), he introduced me to unix on a teletype. Nothing entirely special there, because I was too young to entirely understand it, but its nice to know what happened in retrospect.

Later, he bought me an Apple II (and a Timex Sinclair), which put me on the road towards programming. At the end of grade school, we got a fast (300 bps) modem, and he introduced me to the BBS scene.

There are fragements of memories, wisps of good times that I remember him having with me... pushing me towards a better me then I believed in.

And despite the drifting apart that we did over the years, I miss the parts of him that I maintain in my memories.

Looks like coldstore is almost at its next point release stage. Freon (a programming language in the same style as MOO and C++) is almost fully hosted under the persistance engine. Networking has a preliminary implementation. And we now have a simple MUD with an eval/apply loop built into it (this means that the store can be modified and built up from within the image.

I'm currently working on getting our interning functions, and the rest of the bootstrapping into the persistant store working more cleanly -- at the very least, make the bootstrap a little more platform dependant. It will still be dependant on the platform having the ability to run ELF based executables, and load ELF dynamic libraries, but certain assumptions as to how things work within the compiler for how symbols are mangled will vanish.

Still have to flesh out some of the layer seperation between the persistance engine and the layer 1 ADT collection.

opiate has been working like a madman. Basicly he singlehandedly managed to get the mud working, groked some more of the MOP we're using on top of C++, and then went ahead and extended several of our meta classes. He got networking working in a couple of days. All in all, I'm very, very impressed with all the work he's managed to do.

Got back from London about a week ago. Took this long for me to get mostly back into the right mindset to work here in the states.

The folks at Advocacy Online treated me very well. Made sure that I saw London. Spent a few days just wandering through Hyde Park and Soho. I didn't have nearly enough time to experience it all, considering that I was pulling close to 11 hour days every business day that I was there.

I think I miss being out there, even though I'm happy to be back home. Maybe the opprotunity will come up again, soon.

Project Notes

Have a basic version of Object working until toad and I flesh out the view/filter hierarchy. Shouldn't be too bad, it's just a little repetitive.

I also finished a caching mixin for all the Data subclasses. It will basicly memoize any search result in a (presumably) faster cache collection class. As long as the cost of lookup in the cache is lower then the cost to look things up in the the collection that is using the cache mixin, it's a win in time, if not space. At least the cache stores thing in strong references right now, rather then having a second copy of the data.


3 days till I fly to London. Hopefully, what I'm current suffering from is allergies, and not a cold. At any rate, I'm gonna need to stock up on decongestants, or risk rupturing one of my eardrums again.

Don't feel entirely prepared -- my slack coefficient at work is rather high, so the ratio of work completed/work that needs to be finished is slowly approaching zero. Blah. Need to finish documenting/exporting the db schema so I can load it up on the host machine once I get there. Worst thing is that we won't have a machine to install things on until midweek. Delays in shipping, I guess.

My stepdaughter is beginning to pull out of her depressive slump. And I seem to be reaching a new level of acceptance. She asked if she could call me 'dad' the other day. That felt good.

Project notes

Putting this here until I update the coldstore task list on sourceforge.

These are tasks for adding a view/filter class hierarchy for coldstore. I feel a little like we're re-writing STL's tricks with iterators. Most of the items that have the Or suffix are actually filters, not full fledge sets.

  • OrSet. ObjectSet : public OrSet, adds pointer back to its real object, makes mutable.
  • Object: Namespace, automatically allocates an ObjectSet. Implements parents() but not children().
  • Caching<> - for Caching<OrSet>.
  • Weak<> - when an object is turned into a Dead (requires VP rewriting :)), it is removed lazily by weak sets.
  • InheritanceSet : public Weak<Caching<OrSet>> - adds (limited) tree traversing deletion propagation.
    Takes an htl parameter, stops when has removed all occurances or has looked at more than htl Objects. Has a list of children, so we can implement object::children() at this point.
  • ImpureInheritanceSet - adds a private set, of things that will be looked up but not inherited. ObjectSet now more or less full featured.
  • mutability - Colin VP rewriting allows run time switch mutable-cow. Not strictly needed, as can just force it in ObjectSet, but... Requires implementation of transparent redirects in Slot, which means we can do POrSet, once we have the other stuff needed for it
Starting to ponder strategies for increasing general awareness for our company, in hopes to drum up more business for us. I was starting to think that writing short articles about whichever technology we're currently working on might help show that we are competent.

We're working with alot of stuff that people would think was at least somewhat interesting, and/or useful -- using XML/XSLT/ASP/JSP/Java/WebObject/etc... Posting postmortums and task strategies would help us as well. We would have a record of how we approached the problem solving aspects of a given project, and see where we have room to improve.

Ideas, anyone?

3 May 2001 (updated 3 May 2001 at 21:10 UTC) »
Coldstore is moving along nicely. I've finished the initial hooks from libiberty's demangler to our interning library.

opiate has added a partial language binding for persisting Python, and has also begun the process of preparing the interface for callouts to Java code. Nothing in it yet to reverse things. I'll have to take a look at it.

I feel my C++ skills have majorly atrophied. I really haven't used it seriously as a programming language in over 2 years, and so things are coming a little rustily to me.

I think I'm going to add a prefix notation interpreter to start testing our vm nodes this weekend. While it's not strictly required, it would be semi-orthognal to our postfix notation interpreter (chaos).

I also have to finish up work on my Object class, second pass. One of the other developers has an efficient implementation of namespaces that I'm going to derive our objects from. For now. He and I fleshed out some ideas for using mixins on one of the classes closer to our base class.

My passport should be arriving tomorrow. My itnerary is set. I should be in London in a little over a week, for approximately a week. Should be exciting, even if I do have to work through most of it.


Suffering greatly. Trying to get my house ready for market, so I spent the weekend cleaning it. Apparently, we stirred up enough dust to trigger a rather severe allergy attack, so I'm looped out today, and mostly useless.


Looks like I've got three projects that are going to be dumped on me simutaniously. Not necessarily looking forward to that. I'm also in the process of procuring an expidited passport, because they need me to fly to London to provide technical assistance for the final handoff of the project that I've been managing. Should be fun.
Looks like colin has managed to fix our python support to something approaching usefulness. Variable bindings are preserved, and we can handle a few of the base python classes. opiate is working on extending the support to user defined classes right now, but is bottlenecked by some of the code that I'm working on that represents Objects with member variables/functions. Should be interesting.
13 Apr 2001 (updated 13 Apr 2001 at 18:18 UTC) »

Project status

Looks like I'm going to get a little time to work on coldstore during the weekend. If nothing else, I'm going to have to review opiate's work, because his Python binding to the store is finally working for initial population of the store, but not for subsiquent loads of the store.


Blah. Finishing up the last of some reports for site usage for out of our clients websites. I hate writing reports. It did get me to do some nice refactoring, though, to clean up our reporting class library. Changed the Report generation class to an interface, instead of being solely for PDF based reports. Modified some other stuff to make it not rely on absolute file paths, but rather the class path (with the absolute path as a fallback if the resource load fails).

It sounds like we're going to get some more time to pull a better class library out of the codebase after we do our last bits of wrap-up. Which is good. I hate having to re- invent the wheel. Maybe I can convince them to use tapestry for the next project, though it looks like we're going pretty purely over to XSLT and XML for our next projects.

11 Apr 2001 (updated 11 Apr 2001 at 14:01 UTC) »

bruce: What are you guys doing with Cubik? I thought TOM had become abandonware...

neale: Yes, colin worked on coldmud a long time ago. We still have some of the old sources lying about, as well as a couple of experimental cores. You wouldn't happen to be the same neale who was on the cold dark/genesis mud?

Coldstore was seeded by Colin's desire to have something that would work very well as a testbed for experimenting with both document storage and the collaboration that we've grown to love on various user programmable muds. But I suppose that's what most of the newer text based muds are for these days.

The developers of coldstore tend to hang out on Xao MOO, whose primary focus has become talking about development of coldstore, and various interesting bits of political and philosophical rhetoric and debate. Please stop by. It's a fun time, and an excellent place to get real time feedback if you're stuck on a programming problem at your $job. Or even if you're not.

4 older entries...

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!