SPONTANEOUS GROWTH OF THE geocompx FOSS4G COMMUNITY

2024-07-05, FOSS4G Europe 2024, Tartu, Estonia

PART 1

Tartu, Estonia, present day

What is the

project about?

eXchange information about geocomputation


cross (X) pollinate ideas from one programming language for working with geographic data to another


host additional content on geocomputation with (X) other languages

Geocomputation with R

Geocomputation with R, 2nd edition:

  • A comprehensive introduction to geocomputation using the R programming language

  • Consists of 3 parts: Foundations, Extensions, and Applications

  • Is based on a reproducible workflow with R Markdown and bookdown, etc.

  • Uses a hybrid publishing model:

    • Free online version at r.geocompx.org
    • Paid printed version (late 2024/early 2025)

Geocomputation with R

Geocomputation with R

Additional content:

  • A website with reproducible solutions to exercises
  • R package, geocompkg, simplifying installation of the packages used in the book
  • R packages with example data: spData, spDataLarge

Translations (some made by the community):

Geocomputation with Python

Geocomputation with Python, 1st edition:

  • An introduction to geocomputation using the Python programming language

That is not the final book cover

Geocomputation with Python

Geocomputation with Python, 1st edition:

  • An introduction to geocomputation using the Python programming language
  • The book is based on the same principles as the R book, but focusses on the fundations only
  • An almost complete version is available online at py.geocompx.org
  • It will be published in a similar hybrid model (2025?)

That is not the final book cover

Blog posts

GitHub organization

Discord

Social media

Project’s impact

Book readers (during the last 12 months): >100,000


GitHub stars (total): >1,800


Citations: >250


Courses/workshops:IS 616: Large Scale Data Analysis and Visualization, University of Mannheim, Germany; Geospatial Analysis in Economics with R, University of Göttingen, Germany; SOES3056 - Seascape Ecology, University of Southampton, UK; Geocomputation I, the City University of New York, USA; Advanced Research Methods, University of Barcelona, Spain; R for Earth-System Science, University of Oregon, USA; CASA0005 Geographic Information Systems and Science, University College London, England; ECS530 Analysing spatial data, Norwegian School of Economics, Norway; ESPM 288: Reproducible and Collaborative Data Science, Berkeley University of California, USA; CRD 298: Spatial Methods in Community Research, University of California, Davis, USA; CP6521 Advanced GIS, Georgia Tech, USA; Urban Data Analytics in R, University of North Carolina at Chapel Hill, USA; Geospatial Analytics, University of Leicester, UK; GEOG 28402 & 28403: Geographic Information Science II & III, University of Chicago, USA; …

Who is behind the project?

Robin Lovelace, University of Leeds


Jannes Muenchow, Cynkra


Jakub Nowosad, Adam Mickiewicz University, Poznań

Who is behind the project?

Michael Dorman, Ben-Gurion University of the Negev


Anita Graser, AIT Austrian Institute of Technology

Who is behind the project?

Mireia Camacho, Oliver Leroy, Baba Yoshihiko

smkerr, adambhouston, ahmohil, andrewmaclachlan, andtheWings, anisotropi4, annakrystalli, appelmar, ateucher, BjnNowak, chihinl, cshancock, cuixueqin, darrellcarvalho, dcooley, dpprdan, e-clin, eblondel, ec-nebi, edzer, erstearns, eyesofbambi, FlorentBedecarratsNM, florisvdh, ganes1410, gavinsimpson, giocomai, gregor-d, Himanshuteli, howardbaek, iod-ine, Jakidxav, jasongrahn, jbixon13, jimr1603, JoshCole-DTA, JosiahParry, jtmiclat, kant, katiejolly, katygregg, KHwong12, KiranmayiV, krystof236, kwhkim, LaurieLBaker, layik, Lvulis, Makosak, marcosci, MarHer90, martinfleis, mateuszrydzik, mdsumner, MikeJohnPage, mpaulacaldas, mtennekes, mvl22, nickbearman, olyerickson, p-kono, pat-s, pokyah, prosoitos, richfitz, RobinKohrs, rsbivand, schuetzingit, sdesabbata, sgillies, tibbles-and-tribbles, tim-salabim, tszberkowitz, tylerlittlefield, vlarmet, VLucet, wdearden, yihui, yutannihilation, yvkschaefer, zmbc

