<?xml version="1.0" encoding="utf-8"?>
<!-- generator="Kukkaisvoima version 7" -->
<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/"
>
<channel>
<title>vmx: CouchDB</title>
<link>https://vmx.cx/cgi-bin/blog/index.cgi</link>
<description>Blog of Volker Mische</description>
<pubDate>Sat, 16 Jun 2012 22:35:23 +0200</pubDate>
<lastBuildDate>Sat, 16 Jun 2012 22:35:23 +0200</lastBuildDate>
<generator>http://23.fi/kukkaisvoima/</generator>
<language>en</language>
<item>
<title>OSGeo Code Sprint Bolsena 2012
</title>
<link>https://vmx.cx/cgi-bin/blog/index.cgi/osgeo-code-sprint-bolsena-2012%3A2012-06-16%3Aen%2CGeoCouch%2CCouchDB%2CCouchbase%2Cconference%2Cgeo</link>
<comments>https://vmx.cx/cgi-bin/blog/index.cgi/osgeo-code-sprint-bolsena-2012%3A2012-06-16%3Aen%2CGeoCouch%2CCouchDB%2CCouchbase%2Cconference%2Cgeo#comments</comments>
<pubDate>Sat, 16 Jun 2012 22:35:23 +0200</pubDate>
<dc:creator>Volker Mische</dc:creator>
<category>en</category>
<category>GeoCouch</category>
<category>CouchDB</category>
<category>Couchbase</category>
<category>conference</category>
<category>geo</category>
<guid isPermaLink="false">https://vmx.cx/cgi-bin/blog/index.cgi/osgeo-code-sprint-bolsena-2012%3A2012-06-16%3Aen%2CGeoCouch%2CCouchDB%2CCouchbase%2Cconference%2Cgeo/</guid>
<description><![CDATA[ 
 [...]]]></description>
<content:encoded><![CDATA[

<p>The <a href="http://wiki.osgeo.org/wiki/Bolsena_Code_Sprint_2012">OSGeo Code Sprint in Bolsena/Italy</a> was great. Many interesting people sitting the whole day in front of their laptops surrounded by a beautiful scenery. This year I spent most of my time on <a href="https://github.com/couchbase/geocouch/">GeoCouch</a>, <a href="http://couchdb.apache.org/">CouchDB</a>, <a href="http://couchbase.com/">Couchbase</a>, <a href="http://deegree.org/">deegree</a>, <a href="http://imposm.org/">Imposm</a> and <a href="http://geonetwork-opensource.org/">GeoNetwork</a>.</p>

<p>Already on the first hacking day we <a href="http://strangersgeospatial.blogspot.de/2012/06/bolsena-2012-1-deegree-on-couch-2.html">had a result</a>, a Couchbase backend for the deegree blob storage. This means that you can now store your rich features (e.g. from INSPIRE) in Couchbase and serve them up as a WFS with deegree. In case you wonder what rich features are, it's the new, shiny and more descriptive name for complex features.</p>

<p>In the following days I worked together with <a href="http://twitter.com/oltonn">Oliver Tonnhofer</a> on a CouchDB/GeoCouch backend for Imposm. You are now able to store your <a href="http://openstreetmap.org/">OpenStreetMap</a> data in CouchDB and make queries on it through GeoCouch. I've created a small demo that displays the some data import from Andorra with directly with <a href="http://mapquery.org/">MapQuery</a>, without the need of any additional server/service. The CouchDB backend should be easily adaptable to Couchbase, if you want to help, let me know.</p>

<p>I've then spent some time on the GeoNetwork project and <a href="https://github.com/geonetwork/core-geonetwork/pull/1">helped translating the language file to German</a>. I cleaned it up a bit and fixed major wrong translations. It's not perfect yet, as I've only spent little time on it, but at least it should be way more understandable (and sadly less funny) than the original version which was generated by Google Translate.</p>

<p>When it was time for presentations, I give a quick overview over the Couch* ecosystem. From CouchDB to GeoCouch, <a href="https://github.com/cloudant/bigcouch">BigCouch</a>, <a href="http://pouchdb.com/">PouchDB</a>, TouchDB (<a href="https://github.com/couchbaselabs/TouchDB-iOS">TouchDB-iOS</a>, <a href="https://github.com/couchbaselabs/TouchDB-Android">TouchDB-Android</a>), Couchbase Syncpoint and Couchbase. You can find the slides as PDF <a href="/blog/2012-06-16/couch.pdf">here</a>.

<p>On the last day I've spent my time on polishing GeoCouch a bit and getting it ready for the <a href="http://lanyrd.com/2012/couchhack-vienna/">Couchhack in Vienna</a>. I've backported all changes from Couchbase to the CouchDB 1.2.x branch and also ported the geometry search <a href="https://github.com/vmx/geocouch/tree/couchdbgeom">into an experimental branch</a>. You can now search your GeoCouch with any Geometry <a href="http://trac.osgeo.org/geos/">GEOS</a> supports.</p>

<p>The event was fun as always and I also get to know some new people (hello <a href="http://b3partners.nl/">B3Partners</a> guys). Thanks <a href="http://www.ticheler.net/">Jeroen</a> from <a href="http://geocat.org/">GeoCat</a> for organizing it, and thanks all other hackers that made it such a awesome event. Hope to see you all next year!</p>
]]></content:encoded>
<wfw:commentRss>https://vmx.cx/cgi-bin/blog/index.cgi/osgeo-code-sprint-bolsena-2012%3A2012-06-16%3Aen%2CGeoCouch%2CCouchDB%2CCouchbase%2Cconference%2Cgeo/feed/</wfw:commentRss>
</item>
<item>
<title>The future of GeoCouch and CouchDB
</title>
<link>https://vmx.cx/cgi-bin/blog/index.cgi/the-future-of-geocouch-and-couchdb%3A2012-01-06%3Aen%2CCouchDB%2CGeoCouch%2CErlang%2Cgeo</link>
<comments>https://vmx.cx/cgi-bin/blog/index.cgi/the-future-of-geocouch-and-couchdb%3A2012-01-06%3Aen%2CCouchDB%2CGeoCouch%2CErlang%2Cgeo#comments</comments>
<pubDate>Fri, 06 Jan 2012 22:35:25 +0200</pubDate>
<dc:creator>Volker Mische</dc:creator>
<category>en</category>
<category>CouchDB</category>
<category>GeoCouch</category>
<category>Erlang</category>
<category>geo</category>
<guid isPermaLink="false">https://vmx.cx/cgi-bin/blog/index.cgi/the-future-of-geocouch-and-couchdb%3A2012-01-06%3Aen%2CCouchDB%2CGeoCouch%2CErlang%2Cgeo/</guid>
<description><![CDATA[ 
 [...]]]></description>
