Sunday, December 13, 2009

Version 2.15 is out! So what?

Ok ... no news here.
Just go to here and download it.
This version is EXACTLY the same code as 2.14, the only difference is that this one is built against the latest LibOpenMetaverse code as of Dec/23 11PM.
If there is any improvement to the LibOpenMetaverse code since MyProxy 2.14 was built, this improvement will (hopefully) reflect on the behavior of MyProxy 2.15.
I hope you guys enjoy this release as much as I enjoy playing with it.

AH!!! and in case you don't hear from me by then...

MERRY XMAS AND A HAPPY NEW YEAR!!! MAY ALL THE PEACE OF THE (VIRTUAL) WORLD COME TO YOU AND YOUR RELATIVES!!!

Cheers,
The Borg.

Silent but not dead.

Hey folks,

This message is just to let you know that I did not disappear.
Baby Borg has hatched this last Dec/9, with 52cm and 3.3Kilos, a big baby, so I am now operating in not-sleeping-diaper-changing-dad-mode, which means: no coding for a while.
But feel free to ask question, I will try to keep supporting you guys as time permits.

Cheers,
The Borg
(because resistance is futile)

Friday, November 20, 2009

No More MyProxy! for a while.

HOLD! Don't scream in panic!!! It's not forever...

Baby Borg is coming between now and next weekend, so I won't be doing any work on the proxy between now and around the first weeks of december.

Yesterday I went online and tested each one of the v2.14 commands, and everything seemed to be working fine. At least from the "beholder's eye" perspective.
I have tested the AO, exporting assets, shape backup, demo shopping, asset import, texture download, and so on.

At some point I was able to replicate an issue where I was trying to use /load to load assets I've had saved, but those assets were not showing up on the inventory.
This happened on a crowded and laggy place, so I think it is related to the speed of the connection.
I have added some flags to the code and noticed that the proxy does exactly what it is supposed to do: sends the packets with the asset towards the server. But the assets just won't show up at the inventory.
As I could see that the MyProxy code was behaving as expected, I then believe this was being caused by the internal LibOpenMetaverse code losing track of the packets at some point.
April Swift had a similar issue even when using the LibOpenMetaverse proxy, so it(unfortunately) may not be related to MyProxy code.

Here's what I've used as a workaround to the problem, which may or may not work for you:

1 - Create and use an avatar that has absolutely no attachments. You will look like a complete noob (which is fun by the way) but you will also not generate any overhead to your viewer, making things become a bit faster. Remember, the proxy and the viewer are running on the same CPU, so every load that you can take out of it would help. I was amazed by the difference of performance I've got between loading my Ubber-detailed-full-of-attached-weapons-and-animated-textures avatar and the one I created with absolutely nothing attached.

2 - Do the things in batch. Instead of using /store directly at the crowded (laggy) place, just use /save instead, or /export or /exportall, teleport to an empty (I mean REALLY empty) sim, disconnect (close BOTH the viewer and the proxy) and then reconnect, so you will be freshly connected to a fast sim without anyone around (no lag?). Now you use /load and it should work. Worked for me. Be aware that, if the number of prims on the parcel has been reached, you won't be able to import any objects.

3 - Try to speed up your internet connection as much as possible, for proxies there are no "retries", a lost packet is lost forever, finito, caput, so try turning off anything that would be consuming bandwidth while you're using the proxy. Listening to internat radio, seeding some bittorrent or downloading the latest episode of Heroes while trying to use MyProxy is a big No-No-No.

I have tried to tamper with the proxy as much as possible, trying to break it, and it didn't break for me, but I can't still guarantee it is perfect, as some people is still experiencing problems.
So I would ask you guys to post here who is having problems, and who is not having, then let me know the speed of your internet connection, and the capacity (cpu/gpu power) of your computers.
The only way I think it will be possible to fix these problems is to establish some pattern, find some behavior that would be triggering the issues.

Cheers,
The Borg.

Ps.: Resistance is Futile

Wednesday, November 18, 2009

OMG ... another version??? v2.14 is out!

Hey Folks,

Here you go.
Version 2.14 can be downloaded from here.
This version is a bug-fix release only, built against the latest LibOpenMetaverse code (3121) and also with some improvements to the locking code, (trying) to prevent the crash reported by Freeballer from occurring.
I hope this version will be more stable to you all. Please let me know about your experiences with this one.

