<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Adam Frisby &#187; module</title>
	<atom:link href="http://www.adamfrisby.com/blog/tag/module/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.adamfrisby.com/blog</link>
	<description>ZOMGWTFHAI</description>
	<lastBuildDate>Sat, 26 Dec 2009 07:02:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>DTL-PayPal (or how you can transfer money in a virtual world without significant risk.)</title>
		<link>http://www.adamfrisby.com/blog/2009/10/dtl-paypal-or-how-you-can-transfer-money-in-a-virtual-world-without-significant-risk/</link>
		<comments>http://www.adamfrisby.com/blog/2009/10/dtl-paypal-or-how-you-can-transfer-money-in-a-virtual-world-without-significant-risk/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 12:32:24 +0000</pubDate>
		<dc:creator>Adam Frisby</dc:creator>
				<category><![CDATA[DeepThink]]></category>
		<category><![CDATA[OpenSim]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[currency]]></category>
		<category><![CDATA[hypergrid]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[osgrid]]></category>
		<category><![CDATA[paypal]]></category>

		<guid isPermaLink="false">http://www.adamfrisby.com/blog/?p=473</guid>
		<description><![CDATA[WARNING:
What is being described below is dealing in real currency &#8211; you owe it to yourself if you plan to use this, to understand how it works, and perform your own risk assessment. The module is completely unsupported and unwarrantied. Use it at your own risk.

Suppose you are a user of one of the Open [...]]]></description>
			<content:encoded><![CDATA[<h3><span style="color: #ff0000;">WARNING:</span></h3>
<p>What is being described below is dealing in real currency &#8211; you owe it to yourself if you plan to use this, to understand how it works, and perform your own risk assessment. The module is completely unsupported and unwarrantied. Use it at your own risk.</p>
<p><a href="http://www.adamfrisby.com/blog/wp-content/uploads/paypal-example.png"><img class="alignnone size-thumbnail wp-image-493" title="PayPal Demonstration - Paying US$0.50 into an object." src="http://www.adamfrisby.com/blog/wp-content/uploads/paypal-example-535x500.png" alt="PayPal Demonstration - Paying US$0.50 into an object." width="535" height="500" /></a></p>
<p>Suppose you are a user of one of the Open Grids or Hypergrid system &#8211; and you want to purchase an item, pay into an object, or otherwise transact business where a real currency transfer occurs somewhere down the line. Up until now, in all environments you are reliant on trusting a third party to act as a middleman, providing some currency-equivilent (such as say V$, L$ or whatever.).</p>
<p>The problems with this scenario is that that currency is at best backed by a single corporate entity (and even then they may not choose to &#8216;back&#8217; it at all) &#8211; leaving you exposed in the event something goes wrong. This is compounded by the general trading size of these operators &#8211; tending to be sole-traders or small-business; the best scenario is one where neither the user nor the merchant needs to rely on a third party beyond the credit card processor.</p>
<p>Which is where DTL-PayPal comes in, this is a free (3-Clause BSD), open source module we&#8217;ve developed to solve this explicit problem. It uses PayPal as the backend for the transaction, and prices inworld goods in US cents. You pay me, OS$100 &#8211; and you get a bill for US$1.00 from PayPal. Every transaction needs to be confirmed by you with PayPal thus adding security into the system; in addition you don&#8217;t need to carry existing balances of &#8216;currency&#8217; in order to buy items &#8211; each item can be bought individually with a seperate transaction on your Credit Card for each purchase.</p>
<p>The transaction is a 2 step process for the user &#8211; which is illustrated in the diagram below. Step one, you &#8216;negotiate&#8217; the payment size &#8212; this is basically filling out the payment or &#8216;buy&#8217; dialog that the vendor or merchant has setup already. Step two is you will be asked to visit a special webpage (which links to one at PayPal) which sets up and pays the transaction. From a users perspective you need to do nothing more.</p>
<p><a href="http://www.adamfrisby.com/blog/wp-content/uploads/pp_paymentprocessing.png"><img class="alignnone size-full wp-image-474" title="Payment Processing Overview" src="http://www.adamfrisby.com/blog/wp-content/uploads/pp_paymentprocessing.png" alt="Payment Processing Overview" width="666" height="317" /></a></p>
<p>Steps 3 and 4 occur when PayPal has confirmed the transaction for you &#8211; once the payment is confirmed (usually within 10 seconds), PayPal notifies the module, which in turn completes the transaction, finally PayPal deposits the balance in the vendors account for immediate use.</p>
<p>Obviously the problems with inventory server issues, vendor malfunctions, etc still exist &#8211; but to a customer PayPal does allow you to dispute charges on non-delivery grounds (however beware doing this to scam the system &#8211; the merchant gets a chance at rebuttal and it can be a complicated process)</p>
<p>From a vendor perspective &#8211; the main drawback to this solution is cost, PayPal will charge you roughly $0.28 plus 2.2% for a standard account in order to process the transaction. On tiny transactions (such as one for $0.50, fee would be $0.31) this can add up to a significant portion of the transaction. For users using this exclusively, I highly recommend using a PayPal <a href="https://www.paypal.com/IntegrationCenter/ic_micropayments.html">MicroTransactions account</a> which has much lower fees (but certain additional terms &amp; conditions).</p>
<p>So, where can I get the code for this? It&#8217;s on my personal GitHub account (along with a few of my other goodies) &#8211; <a href="http://github.com/AdamFrisby/DTL-PayPal">http://github.com/AdamFrisby/DTL-PayPal</a> &#8211; I will add some further notes, first this module is currently somewhat hard coded to present a warning to the user about it&#8217;s experimental nature, remove this at your own risk. Second &#8211; OpenSim is still alpha software, you may run into other issues, so be prepared to handle them if you want to accept payments from users in it. This software has only been tested on the PayPal sandbox so far (and I recommend you do the same), however should work with the live version fine.</p>
<p>Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamfrisby.com/blog/2009/10/dtl-paypal-or-how-you-can-transfer-money-in-a-virtual-world-without-significant-risk/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Compatibility.</title>
		<link>http://www.adamfrisby.com/blog/2009/02/compatibility/</link>
		<comments>http://www.adamfrisby.com/blog/2009/02/compatibility/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 13:46:39 +0000</pubDate>
		<dc:creator>Adam Frisby</dc:creator>
				<category><![CDATA[OpenSim]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[mxp]]></category>

		<guid isPermaLink="false">http://www.adamfrisby.com/blog/?p=114</guid>
		<description><![CDATA[So, I have a small announcement to make.
OpenSim has had the capability to run multiple different clients connected to the same world since version 0.3. We translate a large number of our internal programming into a somewhat vendor neutral interface; the big catch has been &#8211; in the 21 releases since 0.3, we&#8217;ve never actually [...]]]></description>
			<content:encoded><![CDATA[<p>So, I have a small announcement to make.</p>
<p>OpenSim has had the capability to run multiple different clients connected to the same world since version 0.3. We translate a large number of our internal programming into a <em>somewhat </em>vendor neutral interface; the big catch has been &#8211; in the 21 releases since 0.3, we&#8217;ve never actually implemented a true second protocol. As of today that has changed, OpenSim now supports two client protocols that can be used simultaneously at the same time to display the same world with the same updates, avatars and interactivity. This means right now you can use either the LLUDP transport used by Second Life™, OpenSim and realXtend, or the new MXP transport developed by the Tommi over at <a href="http://www.bubblecloud.org">Bubblecloud.org</a>.</p>
<p>We also have some good news from the guys over at VastPark &#8211; over the next few days, I will be working with their team to try write another client transport which allows you to use the VastPark viewer to connect to OpenSim. Watch this space for some information about that.</p>
<div class="wp-caption alignnone" style="width: 710px"><a href="http://www.adamfrisby.com/mxpslviaopensim.png"><img title="MXP and SL Together" src="http://www.adamfrisby.com/mxpmini.png" alt="MX Deck and Second Life in a single Region (Click to Enlarge)" width="700" height="438" /></a><p class="wp-caption-text">MX Deck and Second Life connected to the same region (Click to Enlarge)</p></div>
<h3>Why MXP?</h3>
<p>The simple answer here is the protocol is reasonably well thought out (it&#8217;s <em>very refreshing</em> compared to LLUDP), it&#8217;s also pretty simple and easy to understand. There&#8217;s a good reference implementation on their website which we were able to utilize extensively. To users, there&#8217;s potentially some big advantages in how you can route packets from a region simulator to viewers &#8211; possibly eliminating some of the issues people see when trying to host from behind firewalls and routers. This is however conceptual &#8211; a decent client will still need to be written to utilize the MXP protocol (right now the only clients using it are for demonstration purposes).</p>
<p>The big reasons were however that it&#8217;s appropriately licensed, there&#8217;s good reference code out there and the protocol is straight forward. It was also in the right place at the right time &#8212; while it gets the crown for first additional protocol, we&#8217;re hoping to have quite a few more now the infrastructure is in place and tested to properly support alternate client libraries.</p>
<h3>How complete is this implementation?</h3>
<p>Not very &#8211; we implement at the moment about 5 of 250 &#8220;functions&#8221; the Second Life viewer can present to us, ontop of the basic connection management. Mostly these are relating to display of primitives, updating their positions and chat. We still need to do a good deal towards displaying avatars correctly (and assigning a &#8216;ruth&#8217; for each clients display of the other). Given the adapter is however less than 48 hours old &#8211; I expect to see some rapid progress here in adding features and capabilities to it. To give some idea of what&#8217;s working however below is some screenshots of the same region connected to in each client.</p>
<p><img class="alignnone" title="Prims displayed in SL" src="http://www.adamfrisby.com/mxpprimssl.png" alt="" width="700" height="429" /></p>
<p><img class="alignnone" title="MX Deck showing the same scene" src="http://www.adamfrisby.com/mxpprimsdeck.png" alt="" width="700" height="446" /></p>
<h3>How do I connect a MXP client to OpenSim?</h3>
<p>Grab a copy of the Demo Client from Bubblecloud.org (see Downloads -&gt; MXP Demo Client.zip) and a copy of the latest release of OpenSim from the OpenSim Trunk SVN.</p>
<p>In your OpenSim.ini, add the following settings to the end</p>
<blockquote>
<pre>[MXP]
Enabled = true
Port = 1253</pre>
</blockquote>
<p>Start up your OpenSim and create a region if you havent already &#8211; now go into your OpenSim Region&#8217;s directory and open your default.xml &#8211; cut and paste the sim UUID (looks like this: <strong>b18ddeb1-f3d4-4c05-aa55-f1ca55532220</strong> )</p>
<p>Install the MXP Client and edit the MX Deck.exe.config file &#8211; you need to paste your region UUID into the &#8220;BubbleID&#8221; field, and edit the &#8220;ServerAddress&#8221; to read &#8220;127.0.0.1&#8243;</p>
<p>Start MX Deck.exe and you should be connected to your OpenSim region.</p>
<p>Voila!</p>
<p><img class="alignnone" title="MXP in OpenSim" src="http://www.adamfrisby.com/mxpinopensim.png" alt="" width="700" height="447" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.adamfrisby.com/blog/2009/02/compatibility/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
