diff --git a/posts/2019/farmOS-1.0/funnel.png b/posts/2019/farmOS-1.0/funnel.png new file mode 100644 index 0000000..e84021c Binary files /dev/null and b/posts/2019/farmOS-1.0/funnel.png differ diff --git a/posts/2019/farmOS-1.0/index.md b/posts/2019/farmOS-1.0/index.md new file mode 100644 index 0000000..7de533f --- /dev/null +++ b/posts/2019/farmOS-1.0/index.md @@ -0,0 +1,150 @@ +--- +title: farmOS 1.0 +date: 2019-03-20 +author: Michael Stenta +slug: 2019/farmOS-1.0 +--- + +# farmOS 1.0 + +## A long journey for a small number + +After more than 5 years of development, I'm pleased to announce that +**[farmOS 1.0 has been released]**! + +What does that mean? In some ways, not much. farmOS is stable, and continues to +improve and grow with every iteration. It is already used by hundreds of farms +all over the world, and is being deployed in agricultural research projects to +help understand how production practices affect soil health, nutrient density, +carbon sequestration, and other indicators. + +What *is* significant about this release is that we've made some big +improvements to the [farmOS API], which allows other software systems to +communicate with farmOS and push/pull data. This means other ag software +developers can build more specialized features using the tools of their choice, +while still leveraging the farmOS server as a central database. This is a huge +step towards interoperability between different tools - and it keeps the data +ownership in the hands of the farmer. + +With this release, I thought it would be fun to take a look back at where things +started, and what we've accomplished along the way. + +![Illustration of data flowing into farmOS](./funnel.png) + +## Initial commits + +The first official commits happened in early 2014, with the creation of the +[farm distribution], along with the [log] and [farm_log] modules (but to be +fair, the ideas [go back even farther] than that). I shared it with Dorn Cox and +RJ Steinert at [Farm Hack], who became the first early adopters and +collaborators. Shortly after, I presented on the topics of open source software +and hardware at the [2014 CT NOFA Winter Conference], and shared my vision for +what we were starting to build. In September 2014, we +[officially adopted the name] "farmOS", and that winter marked the first commits +to the [livestock] and [equipment] modules, followed by the [sensor] module a +few months later. + +## Leaps and bounds + +The project and community has developed rapidly since then! There have been over +3000 [commits] to the [farmOS repository], 2 alpha releases, 18 beta releases, 2 +release candidates, and over 38,000 downloads from the +[drupal.org project page]. We've discussed countless ideas in the form of +[feature requests], [bug reports], and [conversations] in the [chat room] and +[monthly calls], as well as at in-person hackathons and conferences like +[GOAT: Gathering for Open Agriculture Technology]. All of this collaboration has +accelerated farmOS's development, and turned it into a mature platform. + +But that's not all! A number of related projects have been developed to +complement and extend farmOS, including add-on modules for [holistic grazing], +[nutrient management], [produce safety], [beekeeping], [mushroom] and [maple] +production, [weather], and [forest management]. + +Jamie Gaehring and Alex Smith are currently working on a [farmOS Client] app, a +single-page JavaScript application that works offline and provides a simplified +UI for creating observations and other logs in the field (which can be synced +back to farmOS when internet is available). This offline app is the basis for +the Android and iOS native apps that will soon be available in app stores! It +will also be available at [https://farmOS.app], and eventually we hope to pull +it into farmOS core as an offline "field mode", or even as the basis for a +streamlined and simplified default UI. + +We are also developing reusable libraries that other systems can use to +communicate with farmOS over HTTP requests, in [JavaScript] and [Python], along +with a [farmOS Aggregator] tool for pushing/pulling data from sets of different +farmOS systems in bulk. These tools open the doors to a new world of +possibilities, leveraging the distributed and farmer-owned nature of farmOS, +and enabling standardized communication and interoperability of data between +different systems. + +## Thanks to YOU! + +Much of this development has been generously supported through partnerships and +collaborations with organizations including [Wolfe's Neck Farm], [Farm Hack], +the [Cornell Soil Health Lab], [UVM Extension], the [Globetrotter Foundation] +and [Paicines Ranch], [NRCS], [VVBGA], [PASA], [USFS], [NFA], [BFA], and +[Our Sci], and more. And that isn't even counting all the individual farmers who +are using it! We wouldn't be here without the contributions and support of +everyone in the [farmOS community]. + +**Thank you!** + +We've got big plans ahead - and a long way to go from here! The last five years +have put us on a solid foundation, and I believe the next five will produce even +greater things. If you are interested in supporting these efforts, there are +lots of ways you can [contribute]. + +Thanks again to everyone who made this possible. + +-Michael Stenta + +[farmOS 1.0 has been released]: https://www.drupal.org/project/farm/releases/7.x-1.0 +[farmOS API]: https://farmos.org/development/api +[farm distribution]: https://github.com/farmOS/farmOS/commit/1219fc52041a067796e2d01150cd5419962c7844 +[log]: https://github.com/mstenta/log/commit/ac3b0eebcd65515fe97833055d215c89d0450c0a +[farm_log]: https://github.com/farmOS/farmOS/commit/10822e262d552a84d9c5e67bc69e7ce5b8ac244c +[go back even farther]: https://github.com/farmOS/farmOS/commit/53ca3e8753d7eca390338c5563de454c1e3e5a66 +[Farm Hack]: http://farmhack.org +[2014 CT NOFA Winter Conference]: https://www.youtube.com/watch?v=raLwz0Y9YV4 +[officially adopted the name]: https://github.com/farmOS/farmOS/commit/60294e8c5108528e228d5cb922cc271c6a4f3a5e +[livestock]: https://github.com/farmOS/farmOS/commit/cf9824be5c5a582a21e76c8d5ecaacc23c7eda06 +[equipment]: https://github.com/farmOS/farmOS/commit/67539de3dc986b54ae8e88def4703f5f501bf68b +[sensor]: https://github.com/farmOS/farmOS/commit/1678ded540e5fb960129d151af4f6f94bbe651a8 +[commits]: https://github.com/farmOS/farmOS/commits +[farmOS repository]: https://github.com/farmOS/farmOS +[drupal.org project page]: https://drupal.org/project/farm +[feature requests]: https://www.drupal.org/project/issues/farm?status=All&categories=3 +[bug reports]: https://www.drupal.org/project/issues/farm?status=All&categories=1 +[conversations]: http://irc.farmos.org +[chat room]: https://riot.im/app/#/room/#farmOS:matrix.org +[monthly calls]: https://farmos.org/community/monthly-call +[GOAT: Gathering for Open Agriculture Technology]: http://goatech.org +[holistic grazing]: https://github.com/farmOS/farm_grazing +[nutrient management]: https://github.com/farmOS/farm_nutrient +[produce safety]: https://github.com/farmOS/farm_produce_safety +[beekeeping]: https://github.com/farmOS/farm_bee +[mushroom]: https://github.com/farmOS/farm_mushroom +[maple]: https://github.com/farmOS/farm_maple +[weather]: https://github.com/farmOS/farm_weather +[forest management]: https://github.com/farmOS/farm_forest +[farmOS Client]: https://github.com/farmOS/farmOS-client +[https://farmOS.app]: https://farmOS.app +[JavaScript]: https://github.com/farmOS/farmOS.js +[Python]: https://github.com/farmOS/farmOS.py +[farmOS Aggregator]: https://github.com/farmOS/farmOS-aggregator +[Wolfe's Neck Farm]: https://www.wolfesneck.org +[Farm Hack]: http://farmhack.org +[Cornell Soil Health Lab]: https://soilhealth.cals.cornell.edu +[UVM Extension]: https://www.uvm.edu/extension +[Globetrotter Foundation]: https://globetrotterfoundation.org +[Paicines Ranch]: https://paicinesranch.com +[NRCS]: https://www.nrcs.usda.gov +[VVBGA]: http://www.uvm.edu/vtvegandberry +[PASA]: https://pasafarming.org +[USFS]: https://www.fs.fed.us +[NFA]: https://www.nfa.org.ug +[Our Sci]: http://our-sci.net +[BFA]: http://bionutrient.org +[Foundation for Food and Agriculture Research]: https://foundationfar.org +[farmOS community]: https://farmOS.org/community/supporters +[contribute]: https://farmOS.org/community/contribute diff --git a/posts/2019/funding-farmOS/index.md b/posts/2019/funding-farmOS/index.md new file mode 100644 index 0000000..ca16fbe --- /dev/null +++ b/posts/2019/funding-farmOS/index.md @@ -0,0 +1,126 @@ +--- +title: Funding farmOS +date: 2019-05-31 +author: Michael Stenta +slug: 2019/funding-farmOS +--- + +# Funding farmOS + +## How to sustain free software + +When I talk to people about [farmOS], or open source software development in +general, I am often asked: "how do you support yourself?" It's a valid question. +**[farmOS is free]** (as in both [beer and speech]). So how do you make money +giving something away? + +![Illustration of farmOS relationships](./relationships2.png) + +## The case for [Free and Open Source Software] + +If a farmer gave away their harvests for free, they would be unable to pay their +expenses, their workers, and themselves. Farming takes *limited* resources +(soil, inputs, labor) and transforms them into a *limited* product (food). +**Software is different**. It still requires limited resources to create (the +hours and attention of a programmer), but once the code is written it can be +copied for free. + +Proprietary software licenses put restrictions on this ability to copy, in order +to turn an *unlimited* product into a *limited* one, so that it can be sold at +a premium. A [free software] license, on the other hand, explicitly allows users +to copy, modify, and redistribute the software without restriction. + +This allows users to extend, modify, and build on top of the code that was +written by others. Instead of being restricted and controlled by a single +company or individual, communities of users and developers can grow around the +project to build and support it. Furthermore, the development process is +cumulative, building on the work that came before +(["standing on the shoulders of giants"]). + +This gives the power back to the users, and everyone benefits from the shared +effort. For these reasons, open source software has become the backbone of +modern computing, and many people use it every day without even realizing it. + +## Sustainability + +It's important to recognize that software *does* take work, both to create it +and to maintain it. And *that* is what requires funding. In order for a project +to sustain itself into the future, it needs to support the core developers that +build and maintain it. It also needs to maintain the community infrastructure +that enables and encourages collaboration. + +Without the ability to "sell" the software, open source developers have come +up with other ways of supporting their efforts. [Nadia Eghbal] has compiled an +[exhaustive list] of all the ways that people get paid for open source work, +with pros and cons of each. It is a major challenge, and what works for one +project may not work for others. Nevertheless, many open source communities and +companies are making it work, and more users are seeing the value in supporting +the projects they use. + +#### farmOS and Farmier + +When I started farmOS, I wanted to make sure that the *project* remained +independent of any *company*. So I created [farmOS] as the open source project, +and [Farmier] for providing services like [hosting], support, and sponsored +feature development. Farmier is not backed by [venture capital]. It is supported +by the farmers and organizations that use farmOS, and I plan to keep it that +way. I value privacy and data ownership myself, and I want that to be a priority +for Farmier, as well. + +## Sponsored development + +The primary means of supporting my time on farmOS thusfar has been through +sponsored development projects. I work directly with farmers, universities, and +other organizations to build features that address a specific need. We approach +this as a standard development contract: we make a plan, estimate the time it +will take, and then build it. When it's done, it can be released to the farmOS +community, and sponsorship credit is given to the funders on [farmOS.org]. + +This model is used successfully in other open source communities, as well. For +example, in the [Drupal] community, developers use open source modules to build +websites for their clients, and often add features or fix bugs in the process. +These changes are then contributed back "upstream" to the module itself, so that +they can be used again in future projects. A great example of this is +[Jacob Rockowitz]'s work on the [Webform] module, which he describes in his blog +post, "[Sponsor a Feature]". + +## Crowdfunding + +Sponsored development is a great way to add new features to farmOS, but building +things is only part of what makes an open source project successful. Just like +other forms of public infrastructure, free software requires ongoing +maintenance. And supporting the community that grows around a project can be a +full time job in itself. + +In an effort to support the ongoing maintenance and community building work, the +farmOS project accepts donations through an [Open Collective page]. This allows +the project to collect one-time and recurring donations on it's own, apart from +Farmier or other centralized organizations. These funds can be managed +transparently, by submitting expenses for community approval, all in public. + +If you think farmOS is a worthwhile effort, consider becoming a backer/sponsor +through Open Collective. Even if it's just $2/mo, if enough people show support, +it can go a long way to supporting the project into the future. + +**For more information, read "[Donate to farmOS]" on farmOS.org.** + +[farmOS]: https://farmOS.org +[farmOS is free]: https://github.com/farmOS/farmOS +[beer and speech]: https://en.wikipedia.org/wiki/Gratis_versus_libre +[Free and Open Source Software]: https://en.wikipedia.org/wiki/Free_and_open-source_software +[free software]: https://en.wikipedia.org/wiki/Free_software +["Standing on the shoulders of giants"]: https://en.wikipedia.org/wiki/Standing_on_the_shoulders_of_giants +[Nadia Eghbal]: https://nadiaeghbal.com +[exhaustive list]: https://github.com/nayafia/lemonade-stand +[Farmier]: https://farmier.com +[hosting]: https://farmier.com/cloud/ +[venture capital]: https://en.wikipedia.org/wiki/Venture_capital +[farmOS.org]: https://farmOS.org +[Drupal]: https://drupal.org +[Jacob Rockowitz]: https://www.jrockowitz.com +[Webform]: https://drupal.org/project/webform +[Sponsor a Feature]: https://www.jrockowitz.com/blog/sponsor-a-feature +[Open Collective page]: https://opencollective.com/farmOS +[Open Source Collective]: https://opencollective.com/opensourcecollective +[Open Collective]: https://opencollective.com/ +[Donate to farmOS]: https://farmos.org/donate/ diff --git a/posts/2019/funding-farmOS/relationships2.png b/posts/2019/funding-farmOS/relationships2.png new file mode 100644 index 0000000..8631e95 Binary files /dev/null and b/posts/2019/funding-farmOS/relationships2.png differ