<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Tapestry</title>
	<atom:link href="http://tobyelliott.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://tobyelliott.wordpress.com</link>
	<description>Building Weave</description>
	<lastBuildDate>Fri, 11 Sep 2009 22:18:12 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='tobyelliott.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/31b59c7593fd625f2354176be306280d?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Tapestry</title>
		<link>http://tobyelliott.wordpress.com</link>
	</image>
			<item>
		<title>Weave Minimal Server</title>
		<link>http://tobyelliott.wordpress.com/2009/09/11/weave-minimal-server/</link>
		<comments>http://tobyelliott.wordpress.com/2009/09/11/weave-minimal-server/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 22:18:12 +0000</pubDate>
		<dc:creator>tobyelliott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tobyelliott.wordpress.com/?p=57</guid>
		<description><![CDATA[Fazal Majid did a really interesting hack where, frustrated by trying to get the Weave Server running, he built his own minimal server. It&#8217;s not surprising that he found installation difficult; it&#8217;s a complex system, and the latest migration was a real challenge (ironically, we made it harder this time so that it would be [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=57&subd=tobyelliott&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Fazal Majid did a really interesting <a href="http://www.majid.info/mylos/weblog/2009/09/09.html">hack</a> where, frustrated by trying to get the Weave Server running, he built his own minimal server. It&#8217;s not surprising that he found installation difficult; it&#8217;s a complex system, and the latest migration was a real challenge (ironically, we made it harder this time so that it would be easier in the future). </p>
<p>His effort wasn&#8217;t enough to be particularly usable outside his own needs &#8211; it lacks auth, security, data validation, storage, and a whole host of other things &#8211; but it got me to thinking about what our users want locally. We&#8217;ve been very careful to open up everything to the user so that they have the ability to do the sort of things we&#8217;re doing with the large production cluster. However, some of those decisions, driven by multi-box large-scale needs, will look really weird to someone who just wants to run a weave server for himself and half a dozen friends. It&#8217;s overkill.</p>
<p>Thus, I started hacking, and have come up with a super-easy to install minimal weave server that should work fine for a small installation. It&#8217;s a full implementation of the storage API, including auth, but setting it up requires just one line in your apache config. There are no options, or even a config file &#8211; it simply sets up a SQLite DB in the directory and uses it. Users are added and deleted by a script in the directory.</p>
<p>It&#8217;s still a prototype, and I&#8217;d love feedback on whether it really was as easy to install and get going with your client as it should be. For now, the tarball is <a href="http://people.mozilla.org/~telliott/weave_minimal.tgz">here</a>. Let me know how it works for you.</p>
<p>You&#8217;ll need a relatively recent php with sqlite, mbstring and json support, and apache, preferably running ssl. Give it a shot and let me know how it worked for you in the comments.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tobyelliott.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tobyelliott.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tobyelliott.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tobyelliott.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tobyelliott.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tobyelliott.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tobyelliott.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tobyelliott.wordpress.com/57/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tobyelliott.wordpress.com/57/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tobyelliott.wordpress.com/57/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=57&subd=tobyelliott&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tobyelliott.wordpress.com/2009/09/11/weave-minimal-server/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1b2f31428c7f1b0353846099bf0392d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tobyelliott</media:title>
		</media:content>
	</item>
		<item>
		<title>0.5 Server release</title>
		<link>http://tobyelliott.wordpress.com/2009/08/27/0-5-server-release/</link>
		<comments>http://tobyelliott.wordpress.com/2009/08/27/0-5-server-release/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 22:03:44 +0000</pubDate>
		<dc:creator>tobyelliott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tobyelliott.wordpress.com/?p=54</guid>
		<description><![CDATA[With the release of the 0.6 client today, we&#8217;re also publishing the 0.5 Weave server release. This release is required to support the 0.6 client if you are running your own server &#8211; it uses the brand new API.
If you have a 0.3 installation up, there are migration instructions, or full setup instructions.
The server is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=54&subd=tobyelliott&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>With the release of the 0.6 client today, we&#8217;re also publishing the 0.5 Weave server release. This release is <strong>required</strong> to support the 0.6 client if you are running your own server &#8211; it uses the brand new <a href="https://wiki.mozilla.org/Labs/Weave/0.5/API">API</a>.</p>
<p>If you have a 0.3 installation up, there are <a href="https://wiki.mozilla.org/Labs/Weave/0.5/Setup/Migration">migration instructions</a>, or <a href="https://wiki.mozilla.org/Labs/Weave/0.5/Setup/Storage">full setup instructions</a>.</p>
<p>The server is designed to run 0.3 and 0.5 side by side (the table is backwards compatible), so you don&#8217;t have to migrate all your accounts over at once. However, you <strong>should</strong> upgrade your clients as soon as possible, because the new client is <a href="http://services.mozilla.com/updated">much better</a>.</p>
<p>Have fun, and hop onto the #labs channel on irc.mozilla.org if you need setup help.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tobyelliott.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tobyelliott.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tobyelliott.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tobyelliott.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tobyelliott.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tobyelliott.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tobyelliott.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tobyelliott.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tobyelliott.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tobyelliott.wordpress.com/54/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=54&subd=tobyelliott&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tobyelliott.wordpress.com/2009/08/27/0-5-server-release/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1b2f31428c7f1b0353846099bf0392d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tobyelliott</media:title>
		</media:content>
	</item>
		<item>
		<title>A Preview of the 0.5 Weave Server API</title>
		<link>http://tobyelliott.wordpress.com/2009/08/07/a-preview-of-the-0-5-weave-server-api/</link>
		<comments>http://tobyelliott.wordpress.com/2009/08/07/a-preview-of-the-0-5-weave-server-api/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 18:32:38 +0000</pubDate>
		<dc:creator>tobyelliott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tobyelliott.wordpress.com/?p=45</guid>
		<description><![CDATA[As announced as part of the 0.6 Weave client roadmap, we&#8217;ll be moving over to the 0.5 server API. I wanted to make a post to talk about some of the changes, and what to expect in migrating over.
The documentation for the APIs can be found at:
https://wiki.mozilla.org/Labs/Weave/User/API
https://wiki.mozilla.org/Labs/Weave/0.5/API
Here are some of the changes and highlights from [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=45&subd=tobyelliott&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>As announced as part of the 0.6 Weave client roadmap, we&#8217;ll be moving over to the 0.5 server API. I wanted to make a post to talk about some of the changes, and what to expect in migrating over.</p>
<p>The documentation for the APIs can be found at:</p>
<p>https://wiki.mozilla.org/Labs/Weave/User/API<br />
https://wiki.mozilla.org/Labs/Weave/0.5/API</p>
<p>Here are some of the changes and highlights from the 0.3 version:</p>
<ul>
<li><strong>Better separation of the storage and user management pieces </strong><br />
As Weave grows, there&#8217;s a fairly clear separation between the user-management portion and the storage portion (unfortunately, the break isn&#8217;t perfect, since creating a user in SQLite requires setting up their storage). Thus, each section has it&#8217;s own subfolder, with just the parts of the code it needs, and its own config files. This will allow you to deploy the user API separately from the storage API depending on your configuration.
</li>
<li><strong>Default config<br />
</strong><br />
The constants file for the storage API is now a little more complex. weave_constants.php is just a wrapper. It looks in it&#8217;s directory for {HTTP_HOST}_constants.php and uses that if it exists, falling back to default_constants.php.</p>
<p>If you have a relatively simple setup, then not much changes &#8211; just rename your constants file to default_constants.php before pulling and you should be good to go (though check the .php.dist file to see if there&#8217;s any constants you&#8217;re missing!). This change will allow you to host multiple weave nodes on the same machine just by dropping in a separate constants file for each.
</li>
<li><strong>New paths<br />
</strong><br />
We&#8217;ve altered the paths in the API in recognition of the fact that there are API calls to get the data for a user and API calls to get metadata for that user. The old URL schema didn&#8217;t handle this elegantly (we&#8217;d have had to make use of params), so we&#8217;ve changed things around a bit. Everything should map pretty clearly to the old URLs, and the setup instructions will have new paths for the Apache aliases.</li>
<li><strong>Single query to get all modification times<br />
</strong><br />
In the past, the client has issued a query to the server for each collection the user has to get the maximum timestamp. This is obviously somewhat inefficient, and we&#8217;ve combined all of them into a single API call that provides a has of all collections and last-modified timestamps.
</li>
<li><strong>Query to get quotas (optional)<br />
</strong><br />
This function will tell a user their current memory use and the quota for their account (currently defined as the optional constant WEAVE_QUOTA). We&#8217;re not using this at the moment, but may need to in the future, so it goes into the API.
</li>
<li><strong>Additional column in the table &#8211; payload_size &#8211; not used yet<br />
</strong><br />
There&#8217;s no code written to take advantage of this yet &#8211; we want to make sure that the tables have been modified before we start issuing invalid db calls! &#8211; but there will be an additional column on the wbo table: payload_size (an int) and a corresponding index on username and payload_size. This will speed up the quota call.
</li>
<li><strong>X-Weave-Records response<br />
</strong><br />
This header will return the total number of records being returned on a multiple-record GET request, and is useful for progress bars on slower clients. This will not work with all backends, but it should for MySQL installs.
</li>
<li><strong>New output formats<br />
</strong><br />
Additionally, multiple record GET requests have two more options for output. These are triggered by the contents of the &#8220;Accept&#8221; header, and are primarily designed for clients that may not be able to hold the whole response set for processing in memory. They are:</p>
<ul>
<li>application/newlines &#8211; returns each record as a separate json object on a newline. Newlines in the body of the object will have been replaced by &#8216;\u000a&#8217;
</li>
<li>application/whoisi &#8211; returns a 32-bit integer that contains the size of the next record, followed by the json object of the record itself.
</li>
</ul>
</li>
<li>
<strong>User API for all functions<br />
</strong><br />
This replaces the current ad-hoc mishmash of scripts used to manage a user account, providing us with something a little more RESTful. Documentation for it can be found at https://wiki.mozilla.org/Labs/Weave/User/API</p>
<p>It has it&#8217;s own separate space in the code, meaning that you&#8217;ll need a config file for it, but you can now run it on a separate machine. The spec isn&#8217;t fully locked-down yet, so if you see something you think would be useful, please let us know.
</li>
<li><strong>Recaptcha generation query<br />
</strong><br />
To support the User API, we also have a set of miscellaneous APIs, the first of which is the ability to generate a captcha through reCAPTCHA. If you want to take advantage of this, you&#8217;ll need your own key (available at http://recaptcha.net/), which goes in the constants file for the miscellaneous APIs as well as into the user constants file. This function is documented at the bottom of the User API documentation.
</li>
</ul>
<p>As you can see, we&#8217;ve been busy trying to improve the Weave experience as we move towards full releases, and we&#8217;d love to hear any feedback you might have on the server (or the client, though I can&#8217;t help you as much there). Feel free to comment below, or join us on the mozilla-labs-weave googlegroup.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tobyelliott.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tobyelliott.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tobyelliott.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tobyelliott.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tobyelliott.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tobyelliott.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tobyelliott.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tobyelliott.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tobyelliott.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tobyelliott.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=45&subd=tobyelliott&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tobyelliott.wordpress.com/2009/08/07/a-preview-of-the-0-5-weave-server-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1b2f31428c7f1b0353846099bf0392d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tobyelliott</media:title>
		</media:content>
	</item>
		<item>
		<title>A few changes to the Weave Server</title>
		<link>http://tobyelliott.wordpress.com/2009/07/16/a-few-changes-to-the-weave-server/</link>
		<comments>http://tobyelliott.wordpress.com/2009/07/16/a-few-changes-to-the-weave-server/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 21:40:58 +0000</pubDate>
		<dc:creator>tobyelliott</dc:creator>
				<category><![CDATA[server]]></category>
		<category><![CDATA[weave]]></category>

		<guid isPermaLink="false">http://tobyelliott.wordpress.com/?p=37</guid>
		<description><![CDATA[As some of you may have seen in Anant&#8217;s post on username case-sensitivity, we&#8217;re updating Weave. As he mentioned, part of doing this involves a server change, to essentially turn usernames lowercase inside the Weave server.
If you are using the central Weave cluster, you shouldn&#8217;t notice any changes, aside from the downtime this Sunday. If [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=37&subd=tobyelliott&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>As some of you may have seen in <a href="http://labs.mozilla.com/2009/07/weave-usernames-and-case-sensitivity/">Anant&#8217;s post on username case-sensitivity</a>, we&#8217;re updating Weave. As he mentioned, part of doing this involves a server change, to essentially turn usernames lowercase inside the Weave server.</p>
<p>If you are using the central Weave cluster, you shouldn&#8217;t notice any changes, aside from the downtime this Sunday. If you are running your own server, then the instructions below are for you.</p>
<p>Fixing this locally involves two changes &#8211; updating the code, then updating the db to retrofit your old data. </p>
<p><strong>For Mysql</strong></p>
<p>Before pulling down the code, if you are using mysql, go into the database and do &#8216;alter table users change column username username varchar(32)&#8217; and &#8216;alter table wbo change column username username varchar(32)&#8217;. Then pull the latest hg (fc37b56bf414) and you should be all set.</p>
<p><strong>For SQLite</strong></p>
<p>If you&#8217;re only storing your browser data in weave, the fastest way may be to simply recreate the account (which will create in lowercase through the admin.php script). If you want to move the table, get the md5 of your current username, and move the data in STORAGE_PREFIX/[1]/[2]/[3]/[md5] (where [1] is the first character of the old username md5) to STORAGE_PREFIX/[1]/[2]/[3]/[md5] (the appropriate parts of the lowercase username md5). If you do this, I would shut down apache while you make the changes!</p>
<p>To fix the users table in SQLite, log into it and do &#8216;update users set username = lower(username)&#8217;</p>
<p>Then pull the hg code (fc37b56bf414) and everything should work.<br />
&#8212;&#8211;</p>
<p>A second change that goes out with this release involves cleaner versioning. You&#8217;ll notice that there is now a 0.3 directory and a 0.5 directory. You don&#8217;t need to do anything with this at this point, as the top level files remain the same. However, if you point your apache server at the 0.3/index.php file instead (and copy your constants file into that directory), everything should work&#8230; exactly the same. Once we release the 0.5 server (and the numbering is just coincidence, we&#8217;re not trying to track it with the client), you&#8217;ll be able to point at that while supporting 0.3 server users during the transition. 0.3 will be deprecated upon the 0.5 release, but still supported for some time.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tobyelliott.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tobyelliott.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tobyelliott.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tobyelliott.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tobyelliott.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tobyelliott.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tobyelliott.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tobyelliott.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tobyelliott.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tobyelliott.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=37&subd=tobyelliott&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tobyelliott.wordpress.com/2009/07/16/a-few-changes-to-the-weave-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1b2f31428c7f1b0353846099bf0392d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tobyelliott</media:title>
		</media:content>
	</item>
		<item>
		<title>Weave Server Official First Cluster Launch</title>
		<link>http://tobyelliott.wordpress.com/2009/02/21/weave-server-official-first-cluster-launch/</link>
		<comments>http://tobyelliott.wordpress.com/2009/02/21/weave-server-official-first-cluster-launch/#comments</comments>
		<pubDate>Sat, 21 Feb 2009 00:24:10 +0000</pubDate>
		<dc:creator>tobyelliott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tobyelliott.wordpress.com/?p=29</guid>
		<description><![CDATA[Today, we&#8217;ve rolled out the first official Weave cluster, built for scalability and handling a higher number of users, as well as a new client version (0.2.102) to make use of it. Thanks to all the people who made this effort possible &#8211; Chris, Dan, Anant, Jono and the rest of the labs team, Matthew, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=29&subd=tobyelliott&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Today, we&#8217;ve rolled out the first official Weave cluster, built for scalability and handling a higher number of users, as well as a new client version (0.2.102) to make use of it. Thanks to all the people who made this effort possible &#8211; Chris, Dan, Anant, Jono and the rest of the labs team, Matthew, Justin and Jeremy over in operations, and all the people who provided suggestions, bugfixes and solutions in the #labs irc channel or in Bugzilla.</p>
<p>Ideally, if we&#8217;ve done our jobs well, people won&#8217;t notice the change at all. It should be transparent to the users (ignoring, of course, the big increase in speed and stability!)</p>
<p>What does this mean for Weave? Because of the open API model, the client and the server are moving independently, so we aren&#8217;t yet ready to call the whole thing &#8220;beta&#8221;. However, from a backend perspective, hg version <del datetime="2009-03-03T18:30:31+00:00">b2613f8cdb48</del> f3f34e06cdc0 can be considered a milestone release, and it&#8217;s probably safe to say that the <a href="https://wiki.mozilla.org/Labs/Weave/0.3/API">object API</a> is locked down.</p>
<p>It also means that, for the first time in quite a while, we&#8217;ll be opening registrations again. In order to ramp up in a reasonable fashion, we&#8217;re going to use a GMail-style invitation code approach. You can put in a request for one <a href="https://services.mozilla.com/">here</a> and hopefully you&#8217;ll be chosen to try it out soon.</p>
<p>One final caveat: the client requires Firefox 3.1 and won&#8217;t work with lower versions without disabling large chunks of the app. I&#8217;ve been running 3.1 forever and it&#8217;s rock solid, so you have no excuse not to enjoy Weave-y goodness.</p>
<p>(Edit: updated the milestone release to reflect a tip with a distracting file removed)</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tobyelliott.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tobyelliott.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tobyelliott.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tobyelliott.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tobyelliott.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tobyelliott.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tobyelliott.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tobyelliott.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tobyelliott.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tobyelliott.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=29&subd=tobyelliott&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tobyelliott.wordpress.com/2009/02/21/weave-server-official-first-cluster-launch/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1b2f31428c7f1b0353846099bf0392d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tobyelliott</media:title>
		</media:content>
	</item>
		<item>
		<title>Notes on moving server from release 3 (12/19) to release 4 (1/26)</title>
		<link>http://tobyelliott.wordpress.com/2009/01/26/notes-on-moving-server-from-release-3-1219-to-release-4-126/</link>
		<comments>http://tobyelliott.wordpress.com/2009/01/26/notes-on-moving-server-from-release-3-1219-to-release-4-126/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 21:01:25 +0000</pubDate>
		<dc:creator>tobyelliott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tobyelliott.wordpress.com/?p=25</guid>
		<description><![CDATA[We continue to make tweaks to the Weave API to make it more efficient. The latest is the addition of the X-If-Modified-Since header. If you pass in an appropriately-formatted timestamp, the server will not make the requested changes unless the timestamp is later than the highest timestamp associated with the collection.
To make this work better, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=25&subd=tobyelliott&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>We continue to make tweaks to the Weave API to make it more efficient. The latest is the addition of the X-If-Modified-Since header. If you pass in an appropriately-formatted timestamp, the server will not make the requested changes unless the timestamp is later than the highest timestamp associated with the collection.</p>
<p>To make this work better, we&#8217;re changing the format of modified to be a floating point number. Unfortunately, this means that, yet again, we&#8217;re changing the format of the timestamp. If you&#8217;re using mysql, once you&#8217;ve updated the server from the hg tip, you&#8217;ll need to do the following:</p>
<p>update wbo set modified = floor(modified /1000);<br />
alter table wbo change column modified modified decimal(12,2);</p>
<p>This should benefit a lot in the long run &#8211; the numbers in question can now be handled by the standard numeric size on a 32-bit system (mileage varied by language with the old numbers).</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tobyelliott.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tobyelliott.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tobyelliott.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tobyelliott.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tobyelliott.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tobyelliott.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tobyelliott.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tobyelliott.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tobyelliott.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tobyelliott.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=25&subd=tobyelliott&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tobyelliott.wordpress.com/2009/01/26/notes-on-moving-server-from-release-3-1219-to-release-4-126/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1b2f31428c7f1b0353846099bf0392d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tobyelliott</media:title>
		</media:content>
	</item>
		<item>
		<title>Notes on moving server from release 2 (12/01) to release 3 (12/19)</title>
		<link>http://tobyelliott.wordpress.com/2008/12/18/notes-on-moving-server-from-release-2-1201-to-release-3-1219/</link>
		<comments>http://tobyelliott.wordpress.com/2008/12/18/notes-on-moving-server-from-release-2-1201-to-release-3-1219/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 22:36:42 +0000</pubDate>
		<dc:creator>tobyelliott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tobyelliott.wordpress.com/?p=20</guid>
		<description><![CDATA[We added a few features to the server that should help people trying to work with trees and ordered lists (namely, some new sort options) and some optimizations to cut down on data transfers (the ability to overwrite just some portions of the metadata). As a result, there&#8217;s a  tweak that needs to be [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=20&subd=tobyelliott&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>We added a few features to the server that should help people trying to work with trees and ordered lists (namely, some new sort options) and some optimizations to cut down on data transfers (the ability to overwrite just some portions of the metadata). As a result, there&#8217;s a  tweak that needs to be made to make the server work beyond just updating the hg tip.</p>
<p>If you&#8217;re on mysql, you need to do </p>
<p>alter table wbo add column sortindex integer, depth tinyint after modified</p>
<p>If you&#8217;re on sqlite, you&#8217;ll need to do that inside each user&#8217;s storage file.</p>
<p>UPDATE: And we&#8217;ve changed the timestamp format, so you&#8217;ll also need</p>
<p>alter table wbo change column modified modified bigint</p>
<p>As always, all the new stuff you&#8217;re able to do is featured on the <a href="https://wiki.mozilla.org/Labs/Weave/0.3/API">Weave API page</a>.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tobyelliott.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tobyelliott.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tobyelliott.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tobyelliott.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tobyelliott.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tobyelliott.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tobyelliott.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tobyelliott.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tobyelliott.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tobyelliott.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=20&subd=tobyelliott&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tobyelliott.wordpress.com/2008/12/18/notes-on-moving-server-from-release-2-1201-to-release-3-1219/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1b2f31428c7f1b0353846099bf0392d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tobyelliott</media:title>
		</media:content>
	</item>
		<item>
		<title>Notes on moving server from release 1 (11/24) to release 2 (12/01)</title>
		<link>http://tobyelliott.wordpress.com/2008/12/02/notes-on-moving-server-from-release-1-1124-to-release-2-1201/</link>
		<comments>http://tobyelliott.wordpress.com/2008/12/02/notes-on-moving-server-from-release-1-1124-to-release-2-1201/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 18:11:33 +0000</pubDate>
		<dc:creator>tobyelliott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tobyelliott.wordpress.com/?p=18</guid>
		<description><![CDATA[Because we implemented the server to the 0.3 API and the only changes to the API have been in optional areas, the older version of the server will continue to work. However, at some point, you&#8217;ll want to upgrade to take advantage of some of the fixes. What then?
The bad news is that it&#8217;s not [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=18&subd=tobyelliott&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Because we implemented the server to the <a href="https://wiki.mozilla.org/Labs/Weave/0.3/API">0.3 API</a> and the only changes to the API have been in optional areas, the older version of the server will continue to work. However, at some point, you&#8217;ll want to upgrade to take advantage of some of the fixes. What then?</p>
<p>The bad news is that it&#8217;s not as simple as just updating from Mercurial. The good news is that it isn&#8217;t too hard.</p>
<ol>
<li>Upgrade your tree</li>
<li>In the top level of the weaveserver directory is a file called weave_constants.php. Take the variables that you&#8217;d defined in your apache environment and move them into the appropriate places here. You can delete them from your environment after that. Note that you still need to leave in the Alias directives &#8211; you&#8217;re just moving the SetEnv ones.
</li>
<li>Take weave_constants.php and put the file into your php include path. The easiest place (and least secure) is in the same directory as the rest of the weave code, but /usr/share/php and similar directories may be available to you depending on the level of control you have over your server.</li>
</ol>
<p>That should do it. If you run into problems, hop over to the <a href="https://labs.mozilla.com/forum/comments.php?DiscussionID=4803">forums</a> and we&#8217;ll see what we can do.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tobyelliott.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tobyelliott.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tobyelliott.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tobyelliott.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tobyelliott.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tobyelliott.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tobyelliott.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tobyelliott.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tobyelliott.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tobyelliott.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=18&subd=tobyelliott&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tobyelliott.wordpress.com/2008/12/02/notes-on-moving-server-from-release-1-1124-to-release-2-1201/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1b2f31428c7f1b0353846099bf0392d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tobyelliott</media:title>
		</media:content>
	</item>
		<item>
		<title>Weave 0.3 API and Server updates</title>
		<link>http://tobyelliott.wordpress.com/2008/12/02/weave-03-api-and-server-updates/</link>
		<comments>http://tobyelliott.wordpress.com/2008/12/02/weave-03-api-and-server-updates/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 00:55:51 +0000</pubDate>
		<dc:creator>tobyelliott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tobyelliott.wordpress.com/?p=16</guid>
		<description><![CDATA[Thanks to everyone who has provided input and suggestions. We&#8217;ve revised the 0.3 API to take them into account. Encoding and encryption were not really meta-information about the object, and are more properly handled as part of the payload, which is always expected to be a serialized json object (that may or may not contain [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=16&subd=tobyelliott&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Thanks to everyone who has provided input and suggestions. We&#8217;ve revised the <a href="https://wiki.mozilla.org/Labs/Weave/0.3/API">0.3 API</a> to take them into account. Encoding and encryption were not really meta-information about the object, and are more properly handled as part of the payload, which is always expected to be a serialized json object (that may or may not contain some encrypted portion).</p>
<p>We&#8217;ve also been working on the server, pulling the constants out of the apache environment into their own constants file for more security. If you&#8217;ve installed the server before, you&#8217;ll want to check out the <a href="https://wiki.mozilla.org/Labs/Weave/0.3/Setup">setup instructions</a> to see what&#8217;s changed. Once you update to the latest code, then setup the config file, you should be all set.</p>
<p>Finally, thanks to some great work by Dan Mills, we should have a client out for this new server shortly. (If you downloaded the M1 client, please be aware that it isn&#8217;t compatible with the latest version of the server. Soon!)</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tobyelliott.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tobyelliott.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tobyelliott.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tobyelliott.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tobyelliott.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tobyelliott.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tobyelliott.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tobyelliott.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tobyelliott.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tobyelliott.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=16&subd=tobyelliott&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tobyelliott.wordpress.com/2008/12/02/weave-03-api-and-server-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1b2f31428c7f1b0353846099bf0392d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tobyelliott</media:title>
		</media:content>
	</item>
		<item>
		<title>Weave 0.3 Prototype Server</title>
		<link>http://tobyelliott.wordpress.com/2008/10/29/weave-03-prototype-server/</link>
		<comments>http://tobyelliott.wordpress.com/2008/10/29/weave-03-prototype-server/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 21:02:19 +0000</pubDate>
		<dc:creator>tobyelliott</dc:creator>
				<category><![CDATA[server]]></category>
		<category><![CDATA[weave]]></category>

		<guid isPermaLink="false">http://tobyelliott.wordpress.com/?p=10</guid>
		<description><![CDATA[Feedback on the 0.3 API announcement went well, so it&#8217;s time to release a prototype of the server. The code is available from the weaveserver repository along with instructions for setting up a copy of the server and the local user creation API if you want to use that.
The server supports Mysql and SQLite backends, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=10&subd=tobyelliott&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Feedback on the <a href="http://tobyelliott.wordpress.com/2008/10/20/introducing-the-weave-server-03-api/">0.3 API announcement</a> went well, so it&#8217;s time to release a prototype of the server. The code is available from the <a href="http://hg.mozilla.org/labs/weaveserver">weaveserver repository</a> along with instructions for <a href="https://wiki.mozilla.org/Labs/Weave/0.3/Setup">setting up a copy of the server</a> and the <a href="https://wiki.mozilla.org/Labs/Weave/0.3/Admin">local user creation API</a> if you want to use that.</p>
<p>The server supports Mysql and SQLite backends, and the ability to mix and match between engines for handling the storage and the authentication. It is written entirely in PHP (the test program is in perl), and it requires json and PDO support for the storage backend of your choice.</p>
<p>There is not yet a corresponding Firefox client for this server, though one is obviously in the works. We debated internally whether it was useful to release just the server, and believe that it is of value. It allows the community to see (and comment on) the decisions we&#8217;ve been making, as well as spot potential pitfalls, bugs and potential areas for improvement. It also gives everyone the opportunity to play around with the server a bit and think about how they might use it once the full version goes live.</p>
<p>I&#8217;ve set up a thread on the <a href="https://labs.mozilla.com/forum/comments.php?DiscussionID=1792">Weave Forums</a> for questions and discussion, and various members of the labs team are usually available on the irc.mozilla.org #labs channel.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/tobyelliott.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/tobyelliott.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/tobyelliott.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/tobyelliott.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/tobyelliott.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/tobyelliott.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/tobyelliott.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/tobyelliott.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/tobyelliott.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/tobyelliott.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=tobyelliott.wordpress.com&blog=5190209&post=10&subd=tobyelliott&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://tobyelliott.wordpress.com/2008/10/29/weave-03-prototype-server/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1b2f31428c7f1b0353846099bf0392d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tobyelliott</media:title>
		</media:content>
	</item>
	</channel>
</rss>