raevnos's blog
+countries
Submitted by raevnos on Thu, 2008-02-14 12:47.A 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:22.In 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:44.Tonight 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.
1.8.3p6 and 1.8.2p8 are out
Submitted by raevnos on Tue, 2008-01-01 19:36.Get them at http://download.pennmush.org/Source
All users are encouraged to update; there is a crash fix in these. Lots of internal changes for 1.8.3, less user-visible.
Nifty math-related programs
Submitted by raevnos on Sun, 2007-11-25 12:36.Some useful open-source algebra and math systems:
Mathomatic (Wikipedia entry): Very small and lightweight (It's been ported to the DS) CAS with manipulation of symbolic expressions, equation simplification and solving, calculus transforms.
PARI/GP (Wikipedia): More powerful for numeric work and number crunching.
Threading and Penn, part 2
Submitted by raevnos on Thu, 2007-11-15 09:55.Earlier I mentioned some of the difficulties with making a multi-threaded mush (Read it here.)
Griping about diff and patch
Submitted by raevnos on Wed, 2007-11-14 17:06.The diff and patch programs really need:
- A way to mark a file as deleted (Instead of turning it into an empty file by deleting every single line in the diff.)
- A way to rename a file (Instead of zeroing out the old name and creating a file with the new name and all the contents in the diff.)
- A way to specify the permission bits to use when creating a file such as a script that should be executable.
- A way to create and delete empty directories.
I should see about making such a beast.
Inflammatory comments on programming
Submitted by raevnos on Thu, 2007-09-20 17:05.Recursion should be embraced, not shunned.
goto is perfectly okay when used appropriately.
object oriented is not always the the answer.
The people who advocate writing unit tests before writing what they're testing might be on to something.
perl kicks php, python and ruby's behinds.
It even comes close to scheme.
java and C++ are two of the most commercially successful languages around today. They are also quite painful and ugly and awkward compared to many less-popular languages. Mediocrity wins again.
Save hooks and backups
Submitted by raevnos on Wed, 2007-09-19 06:22.I'm thinking about adding a way for Penn to run a specified program after every successful database save. This can be used along with scripts that check the databases (main, chat and mail) into a version control system, email them somewhere, or a combination -- email a full db on startup, and then a xdelta diff against that.

Click 