Please make your comments and new support requests on this post now.

Cheers,
The Borg.

Tuesday, November 17, 2009

Neil has released NeilLife v6.2

... and he is pretty pissed.

Go grab his viewer on http://neillife-lol.blogspot.com/, it rocks.

Cheers,
The Borg.

Friday, November 13, 2009

v2.13 is out... YAY!!!

Hi Folks,

I have done a check troughout the code looking for parts which could trigger a NullException, and crash the proxy.
I have also added some checks to prevent typos from creating problems too.
So as a result, v2.13 is out. Please go get it at: http://www.4shared.com/file/151511706/1434dd55/MyProxy213.html

This is basically a bug-fix version, so everyone MUST forget the old versions and get this.
I am releasing this with source code as well.

Naughty and April, please give it a try and let me know how it goes.

If you still encounter issues, please try to give me any hint you can think of, so I can try to find where the problem is. As I said before: Devil is in the details.

Cheers,
The Borg.

Thursday, November 12, 2009

HELP ME!!!

Help me help you.

If you encounter any issue with version 2.12 of MyProxy, please try to collect every detail of what happened, maybe even a detail that you think may not be important can be the difference between me being able to solve the problem or not.
If you post "I tried to do something and I got an error", there's no chance I can help, because I don't know what is this "something" and what was the "error"... so there's no place for me to start looking at.
Also, if you post "I tried /store and it din't work", still didn't help, because I still don't have any clue of what you were trying to store... and so on.

So, here's the deal: if you ever encounter an issue, try to collect as much information as possible. if the issue is reproductible, give me the steps to reproduce. every detail counts.

I don't have much time to deal with coding MyProxy, and when baby Borg hatches I will have even less time (or mama Borg will kick my ass big time), so when I look into something to fix, I cannot go guessing what may be the issue. I must go right on the spot.

So, help me help you.

BTW: I develop MyProxy using C# on a Windows 7 Ultimate (32 bits) laptop. I test it using the latest regular LL viewer, latest Emerald and latest NeilLife. Anything close to this should work for you as well.

Cheers,
The Borg.

PS.: Next version I will detect who's wearing pink pants and who's not wearing pants at all ... (just kidding Neil)

Monday, November 9, 2009

Resistance is Futile

Yo Folks,

No news over the weekend, other than just lurking around the metaverse and "assimilating" people.
I've seen some news about "cloth protection" being added to the regular viewer ... some more people complaining about the "content theft" or whatever it is ... some Emerald people (former rippers, right?) complaining about "NeilLife" (which BTW I prefer over any other viewer, not just for the ripping, but for the detection avoidance, which is cool).

BTW, this comment from Emerald people made me think: at some point they say they "lost patience" with Neil, and that even if he starts to comply with the open-source terms, he would still be considered a bad-guy.
Well, as far as I know, they also wrote ripping and proxy stuff at some point. So, when did they became good-guys? When they complied with the open-source terms? Then why can't Neil do the same? ... well ... sounds a bit hypocrite to me.
Anyone who looks at the Emerald source code will see that the ripping tools are there, just commented out, dormant. So here's the apple tree I created just for you, but if you eat one, you're banned from paradise ... yet they're so tempting, lol.

Have a nice week you all ... new baby borg is expected to hatch this month, so I may disappear from the blogging scene for a while when he does.

Cheers,
The Borg.

Saturday, November 7, 2009

Source code ... YAY!!!

Hey Folks,

