Dev (old posts, page 2)

tutorial on writing basic Lyntin modules

, | Tweet this

I wrote a tutorial on writing basic Lyntin modules. Hopefully it helps to fill a void in coming up to speed on Lyntin module writing. I'll probably add more tutorials as time goes on... Oh. Now that I think about it, I should have the Lyntin site just grab my RSS feed for the status. Mmm... I'll have to toss that around.

calendar, logger, pyblosxom!

, | Tweet this

I re-wrote my calendar utility (which tells me what my schedule looks like when I log in) in Python. This is good because I haven't touched Perl in some time and I wanted to add some other formats to it (like handling "second thursday" and "*/15") and I wasn't looking forward to figuring out what I wrote many years ago.

I also re-wrote my logger at work. It's not really a logger--it's more of a log extrapolator. It takes all these fun bits and puts them in places where I can glance over them quickly and guess at what happened rather than reading all the gory details and know enough to write a thesis.

Then I wanted to add a calendar to pyblosxom. So I adjusted the code to handle drop-in plugins and threw together a pycalendar thingy. It's not great but it works and it's not half-bad for an hour of coding.

more Lyntin updates

, | Tweet this

I've just felt really inspired lately. I cruised through a color overhaul which fixed the totally borked handling of color formatting I had in there before. I also added a NamedWindow class to the tkui which is kind of neat. If that wasn't enough, I added bell handling and fixed up some stuff to make telnet control code issues easier to discover.

I've got a lot of changes. I think I'm going to release a 3.0.1 really soon.

At some point, I hope I feel motivated to do the distutils stuff. I haven't even researched it enough to figure out if we want to be doing distutils stuff or what code changes it would entail.

regular expressions in highlights and telnet control handling

, | Tweet this

I fixed some issues with telnet control handling which were borked. I also adjusted some things so that we show up more favorably on the Cryosphere mud client support table after talking with the maintainer of that table. I may look into adding some more features based on that table--like NAWS support. The existing problem is that for the textui, I can't seem to determine what the LINES/COLS numbers should be if you're running Lyntin over telnet/ssh. I'm tossing around adding hooks for telnet control negotiation and changing the MudEcho handling to use this hook instead. That'd open up the possibility of creating something like a wxPython ui which is completely xterm compliant. I have to toss this around a bit more. I also want to enable logging of incoming telnet control code sequences so I can see what's going on.

I finally added Sebastians patch for regular expressions in highlights, though I made some adjustments to account for the current codebase (the patch was from like 6 months ago or so) and also to use our regular expression syntax instead of a toggle on the Session.

It's slick! The regular expression implementation is also faster than my original string.find implementation. Doing something like this:

  > #highlight red e
  lyntin: highlight: {red} {e} added.
  > #highlight green i
  lyntin: highlight: {green} {i} added.
  > #highlight blue a
  lyntin: highlight: {blue} {a} added.

doesn't tax Lyntin as much as it did with the string.find method. I kind of wish I had done this a few months ago, but didn't really get around to putting in the time to figure out what needed to be done. I think I'm going to overhaul substitutes/gags in the same way next.

Lyntin 3.0 (final) released

, | Tweet this

I finally released Lyntin 3.0 (final). Now I'm going to have a glass of wine, kick my feet up, and read GoTo while listening to Jacqui Naylor. I started working on Lyntin 3.0 in September of 2001--it's been 14 months of development. It was worth it.

In Stringbean land everything is a big mess....

, | Tweet this

It's true. I started to add Callout functionality, but also started splitting the driver into a driver and a mudlib, renaming driver.world to driver.engine, adding a mudlib.world module with a World object in it (and moving functionality from the old world to the new world), and a series of other things. All of this will take some time to sort through. I'm also looking into adding a series of hooks to the driver to tie the mudlib into the driver. The good news being that Strinbean will be pretty nice once all this is done.

Lyntin status for today

, | Tweet this

I went through and overhauled the FAQ and then updated all the existing Lyntin documentation. I also moved some information around between things.

There are some things I want to clean up, but I think I'll be doing a 3.0 release in December--probably this weekend or next weekend. After that, it'll be a series of minor point releases whenever we accumulate enough stuff to make a new minor point release. We'll do major point releases whenever we make enough architectural changes to warrant such a thing. After 3.0 is released, emphasis will go towards generating some more documentation on building Lyntin modules as well as fixing the existing modules that I've created and haven't really updated in a while.

All in good time. All in all, though, things are looking extremely good. Today I implemented a quick module to tell me if I have new email. I wrote it in the space of 5 minutes and it works wonderfully.

more stringbeans!

, | Tweet this

I got my Python Cookbook in the mail and I've been reading through it and as I've been doing that I've been revising bits of Stringbean accordingly.

I also finished up a basic emotes module, adjusted the startup code, added handling for multiple names, added drop-in modules, added a command manager, added commands on objects/rooms, and started a driverapi module for abstracting driver code from its own implementation.

Lyntin status

, | Tweet this

Wesley's been helping finding multi-session issues. We ended up implementing readline in the textui, echo in the textui, #snoop command for disabling snooping on non-current-sessions, message scoping for LTDATA messages, and fixed a bunch of bugs as well. I also fixed up my repository script on the web-site and coallated all of Sebastian's emails into one big file which I plan to read through and verify I completed everything he's been asking for over the last year.

When all that's done, I'm going to take a break for Lyntin for a while and fix minor bugs and otherwise let the code-base bake.

More Stringbean!

, | Tweet this

I redid exits, command handling, descriptions, word wrapping, and a few other things. Then in the tavern I'm working on, I added tables, a hatrack, a guestbook, a grandfather clock, and Neil who sits at his bar and waxes philosophical about the old days.

All in all it's coming along very very nicely. There are a few things I need to change to improve command handling and looking at things. Then to work on more complex issues.