<content:encoded><![CDATA[

<p>The CouchDB world is currently full of “The future of CouchDB” blog posts. It started with the <a href="http://damienkatz.net/2012/01/the_future_of_couchdb.html">blog post from Damien Katz</a> the creator of CouchDB. Of course <a href="https://twitter.com/oltonn/status/154908935789355008">people were also concerned</a> about the future of GeoCouch. No worries, it will be good.</p>

<h3>The future of Apache CouchDB</h3>

<p>The reactions were quite different. People who are not deeply involved with the CouchDB community think that this means the end of Apache CouchDB. My reaction was positive, <a href="https://twitter.com/vmische/status/154892687844192257">I tweeted</a>:</p>

<p><blockquote>“It’s good to see the Damien is so open to [the] world”</blockquote></p>

<p>The reason was, that for me it was pretty clear that it would happen, and I was just happy that Damien officially made the cut.</p>

<p>The reactions from CouchDB community members where pretty much what <a href="http://till.klampaeckel.de/blog/archives/178-The-future-of-CouchDB.html">Till Klampäckel describes in his blog post</a>. You could see it comming after <a href="http://blog.couchbase.com/couchbase-2011-year-review">Couchbase announced</a> that they are not the CouchDB company and that their product won’t be Apache CouchDB compatible.</p>

<p>I agree with Till here, the way Damien wrote his blog post, isn’t the best imaginable. For outsiders, it really seems to be the end of Apache CouchDB, but it is not. For me it just shows, why foundations like the Apache Foundation are such a great idea. Even if the original creator leaves the project, it still lives on.</p>

<p>Apache CouchDB has a lot of contributers and the mailing lists and IRC channel is busy as always. That CouchDB has a future is also shown by the <a href="http://blog.cloudant.com/the-future-of-couchdb">blog post from Cloudant</a>. They will keep supporting Apache CouchDB.</p>

<h3>The future of GeoCouch</h3>

<p>After this quick recap what happened so far, it’s time to talk about the future of GeoCouch. As you may know, I work for Couchbase on the integration of spatial functionality into their product.</p>

<p>Currently the overlap between Apache CouchDB and the version Couchbase uses internally is still quite huge, but it will diverge more and more in the future. Thus it will get harder and harder to maintain a single version that supports Apache CouchDB and Couchbase.</p>

<p>The good news is, that GeoCouch is pretty much a data structure only. It's an <a href="http://en.wikipedia.org/wiki/R-tree">R-tree</a> that stores JSON documents. This can easily be used by CouchDB and Couchbase. Perhaps small wrappers will be needed, but those should be minimal.</p>

<p>The easiest way to understand how the future looks like is in a small illustration:</p>
<div class="figure">
  <img src="/blog/2012-01-06/geocouch-couchdb-couchbase.png" width="399" height="292" alt="Illustration of GeoCouch and its relation to CouchDB and Couchbase"/>
  <p class="caption">GeoCouch's core is the R-tree, it's the same code for CouchDB and Couchbase. On top of it there will be code that is specific to either CouchDB or Couchbase.</p>
</div>

<p>This means that the majority of the devlopment I do for Couchbase will also improve the GeoCouch you can use for CouchDB.</p>

<h3>Conclusion</h3>

<p>The future of all three, Apache CouchDB, Couchbase and GeoCouch looks bright.</p>
]]></content:encoded>
<wfw:commentRss>https://vmx.cx/cgi-bin/blog/index.cgi/the-future-of-geocouch-and-couchdb%3A2012-01-06%3Aen%2CCouchDB%2CGeoCouch%2CErlang%2Cgeo/feed/</wfw:commentRss>
</item>
<item>
<title>FOSS4G 2011: Report
</title>
<link>https://vmx.cx/cgi-bin/blog/index.cgi/foss4g-2011%3A2011-09-20%3Aen%2CCouchDB%2CGeoCouch%2CMapQuery%2CErlang%2CJavaScript%2Cgeo</link>
<comments>https://vmx.cx/cgi-bin/blog/index.cgi/foss4g-2011%3A2011-09-20%3Aen%2CCouchDB%2CGeoCouch%2CMapQuery%2CErlang%2CJavaScript%2Cgeo#comments</comments>
<pubDate>Tue, 20 Sep 2011 22:35:23 +0200</pubDate>
<dc:creator>Volker Mische</dc:creator>
<category>en</category>
<category>CouchDB</category>
<category>GeoCouch</category>
<category>MapQuery</category>
<category>Erlang</category>
<category>JavaScript</category>
<category>geo</category>
<guid isPermaLink="false">https://vmx.cx/cgi-bin/blog/index.cgi/foss4g-2011%3A2011-09-20%3Aen%2CCouchDB%2CGeoCouch%2CMapQuery%2CErlang%2CJavaScript%2Cgeo/</guid>
<description><![CDATA[ 
 [...]]]></description>