For those willing to compile this thing on their own, or build a linux version, I am releasing 2.12 WITH the source code.
The link to download it is here.
Please be aware that:
1 - I will not be able to provide support to questions like "I can't compile this on my own, what is wrong?". I can offer guidance to help find the answers, but I can't spend time supporting builders.
2 - You will have to move openjpeg-dotnet.dll manually from LibOpenMV folder to the release (or debug) folders, in order to exporting of textures to work, or it will just fail silently. This dll is included on this release though.
3 - In order to compile MyProxy from scratch successfully, you have to do a minor change to LibOpenMV and compile it too (unless you use the DLLs I am providing as references). This proxy will NOT compile with a "vanilla" build of LibOpenMV. I explain the change below.
4 - If you do changes to the code, implement more features or fix stuff, you MUST share your changes with the community, and there's a good chance that I will implement the changes on the original code. This project is intended to be a FREE-FOR-ALL project, so if you plan to create a closed version of this proxy, you're still welcome, but you will be on your own, so please name it something else and break from the original source code branch.
5 - If you use MyProxy to crate a new proxy for yourself or any other proxy that will not be shared IN FULL with the community, please don't name it MyProxy, MyProxy-XL, MyProxy-better-than-what-mockba-did, or something like that. I would not like to have MyProxy or my name related to a project that will not be shared IN FULL with the community.
6 - I will provide support only to the new features that I add to the original source code, if someone implements a feature and decides not to share it with the community, or have it on the original code, this person is the one that should (or not) provide support to it.
7 - Anyone who compiles MyProxy and sell it will go to hell.

Changing LibOpenMV to compile MyProxy:
Find the program GridProxyLoader.cs and look for the following line inside it:

private Dictionary<string, commandDelegate> commandDelegates = new Dictionary(<string, commandDelegate>);

Just change "private" to "public" to expose this structure, and recompile LibOpenMV, that's it. You can now use your freshly built LibOpenMV dlls to compile MyProxy.

Well... I think I covered pretty much everything.

Have phun (as usual),
The Borg.

Friday, November 6, 2009

Backup of skins will cease working at some point

Dear Folks,

I have just been informed by one of my Linden friends that they're working on implementing "Cloth Protection" on an upcoming version of their viewer. So people will be sending out only the "baked" versions of their skins.
This thing already exists on Greenlife (Emerald) and it helps preventing contect theft.
With this thing being standard, people will tend to move more and more towards using it, so whenever you use the "/save" or "/store" commands for skins, you will end up either with the "baked" version, if you use the [baked] parameter, or with a default texture (or nothing) if you don't use it.
So, if you plan making backup of your (or any other) skins, I recommend doing it as soon as you can.
I still don't know how far the other clothing or wearables layers are going to be affected, but at least the backup of shapes should not be affected at all. Also the backup of attachments should not be affected.
I'll be able to find out by the time they release their new viewer, then I'll let you guys know.

Well ... we had our fun ... lol.

Cheers,
The Borg.

Wednesday, November 4, 2009

New version 2.11 is out

Hell-o Folks,

Well ... here it goes: http://www.4shared.com/file/146564743/8cc1feec/MyProxy211.html
I have just finished v2.11, with a major modification of the windows.forms infrastructure.
I have also exposed the "download" command, which allows to download assets from the server.
This command existed on v2.10, but it was broken due to the fact that the packets may arrive out of order.
I have also fixed a few bugs, by resolving some unhandled exceptions, so this version should be more stable than v2.10 as well.
However, think about this new version as a major rework, so new bugs may exist.
If you guys find any issues, please report them to me with steps to reproduce, so I can find out how to fix it.

Cheers,
The Borg.

What? no updates since 2.10?

Hell-o folks!

I've been updating the proxy almost daily until we got to 2.10, then there have been silence.
So, in case you're wondering if there will be a new version, yes there will be one. I am working right now on 2.11.
However, there will be no significantly new features. I am just re-re-rewriting the windows part, to turn it into a real windows-forms based application. Not the fancy hack I used to give you the windows based console.
This will take some time, so I won't make E.T.A. promises.
The idea is to have a real menu bar, and a command line, so you will be able to use the features from the proxy itself, instead of having to type commands on the chat console.

Cheers,
The Borg.

Tuesday, November 3, 2009

Friday, October 30, 2009

Any of you making money out of SL?

I am seeing lots of forums around where people is complaining about content theft, and complaining that it is hurting the SL economy.
Then, while sipping on my whisky, and smoking my cigar on the porch of my house in front of the lake, looking down at my brand new red 2010 camaro by the pool, I was wondering:
How much can someone make out of SL these days?
One dollar is about 260 lindens, so I was doing a quick calculation here:
To pay the bills, pay the rent and feed the kids in real life, one should be making at least one million lindens month in Second Life. Is that possible? Is any of you willing to share your experiences on this field? Any thoughts about this?

