Skip to content

Commit c9fda29

Browse files
mfisher87lucialayriamciera
authored
Hackathon blog post (#106)
Co-authored-by: Lucia Layritz <[email protected]> Co-authored-by: Ciera Martinez <[email protected]>
1 parent 486c96a commit c9fda29

File tree

3 files changed

+202
-0
lines changed

3 files changed

+202
-0
lines changed
466 KB
Loading
Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
---
2+
title: "In-person Hackathon and Design Dialog 2025"
3+
description: |
4+
On August 13-14 in Berkeley CA, a group of ~25 dedicated geospatial professionals had a
5+
meeting of the minds. We worked together on code, design, and big-picture strategy!
6+
date: "2025-08-20"
7+
image: "group-photo.jpg"
8+
author:
9+
- name: "GeoJupyter Hackathon participants (see below)"
10+
categories:
11+
- "Events"
12+
---
13+
14+
When 25 geospatial professionals gathered in Berkeley for a
15+
[2-day intensive hackathon event](https://events.geojupyter.org/hackathons/202508-berkeley/),
16+
we didn't just write code, we reimagined what JupyterGIS could become.
17+
18+
19+
![A group photo of the in-person hackathon participants](group-photo.jpg){.lightbox}
20+
21+
22+
:rainbow: With backgrounds and skills all over the spectrum, everyone had something to teach and
23+
something to learn, creating a multiplier effect where our diversity amplified
24+
each other's contributions.
25+
26+
Four distinct working groups quickly emerged:
27+
28+
* infrastructure developers exploring containers and development environment setup,
29+
* documentation specialists filling in gaps and testing tutorials with fresh eyes,
30+
* API developers working on Python integration and data manipulation workflows, and
31+
* strategists zooming out to question JupyterGIS' fundamental purpose.
32+
33+
Each team made valuable contributions and wrote a summary of their activities:
34+
35+
36+
## :building_construction: Development infrastructure team
37+
38+
* Worked together to set up development environments for the first time
39+
* Explored using devcontainers to reduce startup burden for new contributors
40+
41+
> This is an interoperable development container that automates the dev environment
42+
> setup for JupyterGIS development.
43+
> It works both on Hub infrastructure and on VSCode / Codespaces without any
44+
> additional tinkering!
45+
> This means that users, regardless of their host OS, can build and iterate on
46+
> JupyterGIS either locally (using Docker or Docker + VSCode) or in the cloud (on
47+
> managed Hub infrastructure or GitHub codespaces).
48+
> A byproduct of this work was the development of a
49+
> [Dev Container Feature](https://github.com/GondekNP/devcontainer_jupyterhub_interoperator)
50+
> that provides a way for Jupyter-based images to play nice with `devcontainer`-based
51+
> tools without fuss, something I have been annoyed with for some time.
52+
53+
* Discussed the potential of using a JupyterHub for developing on JupyterLab extensions
54+
55+
56+
## :books: Documentation team
57+
58+
> Our hackathon topic brought together a diverse set of backgrounds and personas of
59+
> potential JupyterGIS users to test out and improve existing documentation and
60+
> tutorials.
61+
> Several pull requests, bug reports and feature suggestions were created and the
62+
> JupyterGIS project gained another 9 testers.
63+
> Repeating this experiment by giving this task to different types of user working
64+
> groups is one great way to help build a roadmap and envision the future of this
65+
> project.
66+
67+
* Tested JupyterGIS and reported bugs
68+
([#869](https://github.com/geojupyter/jupytergis/issues/869))
69+
* Suggested new features
70+
([#871](https://github.com/geojupyter/jupytergis/issues/871),
71+
[#876](https://github.com/geojupyter/jupytergis/issues/876))
72+
* Updated the structure of the JupyterGIS examples with a "guided tour" feel
73+
([#872](https://github.com/geojupyter/jupytergis/pull/872),
74+
[#878](https://github.com/geojupyter/jupytergis/pull/878)
75+
[#875](https://github.com/geojupyter/jupytergis/issues/875))
76+
* Tested JupyterGIS tutorials for accuracy and clarity, and submitted fixes
77+
([#873](https://github.com/geojupyter/jupytergis/pull/873))
78+
* Reviewed documentation prose and inline documentation (like docstrings) for clarity
79+
and errors, and submitted fixes!
80+
([#874](https://github.com/geojupyter/jupytergis/pull/874),
81+
[#867](https://github.com/geojupyter/jupytergis/pull/867),
82+
[#868](https://github.com/geojupyter/jupytergis/pull/868),
83+
[#873](https://github.com/geojupyter/jupytergis/pull/873),
84+
[#864](https://github.com/geojupyter/jupytergis/pull/864))
85+
86+
87+
## :snake: Python API ergonomics team
88+
89+
> We worked on getting data out of the map layer, manipulating the data and making
90+
> updates to the map.
91+
> We showed this was possible through two different workflows: toggling layer visibility
92+
> and getting GeoJSON from the layer source and turning it into a geopandas object.
93+
94+
Please see [#877](https://github.com/geojupyter/jupytergis/pull/877) for this team's
95+
prototype!
96+
97+
98+
## :world_map: Strategy team
99+
100+
> We followed a detailed user story focused on biodiversity and identified some gaps and
101+
> opportunities.
102+
> We thought about what problems JupyterGIS should and should not try to solve and
103+
> identified overlap with things Notebooks are good at and many researchers are
104+
> comfortable doing in Notebooks -- analysis.
105+
> By focusing more on visualization, an area where many practitioners already struggle
106+
> and a reason they open QGIS, we feel we can more quickly deliver a product that can be
107+
> used in daily work.
108+
> We also identified a robust STAC search implementation and GUI as something
109+
> alternatives do not excel at, and a possible "killer feature".
110+
111+
112+
* What should JupyterGIS be? What should JupyterGIS _not be_?
113+
* Should focus on the areas where users need the most help.
114+
For example, visual exploration is the most broadly-reported challenge.
115+
* Should not focus on drawing users away from Jupyter Notebook analysis workflows
116+
that are working for them and are well-served by Notebooks.
117+
For example, providing utilities in the visual environment that serve Notebook
118+
workflows: drawing or calculating areas of interest and moving those back over to
119+
the Notebook, synchronizing changes in Python data objects over to the map.
120+
**Not** trying to reimplement the QGIS/ArcGIS model builders unless we have a
121+
strong value-add.
122+
123+
![A Venn diagram illustrating overlap with Jupyter Notebooks](jupytergis-notebook-venn.jpg)
124+
125+
* Why do people leave QGIS?
126+
* Scaling analyses or performing analysis on big datasets
127+
* Repeatability & reproducibility with a Notebook or script
128+
* Why do people come back to QGIS?
129+
* Exploring results
130+
* Making a map to share or tell a story
131+
132+
133+
## :heart: Thank you :bow:
134+
135+
Thank you _so much_ to our wonderful hackathon participants for bringing a collaborative
136+
energy and creating a supportive atmosphere that made it fun and safe to take on hard
137+
problems!
138+
139+
Infinite thanks to our fantastic team of facilitators from the
140+
[Berkeley Institute for Data Science (BIDS)](https://bids.berkeley.edu) and the
141+
[Schmidt Center for Data Science and Environment (DSE)](https://dse.berkeley.edu)
142+
who curated equipment and a comfortable environment, solved problems, provided delicious
143+
caffeine and meals, expertly facilitated discussions, and more.
144+
145+
Finally, thanks to the [Berkeley Institute for Data Science
146+
(BIDS)](https://bids.berkeley.edu) for hosting us at their wonderful
147+
[AI Futures Lab](https://bids.berkeley.edu/news/announcing-ai-futures-lab-visionary-partnership-between-bids-and-uc-investments)
148+
space on day 1!
149+
What a view :star_struck: :bridge_at_night:
150+
151+
152+
## :mega: Call to join the community
153+
154+
We want to work with :index_pointing_at_the_viewer: **you**!
155+
With your collaboration, we can build less frustrating and more joyful and rewarding
156+
ways of working with geospatial data.
157+
Here's how:
158+
159+
:open_book: [Share a story about a workflow that needs improvement](https://github.com/geojupyter/jupytergis/issues/new?template=0-user-story.yml)!
160+
161+
:calendar: [Join a hackathon or community meeting](https://geojupyter.org/calendar)!
162+
163+
:left_speech_bubble: [Chat with us on Zulip](https://jupyter.zulipchat.com/#narrow/channel/471314-geojupyter)!
164+
165+
:test_tube: [Try JupyterGIS](https://jupytergis.readthedocs.io/)! Where does it (not)
166+
meet your needs?
167+
168+
:sunglasses: Share your rad vibes and leadership!
169+
170+
:love_letter: Get in touch with our community manager:
171+
[Zulip](https://jupyter.zulipchat.com/#narrow/channel/471314-geojupyter),
172+
[GitHub](https://github.com/mfisher87), [email](mailto:[email protected])
173+
174+
175+
---
176+
177+
_This post co-created by hackathon participants:
178+
Arjun Verma,
179+
Brianna Pagan,
180+
Brookie Guzder-Williams,
181+
Ciera Martinez,
182+
Fernando Pérez,
183+
James Colliander,
184+
Jason Grout,
185+
Jon Atkins,
186+
Kevin Koy,
187+
Kirstie Whitaker,
188+
Kristin Davis,
189+
Lucia Layritz,
190+
Maryam Hosseini,
191+
Maryam Vareth,
192+
Matt Fisher,
193+
Maxwell Taniguchi-King,
194+
Maya Weltman-Fahs,
195+
Maya Zomer,
196+
Michele Tobias,
197+
Min RK,
198+
Nick Gondek,
199+
Qiusheng Wu,
200+
Shane Grigsby,
201+
Stace Maples,
202+
Tyler Marino_
362 KB
Loading

0 commit comments

Comments
 (0)