There Appendices
I plan to use this page to post technical info about There if you want to play with it. This is for advanced computer users only and use it at your own risk.
Improving Performance:
This was one of the posts in the "Workarounds" thread, but because of its length I moved it here. This is good info for anyone having problems with There that no one else seems to have Thanks to Jo Bleaux for this:
Problem: severe lag on client side, evidenced by disk "thrashing". Watch the drive activity light as things load. If it flashes continuously or stays lit for long periods of time, chances are good that at least part of the lag is being caused by your computer.
Fix 1: Increase your computer's memory. Insufficient RAM will cause your computer to swap the contents of memory not recently used out to the hard disk in order to free up what's needed for the task requesting it. Your hard disk is much slower in operation than RAM, so less swapping means less delay.
Fix 2: Allocate your swap file as a single contiguous file. By default, Windows uses whatever area of your disk that happens to be free for its swap file. This results in fragments of the file being scattered from one place to another, which in turn results in more delay as the actuator must jump around to find each fragment--a much slower process than reading the next cluster immediately following the previous. You can force Windows to create a contiguous swap file by specifying its maximum size to be the same as its minimum size. If you don't know how to do this, find someone who does. A swap file that is too small will adversely affect performance and may even prevent Windows from starting up.
Fix 3: Move your swap file to a different disk to avoid contention when multiple file operations are required, e.g. writing to the swap file in one place and reading a data file in another. The drive heads cannot be in two places at once, causing delays as the drive sequentially seeks out each cluster.
Fix 4: Regularly defragment your hard drive(s). Windows' defragmenter is rather brain dead; it may report that defragmentation isn't needed and often does a poor job of it anyway. Several repetitions may be required to really clean things up. Remove any unneeded files before starting the process. One such file is
There.log, a file that continues to grow for the duration of your time logged in. Unless you need to save this file for debugging purposes, get rid of it; it will be recreated anyway. For a normal installation, you'll find this file as C:\Program
Files\There\ThereClient\There.log You can also free up some space by deleting your chat logs (after saving any needed ones to a safe location). Chat logs can be any number of various files with a
.htm extension; they'll be found in the C:\Program Files\There\ThereClient\chatlogs folder. Be sure you actually delete the unneeded files. Putting them in the "recycle bin" will just move them to a special folder where they will continue to occupy space until you empty the recycle bin. Why waste time defragmenting files that aren't needed anyway?
Fix 5: Better still, install There in a separate dedicated partition on a disk other than the one Windows is installed on. If you are running Windows XP, turn off system recovery for this partition unless you really plan to roll back There's files to some previous version. System recovery is great for Windows' system files, but it's a resource hog that will turn your disk to Swiss cheese where There is concerned. Instead of defragmenting this partition, a more sure means of cleanup is to first remove unneeded files, then completely copy your There directory to another drive, reformat your dedicated There partition, and then move the copied directory back to its regular home. For example, if you've installed There in F:\There, copy F:\There to C:\, which will create C:\There, then move C:\There back to F:\ after you've reformatted F:\ I've tried formatting as FAT, FAT32, and NTFS without seeing signicantly different performance. Thus, NTFS was my final choice since it is a more robust file system.
I've found these things can make a world of difference in performance. As with anything else involving Windows,
YMMV. Good luck from Jo the geekgrrl :)
Using Debug Mode:
The There client has a built in web server that can be accessed via local host. But to access it you have to get into debug mode. For some basics, here is a post on the official forms with some warnings, how to get in, and how to find the owner of any object:
It's not a bug or an exploit; the tools are there on purpose. They're for debugging. In fact, if you run into certain kinds of nasty problems, customer service may ask you to use them to provide information.
You can't affect the servers or the experience of other members using these tools, but you can accidentally cause really horrible performance problems for yourself if you mess with some of the settings, so we ask that you don't make uninformed changes. :-)
As far as looking up the name of an object's owner, that is certainly available with the help of these tools. It's a little annoying. We're looking at putting in an interface in the future so that you don't have to go to all that trouble; lots of people have requested this so that they can ask permission to use an object they've found.
It is NOT possible to get any personal information via this method (like real name or address, or credit card numbers). Just an avatar name.
This is how you find the name of an object's owner using the debugging tools:
1) Find the object in the world.
2) Press Ctrl-Shift-D to turn on display of doids to find the doid number. It'll appear in a black box floating on top of the object. You may have to walk around it a bit to make sure you have the right one.
3) Press Ctrl-Shift-L with the client window active; this enables the client's HTTP interface.
4) Go to http://localhost:9999 in a browser, with the client still running.
5) Click on ihost.
6) In the section called dob list (a big table), find the doid, and click on it.
7) This will display the details page.
8) Look for "ownerDoid=" in the "Details" text (the big box with all the mumbo jumbo in it; the ownerDoid should be in the top few lines).
To get the profile (and thus the name) of the owner, open a browser and go to this address:
http://webapps.prod.there.com/profiles/profiles?op=view&AvatarDoid=xxxxxxxxx
...where xxxxxxxxx is the ownerDoid number that you just got.
Told you it was annoying. :-)
We haven't banned anyone for messing with these tools, although, as I mentioned, we ask that you please not mess with them if you don't know what you're doing. We also haven't fired any employees for informing members of the tools' existence, although our employees generally don't talk about them because they know that it is possible to cause yucky problems for yourself, and they don't want that to happen.
If you do mess with the debugging tools and do something that causes yuckiness, and you need help from customer service, please tell them right away what you did so that they can help you. They won't ban you.
There_Socializer
Useful Formulas for There calculations:
Converting XYZ to Latitude, Longitude, Altitude:
Altitude = sqrt ( x² + y² + z² ) - 6000000
Latitude = arcsin ( y / (Altitude + 6000000) )
Positive = N negative = S
Longitude = arctan ( x / z )
Positive = E negative = W
Note: These formulas only work on the front part of planet there,
Also the result will be in decimal, you have to convert to degrees, minutes, seconds to be useful:
DEGREE = integer (latitude)
MINUTES = integer ( 60 * (latitude - DEGREE))
SECONDS = 60 * (60 * (latitude - DEGREE) - MINUTES)
Converting Latitude, Longitude, Altitude to XYZ:
LAT = - Latitude if North, + Latitude if South
LON = - Longitude if East, + Longitude if West
ALT = 6,000,000 + Altitude
Then,
X = sin (LAT) * ALT
Y = cos (LAT) * sin (LON) * ALT
Z = cos (LAT) * cos (LON) * ALT
Finding the distance between two points:
Given current position x, y, z
and memorized position xm, ym, zm
Distance = sqrt((xm-x)² + (ym-y)² + (zm-z)²)
for kilometers, divide by 1000
Direction is a little tougher, but here is function that will return a compatible heading:
function DIRECTION (x, y, xm, ym)
// find delta values
var delta_x, delta_y
delta_x = xm - x
delta_y = ym - y
//special case dy = 0
if delta_y = 0 then
if delta_x > 0 then
DIRECTION = -90
return
else if delta_x < 0 then
DIRECTION = 90
return
else
DIRECTION = 0
return
end if
end if
// calculate directions, convert to degrees
DIRECTION = arctan ( delta_x / delta_y ) * 180 / pi
// adjust direction to be compatible with heading
// each quadrant is different in this regard
if delta_y > 0 then
DIRECTION = -1 * DIRECTION
else if delta_y > 0 then
DIRECTION = DIRECTION - 90
else
DIRECTION = DIRECTION + 90
end if
return
End Function