innerspace

some info

I got a message from someone who was interested in pooking around InnerSpace today, and spent enough time providing some starter instructions that I figured I'd post them here.

thanks a lot for writing. i'm glad some people are checking this out...

right now the codebase isn't really meant for public consumption. i do this primarily as a personal exercise, and although there are many parts of it that are very functional, other parts aren't so refined...

i've attached a tarball, which contains some sparse documentation. i don't know what your level of familiarity is with Python and the Twisted library (http://www.twistedmatrix.com), but some basic concepts from those areas can get you up and running.

some updates...

So, as it's been awhile since I've updated, I have lots of new developments. I've been fortunate to find some time to tinker with IS, and there's lots of cool stuff coming along.

I've also removed the CVS directory from sourceforge, as I wasn't using it, since I prefer to use my own repository for now. Once I get to a releasable 1.0 candidate, I may mirror my repository to sf, but for now you can access the bubblehouse web-repository using the links to the left. I will eventually open up pserver access through my firewall, but until i get some more interest in this I'm not going to bother.

Nice New Things

So right away I have something to show anyone who wants to look. I've been thinking about the whole RExec/Bastion problem, and I may have come up with a solution. I'd also certainly appreciate it if anyone could fill me in with any obvious security flaws

Check out SaferPython. It is my attempt to rewrite a restricted environment for Python. Admittedly, I don't think I know enough about the new language features to be sure if this works. I've tried a number of "exploits", and this seems to provide the kind of protection I want, but I'm pretty sure it doesn't have the abilities that some RExec users need.

Ch-ch-ch-ch-changes...

First of all, welcome to the latest-greatest version of the InnerSpace website. Since I slacked off so much on updating recently, I decided to start using Moveable Type to make a weblog for this site. Considering it greatly simplifies the process for me, I hope to be able to post more frequently.

I have a bit more time to talk about some of the changes going on in the InnerSpace codebase. One of the biggest things has to do with some problems with Python 2.0.

During the creation of Python 2.0, it was discovered that new class features break the RExec and Bastion modules. They no longer provide true security from untrusted code. This is obviously a big deal, since this is something projects like InnerSpace (including the Grail web browser, and, to some extent, the Zope project) rely on heavily. Some additional explanation of the situation can be found here and here.

Whoa! That's a Spicy Meatball!!

So, it's been a pretty long time since i've updated anything on this page. This is, however, no indication of work being done on InnerSpace; as a matter of fact, things are better than ever!
I've been restructuring some of the less stable components of the framework, namely, the network layer. I've opted to use the Twisted framework to provide a networking layer. This allows me to focus on the stuff that's important for a framework like this, while having the assurance of a rock-solid networking foundation.
As of yet, I haven't updated the CVS repository with the new stuff -- this is definitely on the way. I'm under some time restraints, as I finally have a job, and that's taking up a lot of my time. However, here are some things you can look forward to.

Posterity Tarball

With this, the role of InnerSpace as my project for CSC436 has ended. Although I really didn't get as far as I would have liked, IS is in a reasonably functional state. There is currently no documentation or even code comments, but that will be for another version. I'm still going to grant this release the title of innerspace-0.5...

Milestones

A couple weeks ago, we came up with a milestone chart for the rest of the project. Now they're finally posted!


  • Milestone 1 06/24/01

    • [Done] Add variables to executing verb's namespace
    • [Done] Execute verb code in child process
    • [Done] Filter out remote stubs

  • Milestone 2 07/08/01

    • [Done] Allow for out of band commands in the client
    • Implement GUI for object editing
    • [Done] Implement Observation mechanism in objects

  • Milestone 3 07/15/01

    CSC436 at SUNY Oswego

    I'm going to be using InnerSpace as my project for Doug Lea's Network Systems class at SUNY Oswego. This is good for a couple of reasons. First of all, it'll motivate me to find more time to finish this thing that's been on my back for so very long. Second, I'll be working with Greg Roberts, who will provide a valuable perspective, since he's fairly unfamiliar with Python and especially InnerSpace. He'll be helping me write verbs for the game, which will serve to teach him Python, show me were things are difficult or confusing, and also locate the numerous bugs that are probably just waiting to pop out.

    Introduction

    Hrm, well, where to begin? InnerSpace has been in the design process for four years now, and has been written and rewritten many, many times. Each time I always thought, "Oh, I've got everything figured out, so I should be finished Real Soon Now." Ha!

    So What Is It?

    The buzzword-compliant description would be: InnerSpace is a text-based virtual reality framework that allows multiple Internet users to connect to, manipulate and aid in the creation of a limitless universe.

    In other words, it's a MUD, but it's the best damn MUD out there!

    History

    Initially, this project started as a port of LambdaMOO to Java. Of course, I didn't even get halfway through the first design without realizing a million things that were either A.) annoying design choices in LambdaMOO, or B.) practically impossible to implement in Java. I got pretty far, too, before I realized this (in fact, I still have the original version of InnerSpace written in Java using mucho RMI <shudder>). I realized that there were a number of things that I wanted to implement that other MUD/MOO/M* packages just didn't. BTW, I'm going to use the phrase MUD from here on, even t

    Syndicate content