<content:encoded><![CDATA[

<p>The <a href="http://2011.foss4g.org/">FOSS4G 2011</a> is over now. Time for a small report. The crowd was amazing and it was again the ultimate gathering of the Free and Open Source for Geospatial developer tribe. Solid presentations and great evenings.</p>

<h3>My talk: The State of GeoCouch</h3>

<p>I'm really happy how <a href="http://2011.foss4g.org/sessions/state-geocouch">my talk</a> went, I really enjoyed it. The were lots of people (although there was a talk from Frank Warmerdam at the same time) asking interesting questions at the end.
</p>

<p>The talk is not only about <a href="https://github.com/couchbase/geocouch">GeoCouch</a> but also gives you an overview of some of the features it leverages from <a href="http://couchdb.apache.org/">Apache CouchDB</a>. In the end you should have an overview why you might want to use GeoCouch for your next project.
</p>
<p>You can get the slides right here.</p>
<ul>
  <li>The slides (download optimized)
<a href="/blog/2011-09-20/the-state-of-geocouch.pdf">as PDF</a> (licensed under
<a href="http://creativecommons.org/licenses/by/3.0/de/">CC-BY-3.0-de</a>).</li>
  <li>The slides with comments
<a href="/blog/2011-09-20/the-state-of-geocouch.html">as HTML</a> (licensed under
<a href="http://creativecommons.org/licenses/by/3.0/de/">CC-BY-3.0-de</a>).</li>
  <li><a href="http://www.fosslc.org/drupal/content/state-geocouch">The slides with audio</a>. It’s the recording of the actual talk at the conference.</li>
</ul>

<h3>Other talks</h3>

<p>I was happy to see that there was <a href="http://2011.foss4g.org/sessions/new-geodata-tool-set-couchdb-and-nodejs">another talk about GeoCouch</a>. Other talks I really enjoyed were:</p>
<ul>
  <li><a href="http://2011.foss4g.org/sessions/cartoset-new-foss-create-highly-visual-geo-portals">CartoSet, a new FOSS to create highly visual geo portals</a>: So many true things were said, e.g. get the data from the customer first, before you start building anything.
  </li>
  <li><a href="http://2011.foss4g.org/sessions/introduction-opensource-webmapping-beyond-google-maps">Introduction to OpenSource WebMapping: Beyond Google Maps</a>: A very nice introduction off the full stack for web mapping. From the database, over the server to the client. It's for people that have no clue that they could have maps on their own infrastructure.
  </li>
  <li><a href="http://2011.foss4g.org/sessions/comparing-geoext-mapquery-and-legato-technical-and-collaborative-point-view">Comparing GeoExt, MapQuery and Legato from a technical and collaborative point of view</a>: A good comparison between <a href="http://geoext.org/">GeoExt</a>, <a href="http://mapquery.org/">MapQuery</a> and <a href="http://www.legato.net">Legato</a>. I especially liked the “Bodo”-test.
  </li>
  <li><a href="http://2011.foss4g.org/sessions/beyond-vectors-adapting-remote-sensing-research-environmental-monitoring-open-source-hardwa">Beyond vectors: Adapting remote sensing research for environmental monitoring with open source hardware and software: Citizen mapping the BP oil spill with balloons and kites</a>: Kite and balloon mapping is just awesome. It's kind of the OpenStreetMap for raster data.
  </li>
  <li><a href="http://2011.foss4g.org/sessions/geoglobaldomination-musical">GeoGlobalDomination: The Musical</a>: One of the highlights was the GeoGlobalDomination musical. <a href="http://vimeo.com/29203100">Grab the video</a> while it's hot.
  </li>
</ul>
<p>And of course there were also great talks from in the plenary sessions from <a href="http://twitter.com/pwramsey">Paul Ramsey</a> about <a href="http://2011.foss4g.org/sessions/why-do-you-do-exploration-open-source-business-models">Why do you do that? An exploration of open source business models</a> and <a href="http://twitter.com/schuyler">Schuyler Erle's</a> so funny lightning talk about <a href="http://2011.foss4g.org/sessions/pivoting-monetize-mobile-hyperlocal-social-gamification-going-viral">Pivoting to Monetize Mobile Hyperlocal Social Gamification by Going Viral</a>
</p>

<h3>Code Sprint</h3>

<p>At the code sprint I was working on MapQuery together with <a href="http://twitter.com/stvno">Steven Ottens</a> and <a href="http://twitter.com/h0st1le">Justin Penka</a>. Steven was working on TMS support, Justin on a 6 minutes tutorial and I on making manual adding of features possible.
</p>
<p>The OpenLayers developers did the migration from Subversion to Git for their development. OpenLayers is <a href="https://github.com/openlayers">now available</a> on Github.
</p>
<p>And luckily there was a fire alarm in between to take a <a href="http://wiki.osgeo.org/images/f/f7/Code-sprint-foss4g2011.png">group photograph</a>.
</p>

<h3>Future of the FOSS4G</h3>

<p>I really hope there won't be a yearly FOSS4G conference for the whole of the US. There should be regional events, as I think one big one would draw the attention away from the international conference. Why should you fly to Beijing for the FOSS4G 2012 if you can meet the majority of the developers in the US as well?
</p>

<h3>Final words</h3>

<p>The FOSS4G was great. It was organized well and people were always out in the evenings. The only minor nitpick is that many people working remote had the city of their company in the name badge and not the one they live in. It seems that the original for you had to fill was confusing. So for next year it should perhaps say “Location where you live”. Hence I still don't believe that there were more Dutch than German people at the conference (Tik hem aan, ouwe! ;)
</p>
]]></content:encoded>
<wfw:commentRss>https://vmx.cx/cgi-bin/blog/index.cgi/foss4g-2011%3A2011-09-20%3Aen%2CCouchDB%2CGeoCouch%2CMapQuery%2CErlang%2CJavaScript%2Cgeo/feed/</wfw:commentRss>
</item>
<item>
<title>FOSSGIS, GeoCouch and MapQuery
</title>
<link>https://vmx.cx/cgi-bin/blog/index.cgi/fossgis-geocouch-mapquery%3A2011-04-19%3Aen%2CCouchDB%2CGeoCouch%2CMapQuery%2Cgeo</link>
<comments>https://vmx.cx/cgi-bin/blog/index.cgi/fossgis-geocouch-mapquery%3A2011-04-19%3Aen%2CCouchDB%2CGeoCouch%2CMapQuery%2Cgeo#comments</comments>
<pubDate>Tue, 19 Apr 2011 22:35:23 +0200</pubDate>
<dc:creator>Volker Mische</dc:creator>
<category>en</category>
<category>CouchDB</category>
<category>GeoCouch</category>
<category>MapQuery</category>
<category>geo</category>
<guid isPermaLink="false">https://vmx.cx/cgi-bin/blog/index.cgi/fossgis-geocouch-mapquery%3A2011-04-19%3Aen%2CCouchDB%2CGeoCouch%2CMapQuery%2Cgeo/</guid>
<description><![CDATA[ 
 [...]]]></description>
