Category Archives: Coding

Tip: Never use IP addresses

Never use IP addresses Use of IP addresses are never actually required. There are two fully valid alternatives: Using DNS name served by DNS server. Windows/Linux can have unlimited number of DNS servers in case one goes down, so there is no problem with stability. Just add more DNS-servers. (At least two) In case DNS is not possible… Read More »

.Net tools to use: log4net

log4net Description Free popular logging system developed by Apache Foundation. Difficulty 1 line at top of each class. A standard XML-section in web.config. Sample usage: [sourcecode language=”csharp”] // At the top of every class you set up a static logger with the class name (retrieved through System.Reflection) private static log4net.ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType) // Then in the… Read More »

.Net tools to use: Nini Nini   Description An uncommonly powerful .NET configuration library. Use this for reading web.config (instead of .Net built-in System.Configuration…) and any other .ini-file or .xml-file containing configuration. Difficulty 2 lines to read (usually called at page_load or similar). Sample usage: [sourcecode language=”csharp”] // Set up our config source as web.config or app.config internal static IConfigSource ConfigRoot =… Read More »

Script Engine Component System (SECS)

What is a script engine?Currently I see people define a script engine very simply as: The thing that runs the scripts.This is a narrow definition that I never intended with DotNetEngine (see previous posts). Instead I would say the script engine is the most important component of OpenSim. I am a humble person when it comes to my… Read More »

New languages

DotNetEngine has received a couple of new languages: VB.Net and JScript.Just add //vb or //js as the first characters of your script. Examples here: LSL support has also been improved to support states and also a minor patch for functions inside . It seems like LSL is starting to run ok now.


I guess its that time of year again when I write my blog post… It’s been a while… :) I’ve been busy with RL work. Sadly that work doesn’t involve OpenSim just yet. But now I’m back and I thought I’d put some words here. I’ve picket up where I left off on ScriptServer. Not so much to… Read More »


Things are a bit quiet right now. But there are things happening behind the scenes. Some notes on communication between region and script engine. Region will be the initiator. That is, the one that contacts script server. If an object containing a script moves from one region to another then the next region will contact the script server.… Read More »

Perfect code

The development process of a good program may often seem strange for an outsider. One can expect the development process to consist of planning, development and testing. A simple linear way to get from design to final product. In most commercial scenarios this is also how its done. Forcing an application from idea through design, programming and testing… Read More »

Pure C# support

ScriptEngine supports both LSL and C# within the same script. Mainly this means that you can write LSL, but when you want you can use C# code. For example instead of using llToLower(mystring) you can use mystring.ToLower(), instead of llStringLength(mystring) you can use mystring.Length(). But to make sure that we support pure C# code, I’ve added support for… Read More »