41554 blogs · [ { "id": "01a08796-dce0-73a9-8f40-5c9164c7faf4", "title": "The Transporter Accident Severity Scale", "url": "https://kousenit.org/2026/08/23/transporter-accident-severity-scale/", "published_at": "2026-08-23T23:17:56+00:00" }, { "id": "01a08796-dce0-73a9-8f40-5c916597318b", "title": "I Finally Understand What MCP Is For", "url": "https://kousenit.org/2025/06/22/i-finally-understand-what-mcp-is-for/", "published_at": "2025-06-22T18:42:15+00:00" }, { "id": "01a08796-dce0-73a9-8f40-5c9165b40336", "title": "Sure, I’ll sign your ebook", "url": "https://kousenit.org/2025/05/28/sure-ill-sign-your-ebook/", "published_at": "2025-05-28T14:41:48+00:00" }, { "id": "01a08796-dce0-73a9-8f40-5c9165c95929", "title": "Waiting for Spring AI Streaming Responses in JUnit Tests", "url": "https://kousenit.org/2025/05/27/waiting-for-spring-ai-streaming-responses-in-junit-tests/", "published_at": "2025-05-27T17:58:27+00:00" }, { "id": "01a08796-dce0-73a9-8f40-5c91666816ae", "title": "AI vs Cthulhu: How to Bypass Guardrails", "url": "https://kousenit.org/2024/10/29/ai-vs-cthulhu-how-to-bypass-guardrails/", "published_at": "2024-10-29T22:00:50+00:00" }, { "id": "01a08796-dce0-73a9-8f40-5c916723baac", "title": "Perplexity AI API: Real-Time Search and AI Summation", "url": "https://kousenit.org/2024/10/25/perplexity-ai-api-real-time-search-and-ai-summation/", "published_at": "2024-10-25T18:48:40+00:00" }, { "id": "01a08796-dce0-73a9-8f40-5c916821f145", "title": "Creating an AI-Generated Opera with LangChain4j", "url": "https://kousenit.org/2024/09/21/creating-an-ai-generated-opera-with-langchain4j/", "published_at": "2024-09-21T20:41:42+00:00" }, { "id": "01a08796-dce0-73a9-8f40-5c91685b6035", "title": "Conversations with LangChain4j", "url": "https://kousenit.org/2024/09/05/conversations-with-langchain4j/", "published_at": "2024-09-05T21:18:09+00:00" }, { "id": "01a08796-dce0-73a9-8f40-5c916899f940", "title": "A Really Easy Way to Add AI to Java", "url": "https://kousenit.org/2023/12/10/a-really-easy-way-to-add-ai-to-java/", "published_at": "2023-12-10T16:29:40+00:00" }, { "id": "01a08796-dce0-73a9-8f40-5c91694da254", "title": "When custom GPT’s don’t cooperate", "url": "https://kousenit.org/2023/11/25/when-custom-gpts-dont-cooperate/", "published_at": "2023-11-25T16:08:53+00:00" }, { "id": "01a0bb49-f734-7352-b026-284a6195bb93", "title": "The Magic of AI Services with LangChain4J", "url": "https://kousenit.org/2023/11/06/the-magic-of-ai-services-with-langchain4j/", "published_at": "2023-11-06T14:21:15+00:00" }, { "id": "01a0bb49-f734-7352-b026-284a625cda0c", "title": "Tftjs Newsletter Video for Oct 30, 2023", "url": "https://kousenit.org/2023/10/31/tftjs-newsletter-video-for-oct-30-2023/", "published_at": "2023-10-31T15:43:16+00:00" }, { "id": "01a0bb49-f734-7352-b026-284a625fdeda", "title": "Tftjs Newsletter Video for Oct 23, 2023", "url": "https://kousenit.org/2023/10/23/tftjs-newsletter-video-for-oct-23-2023/", "published_at": "2023-10-23T20:37:42+00:00" }, { "id": "01a0bb49-f734-7352-b026-284a631cf378", "title": "OpenAI and Java: Transcribe and Analyze Meeting Minutes", "url": "https://kousenit.org/2023/10/21/openai-and-java-transcribe-and-analyze-meeting-minutes/", "published_at": "2023-10-21T14:25:48+00:00" }, { "id": "01a0bb49-f734-7352-b026-284a635b8891", "title": "Using Spring HTTP Exchange Interfaces to access REST services", "url": "https://kousenit.org/2023/10/17/using-spring-http-exchange-interfaces-to-access-rest-services/", "published_at": "2023-10-17T17:46:26+00:00" }, { "id": "01a0bb49-f734-7352-b026-284a63f25621", "title": "Spring with ChatGPT", "url": "https://kousenit.org/2023/10/13/spring-with-chatgpt/", "published_at": "2023-10-14T00:04:26+00:00" }, { "id": "01a0bb49-f734-7352-b026-284a6492f429", "title": "Groovy Podcast Ep. 89 (S07E01)", "url": "https://kousenit.org/2023/03/29/groovy-podcast-ep-89-s07e01/", "published_at": "2023-03-29T17:13:06+00:00" }, { "id": "01a0bb49-f734-7352-b026-284a65235a41", "title": "Groovy Podcast, Episode 88 (S06E03)", "url": "https://kousenit.org/2022/10/09/groovy-podcast-episode-88-s06e03/", "published_at": "2022-10-09T16:43:12+00:00" }, { "id": "01a0bb49-f734-7352-b026-284a659f8fc2", "title": "Groovy Podcast, Episode 87 (S06E02), with Ken Kousen and Sergio del Amo Caballero", "url": "https://kousenit.org/2022/06/16/groovy-podcast-episode-87-s06e02-with-ken-kousen-and-sergio-del-amo-caballero/", "published_at": "2022-06-16T17:43:05+00:00" }, { "id": "01a0bb49-f734-7352-b026-284a665026b8", "title": "Spring’s queryForStream Method", "url": "https://kousenit.org/2022/05/26/springs-queryforstream-method/", "published_at": "2022-05-26T17:32:38+00:00" }, { "id": "01a0bb56-c60d-72ce-9b41-e037add95feb", "title": "Groovy Podcast, S06E01, ep. 86, hosted by Ken Kousen and Sergio del Amo", "url": "https://kousenit.org/2022/02/02/groovy-podcast-s06e01-ep-86-hosted-by-ken-kousen-and-sergio-del-amo/", "published_at": "2022-02-02T18:53:07+00:00" }, { "id": "01a0bb56-c60d-72ce-9b41-e037ae53aee9", "title": "Groovy Podcast episode 85 (S05E05) with Sergio del Amo and Guillaume Laforge", "url": "https://kousenit.org/2021/12/22/groovy-podcast-episode-85-s05e05-with-sergio-del-amo-and-guillaume-laforge/", "published_at": "2021-12-22T18:53:07+00:00" }, { "id": "01a0bb56-c60d-72ce-9b41-e037ae7fef04", "title": "Groovy Podcast 84 (S05E04) with Sergio del Amo and Paul King", "url": "https://kousenit.org/2021/11/11/groovy-podcast-84-s05e04-with-sergio-del-amo-and-paul-king/", "published_at": "2021-11-11T16:23:07+00:00" }, { "id": "01a0bb56-c60d-72ce-9b41-e037af144b6e", "title": "Groovy Podcast, S05E03, with Paul King", "url": "https://kousenit.org/2021/10/29/groovy-podcast-s05e03-with-paul-king/", "published_at": "2021-10-29T15:33:07+00:00" }, { "id": "01a0bb56-c60d-72ce-9b41-e037af317a02", "title": "Simple Demo of Gradle Parallel Tests", "url": "https://kousenit.org/2020/11/22/simple-demo-of-gradle-parallel-tests/", "published_at": "2020-11-23T00:05:51+00:00" }, { "id": "01a0bb56-c60d-72ce-9b41-e037b006c4a1", "title": "Solving the Daily Jumble", "url": "https://kousenit.org/2020/07/08/solving-the-daily-jumble/", "published_at": "2020-07-09T03:07:57+00:00" }, { "id": "01a0bb56-c60d-72ce-9b41-e037b0f74a08", "title": "Are you positive you tested positive?", "url": "https://kousenit.org/2020/05/13/are-you-positive-you-tested-positive/", "published_at": "2020-05-13T15:15:34+00:00" }, { "id": "01a0bb56-c60d-72ce-9b41-e037b1f17858", "title": "Why Use Mocks?", "url": "https://kousenit.org/2020/03/03/why-use-mocks/", "published_at": "2020-03-03T19:38:41+00:00" }, { "id": "01a0bb56-c60d-72ce-9b41-e037b22e7169", "title": "Antarctica Time Zones in Kotlin on GraalVM", "url": "https://kousenit.org/2020/01/04/antarctica-time-zones-in-kotlin-on-graalvm/", "published_at": "2020-01-04T15:13:31+00:00" }, { "id": "01a0bb56-c60d-72ce-9b41-e037b242860e", "title": "A Few Astronomical Examples in Kotlin", "url": "https://kousenit.org/2019/12/19/a-few-astronomical-examples-in-kotlin/", "published_at": "2019-12-19T23:24:24+00:00" }, { "id": "01a0bb5c-1e34-70d7-aaeb-8475b9d7bed1", "title": "Fibonacci in Kotlin", "url": "https://kousenit.org/2019/11/26/fibonacci-in-kotlin/", "published_at": "2019-11-26T14:00:00+00:00" }, { "id": "01a0bb5c-1e34-70d7-aaeb-8475bad25b23", "title": "Annotated TOC for Kotlin Cookbook", "url": "https://kousenit.org/2019/11/20/annotated-toc-for-kotlin-cookbook/", "published_at": "2019-11-21T03:29:25+00:00" }, { "id": "01a0bb5c-1e34-70d7-aaeb-8475bb950779", "title": "Kotlin Palindrome Checker", "url": "https://kousenit.org/2019/11/16/kotlin-palindrome-checker/", "published_at": "2019-11-16T18:47:53+00:00" }, { "id": "01a0bb5c-1e34-70d7-aaeb-8475bbacf946", "title": "A Deep Dive into the KotlinVersion Class", "url": "https://kousenit.org/2019/11/09/a-deep-dive-into-the-kotlinversion-class/", "published_at": "2019-11-09T07:54:17+00:00" }, { "id": "01a0bb5c-1e34-70d7-aaeb-8475bc4522c6", "title": "Java 11 HttpClient, Gson, Gradle, and Modularization", "url": "https://kousenit.org/2018/09/22/java-11-httpclient-gson-gradle-and-modularization/", "published_at": "2018-09-22T22:03:28+00:00" }, { "id": "01a0bb5c-1e34-70d7-aaeb-8475bd060000", "title": "Managing Your Manager: The Video Course", "url": "https://kousenit.org/2018/02/03/managing-your-manager-the-video-course/", "published_at": "2018-02-03T22:23:53+00:00" }, { "id": "01a0bb5c-1e34-70d7-aaeb-8475bd307e7a", "title": "Java 8 Constructor Refs (In All Their Glory)", "url": "https://kousenit.org/2017/03/26/java-8-constructor-refs-in-all-their-glory/", "published_at": "2017-03-26T22:46:56+00:00" }, { "id": "01a0bb5c-1e34-70d7-aaeb-8475be27d49b", "title": "Modern Java Recipes now in Early Release", "url": "https://kousenit.org/2017/03/21/modern-java-recipes-now-in-early-release/", "published_at": "2017-03-21T23:14:42+00:00" }, { "id": "01a0bb5c-1e34-70d7-aaeb-8475beddbc2a", "title": "Days Between Dates in Java 8", "url": "https://kousenit.org/2017/01/26/days-between-dates-in-java-8/", "published_at": "2017-01-26T18:42:21+00:00" }, { "id": "01a0bb5c-1e34-70d7-aaeb-8475bf45fc80", "title": "Making Java 8 Groovier: A few annotated examples", "url": "https://kousenit.org/2016/09/06/making-java-8-groovier-a-few-annotated-examples/", "published_at": "2016-09-06T22:30:58+00:00" }, { "id": "01a0bb64-2901-738b-881a-a6e2fd783abd", "title": "Fun with Time Zones in Java 8", "url": "https://kousenit.org/2016/07/16/fun-with-time-zones-in-java-8/", "published_at": "2016-07-16T20:23:49+00:00" }, { "id": "01a0bb64-2901-738b-881a-a6e2fe1fafbc", "title": "Excluding Gradle Tasks with a Name Pattern", "url": "https://kousenit.org/2016/04/20/excluding-gradle-tasks-with-a-name-pattern/", "published_at": "2016-04-20T06:52:05+00:00" }, { "id": "01a0bb64-2901-738b-881a-a6e2feb8a7ad", "title": "Retrofitting Groovy", "url": "https://kousenit.org/2016/04/07/retrofitting-groovy/", "published_at": "2016-04-08T03:18:28+00:00" }, { "id": "01a0bb64-2901-738b-881a-a6e2ff9e5f09", "title": "A Groovy approach to npm-gate", "url": "https://kousenit.org/2016/04/02/a-groovy-approach-to-npm-gate/", "published_at": "2016-04-02T23:38:53+00:00" }, { "id": "01a0bb64-2901-738b-881a-a6e3007347e5", "title": "The Shadow Knows Gradle", "url": "https://kousenit.org/2016/03/14/the-shadow-knows-gradle/", "published_at": "2016-03-14T21:49:26+00:00" }, { "id": "01a0bb64-2901-738b-881a-a6e300baba78", "title": "Rough cut of Gradle Recipes for Android now available", "url": "https://kousenit.org/2015/09/27/rough-cut-of-gradle-recipes-for-android-now-available/", "published_at": "2015-09-27T15:14:53+00:00" }, { "id": "01a0bb64-2901-738b-881a-a6e30171353c", "title": "My father, at the end", "url": "https://kousenit.org/2015/08/09/my-father-at-the-end/", "published_at": "2015-08-09T23:17:19+00:00" }, { "id": "01a0bb64-2901-738b-881a-a6e301afbaf4", "title": "Upcoming Events, and “The Streak”", "url": "https://kousenit.org/2015/05/25/upcoming-events-and-the-streak/", "published_at": "2015-05-25T21:31:33+00:00" }, { "id": "01a0bb64-2901-738b-881a-a6e301fadec3", "title": "Concurrent Kitties Using GPars", "url": "https://kousenit.org/2015/05/08/concurrent-kitties-using-gpars/", "published_at": "2015-05-08T07:02:39+00:00" }, { "id": "01a0bb64-2901-738b-881a-a6e302da36b1", "title": "Groovy posts in other places", "url": "https://kousenit.org/2015/04/16/groovy-posts-in-other-places/", "published_at": "2015-04-16T22:53:06+00:00" }, { "id": "01a0bb6a-236c-724b-8ff0-425584ee7036", "title": "If a method arg is a closure, for crying out loud pass it a closure", "url": "https://kousenit.org/2015/03/10/if-a-method-arg-is-a-closure-for-crying-out-loud-pass-it-a-closure/", "published_at": "2015-03-10T04:54:27+00:00" }, { "id": "01a0bb6a-236c-724b-8ff0-425585276963", "title": "Now Co-Hosting the Groovy Podcast…", "url": "https://kousenit.org/2015/02/22/now-co-hosting-the-groovy-podcast/", "published_at": "2015-02-22T06:03:50+00:00" }, { "id": "01a0bb6a-236c-724b-8ff0-425586255f7f", "title": "Groovy/Grails – Pivotal == Opportunity", "url": "https://kousenit.org/2015/01/19/groovygrails-pivotal-opportunity/", "published_at": "2015-01-20T00:13:26+00:00" }, { "id": "01a0bb6a-236c-724b-8ff0-425586580e67", "title": "Spaceships, Elvis, and Groovy inject", "url": "https://kousenit.org/2014/10/14/spaceships-elvis-and-groovy-inject/", "published_at": "2014-10-14T19:21:33+00:00" }, { "id": "01a0bb6a-236c-724b-8ff0-425586fc8238", "title": "The Reason The Internet Was Invented, or, Cat Pictures FTW", "url": "https://kousenit.org/2014/09/17/the-reason-the-internet-was-invented-or-cat-pictures-ftw/", "published_at": "2014-09-18T02:41:00+00:00" }, { "id": "01a0bb6a-236c-724b-8ff0-42558778cce9", "title": "SpringOne2GX, Day Minus 3", "url": "https://kousenit.org/2014/09/05/springone2gx-day-minus-3/", "published_at": "2014-09-05T05:03:52+00:00" }, { "id": "01a0bb6a-236c-724b-8ff0-42558848f11c", "title": "Responses to “The Closure Of No Return”", "url": "https://kousenit.org/2014/04/18/responses-to-the-closure-of-no-return/", "published_at": "2014-04-18T05:32:43+00:00" }, { "id": "01a0bb6a-236c-724b-8ff0-425588848bfd", "title": "The Closure Of No Return", "url": "https://kousenit.org/2014/04/16/the-closure-of-no-return/", "published_at": "2014-04-16T06:20:56+00:00" }, { "id": "01a0bb6a-236c-724b-8ff0-425588f27a67", "title": "Start With A Story", "url": "https://kousenit.org/2014/04/09/start-with-a-story/", "published_at": "2014-04-09T23:29:25+00:00" }, { "id": "01a0bb6a-236c-724b-8ff0-42558981a21b", "title": "Groovy Groundhogs, revisited", "url": "https://kousenit.org/2014/02/02/groovy-groundhogs-revisited/", "published_at": "2014-02-02T20:08:10+00:00" }, { "id": "01a0bb6e-3137-7319-b3b7-e3fb4122dfca", "title": "Groovy Weather: A New Groovy Example at Java.net", "url": "https://kousenit.org/2014/01/07/groovy-weather-a-new-groovy-example-at-java-net/", "published_at": "2014-01-07T23:33:55+00:00" }, { "id": "01a0bb6e-3137-7319-b3b7-e3fb41cd79c4", "title": "Serving jokes locally with Ratpack and MongoDB", "url": "https://kousenit.org/2013/11/15/serving-jokes-locally-with-ratpack-and-mongodb/", "published_at": "2013-11-15T11:08:12+00:00" }, { "id": "01a0bb6e-3137-7319-b3b7-e3fb422ed170", "title": "Making Java Groovy: A Celebrity (Non-)Endorsement", "url": "https://kousenit.org/2013/10/22/making-java-groovy-a-celebrity-non-endorsement/", "published_at": "2013-10-22T07:16:02+00:00" }, { "id": "01a0bb6e-3137-7319-b3b7-e3fb426990c1", "title": "Making Java Groovy, the Listicle", "url": "https://kousenit.org/2013/10/16/making-java-groovy-the-listicle/", "published_at": "2013-10-17T02:07:27+00:00" }, { "id": "01a0bb6e-3137-7319-b3b7-e3fb42e45bd5", "title": "Carlos Ray and Spring’s RestTemplate", "url": "https://kousenit.org/2013/10/09/carlos-ray-and-springs-resttemplate/", "published_at": "2013-10-09T06:30:53+00:00" }, { "id": "01a0bb6e-3137-7319-b3b7-e3fb43a2d194", "title": "Making Java Groovy: ratpack, MongoDB, and Chuck Norris", "url": "https://kousenit.org/2013/10/02/making-java-groovy-ratpack-mongodb-and-chuck-norris/", "published_at": "2013-10-02T19:37:15+00:00" }, { "id": "01a0bb6e-3137-7319-b3b7-e3fb443b7632", "title": "Making Java Groovy at JavaOne 2013", "url": "https://kousenit.org/2013/09/24/making-java-groovy-at-javaone-2013/", "published_at": "2013-09-24T07:38:31+00:00" }, { "id": "01a0bb6e-3137-7319-b3b7-e3fb4482e883", "title": "Making Java Groovy: JavaRanch this week", "url": "https://kousenit.org/2013/09/17/making-java-groovy-javaranch-this-week/", "published_at": "2013-09-17T04:41:23+00:00" }, { "id": "01a0bb6e-3137-7319-b3b7-e3fb44e64e47", "title": "Trains on the Range", "url": "https://kousenit.org/2013/09/10/trains-on-the-range/", "published_at": "2013-09-10T20:29:48+00:00" }, { "id": "01a0bb6e-3137-7319-b3b7-e3fb45412250", "title": "Making Java Groovy: Operator Overloading", "url": "https://kousenit.org/2013/09/03/making-java-groovy-operator-overloading/", "published_at": "2013-09-03T20:45:38+00:00" }, { "id": "01a0bb71-f953-7155-ae6d-b408c2d98328", "title": "At long last, Making Java Groovy", "url": "https://kousenit.org/2013/08/30/at-long-last-making-java-groovy/", "published_at": "2013-08-30T05:38:47+00:00" }, { "id": "01a0bb71-f953-7155-ae6d-b408c3514382", "title": "Gr8 Gr8Conf.US Was Gr8", "url": "https://kousenit.org/2013/07/25/gr8-gr8conf-us-was-gr8/", "published_at": "2013-07-25T05:24:17+00:00" }, { "id": "01a0bb71-f953-7155-ae6d-b408c3887e8b", "title": "A Groovy Chuck Norris Script", "url": "https://kousenit.org/2013/07/19/a-groovy-chuck-norris-script/", "published_at": "2013-07-19T17:56:13+00:00" }, { "id": "01a0bb71-f953-7155-ae6d-b408c45447f5", "title": "Categories, old and new, and status of Making Java Groovy", "url": "https://kousenit.org/2013/07/10/categories-old-and-new-and-status-of-making-java-groovy/", "published_at": "2013-07-10T19:48:05+00:00" }, { "id": "01a0bb71-f953-7155-ae6d-b408c51af5ec", "title": "Getting Insight from Data: Baseball", "url": "https://kousenit.org/2012/10/24/getting-insight-from-data-baseball/", "published_at": "2012-10-24T22:21:36+00:00" }, { "id": "01a0bb71-f953-7155-ae6d-b408c5bf88c7", "title": "My Review of Programming Grails", "url": "https://kousenit.org/2012/09/26/my-review-of-programming-grails/", "published_at": "2012-09-26T04:57:09+00:00" }, { "id": "01a0bb71-f953-7155-ae6d-b408c5cce094", "title": "Adding a license to source files", "url": "https://kousenit.org/2012/07/06/adding-a-license-to-source-files/", "published_at": "2012-07-06T21:40:37+00:00" }, { "id": "01a0bb71-f953-7155-ae6d-b408c6521e1e", "title": "(dc..bos): Train Stations as a Groovy Range", "url": "https://kousenit.org/2012/06/16/dc-bos-train-stations-as-a-groovy-range/", "published_at": "2012-06-16T18:16:35+00:00" }, { "id": "01a0bb71-f953-7155-ae6d-b408c6867237", "title": "Password authentication using Groovy", "url": "https://kousenit.org/2012/06/07/password-authentication-using-groovy/", "published_at": "2012-06-08T02:29:10+00:00" }, { "id": "01a0bb71-f953-7155-ae6d-b408c6edfdf6", "title": "From now on, I’m calling it GroovyString", "url": "https://kousenit.org/2012/05/09/from-now-on-im-calling-it-groovystring/", "published_at": "2012-05-09T05:18:30+00:00" }, { "id": "01a0bb75-5f50-7161-8004-82b6f1a572f6", "title": "Writing json output from a groovlet", "url": "https://kousenit.org/2012/03/06/writing-json-output-from-a-groovlet/", "published_at": "2012-03-06T07:08:40+00:00" }, { "id": "01a0bb75-5f50-7161-8004-82b6f27220d9", "title": "Elvis carried away by spaceships", "url": "https://kousenit.org/2012/01/13/elvis-carried-away-by-spaceships/", "published_at": "2012-01-13T06:25:02+00:00" }, { "id": "01a0bb75-5f50-7161-8004-82b6f34410c8", "title": "Groovy StubFor magic", "url": "https://kousenit.org/2012/01/02/groovy-stubfor-magic/", "published_at": "2012-01-02T20:17:30+00:00" }, { "id": "01a0bb75-5f50-7161-8004-82b6f35fe0cc", "title": "log.rofl(‘Fun with Groovy metaprogramming’)", "url": "https://kousenit.org/2011/12/13/log-roflfun-with-groovy-metaprogramming/", "published_at": "2011-12-13T04:03:42+00:00" }, { "id": "01a0bb75-5f50-7161-8004-82b6f36c96d4", "title": "GroovyShellTestCase for testing Groovy scripts", "url": "https://kousenit.org/2011/12/07/groovyshelltestcase-for-testing-groovy-scripts/", "published_at": "2011-12-07T04:05:11+00:00" }, { "id": "01a0bb75-5f50-7161-8004-82b6f3ecbbed", "title": "Up and Running Groovy: An O’Reilly screencast for my Manning book (wait, what?)", "url": "https://kousenit.org/2011/11/18/up-and-running-groovy-an-oreilly-screencast-for-my-manning-book-wait-what/", "published_at": "2011-11-18T22:39:03+00:00" }, { "id": "01a0bb75-5f50-7161-8004-82b6f4334de9", "title": "Converting Groovy maps to query strings", "url": "https://kousenit.org/2011/11/02/converting-groovy-maps-to-query-strings/", "published_at": "2011-11-03T01:24:43+00:00" }, { "id": "01a0bb75-5f50-7161-8004-82b6f4ad8907", "title": "Groovy “tutorial” chapters added to Making Java Groovy", "url": "https://kousenit.org/2011/09/17/groovy-tutorial-chapters-added-to-making-java-groovy/", "published_at": "2011-09-17T16:12:57+00:00" }, { "id": "01a0bb75-5f50-7161-8004-82b6f51dbe1a", "title": "I think I get Spock Mocks now", "url": "https://kousenit.org/2011/08/20/i-think-i-get-spock-mocks-now/", "published_at": "2011-08-20T18:40:09+00:00" }, { "id": "01a0bb75-5f50-7161-8004-82b6f570962a", "title": "Cool Groovy aspect in Spring", "url": "https://kousenit.org/2011/03/22/cool-groovy-aspect-in-spring/", "published_at": "2011-03-22T05:22:59+00:00" }, { "id": "01a0bb78-9a50-70dd-9b4d-4d8b0530a918", "title": "SOAP Web Services chapter added to MEAP", "url": "https://kousenit.org/2011/02/28/soap-web-services-chapter-added-to-meap/", "published_at": "2011-03-01T02:17:44+00:00" }, { "id": "01a0bb78-9a50-70dd-9b4d-4d8b0568e986", "title": "Testing Groovy Scripts", "url": "https://kousenit.org/2011/02/24/testing-groovy-scripts/", "published_at": "2011-02-24T22:37:53+00:00" }, { "id": "01a0bb78-9a50-70dd-9b4d-4d8b05ca75e2", "title": "Groovy Groundhogs (again)", "url": "https://kousenit.org/2011/02/02/groovy-groundhogs-again/", "published_at": "2011-02-03T02:31:00+00:00" }, { "id": "01a0bb78-9a50-70dd-9b4d-4d8b065be1ac", "title": "An easier way to add Spock to an Eclipse/STS project", "url": "https://kousenit.org/2011/01/26/an-easier-way-to-add-spock-to-an-eclipsests-project/", "published_at": "2011-01-26T23:12:05+00:00" }, { "id": "01a0bb78-9a50-70dd-9b4d-4d8b06b4e4a5", "title": "What is “Making Java Groovy”, anyway?", "url": "https://kousenit.org/2011/01/09/what-is-making-java-groovy-anyway/", "published_at": "2011-01-10T02:38:54+00:00" }, { "id": "01a0bb78-9a50-70dd-9b4d-4d8b0796f135", "title": "Unit testing Grails controllers, revisited", "url": "https://kousenit.org/2010/11/10/unit-testing-grails-controllers-revisited/", "published_at": "2010-11-10T21:19:35+00:00" }, { "id": "01a0bb78-9a50-70dd-9b4d-4d8b081085dc", "title": "10 years, and never missed a day", "url": "https://kousenit.org/2010/06/03/271/", "published_at": "2010-06-03T19:16:16+00:00" }, { "id": "01a0bb78-9a50-70dd-9b4d-4d8b08cb8e7b", "title": "The Rest Can Wait, too", "url": "https://kousenit.org/2010/05/27/the-rest-can-wait-too/", "published_at": "2010-05-27T16:30:05+00:00" }, { "id": "01a0bb78-9a50-70dd-9b4d-4d8b08e456e4", "title": "The Rest Can Wait", "url": "https://kousenit.org/2010/05/01/the-rest-can-wait/", "published_at": "2010-05-01T15:50:54+00:00" }, { "id": "01a0bb78-9a50-70dd-9b4d-4d8b096da001", "title": "Twitter Follower Value, revisited", "url": "https://kousenit.org/2010/04/01/twitter-follower-value-revisited/", "published_at": "2010-04-02T02:14:11+00:00" } ] posts Claim your blog
Back to kousenit.org
Blog · corpus.blog/blogs/kousenit.org/posts

kousenit.org

kousenit.org

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014

2013

2012

2011

2010