<content:encoded><![CDATA[

<p>Two weeks ago I had the chance to give a talk about GeoCouch and MapQuery at the <a href="http://www.fossgis.de/konferenz/2011/">FOSSGIS 2011</a>. Most of the people who read this Blog are probably aware of <a href="https://github.com/couchbase/geocouch/">GeoCouch</a>, but not so much of <a href="http://gitorious.org/mapquery/">MapQuery</a>. For me these two projects are tightly connected and therefore deserve a quick introduction/update.</p>

<h2>GeoCouch</h2>

<p>GeoCouch, a spatial index for CouchDB gains, more and more attention. One of the reason is that the installation recently got way easier for developers as well as for normal users. You now can <a href="http://blog.couchbase.com/new-release-geocouch-extension">install GeoCouch as an extension</a> right next to your already existing CouchDB instance. You may also <a href="http://www.couchbase.com/downloads">download a binary of Couchbase-Server</a>, which already includes GeoCouch. And finally there's the brand new <a href="http://www.iriscouch.com/">Iris Couch</a> hosting as well (previously known as the CouchOne hosting). So getting started with GeoCouch is easier than ever before.</p>

<p>Some people might have wondered about the state/future of GeoCouch, especially after the merger of CouchOne with Membase to Couchbase. I will keep on developing GeoCouch at Couchbase and it is (as it always was) fully open source licensed under the Apache 2.0 License.</p>

<p>The new home for the latest source is the <a href="https://github.com/couchbase/geocouch">Couchbase Github repository</a>.</p>

<h3>OpenStreetMap</h3>

<p>The FOSSGIS was also about OpenStreetMap. The idea to put OpenStreetMap data into GeoCouch is very sensible, but wasn't really done (AFAIK) in a big fashion. Luckily <a href="http://wiki.openstreetmap.org/wiki/User:Joto">Jochen Topf</a> from <a href="http://www.geofabrik.de/">Geofabrik</a> told me about his Projekt <a href="http://wiki.openstreetmap.org/wiki/Osmium">Osmium</a>, which makes it possible to process OSM data with JavaScript. There is already a script to output a Shapefile, so it should be really easy to output GeoJSON, which could be consumed by GeoCouch. So if you (who are currently reading this) have some spare time, please give it a go :)</p>

<h2>MapQuery</h2>

<p>MapQuery is a web mapping framework that builds on <a href="http://openlayers.org/">OpenLayers</a> and <a href="http://jquery.com/">jQuery</a>. The goal is a framework that is just as easy to use as jQuery combined with the power of OpenLayers. It's meant for people that just want to get started with web mapping, but also for those who have already knowledge about OpenLayers and want to have easy integration into their jQuery application.</p>

<p>I was able to show a quick demo of the MapQuery API at the FOSSGIS. I won't publish it here, as things are about to move fast. After over one year of discussions about MapQuery and only little code contributions, it seems that we are finally getting somewhere. That feels so good :)</p>

<p>The wonderful <a href="http://research.geodan.nl/edugis/">EduGIS</a> is build on an early version of MapQuery (<a href="https://gitorious.org/~edugis/mapquery/edugis-mapquery">source code</a>), but will be merged with the most recent version of <a href="https://gitorious.org/~vmx/mapquery/vmx-mapquery">my fork</a>.</p>

<p>Other big news is that the <a href="http://www.wheregroup.com/">WhereGroup</a> hired <a href="http://crischan.net/blog/">Christian Wygoda</a>, who is a committer of the MapQuery project. This also means that <a href="http://twitter.com//mapbender/status/55920881897193472">Mapbender 3 will use MapQuery</a>.</p>

<p>And finally I've also met a developer of a another company that was building a big mapping application based on OpenLayers and jQuery. I don't want disclose it here, as the code isn't open source yet, but the developer told me that it should be easily possible. I will keep in touch with them and hope they will contribute their code to MapQuery.</p>

<p>To get to a conclusion about MapQuery. If you want to stay in touch with the project, please subscribe to the <a href="http://www.osgeo.org/mailman/listinfo/mapquery">official mailing list</a>, this is where things are happening (there's also the little attended IRC channel #mapquery on freenode). If you want to be a user of MapQuery, you should be patient and wait a bit. If you plan to contribute, you can start now. The currently biggest item is moving the EduGIS MapQuery code base over to the MapQuery version of my fork. The "documententation" are the demos.</p>

<h2>FOSSGIS</h2>

<p>As people started to asked about the slides from my presentaion at FOSSGIS, <a href="/blog/2011-04-19/index.html">here they are</a>.</p>

<p>FOSSGIS was a really awesome event, where I met a lot of new people, but also a lot of friends I haven't seen in a while. I'm really looking forward to next year's conference, but also hope that I might see many of the people at this year's <a href="http://2011.foss4g.org/">FOSS4g</a> in Denver.</p>
]]></content:encoded>
<wfw:commentRss>https://vmx.cx/cgi-bin/blog/index.cgi/fossgis-geocouch-mapquery%3A2011-04-19%3Aen%2CCouchDB%2CGeoCouch%2CMapQuery%2Cgeo/feed/</wfw:commentRss>
</item>
<item>
<title>How I met CouchDB
</title>
<link>https://vmx.cx/cgi-bin/blog/index.cgi/how-i-met-couchdb%3A2010-07-14%3Aen%2CCouchDB</link>
<comments>https://vmx.cx/cgi-bin/blog/index.cgi/how-i-met-couchdb%3A2010-07-14%3Aen%2CCouchDB#comments</comments>
<pubDate>Wed, 14 Jul 2010 22:35:23 +0200</pubDate>
<dc:creator>Volker Mische</dc:creator>
<category>en</category>
<category>CouchDB</category>
<guid isPermaLink="false">https://vmx.cx/cgi-bin/blog/index.cgi/how-i-met-couchdb%3A2010-07-14%3Aen%2CCouchDB/</guid>
<description><![CDATA[ 
 [...]]]></description>
<content:encoded><![CDATA[

<p>It was a Saturday in late April 2008, I was sitting on my Laptop in my 5m²
room  down under. Chatting with some German people I used to chat with for
about 8 years by that time. Suddenly I discover that
<a href="http://jan.prima.de/">Jan</a> is there, who I haven't talked with
for years. Wondering why he was in there, he replied that he wanted to brag
about his apache.org email address. This is how I found out about
<a href="http://couchdb.apache.org/">CouchDB</a>.
</p>
<p>After several long discussions with Jan I finally wrapped my head around
the document oriented concept. I was blown away, it was exactly what I would
have liked to use on so many occasions at my one year internship at a
geospatial company. Though CouchDB wasn't ready, I needed spatial indexing.
One week later I
<a href="http://vmx.cx/cgi-bin/blog/index.cgi/couchdb-and-geodata%3A2008-05-03%3Aen%2Cgeo%2CCouchDB">had
a first idea of how such an extension might look like</a>.</p>

<p>And only 2 years later I'm really involved in CouchDB and people actually
<a href="http://pdxapi.com/">start</a>
<a href="http://simonmetson.posterous.com/import-a-bunch-of-geo-location-data-into-geoc">using</a>
<a href="http://vmx.cx/cgi-bin/blog/index.cgi/geocouch-the-future-is-now:2010-05-03:en,CouchDB,Python,Erlang,geo">GeoCouch</a>
:) I'd like to use this blog post to thank the developers and the whole
community, it's been a great time and the
<a href="irc://irc.freenode.net/#couchdb">IRC channel</a> just kicks ass.
You all helped to make CouchDB 1.0 possible!</p>
]]></content:encoded>
<wfw:commentRss>https://vmx.cx/cgi-bin/blog/index.cgi/how-i-met-couchdb%3A2010-07-14%3Aen%2CCouchDB/feed/</wfw:commentRss>
</item>
<item>
<title>GeoCouch Vortrag in Augsburg
</title>
<link>https://vmx.cx/cgi-bin/blog/index.cgi/geocouch-vortrag-in-augsburg%3A2010-07-07%3Ade%2CCouchDB%2CGeoCouch%2CErlang%2Cgeo</link>
<comments>https://vmx.cx/cgi-bin/blog/index.cgi/geocouch-vortrag-in-augsburg%3A2010-07-07%3Ade%2CCouchDB%2CGeoCouch%2CErlang%2Cgeo#comments</comments>
<pubDate>Wed, 07 Jul 2010 22:35:25 +0200</pubDate>
<dc:creator>Volker Mische</dc:creator>
<category>de</category>
<category>CouchDB</category>
<category>GeoCouch</category>
<category>Erlang</category>
<category>geo</category>
<guid isPermaLink="false">https://vmx.cx/cgi-bin/blog/index.cgi/geocouch-vortrag-in-augsburg%3A2010-07-07%3Ade%2CCouchDB%2CGeoCouch%2CErlang%2Cgeo/</guid>
<description><![CDATA[ 
 [...]]]></description>
