<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hugo+Dalgleish</id>
	<title>Second Life Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.secondlife.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hugo+Dalgleish"/>
	<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/wiki/Special:Contributions/Hugo_Dalgleish"/>
	<updated>2026-06-21T08:04:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_HTTP_server&amp;diff=655683</id>
		<title>LSL HTTP server</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LSL_HTTP_server&amp;diff=655683"/>
		<updated>2009-11-15T23:27:46Z</updated>

		<summary type="html">&lt;p&gt;Hugo Dalgleish: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=*}}&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This is the counterpart to [[llHTTPRequest]].  While llHTTPRequest enables LSL scripts request data from HTTP-accessible sources, HTTP-in enables outside sources to request data from scripts in Second Life.  The key difference is that llHTTPRequest exchanges data when the script in SL wants; HTTP-in allows outside sources to determine when they need to communicate with scripts in SL.&lt;br /&gt;
&lt;br /&gt;
Prior to HTTP-in, similar functionality could be achieved by polling with [[llHTTPRequest]], [[llEmail]] and [[:Category:LSL_XML-RPC|XML-RPC]].  All three are cumbersome and the latter two have serious scalability bottlenecks.&lt;br /&gt;
&lt;br /&gt;
It is important to note that LSL HTTP servers cannot use HTML. See [[#Other_Limitations|Other Limitations]] for details.&lt;br /&gt;
&lt;br /&gt;
== Uses ==&lt;br /&gt;
* Easily get data from LSL scripts to outside viewers, scripts or servers.&lt;br /&gt;
** Web front end for a visitor counter or other statistics accumulator.&lt;br /&gt;
* Easily get data into LSL scripts from outside viewers, scripts or servers.&lt;br /&gt;
** A store with a web front end that communicates to an in-world object to exchange L$ and inventory items.&lt;br /&gt;
** Inworld game for which an external program handles the primary game logic that needs to manipulate inworld items.&lt;br /&gt;
&lt;br /&gt;
Gory Technical Details follow.  Or jump straight to the [[LSL_http_server/examples | Script Examples]].&lt;br /&gt;
&lt;br /&gt;
== Script API ==&lt;br /&gt;
* &#039;&#039;&#039;[[LlRequestURL|key llRequestURL()]]&#039;&#039;&#039;&lt;br /&gt;
: Request a new LSL Server public URL. &lt;br /&gt;
: An http_request event will be triggered with success or failure and include the returned key&lt;br /&gt;
&amp;lt;lsl&amp;gt;request_id = llRequestURL();&amp;lt;/lsl&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[LlRequestSecureURL|key llRequestSecureURL()]]&#039;&#039;&#039;&lt;br /&gt;
: Similar to &#039;&#039;llRequestURL&#039;&#039; except requests an HTTPS / SSL URL.&lt;br /&gt;
: An http_request event will be triggered with success or failure and include the returned key&lt;br /&gt;
&amp;lt;lsl&amp;gt;request_id = llRequestSecureURL();&amp;lt;/lsl&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[LlReleaseURL|llReleaseURL(string url)]]&#039;&#039;&#039;&lt;br /&gt;
: Clear the specific URL, used for both secure and non-secure URLs.&lt;br /&gt;
&amp;lt;lsl&amp;gt;llReleaseURL(&amp;quot;http://sim3015.aditi.lindenlab.com:12046/cap/3ff4f3f2-ea08-76c1-cef6-a22b4a573a7c&amp;quot;);&amp;lt;/lsl&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;[[Http_request|http_request(key id, string method, string body)]]&#039;&#039;&#039;&lt;br /&gt;
: Event triggered when an URL is hit:&lt;br /&gt;
:* id is unique to this request&lt;br /&gt;
:* Supported methods are GET/POST/PUT/DELETE&lt;br /&gt;
:* body: The body of the request.&lt;br /&gt;
: Event also triggered with response to &#039;&#039;llRequestURL&#039;&#039; and &#039;&#039;llRequestSecureURL&#039;&#039;&lt;br /&gt;
:* id matches the key returned by &#039;&#039;llRequestURL&#039;&#039; or &#039;&#039;llRequestSecureURL&#039;&#039;&lt;br /&gt;
:* method == [[URL_REQUEST_GRANTED]] for success, [[URL_REQUEST_DENIED]] for failure to get an URL&lt;br /&gt;
:* body is the public URL.  If unable to get a public URL body will be empty.&lt;br /&gt;
* &#039;&#039;&#039;[[LlHTTPResponse|llHTTPResponse(key id, integer status, string body)]]&#039;&#039;&#039;&lt;br /&gt;
: Send &#039;&#039;body&#039;&#039; to the requester with status code &#039;&#039;status&#039;&#039;&lt;br /&gt;
:* id is the id from http_request that maps to the specific request&lt;br /&gt;
:* sending a response to the requestor will clear the request and delete information associated with it&lt;br /&gt;
* &#039;&#039;&#039;[[LlGetHTTPHeader|string llGetHTTPHeader(key id, string header)]]&#039;&#039;&#039;&lt;br /&gt;
: Returns the string for the specified header in the specified request. All received headers are converted to lower case and this function is case-sensitive.  The returned string is limited to 255 characters.&lt;br /&gt;
:* Supported headers are:&lt;br /&gt;
::* &amp;quot;x-script-url&amp;quot;: The base url, as originally received from [[llRequestURL]] or [[llRequestSecureURL]].&lt;br /&gt;
::* &amp;quot;x-path-info&amp;quot;: Any trailing path information from the requested url&lt;br /&gt;
::* &amp;quot;x-query-string&amp;quot;: Any query arguments, the text past a ? in the url&lt;br /&gt;
::* &amp;quot;x-remote-ip&amp;quot;: IP address of the host that made the request&lt;br /&gt;
::* &amp;quot;user-agent&amp;quot;: The user-agent header as reported by the requester&lt;br /&gt;
:* Supported headers sent by &#039;&#039;&#039;[[LlHTTPRequest|llHTTPRequest()]]&#039;&#039;&#039;&lt;br /&gt;
::* &amp;quot;x-secondlife-shard&amp;quot;&lt;br /&gt;
::* &amp;quot;x-secondlife-object-name&amp;quot;&lt;br /&gt;
::* &amp;quot;x-secondlife-object-key&amp;quot;&lt;br /&gt;
::* &amp;quot;x-secondlife-region&amp;quot;&lt;br /&gt;
::* &amp;quot;x-secondlife-local-position&amp;quot;&lt;br /&gt;
::* &amp;quot;x-secondlife-local-rotation&amp;quot;&lt;br /&gt;
::* &amp;quot;x-secondlife-local-velocity&amp;quot;&lt;br /&gt;
::* &amp;quot;x-secondlife-owner-name&amp;quot;&lt;br /&gt;
::* &amp;quot;x-secondlife-owner-key&amp;quot;&lt;br /&gt;
 requested url: &#039;&#039;https://sim3015.aditi.lindenlab.com:12043/cap/a7717681-2c04-e4ac-35e3-1f01c9861322/foo/bar?arg=gra&#039;&#039;&lt;br /&gt;
 x-script-url: &#039;&#039;https://sim3015.aditi.lindenlab.com:12043/cap/a7717681-2c04-e4ac-35e3-1f01c9861322&#039;&#039;&lt;br /&gt;
 x-path-info: &#039;&#039;/foo/bar&#039;&#039;&lt;br /&gt;
 x-query-string: &#039;&#039;arg=gra&#039;&#039;&lt;br /&gt;
: This header information is valid for 30 seconds, or until [[llHTTPResponse]] is called.&lt;br /&gt;
* &#039;&#039;&#039;[[Changed|changed(integer change)]]&#039;&#039;&#039;&lt;br /&gt;
:* [[CHANGED_REGION_START]]: New changed() event triggered on region startup.&lt;br /&gt;
* &#039;&#039;&#039;[[LlGetFreeURLs|integer llGetFreeURLs()]]&#039;&#039;&#039;&lt;br /&gt;
: Returns the number of URLs available to this script.&lt;br /&gt;
&lt;br /&gt;
== URL Lifetime Limitations ==&lt;br /&gt;
* URLs are &#039;&#039;&#039;temporary&#039;&#039;&#039;!&lt;br /&gt;
* URLs will be lost in the following cases, all detectable by the script events listed with them.&lt;br /&gt;
** On object derez/rez: [[on_rez]]&lt;br /&gt;
** On script save/reset: &#039;&#039;[[default]] [[state_entry]]() (trickier in multi-state scripts)&lt;br /&gt;
** On region cross or TP(attachments): [[changed]]() {{LSLGC|Events|event}}, [[CHANGED_REGION]] and [[CHANGED_TELEPORT]]&lt;br /&gt;
** On region restart: [[changed]]() event, &#039;&#039;new&#039;&#039; flag [[CHANGED_REGION_START]]&lt;br /&gt;
* When urls are &#039;lost&#039; it means that all public urls for that script are gone, new ones will need to be requested and the new urls will &#039;&#039;&#039;&#039;&#039;not&#039;&#039;&#039;&#039;&#039; resemble the old ones.&lt;br /&gt;
* Maintaining persistent URLs will require building or using an external service similar to how [http://en.wikipedia.org/wiki/Dynamic_DNS Dynamic DNS] services work for tying domain names to dynamic IP addresses.&lt;br /&gt;
&lt;br /&gt;
Contributed HTTP-in URL mapping implementations and services:&lt;br /&gt;
* A Dynamic DNS service running on Google App Engine (contributed as an example) can be found in the forums here: http://forums.secondlife.com/showthread.php?t=323981&lt;br /&gt;
* Static URL service for HTTP-Server with API (under development),can be found [http://lsl.sltools.biz/ here]. (free by SLTools)&lt;br /&gt;
* The [http://wiki.apez.biz/URLMap_API Virtual ID URLMap service] provides mapping from a static subdomain of your choice via a REST API (part of the free [http://www.apez.biz Apez Corp] [http://wiki.apez.biz/Development web-services API]).&lt;br /&gt;
* Yet another one, running on GAE, with password protected and private domains.  http://wiki.secondlife.com/wiki/Public_Object_DNS&lt;br /&gt;
* An advanced and extensively featured Dynamic DNS service: [http://lslurl.com LSLurl].&lt;br /&gt;
** Second Life Wiki article: [[Lslurl|LSLurl]]&lt;br /&gt;
&lt;br /&gt;
== Resource Limitations ==&lt;br /&gt;
* There are a limited number of URLs available in each region, split by land ownership exactly like prim limits.&lt;br /&gt;
** Use [[llGetFreeURLs]] to get the exact number of available URLs for the script.&lt;br /&gt;
** The number of allowed URLs is the same as the number of allowed prims on the parcel the object is over.&lt;br /&gt;
**: &#039;&#039;Object owner does not matter, all objects over a parcel will use the resource pool for that parcel.&#039;&#039;&lt;br /&gt;
**: &#039;&#039;Like prims, all the parcels owned by the same owner and in the same region share the same pool of resources.&#039;&#039;&lt;br /&gt;
**: &#039;&#039;If you have two parcels in a region that each support 100 URLs, then you could use all 200 in object(s) on a single parcel.&#039;&#039;&lt;br /&gt;
** The region&#039;s object bonus factor does not apply to available URLs.&lt;br /&gt;
**: &#039;&#039;If a parcel has a max of 300 prims in a region with a 2x bonus factor there will only be 150 urls allowed.&#039;&#039;&lt;br /&gt;
* Each resident has their own unique pool of available URLs with a max of 38 URLs per resident.&lt;br /&gt;
** This is 1 per attachment point, but all 38 could be used by a single attachment for example.&lt;br /&gt;
* Vehicles are special and lazily moved to resident pools by the following logic:&lt;br /&gt;
** Any object that has a resident sitting on it is a &#039;vehicle&#039;&lt;br /&gt;
** Vehicles will use the url resources from the parcel they are over until the cross a parcel border.&lt;br /&gt;
**: &#039;&#039;Specifically this prevents anyone from breaking your vending machine by sitting on it and making it a &#039;vehicle&#039;.&#039;&#039;&lt;br /&gt;
** When any object using URL resources with a resident sitting on it crosses a parcel boundary the resources will switch to the first sitting resident with enough resources.  If no sitting agents have enough resources then the resources from the parcel being moved onto will be used.  If even then there are not enough resources to use then the vehicle will be blocked from moving.&lt;br /&gt;
**: &#039;&#039;In short we do everything we can to find a pool to host the resources needed by the vehicle, but will block movement if we can&#039;t.&#039;&#039;&lt;br /&gt;
* Parcel Sale: When a parcel is sold such that it changes the total available URLs in the region for either resident (seller or buyer) such that more URLs are being used than are available some objects will be returned.  &lt;br /&gt;
** The objects returned will be from youngest object to oldest object of those using URLs in each category in order of object category: Temporary, Other, Group, Owner, Selected/Sat upon.&lt;br /&gt;
**: &#039;&#039;The &#039;&#039;&#039;only&#039;&#039;&#039; time objects are possibly returned is when parcels change owner, and only if more resources are being used than allowed.&#039;&#039;&lt;br /&gt;
**: &#039;&#039;We return youngest temporary objects before older temporary objects before younger &#039;other&#039; (owned by non-group, non-parcel-owner) objects etc.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Other Limitations ==&lt;br /&gt;
* Size of the body of the requests will be [[limit]]ed to 2k [[bytes]].&lt;br /&gt;
* Size of headers of requests will be limited to 255 bytes. This is per header, not total.&lt;br /&gt;
* The size of responses to requests is not currently limited, but this is subject to review during testing.&lt;br /&gt;
* The content type of the returned data is always &#039;text/plain; utf-8&#039;&lt;br /&gt;
*: &#039;&#039;Allowing more content type options is a possibility for the future, but not guaranteed.&#039;&#039;&lt;br /&gt;
* There is a cap of 64 in flight requests per script. This is based on the maximum number of pending events in LSL. After hitting the 64 request limit, the simulator cap server returns &#039;503 Service Unavailable&#039; to the inbound request.&lt;br /&gt;
* &#039;&#039;We may throttle the rate we accept hits at the CAP server level as well.  This is possible, but has not yet been decided.&#039;&#039;&lt;br /&gt;
* HTML cannot be used without an external parser, as all output is plain text only. If making such a parser, remember that you should probably restrict access to only Linden Lab HTML URLs as to not have your bandwith stolen.&lt;br /&gt;
* It is important to note that when appending a query string to a cap URL there MUST be a trailing slash between the cap guid and the query string token &#039;?&#039;. IE https://sim123.agni.lindenlab.com/cap/f73b4b94-012d-44f2-bd0c-16c328321221?arg=gra will return an HTTP 500, but https://sim123.agni.lindenlab.com/cap/f73b4b94-012d-44f2-bd0c-16c328321221/?arg=gra will succeed.&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [[LSL_http_server/examples | Script Examples]]&lt;br /&gt;
* [[LSL_http_server/design | Design Document]]&lt;br /&gt;
* Design Jira:{{jira|SVC-1086}}&lt;br /&gt;
&lt;br /&gt;
{{LSLC|HTTP}}&lt;br /&gt;
{{LSLC|Communications}}&lt;/div&gt;</summary>
		<author><name>Hugo Dalgleish</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=449833</id>
		<title>LSL Alternate Editors</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=LSL_Alternate_Editors&amp;diff=449833"/>
		<updated>2009-08-05T15:59:32Z</updated>

		<summary type="html">&lt;p&gt;Hugo Dalgleish: /* Windows Editors */  Adding the e editor in, as it can use the lsl textmate bundle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LSL Header|ml=*}}&lt;br /&gt;
There are several off-world editors available for free or purchase.  Some have syntax highlighting for LSL that will make your code easier to follow.  At least two will compile and execute a large subset of LSL. Below are some of the more popular editors for use with LSL.  &lt;br /&gt;
&lt;br /&gt;
If you have a favorite that is missing from the list, &#039;&#039;&#039;please&#039;&#039;&#039; feel free to add it.&lt;br /&gt;
&lt;br /&gt;
Projects trying to create and store LSL highlighting files:&lt;br /&gt;
*[http://adammarker.org/shill Shill] project&lt;br /&gt;
*[http://hilitelsl.googlecode.com HiLiteLSL.GoogleCode.com]&lt;br /&gt;
&lt;br /&gt;
==LSL Integrated Development Environments (coding and testing environments) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[LSL-Editor]]===&lt;br /&gt;
&lt;br /&gt;
* [http://www.lsleditor.org/ http://www.lsleditor.org/]&lt;br /&gt;
&lt;br /&gt;
LSL-Editor &#039;&#039;&#039;for Windows&#039;&#039;&#039; is a standalone LSL script &#039;&#039;&#039;editor, compiler and debugger&#039;&#039;&#039;. Binary code only (not open source).&lt;br /&gt;
&lt;br /&gt;
Its compiler and debugger are already now reasonably accurate, but yet quite totally perfect. Please blog any LSL-Editor bugs you find into such places as our [[LSLEditorBugs|LSL-Editor Bugs]] article.&lt;br /&gt;
&lt;br /&gt;
=== [[LSL-Plus]] ===&lt;br /&gt;
&lt;br /&gt;
[http://lslplus.sourceforge.net/ LSL PLus Eclipse Plugin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Windows, Mac, and Linux&#039;&#039;&#039;, the LSL Plus Eclipse plugin is a Editor/Unit Test environment for LSL implemented in Eclipse. It is a FLOSS project (Free/Libre Open Source Software). The latest release (0.11.0 - 2009-05-20) features multi-script execution with &#039;&#039;&#039;source level debugging&#039;&#039;&#039; (setting breakpoints, single stepping through code, examining variables on the call stack, etc.), making it unique among LSL IDEs.  It now supports both multi-script execution in a simulated environment (with avatars, prims, inventory, (limited) physics, etc.) and &#039;&#039;&#039;unit&#039;&#039;&#039; testing - allowing you to test individual handlers and functions by precisely controlling the setup/teardown and interaction with the execution environment (including support for &#039;mocking&#039; the LL function call that interact with the script environment).  It also has some additional code management features that encourage code re-use without having to cut-and-paste, as well as code &#039;&#039;&#039;optimization&#039;&#039;&#039; (inlining, constant folding).&lt;br /&gt;
&lt;br /&gt;
By using the Eclipse IDE you get features such as integration with source code control systems like CVS or Subversion, task management, integration with 3rd party bug tracking software, and so on.  It supports development on Windows, Mac, and Linux platforms.&lt;br /&gt;
&lt;br /&gt;
==Off-world syntax checker==&lt;br /&gt;
You can build a syntax checker yourself and hook it into whatever editor you fancy if you have the viewer source installed and compiled on your machine. The C++ source to build one yourself is [[User:JB_Kraft#Offline_LSL_Syntax_Checker|here (JB Kraft)]].&lt;br /&gt;
&lt;br /&gt;
==Multi-platform Editors==&lt;br /&gt;
===ByronStar SL===&lt;br /&gt;
Based on [http://eclipse.org Eclipse], the [http://byronstar-sl.sourceforge.net/ ByronStar SL IDE] includes most modern program editor features.  It also includes custom features for LSL, such as variable checking, error markers, and code formatting.  Eclipse is available for Macintosh, Linux, Windows, and many UNIX flavors.&lt;br /&gt;
&lt;br /&gt;
===Emacs===&lt;br /&gt;
There&#039;s an [[Emacs LSL Mode]] available on this wiki, which provides syntax highlighting and indentation features.  If you want some tips on writing LSL in emacs, read [http://xahlee.org/sl/ls-emacs.html Xah Lee&#039;s page].  Emacs is available for many Unix flavors, Macintosh and Windows.&lt;br /&gt;
&lt;br /&gt;
You may come across (and attempt to use) Gary Evan&#039;s [http://www.cs.iastate.edu/~leavens/emacs/lsl-mode.el LSL major mode]. It won&#039;t work with the Linden Scripting Language, as Gary wrote it for the [http://www.cs.iastate.edu/larch-faq-webboy.html Larch Shared Language].&lt;br /&gt;
&lt;br /&gt;
===vim===&lt;br /&gt;
[http://www.vim.org/ vim:] vi improved. A multi-platform evolution of the most classical of the editors: vi. GPL code.&lt;br /&gt;
&amp;lt;br&amp;gt;[http://www.secondlifelab.it/index.php?option=com_remository&amp;amp;Itemid=77&amp;amp;func=select&amp;amp;id=7 Plugins for VIM] for install the syntax, autocompletion, autoident for LSL script into vim&lt;br /&gt;
&lt;br /&gt;
===JOE===&lt;br /&gt;
[http://joe-editor.sourceforge.net/ Joe&#039;s Own Editor (a.k.a. Joe)] is a comand line editor for unixoid systems. See [[User:Zai Lynch/LSL highlighting in Joe]] for a manual and syntax file download.&lt;br /&gt;
&lt;br /&gt;
===SciTE===&lt;br /&gt;
Easy to use, features syntax highlighting, folding, auto complete, help that opens the appropriate wiki page, and is setup to use the c preprocessor, and lslint.&amp;lt;br&amp;gt;&lt;br /&gt;
Windows only [http://sl.sdfjkl.org/secondlife/scite/ SciTE-ez]&amp;lt;br&amp;gt;&lt;br /&gt;
Files for Linux or Windows [http://forums.secondlife.com/showthread.php?t=209219 Forum thread] [http://dimension128.homelinux.net/scite_lsl.tar.gz scite_lsl.tar.gz]&lt;br /&gt;
&lt;br /&gt;
===jEdit===&lt;br /&gt;
Developed in Java, this mature, cross-platform editor runs on any operating system with a Java 2 version 1.3 or higher virtual machine. It has all the features you&#039;d expect from a full-GUI text editor. Syntax highlighting and tailored editing behavior is supported through &amp;quot;modes.&amp;quot; (You can get the LSL &#039;modes&#039; file [http://nonbaryonic.no-ip.org/repository/SL/lsl-edit.xml here] {{WFont|fstyle=italic|color=orange|text=updated 5-Feb-09}}.) The editor supports a rich plug-in API; many third-party plug-ins exist to facility editing, formatting, communications, etc.&amp;lt;br&amp;gt;&lt;br /&gt;
You can find jEdit [http://www.jedit.org/ here].&lt;br /&gt;
&lt;br /&gt;
===Shill - LSL Language Files for a Variety of Editors===&lt;br /&gt;
Here is a page listing the various LSL language files for a variety of editors: [http://adammarker.org/shill/index.html Shill]. There could be something here for your editor. Links are provided on the page for all files. (Most of the files there will be updated to 1.18.4.3 keywords in the next week or so. I&#039;ll update this note when that&#039;s done. --[[AdamMarker]])&lt;br /&gt;
&lt;br /&gt;
===Midnight Commander===&lt;br /&gt;
[http://www.midnight-commander.org/ GNU Midnight Commander (mc)] is a free cross-platform orthodox file manager and a clone of Norton Commander.&amp;lt;br&amp;gt;&lt;br /&gt;
Midnight Commander is a console application with a text user interface.&amp;lt;br&amp;gt;&lt;br /&gt;
OS: Unix-like, Microsoft Windows&amp;lt;br&amp;gt;&lt;br /&gt;
For Linux see [[User:Kuraiko_Yoshikawa/sandbox/LSL_Goodies/mc]] for a manual and syntax file download.&lt;br /&gt;
&lt;br /&gt;
==Windows Editors==&lt;br /&gt;
&amp;lt;!-- Add your text editors in the following format --&amp;gt;&lt;br /&gt;
===e===&lt;br /&gt;
The [http://www.e-texteditor.com/ e Editor] is a port of TextMate to Windows, and can use the TextMate LSL bundle listed below.&lt;br /&gt;
===Notepad++===&lt;br /&gt;
[http://notepad-plus.sourceforge.net/uk/site.htm Notepad++] is probably one of the best Windows editor around. Packed with features, extremely powerful and easy to use for beginners too. Best of all, it is GPL code.&lt;br /&gt;
&lt;br /&gt;
===ConTEXT===&lt;br /&gt;
[http://www.context.cx/component/option,com_frontpage/Itemid,1/ ConTEXT] is a small, fast and powerful freeware text editor, developed mainly to serve as secondary tool for software developers.&lt;br /&gt;
&lt;br /&gt;
The following syntax files are available for ConTEXT.&lt;br /&gt;
* [http://forum.context.cx/index.php?action=dlattach;topic=1775.0;id=359 Shyan Graves] Last updated March 01, 2007.&lt;br /&gt;
* [http://adammarker.org/shill/context/lsl.chl Sir.Grelling] Last updated July 10, 2006.&lt;br /&gt;
&lt;br /&gt;
===Crimson Editor===&lt;br /&gt;
[http://www.crimsoneditor.com/ Crimson Editor] is a professional source code editor for Windows.&lt;br /&gt;
The following syntax files are available for Crimson Editor.&lt;br /&gt;
* [http://www.crimsoneditor.com/english/board/CrazyWWWBoard.cgi?db=file3&amp;amp;mode=read&amp;amp;num=1791 Aakanaar] Last updated September 10, 2006 for Second Life version 1.10.0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===[[LSL-Editor]]===&lt;br /&gt;
&lt;br /&gt;
* [http://www.lsleditor.org/ http://www.lsleditor.org/]&lt;br /&gt;
&lt;br /&gt;
[[LSL-Editor]] is a standalone Windows LSL  &#039;&#039;&#039;editor, compiler and debugger&#039;&#039;&#039;.&lt;br /&gt;
All the usual editing, plus you can compile and execute.&lt;br /&gt;
&lt;br /&gt;
===TextPad [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
[http://www.textpad.com/products/textpad/index.html TextPad] is a powerful, but easy to use general purpose text editor.  It is a commercial product, but there is a 30 day trial version available for free on the website.&lt;br /&gt;
&lt;br /&gt;
The following syntax files are available for TextPad.&lt;br /&gt;
* [[LSL_Editor_TextPad_Syntax | Prodigal Maeterlinck &amp;amp; Patrick2 Chama]] Last updated February 20, 2007.  Extracted from the Second Life viewer source code.&lt;br /&gt;
* [http://www.textpad.com/add-ons/files/syntax/lsl_.zip Ben Gray] Last updated August 23, 2006. As of version 1.12.0, with the deprecated functions in a separate keyword list.&lt;br /&gt;
* [http://www.textpad.com/add-ons/files/syntax/lsl.zip Matthias Huber] Last updated September 23, 2004.&lt;br /&gt;
* [[LSL_Editor_TextPad_ClipBook_Events | Events ClipBook]] Last updated March 5, 2007.  Based on the LSL Portal event entries.&lt;br /&gt;
&lt;br /&gt;
===UltraEdit-32/UEStudio [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
[http://www.ultraedit.com/ UltraEdit-32/UEStudio] is a powerful text, HTML, and HEX editor.  It is a commercial editor with a 30 day trial version available at the website.  Important features:&lt;br /&gt;
* column/block mode editing&lt;br /&gt;
* brackets/braces matching&lt;br /&gt;
* code-folding&lt;br /&gt;
* configurable syntax highlighting via custom  [http://www.ultraedit.com/index.php?name=Content&amp;amp;pa=showpage&amp;amp;pid=40#wordfiles wordfiles]&lt;br /&gt;
* autocomplete (using keywords defined in the wordfile)&lt;br /&gt;
* bookmarks, incremental searching, CTAG support&lt;br /&gt;
* automatic conversion between Unix/Dos/MAC/UTF-8, etc&lt;br /&gt;
* built-in FTP/SFTP client&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following syntax files are available for UltraEdit&lt;br /&gt;
* [[User:Lum Pfohl/LSL Syntax Highlighting For UltraEdit]] Last updated November 28th, 2007.&lt;br /&gt;
* [http://podryk.googlepages.com/LSL_Wordfile.txt Podryck Sands] Last updated April 12, 2007.&lt;br /&gt;
* [[User:Stryfe Lowell|Stryfe Lowell]]   Currently at SL Viewer v1.20.16.  Last updated October 3, 2008.&lt;br /&gt;
&lt;br /&gt;
==Macintosh Editors==&lt;br /&gt;
===TextMate [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
&lt;br /&gt;
TextMate is a commercial text/program editor from [http://macromates.com/ Macromates] (30 day trial available). You can find details about Piero Padar&#039;s well-maintained LSL bundle in the [http://forums.secondlife.com/showthread.php?p=1041958#post1041958 Scripting Tips forum].&lt;br /&gt;
&lt;br /&gt;
===SubEthaEdit [{{HoverText|&#039;&#039;C&#039;&#039;|Commercial Software}}]===&lt;br /&gt;
This a great text editor with extensible language support.  It also happens to be an incredible collaborative editor. Info at: http://www.subethaedit.net/&lt;br /&gt;
&lt;br /&gt;
There is a contributed LSL mode by Zarf Vantongerloo.  The mode is a little out of date and could use some love.  But in general works great, doing syntax hilighting of LSL funcitons and adding a pop-up menu of all functions, states and event handlers to the top of the window.&lt;br /&gt;
&lt;br /&gt;
An updated LSL mode by Mark Lentczner is available now from the SubEthaEditor [http://www.subethaedit.net/modes.html User contributed modes Repository].&lt;br /&gt;
&lt;br /&gt;
===BBEdit and TextWrangler ===&lt;br /&gt;
You can get a LSL language plugin for all versions of BBEdit and TextWrangler at [http://blog.elitecoderz.net/wp-trackback.php?p=7 http://blog.elitecoderz.net/]&lt;br /&gt;
&lt;br /&gt;
For older versions of BBEdit (7.0 or less) and TextWrangler, there is additionally a great module available at [http://adammarker.org/bbedit.html http://adammarker.org/bbedit.html]&lt;br /&gt;
&lt;br /&gt;
==Linux Editors==&lt;br /&gt;
===Kate===&lt;br /&gt;
[http://kate-editor.org/ Kate] is an advanced text editor for KDE. Usually included in all KDE based distributions.&amp;lt;br&amp;gt;&lt;br /&gt;
A [[Kate LSL Mode]] is available on this wiki.&lt;br /&gt;
===Gedit===&lt;br /&gt;
[http://www.gnome.org/projects/gedit/ Gedit] is an advanced text editor for GNOME.&amp;lt;br&amp;gt;&lt;br /&gt;
See [[User:Kuraiko_Yoshikawa/sandbox/LSL_Goodies/gedit]] for a manual, syntax file and Color Theme download. &lt;br /&gt;
===Nano===&lt;br /&gt;
Nano is a curses-based text editor for Unix and Unix-like systems.&amp;lt;br&amp;gt;&lt;br /&gt;
Since February 2001, nano is an official part of the GNU Project.&amp;lt;br&amp;gt;&lt;br /&gt;
See [[User:Kuraiko_Yoshikawa/sandbox/LSL_Goodies/nano]] for a manual and syntax file download.&lt;/div&gt;</summary>
		<author><name>Hugo Dalgleish</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=Core_Grid_Services,_Protocols,_and_Structures_VAG&amp;diff=38241</id>
		<title>Core Grid Services, Protocols, and Structures VAG</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=Core_Grid_Services,_Protocols,_and_Structures_VAG&amp;diff=38241"/>
		<updated>2007-10-26T21:15:00Z</updated>

		<summary type="html">&lt;p&gt;Hugo Dalgleish: /* Members (Stakeholders) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(this is an initial draft so scope and focus are still fairly open.  Please add comments to the [[Talk: VAG]] if you have slightly different viewpoints so we can try to converge on a common view. This discussion could also expose other similar VAG that are needed in this area --[[User:Zha Ewry|Zah]] 15:20, 23 October 2007 (PDT) )&lt;br /&gt;
&lt;br /&gt;
=Purpose=&lt;br /&gt;
&lt;br /&gt;
The Core Grid Services, Protocols and structure VAG focuses on the grid and web services, the protocols and the overall structure of the AWG&#039;s work. Particular attention is focused on creating designs and architecture which is consistent with the nature and approaches of the World Wide Web. &lt;br /&gt;
&lt;br /&gt;
See the [[Architecture Working Group]] and the [[Viewpoint Advocacy Groups]] for more information.&lt;br /&gt;
&lt;br /&gt;
=List of concerns addressed by this viewpoint=&lt;br /&gt;
* Modeling services via REST&lt;br /&gt;
* Best practices in Web Services Design&lt;br /&gt;
* Appropriate uses of C-hhtp, Escrow, and capabilities&lt;br /&gt;
* How to handle continuing streams of events (pub/sub) in the architecture&lt;br /&gt;
* The overall shape of the design, including concepts such as domains, proxies and computational boundaries. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Areas not addressed by this viewpoint=&lt;br /&gt;
&lt;br /&gt;
* Implementation of core components behind the architectural boundaries. We will examine such items only to the extent that they drive our core concerns.&lt;br /&gt;
&lt;br /&gt;
* Underlying representations of 3d objects. We may examine efficient encodings, but we will defer 3d issues  to the [[Geometry and Physics VAG]]&lt;br /&gt;
&lt;br /&gt;
=Source of Viewpoint=&lt;br /&gt;
&lt;br /&gt;
=Use Cases=&lt;br /&gt;
&lt;br /&gt;
See the [[Architecture Working Group Glossary]] and [[usecase templates]] for more information on creating usecases. One liners are fine (and better than nothing) but more detail will result in a better understanding and a better architecture.&lt;br /&gt;
&lt;br /&gt;
* Category 1&lt;br /&gt;
** Use case a&lt;br /&gt;
** Use case b&lt;br /&gt;
&lt;br /&gt;
* Category 2&lt;br /&gt;
** use case c&lt;br /&gt;
** use case d&lt;br /&gt;
&lt;br /&gt;
=Related JIRA Issues=&lt;br /&gt;
&lt;br /&gt;
The following JIRA issues are known problems that this VAG would like to see resolved in any future architecture.  The purpose of this list it to avoid problems that exist in the curent architecture. The more typical JIRAs that are more short term in nature or can be resolved by simple code or design change should not be listed here.&lt;br /&gt;
&lt;br /&gt;
* JIRA1&lt;br /&gt;
* JIRA2&lt;br /&gt;
&lt;br /&gt;
=Organization=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Joining ==&lt;br /&gt;
&lt;br /&gt;
Anyone with an interest in this Viewpoint is welcome to join. You should join the [[AW_Groupies]] group in Second Life.&lt;br /&gt;
&lt;br /&gt;
== In world meetings ==&lt;br /&gt;
&lt;br /&gt;
We meet once a week in-world and more if people are available.&lt;br /&gt;
&lt;br /&gt;
Also members are active on the wiki and in the SLDEV mailing list.&lt;br /&gt;
&lt;br /&gt;
Meetings are scheduled via the &amp;quot;[http://www.google.com/calendar/embed?src=pdd5mpktklo89bgmfgi076mcc4%40group.calendar.google.com SL AW Groupies&amp;quot; google calendar]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Meeting Agendas===&lt;br /&gt;
&lt;br /&gt;
* TBD&lt;br /&gt;
&lt;br /&gt;
===Chat Logs===&lt;br /&gt;
&lt;br /&gt;
* TBD&lt;br /&gt;
&lt;br /&gt;
== Modeling Techniques used to express viewpoint ==&lt;br /&gt;
&lt;br /&gt;
None decided.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=External Links=&lt;br /&gt;
&lt;br /&gt;
=Members (Stakeholders)=&lt;br /&gt;
&lt;br /&gt;
:[[User: Zha Ewry| Zha]] - Founder&lt;br /&gt;
:[[User: Gareth Ellison| Gareth]] - Generic hacker - you design, i code!&lt;br /&gt;
:[[User: Morgaine Dinova|Morg]] - Analyst, interest from [[Scalability VAG|scalability]] and [[Quality Assurance VAG|QA]] viewpoints.&lt;br /&gt;
:[[User:Dr Scofield|DrS]] - security, hacker researcher&lt;br /&gt;
:[[User:Jesrad Seraph|Jesrad]] - engineer - I solve problems for a living&lt;br /&gt;
:[[User:Neas Bade|Neas]] - engineer, developer on OpenSim&lt;br /&gt;
:[[User:Hugo Dalgleish|Hugo]] - architect (of sorts)&lt;br /&gt;
&lt;br /&gt;
[[Category: AW Groupies]]&lt;/div&gt;</summary>
		<author><name>Hugo Dalgleish</name></author>
	</entry>
	<entry>
		<id>https://wiki.secondlife.com/w/index.php?title=SL_Certification&amp;diff=17804</id>
		<title>SL Certification</title>
		<link rel="alternate" type="text/html" href="https://wiki.secondlife.com/w/index.php?title=SL_Certification&amp;diff=17804"/>
		<updated>2007-04-23T22:46:27Z</updated>

		<summary type="html">&lt;p&gt;Hugo Dalgleish: /* Resident Participants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overarching Goal==&lt;br /&gt;
* Create Second Life Certification as an in-world resource for Residents&lt;br /&gt;
==Immediate Goal==&lt;br /&gt;
* Develop certification criteria for modeling and scripting&lt;br /&gt;
** We are looking for members of the Developer, Instructor, and Volunteer communities to work with Lindens in creating the skills list and certification tasks for those skills in Modeling and in Scripting. &lt;br /&gt;
==Description==&lt;br /&gt;
Linden Lab is developing certification for the use of key Second Life tools. We’ll begin with in-world building tools and LSL. We believe this will benefit Residents, Developers, and anyone who wishes to use Second Life by clearly identifying both key skills and the holders of those skills. This will also enable the creation of training to build the skills required for certification.&lt;br /&gt;
It is Linden Lab&#039;s intent to work with an external certification provider to offer certification testing and maintain a list of those Residents who have been certified.&lt;br /&gt;
==Linden Participants==&lt;br /&gt;
* Glenn Linden&lt;br /&gt;
* Eric Linden&lt;br /&gt;
* Blue Linden&lt;br /&gt;
* Heretic Linden &lt;br /&gt;
==Resident Participants==&lt;br /&gt;
If you are interested in participating, please add your name below.&lt;br /&gt;
&lt;br /&gt;
* Ceera Murakami (Fox and Ground Construction Company) Texture Artist&lt;br /&gt;
&lt;br /&gt;
* Elle74 Zaftig (Bellissima!/Shoppe74) build/model/textures&lt;br /&gt;
&lt;br /&gt;
* Keiki Lemieux (HUDDLES Games &amp;amp; Gadgets) Building, Scripting, Animations, Textures&lt;br /&gt;
&lt;br /&gt;
* Tre Giles (GiTech/Action Village Paintball) Building, Scripting, Animation, Photography&lt;br /&gt;
&lt;br /&gt;
* Alexander Regent (MageTech LLC) Scripting, website integration, cellphone integration, in-world building&lt;br /&gt;
&lt;br /&gt;
* Sitearm Madonna (Siterma): Sim Scale Project Planning and Management; Structural Builds and Simulator Performance Management; Social Builds and Community Growth Management; Modeling - Architecture, Terraforming, Waterscaping, Landscaping, Soundscaping&lt;br /&gt;
&lt;br /&gt;
* Hugo Dalgleish&lt;br /&gt;
&lt;br /&gt;
==Target Date==&lt;br /&gt;
Ready to launch by fall, 2007&lt;br /&gt;
&lt;br /&gt;
==Certification Categories==&lt;br /&gt;
Initially, we plan to develop certification for Modeling and Scripting.  If these two categories are successful, we will develop, in accordance with your feedback, future areas including but not limited to: Avatar Customization, Terrain/Land Editing, and Land/Estate Management. &lt;br /&gt;
===Modeling===&lt;br /&gt;
* Architecture&lt;br /&gt;
* Furnishings/Interior Design&lt;br /&gt;
* Objects&lt;br /&gt;
* Weapons and Vehicles&lt;br /&gt;
Note: Includes using scripts to animate objects and textures but no writing of scripts&lt;br /&gt;
===Scripting===&lt;br /&gt;
* Animation&lt;br /&gt;
** Note: Animation includes object animation, texture animation and particle systems&lt;br /&gt;
* Attachments &lt;br /&gt;
* Movement &lt;br /&gt;
* Physics &amp;amp; Collisions &lt;br /&gt;
* Detection &amp;amp; Sensing &lt;br /&gt;
* Asset Management &lt;br /&gt;
* Setting Properties &lt;br /&gt;
* Communications&lt;br /&gt;
* Interacting with external data stores &amp;amp; web content &lt;br /&gt;
* Media Management&lt;/div&gt;</summary>
		<author><name>Hugo Dalgleish</name></author>
	</entry>
</feed>