diff options
Diffstat (limited to '')
-rw-r--r-- | docs/TL_DR.html | 160 | ||||
-rw-r--r-- | docs/index.html | 7 |
2 files changed, 165 insertions, 2 deletions
diff --git a/docs/TL_DR.html b/docs/TL_DR.html new file mode 100644 index 0000000..79d9040 --- /dev/null +++ b/docs/TL_DR.html | |||
@@ -0,0 +1,160 @@ | |||
1 | <html> | ||
2 | <title>SledjHamr TL;DR</title> | ||
3 | <head> | ||
4 | </head> | ||
5 | <body bgcolor="black" text="white" alink="red" link="blue" vlink="purple"> | ||
6 | Welcome to a summary of SledjHamr and SledjChisl! | ||
7 | |||
8 | <p>I have a theory that the quality of an open source project is | ||
9 | inversely proportional to the number of forks. OpenSim and SL / OS | ||
10 | viewers have a lot of forks. I have one to. lol</p> | ||
11 | |||
12 | <ul> | ||
13 | <li><a href="#SledjHamr">SledjHamr</a> Overall project.</li> | ||
14 | <li><a href="#SledjChisl">SledjChisl</a> How we get there.</li> | ||
15 | <li><a href="#history">The story so far.</a></li> | ||
16 | <li><a href="#onefang">onefang</a> Semi-retired computer programmer and sysadmin with a great breadth and depth of experience.</li> | ||
17 | </ul> | ||
18 | |||
19 | <h1><a id="#SledjHamr">SledjHamr</a> Overall project.</h1> | ||
20 | |||
21 | <p><a href="index.html">SledjHamr</a> is a rewrite from scratch of Second Life (SL) / OpenSim (OS) | ||
22 | style 3D online virtual world client / server. It also intends to | ||
23 | hook up with other virtual worlds and standards.</p> | ||
24 | |||
25 | <p>Simulating a world requires lots and lots and lots and lots of little | ||
26 | details. So rewriting OpenSim server and a viewer from scratch will take | ||
27 | a long time, especially for one person.</p> | ||
28 | |||
29 | <p>The plan is to use OS server and SL clients as crutches, when a bit of | ||
30 | SledjHamr is ready, it replaces the matching bit in OS/SL.</p> | ||
31 | |||
32 | <p>OpenSim is mostly a bunch of web services that talk to each other and | ||
33 | the viewers. There is also some UDP protocols involved. So my plan is | ||
34 | to move away from the OpenSim web server and allow the use of other web | ||
35 | servers. I also plan on writing things in C and Lua, with little bits of | ||
36 | assembler if needed (see below for my claim to a right to be a language | ||
37 | bigot). I think I can get much better performance using C and LuaJIT, | ||
38 | and so far my experiments have shown that I do.</p> | ||
39 | |||
40 | <p>The world already has many ways of doing HTTP transfers, with very | ||
41 | mature things like CDNs, proxies, reverse proxies, etc. So distributing | ||
42 | assets across the world is a solved problem. So let's use all of that to | ||
43 | make things better.</p> | ||
44 | |||
45 | <p>OpenSim isn't a complete system though. You need to supply some extra | ||
46 | bits via another web server to complete the system. So initially I'll | ||
47 | concentrate on those. Using FCGI as a fast method of hooking C and Lua | ||
48 | code up to web servers.</p> | ||
49 | |||
50 | <p>A further part of my plan is to replace the non web protocols with | ||
51 | some binary based protocol. Way more efficient. So there | ||
52 | is a sub-project called "nails", hammering everything together. | ||
53 | Nails could also bridge between SledjHamr and other virtual worlds.</p> | ||
54 | |||
55 | <h1><a id="#SledjChisl">SledjChisl</a> How we get there.</h1> | ||
56 | |||
57 | <p>However that's a really huge project, so SledjChisl was invented to | ||
58 | slowly chisel away at things until it becomes SledjHamr.</p> | ||
59 | |||
60 | <p>So far that's a single executable based on toybox LuaJIT, qlibc, and fcgi2. </p> | ||
61 | |||
62 | <p>SledjChisl is basic server management stuff and a minimal account | ||
63 | creation system. This rewrote bash scripts I had written earlier | ||
64 | to do the management things. Start, stop, and get status for the | ||
65 | grid or individual sims. Create IARs and OARs automatically on a | ||
66 | weekly basis, including what I call GITAR files, which include git in the | ||
67 | IAR / OAR files to track changes. GITAR files tend to be roughly | ||
68 | twice the size of ordinary IAR / OAR, but include enough git tracked | ||
69 | history to recover things from any given week since it started. | ||
70 | The weekly backup also has an option to rsync the results somewhere for | ||
71 | offline backups. Also other things like getting an updated | ||
72 | OpenSim, building everything, running the tests.</p> | ||
73 | |||
74 | <p>SledjChisl runs everything in tmux. It automates figuring out | ||
75 | which ports sims use, opening up tmux windows and panes for them. | ||
76 | Including categories of prioritised sims startup, and figuring out how | ||
77 | quickly to start them up in parallel so it doesn't over stress the server. | ||
78 | One of those tmux panes is for the log output of the FCGI based | ||
79 | account system. So you can, for example, have the first tmux | ||
80 | window with four panes, one for ROBUST, one for FCGI log, one for your | ||
81 | Welcome sim, and one for general terminal commands. The next tmux | ||
82 | window might have your two most important sims other than Welcome. | ||
83 | Next might be windows for your sea only sims, perhaps 8 panes of those | ||
84 | per window. Then your smaller sims with four per window. | ||
85 | Then your big heavy weight sims that might take ten minutes each to start | ||
86 | up, so you want them to start last.</p> | ||
87 | |||
88 | <p>For those unfamiliar with tmux, it's very similar to screen, but can | ||
89 | be scripted and has mouse support. For those not familiar with | ||
90 | screen, it's a utility to allow control of multiple command terminal | ||
91 | windows in one text command terminal. Both allow sharing with multiple | ||
92 | people and persistence after you log off.</p> | ||
93 | |||
94 | <h1><a id="#history">The story so far.</a></h1> | ||
95 | |||
96 | <p>About a decade ago I came up with the ideas for SledjHamr, and | ||
97 | discussed it with some of the members of a grid I was running at the | ||
98 | time. They helped to flesh some things out and came up with other | ||
99 | ideas. Though mostly it's been my ideas.</p> | ||
100 | |||
101 | <p>Shortly after that I started writing prototype code using | ||
102 | Enlightenment Foundation Libraries. I was part of the overall | ||
103 | Enlightenment project at the time, and very familiar with EFL, so the | ||
104 | choice was easy. Before I started Samsung had been hiring some of | ||
105 | the EFL team to use EFL and Enlightenment for their Tizen project. | ||
106 | Samsung started a skunk works project to add 3D support, but that | ||
107 | team was forbidden to talk with others. The major basic thing they | ||
108 | where missing was any sort of avatar animation system. Even though | ||
109 | I had written some of the subsystems of EFL, their response to my request | ||
110 | to add that was "you gotta do something for us first". Then things | ||
111 | got a bit ugly and I left EFL in disgust. So the SledjHamr project | ||
112 | got put on hold for a while.</p> | ||
113 | |||
114 | <p>The SledjHamr prototype had a little scene, that was described by Lua | ||
115 | scripts on the server. The viewer had basic camera control. | ||
116 | I had my own script engine that converted LSL into Lua, than ran it with | ||
117 | LuaJIT, and supported llDialog(), though it wasn't hooked up to do things | ||
118 | to the world yet, but it could fire up MLP and run it's menu system. | ||
119 | That script engine was orders of magnitude faster than OpenSim at | ||
120 | the time.</p> | ||
121 | |||
122 | <p>During that SledjHamr sabbatical, I was running a grid and tweaking | ||
123 | OpenSim. The main thing I did was to speed up the script engine a | ||
124 | bit by removing three things. What I call the Oh Silly Threat | ||
125 | System got tamed so that not so much useful stuff was forbidden for truly | ||
126 | over the top paranoid reasons, and the function calls to check for | ||
127 | permissions that would always be granted got removed. The Second | ||
128 | Life "this function will sleep for X seconds" stuff was all removed. | ||
129 | And I found out that the function calls in each function that | ||
130 | supposedly calculated "lines per second" didn't actually do that, and the | ||
131 | results never actually went anywhere, so those function calls got removed | ||
132 | as well. Removing all those useless function calls made the script | ||
133 | engine noticeably faster, and only caused a problem for one badly written | ||
134 | script.</p> | ||
135 | |||
136 | <p>Then I started writing SledjChisl. OpenSim + SledjChisl, which | ||
137 | I call opensim-SC, has been running at least three grids for over a | ||
138 | year.</p> | ||
139 | |||
140 | <h1><a id="#onefang">onefang</a> Semi-retired computer programmer and sysadmin with a great breadth and depth of experience.</h1> | ||
141 | |||
142 | <p>I have been programming since the late '70s. Working on all | ||
143 | sorts of things in all sorts of languages. I have used 100 | ||
144 | programming languages in my career, so I think I have earned the right to | ||
145 | be a language bigot. I can learn a new language in an hour, and be | ||
146 | expert in it in a week. I'm also great at writing documentation. | ||
147 | My favourite programming languages are assembler, C, and Lua. | ||
148 | LuaJIT FTW!</p> | ||
149 | |||
150 | <p>I have been working professionally with OpenSim and SL/OS viewers for | ||
151 | over a decade. I used to be the maintainer of Imprudence viewer. To | ||
152 | which I added experimental support for over 20 different mesh formats | ||
153 | that would download them directly from the web, this was about the time | ||
154 | LL was adding mesh. I've also been paid to add VR support to a | ||
155 | corporate OpenSim viewer, before the current crop of VR headsets where | ||
156 | released to the public (I used an Oculus Rift DK2, the finished project | ||
157 | used Oculus Rift CV1).</p> | ||
158 | |||
159 | </body> | ||
160 | </html> | ||
diff --git a/docs/index.html b/docs/index.html index 3cc66e5..719a328 100644 --- a/docs/index.html +++ b/docs/index.html | |||
@@ -7,6 +7,8 @@ Welcome to the home of SledjHamr! | |||
7 | 7 | ||
8 | <p>SledjHamr is a rewrite from scratch of Second Life (SL) / OpenSim (OS) style 3D online virtual world client / server. The plan is to use OS server and SL clients as crutches, when a bit of SledjHamr is ready, it replaces the matching bit in OS/SL.</p> | 8 | <p>SledjHamr is a rewrite from scratch of Second Life (SL) / OpenSim (OS) style 3D online virtual world client / server. The plan is to use OS server and SL clients as crutches, when a bit of SledjHamr is ready, it replaces the matching bit in OS/SL.</p> |
9 | 9 | ||
10 | <h2><a href="TL_DR.html">TL;DR</a></h2> | ||
11 | |||
10 | <p>We have tried a variety of names for this thing, NGIW, OMG, SledjHamr. Open Management Group have a US registered trade mark of "OMG", and they deal with computer integration standards for "enterprise", in other words, big business, with deep pockets plus scary lawyers, and too close to what we are doing for us to get away with it for long. So, in the interests of having a name so I can just start coding dammit, I'm going with my original name of SledjHamr. It's not very marketing friendly, and even I have to stop and think exactly how it is spelled. lol</p> | 12 | <p>We have tried a variety of names for this thing, NGIW, OMG, SledjHamr. Open Management Group have a US registered trade mark of "OMG", and they deal with computer integration standards for "enterprise", in other words, big business, with deep pockets plus scary lawyers, and too close to what we are doing for us to get away with it for long. So, in the interests of having a name so I can just start coding dammit, I'm going with my original name of SledjHamr. It's not very marketing friendly, and even I have to stop and think exactly how it is spelled. lol</p> |
11 | 13 | ||
12 | <p>OMG might stand for Open Magic Garden, but we are open to other suggestions. We don't have a great name for it, until recently I liked NGIW (Next Generation Immersive Web) best, but OMG has plenty of appeal. What it is, even if we don't have a clear name for it, is an improved version of OpenSimulator and Imprudence, a vision of better virtual worlds. We have a few pages talking about it. Check out:</p> | 14 | <p>OMG might stand for Open Magic Garden, but we are open to other suggestions. We don't have a great name for it, until recently I liked NGIW (Next Generation Immersive Web) best, but OMG has plenty of appeal. What it is, even if we don't have a clear name for it, is an improved version of OpenSimulator and Imprudence, a vision of better virtual worlds. We have a few pages talking about it. Check out:</p> |
@@ -63,8 +65,9 @@ Welcome to the home of SledjHamr! | |||
63 | <li><a href="common/BlackListAssetServersTracker.html">BlackListAssetServersTracker</a> Might be cool if you could accept/reject asset servers. For copyright control or to avoid seeing yucky stuff.</li> | 65 | <li><a href="common/BlackListAssetServersTracker.html">BlackListAssetServersTracker</a> Might be cool if you could accept/reject asset servers. For copyright control or to avoid seeing yucky stuff.</li> |
64 | <li><a href="/source/AUTHORS">Authors</a>.</li> | 66 | <li><a href="/source/AUTHORS">Authors</a>.</li> |
65 | </ul> | 67 | </ul> |
66 | <p>We have a code repo on github now - <a href="https://github.com/onefang/SledjHamr">https://github.com/onefang/SledjHamr</a> with just a small README that points to this page. The experimental branch has all the actual code and stuff. We can finally start writing code. A local copy of <a href="/source/">the source</a> can be found here.</p> | 68 | <p><strike>We have a code repo on github now - <a href="https://github.com/onefang/SledjHamr">https://github.com/onefang/SledjHamr</a> with just a small README that points to this page. The experimental branch has all the actual code and stuff. We can finally start writing code. A local copy of <a href="/source/">the source</a> can be found here.</strike></p> |
67 | <p>Now that we have a web site, I should turn this into a <a href="SledjHamr/WebSite.txt">real web site</a>, huh? Until then, use the <a href="https://github.com/onefang/SledjHamr">https://github.com/onefang/SledjHamr</a> stuff.</p> | 69 | <p>I have moved the source code to my own server now - <a href="https://sledjhamr.org/cgit/SledjHamr/">https://sledjhamr.org/cgit/SledjHamr/</a> with just a small README that points to this page. The experimental branch has all the actual code and stuff. We can finally start writing code.</p> |
70 | <p>Now that we have a web site, I should turn this into a <a href="SledjHamr/WebSite.txt">real web site</a>, huh? Until then, use the <a href="https://sledjhamr.org/mantisbt/">https://sledjhamr.org/mantisbt/</a> stuff.</p> | ||
68 | <p> </p> | 71 | <p> </p> |
69 | 72 | ||
70 | <img src="SledjHamr.png" alt="SledjHamr - tearing down the garden walls." title="SledjHamr - tearing down the garden walls." usemap="#SledjHamr" /> | 73 | <img src="SledjHamr.png" alt="SledjHamr - tearing down the garden walls." title="SledjHamr - tearing down the garden walls." usemap="#SledjHamr" /> |