<content:encoded><![CDATA[

<p>Im Rahmen des Diplomandencolloquium des
<a href="http://www.geo.uni-augsburg.de/lehrstuehle/humgeo/">Lehrstuhl für
Humangeographie und Geoinformatik</a> halte ich am 19.07.2010 um 17:30 Uhr
(Raum 2125) an der <a href="http://www.uni-augsburg.de/">Uni Augsburg</a>
einen Votrag über GeoCouch. Der genaue Titel lautet:
</p>
<p>GeoCouch: Eine Erweiterung für CouchDB zur Abfrage räumlicher Daten
</p>
<p>Er richtet sich an Geographen, wird also nicht zu sehr ins Detail der
Implementierung gehen. Es sind auch keine Vorkenntnisse zum Thema CouchDB
nötig. Wer also mehr über CouchDB und GeoCouch wissen will,
ist herzlich dazu eingeladen. Danach stehe ich natürlich zu Fragen zur
Verfügung.
</p>
<p>Ich habe keine Ahnung wie groß die CouchDB Community im Raum Augsburg ist,
aber sollte jemand dieser Einladung folgen, spricht auch nichts gegen ein
anschließendes kleines CouchDB/GeoCouch/NoSQL Meetup. Am besten meldet ihr
euch bei mir per Mail, denn wenn ein paar Leute sicher kommen, werden es
sich andere bestimmt auch überlegen.</p>

<p><em>Sorry Planet CouchDB for writing in German, but this is about a talk
in German.</em></p>
]]></content:encoded>
<wfw:commentRss>https://vmx.cx/cgi-bin/blog/index.cgi/geocouch-vortrag-in-augsburg%3A2010-07-07%3Ade%2CCouchDB%2CGeoCouch%2CErlang%2Cgeo/feed/</wfw:commentRss>
</item>
<item>
<title>Bolsena hacking event
</title>
<link>https://vmx.cx/cgi-bin/blog/index.cgi/bolsena-hacking-event-2010%3A2010-06-11%3Aen%2CCouchDB%2CJavaScript%2Cgeo</link>
<comments>https://vmx.cx/cgi-bin/blog/index.cgi/bolsena-hacking-event-2010%3A2010-06-11%3Aen%2CCouchDB%2CJavaScript%2Cgeo#comments</comments>
<pubDate>Fri, 11 Jun 2010 22:35:25 +0200</pubDate>
<dc:creator>Volker Mische</dc:creator>
<category>en</category>
<category>CouchDB</category>
<category>JavaScript</category>
<category>geo</category>
<guid isPermaLink="false">https://vmx.cx/cgi-bin/blog/index.cgi/bolsena-hacking-event-2010%3A2010-06-11%3Aen%2CCouchDB%2CJavaScript%2Cgeo/</guid>
<description><![CDATA[ 
 [...]]]></description>
