<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Henri Bergius - Openpsa</title>
    <description>Latest posts in category 'openpsa'</description>
    <link>https://bergie.iki.fi</link>
    <language>en</language>
    <lastBuildDate>Tue, 05 May 2026 19:17:08 +0000</lastBuildDate>
    
    <item>
      
      <title>Building a smarter workplace</title>
      <description>&lt;p&gt;As part of the &lt;a href=&quot;http://smarcos-project.eu&quot;&gt;SmarcoS&lt;/a&gt; project, &lt;a href=&quot;http://nemein.com&quot;&gt;we&lt;/a&gt; have been investigating how to make workplaces smarter through sensors and &lt;a href=&quot;http://worrydream.com/MagicInk/&quot;&gt;context awareness&lt;/a&gt;. Here is &lt;a href=&quot;http://youtu.be/P5cdlLTqb24&quot;&gt;a video showing what we’ve built&lt;/a&gt;:&lt;/p&gt;

&lt;iframe width=&quot;640&quot; height=&quot;480&quot; src=&quot;https://www.youtube.com/embed/P5cdlLTqb24&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The idea here is to facilitate collaboration and smoother project communications through various different tools that I’ll describe below. While this already does a lot, it is obviously only the first step on the path to making offices smarter.&lt;/p&gt;

&lt;h2 id=&quot;office-presence&quot;&gt;Office presence&lt;/h2&gt;

&lt;p&gt;An important part of collaboration is to know who is where. Maybe some people are having a lunch break, or are working remotely? The Office Presence Display system knows these things, thanks to various sensors:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Bluetooth sensors can see smartphones and other mobile devices in the space&lt;/li&gt;
  &lt;li&gt;WiFi sensor can see what computers are connected&lt;/li&gt;
  &lt;li&gt;Google Talk sensor knows who are connected and active on their work accounts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With these, we know pretty well when you arrive to the office, and when you leave. Thanks to the sensor watching the company instant messaging system, we also know when people working remotely are available.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/opd-small.png&quot; alt=&quot;Office Presence Display&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In addition to letting people know where the other members of the team are, this system can help with the perpetual annoyance in many companies: &lt;em&gt;having to fill timesheets&lt;/em&gt;. We have a logger process that listens to the sensors, and logs the data into a &lt;a href=&quot;http://bergie.iki.fi/blog/business_analytics_with_couchdb_and_noflo/&quot;&gt;CouchDB&lt;/a&gt; database. From there you can easily visualize working hours and availability trends:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/opd-stats-small.png&quot; alt=&quot;Office presence stats&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In many situations it is of course not enough to know whether people are present, but also to know what they’re working on. The next component of the system helps with that.&lt;/p&gt;

&lt;h2 id=&quot;electronic-kanban-wall&quot;&gt;Electronic Kanban wall&lt;/h2&gt;

&lt;p&gt;Instead of the clumsy waterfall style, more and more companies are managing their projects in tight, recurring iterations. A Kanban wall is a great way to keep track of tasks as they move through the process, and to see who is doing what, and what could be possible to do next. The &lt;a href=&quot;http://blog.crisp.se/2009/06/26/henrikkniberg/1246053060000&quot;&gt;One day in Kanban Land&lt;/a&gt; post explains the concept well.&lt;/p&gt;

&lt;p&gt;If everybody working on a project sits in the same room, and that room is also where all decisions about the project are made, then the traditional solution of whiteboards and Post-It notes is probably the best way to visualize Kanban. But for distributed teams and more flexible work, an electronic version is a lot better option. This way everybody can see the Kanban wall in its current state from their computer, a TV in an office room, or a tablet.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/webkanban.png&quot; alt=&quot;Webkanban&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Our Kanban wall implementation provides exactly that. The same wall (or, in case of multiple projects or teams, a set of walls) is available through any web browser. You can also display it on a big screen in an office or a meeting room, and control that screen with the &lt;a href=&quot;http://bergie.iki.fi/blog/qt-air-cursor/&quot;&gt;Kinect Air Cursor&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Now, for most companies this is not meant to be the &lt;em&gt;master database&lt;/em&gt; of projects and tasks, but instead just to be an alternative view and controlling tool to wherever your project information resides. Maybe you’re already using &lt;a href=&quot;http://www.pivotaltracker.com&quot;&gt;Pivotal Tracker&lt;/a&gt;, &lt;a href=&quot;http://basecamp.com&quot;&gt;Basecamp&lt;/a&gt;, or &lt;a href=&quot;http://openpsa2.org&quot;&gt;OpenPSA&lt;/a&gt;? The Kanban wall server has a full REST API available, and so it is easy to integrate with any existing system. If a task is moved on the Kanban wall, it can be updated to the project tracking system, and vice versa.&lt;/p&gt;

&lt;p&gt;If you’re using both systems, then the Kanban wall is also aware of the presence information. We show a differently colored border around the “person tokens” depending on the availability state. You can also set different Work-in-Progress limits for different people and states.&lt;/p&gt;

&lt;h2 id=&quot;interested-yet&quot;&gt;Interested yet?&lt;/h2&gt;

&lt;p&gt;So far we’ve only trialed the system in our own office, but are now looking for some pilot customers to try the system out. If you’re interested in making your workplace smarter, &lt;a href=&quot;mailto:info@nemein.com&quot;&gt;get in touch&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For those who like to tinker with these things, all the sensor software is available as open source at &lt;a href=&quot;http://github.com/nemein&quot;&gt;http://github.com/nemein&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Fri, 08 Mar 2013 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fsmart-collaboration-space%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/smart-collaboration-space/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/smart-collaboration-space/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
    <item>
      
      <title>Open Advice</title>
      <description>&lt;p&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/1e171b06217a15871b011e1bc5b5d4704468fc08fc0_openadvice-small.jpg&quot; border=&quot;0&quot; alt=&quot;Open Advice cover&quot; title=&quot;Open Advice&quot; style=&quot;float:right;margin-left:10px;&quot; /&gt;I seem to have not blogged about this, but &lt;strong&gt;&lt;a href=&quot;http://open-advice.org/&quot;&gt;Open Advice&lt;/a&gt;&lt;/strong&gt;, our book on &lt;em&gt;Free and Open Source Software: what we wish we had known when we started&lt;/em&gt;, was published last month.&lt;/p&gt;
