<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Polis — community of communities]]></title><description><![CDATA[We help communities scale up while preserving the benefits of small groups]]></description><link>https://blog.polis.global/</link><image><url>https://blog.polis.global/favicon.png</url><title>Polis — community of communities</title><link>https://blog.polis.global/</link></image><generator>Ghost 3.39</generator><lastBuildDate>Sun, 22 Mar 2026 11:28:04 GMT</lastBuildDate><atom:link href="https://blog.polis.global/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Universal Basic Income for Bali Research Report]]></title><description><![CDATA[Polis is excited to announce a collaboration between Circles, Memri & Polis in publishing this Universal Basic Income for Bali research report exploring the implementation of Circles UBI in Bali.]]></description><link>https://blog.polis.global/universal-basic-income-for-bali-research-report/</link><guid isPermaLink="false">603708ebd60a4f063ce9e3ce</guid><category><![CDATA[Blockchain]]></category><category><![CDATA[Economic Modeling]]></category><category><![CDATA[Governance]]></category><category><![CDATA[Polis]]></category><category><![CDATA[Vision]]></category><category><![CDATA[Circles]]></category><category><![CDATA[Universal Basic Income]]></category><category><![CDATA[Memri]]></category><dc:creator><![CDATA[Shaunda Brown]]></dc:creator><pubDate>Thu, 25 Feb 2021 07:38:00 GMT</pubDate><media:content url="https://blog.polis.global/content/images/2021/02/Circles-Polis-Report_header.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.polis.global/content/images/2021/02/Circles-Polis-Report_header.png" alt="Universal Basic Income for Bali Research Report"><p>This research report, supported by Polis, presents findings from a survey of Indonesians living in Bali for a UBI experiment based on Circles. Circles is a project that puts basic income on the blockchain. This report aims to understand the viability of such an implementation, discover pain points and possible solutions, and determine potential implementation strategies. Questions in this survey focused on the particular areas relevant to this program—namely technology and internet usage, trading habits, and financial literacy. </p><!--kg-card-begin: html--><iframe src="//www.slideshare.net/slideshow/embed_code/key/vbSySOSmcE35Dj" width="668" height="908" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0px solid #CCC; border-width:0px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <!--kg-card-end: html--><p></p><p>Findings from this report indicate high potential adoption rates and social structures that support the viability of a local program. Analysis revealed that people are excited about the concept of a community basic income, and would like to see this program be successful. The study indicates that such an implementation of universal basic income could create massive change toward supporting the wellbeing and livelihood of Balinese people.</p><p>This study uncovers recommended strategies for a successful implementation. Simplified and clear communication is a necessary tactic, given the complexity of the project and newness of the subject material. One suggested path would be to introduce the application to women, who are the financial heads of households, to encourage community acceptance. Another viable path may be through Balinese youth, who are more open to technology. An ideal target community is middle class to avoid issues with precarity given the experimental status of the current system.</p><p>Another advised approach includes creating a local business consortium accepting Circles as payment to enable a self sustaining B2B network. This B2B network can increase liquidity and revenue through the use of the Circles tokens providing much needed grease in the economic engine. Due to the pandemic, Bali has an issue with very little money in the system and also a potential liquidity crisis as companies go bankrupt and money leaves the island. This is because 80% of income is dependent on tourism, which has now plummeted. Perhaps now is an ideal time for introducing an alternative currency to increase economic flow for businesses.</p><p>There are several inherent obstacles to overcome with implementation: bootstrapping, community, and communication. In the initial bootstrapping stage, respondents indicate the need to clearly understand how their primary needs will be met. One potential solution is to include partners such as the farmer’s fresh food distribution initiative, Pasar Rakyat. Since community is critical to Balinese culture, it is important to have banjars, or local community councils, approached for acceptance of the program. Clear and simple communication is needed to help Balinese overcome views surrounding money and transactions. Without a good marketing strategy, these beliefs around money may limit adoption of the program. In addition, concerns about security and complexity of the application could be addressed by creating a specific application in the Indonesian language. One solution would be to utilize Memri for this function, which could provide translation features, data security, and additional data storage.</p><p>With time to integrate the new system properly given the recommended guidelines listed through this paper, there is a good probability for success of this experiment. As this study shows, universal basic income implementation with Circles and Memri can solve huge issues for the Balinese people—improving wealth equality, meeting basic needs, expanding business opportunities, and providing needed data storage.</p><p>If you would like to be involved in bringing UBI to Bali, funding, and for more information or comments, please reach out to Shaunda Brown at <a href="mailto:shaunda@polis.global">shaunda@polis.global</a>.</p>]]></content:encoded></item><item><title><![CDATA[Tutorial: Introduction to renderers]]></title><description><![CDATA[This article introduces various renderers that you can use while writing cvu to render data and how to use them with code examples.]]></description><link>https://blog.polis.global/cvu-language-part-7/</link><guid isPermaLink="false">63721bd80f4d8f0778c097dc</guid><category><![CDATA[cvu]]></category><dc:creator><![CDATA[Ruben Daniels]]></dc:creator><pubDate>Tue, 14 Jul 2020 12:07:00 GMT</pubDate><media:content url="https://blog.polis.global/content/images/2022/11/ftcms_347ece48-0f69-11e9-a3aa-118c761d2745.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.polis.global/content/images/2022/11/ftcms_347ece48-0f69-11e9-a3aa-118c761d2745.jpeg" alt="Tutorial: Introduction to renderers"><p>In Memri, <em>renderers</em> allow you to display data in a certain way. Renderers are configurable using CVU and in the previous tutorials you have already become familiar with the list renderer that displays items in a list, as well as the thumbnail renderer that displays items as thumbnails in a grid. Memri comes with several other renderers and more are on the way. These renderers give you access to powerful functionality from your CVU.</p><!--kg-card-begin: html--><div class="navbox">
    <h2>Part 7 in the series</h2>
    <p>This is the 7th and last article in a series introducing the memri browser and the cvu language — a platform that together with the memri pod gives you control over your information and your digital life. </p>
    <ul>
        <li><a href="https://blog.polis.global/cvu-language-part-1/">Co-create the interface you spend your life in!</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-2/">Tutorial: A list view for notes</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-3/">CVU Developer tools</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-4/">Cascading views</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-5/">Tutorial: A single item view</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-6/">A dive into SubViews</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-7/">Tutorial: Introduction to renderers</a></li>
    </ul>
</div><!--kg-card-end: html--><p></p><h2 id="map-renderer">Map renderer</h2><p>The map renderer can display items (or their properties or edges) on a map. It supports displaying <code>Address</code> and <code>Location</code> items and you can configure a label to display. In the screenshots below on the left addresses are displayed in the list renderer and on the right we see the same addresses displayed in the map renderer.</p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://blog.memri.io/content/images/2020/07/Simulator-Screen-Shot---iPhone-11-Pro---2020-07-14-at-07.47.53.png" width="1125" height="2436" alt="Tutorial: Introduction to renderers"></div><div class="kg-gallery-image"><img src="https://blog.memri.io/content/images/2020/07/Simulator-Screen-Shot---iPhone-11-Pro---2020-07-14-at-08.39.51.png" width="1125" height="2436" alt="Tutorial: Introduction to renderers"></div></div></div></figure><p>The CVU for this (almost trivial) example is very simple indeed. The code below specifies that the address is the item in the list using <code>{{.}}</code> and to display its computedTitle as the label.</p><!--kg-card-begin: html--><pre class="language-less">
<code>[renderer = map] {
    address: {{.}}
    label: {{.computedTitle()}}
}
</code></pre><!--kg-card-end: html--><p>However you can make this more interesting. In the next example we'll plot <code>Person</code> items on a map based on their addresses, and we'll show their profile picture on the map. Since persons can have multiple addresses, we'll select all address items of a person using <code>.address[]</code>. For each address the VStack with an image and text element is rendered on the map showing the profile picture of the person and the computedTitle of the address. </p><!--kg-card-begin: html--><pre class="language-less">
<code>[renderer = map] {
    address: {{.address[]}}
    
    VStack {
        Image {
            image: {{.profilePicture}}
        }
        Text { text: {{address.computedTitle()}} }
    }
    
    mapStyle: satellite
}
</code></pre><!--kg-card-end: html--><p>Lastly we configure the map to show satellite instead of the default map view.</p><h2 id="charts-renderer">Charts renderer</h2><p>The chart renderer, as you guessed it, displays content on a chart. Memri currently supports bar charts and line charts (more are on the roadmap). In following example, we'll plot <code>Person</code> items on a bar chart based on their height. This is easily achieved using the following CVU code.</p><!--kg-card-begin: html--><pre class="language-less">
<code>[renderer = chart] {
    chartTitle: "People by height"
    
    label: "{.firstName}"
    yAxis: {{.height}}
    
    hideGridlines: true
    yAxisStartAtZero: true
    
    sortProperty: height
    sortAscending: true
}
</code></pre><!--kg-card-end: html--><p>Currently all these settings can only be set via CVU. In the near future users can tweak these settings in the filter panel, to give even more control as a users views information.</p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://blog.memri.io/content/images/2020/07/Simulator-Screen-Shot---iPhone-11-Pro---2020-07-14-at-07.45.55.png" width="1125" height="2436" alt="Tutorial: Introduction to renderers"></div><div class="kg-gallery-image"><img src="https://blog.memri.io/content/images/2020/07/Simulator-Screen-Shot---iPhone-11-Pro---2020-07-14-at-07.40.55-1.png" width="1125" height="2436" alt="Tutorial: Introduction to renderers"></div><div class="kg-gallery-image"><img src="https://blog.memri.io/content/images/2020/07/Simulator-Screen-Shot---iPhone-11---2020-07-14-at-17.26.09.png" width="828" height="1792" alt="Tutorial: Introduction to renderers"></div></div></div></figure><p>Similar to the bar graph, we can create a line chart (or scatter chart, by not setting <code>lineWidth</code>) that displays the height vs age of a person using the following CVU.</p><!--kg-card-begin: html--><pre class="language-less">
<code>[renderer = chart.line] {
    chartTitle: "Height vs. Age"
    chartSubtitle: "A demo of dynamically graphing your data."

    lineWidth: 1
    
    xAxis: "{.age()}" /* Age is calculated based on the birth date */
    yAxis: "{.height}"
    label: "{.firstName}"
}
</code></pre><!--kg-card-end: html--><h2 id="general-editor">General editor</h2><p>The general editor is the editor that can display any item and allow a user to edit its fields and edges. In its simplest form the general editor displays one row for each property and allows a user to edit it using the most appropriate editor (e.g. a textfield for a string, or a checkbox for a boolean field).</p><p>The screenshots below show an <code>Address</code> (left) and an <code>IndexerRun</code> (right) rendered in the general editor. They both have a CVU that customizes how each is rendered. The general editor is broken into sections that group one or more fields or edges together. Sections can also be added that represent no fields or edges and draw something custom such as the map in the top of the address editor.</p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://blog.memri.io/content/images/2020/07/Simulator-Screen-Shot---iPhone-11-Pro---2020-07-14-at-09.42.18.png" width="1125" height="2436" alt="Tutorial: Introduction to renderers"></div><div class="kg-gallery-image"><img src="https://blog.memri.io/content/images/2020/07/Simulator-Screen-Shot---iPhone-11-Pro---2020-07-14-at-09.48.40.png" width="1125" height="2436" alt="Tutorial: Introduction to renderers"></div></div></div></figure><p>In our CVU we define a <code>layout</code> property that is an ordered collection of sections. Each section has a name that is used by default as the title of the section. The <code>fields</code> property determines which properties are included in the group, and <code>*</code> is used to render all the remaining fields. The <code>exclude</code> property tells the general editor to not render the field at all.</p><p>This is the CVU that produces the general editor for <code>Address</code>.</p><!--kg-card-begin: html--><pre class="language-less">
<code>[renderer = generalEditor] {
    layout: [
        { section: location, exclude: locationWasAutomaticLookupWithHash }
        { section: labels }
        { section: address, fields: street city state postalCode country }
        { section: other, fields: * }
        { section: dates }
    ]
    
    location: {
        showTitle: false
        
        Map {
            address: {{.}}
            minHeight: 150
            maxHeight: 150
        }
    }
}
</code></pre><!--kg-card-end: html--><p>Note that the labels and dates section are cascaded from the base general editor CVU which you can <a href="https://gitlab.memri.io/memri/ios-application/-/blob/dev/memri/cvu/defaults/renderer/generalEditor.cvu">find here</a>.</p><h3 id="more-customization">More customization</h3><p>Let's dive a bit deeper and explore how to customize the general editor even more. We'll look at the <code>Person</code> item and how it is <a href="https://gitlab.memri.io/memri/ios-application/-/blob/dev/memri/cvu/defaults/type/Person.cvu">defined</a> to render in the general editor.</p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://blog.memri.io/content/images/2020/07/Simulator-Screen-Shot---iPhone-11-Pro---2020-07-13-at-23.12.39.png" width="1125" height="2436" alt="Tutorial: Introduction to renderers"></div><div class="kg-gallery-image"><img src="https://blog.memri.io/content/images/2020/07/Simulator-Screen-Shot---iPhone-11-Pro---2020-07-13-at-23.13.03.png" width="1125" height="2436" alt="Tutorial: Introduction to renderers"></div><div class="kg-gallery-image"><img src="https://blog.memri.io/content/images/2020/07/Simulator-Screen-Shot---iPhone-11-Pro---2020-07-13-at-23.13.37-1.png" width="1125" height="2436" alt="Tutorial: Introduction to renderers"></div></div></div></figure><p>In addition to fields, the person editor heavily uses edges to display information about the person. The code example below has all the sections and many of them define one or more edges that are displayed. The <code>type</code> property tells the editor which type to add when the user wishes to add one or more items to the section while in edit mode. Edit mode is toggled by tapping the pencil icon in the top.</p><!--kg-card-begin: html--><pre class="language-less">
<code>[renderer = generalEditor] {
    layout: [
        { section: profilePicture }
        { section: labels }
        { section: names, fields: firstName lastName }
        { section: picturesOfPerson }
        { section: phoneNumbers, edges: hasPhoneNumber, type: PhoneNumber }
        { section: relationships, edges: relationship, type: Person }
        { section: addresses, edges: address, type: Address }
        { section: websites, edges: website, type: Website }
        { section: companies, edges: company, type: Company }
        { section: diets, edges: diet, type: Diet }
        { section: medicalConditions, edges: medicalCondition, type: MedicalCondition }
        { section: publicKeys, edges: publicKey, type: PublicKey }
        { section: onlineProfiles, edges: onlineProfile, type: OnlineProfile }
        { section: other, fields: * }
        { section: dates }
    ]

    ...
}
</code></pre><!--kg-card-end: html--><p>By default edges are displayed as bubble buttons showing their type or edgeType and the <code>computedTitle()</code>. However the default rendering of these can be overwritten, as can the default rendering of fields. An easy example is how the <code>starred</code> field is rendered not as a checkbox (which is the default for boolean fields), but with a button with a star on it instead. The following CVU code is responsible for that:</p><!--kg-card-begin: html--><pre class="language-less">
<code>starred {
    Action {
        press: star
    }
}
</code></pre><!--kg-card-end: html--><p>The name "starred" refers either to the field name (in this case) or to the name of the section (the example below). Below we render the OnlineProfile elements like regular editor rows. It's now very easy to customize it even further, for instance with a button that opens the website of that online profile.</p><!--kg-card-begin: html--><pre class="language-less">
<code>onlineProfiles {
    EditorRow {
        title: "{.type}"
    
        HStack {
            Text {
                text: "{.handle}"
            }
            
            /* Example! URL opening is not yet implemented */
            Button {
            	openView {
                    url: {{.url}}
                }
            }
        }
    }
}
</code></pre><!--kg-card-end: html--><p>In addition to overwriting how these edges are rendered right in the <code>Person</code> definition there's another way to do so: By cascading the definitions for the specific item type. In fact, the bubble buttons (or memri buttons as we call them) are not hardcoded, but defined in CVU for any item that does not have its own definition. You can find that fallback in <a href="https://gitlab.memri.io/memri/ios-application/-/blob/dev/memri/cvu/defaults/type/Any.cvu">any.cvu</a>.</p><p>As you can see in the screenshots above the address edges are rendered very differently as well. In fact, any item that is rendered in a general editor and has edges to Address items will render in that way. These definitions are not part of the <code>Person</code> definition, instead they are part of the <code>Address[]</code> <a href="https://gitlab.memri.io/memri/ios-application/-/blob/dev/memri/cvu/defaults/type/Address.cvu#L40">definition</a>. </p><h3 id="subview">SubView</h3><p>The <code>picturesOfPerson</code> section is the last special section we cover. It's special because it does not render any fields or specific edges. Instead it is rendered as a <a href="https://blog.memri.io/cvu-language-part-6/">SubView</a> that queries to load all the photos that contain this person. This is what its definition looks like:</p><!--kg-card-begin: html--><pre class="language-less">
<code>picturesOfPerson {
    title: "Photos of {.computedTitle()}"

    SubView {
        minHeight: 165
        
        view {
            defaultRenderer: thumbnail.horizontalgrid
            
            [datasource = pod] {
                query: "Photo AND ANY allEdges.targetItemID = {.uid}"
            }
            
            [renderer = thumbnail.horizontalgrid] {
                columns: 2
                edgeInset: 0
                allowBounce: false
            }
        }
        arguments: {
            toolbar: false
            searchbar: false
            readOnly: true
        }
    }
}
</code></pre><!--kg-card-end: html--><p>And with that we have a rich and dynamic viewer / editor for Persons in memri. You can apply these methods to CVUs you may make for a specific data type or application.</p><h2 id="roadmap">Roadmap</h2><p>More renderers are in the pipeline. Work is underway on the following renderers:</p><ul><li>Calendar renderer</li><li>Timeline renderer</li><li>Messages renderer</li><li>Various new chart renderers</li><li>Photo editor / viewer</li><li>Audio recorder / player</li><li>Video viewer</li><li>File viewers</li></ul><p>If you have the skills we welcome any help to add more renderers!</p><hr><blockquote>Check out <a href="https://discourse.memri.io/">the new Memri forum</a> where all Memri engineers are active to answer questions and participate in discussions. You can find all the Memri source code on <a href="https://gitlab.memri.io">the Memri gitlab</a>. </blockquote>]]></content:encoded></item><item><title><![CDATA[A dive into SubViews]]></title><description><![CDATA[This article introduces the SubView element of the CVU language and shows how the recursion it provides can be used.]]></description><link>https://blog.polis.global/cvu-language-part-6/</link><guid isPermaLink="false">637219fc0f4d8f0778c097c9</guid><category><![CDATA[cvu]]></category><dc:creator><![CDATA[Ruben Daniels]]></dc:creator><pubDate>Tue, 14 Jul 2020 12:06:00 GMT</pubDate><media:content url="https://blog.polis.global/content/images/2022/11/mirror.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.polis.global/content/images/2022/11/mirror.jpg" alt="A dive into SubViews"><p>The image at the top of this article shows a frame in which the same view is shown, with a frame in which again the same view is shown, ad infinitum. This is called <em>recursion. </em>Infinite recursion is generally not very useful, but a limited steps of views in views makes it easy to create a view out of a set of other views. This is where the <code>SubView</code> element comes in.</p><!--kg-card-begin: html--><div class="navbox">
    <h2>Part 6 in the series</h2>
    <p>This is the 6th article in a series introducing the memri browser and the cvu language — a platform that together with the memri pod gives you control over your information and your digital life. </p>
    <ul>
        <li><a href="https://blog.polis.global/cvu-language-part-1/">Co-create the interface you spend your life in!</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-2/">Tutorial: A list view for notes</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-3/">CVU Developer tools</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-4/">Cascading views</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-5/">Tutorial: A single item view</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-6/">A dive into SubViews</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-7/">Tutorial: Introduction to renderers</a></li>
    </ul>