<content:encoded><![CDATA[

<p>The <a href="http://wiki.osgeo.org/wiki/Bolsena_Code_Sprint_2010">OSGeo hacking event in Bolsena/Italy</a> was great. Many interesting people
sitting the whole day in front of their laptops surrounded by a beautiful
scenery and nice warm sunny weather. It gets even better when you get meat for
lunch and dinner.</p>

<p>I had the chance to tell people a bit more about
<a href="http://couchdb.apache.org/">CouchDB</a> and
<a href="http://github.com/couchapp/couchapp/">Couchapps</a>,</p>

<p>One project I haven't heard that much before of was
<a href="http://deegree.org/">Degree</a>. They build the whole stack of OGC services
you could imagine. For me it was of interest that they have a
blob storage in their upcoming 3.0 release. The data
isn't flattened into SQL tables but stored as blobs. This sounds like good use
for a CouchDB backend in the future.</p>

<p>I was working with <a href="http://wiki.osgeo.org/wiki/User:Simonp">Simon Pigot</a> on a
<a href="http://geonetwork-opensource.org/">GeoNetwork</a>
re-implementation
based on CouchDB using Couchapp. We got the basic stuff like putting an XML
document into the database, editing it and returning the new document, as well
as fulltext indexing with
<a href="http://github.com/rnewson/couchdb-lucene">couchdb-lucene</a>
work. Next steps are improving the JSON to XML mapping and integrating spatial
search based on <a href="http://github.com/vmx/couchdb">GeoCouch</a>.</p>

<p>The event was really enjoyable, thanks <a href="http://couch.io/">Couchio</a> for
sponsoring the trip, thanks <a href="http://www.ticheler.net/">Jeroen</a> for
organizing it, and thanks all other hackers that made it such a awesome event.
Hope to see you next year!</p>
]]></content:encoded>
<wfw:commentRss>https://vmx.cx/cgi-bin/blog/index.cgi/bolsena-hacking-event-2010%3A2010-06-11%3Aen%2CCouchDB%2CJavaScript%2Cgeo/feed/</wfw:commentRss>
</item>
<item>
<title>FOSS4G 2010: I'm speaking
</title>
<link>https://vmx.cx/cgi-bin/blog/index.cgi/foss4g-2010-im-speaking%3A2010-05-21%3Aen%2CGeoCouch%2CCouchDB%2CErlang%2Cgeo</link>
<comments>https://vmx.cx/cgi-bin/blog/index.cgi/foss4g-2010-im-speaking%3A2010-05-21%3Aen%2CGeoCouch%2CCouchDB%2CErlang%2Cgeo#comments</comments>
<pubDate>Fri, 21 May 2010 22:35:25 +0200</pubDate>
<dc:creator>Volker Mische</dc:creator>
<category>en</category>
<category>GeoCouch</category>
<category>CouchDB</category>
<category>Erlang</category>
<category>geo</category>
<guid isPermaLink="false">https://vmx.cx/cgi-bin/blog/index.cgi/foss4g-2010-im-speaking%3A2010-05-21%3Aen%2CGeoCouch%2CCouchDB%2CErlang%2Cgeo/</guid>
<description><![CDATA[ 
 [...]]]></description>