Who is behind the project?

tibbles-and-tribbles, florisvdh, katygregg, prosoitos, Lvulis, dhersz, erstearns, anisotropi4, darrellcarvalho, smkerr, cuixueqin, ghost, rsbivand, cc50liu, iod-ine, beingalink, cvitolo, gisma, EagleGeo, eblondel, Henrik-P, JannisLi, katiejolly, KHwong12, marcosci, mtennekes, SymbolixAU, zmbc, barryrowlingson, biscotty666, cshancock, dcsuh, e-clin, edzer, eyayaw, eyesofbambi, garethcao, giocomai, howardbaek, jimr1603, krystof236, kwhkim, layik, MarHer90, martinfleis, mateuszrydzik, mdsumner, nbruns, nickbearman, olyerickson, orlando-sabogal, pat-s, sdesabbata, SubasreeArvind, sy5938, tim-salabim, tylerlittlefield, vlarmet, yutannihilation, adambhouston, AdheraS, ahmohil, ALanguillaume, alankjackson, aloes2512, Altmic, andtheWings, angoodkind, annakrystalli, appelmar, ateucher, bchileen, BeBrian, BjnNowak, BlaiseKelly, Camil88, cbird999, chihinl, chrisjkuch, craig-shenton, cyenglish3, dataandcrowd, dcooley, dewoller, dmi3kno, DocOfi, donojazz, ec-nebi, EconGeo, egoipse, EhrmannS, ejokujona, ep142, etabeta78, fBedecarrats, FlorentBedecarratsNM, ganes1410, gavinsimpson, gbortz27, gregor-d, harryprince, hasukmistry, Himanshuteli, hxd1011, iDemirsoy, j-tamad, Jakidxav, jamietsakalos, jasongrahn, jbixon13, JBSP-code, jdiez, jeromemaiquez, jibcar, jldupouey, Jonkman1, JoshCole-DTA, JosiahParry, jpvillanuevac, jrosen48, jtmiclat, kant, karmaal2010, KiranmayiV, LaurieLBaker, LennertSchepers, Linlin-Sun, loreabad6, lwasser, mamereu, manab-prakash, marcelocarvalhoalves, maxpohlman, micha-silver, MikeJohnPage, mikejohnson51, mpadge, mpaulacaldas, mps9506, mvl22, myaseen208, neuwirthe, nreguera, p-kono, PanfengZhang, patperu, PauGallesClara, pembletonc, philipus, phungdo, pietrostefani, pokyah, pssguy, PublicHealthDataGeek, rasanderson, rCarto, richfitz, RobinKohrs, rriem, rs806, rywhale, schuetzingit, seanangio, selvaje, sgillies, Sreenath1986, stuartE9, talgalili, ThomasG77, tszberkowitz, vaulot, VishalAmbavade, VLucet, wacekk, WarthogARJ, wdearden, willet713, wirotela, yanbinghan, yihui, yvkschaefer, Zedseayou, znmeb

Our infrastructure

Publishing systems: R Markdown with bookdown, Quarto

Collaboration, version control, and continuous integration: GitHub, GitHub Actions with Docker

Hosting: Netlify

References: Zotero

R packages: geocompkg, spData

How does it work?

  1. Get the recent book source code (git pull)
  2. Write, write, write
  3. Update the book (git push)
  4. The book is automatically built and deployed
  5. Once a week the solution website is automatically updated1

Larger changes or additions are discussed in issues, made in branches, and reviewed in pull requests

PART 2

Poznań, Poland, June 2016

Origin story

Robin and I first met in June 2016

“There is a lack of open-access materials related to spatial data analysis in R”

We imagined our younger selves from a few years back as the target audience of the book