</div><!--kg-card-end: html--><p></p><!--kg-card-begin: html--><div class="inline-image"><img src="https://blog.memri.io/content/images/2020/06/Simulator-Screen-Shot---iPhone-11-Pro---2020-06-03-at-09.01.26-2.png" style="max-height:600px;width:auto;float:right;margin:0 0 2em 2em" alt="A dive into SubViews">
    <p>In its simplest form a <code>SubView</code> lets you render another view inside a part of the containing view. This can be useful for instance to display a set of photos of a person on the page that renders the properties of the <code>Person</code> data item (see picture). The <code>SubView</code> allows you to specify any view properties such as the query to load, and buttons to display. Furthermore you can enable or disable the toolbar or the search bar.</p>
    <p>Lets walk through four other use-cases of the SubView element.</p>
</div><!--kg-card-end: html--><h3 id="toggle-between-showing-one-or-another-view">Toggle between showing one or another view</h3><p>The following example shows two different SubViews that can render an address. Based on the available content a view is chosen.</p><!--kg-card-begin: html--><pre class="language-less">
<code>VStack {
    SubView {
        show: {{ ._address[.label = "primary"] }}
        
        view {
            title: "Primary address"
            
            [datasource = pod] {
                query: "address uid={.address[primary = true].uid}"
            }
        }
    }
    SubView {
        show: {{ !._address[.label = "primary"] and .address.count }}

        view {
            title: "Secondary address"
            
            [datasource = pod] {
                query: "Address uid={.address.first.uid}"
            }
        }
    }
}
</code></pre><!--kg-card-end: html--><p>This example is a bit contrived because the query could be rewritten like this:</p><!--kg-card-begin: html--><pre class="language-less">
<code>query: "Address uid={(.address[primary = true] or .address.first).uid}"</code></pre><!--kg-card-end: html--><p>However it does illustrate the ability to change the presentation based on the content, and how to use a SubView for modularization.</p><h3 id="combine-multiple-views-in-a-dashboard">Combine multiple views in a dashboard</h3><p>When a user taps the title in the top of the screen, a menu is displayed that allows for saving the current view by giving it a name. </p><!--kg-card-begin: html--><img src="https://blog.memri.io/content/images/2020/06/Simulator-Screen-Shot---iPhone-11-Pro---2020-06-06-at-21.27.13.png" style="max-height:600px;width:auto" alt="A dive into SubViews">
<figcaption>Menu displayed when tapping on the title</figcaption><!--kg-card-end: html--><p></p><p>These views can be searched and labelled, and displayed as a list or in a grid just like any other data item in the memri browser. Using SubViews, it is possible to display a dynamic list of views (actually <code>Session</code> items) in a single view. For instance, you could create a list of views with exercise metrics rendered into charts. The following code would do just this:</p><p>The <code>{{.}}</code> means to select the data item of that list row, which in this list is the stored view (stored as <code>Session</code>).</p><h3 id="a-popup-to-pick-one-or-more-items-out-of-a-set">A popup to pick one or more items out of a set</h3><p>Using CVU actions, introduced in the <a href="https://blog.memri.io/cvu-language-part-5/">last article</a>, it is possible to configure a SubView to open inside a popup. The following example allows a user to add an address to the data item in the view that shows the button.</p><!--kg-card-begin: html--><pre class="language-less">
<code>.exerciseDashboard {
    [datasource = pod] {
        query: "Session and label = 'exercise-metrics'"
    }

    [renderer = list] {
        SubView {
            view: {{.}}
            viewArguments {
                readOnly: true
            }
        }
    }
}
</code></pre><!--kg-card-end: html--><!--kg-card-begin: html--><pre class="language-less">
<code>VStack {
    Button {
        press: openView {
            icon: "plus"
            renderAs: popup
            
            arguments {
                view {
                    title: "Add an Address"
                    editMode: true
                    defaultRenderer:list
                    
                    [datasource = pod] {
                        query: "Address"
                    }
                    
                    [renderer = list]{
                        press: [
                            link {
                                arguments {
                                    subject: {{item}}
                                    edgeType: address
                                }
                            }
                            closePopup
                        ]
                    }
                }
                viewArguments {
                    item: {{.}}
                }
            }
        }
    }
}
</code></pre><!--kg-card-end: html--><p>The above example renders a <code>Button</code> in a <code>VStack</code>. When the button is pressed it opens a popup with the <code>view</code> that's specified in the arguments. When the user presses on the list item in the popup, it adds the selected address to the dataItem and closes the popup.</p><p>Instead of defining the view in the press action, it's sometimes easier to just reference a view by its name and use arguments to make it dynamically fit your use case. This would change the button action to use <code>openViewByName</code> as you can see below:</p><!--kg-card-begin: html--><pre class="language-less">
<code>VStack {
    Button {
        press: openViewByName {
            icon: "plus"
            renderAs: popup
            
            arguments {
                name: choose-item-by-query
                viewArguments {
                    query: "Address"
                    type: Address
                    title: "Add an Address"
                    subject: {{.}}
                    edgeType: address
                }
            }
        }
    }
}
</code></pre><!--kg-card-end: html--><p>For those curious about the <em>"choose-item-by-query"</em> view, this is what it looks like:</p><!--kg-card-begin: html--><pre class="language-less">
<code>.choose-item-by-query {
    title: {{ title or "Choose a {type}" }}
    editMode: true
    
    editActionButton: toggleEditMode
    actionButton:
        addItem {
            arguments {
                type: {{type}}
            }
        }
        
    defaultRenderer: {{ renderer or "list" }}
    
    userstate: {
        selection: {{ selection }}
    }
    
    [datasource = pod] {
       query: "{query}"
    }
    
    [renderer = list]{
        press: [
            link {
                arguments {
                    subject: {{subject}}
                    edgeType: {{edgeType}}
                    distinct: {{distinct}}
                }
            }
            closePopup
        ]
    }
}

</code></pre><!--kg-card-end: html--><p>The named arguments in <code>viewArguments</code> used above, are used in the <em>"choose-item-by-query"</em> view definition as variables used in expressions such as <code>{{dataItem}}</code>.</p><hr><blockquote>Check out <a href="https://discourse.memri.io/">the new Memri forum</a> where all Memri engineers are active to answer questions and participate in discussions. You can find all the Memri source code on <a href="https://gitlab.memri.io">the Memri gitlab</a>. </blockquote><p>Continue to learn about <a href="https://blog.memri.io/cvu-language-part-7/">renderers</a> or pick a topic you want to dive in from the list below.</p><!--kg-card-begin: html--><div class="navbox">
    <h2>Continue to a next part in this series</h2>
    <p>This article is part of a series that introduces the Memri browser and the CVU language. Feel free to jump to another article as you make sense of the CVU language. </p>
    <ul>
        <li><a href="https://blog.polis.global/cvu-language-part-1/">Co-create the interface you spend your life in!</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-2/">Tutorial: A list view for notes</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-3/">CVU Developer tools</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-4/">Cascading views</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-5/">Tutorial: A single item view</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-6/">A dive into SubViews</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-7/">Tutorial: Introduction to renderers</a></li>
    </ul>
</div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Tutorial: A single item view]]></title><description><![CDATA[In this article you will learn to create a view for a single data item using the CVU language by creating a view that renders a note with a rich text editor.]]></description><link>https://blog.polis.global/cvu-language-part-5/</link><guid isPermaLink="false">637216b90f4d8f0778c097b1</guid><category><![CDATA[cvu]]></category><dc:creator><![CDATA[Ruben Daniels]]></dc:creator><pubDate>Tue, 14 Jul 2020 12:06:00 GMT</pubDate><media:content url="https://blog.polis.global/content/images/2022/11/download--3-.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.polis.global/content/images/2022/11/download--3-.jpeg" alt="Tutorial: A single item view"><p>In this tutorial we will create a view for notes with a rich text editor for editing the body of the note. We will introduce the <code>custom</code> renderer which enables you take full control of the render area for your view. We will also set up a context pane for a note and configure it with relevant actions. </p><blockquote><em>We are designing the CVU (pronounced as: c view) language. CVU stands for Cascading View. It’s a language that is easy to understand and allows you to control your view (or perspective) on your information. Think of it as the window through which you can see your information. The CVU language describes how you view your data, such as notes, emails, messages and photos.</em></blockquote><p>Follow this tutorial below, or jump to another part of this series to learn more about the CVU language.</p><!--kg-card-begin: html--><div class="navbox">
    <h2>Part 5 in the series</h2>
    <p>This is the 5th article in a series introducing the memri browser and the cvu language — that together with the memri pod gives you control over your information and your digital life. </p>
    <ul>
        <li><a href="https://blog.polis.global/cvu-language-part-1/">Co-create the interface you spend your life in!</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-2/">Tutorial: A list view for notes</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-3/">CVU Developer tools</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-4/">Cascading views</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-5/">Tutorial: A single item view</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-6/">A dive into SubViews</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-7/">Tutorial: Introduction to renderers</a></li>
    </ul>
</div><!--kg-card-end: html--><p>We're building a simple view for a note. The note has a <code>title</code> property which holds the description of the note. The <code>contents</code> property holds the body of the note as HTML. We'll define a view in the CVU language that will render the title in a <code>TextField</code> and the contents in a <code>RichTextField</code>. </p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://blog.memri.io/content/images/2020/06/ezgif.com-resize.gif" width="587" height="1209" alt="Tutorial: A single item view"></div></div></div><figcaption>A view for a single note that allows editing of the title and the body of the note</figcaption></figure><p>Let's create the basic cvu definition for a single note:</p><!--kg-card-begin: html--><pre class="language-less">
<code>Note {
    title: {{title}}
    editActionButton: toggleEditMode
    filterButtons: showContextPane
}
</code></pre><!--kg-card-end: html--><p>We'll set the title of the screen to the title of the note. The action button in the top right will toggle the edit mode on and off. Finally the <code>filterButtons</code> configure the buttons in the bottom right in the search area. They show a button that shows the context pane (see more about that below). </p><p>Next we'll configure the renderer for the view. In this case we use the <code>custom</code> renderer that allows us to fill the entire renderer area that sits between the top toolbar and the bottom search bar.</p><!--kg-card-begin: html--><pre class="language-less">
<code>Note {
    [renderer = custom] {
    
    }
}
</code></pre><!--kg-card-end: html--><p>The following cvu code creates a <code>TextField</code> and <code>RichTextField</code> to edit the title and content properties of the note. The first element in the custom view is a <code>VStack</code> which stacks its children vertically. With the <code>padding</code> and <code>spacing</code> properties we bring the elements into place.</p><!--kg-card-begin: html--><pre class="language-less">
<code>Note {
    [renderer = custom] {
        VStack {
            padding: 10
            spacing: 5

            TextField {
                value: {{.title}}
                hint: "Enter a title",
                color: lightInputText
                font: {{ setting('/user/gui/fontSize/heading/note') }} semibold
            }
            RichTextField {
                value: {{.contents}}
                color: inputText
                fontSize: {{ setting('/user/gui/fontSize/text/note') }} 
            }
        }
    }
}
</code></pre><!--kg-card-end: html--><p>The <code>TextField</code>'s value is set to the title property of the note that is loaded in this view. It has a hint message that shows when the title is empty and the color is set to a named color <code>lightInputText</code>. Lastly the font is set to an expression for the size of the font and the boldness is set to <code>semibold</code> which is in between regular and bold text. </p><p>The font expression fetches a setting. Settings in memri are paths that can occur anywhere in an expression and will fetch a value from the settings stored in the database. There are three kinds of settings:</p><ul><li><strong>User settings</strong> are available on every device of the same user</li><li><strong>Device settings</strong> are available on a specific device</li><li><strong>Default settings</strong> are like factory settings of the memri browser</li></ul><p>User and device settings can be set by the views and users directly. In this case the settings for <code>heading</code> is used in the user settings. Memri will first find a setting under <code>/user/gui/fontSize/heading/note</code> and if that is not set it will use the more general setting <code>/user/gui/fontSize/heading</code>. </p><p>Users can set their preferences in the settings area of memri:</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://blog.memri.io/content/images/2020/06/Screen-Shot-2020-06-08-at-9.10.16-PM-1.png" width="756" height="1635" alt="Tutorial: A single item view"></div></div></div><figcaption>Opening the settings pane of your memri</figcaption></figure><h2 id="a-user-defined-view">A user defined view</h2><p>Everyone uses their notes differently. You may never change font settings often, yet others may change them constantly to show others, or because they don't wear their glasses all of the time. Let us, for argument sake imagine that we are a user that wishes to change the font settings on a daily basis. We'll create a user view that alters the view we just defined to get what we want.</p><!--kg-card-begin: html--><pre class="language-less">
<code>/* User defined view */
Note {
    filterButtons: [
        setSetting {
            icon: plus
            arguments {
                path: "/user/gui/fontSize/text/note"
                value: {{ setting('/user/gui/fontSize/text/note') + 1 }}
            }
        }
        setSetting {
            icon: min
            arguments {
                path: "/user/general/ui/fontSize/text/note"
                value: {{ setting('/user/gui/fontSize/text/note') - 1 }}
            }
        }
    ]
}
</code></pre><!--kg-card-end: html--><p>With the above cvu we create a user defined view. As you may remember from the <a href="https://blog.memri.io/cvu-language-part-4/">cascading view article</a>, the user defined views always take priority over any other views. In this case, we add two buttons to the <code>filterButtons</code>. These are the buttons on the right bottom corner of the screen in the search bar. </p><p>The first button will display a + icon and when tapped will add one to the <code>headingSize</code> setting. The second button does the opposite and subtract one fro that setting.</p><p>In order to keep the user from create a size that is too big or too small we can use the <code>min()</code> and <code>max()</code> functions to keep the change in their bounds:</p><pre><code class="language-less">value: {{ min(30, setting('/user/gui/fontSize/text/note') + 1) }}
value: {{ max(1, setting('/user/gui/fontSize/text/note') - 1) }}</code></pre><hr><blockquote><em>Check out <a href="https://discourse.memri.io/">the new Memri forum</a> where all Memri engineers are active to answer questions and participate in discussions. You can find all the memri source code on <a href="https://gitlab.memri.io/">the Memri gitlab</a>.</em></blockquote><p>Continue to learn about <a href="https://blog.memri.io/cvu-language-part-6/">sub views</a> or pick a topic you want to dive in from the list below.</p><!--kg-card-begin: html--><div class="navbox">
    <h2>Continue to a next part in this series</h2>
    <p>This article is part of a series that introduces the Memri browser and the CVU language. Feel free to jump to another article as you make sense of the CVU language. </p>
    <ul>
        <li><a href="https://blog.polis.global/cvu-language-part-1/">Co-create the interface you spend your life in!</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-2/">Tutorial: A list view for notes</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-3/">CVU Developer tools</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-4/">Cascading views</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-5/">Tutorial: A single item view</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-6/">A dive into SubViews</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-7/">Tutorial: Introduction to renderers</a></li>
    </ul>
</div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[CVU Developer tools]]></title><description><![CDATA[<p>Every language has a learning curve, and even though the CVU language is much simpler than using HTML and CSS, there is still new things to know. In order to make writing CVU easy we have create a web-based developer tool that comes with syntax highlighting and auto-complete for CVU</p>]]></description><link>https://blog.polis.global/cvu-language-part-3/</link><guid isPermaLink="false">63720d260f4d8f0778c09774</guid><category><![CDATA[cvu]]></category><dc:creator><![CDATA[Ruben Daniels]]></dc:creator><pubDate>Tue, 14 Jul 2020 12:04:00 GMT</pubDate><media:content url="https://blog.polis.global/content/images/2022/11/Screen-Shot-2020-07-13-at-8.40.32-PM.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.polis.global/content/images/2022/11/Screen-Shot-2020-07-13-at-8.40.32-PM.png" alt="CVU Developer tools"><p>Every language has a learning curve, and even though the CVU language is much simpler than using HTML and CSS, there is still new things to know. In order to make writing CVU easy we have create a web-based developer tool that comes with syntax highlighting and auto-complete for CVU so that you don't have to read the docs every time you want to write some code. Furthermore the Memri app automatically updates the view you are editing, every time you save it. Making it easy and quick to trial and error new look and feels for the view you are creating.</p><p></p><!--kg-card-begin: html--><div class="navbox">
    <h2>Part 3 in the series</h2>
    <p>This is the 3rd article in a series introducing the memri browser and the cvu language — that together with the memri pod gives you control over your information and your digital life. </p>
    <ul>
        <li><a href="https://blog.polis.global/cvu-language-part-1/">Co-create the interface you spend your life in!</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-2/">Tutorial: A list view for notes</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-3/">CVU Developer tools</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-4/">Cascading views</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-5/">Tutorial: A single item view</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-6/">A dive into SubViews</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-7/">Tutorial: Introduction to renderers</a></li>
    </ul>