Should I release the source code?

Well ... the thing is written in C#, so think about it: the source code is already there, for everyone to see.
If you don't know what I am talking about, just visit this page: http://www.red-gate.com/products/reflector/
It is a small standalone free application that will allow you to reverse engineer the source code of MyProxy, to the flavour you want, C#, VB, Delphi, whatever you prefer.
I am amazed by this software, and I bet you will have much more fun taking my source code off the executable with it than getting it in a lame .RAR file.

Wednesday, October 28, 2009

Version 2.10 is out

The only difference between this version and 2.09 is that this one has been converted to a Windows Forms based application, so it is easier now to copy/paste stuff from the console window to the viewer.

Download it here: http://www.4shared.com/file/144368245/6879d4be/MyProxy210.html

(Still no E.T.A. to publicly release the source code, but I can provide it to whoever wants to help the development.)

Tuesday, October 27, 2009

On Proxies and Quantum Mechanics

OK, here's a quick how-to on using MyProxy.

MyProxy is based on the proxy code from LibOpenMetaverse (formerly known as LibSecondLife), so all of the command line parameters are the same. Even though you don't need any of them for regular use.

Step 01: Download the latest version of MyProxy, then extract the .RAR file in any folder you select.

Step 02: Start MyProxy by double clicking on the executable. It will load, and present the following screen:



Step 03: Create a shortcut for your SecondLife viewer of choice, then change the "Target" field, by adding "--loginuri http://127.0.0.1:8080/" at the end of it. It will look like this:



Step 04: Log in to your viewer as you normally would, the proxy will reflect your log-in information, the screen will look like this:



Step 05: Once you're in the viewer, just type "/help" and you will get a list of the available commands. If you type a command name followed by the keyword "help", like in "/consoleonly help", the proxy will present a more detailed help on that command. So you're good to go.

Everything that the proxy "says" to you will show up also on the proxy's console. So you can disable the text on the viewer using the "consoleonly" command, to prevent clutter on the viewer's screen.

If you use a viewer which allows doing that, change the default local chat channel on the chat-bar from zero to something else (any number will do), to prevent a proxy command to go inadvertently onto the local chat due to a typo, people may get upset that you're using such tool.

Anything you make backups of will end up on the folder you started the proxy from, so once you have finished your session, just go there and check it out.

I recommend going to a calm and quiet place, not a sandbox, but a place that would allow rezzing objects, so you can test out some commands, before going into the "wild".

If you guys need more specific explanation on one specific command, just ask here on this post comments. I'll do my best to explain.
Also, use this blog as a forum to report any bug you find, or any misbehavior the proxy is presenting.

Also: (VERY VERY IMPORTANT) be aware that this proxy was created with the sole purpose of allowing people to back up and restore their own stuff (yeah, right), so don't go on a demo shopping spree or replicating people around, as this is wrong, and your mom may send you upstairs without diner by doing that.
If you do that (and get caught, of course), the guys at Linden Labs will come, lock out your avatar, steal your lindens, auction your inventory, spank your dog AND bang your mom.
(I think I made this scary enough)

Cheers,
The Borg.

PS.: Oh, I forgot to talk about the Quantum Mechanics ... maybe on a next post.

Monday, October 26, 2009

Update 2.09

Ok, there's a change on the version numbering. I want to have some room for improvement before I reach version 3.0, so I decided to turn 2.9 into 2.09.
No reason to get confused... just go after 2.09 here: http://www.4shared.com/file/143933121/40d51ce1/MyProxy209.html as this is the latest one (so far).
Changes on this version:

. Did some cleaning on the code, getting ready to release the source at some point in the future (I will not have closed versions of my proxy, what you have is what I have, and it will be open source as soon as I clear the mess I make when I code something).
. Took out some unnecessary messages on the console when exporting objects.
. Tried to make copying of self shape, skin and such work, however only self shape is working fine. Other assets may or may not work.

Update 2.8

Fixed the shape backup, and also some other stuff related to self appearance.

New version is at: http://www.4shared.com/file/143673707/9bdbb3f1/MyProxy28.html

Enjoy. And please share your comments.

Cheers,
The Borg.