<content:encoded><![CDATA[

<div class="figure">
  <a href="http://2010.foss4g.org">
    <img src="http://2010.foss4g.org/images/logo_145x90_speaking.jpg"
    alt="FOSS4G Conference - I'm Speaking!"  width="145" height="90"/>
 </a>
</div>

<p>I did it! I'll speak at the <a href="http://2010.foss4g.org/">FOSS4G
Conference 2010</a> (Free and Open Source Software for Geospatial Conference),
6th–9th September in Barcelona about “GeoCouch: A spatial index for CouchDB”.
As soon as the abstract is available online I'll link to it. Hope to see you
there!
</p>
]]></content:encoded>
<wfw:commentRss>https://vmx.cx/cgi-bin/blog/index.cgi/foss4g-2010-im-speaking%3A2010-05-21%3Aen%2CGeoCouch%2CCouchDB%2CErlang%2Cgeo/feed/</wfw:commentRss>
</item>
<item>
<title>GeoCouch: The future is now
</title>
<link>https://vmx.cx/cgi-bin/blog/index.cgi/geocouch-the-future-is-now%3A2010-05-03%3Aen%2CCouchDB%2CPython%2CErlang%2Cgeo</link>
<comments>https://vmx.cx/cgi-bin/blog/index.cgi/geocouch-the-future-is-now%3A2010-05-03%3Aen%2CCouchDB%2CPython%2CErlang%2Cgeo#comments</comments>
<pubDate>Mon, 03 May 2010 22:35:25 +0200</pubDate>
<dc:creator>Volker Mische</dc:creator>
<category>en</category>
<category>CouchDB</category>
<category>Python</category>
<category>Erlang</category>
<category>geo</category>
<guid isPermaLink="false">https://vmx.cx/cgi-bin/blog/index.cgi/geocouch-the-future-is-now%3A2010-05-03%3Aen%2CCouchDB%2CPython%2CErlang%2Cgeo/</guid>
<description><![CDATA[ 
 [...]]]></description>