</div><!--kg-card-end: html--><p></p><h2 id="installation">Installation</h2><p>The Memri developer tool lives in the <a href="https://gitlab.memri.io/memri/browser-application">browser-application repository</a> and must be installed separately in order to use it. Follow the following steps to get the developer tool installed on your system. Make sure you have <a href="https://git-scm.com/downloads">git</a> and <a href="https://nodejs.org/en/download/">npm</a> installed.</p><pre><code class="language-bash">$ git clone https://gitlab.memri.io/memri/browser-application.git
$ cd browser-application
$ npm install
$ npm run start</code></pre><p>Open <code>http://localhost:9000</code> in your favorite browser (we recommend <a href="http://brave.com/">Brave</a>) to open the developer tool. Make sure your pod is running and the memri app has connected at least once so that the default database is uploaded to your pod. Check out <a href="https://blog.memri.io/tutorial-setting-up-memri/">this tutorial</a> if you still have to set everything up.</p><h2 id="customize-a-view">Customize a view</h2><p>On the left you will see a list of CVU definitions. The definitions are grouped by selector. There are <em>default</em> CVU definitions that are read-only and can be opened to easily copy and paste instructions that you may wish to override. The <em>user</em> defined CVU files are editable. </p><figure class="kg-card kg-image-card"><img src="https://blog.memri.io/content/images/2020/07/devtool.png" class="kg-image" alt="CVU Developer tools"></figure><p>In this example we'll alter how notes are displayed. If you are following along, open Memri in the simulator or <a href="https://discourse.memri.io/t/apply-for-alpha-access-to-the-ios-app-on-testflight/45">on your phone</a> and make sure it is connected to your running pod. Click the plus button to add a new CVU definition. Add a selector for a list of <code>Note</code> items like so:</p><pre><code class="language-css">Note[] {
    
}</code></pre><figure class="kg-card kg-image-card"><img src="https://blog.memri.io/content/images/2020/07/Screen-Shot-2020-07-13-at-9.53.52-PM.png" class="kg-image" alt="CVU Developer tools"></figure><p>Whenever you hit Cmd-S (or Ctrl-S) or press the save button in the top right corner the CVU definition is saved to your pod (you are asked to give it a name). If you have the list of notes open at that time, it will refresh and render taking into account the new CVU you have added.</p><p>We'll change the title and set the default renderer to thumbnail as a demonstration:</p><pre><code class="language-css">Note[] {
    title: "Hello world!"
        
    defaultRenderer: thumbnail
}</code></pre><figure class="kg-card kg-image-card"><img src="https://blog.memri.io/content/images/2020/07/Screen-Shot-2020-07-13-at-9.54.15-PM.png" class="kg-image" alt="CVU Developer tools"></figure><p>Now let's do something a bit more fun. Let's open the <code>Note</code> definition from the defaults and copy the selector that says <code>[renderer = list]</code> and paste it into our user defined cvu. It should look like this:</p><figure class="kg-card kg-image-card"><img src="https://blog.memri.io/content/images/2020/07/Screen-Shot-2020-07-13-at-10.07.35-PM.png" class="kg-image" alt="CVU Developer tools"></figure><p>Let's customize this view. We all have personal tastes, and I like to have more notes displayed in one view so that I don't have to scroll so much. So let's move the date to the right top corner. I would also like the star to move to the right and use less padding and smaller fonts across the board. That's easy to change like this:</p><figure class="kg-card kg-image-card"><img src="https://blog.memri.io/content/images/2020/07/Screen-Shot-2020-07-13-at-10.16.32-PM.png" class="kg-image" alt="CVU Developer tools"></figure><p>While editing I simply hit Cmd-S every time to see the changes so I could easily tweak it exactly the way I want it to look. Because these customizations cascade over the default CVUs (see more about cascading in the next article [TODO LINK]) I still get all the default functionality and can simply change what I need. </p><p>Remember CVU is not just for defining the looks, but also for interaction. It is possible to create a complete application by connecting different CVU views to each other. The developer tool is a great way to build small functionality in no time.</p><h2 id="debug-console">Debug console</h2><p>As you are writing CVU, you will inadvertently make mistakes. The debug console that is built-in to the IOS app (and soon the browser based app) gives you immediate feedback on what's going on.</p><!--kg-card-begin: html--><div class="inline-image"><img src="https://blog.memri.io/content/images/2020/06/Simulator-Screen-Shot---iPhone-11-Pro---2020-06-03-at-09.01.03-1.png" style="max-height:600px;width:auto;float:right;margin:0 0 2em 2em" alt="CVU Developer tools">
<p>The debug console appears in the bottom of the screen when an error or warning occurs. It displays these warnings and errors in a list so that it's easy to get notified and resolve issues while writing your view. The console also displays informational notifications.</p>
<p>The image here on the right shows the console while rendering a Person. It tells us it queried a person based on their unique id (i.e. uid). However there are also two warnings. It seems we have made a spelling mistake in two places in our CVU definition. Those are easy to fix!</p></div><!--kg-card-end: html--><h2 id="schema-browser">Schema browser</h2><p>The last tool in the CVU toolbox is the schema browser, which you can browse online at <a href="https://schema.memri.io">schema.memri.io</a> or run on <a href="https://gitlab.memri.io/memri/schema">your local machine</a>. The schema browser lets you inspect the hierarchy of items, their properties and edges they can have. </p><blockquote>Memri uses the term "item" for something in the knowledge graph (aka "node" or an "entity"). These items are connected to each other via "edges", or "relationships". Thus building a graph of interconnected knowledge about the world. </blockquote><p>The schema browser works as a reference as you build your CVU. Note that you can add edges of any type to your item and are not restricted to the edge hierarchy. However we recommend submitting a merge request to update the schema in order for the memri search engine to be able to find things along the edges you want to use.</p><figure class="kg-card kg-image-card"><img src="https://blog.memri.io/content/images/2020/07/Screen-Shot-2020-07-14-at-7.17.02-AM.png" class="kg-image" alt="CVU Developer tools"></figure><hr><blockquote>Check out <a href="https://discourse.memri.io/">the new Memri forum</a> where all Memri engineers are active to answer questions and participate in discussions. You can find all the memri source code on <a href="https://gitlab.memri.io">the Memri gitlab</a>. </blockquote><p>Continue to learn about <a href="https://blog.memri.io/cvu-language-part-4/">cascading views</a> or pick a topic you want to dive in from the list below.</p><!--kg-card-begin: html--><div class="navbox">
    <h2>Continue to a next part in this series</h2>
    <p>This article is part of a series that introduces the Memri browser and the CVU language. Feel free to jump to another article as you make sense of the CVU language. </p>
    <ul>
        <li><a href="https://blog.polis.global/cvu-language-part-1/">Co-create the interface you spend your life in!</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-2/">Tutorial: A list view for notes</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-3/">CVU Developer tools</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-4/">Cascading views</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-5/">Tutorial: A single item view</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-6/">A dive into SubViews</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-7/">Tutorial: Introduction to renderers</a></li>
    </ul>
</div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Cascading views]]></title><description><![CDATA[This article walks you through what "cascading" in cascading views actually means and how it empowers users to control their user interface.]]></description><link>https://blog.polis.global/cvu-language-part-4/</link><guid isPermaLink="false">63720eb10f4d8f0778c09782</guid><category><![CDATA[cvu]]></category><dc:creator><![CDATA[Ruben Daniels]]></dc:creator><pubDate>Tue, 14 Jul 2020 12:03:00 GMT</pubDate><media:content url="https://blog.polis.global/content/images/2022/11/cascading-explained-resfix-copy-4.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.polis.global/content/images/2022/11/cascading-explained-resfix-copy-4.png" alt="Cascading views"><p>Cascading is a method well known from cascading style sheets, or CSS, which is a language used in modern web browsers to describe how HTML is rendered when a website is displayed. </p><p>The word <em>cascade</em> in <em>Cascading Views</em> describes the process of applying various views one after the other in such a way that the resulting view contains the definitions of each view it cascaded from. During this process, definitions that are defined by multiple views are either merged or overwritten by the view with the highest priority. As you can see in the picture above, the user defined views always have the highest priority, its definitions always overwrite the lower views. This is what gives the user control, without the need to start creating views from scratch.</p><!--kg-card-begin: html--><div class="navbox">
    <h2>Part 4 in the series</h2>
    <p>This is the 4th article in a series introducing the memri browser and the cvu language — that together with the memri pod gives you control over your information and your digital life. </p>
    <ul>
        <li><a href="https://blog.polis.global/cvu-language-part-1/">Co-create the interface you spend your life in!</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-2/">Tutorial: A list view for notes</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-3/">CVU Developer tools</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-4/">Cascading views</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-5/">Tutorial: A single item view</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-6/">A dive into SubViews</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-7/">Tutorial: Introduction to renderers</a></li>
    </ul>
</div><!--kg-card-end: html--><p></p><p>Let's walk through loading notes in the Memri browser as we worked on in the last article. We'll go over the different views that are selected and which cascade to create the final view that is rendered. Please check out the image at the top of the article as an illustration to the description below.</p><h3 id="session-view">Session View</h3><p>When you navigate in the Memri browser you either go back to a previous view in your browsing session, or you add a new view to the session. For instance by clicking on a button to load all notes:</p><!--kg-card-begin: html--><pre class="language-less">
<code>[session = all-notes] {
    [view] {
        title: "All Notes"
        
        [datasource = pod] {
            query: "Note"
        }
    }
}
</code></pre><!--kg-card-end: html--><p>In the example above we define a session called "all-notes" that only contains one <em>session view</em>. The view sets the title to "All Notes" and specifies a datasource. In this case the datasource connects to the user's pod with a simple query that fetches all Note data items. </p><h3 id="selector-views">Selector Views</h3><p>Based on the query and its result, the Memri browser will determine what data is being displayed and use that to determine which additional views to load; the <em>selector views</em>. In our notes example the <code>Note[]</code> selector is found.</p><blockquote>In the future the CVU language will also support more specific selectors such as <code>Note[location = USA]</code> for all notes written in the USA. Currently that is not supported yet.</blockquote><p>All values of these <em>selector views</em> are used as a basis for the values in the session view. The values of the <em>session view</em> overwrite any values of the <em>selector views</em>.</p><h3 id="renderer-view">Renderer View</h3><p>A definition for a renderer outside of a view defines the default values for that renderer. These values are used when other values are not specified in any other view. Here's an example of a list renderer definition:</p><!--kg-card-begin: html--><pre class="language-less">
<code>[renderer = list] {
    slideLeftActions: delete
    press: openView
    longPress: select
}
</code></pre><!--kg-card-end: html--><p>This definition describes that by default sliding to the left in a list shows the delete button (as is common in IOS) and pressing opens the data item in their view. A long press will toggle the the list's edit mode and select the pressed item.</p><h3 id="user-defined-view">User Defined View</h3><p>As mentioned above, the user is able to overwrite any values set by the default views in their own view definitions. User defined views always have priority for any property it sets. For instance the following user defined renderer definition defines that the slide right actions always include both the <code>schedule</code> and <code>markAsDone</code> actions.</p><!--kg-card-begin: html--><pre class="language-less">
<code>[renderer = list] {
    slideRightActions: schedule markAsDone
}
</code></pre><!--kg-card-end: html--><h3 id="cascaded-view">Cascaded View</h3><p>The result is a cascaded view that has a combination of all properties of the views that cascaded into it. This view is then used to display data by the Memri browser.</p><hr><blockquote>Check out <a href="https://discourse.memri.io/">the new Memri forum</a> where all Memri engineers are active to answer questions and participate in discussions. You can find all the Memri source code on <a href="https://gitlab.memri.io">the Memri gitlab</a>. </blockquote><p>Continue to learn about the <a href="https://blog.memri.io/cvu-language-part-5/">creating a single item view</a> or pick a topic you want to dive in from the list below.</p><!--kg-card-begin: html--><div class="navbox">
    <h2>Continue to a next part in this series</h2>
    <p>This article is part of a series that introduces the Memri browser and the CVU language. Feel free to jump to another article as you make sense of the CVU language. </p>
    <ul>
        <li><a href="https://blog.polis.global/cvu-language-part-1/">Co-create the interface you spend your life in!</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-2/">Tutorial: A list view for notes</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-3/">CVU Developer tools</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-4/">Cascading views</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-5/">Tutorial: A single item view</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-6/">A dive into SubViews</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-7/">Tutorial: Introduction to renderers</a></li>
    </ul>
</div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Tutorial: A list view for notes]]></title><description><![CDATA[In this article you will learn the basic concepts in the CVU language by creating a view that renders a list of notes in the memri browser.]]></description><link>https://blog.polis.global/cvu-language-part-2/</link><guid isPermaLink="false">63720c590f4d8f0778c09766</guid><category><![CDATA[cvu]]></category><dc:creator><![CDATA[Ruben Daniels]]></dc:creator><pubDate>Tue, 14 Jul 2020 12:02:00 GMT</pubDate><media:content url="https://blog.polis.global/content/images/2022/11/Screen-Shot-2020-06-05-at-3.18.39-PM-2.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.polis.global/content/images/2022/11/Screen-Shot-2020-06-05-at-3.18.39-PM-2.png" alt="Tutorial: A list view for notes"><p>Memri comes with the CVU (pronounced as: c view) language that enables you to control how you view and use your information. CVU (c-view) stands for <em>Cascading Views</em>. It’s a language that is easy to understand and allows you to control your view (or perspective) on your information. Think of it as a language that forms the window through which you can see your information. With the CVU language you can describe how you want to view data such as notes, emails, messages and photos. </p><p>Memri comes with a default set of CVU definitions that you can use on the most common data types (e.g. note, person, address, photo). Each user can also write their <em>own</em> views. We hope that there will eventually be many views created by an open community of user enthusiasts and professional view makers. We invite everyone to contribute to <a href="https://gitlab.memri.io/memri">the Memri gitlab</a>. </p><!--kg-card-begin: html--><div class="navbox">
    <h2>Part 2 in the series</h2>
    <p>This is the 2nd article in a series introducing the Memri browser and the cvu language — that together with the Memri pod gives you control over your information and your digital life. </p>
    <ul>
        <li><a href="https://blog.polis.global/cvu-language-part-1/">Co-create the interface you spend your life in!</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-2/">Tutorial: A list view for notes</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-3/">CVU Developer tools</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-4/">Cascading views</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-5/">Tutorial: A single item view</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-6/">A dive into SubViews</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-7/">Tutorial: Introduction to renderers</a></li>
    </ul>
</div><!--kg-card-end: html--><p></p><h2 id="getting-started">Getting started</h2><p>In order to get Memri running on your system <a href="https://blog.memri.io/tutorial-setting-up-memri/">follow this tutorial</a>.</p><h2 id="why-another-language">Why another language?</h2><p>We want CVU to be accessible and easy to use for non-programmers. We started using the JSON format, but quickly noticed that the many syntax errors made that a non-intuitive choice. However, the most important reason for designing CVU is to give the user control over their own user interface. So we needed an easy-to-write script that could quickly load at runtime into Memri. We made the views <em><a href="https://blog.memri.io/cvu-language-part-4/">cascade</a></em> in order to allow the user to easily modify their views.</p><h2 id="displaying-your-data-in-a-renderer">Displaying your data in a renderer</h2><p>The screenshot below shows the Memri browser displaying a set of example notes. The Memri browser has a navigation bar at the top with several buttons. In the bottom there is a search bar with another set of buttons. All these buttons can be set in a CVU definition. This gives maximum control over the way you view your information.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://blog.memri.io/content/images/2020/06/Simulator-Screen-Shot---iPhone-11-Pro---2020-06-03-at-06.26.16-1.png" width="1125" height="2436" alt="Tutorial: A list view for notes"></div></div></div><figcaption>Viewing notes in the Memri browser</figcaption></figure><p>Between the navigation in the top and the search in the bottom there is a list that renders one row for each note. We call the logic responsible for displaying this the <em>renderer</em>. This specific renderer is the <em>list renderer</em> and as you can deduce, it displays information in a list.</p><h2 id="define-your-view">Define your view</h2><p>Let's dive in and create a view to render the notes in the list view.</p><p>In order to define how notes are rendered, let's create a new cvu file called "note.cvu" and add a selector for a list of notes. For illustration purpose we also add the selector for a single note:</p><!--kg-card-begin: html--><pre class="language-less">
<code>/* A view for a single note */
Note {

}

/* A view for multiples notes */
Note[] {

}
</code></pre><!--kg-card-end: html--><p>Like in CSS, selectors select the content to which the instructions are applied. In the case of CSS these instructions are styling applied to HTML elements. In the case of CVU these are rendering instructions applied to data items. See <a href="https://gitlab.memri.io/memri/ios-application/-/wikis/List-of-supported-CVU-definitions">this wiki article</a> for a complete list of supported definitions.</p><h3 id="configuring-the-ui">Configuring the UI</h3><p>Let's start by configuring the user interface around the main rendering area; the top navigation and search area.</p><!--kg-card-begin: html--><pre class="language-less">
<code>Note[] {
	/* Set the title of the view, displayed in the top navigation */
    title: "All Notes"
	/* This text is displayed when there are no notes */
    emptyResultText: "There are no notes here yet"
    
	/* The action button on the right of the title (+ in the screenshot) */
    actionButton: addDataItem
   	/* The set of buttons displayed in the search area */
    filterButtons: showStarred toggleFilterPanel
}
</code></pre><!--kg-card-end: html--><p>The names of the actions used for <code>actionButton</code> and <code>filterButtons</code> refer to pre-defined "actions". For a <a href="https://gitlab.memri.io/memri/ios-application/-/wikis/List-of-Actions">full list of actions click here</a>. Actions can optionally take arguments in order to control their behavior. Let's add an argument to <code>addDataItem</code> where we specify the defaults for a new note. We'll also change the icon from the default + sign to one that is specific for adding a new note.</p><!--kg-card-begin: html--><pre class="language-less">
<code>actionButton:
    addDataItem {
        icon: "text.badge.plus"
        
        arguments {
            template {
                type: Note
                title: "Untitled Note"
            }
        }
    }