Sunday, October 25, 2009

MyProxy SL Proxy

Hello there.

Version 2.7 of MyProxy is released. On this version I have corrected exporting of sculpts with the "mirror" and "inverse" options on.

The first publicly released version was 2.6.

Whoever is interested, can get a copy of MyProxy at http://www.4shared.com/file/143434620/13d41195/MyProxy27.html

This proxy is loaded with features, and is very useful when backing up things to move to OpenSim for example.

I will be giving out more details about it here soon. Just waiting for the blog to "start moving", as it is pretty much stale now.

Cheers.

Thursday, October 15, 2009

Are CopyBots real?

People keep asking me this question, so the answer is: yes!

There are some ripping tools around, some will exploit the client side of the connections, some will exploit the data stream itself (proxies) and some rely on bugs (or vulnerabilities) on the server side.
Some of these tools are detectable (that's good), and some are not (uh oh, that's bad).

OK ... let me rephrase this: Some of these tools are detectable (that's bad), and some are not (yay, that's good). Does it sound better for you now?

The fact is that, whatever you viewer needs to draw: be it Avatars, Objects, Particle Systems, Animations ... anything that you will see or hear through the network ... must be transferred to you from the servers, and thus can be decoded, saved and duplicated.
You can even duplicate the topology of a land you like, and use that on your own land, if you have one, so you don't have to teleport around to climb that mountain, or sit under that tree.
So in theory, anything you see can be yours, for no charge (and that is what scares the hell out of some content builders).

What is not going to be yours? the scripts inside those objects. For example: you can duplicate someones jewel with a bling script on it, or someones glasses with auto-shading behavior, but you will end up only with a copy of the objects, the bling and the auto-shading behavior will be gone, as the scripts will not be copied.
In fact, the particle system of an object (the bling, for example) can be extracted and reverse-engineered into a LSL script, but if you see someone using a cloth, weapon, or any other thing that would have a script on it, it is unlikely (unless someone can prove me wrong) that you will be able to rip out a copy of that script. However, if you have a script on your inventory that's "no modify", there's a chance that exploring some bug you would be able to full-perm that one, but I'm still to see someone post a way to do it.

So copypots do exist, in different sizes and shapes, and no prim is safe in the virtual world (now you can go outside and scream in terror).
The only thing is that, by using a copybot (without being careful), you can get banned from SecondLife, and have your avatar account disabled by LL, believe me, it happened to me, and with around L$7000 on my avatar account (what's that worth? 20 bucks? lol).

One nice measure against copybotting skins I saw lately comes from some viewers that do "Cloth Protection".
It basically blends all the layers together onto the baked textures, so if you want to steal that specific skin, you must take all the clothes (wearables, not prims) with it, then you will always have to be wearing the same stuff ... which renders that skin useless.
So if you cherish that skin you got yourself for L$0 on a freebies store, and is exactly the same as the one that sells for L$500 on another store, just use the "Cloth Protection" thing and you will be fine.

Who is the borg?

Hi folks,

After all these years using SecondLife (and all the disabled and blocked avatars) I have decided to share some information with you, and also learn from you as well, because this is how we evolve, by constantly learning from each other.

Let me introduce myself: I am a 42 years old programmer, with more than 20 years experience with different programming languages. Even LSL. So, no kiddo-hacker here.
I am not of native English language, so do expect some language mistakes, even though I will try to keep the posts as readable as possible.
I do code for a living, but when I have free time (which doesn't happen often) I code for fun, and lately I have had LOTS of fun coding with LibOpenMetaverse (formerly known as LibSecondLife).
And before someone asks: no, I am not mad at LL, I am not trying to destroy SecondLife's economy, I am not going to write a copybot for you, I am just coding for fun (and for the lulz of course).

So, I decided to create this blog to share information about this project (LibOpenMetaverse) and what can be achieved with it.
Also to share ideas, concepts and opinions about the virtual worlds, like SecondLife, OpenSim and others.

So, feel free to ask, share, comment, collaborate.

Be aware that I will only update this blog from time to time, when I have free time, and when I am not coding. So don't worry if takes some time to see new stuff here. But I will try to keep it updated at least on a weekly basis.

Cheers,
The Borg.

(because Resistance is Futile)