&lt;p&gt;The book was edited by &lt;a href=&quot;http://www.lydiapintscher.de/book.php&quot;&gt;Lydia Pintscher&lt;/a&gt; and includes essays from &lt;a href=&quot;http://open-advice.org/author.html&quot;&gt;42 authors&lt;/a&gt;, many of whom you&apos;ll recognize if you tend to go to FOSS conferences. The &lt;a href=&quot;http://lwn.net/Articles/481222/&quot;&gt;LWN book review&lt;/a&gt; concludes:&lt;/p&gt;
&lt;blockquote&gt;Open Advice is a book that will be helpful to those who are new to FOSS, but, because of the individual voices, styles, and tones, it doesn&apos;t read like a &quot;how to&quot;. It could even be recommended to those who aren&apos;t necessarily interested in contributing, but are curious about what this &quot;free software thing&quot; is all about. It is, in short, a great book for a variety of audiences and the (mostly) two or three page essays make it easy to read, while the anecdotes and recollections personalize it. The authors, editor, and everyone else who helped should be very pleased with the result. Readers will be too.&lt;/blockquote&gt;
&lt;p&gt;I probably shouldn&apos;t give the ending away, but my essay on cross-project collaboration, a subject I&apos;ve &lt;a href=&quot;http://bergie.iki.fi/blog/on_cross-project_collaboration/&quot;&gt;also blogged about&lt;/a&gt;, ends with:&lt;/p&gt;
&lt;blockquote&gt;Good luck with breaking down the project boundaries! In most cases it works if your ideas are good and presented with an open mind. But even if you do not find a common ground, as long as your implementation solves the use case for you it has not been in vain. After all, delivering software, and delivering great user experience is what counts.&lt;/blockquote&gt;
&lt;p&gt;The book is licensed under &lt;a href=&quot;http://creativecommons.org/licenses/by-sa/3.0/&quot;&gt;CC-BY-SA&lt;/a&gt;, and is available as free download in &lt;a href=&quot;http://open-advice.org/Open-Advice.epub&quot;&gt;ePub&lt;/a&gt;, &lt;a href=&quot;http://open-advice.org/Open-Advice.mobi&quot;&gt;mobi&lt;/a&gt; and &lt;a href=&quot;http://open-advice.org/Open-Advice.pdf&quot;&gt;PDF&lt;/a&gt; formats, and &lt;a href=&quot;http://www.lulu.com/shop/lydia-pintscher/open-advice/paperback/product-18889265.html&quot;&gt;as paperback from Lulu&lt;/a&gt;. The book sources are &lt;a href=&quot;https://github.com/lydiapintscher/Open-Advice&quot;&gt;available on GitHub&lt;/a&gt;, patches welcome!&lt;/p&gt;
</description>
      <pubDate>Mon, 19 Mar 2012 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fopen_advice%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/open_advice/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/open_advice/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
    <item>
      
      <title>Business analytics with CouchDB and NoFlo</title>
      <description>&lt;p&gt;The purpose of &lt;a href=&quot;http://37signals.com/svn/posts/3002-the-three-secrets-of-business-analytics-no-rocket-science-here&quot;&gt;business analytics&lt;/a&gt; is to find data from the company’s information systems that can be used to support decision making. What customers buy most? What do they do before a buying decision? What are the signs that a customer may be leaving?&lt;/p&gt;

&lt;p&gt;For the last month we’ve been working in Salzburg to build such a system, the &lt;a href=&quot;http://www.iks-project.eu/resources/intelligent-project-controlling-tool&quot;&gt;Intelligent Project Controlling Tool&lt;/a&gt; needed for running large collaborative research projects like &lt;a href=&quot;http://www.iks-project.eu/&quot;&gt;IKS&lt;/a&gt;. Since the design we went with can be reused for other business analytics needs, I wanted to write a bit about it.&lt;/p&gt;

&lt;p&gt;But first, here is how our system looks like:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/proggis-iks-projectplan-500.png&quot; alt=&quot;Proggis displaying IKS project plan&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;where-does-the-data-come-from&quot;&gt;Where does the data come from?&lt;/h2&gt;

&lt;p&gt;There are many ways to gather business data. Often the information systems already contain the data needed. But it may also be hidden in a jungle of spreadsheets. Or maybe some data is simply not available, and has to be filled in manually.&lt;/p&gt;

&lt;p&gt;Handling all these cases in one system is a tricky question. To solve it, we went with a two-layered strategy:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;All data used for analytics is stored as &lt;a href=&quot;http://en.wikipedia.org/wiki/Linked_Data&quot;&gt;Linked Data&lt;/a&gt; in a CouchDB system&lt;/li&gt;
  &lt;li&gt;NoFlo workflows are used for gathering data from the diverse sources and convert it to the format needed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In IKS’s case, much of the data was available in a series of spreadsheets. With these, we built the necessary workflows for first converting the spreadsheets into XML with &lt;a href=&quot;http://tika.apache.org/&quot;&gt;Apache Tika&lt;/a&gt;, and then extracting the information from them in a sensible subset of JSON-LD.&lt;/p&gt;

