From bf53e7fac00062da2cf78c0abb79b7e087c48f20 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Mon, 15 Dec 2025 17:14:10 +0100 Subject: [PATCH 1/3] Add next meetup --- index.html.pm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/index.html.pm b/index.html.pm index d32b780..b66cc85 100644 --- a/index.html.pm +++ b/index.html.pm @@ -73,6 +73,49 @@ } ◊meetups{ + ◊meetup[#:title "28.01.26"]{ + ◊par{ + The next meetup will take place on the 28.01.26 at the ◊link["https://itdesign.de/"]{itdesign office}, Friedrichstraße 12. + } + ◊div[#:class "mx-2 my-4 sm:text-lg leading-relaxed"]{ + ◊orga{18:45 Doors open & Welcome} + ◊p[#:class ""]{◊span[#:class "font-medium"]{Introduction to Property-Based Testing} (Stefan)} + ◊abstract{ + ◊p[#:class "my-2"]{ + How can we test our software, find bugs and make sure that it works as intended -- without time-consumingly hand-crafting example-based tests, which are still likely to miss important cases? + } + ◊p[#:class "my-2"]{ + Originating from Haskell's QuickCheck and the world of functional programming, *property-based testing* is one interesting approach to this problem: + } + ◊p[#:class "my-2"]{ + instead of writing individual tests, inputs are automatically generated and the implementation is verified by checking expected relationships between inputs and outputs (*properties*). + } + ◊p[#:class "my-2"]{ + This introduction will cover the basics: + } + ◊p[#:class "my-2"]{ + Starting from testing purely functional code, we'll discuss strategies for expressing properties without actually knowing the correct solution beforehand and without having to duplicate implementation logic. + } + ◊p[#:class "my-2"]{ + This will be most useful during development. + } + ◊p[#:class "my-2"]{ + From there on, we'll also take a look into model-based/stateful property tests, which can be used when you are not in full control of the system-under-test, e.g. for testing non-functional stateful code/interfaces and already-existing real-world systems. + } + ◊p[#:class "my-2"]{ + Afterwards I'd like to hear from *YOU*: + ◊ul[#:class "list-inside list-disc"]{ + ◊li{When did you use property testing?} + ◊li{What was a surprising or interesting property that helped you specify system behavior?} + ◊li{Can you share further strategies for expressing properties?} + } + } + } + ◊orga{Food, talking, coding, whatever} + ◊orga{22.00 End} + } + } + ◊meetup[#:title "03.12.25"]{ ◊par{ The next meetup will take place on the 29.10.25 at the ◊link["https://itdesign.de/"]{itdesign office}, Friedrichstraße 12. From 8e6914965bd6c755c6227be8cc99b979d54d0b3a Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Mon, 15 Dec 2025 17:20:58 +0100 Subject: [PATCH 2/3] Fix past event --- index.html.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html.pm b/index.html.pm index b66cc85..5b624be 100644 --- a/index.html.pm +++ b/index.html.pm @@ -118,7 +118,7 @@ ◊meetup[#:title "03.12.25"]{ ◊par{ - The next meetup will take place on the 29.10.25 at the ◊link["https://itdesign.de/"]{itdesign office}, Friedrichstraße 12. + This meetup took place on the 29.10.25 at the ◊link["https://itdesign.de/"]{itdesign office}, Friedrichstraße 12. } ◊div[#:class "mx-2 my-4 sm:text-lg leading-relaxed"]{ ◊orga{18:45 Doors open & Welcome} From 565a61430b8804e54c701ad8da3873f4e4a55e98 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Mon, 15 Dec 2025 17:22:32 +0100 Subject: [PATCH 3/3] Also fix past past event --- index.html.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html.pm b/index.html.pm index 5b624be..3c2ff14 100644 --- a/index.html.pm +++ b/index.html.pm @@ -167,7 +167,7 @@ Neat tricks welcome :) ◊meetup[#:title "29.10.25"]{ ◊par{ - The this meetup took place on the 29.10.25 at the ◊link["https://itdesign.de/"]{itdesign office}, Friedrichstraße 12. + This meetup took place on the 29.10.25 at the ◊link["https://itdesign.de/"]{itdesign office}, Friedrichstraße 12. } ◊div[#:class "mx-2 my-4 sm:text-lg leading-relaxed"]{ ◊orga{18:45 Doors open & Welcome}