raevnos's blog
PennMUSH git repository
Submitted by raevnos on Wed, 2010-02-03 11:55I've put up an experimental git repository for Penn.
Get it via: git clone http://download.pennmush.org/Repos/pennmush.git
Handy for local hackers, since you can create local branches for custom stuff and keep up to date. I think. Branches and git and I haven't gotten along in the past. Please don't ask me how to use it.
It should sync with the master subversion repository on googlecode every couple of hours.
+countries
Submitted by raevnos on Wed, 2010-01-13 11:11I threw up a new release (1.0.1) of my +countries code for displaying a breakdown of what countries players are connecting from, and converting between country name and domain extension. The only change is some updates to country names... unless you have people connecting from Nepal or Venezuela, there's no need to upgrade an already-installed copy. If you're interested in seeing it in action, it's on M*U*S*H.
http://raevnos.pennmush.org/mushcode or http://download.pennmush.org/MUSHCode.
SSL and reboots
Submitted by raevnos on Thu, 2009-02-19 11:52Fixing the problem of having encrypted connections to a mush drop on a @shutdown/reboot's been on the to-do list for a while. The issue is that OpenSSL has no way to save a connection's state to disk and load it back again. The solution is to use a second process that handles SSL connections and relays data between them and the mush.
Anatomy of a bug; or, an argument for garbage collection
Submitted by raevnos on Sat, 2009-02-14 21:54The other day, Walker introduced a bug into the test version of Penn running on M*U*S*H. Surprisingly, no crashes resulted.
(I'm picking on Walker, but I've run into this same problem, and so has everyone who's made significant contributions to the source, with the possible exception of Talek, because he's cool that way.)
p8 update
Submitted by raevnos on Thu, 2009-01-22 08:39There are some attribute-tree related bugs that I want to fix before putting out p8 (And maybe more bug fixes, of course, but probably no more new things compared to what's running M*U*S*H right now.) That'll probably require changing the internal data structures used for storing attributes (Something I've been meaning to do for years anyways.) I just need to find the time to sit down and do it and then have a break-in testing period. That might be a while, though, because between work and other commitments I'm pretty busy.
Tools for working with patches
Submitted by raevnos on Sat, 2008-10-04 18:13People have noticed that the 1.8.3p7 patchfile has a summary of changed files in it:
Summary of changed files: BUGS | 17 0 + 4 - 13 ! CHANGES.182 | 1 0 + 1 - 0 ! CHANGES.183 | 72 70 + 0 - 2 ! ...
This was done by piping the patch to diffstat(1). (You can also use it to make git-style histograms and other types of reports. This was done with diffstat -m -f 0.
Retiring 1.8.2
Submitted by raevnos on Fri, 2008-09-12 20:55Speak up if you want to see another patchlevel in the 1.8.2 series.
If you're willing to maintain it, I'll listen harder.
+countries
Submitted by raevnos on Thu, 2008-02-14 12:47A long time ago, I did all my mushing on Elendor, which has lots of nifty code. One of many ways to show various stats about players was +countries; it shows a list of countries people are connecting from (Based on the country suffix in domain names) and how many from each.
I eventually wrote my own version for a game I was code wiz for, and that version eventually found its way to M*U*S*H.
Queue ids
Submitted by raevnos on Sun, 2008-01-27 17:22In my last post, I mentioned working on queue process ids, and ways to manipulate individual queue entries. It's now checked into svn and being tested on M*U*S*H.
Credit first: Rhost did this a long time ago, and I'm basing what I'm doing on their help files.
graphviz
Submitted by raevnos on Mon, 2008-01-21 08:44Tonight I was working on a new tree data structure. It's been a long time since I'd written such a beast -- I've been in the habit of re-using existing ones -- but I didn't see any implementations of the particular structure I wanted to use that met my requirements, and, well... it has been a long time. Need the practice.
At one point in debugging, I was thinking that it would be nice to be able to see the entire tree laid out graphically, and see how that changes as things get inserted and deleted.

Click 
