<?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"
	>

<channel>
	<title>OpenSpime Developer Network &#187; Libraries</title>
	<atom:link href="http://developer.openspime.com/category/libraries/feed/" rel="self" type="application/rss+xml" />
	<link>http://developer.openspime.com</link>
	<description>Implementing an Open protocol for an open internet of things.</description>
	<pubDate>Mon, 27 Oct 2008 10:05:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Much Ado For OpenSpime</title>
		<link>http://developer.openspime.com/2008/07/07/much-ado-for-openspime/</link>
		<comments>http://developer.openspime.com/2008/07/07/much-ado-for-openspime/#comments</comments>
		<pubDate>Mon, 07 Jul 2008 12:21:00 +0000</pubDate>
		<dc:creator>Babele Dunnit</dc:creator>
		
		<category><![CDATA[Ideas]]></category>

		<category><![CDATA[Libraries]]></category>

		<category><![CDATA[Projects]]></category>

		<category><![CDATA[Tutorials]]></category>

		<category><![CDATA[frontiers08]]></category>

		<category><![CDATA[noise]]></category>

		<category><![CDATA[NoiseSpime]]></category>

		<category><![CDATA[pyAudio]]></category>

		<category><![CDATA[rms]]></category>

		<guid isPermaLink="false">http://developer.openspime.com/?p=14</guid>
		<description><![CDATA[&#8230; well, fact is, about one month before Frontiers ’08, which was held in Turin on July, 1, we all developers on the OpenSpime chat were brainstorming about something to show. Applications of the OpenSpime protocol are nearly endless, but we were  thinking about something social and useful like the very first OS application developed by Roberto Ostinelli and Davide “Folletto” Casali, which was CO2 sensing, i.e. air pollution.
The [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230; well, fact is, about one month before Frontiers ’08, which was held in Turin on July, 1, we all developers on the OpenSpime chat were brainstorming about something to show. Applications of the OpenSpime protocol are nearly endless, but we were  thinking about something social and useful like the very first OS application developed by Roberto Ostinelli and Davide “Folletto” Casali, which was CO2 sensing, i.e. air pollution.</p>
<p>The idea was to develop something Arduino-based, but, you know, it’s not so easy to stuff an XMPP-based lib into 14K of memory (leave it alone the connectivity and TCP-IP stack), and this made me think that, even if OS will have a bright future in the embedded/mobile field, we needed to put up something fast. Ok, but what?<br />
Then somebody (Riccardo Cambiassi aka Bru, if I am not wrong) talked about noise pollution&#8230; and I realized that, if we were confortable in getting some QUALITATIVE audio data, and not real decibels and real noise, every laptop had a microphone&#8230;</p>
<p>I am quite good in playing with audio stuff, being a musician, and I knew I would have had an impressive reference in Antonio Tuzzi, another OS registered developer, which BTW was busy writing CoreAudio in Cupertino some ten years ago, and then wrote other stuff like Protools (from which comes his nickname, &#8220;Protuzzi&#8221;). Damn, I thought, I HOPE both of us will be able to measure an audio RMS value, huh? :)</p>
<p>The demo, which I called NoiseSpime (some says I have a knack for names&#8230;), was really fast and fun to write. I usually write in C++ and Digital Mars D (never heard DMD? have a look, trust me), and sometime in Java, having seen Python just every now and then. But, to write such a simple code, you don’t need to be a language guru, let’s face it. And, oh my, Python just WORKS&#8230; and there are LOADS of libraries over there&#8230;</p>
<p>I wanted something cross-platform, so I preferred the somewhat clunky pyAudio library to other audio libs because this one is supported under OsX, Win and Linux. Then, in the first version, the NoiseSpime had a GUI, based upon pyWidgets (which is the Python port of wxWidgets), which I developed cutting and pasting example code. I LOVE cut and paste and DUMB, BEER PROGRAMMING&#8230; :) I usually write harder, bigger stuff (eye-tracking apps right now, for the records), so writing small things is a joy.</p>
<p>Too bad, we had to drop the GUI because of some problems with OpenSpime library, which is also why it is good to write demo code. So we decided to go naked for the show. We removed the GUI and Rob fixed my code and turned it in a decent OpenSpime command-line app.</p>
<p>He also put up the <a href="http://developer.openspime.com/scopenode/noise">scopenode and mashup with Google Maps</a>, in which you can see the RMS level collected by the NoiseSpimes running around the world.</p>
<p>And, guess what? It Works. It worked out of the box, guys. This is somewhat strange for a C++ developer: NOTHING works out of the box, normally. I LOVE this stuff. I was so amazed I even believed for some minutes I could go Python, and Ruby, and all those too-easy-to-use languages, but then I remembered we are here to suffer and got back to C++ (just kiddin’! Hey, pythonists over there, don&#8217;t get me wrong&#8230; I KNOW no language is &#8220;too easy to use&#8221;&#8230; :))</p>
<p>Finally, we put all the stuff under SVN on Google Code here:</p>
<p><a href="http://code.google.com/p/noisespime/">http://code.google.com/p/noisespime/</a></p>
<p>and made a really nice ZIP for David Orban, which he installed and excellently demoed at Frontiers &#8216;08 in his speech about OpenSpime. Mission accomplished!</p>
<p>At last: because the NoiseSpime has no GUI anymore, but I wrote a decent text for the About Box, I think I will end this article with another cut and paste&#8230; Good Spiming everybody!</p>
<p>Aaron Brancotti aka Babele Dunnit<br />
<a href="http://www.babeledunnit.org"> http://www.babeledunnit.org</a></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>This is a small app to (somewhat) measure noise pollution and send data to OpenSpime servers.</p>
<p>It uses the microphone of your computer to sample ambient sounds, calculates the RMS value of the noises and sends the value to the servers (the RMS only, NOT the sounds&#8230; please check your microphone and set levels with the audio tools of your OS)</p>
<p>Also, it sends geolocation info, i.e. the latitude and longitude of the spot being monitored, which you specify in those two nice fields (yes, YOU must figure out the coords&#8230; Google Earth is your friend!)</p>
<p>So what?</p>
<p>Well, the idea here is to use the OpenSpime protocol for data communication&#8230; which is a standard, secure, encrypted, robust, reliable, flexible, open source and FREE (is that enough?) way to approach the forthcoming Internet Of Things.</p>
<p>This is just a demo: the numbers you will send are NOT decibels, so this is just a QUALITATIVE approach. A REAL noise pollution measurement device would imply calibration, filtering, certification etc.</p>
<p>So, just pretend this is one of THOUSANDS of small hardware devices, scattered around with impressive geographic density, detecting and sending data where you want, the way you want.</p>
<p>This - geolocated ambiental monitoring - is just one example application. But OpenSpime is much, much more powerful. Who know which sensors will your cellular phone soon have?</p>
<p>We Love Being Open. So, if you plan to put on the Internet your fridge, some thousands of sensors, or just another rabbit, please don&#8217;t reinvent another closed, proprietary protocol. Do yourself a favour and take a look to OpenSpime.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8211;</p>
]]></content:encoded>
			<wfw:commentRss>http://developer.openspime.com/2008/07/07/much-ado-for-openspime/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PyOpenSpime 0.1: Getting Started</title>
		<link>http://developer.openspime.com/2008/06/16/pyopenspime-01-getting-started/</link>
		<comments>http://developer.openspime.com/2008/06/16/pyopenspime-01-getting-started/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 08:32:45 +0000</pubDate>
		<dc:creator>Davide 'Folletto' Casali</dc:creator>
		
		<category><![CDATA[Featured]]></category>

		<category><![CDATA[Libraries]]></category>

		<category><![CDATA[Tutorials]]></category>

		<category><![CDATA[pyopenspime]]></category>

		<category><![CDATA[python]]></category>

		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://developer.openspime.com/?p=7</guid>
		<description><![CDATA[The most difficult part in any task is to start. So, I&#8217;ve prepared a tutorial to get you started with the OpenSpime infrastructure and PyOpenSpime 0.1, the first release of the Python OpenSpime library.
If you&#8217;re reading this, most probably you already know what a <a title="Bruce Sterling: Neologisms (spime)" href="http://en.wikipedia.org/wiki/Bruce_Sterling#Neologisms">spime</a> is: a technologically enabled device that interacts both with the physical and the digital environment, aware of its location and [...]]]></description>
			<content:encoded><![CDATA[<p>The most difficult part in any task is to start. So, I&#8217;ve prepared a tutorial to get you started with the OpenSpime infrastructure and PyOpenSpime 0.1, the first release of the Python OpenSpime library.</p>
<p>If you&#8217;re reading this, most probably you already know what a <a title="Bruce Sterling: Neologisms (spime)" href="http://en.wikipedia.org/wiki/Bruce_Sterling#Neologisms">spime</a> is: a technologically enabled device that interacts both with the physical and the digital environment, aware of its location and with an history about itself.</p>
<p>The OpenSpime network is the first open infrastructure designed to bring the spimes to life. For a technical introduction on OpenSpime please refer to <a href="http://youtube.com/watch?v=j4Q_qpCrkIc">this video</a>. You may also prefer to read the exhaustive documentation that is available on the <a title="OpenSpime.org" href="http://openspime.org/">OpenSpime.org website</a>.</p>
<p>The PyOpenSpime library is written in Python, therefore it should be easy for you to get it working thanks to Python&#8217;s cleanness and the simple design of the library.</p>
<h3>Setup the development environment</h3>
<p>To work with PyOpenSpime you need four things:</p>
<ol>
<li><strong>Python </strong>2.5 (<a href="http://python.org/download/">download it here</a>).</li>
<li>The <strong>PyOpenSpime </strong>package (<a title="PyOpenSpime Download Library" href="http://code.google.com/p/pyopenspime/downloads/list">download it here</a>).</li>
<li>The <strong>M2Crypto </strong>library (<a title="M2Crypto Python Cryptography" href="http://chandlerproject.org/Projects/MeTooCrypto#Downloads">download it here</a>).</li>
<li>A valid <strong>OSID </strong>(an OpenSpime IDentifier) on a SpimeGate server.</li>
</ol>
<p>Download and install Python 2.5 if needed. Recent versions of Mac OSX and linux may skip this step.</p>
<p>The PyOpenSpime 0.1 library is distributed via Google Code with a GPL 3.0 license, just unzip the downloaded package. Inside it you&#8217;ll find:</p>
<ul>
<li>The <strong>PyOpenSpime</strong> library and some required dependencies, under the <strong>lib/</strong> folder.</li>
<li>The commented-source <strong>tutorials</strong>, under the <strong>tut/</strong> folder.</li>
<li>The full <strong>documentation</strong> of the library built with <a title="Epydoc" href="http://epydoc.sourceforge.net/">Epydoc</a>, under the <strong>docs/</strong> folder.</li>
</ul>
<p>Download and install the <a title="M2Crypto Python Cryptography" href="http://chandlerproject.org/bin/view/Projects/MeTooCrypto">M2Crypto</a> library. This library isn&#8217;t included in the package since it requires a platform-specific compiled runtimes, and also because it&#8217;s subject to the U.S. Export Administration Regulations.<br />
On the official website however there are some <a title="MeTooCrypto: Downloads" href="http://chandlerproject.org/Projects/MeTooCrypto#Downloads">pre-compiled binaries for Windows and Mac</a> which might match your development machine.<br />
About the Mac OS X 10.5 (i386) downloadable .egg file: you might take a shortcut. Just download it, rename it to <strong>zip</strong> and uncompress it. Take the <strong>M2Crypto/</strong> folder and copy it inside the <strong>lib/</strong> folder of the PyOpenSpime package.</p>
<p>Now let&#8217;s get your OSID on the OpenSpime Developer Netowork.</p>
<h3>The &#8216;My Developer&#8217; page and your OSID</h3>
<p>As stated before, you&#8217;ll need your unique OSID, so this steps requires a registration on the OpenSpime Developer Network SpimeGate. It&#8217;s simpler than you think, since the creation of the unique OSID is linked to the registration to the Developer Network. Yes, this site.</p>
<p>If you are already a registered developer you may skip steps 1-6.</p>
<ol>
<li>Open <a title="OpenSpime Developer's Community" href="http://developer.openspime.com">developer.openspime.com</a> if you&#8217;re reading this tutorial from another location or printed page.</li>
<li>On the top-right corner locate the &#8220;Login&#8221; button and click on it.</li>
<li>The login page appears, click on &#8220;Register&#8221; at the end of the form.</li>
<li>Here you just have to choose an username, specify your password and agree to the Terms of Service (be sure to read them). Now click on &#8220;Register&#8221;.</li>
<li>You should get a <em>&#8220;Registration complete&#8221;</em> message. Now check your e-mail for the password and login.</li>
<li>Done! Now go back to the <a title="OpenSpime Developer's Community" href="http://developer.openspime.com">developer.openspime.com</a> home page.</li>
<li>On the same line where before you found the &#8220;Login&#8221; button now a &#8220;My Developer&#8221; button appeared. It will take you to the <a title="My Developer, build your own spime!" href="http://developer.openspime.com/my-developer/">My Developer page</a>.</li>
<li>Here you&#8217;ll find <strong>everything you need to develop on the OpenSpime network</strong>: the PyOpenSpime library and also your own OSpkg: one for a Spime, one for a ScopeNode.</li>
</ol>
<p>An OSpkg, aka an OpenSpime package, is a simple folder structure that contains the <strong>identity of an entity</strong> on the OpenSpime network. On your <a href="/my-developer">My Developer</a> page, you&#8217;ll see that two have already been created for you. Download both OSpkg, the one for your Spime, and the one for your ScopeNode.</p>
<h3>Easy Steps for a full tryout</h3>
<p>This video shows the necessary steps to try out in a few minutes a full data reporting cycle on your machine, using the PyOpenSpime library. For your convenience, the steps done in the video are also reported below.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/vpb33pCcBJQ&amp;hl=en" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/vpb33pCcBJQ&amp;hl=en"></embed></object></p>
<p>Here are the steps done in the video. First, unzip both OSpkg in the tut/ directory of PyOpenSpime. You will have now two additional directories which look like:</p>
<pre>dev-spime-x@developer.openspime.com/spime
dev-scopenode-x@developer.openspime.com/scope</pre>
<p>Now open the file <strong>scopenode_normal.py</strong> in the tut/ directory and edit the line:</p>
<pre>c = Client(osid_or_osid_path = 'scopenode@developer.openspime.com/scope', log_callback_function = log.log)</pre>
<p>so that it reflects the name of your ScopeNode ID:</p>
<pre>c = Client(osid_or_osid_path = 'dev-scopenode-x@developer.openspime.com/scope', log_callback_function = log.log)</pre>
<p>Doing this, we have set the ScopeNode to connect with your ScopeNode ID. Now open the file <strong>spime_normal.py</strong> and edit the lines:</p>
<pre>c = Client(osid_or_osid_path = 'spime@developer.openspime.com/spime', log_callback_function = log.log)</pre>
<p>so that it reflects the name of your SpimeID:</p>
<pre>c = Client(osid_or_osid_path = 'dev-spime-x@developer.openspime.com/spime', log_callback_function = log.log)</pre>
<p>Doing this, we have set the Spime to connect with your Spime ID. finally, edit the line</p>
<pre>c.send_stanza(iq, 'scopenode@developer.openspime.com/scope', encrypt = True, sign = True)</pre>
<p>so that it reflects the name of your ScopeNode ID:</p>
<pre>c.send_stanza(iq, 'dev-scopenode-x@developer.openspime.com/scope', encrypt = True, sign = True)</pre>
<p>Doing this, we have set your Spime to send an encrypted and signed message to your ScopeNode.</p>
<p>Now:</p>
<ul>
<li>run <strong>scopenode_normal.py</strong>: you should see that your ScopeNode connects and states that it is ready.</li>
<li>run <strong>spime_normal.py</strong>: you should see that your ScopeNode connect, then sends a message.</li>
<li>check on your ScopeNode terminal: you&#8217;ll see that an XML has been printed on screen. That is the data reporting message that has been transfered encrypted and digitally signed from your Spime to your ScopeNode.</li>
</ul>
<p>Your first easy tryout is now done! Let&#8217;s get deeper. What&#8217;s an <strong>OSpkg</strong>?</p>
<h3>OSpkg</h3>
<p>The OpenSpime Package, or OSpkg, is a simple folder structure that contains the <strong>identity of an entity</strong> on the OpenSpime network.</p>
<p>While your source code might do any kind of work and might be written in any kind of language, the OSpkg is a simple structure that holds the identity informations of a specific spime.</p>
<p>In XMPP, the backbone of OpenSpime, each client is identified by a full JID (OSID on the OpenSpime Network), which is something that looks like this:</p>
<pre>name@server/resource</pre>
<p>The OSpkg has the same structure, but it&#8217;s mapped to a folder:</p>
<pre>name@server/
    resource/</pre>
<p>This allows a good separation of the entity OSID from the source code.</p>
<p>Inside each resource folder there&#8217;s a <strong>conf.xml</strong> file, describing the spime properties and an optional <strong>keys/</strong> folder containing its private and public keys to allow encoded communication and digital signature.</p>
<p>So, the two zip files from the My Developer page are two valid OSpkg that you can use for your development.</p>
<h3>Write a custom spime</h3>
<p>Create a new folder and put inside it:</p>
<ul>
<li>The content of the <strong>lib/</strong> folder from the PyOpenSpime package, including M2Crypto if you installed it there.</li>
<li>The unzipped <strong>OSpkg</strong> of the OSID of the spime.</li>
<li>The <strong>certification-authorities.conf</strong> file from the tut/ folder.</li>
<li>An empty <strong>spime.py</strong> file.</li>
</ul>
<p>Then open the spime.py file, we will work inside of it.</p>
<p>First of all, we need to import the OpenSpime Client and we&#8217;ll initialize it:</p>
<pre>from pyopenspime.core import Client
c = Client('spime-tutorials@developer.openspime.com/tutorial-1')
c.connect()</pre>
<p>As you can see, the only required parameter for the Client() initialization is the full OSID name. It automatically checks if the OSpkg exists and loads it. Here you have of course to use the spime name matching the OSpkg taken from the My Developer page. The last line connects the spime to the SpimeGate (in this case, developer.openspime.com).</p>
<p>Then, you&#8217;ve got to prepare the data that will be sent to the ScopeNode:</p>
<pre>import pyopenspime.extension.datareporting
dr = pyopenspime.extension.datareporting.ExtObj()
dr.add_entry(u"""&lt;entry&gt;
        &lt;date&gt;2008-06-16T06:16:00+01:00&lt;/date&gt;
        &lt;exposure&gt;outdoor&lt;/exposure&gt;
        &lt;lat&gt;45.475841199050905&lt;/lat&gt;
        &lt;lon&gt;9.172725677490234&lt;/lon&gt;
        &lt;ele unit='m'&gt;120.0&lt;/ele&gt;
        &lt;ppm&gt;176.4&lt;/ppm&gt;
    &lt;/entry&gt;""")
iq = dr.build('iq')</pre>
<p>This is the rough part of the 0.1 library, since you&#8217;ll see a bit of the underlying infrastructure (it will be cleaned up in a future release).<br />
The class <em>pyopenspime.extension.datareporting.ExtObj</em> is one of the possible extensions of the OpenSpime protocol and it handles the spimes data reporting layer.<br />
On the first line we import it and then we initialize one <strong>DataReporting</strong> container, adding a XML data entry to it with the add_entry() method.<br />
The last line will build a XMPP &lt;iq&gt; stanza. If you don&#8217;t want to read the full OpenSpime protocol take it for granted for now, but &#8216;iq&#8217; must be used when a confirmation receipt is requested.</p>
<p>Of course, here we&#8217;ll be using some dummy data. In a real program date, latitude, longitude, elevation and ppm will all be calculated.</p>
<p>We&#8217;re quite done: the spime is connected and we&#8217;ve got some data to send!</p>
<pre>def on_success(stanza_id, stanza):
    print(u'data with id \'%s\' succesfully received by recipient.' % stanza_id)
c.set_iq_handlers(on_success)

c.send_stanza(iq, 'spime-tutorials@developer.openspime.com/tutorial-2')

while c.loop():
    pass</pre>
<p>This code will create an <strong>handler</strong> function and attaches it to the client using the set_iq_handlers() method. It triggers when a XMPP &lt;iq&gt; XML has been received. This means that it will be called when the data has been successfully received, without errors.</p>
<p>The send_stanza() method will <strong>send</strong> the iq object we created before to the specified ScopeNode, identified by its full OSID. Always remember to use your own OSID from the ScopeNode OSpkg, not this one.</p>
<p>In the end the while loop puts the OpenSpime client on <strong>listen</strong>. Without this we&#8217;ll never know if the data has been received, since the spime will not be listening.</p>
<h3>Write a custom ScopeNode</h3>
<p>Writing a spime is nice, but you also want to see the full pipeline. So, now we&#8217;ll see the ScopeNode, the entity that will receive the data from the spimes all around the world.</p>
<p>Exactly like the spime, we import the OpenSpime client and we&#8217;ll initialize it:</p>
<pre>from pyopenspime.core import Client
c = Client('spime-tutorials@developer.openspime.com/tutorial-2')
c.connect()</pre>
<p>No differences here, both the Spime and the ScopeNode are two clients, from a XMPP perspective.<br />
Here you should use the OSID from the scopenode OSpkg, the same you used before as the destination for the spime-generated data. In the end you&#8217;ll have the whole roundtrip completed!</p>
<pre>def on_data_received(extname, extobj, stanza):
    if extname == 'datareporting':
        print extobj.entries[0]
        c.send_stanza(extobj.accepted(), stanza.getFrom())

c.on_data_received = on_data_received

while c.loop():
    pass</pre>
<p>The ScopeNode doesn&#8217;t have to build the data, so this is simpler: we build an handler, attaching it to the client using the on_data_received() method. This will be triggered any time the ScopeNode will receive data.<br />
We just have to add a simple check to ensure that the data we received is from a Data Reporting type of XML and then we could just parse the received XML. In this tutorial we&#8217;ll just print it for explanation purposes.</p>
<p>Then, we put the ScopeNode on listen, with the same while loop from before. Done!</p>
<p>Now, run the ScopeNode and a few seconds later fire also the Spime.<br />
The two should show you that they completed a successful data reporting.</p>
<h3>Ending</h3>
<p>This tutorial explains the basic structure of OpenSpime entities communication and shows the elements required to build a Spime and a ScopeNode.</p>
<p>Even if it&#8217;s a 0.1 release, most of the OpenSpime protocol is implemented and it already has a simple and plain interface. I&#8217;ve covered just the basics of the PyOpenSpime library, if you want just go deeper in the documentation, and maybe read the source code.</p>
<p>See you soon, for the 0.2 release! :)</p>
]]></content:encoded>
			<wfw:commentRss>http://developer.openspime.com/2008/06/16/pyopenspime-01-getting-started/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PyOpenSpime v0.1 launched</title>
		<link>http://developer.openspime.com/2008/06/16/pyopenspime-v01-launched/</link>
		<comments>http://developer.openspime.com/2008/06/16/pyopenspime-v01-launched/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 06:58:27 +0000</pubDate>
		<dc:creator>Roberto Ostinelli</dc:creator>
		
		<category><![CDATA[Libraries]]></category>

		<category><![CDATA[pyopenspime]]></category>

		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://developer.openspime.com/?p=12</guid>
		<description><![CDATA[Dear developers,
today the first OpenSpime library has been launched! It is written in Python language and can be downloaded from it&#8217;s <a href="http://code.google.com/p/pyopenspime/">project page</a> on Google Code. This version 0.1 does not fully support the OpenSpime protocol v0.9 yet, however it currently already supports:

networking with the SpimeGate server;
nearly complete OpenSpime Core protocol (missing claim);
Data Reporting OpenSpime Core protocol extension.

See what OpenSpime can already do! You may try PyOpenSpime directly under [...]]]></description>
			<content:encoded><![CDATA[<p>Dear developers,</p>
<p>today the first OpenSpime library has been launched! It is written in Python language and can be downloaded from it&#8217;s <a href="http://code.google.com/p/pyopenspime/">project page</a> on Google Code. This version 0.1 does not fully support the OpenSpime protocol v0.9 yet, however it currently already supports:</p>
<ul>
<li><strong>networking</strong> with the SpimeGate server;</li>
<li>nearly complete <strong>OpenSpime Core</strong> protocol (missing claim);</li>
<li><strong>Data Reporting</strong> OpenSpime Core protocol extension.</li>
</ul>
<p><strong>See what OpenSpime can already do! </strong>You may try PyOpenSpime directly under your <a href="/my-developer">My Developer</a> page, where you&#8217;ll be able to get the necessary resources to run it in a few minutes. To get you started, I suggest you follow the <a href="http://developer.openspime.com/2008/06/16/pyopenspime-01-getting-started/">tutorial</a> that has been written by Davide &#8220;folletto&#8221; Casali.</p>
<p>PyOpenSpime is released under the <a href="http://www.gnu.org/licenses/gpl-3.0.txt">GNU General Public License v3</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://developer.openspime.com/2008/06/16/pyopenspime-v01-launched/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
