BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//hacksw/handcal//NONSGML v1.0//EN
X-WR-CALNAME:Madison Clojure Events
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/6
DTSTART:20241114T003000Z
DTEND:20241114T030000Z
SUMMARY:Clojure Conference Takeaways and Inspirations
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:The Clojure community held two large conferences over the last two months.\nSeveral of our regulars attended and/or spoke, and last meetup we phoned in to catch the last day of Clojure/conj.\n\nA lot happened at these conferences. This meetup will provide space to discuss our experience, takeaways and inspirations.\n\nTopics:\n\n- hallway track reports\n- favorite talks\n- conference followups (new projects/collaborations, ideas, initiatives)\n- industry and community trends\n\nNo online stream is planned.\n\nAgenda:\n\n- 6:30pm arrive, food & drink provided (pizza, bottled water, sparkling water, candy, fruit)\n- 7pm start structured discussion\n- 8pm end structured discussion\n- 9pm end meetup\n\nRSVP: https://github.com/orgs/madclj/discussions/6
URL:https://github.com/orgs/madclj/discussions/6
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/7
DTSTART:20241212T003000Z
DTEND:20241212T030000Z
SUMMARY:Celebrating A Year of (Madison) Clojure
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:It's been a busy year! This will be our 11th and final meetup of 2024.\n\nLet's wind down and celebrate the year together. We'll have a loosely structured discussion about our year with an eye towards Madison Clojure in 2025.\n\nTopics:\n\n- what characterized Clojure in 2024 for you?\n- feedback on Madison Clojure in 2024\n- planning 2025\n\nWhether this is streamed will be determined closer to the event.\n\nAgenda:\n\n- 6:30pm arrive, food & drink provided (TBD)\n- 7pm, start structured discussion\n- 8pm end structured discussion\n- 9pm end meetup\n\nRSVP: https://github.com/orgs/madclj/discussions/7
URL:https://github.com/orgs/madclj/discussions/7
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/10
DTSTART:20250109T003000Z
DTEND:20250109T030000Z
SUMMARY:Round-table: Native Clojure
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:Clojure was designed to be hosted on virtual machines like Java and CLR where\nlow-level concerns are handled by the virtual machine. This week our meetup\nis all about connecting Clojure with native code and executables.\n\nTake a look at the suggested topics below. If you'd like to lead or participate\nin a discussion about them, follow some of the links and prepare brief presentation\n(any format). We can have multiple presenters on the same topic, feel free to coordinate\nin the GitHub Discussion.\n\nPlease suggest any related topics you'd like for us to cover or just bring them up\nduring the meetup.\n\nTopics:\n\n- Original design of Clojure on JVM\n  - advantages + disadvantages\n- Compiling Clojure to native executables with GraalVM\n  - differences from JVM\n- Babashka + SCI\n  - how is startup so fast\n  - what's involved for library compatibility\n- Jank on LLVM\n  - what is LLVM\n  - current jank roadmap and progress\n- Clang\n  - how clang is relevant to Clojure\n  - what are clang plugins\n- JNI vs JNA vs FFI (new in JVM 22, aka Project Panama)\n\nLinks:\n\n- [https://github.com/phronmophobic/clong]()\n  - A wrapper for libclang and a generator that can turn c header files into clojure apis.\n- [https://github.com/babashka/babashka]()\n  - Babashka is a native Clojure interpreter for scripting with fast startup.\n- [https://github.com/babashka/SCI]()\n  - Clojure interpreter compilable with GraalVM native\n- [https://github.com/clj-easy/graal-docs]()\n  - scripts and tips on natively compiling Clojure programs with GraalVM.\n- [https://github.com/jank-lang/jank]()\n  - jank is a Clojure dialect on LLVM with C++ interop.\n- [https://github.com/pfeodrippe/vybe/blob/develop/src/vybe/c.clj]()\n  - C compiler written in Clojure to extend Supercollider (Overtone)\n  - [commentary](https://clojurians.slack.com/archives/C053Q1QSG/p1732687749027129?thread_ts=1731877266.734569&cid=C053Q1QSG)\n  - [example usage](https://github.com/pfeodrippe/vybe/blob/641c00d07606c4cae126cee02930026e3d055f7f/src/vybe/experimental/audio/overtone.clj#L308)\n- [https://openjdk.org/jeps/454]()\n  - an API by which Java programs can interoperate with code and data outside of the Java runtime.\n- [https://github.com/openjdk/jextract]()\n  - jextract is a tool which mechanically generates Java bindings from native library headers.\n  - via clang C API\n- [https://github.com/pfeodrippe/vybe]()\n  - Clojure wrapper using Java's new Foreign Function & Memory API (JVM 22)\n\nAgenda:\n\n- 6:30pm arrive, food & drink provided\n- 7pm, start structured discussion\n- 8:30pm end structured discussion\n- 9:30pm end meetup\n\nRSVP: https://github.com/orgs/madclj/discussions/10
URL:https://github.com/orgs/madclj/discussions/10
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/22
DTSTART:20250121T180000Z
DTEND:20250121T200000Z
SUMMARY:CANCELLED Planning Lunch: Causal Profiling
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:NOTE: This event has been cancelled due to weather.\n\nWant to be involved in our [next meetup on Causal Profiling (Feb 12th)](https://github.com/orgs/madclj/discussions/11)? Let's have lunch and plan something cool!\n\nCausal profiling is a benchmarking strategy that runs experiments by slowing parts of your program down until it can determine which lines would improve overall performance if improved.\n\nClojure doesn't have a causal profiler yet. Naively, it doesn't seem that hard! Perhaps we can divide and conquer, and present our results at the meetup.\n\nIt might be fun to plan another lunch before the meetup to check in.\n\nIdeas:\n- write causal profiler based on clj-async-profiler\n- write pure clojure causal profiler based on https://github.com/taoensso/tufte\n- write smallest and simplest clojure causal profiler displaying essence\n- adapt JCoz to clojure https://github.com/Byte-Lab/JCoz/issues/23\n- bench https://github.com/tonsky/fast-edn/ using JCoz (already implemented in Java)\n  - can we predict where clojure.edn reader is slow? (also Java)\n- summarize theory behind causal profiling\n  - https://www.sigops.org/s/conferences/sosp/2015/current/2015-Monterey/printable/090-curtsinger.pdf\n- existing discussion\n  - https://www.reddit.com/r/Clojure/comments/kstuvl/anyone_tried_using_jcoz_java_causal_profiler_with/\n  - https://clojureverse.org/t/avoiding-recursive-function-replacement-with-redefs-fn/5399/11\n\nRSVP: https://github.com/orgs/madclj/discussions/22
URL:https://github.com/orgs/madclj/discussions/22
STATUS:CANCELLED
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/11
DTSTART:20250220T003000Z
DTEND:20250220T030000Z
SUMMARY:[NEW DATE] Meetup: Causal Profiling
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:TBD\n\nRSVP: https://github.com/orgs/madclj/discussions/11
URL:https://github.com/orgs/madclj/discussions/11
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/12
DTSTART:20250312T233000Z
DTEND:20250313T020000Z
SUMMARY:Meetup: Decompilation and clang plugins
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:Sayan will give a presentation on a clang plugin she is designing.\n\nAmbrose will demonstrate how to to decompile Clojure to inspect the equivalent Java code. We will use this to show how let{fn} is implemented in Clojure, then compare this to jank's actual LLVM IR output.\n\nAgenda:\n\n- 6:30pm arrive, food & drink provided\n- 7pm, start talks\n- 9pm end meetup\n\nRSVP: https://github.com/orgs/madclj/discussions/12
URL:https://github.com/orgs/madclj/discussions/12
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/13
DTSTART:20250409T233000Z
DTEND:20250410T020000Z
SUMMARY:Discussion: fast-edn and its broader implications
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:[fast-edn](https://github.com/tonsky/fast-edn) claims to parse EDN 6x faster than Clojure.\nIt is based on [charred](https://github.com/cnuernber/charred), a similar library but for JSON.\n\nQuestions:\n- How does fast-edn manage to outperform other approaches?\n- Are you aware of applications that might run faster with 6x faster EDN parsing?\n- Can these insights be used elsewhere in the Clojure compiler?\n- fast-edn claims parity with clojure.edn. Which correspondences are important?\n- How would you test these correspondences hold?\n- Why is clojure.edn separate from Clojure's parser, despite EDN being a subset of Clojure syntax?\n- fast-edn is faster than transit. When would use choose transit over fast-edn?\n\nSchedule:\n\n- 6:30pm arrive, food & drink provided\n- 7pm, start discussion\n- 9pm end meetup\n\nRSVP: https://github.com/orgs/madclj/discussions/13
URL:https://github.com/orgs/madclj/discussions/13
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/23
DTSTART:20250416T233000Z
DTEND:20250417T020000Z
SUMMARY:fast-edn Bug Hunt (Round 2)
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:Continuing from our [previous meetup](https://github.com/orgs/madclj/discussions/13), we will learn about and hunt for bugs in [fast-edn](https://github.com/tonsky/fast-edn).\n\nSchedule:\n\n- 6:30pm arrive, food & drink provided\n- 7pm, start meetup\n- 9pm end meetup\n\nRSVP: https://github.com/orgs/madclj/discussions/23
URL:https://github.com/orgs/madclj/discussions/23
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/14
DTSTART:20250514T233000Z
DTEND:20250515T020000Z
SUMMARY:Secure Clojure Supply Chains
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 3rd floor ("Pop" Conference Room), Madison, WI
DESCRIPTION:I've been interested in supply-chain attacks for a few years now. I think Clojure has a ways to go in protecting from them in practice. It would be great to get everyone's take on it and maybe we can prototype some ideas.\n\nQuestions:\n- What are ways Clojure programs can be exploited via supply chain attacks?\n- Are jars always what they seem? When is a git SHA not enough? What can we do to detect and prevent attacks?\n- What can we do to detect and prevent attacks?\n\nLet's try and design and prototype some detection tools during the meetup.\n\nRSVP: https://github.com/orgs/madclj/discussions/14
URL:https://github.com/orgs/madclj/discussions/14
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/15
DTSTART:20250611T233000Z
DTEND:20250612T020000Z
SUMMARY:Multiversion concurrency control
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 3rd floor ("Pop" Conference Room), Madison, WI
DESCRIPTION:This week, the subject is multiversion concurrency control, the basis of Clojure refs and a key concept in databases. Sayan will give a talk and we will follow the talk with a hack session to help relate the concepts of the talk to concrete Clojure code.\n\nRSVP: https://github.com/orgs/madclj/discussions/15
URL:https://github.com/orgs/madclj/discussions/15
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/16
DTSTART:20250709T233000Z
DTEND:20250710T020000Z
SUMMARY:deps.fnl
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:[Fennel](https://fennel-lang.org/) is the closest thing to a [Clojure for Lua](https://fennel-lang.org/from-clojure). Recently, the [deps.fnl](https://gitlab.com/andreyorst/deps.fnl) dependency manager was released, inspired by the Clojure CLI. It provides git deps and Luarocks integration (Lua packages).\n\nIdeas for discussion:\n- deps.fnl vs deps.edn\n  - special consideration for Luarocks transitive deps vs Maven transitive deps\n    - version ranges thwart reproducibility\n  - ability to provide e.g., `:paths` for deps\n    - depend on Lua libs via git that don't know about deps.fnl\n- Q: Many Clojure variants can use deps.edn (cljs, Clojure Dart, jank). Clojure CLR is an exception. Why do Clojure CLR and Fennel need their own tooling?\n- deps.fnl blog posts\n  - https://andreyor.st/posts/2025-01-10-depsfnl-a-new-dependency-manager-for-fennel-projects/\n  - https://andreyor.st/posts/2025-02-16-depsfnl-022-released/\n- [Fennel Tutorial](https://fennel-lang.org/tutorial)\n- [Options for deploying Fennel code](https://fennel-lang.org/setup#embedding-fennel)\n  - similar options to cljs\n    - uberscript\n    - embedded compiler/repl\n- [fennel-cljlib](https://gitlab.com/andreyorst/fennel-cljlib)\n- Clojure-like library for Fennel\n- [8fl](https://git.sr.ht/~nasser/8fl-renoise)\n  - Fennel live-coding for [Renoise](https://www.renoise.com/)\n  - [Video: Fennel Conf 2022](https://conf.fennel-lang.org/2022#video7)\n- [ambrosebs-reaper-scripts](https://github.com/frenchy64/ambrosebs-reaper-scripts/tree/main/fnl)\n  - combines bb + clj + fnl => Lua scripts for [Reaper](https://www.reaper.fm/)\n- [renoise-fennel-starter-kit](https://git.sr.ht/~ambrosebs/renoise-fennel-starter-kit)\n  - example base for scripting [Renoise](https://www.renoise.com/) with Fennel\n\nRSVP: https://github.com/orgs/madclj/discussions/16
URL:https://github.com/orgs/madclj/discussions/16
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/25
DTSTART:20250723T160000Z
DTEND:20250723T200000Z
SUMMARY:July 23rd: Coworking day
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:TBD\n\nRSVP: https://github.com/orgs/madclj/discussions/25
URL:https://github.com/orgs/madclj/discussions/25
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/26
DTSTART:20250730T160000Z
DTEND:20250730T200000Z
SUMMARY:July 30th: Coworking day
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:The building will be open. Go up the main stairs in the lobby to the 2nd floor, turn right and go halfway down the hall. We have reserved the classroom on this floor (big room with circular tables).\n\nIf you need to duck out to work or take a call, use the area overlooking the lobby stairs. If anyone asks who your host is, mention Madison Clojure and please bring them to see Ambrose.\n\nSee RVSP link for more details about activities.\n\nRSVP: https://github.com/orgs/madclj/discussions/26
URL:https://github.com/orgs/madclj/discussions/26
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/27
DTSTART:20250806T160000Z
DTEND:20250806T200000Z
SUMMARY:CANCELLED August 6th: Coworking day
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:Skipping this week, next week is our regular evening meetup.\n\nRSVP: https://github.com/orgs/madclj/discussions/27
URL:https://github.com/orgs/madclj/discussions/27
STATUS:CANCELLED
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/17
DTSTART:20250813T233000Z
DTEND:20250814T020000Z
SUMMARY:Superoptimization
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:Let's discuss [superoptimization](https://github.com/orgs/madclj/discussions/17#discussioncomment-14064503) and its [Clojure implementation](https://github.com/twhume/superoptimiser/tree/master/SuperOptimiser).\n\nRSVP: https://github.com/orgs/madclj/discussions/17
URL:https://github.com/orgs/madclj/discussions/17
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/28
DTSTART:20250827T160000Z
DTEND:20250827T200000Z
SUMMARY:Coworking day
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:Coworking.\n\nRSVP: https://github.com/orgs/madclj/discussions/28
URL:https://github.com/orgs/madclj/discussions/28
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/30
DTSTART:20250903T160000Z
DTEND:20250903T200000Z
SUMMARY:Coworking day
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:Coworking.\n\nRSVP: https://github.com/orgs/madclj/discussions/30
URL:https://github.com/orgs/madclj/discussions/30
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/18
DTSTART:20250910T233000Z
DTEND:20250911T020000Z
SUMMARY:CANCELLED September Meetup
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:CANCELLED\n\nRSVP: https://github.com/orgs/madclj/discussions/18
URL:https://github.com/orgs/madclj/discussions/18
STATUS:CANCELLED
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/19
DTSTART:20251008T233000Z
DTEND:20251009T020000Z
SUMMARY:Workshop: Practical Domain Modeling in Clojure
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:Eric Normand will give us a preview of his [Clojure/conj 2025 workshop](https://www.2025.clojure-conj.org/workshops):\n\nThe biggest source of unnecessary code complexity and maintenance expense is a poor domain model.\n\nThis workshop will equip you with the tools to create, evaluate, and improve models for any domain. Based on the material for my upcoming book on domain modeling and 12+ years of teaching Clojure, you will be guided through exercises and discussions about what makes a domain model. Join us to deepen your software design skills that improve the maintainability and expressivity of your code.\n\nRSVP: https://github.com/orgs/madclj/discussions/19
URL:https://github.com/orgs/madclj/discussions/19
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/20
DTSTART:20251113T143000Z
DTEND:20251113T220000Z
SUMMARY:Clojure/conj 2025 Day 1 Teleconference
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:Day 1 of watch party for https://www.2025.clojure-conj.org/schedule\n\nRSVP: https://github.com/orgs/madclj/discussions/20
URL:https://github.com/orgs/madclj/discussions/20
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/29
DTSTART:20251114T143000Z
DTEND:20251114T220000Z
SUMMARY:Clojure/conj 2025 Day 2 Teleconference
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:Day 2 of watch party for https://www.2025.clojure-conj.org/schedule\n\nRSVP: https://github.com/orgs/madclj/discussions/29
URL:https://github.com/orgs/madclj/discussions/29
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/21
DTSTART:20251211T003000Z
DTEND:20251211T030000Z
SUMMARY:Madison Clojure End of Year Celebration
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:Let's eat, hang out and celebrate another year of Madison Clojure.\nWe'll have a loose meetup structure to help make the most of our time together:\n\nTopics:\n\n- personal achievements you'd like to share\n- exciting Clojure developments in 2025\n- Clojure topics for 2026?\n\nRSVP: https://github.com/orgs/madclj/discussions/21
URL:https://github.com/orgs/madclj/discussions/21
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/37
DTSTART:20260115T003000Z
DTEND:20260115T030000Z
SUMMARY:January 14th 2026 Meetup
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:TBD\n\nRSVP: https://github.com/orgs/madclj/discussions/37
URL:https://github.com/orgs/madclj/discussions/37
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/53
DTSTART:20260122T003000Z
DTEND:20260122T030000Z
SUMMARY:January 21st 2026: Huddle to propose doseq fix upstream
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:Following up from last week, there are a few outstanding tasks.\n\n1. we could construct benchmarks to determine the runtime cost of optimizing the expansion of doseq. this might help proposing it upstream to clojure core.\n2. we could play with cloogle (indexed analysis results of clojure libs) to understand how doseq is used in practice https://cloogle.phronemophobic.com/name-search.html?q=clojure.core%2Fdoseq&tables=var-usages\n\nExtra fun:\n\n1. we could port doseq to https://gitlab.com/andreyorst/fennel-cljlib\n\nContext:\n\n- code: https://github.com/frenchy64/fully-satisfies/blob/main/src/io/github/frenchy64/fully_satisfies/linear_expansion.clj\n- tests: https://github.com/frenchy64/fully-satisfies/blob/main/test/io/github/frenchy64/fully_satisfies/linear_expansion_test.clj\n- upstream ticket: https://clojure.atlassian.net/browse/CLJ-2900\n\nAgenda:\n\n- 6:30pm Arrive\n- 7pm start meetup\n- 8-9pm end meetup\n\nRSVP: https://github.com/orgs/madclj/discussions/53
URL:https://github.com/orgs/madclj/discussions/53
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/38
DTSTART:20260205T003000Z
DTEND:20260205T030000Z
SUMMARY:February 4th 2026 Meetup
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:TBD\n\nRSVP: https://github.com/orgs/madclj/discussions/38
URL:https://github.com/orgs/madclj/discussions/38
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/39
DTSTART:20260311T233000Z
DTEND:20260312T020000Z
SUMMARY:March 11th 2026 Meetup
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:TBD\n\nRSVP: https://github.com/orgs/madclj/discussions/39
URL:https://github.com/orgs/madclj/discussions/39
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/40
DTSTART:20260408T233000Z
DTEND:20260409T020000Z
SUMMARY:April 8th 2026 Meetup
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:TBD\n\nRSVP: https://github.com/orgs/madclj/discussions/40
URL:https://github.com/orgs/madclj/discussions/40
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/58
DTSTART:20260416T230000Z
DTEND:20260417T020000Z
SUMMARY:CANCELLED Clojure Documentary Watch Party
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:CANCELLED\n\nRSVP: https://github.com/orgs/madclj/discussions/58
URL:https://github.com/orgs/madclj/discussions/58
STATUS:CANCELLED
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/62
DTSTART:20260417T170000Z
DTEND:20260417T210000Z
SUMMARY:Clojure Documentary Live Q&A
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:Schedule:\n\n- 12:00PM arrive\n- 12:45PM watch clojure documentary (65 minutes)\n- 2:00PM watch live Q&A\n- 3:00PM hang out\n- 4:00PM end meetup\n\nRSVP: https://github.com/orgs/madclj/discussions/62
URL:https://github.com/orgs/madclj/discussions/62
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/41
DTSTART:20260513T233000Z
DTEND:20260514T020000Z
SUMMARY:CANCELLED: May 13th 2026 Meetup
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:TBD\n\nRSVP: https://github.com/orgs/madclj/discussions/41
URL:https://github.com/orgs/madclj/discussions/41
STATUS:CANCELLED
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/42
DTSTART:20260610T233000Z
DTEND:20260611T020000Z
SUMMARY:CANCELLED: June 10th 2026 Meetup
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:TBD\n\nRSVP: https://github.com/orgs/madclj/discussions/42
URL:https://github.com/orgs/madclj/discussions/42
STATUS:CANCELLED
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/43
DTSTART:20260708T233000Z
DTEND:20260709T020000Z
SUMMARY:CANCELLED: July 8th 2026 Meetup
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:TBD\n\nRSVP: https://github.com/orgs/madclj/discussions/43
URL:https://github.com/orgs/madclj/discussions/43
STATUS:CANCELLED
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/44
DTSTART:20260812T233000Z
DTEND:20260813T020000Z
SUMMARY:CANCELLED: August 12th 2026 Meetup
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:TBD\n\nRSVP: https://github.com/orgs/madclj/discussions/44
URL:https://github.com/orgs/madclj/discussions/44
STATUS:CANCELLED
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/45
DTSTART:20260909T233000Z
DTEND:20260910T020000Z
SUMMARY:CANCELLED: September 9th 2026 Meetup
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:TBD\n\nRSVP: https://github.com/orgs/madclj/discussions/45
URL:https://github.com/orgs/madclj/discussions/45
STATUS:CANCELLED
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/46
DTSTART:20261015T233000Z
DTEND:20261016T020000Z
SUMMARY:October 15th 2026 Meetup
LOCATION:[Madison Central Library](https://maps.app.goo.gl/PCG7SVRPysycNqY77)
201 W Mifflin St, Madison, WI 53703, Study Room 209, Madison, WI
DESCRIPTION:TBD\n\nRSVP: https://github.com/orgs/madclj/discussions/46
URL:https://github.com/orgs/madclj/discussions/46
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/47
DTSTART:20261112T003000Z
DTEND:20261112T030000Z
SUMMARY:CANCELLED: November 11th 2026 Meetup
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:TBD\n\nRSVP: https://github.com/orgs/madclj/discussions/47
URL:https://github.com/orgs/madclj/discussions/47
STATUS:CANCELLED
END:VEVENT
BEGIN:VEVENT
UID:https://github.com/orgs/madclj/discussions/48
DTSTART:20261210T003000Z
DTEND:20261210T030000Z
SUMMARY:CANCELLED: December 9th 2026 Meetup
LOCATION:[StartingBlock Madison](https://www.google.com/maps/search/?api=1&query=43.081245%2C%20-89.374054)
821 E Washington Ave 2nd floor, Madison, WI
DESCRIPTION:TBD\n\nRSVP: https://github.com/orgs/madclj/discussions/48
URL:https://github.com/orgs/madclj/discussions/48
STATUS:CANCELLED
END:VEVENT
END:VCALENDAR