</code></pre><!--kg-card-end: html--><p>Note that all arguments are named. In this case the argument name <code>template</code> is used to define the properties of the default note. The type property points to the type of the element that is added. You can check out <a href="https://schema.memri.io">the schema explorer</a> for a full list of all supported types and properties. We are actively growing this list and will accept all quality contributions.</p><blockquote><em>The CVU language is very forgiving. It it is compatible with JSON, however as a user you can leave out quotes, commas, brackets ([ and ]), and even colons (:) when defining objects. Newlines, commas, or semi-colons (;) can be used to separate statements from each other.</em></blockquote><h3 id="rendering-instructions">Rendering instructions</h3><p>We can define how to render our data, in this case our notes, in various renderers. Let's start with a definition for the list renderer.</p><!--kg-card-begin: html--><pre class="language-less">
<code>Note[] {
    /* Sets the list as the default renderer when notes are viewed */
    defaultRenderer: list

    [renderer = list] {
    
    }
}
</code></pre><!--kg-card-end: html--><p>By putting the list renderer selector <code>[renderer = list]</code> inside the definition for a list of notes we are telling the Memri browser how to render notes in a list. Inside the renderer definition we can add properties to control the list renderer as well as a description of how to render a single note in the list. We do this by using a set of predefined UI elements (you can find <a href="https://gitlab.memri.io/memri/memri/-/wikis/Available-UI-Elements-and-their-properties">a full list here</a>)</p><!--kg-card-begin: html--><pre class="language-less">
<code>[renderer = list] {
    slideRightActions: schedule

    VStack {
        alignment: left
        padding: 12 20 0 20
        
        Text {
            text: "{.title}"
            font: 18 semibold
            color: #333
            padding: 0 0 3 0
        }
        Text {
            text: "{.content}"
            removeWhiteSpace: true
            maxChar: 100
            color: #555
            font: 14 regular
        }
        Text {
            text: "{.dateModified}"
            font: 11 regular
            color: #888
            padding: 8 0 12 0
        }
        Divider
    }
}
</code></pre><!--kg-card-end: html--><p>The <code>slideRightActions</code> property of the list is set to the schedule action which will enable the user to schedule a reminder (or task) for the note. You can specify one or more actions that are rendered as buttons when the user slides right.</p><p>The first UI element is a <code>VStack</code> which renders its children (three <code>Text</code> elements and one <code>Divider</code> element) vertically stacked. Its content is aligned to the left and it has some padding. Similar to CSS, in CVU <code>padding</code>, <code>margin</code> and similar properties are specified by a number in the clockwise order of the top, right, bottom and left edges.</p><p>The <code>Text</code> elements render text content as specified in the text property. You may notice that these text properties have quotes around them (i.e. they are "Strings") with curly braces ({ }) in them. These curly braces tell the Memri browser to execute whatever is inside them as an expression. In this case it is a very simple expression that fetches a property (for instance the title property) from the current data item (e.g. Note) that is being displayed. See <a href="https://gitlab.memri.io/memri/ios-application/-/wikis/CVU-Expression-Language">this wiki article</a> for an overview of the CVU expression language.</p><p>And with that we  have a working view of our notes in the Memri browser! </p><h2 id="the-filter-panel">The filter panel</h2><!--kg-card-begin: html--><div class="inline-image">
<img src="https://blog.memri.io/content/images/2020/06/Simulator-Screen-Shot---iPhone-11-Pro---2020-06-07-at-11.09.30.png" style="max-height:600px;width:auto;float:right;margin:0 0 2em 2em" alt="Tutorial: A list view for notes">
    <p>The filter panel can be toggled using the filter button and is usually placed in the right bottom corner of the search bar. The screenshot shows both the toggle button and the filter panel.</p>
    <p>The filter panel gives the user control over:</p>
    <ul>
        <li>Choosing which renderer to display the content in</li>
        <li>Setting any renderer specific settings</li>
        <li>Sorting property</li>
        <li>The query used to generate the view <em>(Not yet implemented)</em></li>
    </ul>
</div><!--kg-card-end: html--><h2 id="add-a-filter-button-to-your-cvu-definition">Add a filter button to your CVU definition</h2><p>The filter panel can be toggled using the <code>toggleFilterPanel</code> action that displays as a button. It is usually placed in the right bottom corner of the search bar by adding it to the <code>filterButtons</code> in the CVU definition.</p><!--kg-card-begin: html--><pre class="language-less">
<code>Note[] {
    /* The set of buttons displayed in the search area */
    filterButtons: showStarred toggleFilterPanel
}
</code></pre><!--kg-card-end: html--><h2 id="configure-sort-fields">Configure sort fields</h2><p>A user can filter on all fields of a data item, using the filter panel. The <code>sortFields</code> property of a view determines which fields are shown in the top of the list and in which order they appear.</p><!--kg-card-begin: html--><pre class="language-less">
<code>Note[] {
    /* These are the fields that the user can sort on */
    sortFields: title dateModified dateAccessed dateCreated
}
</code></pre><!--kg-card-end: html--><h2 id="switching-between-renderers">Switching between renderers</h2><p>A user can easily switch between various renderers to display their content using the filter panel. For instance they can switch to rendering the notes in a grid as thumbnails, or show them on a map based on where the notes were written. </p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://blog.memri.io/content/images/2020/06/Simulator-Screen-Shot---iPhone-11-Pro---2020-06-03-at-06.54.59-1.png" width="1125" height="2436" alt="Tutorial: A list view for notes"></div><div class="kg-gallery-image"><img src="https://blog.memri.io/content/images/2020/06/Simulator-Screen-Shot---iPhone-11-Pro---2020-06-03-at-06.57.55-1.png" width="1125" height="2436" alt="Tutorial: A list view for notes"></div></div></div><figcaption>Using the filter panel to switch between the list and the grid renderer</figcaption></figure><h3 id="cvu-for-the-thumbnail-grid">CVU for the thumbnail grid</h3><p>Similar to the list renderer, the thumbnail renderer for notes in the above screenshot is rendered using the following CVU code:</p><!--kg-card-begin: html--><pre class="language-less">
<code>[renderer = thumbnail] {
    VStack {
        minWidth: 10
        padding: 0 0 5 0
        alignment: center
        
        Text {
            text: "{.content}"
            maxChar: 100
            color: #333
            background: #fff
            border: #efefef 2
            cornerRadius: 10
            padding: 10
            font: 9 regular
            minHeight: 80
            align: lefttop
        }
        Text {
            text: "{.title}"
            padding: 5 0 0 0
            color: #333
            font: 12 semibold
            maxChar: 100
        }
        Text {
            text: "{.dateModified}"
            font: 9 regular
            color: #888
            padding: 3 0 0 0
        }
    }
}

</code></pre><!--kg-card-end: html--><hr><blockquote>Check out <a href="https://discourse.memri.io/">the new Memri forum</a> where all Memri engineers are active to answer questions and participate in discussions. You can find all the Memri source code on <a href="https://gitlab.memri.io">the Memri gitlab</a>. You can find the <code>Note.cvu</code> file, as discussed in this article <a href="https://gitlab.memri.io/memri/ios-application/blob/refactor/memri/view/defaults/type/Note.cvu">here</a>. </blockquote><p>Continue to learn about the <a href="https://blog.memri.io/cvu-language-part-3/">developer tools</a> or pick a topic you want to dive in from the list below.</p><!--kg-card-begin: html--><div class="navbox">
    <h2>Continue to a next part in this series</h2>
    <p>This article is part of a series that introduces the Memri browser and the CVU language. Feel free to jump to another article as you make sense of the CVU language. </p>
    <ul>
        <li><a href="https://blog.polis.global/cvu-language-part-1/">Co-create the interface you spend your life in!</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-2/">Tutorial: A list view for notes</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-3/">CVU Developer tools</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-4/">Cascading views</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-5/">Tutorial: A single item view</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-6/">A dive into SubViews</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-7/">Tutorial: Introduction to renderers</a></li>
    </ul>
</div><!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Co-create the interface you spend your life in!]]></title><description><![CDATA[What if your data, now mined by others, would be in your own hands instead? ]]></description><link>https://blog.polis.global/cvu-language-part-1/</link><guid isPermaLink="false">637209510f4d8f0778c09753</guid><category><![CDATA[cvu]]></category><dc:creator><![CDATA[Ruben Daniels]]></dc:creator><pubDate>Tue, 14 Jul 2020 12:00:00 GMT</pubDate><media:content url="https://blog.polis.global/content/images/2022/11/IMG_0033-1.jpg" medium="image"/><content:encoded><![CDATA[<h3 id="what-if-your-data-now-mined-by-others-would-be-in-your-own-hands-instead">What if your data, now mined by others, would be in your own hands instead?</h3><img src="https://blog.polis.global/content/images/2022/11/IMG_0033-1.jpg" alt="Co-create the interface you spend your life in!"><p></p><p>I recently read a statistic that we spend <a href="https://www.independent.co.uk/life-style/fashion/news/screen-time-average-lifetime-years-phone-laptop-tv-a9508751.html">34 years of our lives</a> behind devices. Whether accurate or not, we all recognize that we spend an awful lot of time on our mobile phone. We easily get pulled into many directions using our device. It makes you wonder if there is a better way. Can we make our automation more automatic? Can we interact less with our devices for mundane things, leaving time for more the more meaningful?</p><blockquote><strong>TL;DR</strong><br>A Memri “pod”, or <em>P</em>ersonal<em> O</em>nline<em> D</em>atastore, is where you can store your digital information in a private manner. You have complete control over access to your pod. Your pod is also where you can enable machine learning algorithms to extract knowledge from you data. This knowledge is used to make life easier and more enjoyable, and have it return the value it represents to you. The Memri browser mobile app provides a user interface that you can control to maximize the usefulness of your data and its resulting knowledge. The CVU language (c-view or Cascading Views) is an easy to use language that combines the best parts of HTML and CSS in one language, and is designed to give users control over how they view and interact with their own information.</blockquote><p>First we have to understand why our devices are so full of distractions, and why they are so addicting. In a word, advertising. The amount of profit going to websites, apps, and ad agencies is directly correlated with the amount of time you spend looking at your device (and thus their ads). The more they know about you, the more these ads can be targeted, further increasing profits. Privacy is a direct impediment to their bottom line, addiction a revenue source.</p><p>We also use screens because our data is housed in silos (different clouds) that restrict your access to that data. Usually you can only use an app or website to view your data in their silo. Your information cannot be linked between silos, however. The disturbing thing is that Big Tech does link data about you across many of these silos. They build deep insights about you to sell you more things and influence you in other ways.</p><p>This is a toxic dynamic that our society has yet to find a good antidote for. With Memri we are working to provide the foundation of a healthier digital ecosystem. It starts with restoring privacy. What has long been considered an important <a href="https://en.wikipedia.org/wiki/Right_to_privacy">human right</a> in our physical lives <em>must</em> be extended to include our <em>digital lives</em>.</p><p>By using a Memri pod, you bring the knowledge insights of Big Tech into your own domain, prevent them from tracking your data, and most importantly you gain in time, attention, and interaction to spend with loved ones, passions, and nature.</p><h2 id="the-memri-browser">The Memri browser</h2><p>The <em>Memri</em> browser — the software we are developing — is a data browser that acts as an interface with which you can sort, search, and navigate through your data.</p><p>The Memri browser works like a web browser. Like browser tabs the Memri browser has <em>sessions</em>, and like web pages, the Memri browser displays <em>views</em>. </p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://blog.memri.io/content/images/2020/06/Simulator-Screen-Shot---iPhone-11-Pro---2020-06-03-at-06.26.16-2.png" width="1125" height="2436" alt="Co-create the interface you spend your life in!"></div><div class="kg-gallery-image"><img src="https://blog.memri.io/content/images/2020/06/Simulator-Screen-Shot---iPhone-11-Pro---2020-06-03-at-06.57.55-2.png" width="1125" height="2436" alt="Co-create the interface you spend your life in!"></div><div class="kg-gallery-image"><img src="https://blog.memri.io/content/images/2020/06/Simulator-Screen-Shot---iPhone-11-Pro---2020-06-07-at-10.22.30.png" width="1125" height="2436" alt="Co-create the interface you spend your life in!"></div></div></div><figcaption>Various screenshots of the memri browser</figcaption></figure><p>All your data is stored on your Memri pod, or <em>P</em>ersonal<em> O</em>nline<em> D</em>atastore. This is an (<a href="https://gitlab.memri.io/memri/pod">open source</a>) server that you can run in your home or in a cloud you choose. Only you can access the data on your pod as it is private by design, using the latest security technology. We will dive into pod security in another article. </p><p>Memri makes navigating through your data easy because it is aware of the connections between the pieces of knowledge (or <em>memris) </em>of your data. Your Memri pod runs small programs (or <em>indexers</em>) that extract knowledge from your data and store them as memris in the database that only you control.</p><p>For instance it can detect that your brother is in a picture and make a connection between the picture and the knowledge it has about your brother. That way you can easily find the picture, not only when you search for pictures of your brother, but also when you more generally search for pictures with all your siblings. Another example is connecting a receipt with a product you bought. You can now easily find the receipt, <em>and</em> do things like view a chart of all expenses of that type of product. </p><blockquote>We sometimes call the Memri browser a data browser or a semantic browser because it uses the connections between data elements to help you interpret the meaning ("semantics") behind the data. While browsing, it is easy to ask Memri to suggest ways to navigate to new perspectives on related information. For instance when looking at a picture of a friend at a soccer game, you can easily jump to photos with that friend at a time when you went swimming together.</blockquote><hr><p>Now that you have your bearings, let's dive in and start taking a look at <a href="https://blog.memri.io/cvu-language-part-2/">the CVU language</a> that puts control of the user interface into your hands.</p><!--kg-card-begin: html--><div class="navbox">
    <h2>Continue to a next part in this series</h2>
    <p>This article is part of a series that introduces the Memri browser and the CVU language. Feel free to jump to another article as you make sense of the CVU language. </p>
    <ul>
        <li><a href="https://blog.polis.global/cvu-language-part-1/">Co-create the interface you spend your life in!</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-2/">Tutorial: A list view for notes</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-3/">CVU Developer tools</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-4/">Cascading views</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-5/">Tutorial: A single item view</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-6/">A dive into SubViews</a></li>
        <li><a href="https://blog.polis.global/cvu-language-part-7/">Tutorial: Introduction to renderers</a></li>
    </ul>