&lt;p&gt;Because IKS is a collaborative project, information needs to be gathered from a diverse group of partner organizations. Some of them have systems that provide the needed APIs (like &lt;a href=&quot;http://basecamphq.com/&quot;&gt;Basecamp&lt;/a&gt;, which &lt;a href=&quot;http://nemein.com/en/&quot;&gt;we&lt;/a&gt; use), and we can just periodically import the data. But with many we decided on a simple data interchange approach: spreadsheets handled over email.&lt;/p&gt;

&lt;p&gt;In this approach, user files a data request into the system. This gets picked up by NoFlo, which sends an email with the appropriate spreadsheet template to the partner. Then it starts waiting for a reply. When a reply arrives, it extracts the data from the attached spreadsheet and imports it to the system.&lt;/p&gt;

&lt;p&gt;Our NoFlo processes are mostly initiated by the &lt;a href=&quot;http://guide.couchdb.org/draft/notifications.html&quot;&gt;CouchDB change notification API&lt;/a&gt;. We keep them running persistently using &lt;a href=&quot;http://blog.nodejitsu.com/keep-a-nodejs-server-up-with-forever&quot;&gt;forever Node&lt;/a&gt;, so whenever some operation needs to be run it happens nearly immediately.&lt;/p&gt;

&lt;h2 id=&quot;ensuring-data-consistency&quot;&gt;Ensuring data consistency&lt;/h2&gt;

&lt;p&gt;With any automation, and especially with the email-based data interchange, things can go wrong. Because of this we tag all data that we receive with its origin, whether it was some automated operation or an imported spreadsheet. These origins are called &lt;em&gt;execution documents&lt;/em&gt;. Users can browse all completed workflow executions and see what data came in from them. These can then be either accepted or rejected.&lt;/p&gt;

&lt;p&gt;This way if some partner accidentally sends faulty data, or something else breaks, the incorrect information received can be easily removed. CouchDB’s versioning capabilities help here.&lt;/p&gt;

&lt;h2 id=&quot;analyzing-the-data&quot;&gt;Analyzing the data&lt;/h2&gt;

&lt;p&gt;CouchDB is built on top of the concept of map/reduce. Here you can modify and combine the data in lots of different ways using &lt;a href=&quot;http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views&quot;&gt;simple JavaScript functions&lt;/a&gt;. In our case we elected to write all our CouchDB code in CoffeeScript for simplicity. For example, here is the reduce function in CoffeeScript that counts totals of time planned, time used, and time left per task or partner in a project:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;(keys, values, rereduce) -&amp;gt;
    roundNumber = (rnum, rlength) -&amp;gt;
        Math.round(parseFloat(rnum) * Math.pow(10, rlength)) / Math.pow(10, rlength)
    data =
        planned: 0.0
        spent: 0.0
        left: 0.0

    if rereduce
        for reducedData in values
            data.planned += reducedData.planned
            data.spent += reducedData.spent
        data.left = data.planned - data.spent
        return data

    for doc in values
        if doc[&apos;@type&apos;] is &apos;effortallocation&apos;
            data.planned += roundNumber doc.value, 1
        if doc[&apos;@type&apos;] is &apos;effort&apos;
            data.spent += roundNumber doc.value, 1
    data.left = roundNumber data.planned - data.spent, 1
    return data
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If you figure out a new way to look at the data you have, simply write the needed map and reduce functions and save them into the database. CouchDB will then run them against existing data and produce numbers.&lt;/p&gt;

&lt;h2 id=&quot;data-visualizations&quot;&gt;Data visualizations&lt;/h2&gt;

&lt;p&gt;Numbers are good, but to really see the information buried in them you need some visualizations. For this we decided to follow the &lt;a href=&quot;http://couchapp.org/page/what-is-couchapp&quot;&gt;CouchApp&lt;/a&gt; idea where the user interface code is stored in the database together with the data itself. This way no application servers are needed, and you can take the whole system with you just by &lt;a href=&quot;http://guide.couchdb.org/draft/replication.html&quot;&gt;replicating the database&lt;/a&gt;. Think of the possibility of doing some analysis on your company while flying to a meeting!&lt;/p&gt;

&lt;p&gt;The visuals are in our case provided by &lt;a href=&quot;http://thejit.org/&quot;&gt;JavaScript InfoVis Toolkit&lt;/a&gt;, a nice, MIT-licensed interactive graph library.&lt;/p&gt;

&lt;p&gt;CouchDB views handle the number crunching, then CouchDB &lt;a href=&quot;http://guide.couchdb.org/draft/transforming.html&quot;&gt;list functions&lt;/a&gt; process the numbers into the format needed for visualization. This leaves only a minimal amount of work for the client side.&lt;/p&gt;

&lt;p&gt;For consistency &lt;a href=&quot;https://github.com/IKS/Proggis&quot;&gt;our application&lt;/a&gt; has been built with &lt;a href=&quot;https://github.com/andrzejsliwa/coffeeapp&quot;&gt;CoffeeApp&lt;/a&gt;, so all the database and user interface code is in &lt;a href=&quot;http://jashkenas.github.com/coffee-script/&quot;&gt;CoffeeScript&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;in-a-nutshell&quot;&gt;In a nutshell&lt;/h2&gt;

&lt;p&gt;Any business analytics system dealing with moderate amounts of data can be built following this approach.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://couchdb.apache.org/&quot;&gt;Apache CouchDB&lt;/a&gt; is the central data store&lt;/li&gt;
  &lt;li&gt;All data is stored as &lt;a href=&quot;http://json-ld.org/&quot;&gt;JSON-LD&lt;/a&gt; entities&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://noflojs.org/&quot;&gt;NoFlo&lt;/a&gt; handles all data imports&lt;/li&gt;
  &lt;li&gt;Analytics based on the data are done with CouchDB map/reduce&lt;/li&gt;
  &lt;li&gt;Visualization happens with a CouchApp using &lt;a href=&quot;http://thejit.org/&quot;&gt;JavaScript InfoVis Toolkit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/proggis-architecture.png&quot; alt=&quot;Simple architecture for a business analytics system&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This way you have a business analytics environment that is easy to extend with more data when it becomes available. New analysis can be done by writing reasonably simple map/reduce functions, and CouchDB’s replication capabilities allow you to take the system and data with you.&lt;/p&gt;

&lt;p&gt;Using JSON-LD for the data storage makes a lot of sense, as this way the relations between different pieces of information are easy to handle. And using URIs for data identifiers means you can easily mash up information coming from different sources together.&lt;/p&gt;

&lt;p&gt;The two-layered approach of using NoFlo for data imports, and CouchDB for analysis also allows for clean separation of concerns. In our case, I did the workflow part of things, and &lt;a href=&quot;https://github.com/szabyg&quot;&gt;Szaby&lt;/a&gt; built the visualizations.&lt;/p&gt;
</description>
      <pubDate>Wed, 21 Sep 2011 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fbusiness_analytics_with_couchdb_and_noflo%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/business_analytics_with_couchdb_and_noflo/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/business_analytics_with_couchdb_and_noflo/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
    <item>
      
      <title>Midgard in 2010</title>
      <description>&lt;p&gt;Wow, 2010 was quite a hectic year in the &lt;a href=&quot;http://www.midgard-project.org/&quot;&gt;Midgard&lt;/a&gt; world. Here is a quick summary:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;We held three Midgard Gatherings: one in &lt;a href=&quot;http://www.midgard-project.org/community/events/archive/view/midgard_gathering-002/&quot;&gt;Lodz, Poland in April&lt;/a&gt;, one in &lt;a href=&quot;http://www.midgard-project.org/community/events/archive/view/akademy_and_midgard_gathering/&quot;&gt;Tampere, Finland in July&lt;/a&gt; and one in &lt;a href=&quot;http://www.midgard-project.org/community/events/archive/view/midgard_gathering_in_fscons_2010/&quot;&gt;Gothenburg, Sweden in November&lt;/a&gt;. In April we announced the &lt;a href=&quot;http://bergie.iki.fi/blog/future_directions_for_midgard/&quot;&gt;new directions of the project&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The project completed &lt;a href=&quot;http://bergie.iki.fi/blog/midgard2_has_moved_to_github/&quot;&gt;a migration to Git&lt;/a&gt; (and &lt;a href=&quot;https://github.com/midgardproject&quot;&gt;GitHub&lt;/a&gt;) for Midgard2 and Midgard MVC, together with a &lt;a href=&quot;http://www.midgard-project.org/discussion/developer-forum/read/4cf414fe644311df818bd7a6bcc6d37ed37e.html&quot;&gt;change in the development process&lt;/a&gt; to facilitate a more decentralized way of working&lt;/li&gt;
&lt;li&gt;The Long-Term Supported &lt;a href=&quot;http://bergie.iki.fi/blog/long-term_support_for_midgard-ragnaroek_is_here/&quot;&gt;Midgard1 series 8.09 Ragnaroek&lt;/a&gt; had two releases: &lt;a href=&quot;http://www.midgard-project.org/updates/midgard-ragnaroek-8-09-8_released/&quot;&gt;.8&lt;/a&gt; and &lt;a href=&quot;http://www.midgard-project.org/updates/midgard-ragnaroek-8-09-9_released/&quot;&gt;.9&lt;/a&gt;. After .9 there have been &lt;a href=&quot;http://bergie.iki.fi/blog/recent_performance_improvements_for_midgard_8-09/&quot;&gt;substantial performance improvements&lt;/a&gt; that still &lt;a href=&quot;http://trac.midgard-project.org/milestone/8.09.10%20Ragnaroek&quot;&gt;wait for release&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Midgard2 had its first Long-Term Supported version &lt;a href=&quot;http://bergie.iki.fi/blog/ratatoskr_is_out-midgard2_content_repository_goes_lts/&quot;&gt;10.05 Ratatoskr&lt;/a&gt;, with three releases: &lt;a href=&quot;http://www.midgard-project.org/updates/midgard2_10-05-ratatoskr-released/&quot;&gt;.0&lt;/a&gt;, &lt;a href=&quot;http://www.midgard-project.org/updates/midgard2_10-05-1-ratatoskr-lts_released/&quot;&gt;.1&lt;/a&gt; and &lt;a href=&quot;http://www.midgard-project.org/updates/midgard2_10-05-2-ratatoskr-lts_released/&quot;&gt;.2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Midgard2 started providing language bindings via &lt;a href=&quot;http://live.gnome.org/GObjectIntrospection&quot;&gt;GObject Introspection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Midgard2 landed into &lt;a href=&quot;http://bergie.iki.fi/blog/midgard2_content_repository_library_is_now_in_debian/&quot;&gt;Debian unstable&lt;/a&gt;, &lt;a href=&quot;http://maemo.org/packages/view/libmidgard2-2010/&quot;&gt;Maemo Extras&lt;/a&gt; and &lt;a href=&quot;https://build.pub.meego.com/project/packages?project=home:piotras:midgard2&quot;&gt;MeeGo Community OBS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Third generation of &lt;a href=&quot;http://bergie.iki.fi/blog/get_a_preview_of_the_next_midgard_content_repository/&quot;&gt;Midgard Content Repository had its first release&lt;/a&gt; showcasing more flexible model definition and &lt;a href=&quot;https://github.com/midgardproject/midgard-core/blob/master/src/vala/examples/rdf_example.vala&quot;&gt;built-in RDF storage&lt;/a&gt;. The new MidgardCR is written in &lt;a href=&quot;http://live.gnome.org/Vala&quot;&gt;Vala&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;First version of the &lt;a href=&quot;http://bergie.iki.fi/blog/using_rdfa_to_make_a_web_page_editable/&quot;&gt;Midgard Create content management interface&lt;/a&gt; was shown&lt;/li&gt;
&lt;li&gt;Midgard MVC gained a &lt;a href=&quot;http://www.midgard-project.org/discussion/developer-forum/pake_installer_for_midgard_mvc_applications/&quot;&gt;new application installer&lt;/a&gt; tool and the ability to be run on the &lt;a href=&quot;https://github.com/indeyets/appserver-in-php/wiki&quot;&gt;PHP Application Server&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;http://openpsa2.org/&quot;&gt;OpenPSA management suite&lt;/a&gt; was &lt;a href=&quot;https://github.com/flack/openpsa&quot;&gt;forked out&lt;/a&gt; from Ragnaroek tree, ported to Midgard2 and &lt;a href=&quot;http://bergie.iki.fi/blog/help_testing_the_openpsa_business_suite/&quot;&gt;packaged for Ubuntu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;On Maemo, Midgard-powered applications like &lt;a href=&quot;http://maemo.org/downloads/product/Maemo5/adventure-tablet/&quot;&gt;The Tablet of Adventure&lt;/a&gt; and &lt;a href=&quot;http://maemo.org/downloads/product/Maemo5/maecalories/&quot;&gt;MaeCalories&lt;/a&gt; provided tens of thousands of Midgard installations on mobile phones&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/bergie/4815191854/in/photostream/&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4082/4815191854_f29ebdcb23_m.jpg&quot; border=&quot;0&quot; alt=&quot;Patching Midgard&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/bergie/4508596904/in/photostream/&quot;&gt;&lt;img src=&quot;http://farm3.static.flickr.com/2749/4508596904_a8a5b0cf79_m.jpg&quot; border=&quot;0&quot; alt=&quot;Midgard Gathering in Lodz&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/bergie/4741849531/in/photostream/&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4101/4741849531_fa5b7f0e8b_m.jpg&quot; border=&quot;0&quot; alt=&quot;Special-issue Midgard shirts&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/bergie/4762761909/in/photostream/&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4117/4762761909_e9405fb161_m.jpg&quot; border=&quot;0&quot; alt=&quot;Midgard in aKademy 2010&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/bergie/5150262379/in/photostream/&quot;&gt;&lt;img src=&quot;http://farm2.static.flickr.com/1070/5150262379_245767e330_m.jpg&quot; border=&quot;0&quot; alt=&quot;Midgard Gathering in FSCONS&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/bergie/4759778273/in/photostream/&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4119/4759778273_9df7a48420_m.jpg&quot; border=&quot;0&quot; alt=&quot;Discussing Midgard and Tracker&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unfortunately at the same time the Midgard developer community has stayed quite small and insular. This will hopefully improve through easier installation, availability of Midgard libraries in Linux distributions and closer collaboration with the rest of the PHP world as a participant of the &lt;a href=&quot;http://bergie.iki.fi/blog/php-finally_getting_an_ecosystem/&quot;&gt;Zeta Components ecosystem&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We still also need to solve the project governance question of either running &lt;a href=&quot;http://www.qaiku.com/channels/show/midgard/view/1deeca09f359ab4eca011dea74d4f007179bd35bd35/&quot;&gt;our own association&lt;/a&gt; or joining a major organization &lt;a href=&quot;http://bergie.iki.fi/blog/why_make_your_projects_properly_open-sustainability/&quot;&gt;like ASF&lt;/a&gt;. The relation between Midgard and the &lt;a href=&quot;http://www.gnome.org/&quot;&gt;GNOME&lt;/a&gt; project on which we heavily rely on should also be clarified.&lt;/p&gt;
&lt;p&gt;See also the &lt;a href=&quot;http://bergie.iki.fi/blog/midgard_in_2009/&quot;&gt;Midgard in 2009&lt;/a&gt; post.&lt;/p&gt;
</description>
      <pubDate>Tue, 11 Jan 2011 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fmidgard_in_2010%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/midgard_in_2010/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/midgard_in_2010/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
    <item>
      
      <title>Help testing the OpenPSA business suite</title>
      <description>&lt;p&gt;&lt;a href=&quot;http://openpsa2.org/about/&quot;&gt;OpenPSA&lt;/a&gt; is an web-based management suite for consulting companies. The GPLd suite includes functionalities like calendaring and contact management, product configurations, sales processes, project management and invoicing. The application was &lt;a href=&quot;http://bergie.iki.fi/blog/2004-05-08-000/&quot;&gt;originally developed by Nemein&lt;/a&gt; but since 2008 has &lt;a href=&quot;http://bergie.iki.fi/blog/free_software_at_work-openpsa2_is_making_a_return/&quot;&gt;seen excellent maintenance work&lt;/a&gt; by the &lt;a href=&quot;http://www.contentcontrol-berlin.de/&quot;&gt;Content Control&lt;/a&gt; team.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/1dfeb47a65659cceb4711df92736d20e1e926c126c1_openpsa-screenshots.png&quot; border=&quot;0&quot; alt=&quot;openpsa-screenshots.png&quot; title=&quot;openpsa-screenshots.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;As a result of last weekend&apos;s &lt;a href=&quot;http://www.midgard-project.org/community/events/midgard_gathering_in_fscons_2010/&quot;&gt;Midgard developer meeting&lt;/a&gt; in FSCONS, the OpenPSA suite has now been packaged for Debian and Ubuntu. Ubuntu users can easily test the package with:&lt;/p&gt;
&lt;pre&gt;$ sudo apt-add-repository ppa:midgard/ratatoskr
$ sudo apt-get update
$ sudo apt-get install openpsa2

&lt;/pre&gt;
&lt;p&gt;After this, the OpenPSA suite should be running on your machine in &lt;a href=&quot;http://localhost/openpsa2&quot;&gt;http://localhost/openpsa2&lt;/a&gt;. Default user account is admin / password.&lt;/p&gt;
&lt;p&gt;You can also &lt;a href=&quot;https://github.com/flack/openpsa&quot;&gt;check out the project on GitHub&lt;/a&gt;. Please add your &lt;a href=&quot;https://github.com/flack/openpsa/issues&quot;&gt;issues and ideas&lt;/a&gt; there!&lt;/p&gt;
</description>
      <pubDate>Mon, 08 Nov 2010 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fhelp_testing_the_openpsa_business_suite%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/help_testing_the_openpsa_business_suite/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/help_testing_the_openpsa_business_suite/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
    <item>
      
      <title>CouchDb and Midgard talking with each other</title>
      <description>&lt;p&gt;
&lt;a href=&quot;http://bergie.iki.fi/blog/jquery_and_couchdb-001/&quot;&gt;CouchDb&lt;/a&gt; is a really cool document-oriented map/reduce database that is nowadays an Apache project. Previously we created the &lt;a href=&quot;http://bergie.iki.fi/blog/previewing_ajatus-the_distributed_crm/&quot;&gt;distributed CRM application Ajatus&lt;/a&gt; on top of the system and &lt;a href=&quot;http://bergie.iki.fi/moblog/photo/4756887498ee11dcb5f3d7132ea5e37fe37f/&quot;&gt;ported CouchDb to Maemo&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Here in &lt;a href=&quot;http://www.grancanariadesktopsummit.org/&quot;&gt;Gran Canaria Desktop Summit CouchDb&lt;/a&gt; has been somewhat a hot topic, as the &lt;a href=&quot;https://wiki.ubuntu.com/DesktopTeam/Specs/Karmic/IntegratingWithUbuntuOne&quot;&gt;Ubuntu project is planning to use it&lt;/a&gt; as the content repository for desktop applications.
&lt;/p&gt;
&lt;p&gt;
We had a lunch with &lt;a href=&quot;http://twitter.com/janl&quot;&gt;Jan Lehnardt&lt;/a&gt; today and discussed how to make &lt;a href=&quot;http://www.midgard2.org/&quot;&gt;Midgard2&lt;/a&gt; and &lt;a href=&quot;http://couchdb.apache.org/&quot;&gt;CouchDb&lt;/a&gt; interoperate better, and as it happens, it is actually very easy: CouchDb has a replication protocol that we can support also in Midgard, making the two repositories able to &lt;a href=&quot;http://blogs.gnome.org/rodrigo/2009/06/03/desktop-datasettings-replication/&quot;&gt;synchronize content&lt;/a&gt; with each other.
&lt;/p&gt;
&lt;p&gt;
There is now a first test implementation of &lt;em&gt;Midgard-to-CouchDb&lt;/em&gt; synchronization support, with better Midgard integration and &lt;em&gt;CouchDb-to-Midgard&lt;/em&gt; coming soon. Check out &lt;a href=&quot;http://github.com/bergie/org_couchdb_replication/tree/master&quot;&gt;the Midgard MVC component on Github&lt;/a&gt;. Anyway, already pretty cool!
&lt;/p&gt;
&lt;p&gt;
Setting up replication on CouchDb admin UI:
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/couchdb-midgard-replication-setup.png&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/couchdb-midgard-replication-setup-tm.jpg&quot; height=&quot;206&quot; width=&quot;400&quot; border=&quot;1&quot; hspace=&quot;4&quot; vspace=&quot;4&quot; alt=&quot;Replicating from Midgard to CouchDb&quot; title=&quot;Replicating from Midgard to CouchDb&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Midgard record replicated successfully into CouchDb:
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/couchdb-replicated-midgard-person.png&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/couchdb-replicated-midgard-person-tm.jpg&quot; height=&quot;216&quot; width=&quot;400&quot; border=&quot;1&quot; hspace=&quot;4&quot; vspace=&quot;4&quot; alt=&quot;Replicated Midgard person record in CouchDb&quot; title=&quot;Replicated Midgard person record in CouchDb&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
I&apos;ll talk more about this and &lt;em&gt;repository-oriented application development&lt;/em&gt; in my &lt;a href=&quot;http://www.grancanariadesktopsummit.org/node/210&quot;&gt;Midgard2: Content repository for desktop and the web&lt;/a&gt; talk &lt;a href=&quot;http://www.grancanariadesktopsummit.org/node/270&quot;&gt;tomorrow at 16:45&lt;/a&gt;. Be there!
&lt;/p&gt;
&lt;p style=&quot;text-align:right;font-size:10px;&quot;&gt;Technorati Tags: &lt;a href=&quot;http://www.technorati.com/tag/couchdb&quot; rel=&quot;tag&quot;&gt;couchdb&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/midgard&quot; rel=&quot;tag&quot;&gt;midgard&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/tag/replication&quot; rel=&quot;tag&quot;&gt;replication&lt;/a&gt;&lt;/p&gt;
</description>
      <pubDate>Mon, 06 Jul 2009 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fcouchdb_and_midgard_talking_with_each_other%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/couchdb_and_midgard_talking_with_each_other/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/couchdb_and_midgard_talking_with_each_other/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
    <item>
      
      <title>Come to celebrate the 10th Anniversary of the Midgard Project</title>
      <description>&lt;p&gt;
&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/vali-party.jpg&quot; height=&quot;175&quot; width=&quot;200&quot; border=&quot;0&quot; align=&quot;right&quot; hspace=&quot;8&quot; vspace=&quot;4&quot; alt=&quot;Vali raises a toast to ten years of Midgard&quot; title=&quot;Vali raises a toast to ten years of Midgard&quot; /&gt;
&lt;br /&gt;&lt;a href=&quot;http://www.linuxtoday.com/developer/1999050701705NWSW&quot;&gt;May 8th 1999&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote&gt;
The Midgard Project has finally released the first public version of Midgard Application Server Suite. The new release contains Midgard core libraries, a PHP3-based web application server for the Apache platform and the needed web-based administration tools.
&lt;/blockquote&gt;
&lt;p&gt;
&lt;a href=&quot;http://www.midgard-project.org/10/&quot;&gt;May 8th 2009&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote&gt;
It&apos;s time for celebration - Midgard CMS turns ten in May! The decade of Midgard will be celebrated with a guest gala that is to be held at &lt;a href=&quot;http://www.botta.fi/Etusivu.24.0.html?&amp;amp;L=1&quot;&gt;restaurant Ostrobotnia&lt;/a&gt; in Helsinki, Finland.
&lt;/blockquote&gt;
&lt;p&gt;
Looking forward to seeing as many of you in the party as possible! Please &lt;a href=&quot;http://www.midgard-project.org/10/registration/&quot;&gt;register ASAP&lt;/a&gt; as we need to tell the restaurant how many tables are needed.
&lt;/p&gt;
</description>
      <pubDate>Fri, 27 Mar 2009 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fcome_to_celebrate_the_10th_anniversary_of_the_midgard_project%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/come_to_celebrate_the_10th_anniversary_of_the_midgard_project/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/come_to_celebrate_the_10th_anniversary_of_the_midgard_project/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
    <item>
      
      <title>Free software at work: OpenPsa2 is making a return</title>
      <description>&lt;p&gt;
In the recent &lt;a href=&quot;http://www.mindtrek.org/openmind/&quot;&gt;OpenMind conference&lt;/a&gt; we were discussing how open source projects simply &lt;a href=&quot;http://www.linuxforums.org/misc/open_source_will_never_die.html&quot;&gt;don&apos;t die&lt;/a&gt; as long as there is an interested user community: Even if the original company or individual who built the application stops working on it, somebody will always rise and start maintaining it.
&lt;/p&gt;
&lt;p&gt;
Last few weeks have been a great example of this. &lt;a href=&quot;http://nemein.com/en/&quot;&gt;Nemein&lt;/a&gt; is the company which originally built the &lt;a href=&quot;http://www.openpsa2.org/&quot;&gt;OpenPsa2&lt;/a&gt; suite of project management and CRM tools for consulting companies. In last two years there have been some shifts in strategy, and so we ceased working on the product.
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/openpsa2-ragnaroek-20081015.png&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/openpsa2-ragnaroek-20081015-tm.jpg&quot; height=&quot;214&quot; width=&quot;400&quot; border=&quot;1&quot; hspace=&quot;4&quot; vspace=&quot;4&quot; alt=&quot;OpenPsa2 under Midgard Ragnaroek&quot; title=&quot;OpenPsa2 under Midgard Ragnaroek&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Luckily for our users, &lt;a href=&quot;http://freshmeat.net/projects/openpsa&quot;&gt;OpenPsa has been out&lt;/a&gt; under the GNU &lt;a href=&quot;http://www.gnu.org/licenses/gpl.html&quot;&gt;General Public License&lt;/a&gt; &lt;a href=&quot;http://bergie.iki.fi/blog/2004-04-29-001/&quot;&gt;since 2004&lt;/a&gt;. This meant that while commercial development had stopped, they were able to step in and continue where we left off. It took a while, but during this fall &lt;a href=&quot;http://www.iks-project.eu/community/people/andreas-flack&quot;&gt;Andreas Flack&lt;/a&gt; from &lt;a href=&quot;http://www.contentcontrol-berlin.de/&quot;&gt;Content Control&lt;/a&gt; started maintaining the software.
&lt;/p&gt;
&lt;p&gt;
Now the effort is starting to bear fruit. &lt;a href=&quot;http://www.midgard-project.org/&quot;&gt;Midgard&lt;/a&gt; world &lt;a href=&quot;http://www.midgard-project.org/midgard/8.09/&quot;&gt;has recently settled&lt;/a&gt; into a new &lt;a href=&quot;http://bergie.iki.fi/blog/midgard_and_synchronized_releases/&quot;&gt;synchronized release model&lt;/a&gt;, and &lt;a href=&quot;http://web.archive.org/web/20100603050406/http://www.midgard-project.org/discussion/developer-forum/openpsa_and_releases/&quot;&gt;OpenPsa is swiftly catching up&lt;/a&gt; with the rest of the architecture. We expect that it may be released with the &lt;a href=&quot;http://trac.midgard-project.org/milestone/8.09.2%20Ragnaroek&quot;&gt;Ragnaroek 8.09.2&lt;/a&gt; revision.
&lt;/p&gt;
&lt;p&gt;
Good work, Andreas!
&lt;/p&gt;
</description>
      <pubDate>Wed, 15 Oct 2008 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Ffree_software_at_work-openpsa2_is_making_a_return%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/free_software_at_work-openpsa2_is_making_a_return/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/free_software_at_work-openpsa2_is_making_a_return/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
    <item>
      
      <title>ETech 2009 CFP: Building the peer-to-peer business network</title>
      <description>&lt;p&gt;
&lt;a href=&quot;http://en.oreilly.com/et2009/public/content/home&quot;&gt;ETech 2009&lt;/a&gt;, the O&apos;Reilly conference on emerging technologies now &lt;a href=&quot;http://www.boingboing.net/2008/08/04/etech-2009-call-for.html&quot;&gt;has a call for papers&lt;/a&gt;. Here is my proposal for the &lt;em&gt;&quot;Nomadism &amp;amp; Shedworking&quot;&lt;/em&gt; track:
&lt;/p&gt;
&lt;blockquote&gt;
The recent direction of business applications has been centralization to web-based systems, easing deployment, upgrades and management of application security. However, at same time centralization provides new risks like the introduction of a &lt;a href=&quot;http://www.chrisbrogan.com/when-google-owns-you/&quot;&gt;single point of failure&lt;/a&gt; for application usage and in most cases inability to work offline.
&lt;br /&gt;&lt;br /&gt;At the same time, working culture has started so shift more towards networked individuals, or &quot;web workers&quot; forming ad-hoc coalitions to work on various projects. For them, centralized applications might not be desirable due to data ownership and infrastructure requirements.
&lt;br /&gt;&lt;br /&gt;Moving the applications from centralized web servers to a peer-to-peer network allows web workers to be in control of their own data, stay productive even in unstable connectivity situations, and collaborate easily with their colleagues in an ad-hoc way.
&lt;br /&gt;&lt;br /&gt;This talk outlines some ways to move forward in building peer-to-peer networked business applications. There are many open source frameworks targeting the problem, including replicated databases like &lt;a href=&quot;http://incubator.apache.org/couchdb/&quot;&gt;CouchDb&lt;/a&gt; and &lt;a href=&quot;http://syncwith.us/&quot;&gt;Prophet&lt;/a&gt;, and application-oriented P2P networks like &lt;a href=&quot;http://swallow.sourceforge.net/&quot;&gt;Swallow/DBE&lt;/a&gt;. These will be discussed together with some real-world examples of business applications built with them:
&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.ajatus.info/&quot;&gt;Ajatus&lt;/a&gt; - a &quot;&lt;a href=&quot;http://blogs.law.harvard.edu/vrm/2007/11/16/crm-gets-personal/&quot;&gt;Personal CRM&lt;/a&gt;&quot; built on top of CouchDb, a RESTful replicated object database
&lt;br /&gt;&lt;a href=&quot;http://bergie.iki.fi/blog/how-openpsa-uses-dbe/&quot;&gt;OpenPsa&lt;/a&gt; - project management system &lt;a href=&quot;http://bergie.iki.fi/blog/finding-resources-automatically-in-openpsa/&quot;&gt;doing resourcing&lt;/a&gt; over the &lt;a href=&quot;http://www.digital-ecosystem.org/&quot;&gt;DBE&lt;/a&gt; P2P network
&lt;br /&gt;&lt;a href=&quot;http://syncwith.us/&quot;&gt;Simple Defects&lt;/a&gt; - a P2P bug tracking system built on top of the Prophet replicated database
&lt;br /&gt;&lt;br /&gt;The first phase of P2P business applications will likely be services operating in closed networks of users&apos; social networking or instant messaging contacts. But the P2P model can also provide opportunities for wider networking, making it possible to find new project partners or collaborators anywhere in the world. This wider-ranging business network will introduce new challenges like security and reputation management. Some ideas related to this will also be discussed.
&lt;/blockquote&gt;
&lt;p&gt;
Other interesting projects in this sphere I did not mention are &lt;a href=&quot;http://telepathy.freedesktop.org/wiki/Tubes&quot;&gt;Telepathy Tubes&lt;/a&gt; and &lt;a href=&quot;http://ulno.net/f2f/&quot;&gt;F2F&lt;/a&gt;. We have also had some ideas for how &lt;a href=&quot;http://bergie.iki.fi/blog/xmpp_publish-subscribe_for_midgard_and_ajatus_replication/&quot;&gt;Midgard could do this&lt;/a&gt;...
&lt;/p&gt;
</description>
      <pubDate>Wed, 06 Aug 2008 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fetech_2009_cfp-building_the_peer-to-peer_business_network%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/etech_2009_cfp-building_the_peer-to-peer_business_network/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/etech_2009_cfp-building_the_peer-to-peer_business_network/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
    <item>
      
      <title>Scrum in management of a small software consultancy</title>
      <description>&lt;p&gt;
Over the years we at &lt;a href=&quot;http://nemein.com/&quot;&gt;Nemein&lt;/a&gt; have been experimenting with various ways of keeping our operations managed. Now with some personnel changes including &lt;a href=&quot;http://www.runtoshop.com/contact.html&quot;&gt;Joe&apos;s&lt;/a&gt; departure it was a good time to change the way we work again.
&lt;/p&gt;
&lt;p&gt;
I had some goals:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Keeping status of different projects up-to-date with more accuracy&lt;/li&gt;
&lt;li&gt;Ensuring our sales and project management knows if some project is being blocked by missing materials&lt;/li&gt;
&lt;li&gt;Enabling a more distributed, &lt;a href=&quot;http://webworkerdaily.com/2006/09/04/going-bedouin/&quot;&gt;web working&lt;/a&gt; culture&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
We&apos;re a small company of &lt;a href=&quot;http://nemein.com/en/people/&quot;&gt;less than 10 people&lt;/a&gt;, and as such most project management methods have not been very successful for us. In general they have been made for situations where same person or team keeps on working on a project for several months, whereas in our situation a person typically works on several projects every day.
&lt;/p&gt;
&lt;p&gt;
I discussed this over some beers with &lt;a href=&quot;http://teroheikkinen.iki.fi/&quot;&gt;Tero Heikkinen&lt;/a&gt; from &lt;a href=&quot;http://plazes.com/plazes/135439_rohea&quot;&gt;Rohea&lt;/a&gt;, and he told me how they were implementing &lt;a href=&quot;http://en.wikipedia.org/wiki/Scrum_(development)&quot;&gt;Scrum&lt;/a&gt; in their small company. While their number of different projects running at the same time is a bit smaller, their situation otherwise is quite similar: &lt;a href=&quot;http://www.midgard-project.org/&quot;&gt;same technologies&lt;/a&gt; used, &lt;a href=&quot;http://www.ajatus.info/&quot;&gt;Ajatus&lt;/a&gt; for work tracking, etc.
&lt;/p&gt;
&lt;p&gt;
We had a company &lt;a href=&quot;http://flickr.com/photos/bergie/2544964382/&quot;&gt;sauna evening&lt;/a&gt; and I presented Tero&apos;s ideas there: we would partially implement the Scrum model, and keep tuning it to our needs. At the first phase this means:
&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Every morning we have an all-hands 15-20min meeting (&quot;the daily Scrum&quot;) where everybody goes over what they have been doing the previous day, and what they were planning to do today. If they are being blocked by something missing: a software bug, missing information or other materials, this is also brought forward&lt;/li&gt;
&lt;li&gt;Every project has a file in &lt;a href=&quot;http://docs.google.com/&quot;&gt;Google Docs&lt;/a&gt; where we keep the project status and task list (Backlog). This task list is updated based on what comes up in the morning meeting&lt;/li&gt;
&lt;li&gt;Work hours are reported with Ajatus. Rohea also uses it for project &lt;a href=&quot;http://www.controlchaos.com/about/burndown.php&quot;&gt;burn-down charts&lt;/a&gt;, and once their add-on for that is finished we may do the same&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://nemein.com/en/people/semi/&quot;&gt;Emilia&lt;/a&gt;, the project manager (or Scrum Master) is responsible for resolving possible impediments and maintaining the per-project status files&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
The approach we have taken should be quite pragmatic and low-tech. Instead of fancy project management software we use simple word processing for status data. And thanks to Google Docs the documents produced are accessible and editable from anywhere.
&lt;/p&gt;
&lt;p&gt;
Similarly the actual meetings are quite easy to manage. The people who are at the office attend there, and others attend either via a Skype or mobile phone conference call, depending on network availability. We decided to have them at 10am so that everybody will be able to participate. Even if there is a Sprint or meeting scheduled for the same time, the short time needed for our all-hands meeting means it can be held over a &quot;cigarette break&quot;.
&lt;/p&gt;
&lt;p&gt;
Ajatus is the only more experimental piece of software in our puzzle. In our company, we use it for hour reporting, expense tracking and keeping meeting minutes. For these it works quite well, although more reporting tools are definitely needed. The alpha status of &lt;a href=&quot;http://incubator.apache.org/couchdb/&quot;&gt;CouchDb&lt;/a&gt;, the database software powering Ajatus has bit us a few times by database corruption (caused by OSX-specific erlang bug) or simply difficult installation procedure, but these problems will hopefully improve over time.
&lt;/p&gt;
&lt;p&gt;
We&apos;re now in the second week of this model, and at least the gut feel is that this has improved coordination inside the company. The next challenge then is to let the customer get involved in the process. This can mean just sharing the project status files, or even giving them access to actual meetings or the Ajatus data.
&lt;/p&gt;
</description>
      <pubDate>Wed, 11 Jun 2008 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fscrum_in_management_of_a_small_software_consultancy%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/scrum_in_management_of_a_small_software_consultancy/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/scrum_in_management_of_a_small_software_consultancy/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
  </channel>
</rss>
