The journal

Notes from the workbench.

149 articles on building software and understanding how it works.

Perl: Command-line regex

A few one-liners I keep reaching for: filtering and replacing with regex straight from the Perl command line, including in-place file editing with automatic backups.

Tip: Never use IP addresses

Hardcoded IP addresses are never actually required — DNS names or a hosts-file entry always work, cost nothing extra, and save you from hunting down every stale reference when a server moves.

.Net tools to use: log4net

First in a small series on .NET tools worth using: log4net, Apache's free logging framework. One line at the top of each class, a standard XML section in web.config, and you have proper leveled logging.

.Net tools to use: Nini

.NET tools to use, part two: Nini, an uncommonly powerful configuration library. Reads web.config, .ini and .xml config with type conversion and default values in a couple of lines.

Script Engine Component System (SECS)

People define a script engine narrowly as "the thing that runs the scripts" — I'd argue it's the most important component of OpenSim. SECS is my proposal for a component system with interfaces worth building on.

DotNetEngine and xengine

Reflections on why a common way of implementing script engines was needed: many found it hard to build engine variations on DotNetEngine, and not all developers want to conform to one structure.

OpenSim tackles high load

3Di contributed region splitting and dynamic load balancing to OpenSim: multiple physical servers cooperating on one region, and regions migrating to less loaded machines while running. Green computing, virtual-world style.

Objectifying LSL

OSSL takes an object-oriented turn: instead of only LSL2-style function calls you can now write Prim.Position.x += 10 or set Prim.Text directly. A more modular approach to the scripting language.