</div><!--kg-card-end: html--><p></p><p><br></p>]]></content:encoded></item><item><title><![CDATA[How we incorporate a democratic organization]]></title><description><![CDATA[In this post we describe our process for incorporating a democratic organization. What requirements we have, and what we learned from our research thus far! ]]></description><link>https://blog.polis.global/incorporating-a-democratic-organization/</link><guid isPermaLink="false">5eb1623d460d8805173d0da5</guid><category><![CDATA[Governance]]></category><category><![CDATA[legal]]></category><dc:creator><![CDATA[Bram van der Lecq]]></dc:creator><pubDate>Tue, 05 May 2020 13:49:00 GMT</pubDate><media:content url="https://blog.polis.global/content/images/2020/05/incorporate_ontario-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.polis.global/content/images/2020/05/incorporate_ontario-1.jpg" alt="How we incorporate a democratic organization"><p>We want to incorporate ‘memri’. This open source software project is creating a solution for storing and using data in a totally private manner. It aims to empower people by unlocking the full potential of their data. It does so by storing the data in a private way so that other parties, including memri, can’t use, sell or see any of the data. Your data remains truly yours. <br></p><p>This focus on autonomy, which is one of the core values of memri, can also be found in the way memri organizes itself. It’s an organization that wants to be democratically governed and where each stakeholder group can have an influence on the decision making process. To make that possible we’ve created a set of requirements for our incorporation.<br></p><p>With those requirements we went to talk with legal experts in different jurisdictions. In this blog you’ll find what requirements we have and why, what we learned from comparing jurisdictions and what our next steps will be.</p><p>Please note that these findings are our interpretations of the answers we received. If you want to incorporate a democratic organization, make sure to check with experts of that jurisdiction!  </p><h2 id="jurisdiction-shortlist">Jurisdiction shortlist</h2><p>After consulting multiple legal experts, four jurisdictions made the shortlist. These jurisdictions are the ones we want to compare:</p><ul><li>Netherlands (Years and years of experience with farmer cooperatives)</li><li>Italy (Famous for its centuries of corporative culture which today are still being taught at schools, especially in the north of Italy)</li><li>Switzerland (Its government is open to new initiatives and making those work)</li><li>Estonia (Big fans of cryptocurrency, and even have digital citizenship, making it easy to form new companies via electronic means)<br></li></ul><p>To make our search for the right jurisdiction easier we have created a number of selection criteria we believe to be essential for having an organization that can be governed in a balanced and democratic manner. <br></p><p>In the following paragraphs you will find the different tables in which the answers given by experts are summarized for each jurisdiction.</p><h2 id="requirements-for-incorporation">Requirements for incorporation</h2><h3 id="multi-stakeholder">Multi-Stakeholder</h3><p>For a democratic organization to work properly there needs to be a balance, so that it is impossible for one small group to take over power, but it is possible for them to have some influence on the decisions that are being made so they do not get overpowered by the others. <br>To make it possible to find such a balance in the democratic governance of our organization, the structure we choose should allow memri to define different stakeholder groups. That way memri can enable customers or investors by having a voice in decisions that affect multiple stakeholder groups., without them being able to take over complete control of the organization. <br><br></p><p>Identifying these different stakeholder groups (e.g. Worker-Owners, Customers, Producers and Investors) and define different <em>rights </em>and <em>obligations </em>for each of these groups via the bylaws of the organization is therefore one of the most important requirements. <br>It allows the organization and its leaders to be held responsible for having fiduciary responsibilities (they are bound ethically to act in the other's best interests) towards the interest of all stakeholders and the common good which the organization pursues.</p><p><br>It should be possible to define the rights for each stakeholder group in the bylaws of the organization in such a way that <em>within </em>the stakeholder group one person/member equals one vote, but that the influence of the group as a whole on the outcome would be different for each stakeholder group. For example: 10% of the decision is determined by the outcome of a vote in the Customer stakeholder group, 10% by the producers, 10% by the investors, 20% by its members and the last 50% in the Worker-Owner stakeholder group. <br></p><p>In the table below you can see the responses of the different lawyers.</p><figure class="kg-card kg-image-card"><img src="https://blog.polis.global/content/images/2020/05/image.png" class="kg-image" alt="How we incorporate a democratic organization"></figure><h3 id="one-person-one-vote">One person one vote</h3><p>Within each of these groups, one person equals one vote. It should be impossible to buy more influence. By doing that we try to prevent hostile takeovers, or hostile influences on the decision making processes within the organization. We believe that’s essential for any democratic organization.</p><figure class="kg-card kg-image-card"><img src="https://blog.polis.global/content/images/2020/05/image-1.png" class="kg-image" alt="How we incorporate a democratic organization"></figure><h3 id="bylaws">Bylaws</h3><p>For our organization it should be possible to define policies in the Bylaws via an electronic solution, so that it is possible for us to define certain processes, or details in a way that they can’t be changed without an organization wide vote. Some examples of policies we want to create are:</p><ul><li>Define stakeholder groups rights and obligations</li><li>How can they cast their vote</li><li>How “heavy”  should the vote of the stakeholder group weigh?</li><li>On what topics can each stakeholder group vote?</li><li>Define voting thresholds</li><li>Process for changing or proposing policies</li><li>Policies for the board</li><li>Process for how the board is selected</li><li>Define the rights of the board</li><li>Define the responsibilities of the board</li><li>Process for how the organization could overthrow decisions being made by the board</li><li>Possibly restrict the board to make certain type of decisions on their own</li></ul><p><br>It should be possible to store and alter these bylaws via an electronic solution, apps, virtual meeting or similar. It should be allowed to have the Bylaws written in English and use that English format as leading. (In Estonia the official language has to be Estonian, and because we don’t speak Estonian, it’s easy to see how that could cause a lack of transparency and cause problems in the future.)</p><figure class="kg-card kg-image-card"><img src="https://blog.polis.global/content/images/2020/05/image-15.png" class="kg-image" alt="How we incorporate a democratic organization"></figure><p></p><h2 id="the-board">The Board</h2><p>In most jurisdictions a board is a requirement. We want our organization to be highly decentralized, and enable Worker-Owners to make decisions on their own. We want to push as much power to the members as is possible and practical. Then again, board members could be held responsible for any  actions of the organization and should therefore have some power to change decisions made by members of the organization. It’s important to have a good balance between the two for it to be successful. Therefore we are looking for a form in which we can at least to some extent limit the powers of the board, for example via the bylaws.</p><p>With the use of electronic means of communication there is an opportunity for participation in the governance process between remote individuals in a way that has not been possible in the past. The organization will use this to enable a direct or <a href="https://en.wikipedia.org/wiki/Liquid_democracy">delegative democracy</a> for as many governance actions as possible.</p><p>The board will have certain rights and responsibilities, but can, if necessary, be corrected by a large majority (close to 100%) of the organization.</p><figure class="kg-card kg-image-card"><img src="https://blog.polis.global/content/images/2020/05/image-7.png" class="kg-image" alt="How we incorporate a democratic organization"></figure><h2 id="different-shares">Different Shares</h2><p>We want to be able to use different types of shares in order to be able to receive funding and share dividends with investors, founders and employees. Those shares will be divided into  Voting Shares, and Non-Voting Shares.</p><h3 id="voting-shares-founder-shares">Voting Shares: “Founder” Shares</h3><p>We want to have the possibility to provide founders and early employees to get remunerated in part by shares that give them the right to a part of the future profits of the organization. <br><br><strong>Requirements for founder shares</strong>:</p><ul><li>One-person-one-vote/share</li><li>The conditions of receiving founder shares need to be determined via by-laws or contracts</li><li>The dividend received over founder shares needs to be determined via the by-laws or via a members decision during the general meeting</li><li>The conditions of selling founder shares need to be determined via by-laws or contracts</li></ul><p>Note: The structure should not be focused on selling the organization off to external investors down the line.</p><figure class="kg-card kg-image-card"><img src="https://blog.polis.global/content/images/2020/05/image-8.png" class="kg-image" alt="How we incorporate a democratic organization"></figure><h3 id="voting-shares-member-shares">Voting Shares: Member Shares</h3><p>Anyone should have the possibility to become a member by paying a fee. That way one person receives a share that also gives them a voting right on specific topics, and on which they could receive dividends. The amount of votes one has is limited to one per person, however the amount of dividends one would receive will be based on the contribution someone made. <br><br></p><p><strong>Requirements:</strong></p><ul><li>One-person-one-vote/share</li><li>Should not be seen as securities, but should allow the organization to acquire additional funding.</li><li>Shares should be able to be bought by paying a minimum fee.</li><li>It should be possible to deposit additional funds, increasing the potential dividends, not increasing the influence on decision making.</li><li>Should be possible to pay dividend on member/voting shares</li><li>Conditions of receiving &amp; owning voting shares should be determined via by-laws or contracts, so that they:</li><li>Can only be sold back to the cooperative, and not on the open market.</li><li>Can’t be owned if a member is not part of the organization anymore. E.g. departing member’s would not long have any voting right, but could still receive a dividend.</li><li>It should be possible to ‘give’ these shares to members as part of remuneration</li><li>It should be possible to decide on the size of the dividends via a general meeting.</li></ul><p></p><figure class="kg-card kg-image-card"><img src="https://blog.polis.global/content/images/2020/05/image-12.png" class="kg-image" alt="How we incorporate a democratic organization"></figure><h4 id="non-voting-shares-funding-shares-for-investors">Non-Voting Shares: Funding shares for Investors</h4><p>We want to be able to receive funding from non-members by selling non-voting shares to capital providers. <br><strong>Requirements for investor shares</strong>:</p><ul><li>Preferably it would be possible to determine the conditions of funding shares for investors via the by-laws.</li><li>It should be possible to pay dividend on Funding shares</li><li>It should be possible to decide on the height of the dividends via a general meeting.</li></ul><figure class="kg-card kg-image-card"><img src="https://blog.polis.global/content/images/2020/05/image-13.png" class="kg-image" alt="How we incorporate a democratic organization"></figure><h3 id="globally-operating-distributed-workforce">Globally operating &amp; Distributed Workforce</h3><p>The organization needs to be able to operate, sell software and hire globally. General meetings / votes should not have to take place in the same <em>physical </em>location (or it needs to be possible via proxy).</p><p>We want to prevent administrative troubles for our employees. The jurisdiction we incorporate should make it possible to do that in such a way that we can sell our product all over the world, hire employees from everywhere, preferably in a way in which they do not get taxed in multiple countries. It should be simple and easy to understand for employees.</p><p>The organization will include worker-owners from many countries in the world. It will most probably not establish a legal entity in most of those jurisdictions. It should be able to offer consistent and homogeneous relationship terms to these worker-owners, regardless of the legal jurisdiction in which they reside.<br></p><figure class="kg-card kg-image-card"><img src="https://blog.polis.global/content/images/2020/05/image-14.png" class="kg-image" alt="How we incorporate a democratic organization"></figure><h3 id="decision-making">Decision Making</h3><p>In general, decisions will be made in a democratic manner. Not in all situations will this lead to having an official vote,-; however some topics do require that. Those topics will be written down in the by-laws.</p><h4 id="decisions-that-need-to-be-made-by-all-stakeholders-with-voting-rights"><strong>Decisions that need to be made by all Stakeholders with voting rights</strong></h4><p>Topics that need to be decided by all stakeholder groups that have voting rights via the General Meeting, or alternative means are, for now, the following:</p><ul><li>Height of dividend paid</li><li>Choosing the board</li><li>Changes to the by-laws<br><br><br><br><br></li></ul><h2 id="next-steps">Next steps</h2><p>Based on these requirements we’ll go back to our external legal advisor and see if we can find the right jurisdiction for us. Currently we are wondering if a structure in which a Cooperative that acts as a holding company for a ‘normal’  Limited company would allow us to have both Worker-Owners and in which we can also attract funds from external investors via the Limited company, without those investors having an influence on what happens  in the holding company. We will share any new developments, and if you want to be kept up to date, please subscribe to our newsletter! <br>If you have any questions feel free to reach out via Bram.van.der.lecq@polis.global. <br></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[Uncle Nawm’s community forest in Thailand]]></title><description><![CDATA[The story and lessons of a community in Thailand that fought to establish community forests in a monocrop desert. ]]></description><link>https://blog.polis.global/community-forests-thailand/</link><guid isPermaLink="false">5e4421b6460d8805173d0d29</guid><category><![CDATA[Nangu]]></category><category><![CDATA[Foodforest]]></category><dc:creator><![CDATA[Francisco Grau]]></dc:creator><pubDate>Wed, 12 Feb 2020 16:16:39 GMT</pubDate><media:content url="https://blog.polis.global/content/images/2020/02/Screenshot-2020-02-11-at-16.15.27.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.polis.global/content/images/2020/02/Screenshot-2020-02-11-at-16.15.27.png" alt="Uncle Nawm’s community forest in Thailand"><p>In an apparently endless monocrop dessert in Thailand there is a visionary group of communities that woke up to the destruction of their forests and took action to save them from loggers. Decades later these cherished forests provide abundant seasonal harvests of wild products to the villagers and are the home to great diversity (including king cobras). Protecting and managing these forests was made possible by great leadership and constant community support.  In this article we explore the story of these forests and the lessons shared by one of the community leaders, Uncle Nawm.</p><h2 id="the-fall-and-rise-of-a-community-forest">The fall and rise of a community forest</h2><p></p><p>Deep in the countryside of Thailand, the community of Khao Din and their neighbours stand out as 100,000 acres of community forests contrast with the endless sea of monocrops surrounding them. These communities were established by a wave of migrants that settled in the 1960s in a land full of lush and bountiful forests. Initially life was very abundant, with trees becoming timber and plenty of forest products to harvest, eat and trade. As the years went by, most of the forest was cut down and substituted with industrial monocrops. The community eventually became dependent on fluctuating markets of rice and cane sugar. By the 1980s the once abundant communities were struggling with scarcity and rising social issues as they became one of the poorest districts in Thailand.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh3.googleusercontent.com/BpzJ7fAHNPBKwp711j1JxvrR9GPYi3vPiy9wWh6Eo3Ue9F-tNop2DKPp62vnUu6tJvN7tJWbGZ7kiNfNqZZfOGb7J8x9A6b4Q9mP-Z8cwSl1Dr1kBKTwwirB43jkf4Woh3Vr7uc" class="kg-image" alt="Uncle Nawm’s community forest in Thailand"><figcaption>Notice the line of community forest in the horizon contrasting with the industrial monocrops.&nbsp;</figcaption></figure><p>During the 1980’s a community leader, affectionately known as Uncle Nawm became aware of a plan to privatize one of the last forests in his community. The land grab was organized by a questionable alliance between a local well-off family, a city businessman and local government officials. Uncle Nawm with the support of the local community denounced the fraud taking place and together reclaimed the public forest even facing gunpoint threats! Eventually the villagers won and the forest was officially declared a community property.</p><p>In 1986 the NGO Save the Children came in support of the community and made them aware of how their lifestyle had been directly determined by the health of the forest. Protecting their community forest and slowly establishing small agroforestry systems in their land, the community shifted again to produce food and building materials for their own use as a priority and then selling surplus products in the local market. </p><p>Three decades later, some villagers continue to practice the legacy of the agroforestry training in the form of diversified integrated farming. I visited a couple of sisters who own a successful mushroom farm amongst fruit trees, Uncle Nawm’s tropical fruit orchard by a fish pond and a diversified family farm with mango trees, rice, ducks, fish, shrimp and rats (yes, farmed rats). Although agroforestry seems to be the main activity for only a few, everyone in the village benefits from the protection and management of the community forest. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh6.googleusercontent.com/rp6mzbA6-Q60oO-4YDwzXoxrKoRLn4ragSkzbQjYQQrYs-ew5nMxFl5Lp9YnVVJ666ME90DCmCUYPXj89YjTm8mKk1LlpIeR686P4JM20JcATStz6NlAk_Arqmn3Y-6S5NRWfzs" class="kg-image" alt="Uncle Nawm’s community forest in Thailand"><figcaption>Integrated farm with multiple crops and rat breeding!</figcaption></figure><h2 id="managing-the-commons">Managing the commons</h2><p></p><p>The community forest provides a supplementary income to the local community members and even to neighboring communities. There are defined harvest seasons for bamboo shoots, wild mushrooms and the tender leaves of “sweet vegetable tree”. During the harvest season, local community members can freely harvest these products, while members of neighboring communities have to pay a daily entrance fee to the forest. The harvest is sold to middlemen that wait at the forest entrance and pay a small fee per kilogram directly to the community representatives in addition to what they pay to the harvesters. Volunteers keep strict records of the people entering the forest to harvest, the amounts harvested, the payments in entrance fees and the middlemen’s commissions. During the harvest season the community can generate around USD $10,000 that is used mainly to pay uniforms, food and transport for the local voluntary patrols that ensure that no one is illegally harvesting. Patrols are composed by groups of 5 local villagers that volunteer for one day a month.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh5.googleusercontent.com/wvqPzOc5gdo11HKwoM8Q-u8fLNgz18RNUxqjeglK9GIqBwFKQoRfRln1o6mfCqyau52r-HUSEic1hB0MbvfoJbdqhJahNmoUY31HWDkNluwtvNUP9fSE3AF5tQJmVDAD9nfZuKw" class="kg-image" alt="Uncle Nawm’s community forest in Thailand"><figcaption>This is the day entry pass every person gets at the entrance to the forest during harvest season&nbsp;</figcaption></figure><p>All the rules and regulations to manage the forest are democratically established in a monthly village assembly. I had the privilege of joining Uncle Nawm for the monthly meeting were agroforestry, a children’s party, a university research on traditional practices, a women’s empowerment project and a pension fund were all discussed with almost 100 villagers in attendance.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh3.googleusercontent.com/o6ooyHHpvnkQq83COHTMOOSenML49cA4pzKQRk3Inot6Xq8uZ_CY4H1tRUhs5xtbLqBMNlw_1WIs3sl-2mmFemijg5h46fkIwkz6nrW2TYCH-nKXSFqYfqgM-IrnVcpyB4wMF1s" class="kg-image" alt="Uncle Nawm’s community forest in Thailand"><figcaption>Uncle Nawm, Mr. Pien (the interpreter) and Francisco Grau at the village town meeting</figcaption></figure><p>In the last two years climate change brought unseen droughts and high winds that damaged the precious “sweet vegetable trees” and other wild harvest crops. As a result, the community decided to suspend harvesting seasons and give the forest a chance to recover. I asked Uncle Nawm if they had tried to plant trees for human consumption in the community forest and therefore increase the diversity and productivity. They did planted other trees in the past but interestingly, those trees did not survive, only the ones that naturally propagate grew strong.</p><h2 id="the-example-propagated">The example propagated</h2><p></p><p>Neighboring communities from other six sub-districts were inspired by the establishment of the first community forest in Khao Din and went ahead to establish their own. As a result, nine different community forests now cover 100,000+ acres and give thousands of people access to harvest seasonal products. </p><p>The management of community commons expanded to establish a series of common water reservoirs. During the rainy season the level of a network of reservoirs rises and temporary canals connect them as a network. With that in mind they chose one lake that does not completely dry during the summer and banned fishing from it. The purpose is to keep a “seed bank” of fish that can swim back to smaller reservoirs during the rainy season when the seasonal canals connect. At first, some community members that opposed the measure and people from neighboring villages kept trying to fish there. An organized response from the community combined with fines eventually deterred the renegades and changed the local culture. Nowadays, if a village assembly makes a decision that affects others communities, like a harvest ban, the message is communicated to the leaders of surrounding villages. The local leaders then use megaphones in the village center to spread the message and let it propagate by word of mouth. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh5.googleusercontent.com/7leY4tI4OVGmlCE_mHeeCM1w28RlLElBrufuz-r8M_aeBimlK9luVK1S2jJCg26t_eKkzQhwIMGfsxnXCVSVcrdbjaUj6-Sf9rM-8qQPo96vSb-6R1sh80LG7pUSj3Ros7e4Yos" class="kg-image" alt="Uncle Nawm’s community forest in Thailand"><figcaption>Uncle Nawm's agroforestry farm</figcaption></figure><h2 id="persisting-challenges">Persisting challenges</h2><p></p><p>Many of the villagers still depend on rice fields as their primary source of income. Unsurprisingly many remain poor. With the help of Japanese cooperation and the leadership of Uncle Nawm, they created a farmers’ association that operates a rice mill microfactory where farmers can store their rice at a very affordable price. The project included five different rice mills, each one operated by different communities. Today only one remains in operation. The main reason according to Uncle Nawm is that the teams set up to manage them were unprepared for the collective governance dynamics and ultimately became too inefficient to remain competitive. The only one microfactory that remains open went through a crisis after three democratically elected managers stole money and brought it to near bankruptcy. Uncle Nawm, had to bring the bad news to the community and saw no other option but to close the operations. Nonetheless, the community insisted to keep it open, appointed Uncle Nawm’s daughter as the new general manager and restructured the operation. Today the rice mill stores and processes small farmers’ rice in almost charitable terms, charging barely enough to break even. <br></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh4.googleusercontent.com/5X-A1myRsNev99UvhgPDBwP0Z-cohQIwrBblXmuiunsKIpy7Kl3LoOAe95KkpiZfTT9ggl2xAsrjH8HcG_yUk9xA8svZfizaT3eU3nsbJfnJWPFRq-yBrCnDoOOR6rovGh981fw" class="kg-image" alt="Uncle Nawm’s community forest in Thailand"><figcaption>Community rice mill microfactory</figcaption></figure><p>Despite the rice mill supporting small farmers, decades of agroecology workshops, nine community forests and the impressive management of the commons by the villages, people are still struggling to make a living from the land. The younger generations are migrating to the city in search for better paying jobs. Small farmers struggle to get a good price for their products. It seemed that for most of the villagers, the forests were only capable of supplementing their economy and not sustaining it.</p><h2 id="lessons-from-uncle-nawm">Lessons from Uncle Nawm</h2><p></p><p>I learned about the power of good leadership by hearing Uncle Nawm’s stories and witnessing the great reputation and respect he got from other villagers. I saw how a small group of committed people was able raise awareness on the importance of protecting community forests and act on it. They stood up against threats and challenges that seemed impossible by keeping their conviction and unity.  The community history also shows how other small group of people, with selfish and immoral intentions, brought several community projects to the ground. </p><p>During a feast offered by Uncle Nawm’s family I asked for advice for Nangu. With no hesitation he said that every project based on agriculture and forests needs a good market. If there is no place to sell the products the initiative will fail. This reminded me of Nangu’s strong focus to reach eco ethical markets. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh5.googleusercontent.com/S3NyA2pCINnnuTP4iSUIFXWWl56YR6cXkQqtMFmxo2q7KzAhcdD1Rti0vGhkOBHTNOEjsqZQPzqE-Wx0mwYiAJy5Rt8MsGVdVSaWwevLVgjo1Y7hqiUqVSMlvh2q4rXdgtEmGt0" class="kg-image" alt="Uncle Nawm’s community forest in Thailand"><figcaption>Feast prepared by Uncle Nawm's family. Notice the green "sweet vegetable tree" and neem sprouts.</figcaption></figure><p>The second advice was the need of a committed leader with the capability to convince instead of forcing decisions on others. He continued: to convince people every leader must understand that there are three kinds of people. </p><p>1. The energetic and proactive that act fast. You want to involve them first.</p><p>2. The skeptical who either wait and see what happens or straight up oppose you.</p><p>3. Those who go with the flow. Neutral people. They could be good or bad for your cause. </p><p>He continued: to convince people it is necessary to make them understand what is in for them. They must understand the benefits from the initiative, otherwise they will lose interest and withdraw their support. </p><p>His advice was both simple and sobering. His life’s work shows how blending passion and dedication can yield results that benefits entire communities for several generations. Thank you Uncle Nawm for your open heart and example to the world!</p>]]></content:encoded></item><item><title><![CDATA[New year, New Stakeholder groups!]]></title><description><![CDATA[We've been working on identifying and defining the different stakeholder groups within Polis for quite some time. While working on this we realized that identifying Stakeholder groups is not so hard. The hard part is defining the different rights these groups have.]]></description><link>https://blog.polis.global/new-year-new-stakeholder-groups/</link><guid isPermaLink="false">5e214eee460d8805173d0d09</guid><category><![CDATA[Governance]]></category><dc:creator><![CDATA[Bram van der Lecq]]></dc:creator><pubDate>Fri, 17 Jan 2020 06:08:51 GMT</pubDate><media:content url="https://blog.polis.global/content/images/2020/01/pasted-image-0.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.polis.global/content/images/2020/01/pasted-image-0.png" alt="New year, New Stakeholder groups!"><p>Okay, to be honest, identifying and defining the different stakeholder groups within Polis was something we’ve been working on for quite some time. While working on this we realized that identifying Stakeholder groups is not so hard. The hard part is defining the different rights these groups have. <br><br><strong>Why did we bother?</strong></p><p>The biggest reason for us to identify the different stakeholder groups is to allow us to define specific rights for each group. By doing so we try to make sure that there is a healthy balance within the system, so that different stakeholder groups can be represented and have an influence on decisions without overpowering the other stakeholders. There are numerous examples of big corporate companies where this balance has been distorted, and where investors or shareholders influence the decisions in such a way that the outcome is only beneficial for their group, and not for the employees, local communities or environment. </p><p>Having these different stakeholder groups allows us to give each group specific rights for things like benefits, voting rights, hiring process, access to systems, and many more. This allows us to further specify the level of influence and benefits specific stakeholder groups have within the ecosystem. We believe this is necessary to create a system that is balanced and where power doesn’t get centralized. <br></p><p><strong>What Stakeholder groups are there? </strong><br>In the future we most likely will expand the amount of stakeholder groups we have so that others, such as investors and users, can be represented in there as well. Currently we have identified three different stakeholder groups: <br></p><figure class="kg-card kg-image-card"><img src="https://lh4.googleusercontent.com/9n99fpTw8-C5UMMetwh719MZpArL0v2wVhIx1uEClGMIgKzDQkWE7lK7jYc_WTdE2Wj6-5q5cdlGXq1L1k6DpE3ETZmf08x8QxFqfk-UfxU6A-AwUyg4O2ygsN4sTZtqjOkiJDPX" class="kg-image" alt="New year, New Stakeholder groups!"></figure><p><strong>The Contributor (CO)</strong></p><p>The Contributor can be anyone who is working with Polis as a consultant or does specific, time-limited, work on a project. It isn’t their intention to fully join the organization long-term and become a voting member; however, their advice is invited and desired. Their relationship with our organization is usually expected to be temporary.<br>Contributors can have voting rights for a small subset of issues related to their task/roles, and can’t vote on our Constitutional Policies. On the other hand, their advice on all issues is invited, &amp; valued.</p><p><strong>The Aspiring Worker-Owner (Aspiree)</strong></p><p>An Aspiring Worker-Owner has the intention to become a permanent Worker-Owner in the near future. To become a Worker-Owner, the Aspiring Worker-Owner needs to complete a transition period, which allows each of the Polis Worker-Owners to find out if the aspiring member has the essential technical, social and democratic-governance skills to become a valuable participant to our organization on a long-term basis.</p><p>Aspiring Worker-Owners can have voting rights for a subset of issues that significantly affect their task/roles, but can’t vote on constitutional policies. On the other hand, their advice on all issues is invited, &amp; valued.</p><p>When an Aspiring Worker-Owner joins the organization the team and that person will formulate the terms of their transition period. If the Aspiring Worker-Owner completes the transition period, they can be nominated to become a Worker-Owner. </p><p><strong>Worker-Owner (WO)</strong></p><p>The Worker-Owners are the driving force of Polis. They intend to have long-term engagement, and are committed to the long-term success of the organization, they actively participate in the democratic processes and take initiative to improve our procedures &amp; organizational culture.</p><p>The Worker-Owners have voting rights on democratic decisions that pertain to their team and to the larger work environment of the organization; e.g. hiring new Worker-Owners, adopting company policies, and other community wide issues that are not the domain of other stakeholder groups.<br></p><p>(Note that the description of the roles is copied from the <a href="https://github.com/Acro-polis/constitution/blob/master/StakeholderPolicy.md">Stakeholder Policy</a> in our Constitution on the 2nd of January 2020. For the latest version make sure to click the link)   </p><p><strong>How to become a member of a Stakeholder group</strong></p><p>For both the Aspiring Worker-Owner &amp; the Contributor, the teams can decide who to hire. They have to collaborate with them and will use their team budget to hire them.</p><p>When an Aspiring Worker-Owner or Contributor is nominated by their team to become a Worker-Owner, the team creates a proposal and share that with the rest of the organization. All Worker-Owners of the organization can then cast their vote to approve the nomination of the Aspiring Worker-Owner. (for full and most up to date version of this process see the <a href="https://github.com/Acro-polis/constitution/blob/master/BecomingWorkerOwnerPolicy.md">Becoming A Worker-Owner Policy</a>)<br><br><strong>Challenges we’ve had in this process</strong></p><p>While working on this policy, we quickly realized that differentiating and assigning rights to the different stakeholder groups relates to all other policies as well, which made us realize more and more that we need to clarify different policies as well. Some of them are completed by now, e.g. how each stakeholder group can leave polis (in)voluntarily and some will need more work in the future so that we can define the differences for each stakeholder group, e.g. consequences for remuneration, having shares and other benefits.<br><br><strong>Challenges we still have</strong></p><p>Having the different stakeholder groups makes it easier for us to differentiate between benefits &amp; rights for each of the groups. However, currently we do not have a clear method for defining what “level” of decision making is required for certain decisions. We’ll need to create a framework that provides clarity about that. <br><br>In the coming months we will most likely see new Stakeholder groups emerge. This will require updates to policy and could affect the other roles as well. We’ll have to be aware of this and make sure that the differences are clearly defined so that everyone can understand what is expected from them and what rights they have. </p><p>Besides the challenges we’re aware of, we will probably learn other things once we have more experience with setting the Transition terms, onboarding new members, letting teams take initiative in hiring new Contributors or Aspiree’s, and many more. Once we know what those lessons are, we will definitely share them again!<br></p>]]></content:encoded></item><item><title><![CDATA[Navdanya - Biodiversity heroes of India]]></title><description><![CDATA[Navdanya is an Indian organization that promotes seed diversity conservation, ecological farming and fair trade. They have established a network of almost 3 million farmers across India and a world reputation for standing against biotech giants and GMO seeds. ]]></description><link>https://blog.polis.global/navdanya/</link><guid isPermaLink="false">5e1d5418460d8805173d0cb7</guid><category><![CDATA[Nangu]]></category><dc:creator><![CDATA[Francisco Grau]]></dc:creator><pubDate>Tue, 14 Jan 2020 05:52:28 GMT</pubDate><media:content url="https://blog.polis.global/content/images/2020/01/Navdanya-1.png" medium="image"/><content:encoded><![CDATA[<img src="https://blog.polis.global/content/images/2020/01/Navdanya-1.png" alt="Navdanya - Biodiversity heroes of India"><p>A look into Navdanya, an Indian organization that fights for seed diversity conservation, farmers’ rights, ecological farming practices and women empowerment. Lead by the notorious Dr. Vandana Shiva they focus on education, research, activism, soil science, fair trade and community support. The article explores the workings of their three organizational branches: Earth University, Navdanya Foundation and Navdanya Store.</p><h2 id="navdanya">Navdanya</h2><p></p><p>Navdanya is an Indian organization led by Dr. Vandana Shiva.  Their work revolves around native seed conservation, promoting agro ecological farming practices, education, women empowerment, fair trade and most notably, advocacy against industrial farming, in particular monocrops, agrochemicals, GMO seeds and biopiracy. </p><blockquote><em>Navdanya</em> <em>means “nine seeds” (symbolizing protection of biological and cultural diversity) and also the “new gift”</em></blockquote><p>In collaboration with millions of farmers in India, Navdanya is helping preserve thousands of varieties of native seeds that represent mankind’s food heritage.</p><h2 id="who-is-vandana-shiva">Who is Vandana Shiva?</h2><p></p><p>Vandana Shiva is a world renowned <a href="http://vandanashivamovie.com/">thought leader</a> and activist advocating for the conservation of native seeds and traditional ecological farming practices.  She gives lectures around the world about the dangers of losing seed sovereignty and the effect of industrial farming on the health of consumers, farmers and rural communities. Known as the <a href="https://www.newyorker.com/magazine/2014/08/25/seeds-of-doubt">nemesis</a> of companies like Monsanto and Syngenta, she has won legal battles preventing  these biotech companies from patenting seeds and introducing GMO’s to India. To many people, she is a true hero defending traditional knowledge and ensuring the access to seeds that can be freely reproduced and shared.</p><h2 id="one-organization-with-three-branches">One organization with three branches</h2><p></p><p>Navdanya is organized in three sister organizations that operate with independent teams and funding sources.  Navdanya Foundation, Earth University and Navdanya Store.  Each plays a different role in the bigger picture of biodiversity conservation and ecological farming practices.</p><h2 id="navdanya-foundation">Navdanya foundation</h2><p></p><p>The foundation is the platform in which Vandana Shiva gives her talks around the world, follows lawsuits against biotech companies, publishes books and funds research projects. You could say that this is the think tank behind the organization.  It is funded mainly by Vanada’s talking fees. The foundation is also the heart of advocacy and activism efforts.  They are currently working against biopiracy. A practice where biotech companies introduce a genetical change into a seed and then patents the seed as their own invention. Some of Vandana’s arguments against this practice is that you can’t patent life, that the seed itself already existed. Furthermore she explains that privatizing seeds forces farmers to buy new seeds each growing season, preventing the free reproduction and sharing of seeds that farmers have practiced for millenia. Biopiracy doesn’t recognize the food heritage that thousands of years of breeding produced the seed that was modified in the first place.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.polis.global/content/images/2020/01/Navdanya-Teacher.png" class="kg-image" alt="Navdanya - Biodiversity heroes of India"><figcaption>Interns at a farm walk with one of the in house farmers</figcaption></figure><h2 id="earth-university-at-navdanya-biodiversity-farm">Earth University at Navdanya biodiversity farm</h2><p></p><p>Seven hours north of New Delhi, close to Dehradun, you can find a 50+ acre farm.  As you enter the campus you see an orchard with almost 20 varieties of mango.  Nested in herb gardens and surrounded by flowers there are red brick buildings that serve as offices, residences, lecture halls, library, dining hall and open classrooms.  Farther away into the farm there is a soil lab, seed bank, food processing areas, sun dryers and small warehouses. </p><p>The farm is a living collection of 740 varieties of rice, 240 of wheat, 27 of barley, 150+ of vegetables and the unbelievable diverse list continues. The seed bank is a true biodiversity treasure using both traditional and modern methods to preserve the seeds. It is runned by Sheela, a hardworking beautiful woman with dark skin, deep eyes and a contagious smile.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh3.googleusercontent.com/lNMgZJjQTHZDdmOt8cPkeFi63yHIsWUQbTBk9w3qQ4VXkXC96dgKeeX2hkdP4I-adavno9FqYsl2lONVSfVveXfeetJxvVGxK2L9JQ4SiVBmocNjWVO0aEX47JW-DpyahsBHVlQ" class="kg-image" alt="Navdanya - Biodiversity heroes of India"><figcaption>The seed inventory at Earth University</figcaption></figure><p>During my stay at Navdanya I noticed that the people working at Navdanya where surprisingly self reliant, self directed and seem to have an unusual sense of ownership and care for their work. Everyone had a clear role and responsibility and fulfilled it without the need of a manager telling them what to do and only paused for twice a day to have a sweet and spicy chai. </p><p>The farm is organic, with a strong focus on traditional practices like plowing the fields with oxen instead of machinery, flooding the paddy fields to grow rice, managing pests using extracts from their own gardens and planting crops in beneficial association like the “three sisters” maize, beans and squash. Walking with the different in house farmers was an exercise of discovering complex natural relations and diversity that only the knowledgeable eye could tell. It is a testament to the wisdom of traditional practices developed over generations to work with nature rather than against it. </p><p>For interns, the mornings were spent doing community work or shramdam, followed by farm work like harvesting, sowing seeds or drying herbs. In the spirit of self directed learning, the afternoons are devoted to sessions that cover subjects and teachers that the interns choose based on their interest, for example farm walks, medicinal plants workshops, soil lab 101 or hindi. </p><p>I had the privilege to see three different women’s groups come for three days to learn agroecology, talk about their own experiences, share seeds, address the challenges they faced and being celebrated for the knowledge and experience that they already have without being fully aware. In India, the role of women is extremedly undermined and you could tell by the dominant role of the few men that accompanied these women. To see them being empowered by other powerful and accomplished women was very inspiring and a reminder that we have a long way to guarantee equality of opportunities to all.   </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.polis.global/content/images/2020/01/Navdanya-Oxen.png" class="kg-image" alt="Navdanya - Biodiversity heroes of India"><figcaption>Preparing the fields to plant one of 700+ varieties of rice&nbsp;</figcaption></figure><h2 id="navdanya-store-and-farmers-network">Navdanya store and farmers network</h2><p></p><p>Navdanya developed a third branch of operations which is a non profit distribution center, a retail store and a restaurant. It is connected to 2.8 million farmers network across India and sells some of their products at a fair price. To ensure the ecological standard of the products, there is a network of a 160 coordinators that visit farmers’ villages on a monthly basis.  The coordinators visit the farms, spread the seeds, solve agricultural challenges and teach best practices to the farmers network. If a farmer is experiencing a crisis, he or she can call for an emergency visit and a senior coordinator can step in to help. The farmers cover the cost of the visits. In this way Navdanya runs a guarantee system that is different from the traditional organic certification programs that tend to have a more policing approach, demand a lot of paperwork from the farmers and typically limit to report back the problems found, instead of actively accompanying the farmer to better their practices. <br></p><p>New Delhi is the main distribution center and the biggest market for the network.  From there, produce is also distributed to smaller distribution centers in other cities.  The demand for agroecological products seems to be growing in India, yet it still represents a relatively small niche market.</p><h2 id="reflections">Reflections</h2><p></p><p>The importance to conserve native seeds that farmers can  reproduce, improve,  save for the next season and freely share with others seems of vital importance. It honors a treasure that humanity has inherited from thousands of years of agricultural selection breeding and care. Yet humanity is losing seed varieties that took thousands of years to develop because they don’t fit our current economic models of commercial crops and standardization. </p><p>In a world facing climate change and extreme weather events, keeping a wide biodiversity of food crops is a matter of survival.  It is food biodiversity that offers us a chance to adapt to changing climatic conditions. It is food diversity that will allow humans to have a healthy and nutritious diet. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.polis.global/content/images/2020/01/Seed-Bank-Navdanya.png" class="kg-image" alt="Navdanya - Biodiversity heroes of India"><figcaption>Navdanya Seed Bank at the Earth University</figcaption></figure><p>Nangu believes that technology has an important role to play in reshaping our food systems for the better as long as it is used to improve ecological practices not replace them with industrial ones, protect biodiversity instead of patent it, support farmers instead of replacing them and promote values of sustainability and wellbeing instead of centralizing profit. </p><p>Navdanya has been able to reach and influence millions of farmers in a distributed way.  Farmers retain their autonomy and simultaneously have access to a support network.  Instead of policing farmers with certification protocols Navdanya’s coordinators are accompanying them to improve their agroecological practices. When discussing the use of a blockchain based tracking platform I was surprised to hear that this approach would be against their values, which prefers to trust that the farmers are taking to heart Navdanya’s noble cause. Such a tracking technologies would undermine that. In their view, the relationship between farmers and coordinators is strong enough to guarantee the legitimacy of the produce. It makes me wonder how to reconcile the importance of following core values and self regulation with the use of transparency tools that give supporting customers the trust that the products they buy are legit. Ultimately, living the core values is the greatest of guarantees. Nonetheless, organic farmers also face many temptations to cut corners to either deal with a situation out of their control or to make an extra profit by mixing conventional products with organic ones. The answer to keep ecological standards and trust intact must be somewhere in the middle. </p><p>Navdanya has created a network of millions of farmers preserving hundreds if not thousands of varieties of seeds. Established an educational program in the villages and the Earth University, based on traditional practices, self direction and learning by doing. They built a bridge between production and supporting consumers in the cities,publish books and educational material and defend seeds against biopiracy and extinction. To see a relatively small group of committed people orchestrate a global movement, with millions of active farmers and influence policy making in India and abroad is a testament to the power of commitment and belief in a noble cause. <br><br><br><br><br></p>]]></content:encoded></item><item><title><![CDATA[Lessons from an educational rebel]]></title><description><![CDATA[Lessons from an inspiring Indian activist and community leader who believes in self directed education at the service of community and nature. ]]></description><link>https://blog.polis.global/lessons-from-an-educational-rebel/</link><guid isPermaLink="false">5e00b99b460d8805173d0c57</guid><category><![CDATA[Nangu]]></category><dc:creator><![CDATA[Francisco Grau]]></dc:creator><pubDate>Mon, 23 Dec 2019 13:29:47 GMT</pubDate><media:content url="https://blog.polis.global/content/images/2019/12/20191128_162254.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.polis.global/content/images/2019/12/20191128_162254.jpg" alt="Lessons from an educational rebel"><p>An overview of three self directed learning organizations lead by the activist and thought leader Manish Jain. Inspired by Gandhi's vision of Swaraj for an autonomous society, these organizations are living experiments on self determination, empowerment, gift economy and community. </p><p>During a visit to Udaipur, Rajasthan I had the pleasure of spending a couple days with the educational rebel and community leader Manish Jain. He has been living for about two decades following the principles of <a href="https://www.youtube.com/watch?v=6S1egXWYwXo">gift economy</a>.  In practical terms this means that he offers his services with no fixed charge. Instead, a relationship of trust is built between the giver and the receiver of the “<a href="https://en.wikipedia.org/wiki/The_Gift_(book)">gift</a>” and there is an implicit understanding of mutual reciprocity. In other words, the receiver of a gift asks for his services, for example a talk, a lesson or an event, then Manish provides this service as a gift and then the receiver of the gift is expected to reciprocate accordingly. When costs are associated with a gift, for example an airplane ticket, the receiver is expected to cover that upfront. But for the service itself, or the gift, the response is voluntarily determined by the receiver.  This principle of trusting the receiver of your gifts and not fixing a price upfront is a true act of confidence and interdependence.  The gift economy principle is also applied to the projects he co-founded and leads. <br></p><blockquote><em>In the gift economy, the more you give the richer you are</em><br><em>— Charles Eisenstein</em><br></blockquote><p>Manish has been a long proponent of redefining education away from factory schools into <em>“</em><a href="http://www.swaraj.org/shikshantar/mission_swaraj.html"><em>recognizing</em></a><em> the infinite potential of each human being; and enabling people to continuously 'learn, unlearn, and relearn' by developing their capacities for deep thinking, reflecting, feeling, understanding, sharing, creating, and taking personal responsibility”</em></p><h2 id="shikshantar-the-peoples-institute-for-rethinking-education-and-development">Shikshantar The Peoples' Institute for Rethinking Education and Development </h2><p></p><p><a href="http://www.swaraj.org/shikshantar/">Shikshantar</a> is a movement operated from an “Unlearning Center” where children and teens are welcomed to spend their days and create a self directed learning experience. In some cases the kids face big life challenges like a mental health disorder or being an orphan.  They can also be school dropouts that did not fit the educational system or simply children going after school to have the opportunity to explore education in a different way. </p><p>The center has a library, cinema center, organic gardens, musical instruments, kitchen, art materials and an upcycling station. It counts with the support of a small group of committed adults trusting the kid’s interests and thirst to learn. During my visit I tried to have a one on one talk with Manish to hear about their methodology and vision but found our conversation interrupted about 100 times an hour by enthusiastic kids that wanted to show him their latest creations, resolve a dispute, get advice, ask for money to buy new pants, crack a joke or just hang around. Meanwhile, the facilitators of the center also had questions and updates for Manish, add to that a few visitors that came in to talk to him and consult on other events they were organizing together. Not to mention that the phone rang about 10 times. I was overwhelmed by the amount of topics, consultations, kids, noises and interruptions. Meanwhile, Manish was completely at peace, giving every single soul the same sincere and  kind attention he was giving me, celebrating each small accomplishment that people came to show him and evidently having fun at it!</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh4.googleusercontent.com/qP8x5x4XG9lI0UIqYOq3MJTaAkHhppjqG2H3wS6zURFHt7NfLUMacwbFWx9aEUtQI4lBfo4fj6X8AGzQCH6_aC-skTeuMXzfOlSN64WyyIKLH9UD6McgcrJhJh5CoN2ZQSJFpCc" class="kg-image" alt="Lessons from an educational rebel"><figcaption>Video editing center at Shikshantar's unlearning center</figcaption></figure><h1 id="swaraj-university">Swaraj University</h1><p></p><blockquote><a href="http://www.swaraj.org/shikshantar/mission_swaraj.html"><em>Swaraj</em></a><em> (self-rule or rather, rule over oneself) is inspired by Gandhi's Hind Swaraj, a call for people to lead and create their own models of development that are holistic, pluralistic, sustainable, liberating, collaborative, socially just, and anticipatory.</em></blockquote><p>Hidden away half an hour south of Udaipur’s city center is an ashram that serves as a campus for <a href="https://www.facebook.com/swarajuniversity/?eid=ARBWzDRt6xQ19pcdiXskuv1QR5iDlADvXWn-0exCos6muYXzAnZweOnI_jqjc-nPOXLYQ-jkA6vaHrEw&amp;timeline_context_item_type=intro_card_work&amp;timeline_context_item_source=752470568&amp;fref=tag">Swaraj University</a>. The university offers a two year program where roughly 15 students at a time go through a process of exploration and discovery. The students and a small group of facilitators live on campus and undertake the journey together. Students stay for a few weeks at a time on the campus defining and exploring their interests. Then they go out to practice, learn and explore their interests within a support network of people, organizations and businesses that are already working in their field of interest. After a few weeks out they come back to the campus, share their lessons, reflect and continue their journey. </p><p>The students are free to explore their interests and self direct their learning journey as long as they focus on community oriented and ecologically minded projects or inquiries. The campus has many organic gardens, bioconstruction buildings, stunning landscapes and open classrooms as a result of previous alumni’s explorations. <br></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh5.googleusercontent.com/Y_g3sagK1cTFD2yZGGmhRQZ-3qelhByyMdBKtZWgh1qGlrcGPu4PCo9JQVPjWiO0QKpwuxsblgRGUOAWMLL3gSk5Qc24zwCdWLLX8aJfm2PCGiUpNcGi02U-6cXOP5b6J5FDVDQ" class="kg-image" alt="Lessons from an educational rebel"><figcaption>Geodesic domes built by Swaraj University students</figcaption></figure><p>Swaraj University also works under the principle of gift economy.  They disclose the operational costs to the parents and students to have a reference on what it takes to make the program happen. Then the program is offered as a gift, and therefore, students pay whenever and as much as they decide to reciprocate. The university also receives donations from the support network of allies, alumni and the wider community.</p><h2 id="swaraj-jail-university">Swaraj Jail University</h2><p></p><p>Following the same principles of the Swaraj University, Manish with the help of Diken Patel, an ex financial analyst turned into an educational rebel, opened an educational program at the local jail. They support a group of inmates into their self directed learning journey. The inmates are learning organic farming, yoga, computer tools, photography, filmmaking, painting and music. As a result more than 50 murals have been painted inside the prison. One group decided to explore music and  practice 6 hours every day.  I had the pleasure to hear their performance at the Organic Farmers Association of India’s national congress. The music was beautiful, and the love and appreciation that they publicly expressed to Diken and Manish was heartwarming. The love and support of the crowd towards them was also extremely inspiring.  </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh6.googleusercontent.com/bb3Qh-QFfhF_Kc8n1UOdbLacpZJ4Pfka-bM-5NzudwjB2qdiGK7wXZEn0TbY-EwM11QlIPwOt8IN1bKZs3WMDQDYYlPhEu3urYeYEB6WsZUgqpm8n1WoSck0K1sFDajKlKkBklM" class="kg-image" alt="Lessons from an educational rebel"><figcaption>Music students from Jail University giving a concert at the Organic Farming National Congress of India</figcaption></figure><p>When I asked Diken about his job description, his answer might as well describe the essence of what I saw in all projects inspired by Manish:</p><blockquote><em>“To make sure that love is the driving force behind everything we do!”</em><br></blockquote>]]></content:encoded></item><item><title><![CDATA[Introducing Nangu - Growing a forest to call home]]></title><description><![CDATA[The world is on the brink of climatic catastrophe. The industrial food system is undermining our very subsistence by cutting forests, degrading arable land and poisoning the water. Fortunately there is a way to revert the damage, regenerate our forests, produce healthy food and care for the people.]]></description><link>https://blog.polis.global/introducing-nangu/</link><guid isPermaLink="false">5ddd590a460d8805173d0bee</guid><category><![CDATA[Nangu]]></category><category><![CDATA[Foodforest]]></category><category><![CDATA[Vision]]></category><dc:creator><![CDATA[Francisco Grau]]></dc:creator><pubDate>Tue, 26 Nov 2019 17:19:36 GMT</pubDate><media:content url="https://blog.polis.global/content/images/2019/11/El-Triunfo-Chiapas-Carlos-Herrera.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.polis.global/content/images/2019/11/El-Triunfo-Chiapas-Carlos-Herrera.jpg" alt="Introducing Nangu - Growing a forest to call home"><p>Life on Earth is dying and our food systems are largely responsible. Industrial food production has devastating effects on our climate, our ecosystems, our health and our communities. Nangu reimagines our food system in a way that supports local communities, grows new ecosystems and protects existing ones. Using regenerative farming, Nangu will restore man made damage and revert climate change. The food produced by Nangu farmers will improve our health, protect biodiversity and help millions get out of poverty.</p><h2 id="the-problem">The problem</h2><p></p><p>Planet Earth is rapidly falling out of balance and urgent action is necessary. The magnitude and complexity of the planetary challenges is daunting. CO2 levels threaten to warm up the planet and to make large portions of Earth uninhabitable for mankind. We have <a href="https://www.worldhunger.org/earth-has-lost-a-third-of-arable-land-in-past-40-years-scientists-say-experts-point-to-damage-caused-by-erosion-and-pollution-raising-major-concerns-about-degraded-soil-amid-surging-global-demand-f/">lost</a> a third of the arable land in the past four decades due to destructive farming practices. If we continue to lose soil at present rates we have <a href="https://www.youtube.com/watch?v=65usnzkhiR0">60 years</a> of harvest before complete breakdown of our food systems. By the year 2025 two thirds of the world will live in <a href="https://www.un.org/waterforlifedecade/scarcity.shtml">water stressed</a> areas. Earth is facing the <a href="https://www.biologicaldiversity.org/programs/biodiversity/elements_of_biodiversity/extinction_crisis/">6th mass extinction</a> of biodiversity. Under these circumstances, there is unparalleled <a href="https://insideclimatenews.org/news/13062019/climate-change-global-security-violent-conflict-risk-study-military-threat-multiplier">social unrest</a> and suffering on the horizon. This is a man-made crisis and perhaps the only silver lining is that humankind may have a chance of solving it as well.</p><h2 id="how-did-we-get-here">How did we get here?</h2><p></p><p>In the <a href="https://www.youtube.com/watch?v=QX3M8Ka9vUA&amp;t=589s">industrial revolution</a> we drastically changed our relationship with Earth. We built a society fueled by coal and petroleum and supported by a centralized infrastructure to extract, process and distribute these energy sources. In the mid 20th century, the “Green Revolution” followed the trend and began a shift from small biodiverse farms working with the natural cycles to industrialized farms using a mechanistic approach based on monocrops. We fed the crops with petroleum based fertilizers and then use an adaptation of <a href="https://www.nytimes.com/1984/03/30/world/nerve-gases-and-pesticides-links-are-close.html">WW2 nerve gas</a> as pesticides. After decades pests became so resistant to the poison sprayed on our food, that they have grown stronger into <a href="https://www.freerepublic.com/focus/f-chat/3645448/posts">megapests</a>. Farmers stopped working with nature and started working against nature. Today, if you stand in the middle of a soy megafarm in Brazil you’re baffled by the silence and monotony of the landscape. No trees, birds, insects, weeds, grass or creeks. Just a lifeless carpet of soy until the horizon. Industry’s efficiency relies on scale, centralization and standardization. Accordingly, we’ve reduced our agricultural biodiversity to the point were today “<a href="http://www.fao.org/fileadmin/templates/nr/sustainability_pathways/docs/Factsheet_SMALLHOLDERS.pdf"><em>75%</em></a><em> of the world’s food is generated from only 12 plants and 5 animal species”.</em> We have effectively converted nature into a factory.</p><p>We overlooked the fact that soil is a living community of microorganisms and creatures vital for healthy crops to thrive. We combined heavy machinery that compacts the soil with poisons that kill most living creatures. The result is dead soil. Plants <a href="https://rodaleinstitute.org/wp-content/uploads/fst-30-year-report.pdf">don’t grow well</a> in dead soil. It makes them more susceptible to disease, droughts and floods, and therefore more dependent on agrochemicals to keep them alive. Dead compacted soil is also incapable of absorbing enough rain water. This prevents recharging aquifers and lets precious topsoil full of minerals and organic matter erode. The runoff ends up in our rivers, lakes and seas creating dangerous <a href="https://www.scientificamerican.com/article/ocean-dead-zones/">dead zones</a>. </p><p>The soil can be an important <a href="https://www.fern.org/news-resources/what-are-carbon-sinks-332/">carbon sink</a> and by using sustainable farming practices can sequester around <a href="http://www.fao.org/soils-portal/soil-management/soil-carbon-sequestration/en/">10%</a> of man-made emissions. Cutting primary forest, poisoning soil and water, using nitrogenated fertilizers, intensive cattle production and industrial farming practices are emitting large amounts of greenhouse gases. According to a recent report from the <a href="https://www.ipcc.ch/site/assets/uploads/2019/08/Edited-SPM_Approved_Microsite_FINAL.pdf">IPCC</a> the food system overall produces up to 37% of man-made greenhouse gas emissions. More than any other industry. Yet we waste <a href="https://www.aljazeera.com/indepth/features/2014/10/thirty-percent-world-food-wasted-2014103192739208584.html">30%</a> of all food produced and ship it on average <a href="https://davidsuzuki.org/queen-of-green/food-climate-change/">1200km</a> to reach our plates. If carbon emissions continue as usual we are looking at a catastrophic 3° degrees celsius global warming by 2100. That means life on Earth will look nothing short of apocalyptic.</p><h2 id="social-impact">Social impact</h2><p></p><p>The social side of our food system is equally discouraging. Small local farmers around the world are outcompeted by subsidised, <a href="https://www.localfutures.org/programs/the-economics-of-happiness/">foreign</a> commodity food and large scale industrial <a href="https://www.youtube.com/watch?v=OsI2HAmEFcw">farms</a>. A common story is that after a few bad harvests, these farmers ran into a spiral of <a href="https://www.firstpost.com/india/caught-in-the-cycle-of-debt-and-death-indias-farmers-drove-home-the-severity-of-the-agrarian-crisis-in-2018-5812421.html">debt</a> and lost their farms to find themselves either working in near slavery conditions for industrial farms or joining an exodus of people moving into the cities, with small chances of improving their life conditions. Chronic disease and <a href="https://www.huffpost.com/entry/from-seeds-of-suicide-to_b_192419">despair</a> are common in communities that followed the recipe of industrial farming by using patented seeds and expensive, toxic chemicals. Many have lost access to drinkable water for decades after their watershed was poisoned with agrochemicals. Indigenous children are <a href="https://semanariouniversidad.com/pais/nios-en-plantaciones-de-talamanca-tienen-altos-niveles-de-agroqumicos-en-su-orina/">urinating</a> pesticide residues. With the dramatic <a href="https://www.bbc.com/future/article/20140502-what-if-bees-went-extinct">loss</a> of pollinators farmers need to pollinate by <a href="https://www.huffpost.com/entry/humans-bees-china_n_570404b3e4b083f5c6092ba9">hand</a>. We are farming our own destruction by promoting and subsidizing these practices. The common argument to defend the industrial food system is that “<em>we must feed the world</em>”. However, the facts do not support this claim, research shows that <a href="https://www.nationalgeographic.com/environment/future-of-food/photos-farms-agriculture-national-farmers-day/">70%</a> of the world’s food comes from small farms and that “small farms tend to achieve <a href="http://www.fao.org/3/a-i4036e.pdf">higher yields</a> per hectare than larger farms”.</p><p>There is a failure in our economic system that allows companies to profit without being held responsible for the natural and social destruction that they cause. We have allowed industrial farms to externalize much of their negative costs to society and to offer their products below the true cost to society. We have created a system that rewards destructive practices, making it really difficult for small farmers to feed us using regenerative practices.</p><h2 id="towards-a-solution">Towards a solution</h2><p></p><p>In the field of alternative food systems we find a wealth of agro-ecological practices. It is a small but growing movement that applies organic agriculture, regenerative agroforestry, permaculture, biodynamic farming or syntropic farming just to name a few. These initiatives tend to work in isolation and often miss the competitive advantages of large-scale food production. Nonetheless, ecological farms are known to produce more food and create more jobs <a href="http://www.fao.org/3/a-i4036e.pdf">per hectare</a>, regenerate soil, avoid the use of toxicants, are champions of agrobiodiversity, carefully manage water, save and share heirloom seeds and produce safer food. They also perform better in <a href="https://rodaleinstitute.org/science/farming-systems-trial/">drought and flood</a> events, are safe for neighboring communities, strengthen the local economy and tend to be respectful of the local culture and traditions. Their success is based on the health of the ecosystem and the people.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh3.googleusercontent.com/ZW6JcWBXp6dum3PH-ULZ_CfsTvXcGz04Mi8yq-U7_OGZy5DgOeHf5bxMrfRchZ7-e30WM0GRM7x-6KzmedL1Xe7D7G8WhZuP0IIH5KOBvGF71e7rCv3K66edgRCbFtOB9V0zSm0" class="kg-image" alt="Introducing Nangu - Growing a forest to call home"><figcaption>Picture of El Triunfo, Chiapas by <a href="http://www.carlosherreravisual.com/">Carlos Herrera</a></figcaption></figure><p>You are probably wondering, if agro-ecological farms are so great, why aren’t they our everyday choice everywhere in the world? Well, it is complicated, but it comes down to economics. The nature of the agro-ecological approach results in a very diversified variety of products with smaller volumes of each product and less predictable times of harvest than an industrial monocrop system. It is harder to standardize and achieve large economies of scale.</p><h2 id="price-scale-and-diversity">Price, scale and diversity</h2><p></p><p>Let’s talk about price. Small ecological farms walk the extra mile to protect the environment, water and community. By covering the true cost of production they are at a disadvantage competing against industrialized farms that externalize the cost of their impact. Farms often need a certificate to access markets willing to pay higher prices for ecological and healthy foods, to prove their higher standards. This means paying for an organic, fair trade, biodynamic or sustainability certificate and backing it up with a lot of paperwork to show that you are doing things right. In addition, they need to keep a protective perimeter to shield their farm from airborne agrochemicals. They also need to keep strict controls to avoid their product being mixed with others during distribution and storage. </p><p>A small ecological farm has a very diverse range of products. The products with a short “shelf-life” need to be transported and sold quickly in local markets like farmers markets and health food stores. This can often be a sizable portion of the production and the local markets are often not available or big enough. Another option is to process the produce into higher value products with a longer shelf-life. It is a challenge to do this efficiently and comply with food safety regulations for small batch production. The commercial food grade infrastructure and tools necessary are typically expensive. The permits to register and sell processed food can also be costly. As a small farm you probably have many different products in small amounts, making it hard to justify the time and money to make each product legally compliant.</p><p>If the immediate local market is not big enough there is the logistical challenge of sending products to other markets. If the farm has access to a truck (that is a big if in the global south) then the farmer and probably someone to help will need to spend one or two days selling at farmers markets and/or delivering to restaurants and stores. This is valuable time not spent on the farm. If the farmer has no access to transportation, it is sadly common to fall prey to unscrupulous intermediaries that will pay a price near or below the production cost and resell the products elsewhere making most of the profit.</p><h2 id="nangu-a-new-story">Nangu: A new story</h2><p></p><p>We chose the name Nangu because it means <em>“home”</em> in <a href="https://en.wikipedia.org/wiki/Mangue_language">Chorotega</a>, a disappeared indigenous language from Central America. It is a reminder that when you don’t take care of what you love, you risk losing it, just as the nearly <a href="https://www.huffpost.com/entry/un-environment-programme-_n_684562">200</a> species that go extinct every day. It is a calling to take care of mother Earth and all living beings. Now, let’s explore how! </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh4.googleusercontent.com/afTN14SnppImR7g9XHjQ4Jo-N-26iyRx0HhOJN5CiRCljOisiTSCX25-_4Oz8cyPsI4eK_U9zQwPfRXDUcqH2bYJtpueN9DV_pJk3pgvujryfjiOyFnm9ZGSqB4A6WYl3Ty0hO4" class="kg-image" alt="Introducing Nangu - Growing a forest to call home"><figcaption>Picture of Selva Lacandona, Chiapas by <a href="http://www.carlosherreravisual.com/">Carlos Herrera</a></figcaption></figure><p>Imagine the predicament of a farming family who had lost their farm. What if instead of underpaid labor or city slums there was a third option? Let’s imagine an alternative where the family is offered access to land, the resources to turn it into a productive food forest, the education necessary and a marketplace to sell their products.</p><p>It would all start with a “Stewardship Education Program” using a hands on <em>farmer-to-farmer</em> methodology to transform old degraded farmland into a vibrant food forest. Using well tested <a href="https://blog.polis.global/borneo-agroforestry/">regenerative</a> <a href="https://www.youtube.com/watch?v=stABAx82TbY">agroforestry</a> <a href="https://www.youtube.com/watch?v=h0m3OBp1MMg">recipes</a> the soil would first be enlivened using microorganisms, compost and biochar, hand in hand with pioneering plants to break the compacted soil and build precious organic matter. Next, the trees that will provide food, habitat and materials in the future are strategically planted next to fast growing beneficial plants that provide protection and nutrients to the trees as well as food and cash crops to the forest stewards in the early years. </p><p>Now imagine the family farm turning into an established food forest. A diversity of healthy foods, medicinal plants, bioconstruction materials and enough to share with the wildlife that will also claim it as their home. The neighbors in all directions will also be forest stewards, growing food under the same ecological principles and a common production plan. Zoom out and see hundreds of small food forest farms, collectively creating a large scale forest where it used to be only degraded land and dead soil.</p><p>The land would be owned collectively as a commons, and each family would have exclusive use of the land assigned to them so they can care for it and plan for the long term. To work in a commons entails agreements on the way the land is used, putting in place incentives to keep the members aligned to the core values and the noble cause of the community. It is a self balancing distributed system, in tune with the ecological and social boundaries of the place. It gives a great deal of autonomy and self determination to the different stakeholder groups within their area of influence while simultaneously ensuring that the collective’s core values are respected. </p><p>Having a network of stewards producing according to a common production plan opens the opportunity to economies of scale. It becomes possible to create a series of <a href="https://www.youtube.com/watch?v=j5jo4yC6H1g&amp;feature=youtu.be">local micro factories</a> that can process the diverse harvest from the forest into high quality products. For example, if the stewards have cacao trees, it is easy to bring the harvest to the local micro factory where a world renowned chocolatier has trained the community to produce a spectacular chocolate. The value of fine chocolate is far greater than selling the dried beans as a commodity. The potential of local microfactories extend to all kinds of food, medicinal plants and eco building materials. A distributed green industry can sprout from the creativity of the steward network in cooperation with world class chefs, scientists and eco builders. A microfactory network can solve the common challenges of isolated agro-ecological farms by combining the output of the farms and transforming it into a diverse range of high quality products, guaranteeing regenerative standards. The combined volume also facilitates the logistics and access to eco ethical markets at local, national and international level. It is an organized steward network that farms, transforms and sells the products of a regenerative food forest to multiple markets.</p><p>Now picture the other family in this story. The one that will enjoy amazing, healthy and regenerative forest products. Knowing that their purchase is helping restore the Earth’s balance and supporting the families of the forest stewards. The “enjoyers” will be able to scan a code in each product that will reveal its origin, the people that produced it and the transformational story of the place that grew it. With the same spirit of radical transparency, the selling price will be disclosed to all the stakeholders that contributed in the creation of the product and the income will be shared transparently amongst all of them. No matter how far away both families are, they will be connected. </p><p>Nangu envisions the use of technology in the service of the core values and as an enhancer to traditional practices and wisdom. The elder’s knowledge on how to grow food and overcome agricultural challenges can be systematized in an AI knowledge base to be shared amongst stewards across nationalities. Traditional practices of governance and decision making inspired in <a href="https://iasc-commons.org/about-commons/"><em>the commons</em></a>, will be supported by a voting app. The trust built between farmers and enjoyers at a local market can be extended through distances by the use of a blockchain based tracking mechanism linking the product to the farmer as well as their story and production ethics. The meticulous measurement of trees to calculate the growth and carbon capture of a forest can be enhanced by drones scanning and rendering a forest 3D model in a fraction of the time. It is worth emphasizing that technology is a tool to serve people and values and not the other way around. </p><p>Nangu’s special interest is to use the regeneration of vast food forests as a protection barrier to old growth forest that are currently under threat of being swallowed by the industrial farmland expansion. We embrace the commitment to protect the remaining reservoirs of biodiversity held in tropical forests by reverting the damage around them and making sure that the forest stewards in charge thrive doing so. Let’s turn the dire concerns brought by the climatic crisis into inspired action that addresses the global challenges in a responsible and humanized way. This is an invitation to change the course of history with a down to earth approach. </p><blockquote><em>Nothing is as powerful as an idea whose time has come. – Victor Hugo</em></blockquote><p>In summary, Nangu is developing a replicable model that enables local community to become stewards of food forests that they will grow on degraded land creating a buffer zone around forest conservation areas. The Nangu community will enable access to land and education to selected landless farmers for the opportunity to become forest stewards. Nangu’s democratic governance system will enable the network of small farms to work together, to manage an array of local micro-factories and to gain access to eco-ethical markets. The value chain will be made radically transparent using blockchain technology to track forest products from farm to fork and fairly distribute income based on the value that each stakeholder provides, from investors to farmers.</p><p>We created this crisis and we have a chance to solve it. It is going to take reforesting an area the size of the USA, about 1 billion hectares of land to <a href="https://www.nationalgeographic.com/environment/2019/07/how-to-erase-100-years-carbon-emissions-plant-trees/">erase 100 years of man made emissions</a>. We join a movement of several other promising projects to help reduce emissions and to plant trees. Nangu aims to take responsibility for 10% of that effort, with the goal to plant 100 million hectares of food forests and to help bring tens of millions of people out of poverty. The forest stewards will create a better life for themselves and for all of us by farming with nature, enhancing the soil and preventing water stressed scenarios by revitalizing watersheds. We are running out of time, but we can still make it. Tomorrow is in our hands. Together we can bring Nangu to life and grow a forest to call home!</p><p>Please follow <a href="https://blog.polis.global/">our blog</a> for more details on Nangu as it evolves.</p><p>If you want to contribute to the propagation of food forests around the tropics please reach out at <a href="mailto:contact@polis.global">contact@polis.global</a>.</p><p></p>]]></content:encoded></item><item><title><![CDATA[What 40 years of agroforestry experience looks like]]></title><description><![CDATA[Project report: Visit to an amazing food forest project in Borneo led by Willie Smits]]></description><link>https://blog.polis.global/borneo-agroforestry/</link><guid isPermaLink="false">5dd28ffe460d8805173d0b8a</guid><category><![CDATA[Foodforest]]></category><category><![CDATA[Nangu]]></category><dc:creator><![CDATA[Francisco Grau]]></dc:creator><pubDate>Mon, 18 Nov 2019 13:19:33 GMT</pubDate><media:content url="https://blog.polis.global/content/images/2019/11/ForestBorneo.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://blog.polis.global/content/images/2019/11/ForestBorneo.jpeg" alt="What 40 years of agroforestry experience looks like"><p>Many years ago I saw a TED talk by Willie Smits telling the story of <a href="https://www.ted.com/talks/willie_smits_restores_a_rainforest?language=en">How to restore a rainforest</a> on severely degraded land in Borneo. The forest became a sanctuary for orangutans and the home for thousands of people who found employment in harmony with nature. They changed the local climate and became the supply of fresh water for many people.  When I saw this talk for the first time I thought “there is hope, we can revert the damage”.  It was 2009 and it didn’t cross my mind that exactly 10 years later I would be visiting Willie in his evolved version of the restoration model looking to learn and collaborate. </p><p>After half an hour boat ride from Balikpapan in Borneo we arrived at the site of the ARSARI Environmental Industries. A few years back, an Indonesian businessman, that Willie knew through his support for animal conservation, bought a logging concession of almost two hundred thousand hectares in what was previously a large scale logging operation. The enormous fires of 1998 destroyed 70% of the forest, an area roughly 14 times the size of inner Paris!  Now in the hands of a world leading conservationist with the backup of a powerful business group supporting his vision the story has dramatically changed. </p><p>ARSARI is now cutting the secondary forest that grew after the logging disaster. This forest is composed mainly of pioneer species—species that grow after a forest is cut—that are now decaying because they are at the end of their biological life, therefore releasing CO2 back into the atmosphere. The group is harvesting the dying wood and turns it into biochar and biocoal, a stable and inert form of carbon that looks like common charcoal but is profoundly different. When the biochar is mixed with compost and integrated into the soil it sequesters CO2 for thousands of years. Biochar becomes a host for a complex community of microorganisms and fungi that enhance the fertility of the soil, retains nutrients, retains water in the soil, builds organic matter, lowers the acidity of the soil and filters out toxins.  Biochar can also be fed to cows to lower methane emissions.  </p><p>On top of all these amazing qualities, the biochar miracle is not over.  Waste organic material can be converted to biocoal pellets that can then be processed in an industrial facility to produce syngas and biochar through a process called <a href="https://vimeo.com/187986286">torrefaction</a> and gasification.  This creates the building blocks to a carbon neutral green chemistry industry that promises to replace many of the industrial products currently made out of petrol like fuels, plastics and fertilizers. By adding the biochar to the soil the entire system becomes carbon negative.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh5.googleusercontent.com/g1X_D3wJ51BLiCISicom1g67LWsXuxSWVw58y0gyoq_-_JuKMIEc4NDY1ssPaTk7HMNPWurh32peWGunk8ot5jUHNrcmZQboCYsRxDzqxcm5Kyp8dVrPif21LPx9ef7acgBd0to" class="kg-image" alt="What 40 years of agroforestry experience looks like"><figcaption>Willie Smits inside a mobile biochar furnace</figcaption></figure><p>Back to the forest. After carefully clearing the secondary forest leaving the few valuable trees standing and the vegetation on the steep slopes to prevent soil erosion, a carefully planned regeneration recipe is put in place.  One of the many recipes starts by planting cassava and legume family trees to provide shade and nitrogen to the next superhero in this story: The sugar palm. The cassava provides a short cycle crop that brings income quickly and provides the starch to produce the biocoal we just talked about as well as animal feed. The sugar palm will take about seven years to grow to maturity and be ready to provide on average 25 liters of sugar juice per palm every day for the next 3 to 5 years! In addition it produces valuable timber, fibers, fruits, medicinal products, biomass and many industrial by-products. The sugar palm has deep root systems that pull nutrients to the surface, build organic material into the soil and contribute to water retention. </p><p>After harvest, the juice is boiled into a stable syrup for storage and transportation.  It can then be further boiled into sugar with each palm yielding on average 3 kg of sugar every day.  It can also be used to produce <a href="https://www.youtube.com/watch?v=xtWp84htc18&amp;app=desktop">ethanol</a>, first by fermenting the syrup and then distilling it to make the ethanol.  The CO2 emitted by the fermentation is fed to algae that then is used as animal feed.  After the distillation the two byproducts are pure water and a sludge that goes to a biodigester mixed with cow manure. The biodigestor ferments the mix to produce methane that is burned for heat necessary on the distilling process and the solids that are used as a fertilizer for crops.  Biochar is also produced on site and the heat exhaust is used in the distillation process and wood drying for the next batch of biochar.  It is an ingenious zero waste operation that uses forest products as an input and recirculates energy and materials to produce ethanol, methane, fertilizer, pure water, heat and biochar!</p><p>In additional to the cassava, legumes and sugar palms, every hectare of agroforest also contains many other species of plants and trees yielding fruits, food, medicinal plants and a home for wild and farm animals. Planted and executed with the same brilliance, it creates a zero waste and multiple outputs system. The list of plants comprises some 150 species as part of the agroforestry recipes. Every component is carefully planned to give different economic returns over the years, maximizing the energy gifted by the sun and in profound respect for mother nature.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh6.googleusercontent.com/wfTX-D3bPV_bR2ZkZMFkZ2SgagxoWZhNn2iIFm-4p1asJyEl9GF9emyznd7X5U_Sc4cRAF1LrWenYee2cQzmV0HwrCZRMW7-7BezOflan58mUnvVklD3g24FHB727fpEQBs3vTw" class="kg-image" alt="What 40 years of agroforestry experience looks like"><figcaption>Left and Right, Ruben Daniels and Francisco Grau representing Nangu. In the middle, Willie Smits</figcaption></figure><p>Willie kept surprising us with more innovations. Knowing that the new capital of Indonesia will be relocated very close to the ARSARI project. They anticipated a great demand of drinking water. Therefore ARSARI will build a strategically placed dam to create a lake reservoir capable of <a href="https://vimeo.com/221876953">supplying fresh water to 2.5 million people</a> and a booming industry.  The water will be filtered with the biochar produced locally, capturing nutrients in the water that will then go back to the soil. Since the water will flow downhill they will install hydropower turbines to produce electricity and avoid electricity for pumping water. On the lake there will also be a floating solar farm that will use the cooling effect of the water to operate at greater efficiency.  It is important to note that the supply of this vital amount of water is actually provided not only by the agroforestry areas but also by an additional 53,000 hectares of conservation areas that will remain as a sanctuary for wildlife and notably for orangutans. This creates an unusually explicit awareness of the importance of preserving the forest to support human existence and development.  </p><p>I could continue talking of the tissue culture lab, the sustainable fish farms, the bird nest farming, the experimental growing plots for different crops, the brilliant DIY experiments, bioclimatic constructions, the onsite villages, the ecotourism project, the tire recycling program, the guano harvesting, the gorgeous caves, the cassava industrial facilities, the happy goats and cows, compost facilities, wood drying technology, the stone mining, the satellite monitoring, the fire fighting brigade, the poacher monitoring system, the health studies, perfume making, amazing greenhouses and the list continues. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh6.googleusercontent.com/APxI_ushzFi2IZz-Tie14vSxkFzCEcdIW3PHPZTe8_n5-vYFgeD4Cc4NqYoIoKqraDoeKLC5jwtvafPKgb1z5Yhla0cx3R8tHs_pWTFYmTntmbAPqMqMrvWqsJS_wGei299lsok" class="kg-image" alt="What 40 years of agroforestry experience looks like"><figcaption>One of many diverse greenhouses&nbsp;</figcaption></figure><p>I rather talk about the orangutans.  We had the immense privilege to visit Iskander and Bento in a pioneering program. The visit was brief and the experience was profound in ways difficult to put in words. Turns out that zoos with orangutans keep only one dominant male to several females in the groups on display. That leaves many “surplus” male orangutans sentenced to a life in small cages. In nature, the non alpha males would normally create a band of brothers and will not become dominant males as long as other alpha males are roaming there. Willie is now creating a pioneering program to rescue these lonely males with impressive cheek pads. They are placed in spacious cages a few meters across from each other were they have time to be isolated and get used to each others presence. After some time they are moved into a large facility all together to let them fight and sort out who is the dominant male. The system includes escape routes and medical assistance for the losers safety. After the leader is determined and the band of brothers consolidated they will be moved to an island with no females where they can live freely. Macaques and other primates will also be introduced on the same islands to steal the orangutans food from feeding stations and keep life interesting. </p><p>Conscious of the complexity of the agroforestry system, the 40 years of experience on his shoulders and that he will not be around forever, Willie is also working to create a digital knowledge base to share his wisdom with other people with strong common values. The aim is an artificial intelligence system that will be able to diagnose a piece of land and consider soil quality analysis, weather forecasts, topography, biodiversity, vegetation, hydrology, available labor, geolocation, etc.  Then laying out a plan or recipe to convert the land into a successful regenerative agroforestry project to restore the land and support a prosperous local economy.  If he can accomplish this vision, he truly will continue to grow a legacy beyond his lifetime and beyond the already impressive accomplishments to date. I wish we are blessed with many more years of Willie Smits and when the time comes, I hope we can all continue to make use of his brilliance in service of the ecological and humane values that drive his life today. <br><br><br></p>]]></content:encoded></item></channel></rss>