Skip to content

Commit

Permalink
Migrate old blog posts from farmier.com #17
Browse files Browse the repository at this point in the history
  • Loading branch information
mstenta committed Jan 15, 2024
1 parent ed2c14a commit 076a6f2
Show file tree
Hide file tree
Showing 4 changed files with 276 additions and 0 deletions.
Binary file added posts/2019/farmOS-1.0/funnel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
150 changes: 150 additions & 0 deletions posts/2019/farmOS-1.0/index.md
Original file line number Diff line number Diff line change
@@ -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
126 changes: 126 additions & 0 deletions posts/2019/funding-farmOS/index.md
Original file line number Diff line number Diff line change
@@ -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/
Binary file added posts/2019/funding-farmOS/relationships2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 076a6f2

Please sign in to comment.