Cincinnati, USA and Leeds, UK, March 2017

geocompr is born

It took me more than two weeks to push the first sentence to the repository

Initial challenges

Book infrastructure:

  • R markdown + bookdown, GitHub, Travis CI

Book structure:

  • How to organize chapters, sections, and subsections

Book style:

  • = vs <-, package or package, etc.

Subjective decisions:

  • What to include, what to exclude

How to collaborate on GitHub:

  • Push to main (?), opening issues, reviewing pull requests

Communication:

  • GitHub issues, private repos, email, Gitter, Skype


Writing…

Jena, Germany, June 2017

Working in the open

Working the book in the open is a great motivator

It also enabled community contributions:

  • Improvements to the text
  • Changes to the code
  • Suggestions on content in the issue tracker


Expanding the team

Three of us met face-to-face for the first time in 2018

Cincinnati, USA; Leeds, UK; Jena, Germany; and beyond, 2017+

An open source cycle

Writing the book using many FOSS tools

An open source cycle

Writing the book using many FOSS tools


Contribute bug reports, suggestions, and code

An open source cycle

Writing the book using many FOSS tools


Contribute bug reports, suggestions, and code


Writing the book using many FOSS tools

An open source cycle

Writing the book using many FOSS tools


Contribute bug reports, suggestions, and code


Writing the book using many FOSS tools


Software developers contribute to the book


Writing the book using many FOSS tools

An open source cycle

Writing the book using many FOSS tools


Contribute bug reports, suggestions, and code


Writing the book using many FOSS tools


Software developers contribute to the book


Writing the book using many FOSS tools


External contributors (e.g., readers) improving the book


Writing the book using many FOSS tools…

Geocomputation with R, 1st edition (2019)

Never-ending story

Weddings, babies, git commits and other life events

  • Workshops, presentations, courses
  • Blog posts, social media, webinars
  • Updates, fixes, contributions

Expanding the horizons

We found ourselves working on projects in many different programming languages, including Python, C++, and Rust

We also wanted to continue sharing our knowledge with the community

It became clear that the ‘geocompr’ name was no longer appropriate for the more multilingual nature of the project


The geocompx name was born

PART 3

Earth, 2024+

Motivation

To give back

To learn and improve ourselves (writing is thinking, teaching is understanding)

To make a difference

To have a place to look for answers

To enjoy the creative process

To become famous and rich1

To build a reputation

What makes things easier

(In my case) university support

The FOSS4G community is great

A lot of infrastructure for technical/scientific writing is already in place

Nowadays, there are many examples of successful FOSS4G books

The hard things

Getting started

Some technical challenges, e.g., having consistent html and pdf versions, incorporating reviewers’ and copy editors’ comments to the book

Finding time

Getting feedback

Making decisions about the content (a trade-off between being timely and timeless)

Measuring impact (externalities)

Sustainability

How to contribute to ‘geocompx’

Visit https://geocompx.org/ and https://github.com/geocompx and see what is there

Look at the books, blog posts, and other materials


If you find it useful:

  • Ask questions about the content or make suggestions on GitHub, Mastodon or Discord
  • Help people get started (this can be an excellent way to consolidate and build your own skills)
  • Support community translations
  • Contribute to the book, blog, or other materials (from fixing typos, providing suggestions, to writing new content)

Writing new FOSS4G materials

https://quarto.org/ is a great tool for writing books, blog posts, and other materials1

Technical stuff is (mostly) easy: look at the source code of other works

(or just type quarto create in your terminal)

Start small, but within a technical template

Think about the audience: you can be your own audience

Decision: self-publishing vs. publisher (also, a license)

A few tips on collaborating on FOSS materials

Start with an outline, but don’t be afraid to change it later

Have a style guide

Write regularly – make it a habit

Write one sentence per line

Keep in touch with your co-authors

Give and receive feedback

Majority of contributors come and go

The project is a living thing

Keeping the energy up is crucial

Be kind and positive

Now, go and write!



THE END of THE PRESENTATION

geocompx will return