<content:encoded><![CDATA[

<p><b>Update:</b> <em>This blog entry is outdated and kepts for historical
reasons. Please do always check for newer blog posts. The up to date
information on how to install and use GeoCouch can be found in
<a href="https://github.com/couchbase/geocouch/#readme">its README</a>.
</em></p>

<p>An idea has become reality. Exactly two years after the
<a href="http://vmx.cx/cgi-bin/blog/index.cgi/couchdb-and-geodata:2008-05-03:en,geo,CouchDB">blog post with the initial vision</a>,
a new version of GeoCouch is finished. It's a huge step forward. The first time
the dependencies were narrowed down to <a href="http://couchdb.apache.org">CouchDB</a>
itself. No <a href="http://www.python.org">Python</a>,
no <a href="http://www.gaia-gis.it/spatialite/">SpatiaLite</a> any longer, it's pure
<a href="http://www.erlang.org">Erlang</a>. GeoCouch is tightly integrated with
CouchDB, so you'll get all the nice features you love about CouchDB.</p>

<h3>Current implementation</h3>

<p>Thanks to the feedback after the FOSS4G 2009 and
<a href="http://vmx.cx/cgi-bin/blog/index.cgi/geocouch-the-future:2009-12-20:en,CouchDB,Python,geo">"GeoCouch: The future" blog entry</a>"
it was clear that people prefer a simple, yet powerful and tightly integrated
approach, rather than having to many external dependencies (which was a
showstopper for quite a few people).</p>

<p>I implemented an R-tree (I call it vtree as the implementation is
subject to change a lot) from scratch. The reason why I haven't used
the <a href="http://github.com/cchandler/RTreeCouchDB">already existing R-Tree implementation available at
Github</a> is that I needed
something to learn Erlang, it doesn't contain test or examples and
that it is always a good idea to implement a data structure yourself
to understand the details/problems. My implementation is far from
being perfect but works good enough for now. The vtree is implemented
as an append-only data structure just as CouchDB's B-trees
are. Currently it doesn't support bulk insertion.</p>

<p>If you want to know details on how to create your own indexer, have a look at
my <a href="http://vmx.cx/couchdb/tutorial/indexer.html">Indexer tutorial</a>.</p>

<h3>Feature set</h3>

<p>Following the "Release early, release often" philosophy currently only points
can be inserted, the only supported query is a bounding box search. Though
other geometries should follow soon.</p>

<h3>Using GeoCouch</h3>

<p>GeoCouch is now <a href="http://github.com/vmx/couchdb/tree/geocouch">hosted
at Github</a>. Giving GeoCouch a go is easy:</p>

<pre><code>git clone http://github.com/vmx/couchdb.git
cd couchdb
./bootstrap
./configure
make dev
./utils/run
</code></pre>

<p>To try the spatial features when it's up and running is easy as well. Just add
a <code>spatial</code> property and a named function to your Design Document as you
would to for
<a href="http://wiki.apache.org/couchdb/Formatting_with_Show_and_List">show or list functions</a>:</p>

<pre><code>function(doc) {
    if (doc.loc) {
        emit(doc._id, {
            type: "Point",
            coordinates: [doc.loc[0], doc.loc[1]]
        });
    }
};
</code></pre>

<p>All you need to do is emitting <a href="http://geojson.org">GeoJSON</a> as the value
(Remember that <code>point</code> is the only supported geometry at the moment), the
key is currently ignored.</p>

<pre><code>curl -X PUT http://127.0.0.1:5984/places
curl -X PUT -d '{"spatial":{"points":"function(doc) {\n    if (doc.loc) {\n        emit(doc._id, {\n            type: \"Point\",\n            coordinates: [doc.loc[0], doc.loc[1]]\n        });\n    }};"}}' http://127.0.0.1:5984/places/_design/main
</code></pre>

<p>Before a bounding box query can return anything, you need to insert Documents
that contain a location.</p>

<pre><code>curl -X PUT -d '{"loc": [-122.270833, 37.804444]}' http://127.0.0.1:5984/places/oakland
curl -X PUT -d '{"loc": [10.898333, 48.371667]}' http://127.0.0.1:5984/places/augsburg
</code></pre>

<p>And finally you can make a bounding box request:</p>

<pre><code>curl -X GET 'http://localhost:5984/places/_design/main/_spatial/points/%5B0,0,180,90%5D'
</code></pre>

<p>This one should return only <code>augsburg</code>:</p>

<pre><code>{"query1":[{"id":"augsburg","loc":[10.898333,48.371667]}]}
</code></pre>

<h3>Next steps</h3>

<p>The development of GeoCouch was quite slow in the past, but it gets up
to speed as my diploma thesis (comparable to a master's thesis) will be
about GeoCouch. Additionally <a href="http://www.couch.io/">Couchio</a> kindly
supports the development.</p>

<p>The next steps are (in no particular order):</p>

<ul>
<li>Better R-tree (better splitting algorithm, bulk operations)</li>
<li>Supporting more geometries</li>
<li>Polygon search</li>
<li>Improving CouchDB's plugin capabilities</li>
</ul>

<h3>Thanks</h3>

<p>I'd like to thank all the people that kept me motivated over the past two
years with their tremendous feedback. Special thanks go to
<a href="http://jan.prima.de/">Jan Lehnardt</a> for getting me onto the Couch,
<a href="http://cameronshorter.blogspot.com/">Cameron Shorter</a> for introducing me
into the geospatial open source business and all people from
<a href="http://www.couch.io/">Couchio</a> for the
great two weeks in Oakland.</p>
]]></content:encoded>
<wfw:commentRss>https://vmx.cx/cgi-bin/blog/index.cgi/geocouch-the-future-is-now%3A2010-05-03%3Aen%2CCouchDB%2CPython%2CErlang%2Cgeo/feed/</wfw:commentRss>
</item>
<item>
<title>GeoCouch: The future
</title>
<link>https://vmx.cx/cgi-bin/blog/index.cgi/geocouch-the-future%3A2009-12-20%3Aen%2CCouchDB%2CPython%2Cgeo</link>
<comments>https://vmx.cx/cgi-bin/blog/index.cgi/geocouch-the-future%3A2009-12-20%3Aen%2CCouchDB%2CPython%2Cgeo#comments</comments>
<pubDate>Sun, 20 Dec 2009 22:35:25 +0200</pubDate>
<dc:creator>Volker Mische</dc:creator>
<category>en</category>
<category>CouchDB</category>
<category>Python</category>
<category>geo</category>
<guid isPermaLink="false">https://vmx.cx/cgi-bin/blog/index.cgi/geocouch-the-future%3A2009-12-20%3Aen%2CCouchDB%2CPython%2Cgeo/</guid>
<description><![CDATA[ 
 [...]]]></description>
<content:encoded><![CDATA[

<p><a href="http://gitorious.org/geocouch/">GeoCouch</a> started as a <a href="/cgi-bin/blog/index.cgi/geocouch-geospatial-queries-with-couchdb:2008-10-26:en,CouchDB,Python,geo">proof of concept</a> and was heavily rewritten for the <a href="/cgi-bin/blog/index.cgi/geocouch-new-release-0.10.0:2009-09-19:en,CouchDB,Python,geo">0.10 release</a>. As more and more people got interested, I got feedback to see what people really want/need. And now it's time to determine the future of GeoCouch. It's your chance to shape the future. In this blog entry I'll explain my ideas for the future, but I'm more than happy to get further ideas/complains from you. So please check if my ideas match your use-cases for GeoCouch.
</p>
<h3>Stripping it down</h3>
<p>GeoCouch needs an external spatial index, at the moment I use <a href="http://www.gaia-gis.it/spatialite/">SpatiaLite</a> for it, but a <a href="http://postgis.refractions.net/">PostGIS</a> backend would be easily possible. My inital idea was that it is better to use the existing power of spatial databases, rather than reinventing the wheel. I though I could use all the power they have, that I can even use them for complex analytics, but I can't. As I only store the geometries, I need to “ask” CouchDB for the attributes (no, I don't want to store attributes in my spatial index).
<!--This would be possible, but I'll explain the “analytics use-case” later.-->
</p>
<p>If I don't use the full power of the spatial databases, but only a small fraction, there might be better solution. Therefore I propose that GeoCouch will use a simple spatial index for storing the geometries, not a full blown spatial database. I haven't decided yet which one it'll be, but I really think about moving this part to Erlang (I know that quite a few people would love that move).
</p>
<p>You will loose functionality like reprojection. The spatial index won't know anything about projections. So GeoCouch won't be projection aware anymore, but you application still can be. For example if you want to return your data in a different projection than it was stored, you do the transformation after you've queried GeoCouch.
</p>
<p>You would also loose fancy things for geometries, like boolean operations on them. But this is something I'd call complex analytics, and not simple querying.
</p>
<p>GeoCouch would only support three simple queries: bounding search, polygon search and radius/distance search. If the search would be within a union of polygons, let's say all countries of the European Union, you would simply make the union operation before you query GeoCouch.
</p>

<h3>Complex analytics</h3>
<p>What I call “complex analytics” is things like: “return all apple trees that are located with a 10km range around buildings that have are over 100m high, but only in countries with a population over 50 million people” is not possible with GeoCouch as you would need the attribute values as well. Those are stored in CouchDB, so you would need to request them. What GeoCouch only supports is a simple: give me all IDs within a bounding box/polygon/radius.
</p>

<h3>Conclusion</h3>
<p>Simple requests are needed for everyday use, thus they should be incredibly fast. Complex analytics don't necessarily need to handle thousands of requests per second, in most cases they don't even need to be processed in real-time. I'd like to see some layer build above GeoCouch, so CouchDB can even be used for analytics (which is a thing I wanted to have right from the start).
</p>
<p>This means that GeoCouch will be mainly for high performance and massive sized projects that need some simple spatial bits, what I think the majority of users need.
</p>
<p>If you either think you really need only those simple queries, but you want them to be fast, or you think this is wrong, that you need dynamic reprojection I can only invite you to leave a comment below or drop a mail to <a href="mailto:volker.mische@gmail.com">volker.mische@gmail.com</a>. Thanks.
</p>
]]></content:encoded>
<wfw:commentRss>https://vmx.cx/cgi-bin/blog/index.cgi/geocouch-the-future%3A2009-12-20%3Aen%2CCouchDB%2CPython%2Cgeo/feed/</wfw:commentRss>
</item>
</channel>
</rss>
