This is an automated email from the ASF dual-hosted git repository. git-site-role pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/groovy-dev-site.git
The following commit(s) were added to refs/heads/asf-site by this push: new 79d0bb8 2023/10/23 04:12:51: Generated dev website from groovy-website@717f46a 79d0bb8 is described below commit 79d0bb866ad0b59a9668184382cd070eb024697b Author: jenkins <bui...@apache.org> AuthorDate: Mon Oct 23 04:12:51 2023 +0000 2023/10/23 04:12:51: Generated dev website from groovy-website@717f46a --- blog/adventures-with-groovyfx.html | 2 +- blog/chatgpt-one-liners.html | 152 ++++++++++++++++------- blog/classifying-iris-flowers-with-deep.html | 2 +- blog/comparators-and-sorting-in-groovy.html | 2 +- blog/deck-of-cards-with-groovy.html | 2 +- blog/deep-learning-and-eclipse-collections.html | 2 +- blog/detecting-objects-with-groovy-the.html | 2 +- blog/feed.atom | 12 +- blog/fruity-eclipse-collections.html | 2 +- blog/gmavenplus-1-6-2-released.html | 2 +- blog/groovy-2-4-16-released.html | 2 +- blog/groovy-2-4-16-windows.html | 2 +- blog/groovy-2-4-17-released.html | 2 +- blog/groovy-2-5-0-released.html | 2 +- blog/groovy-2-5-1-released.html | 2 +- blog/groovy-2-5-2-released.html | 2 +- blog/groovy-2-5-2-windows.html | 2 +- blog/groovy-2-5-3-released.html | 2 +- blog/groovy-2-5-3-windows.html | 2 +- blog/groovy-2-5-4-released.html | 2 +- blog/groovy-2-5-4-windows.html | 2 +- blog/groovy-2-5-5-released.html | 2 +- blog/groovy-2-5-5-windows.html | 2 +- blog/groovy-2-5-6-released.html | 2 +- blog/groovy-2-5-7-and.html | 2 +- blog/groovy-2-5-7-released.html | 2 +- blog/groovy-2-5-clibuilder-renewal.html | 2 +- blog/groovy-3-0-0-alpha.html | 2 +- blog/groovy-3-0-0-alpha1.html | 2 +- blog/groovy-3-0-0-beta.html | 2 +- blog/groovy-3-0-0-beta1.html | 2 +- blog/groovy-3-0-0-beta2.html | 2 +- blog/groovy-4-0-3-released.html | 2 +- blog/groovy-dauphine.html | 2 +- blog/groovy-haiku-processing.html | 2 +- blog/groovy-list-processing-cheat-sheet.html | 2 +- blog/groovy-null-processing.html | 2 +- blog/groovy-record-performance.html | 2 +- blog/groovy-records.html | 2 +- blog/groovy-release-train-4-0.html | 2 +- blog/groovy-sequenced-collections.html | 2 +- blog/helloworldemoji.html | 2 +- blog/index.html | 4 +- blog/lego-bricks-with-groovy.html | 2 +- blog/matrix-calculations-with-groovy-apache.html | 2 +- blog/parsing-json-with-groovy.html | 2 +- blog/reading-and-writing-csv-files.html | 2 +- blog/using-groovy-with-apache-wayang.html | 2 +- blog/whiskey-clustering-with-groovy-and.html | 2 +- blog/wordle-checker.html | 2 +- blog/zipping-collections-with-groovy.html | 2 +- 51 files changed, 166 insertions(+), 98 deletions(-) diff --git a/blog/adventures-with-groovyfx.html b/blog/adventures-with-groovyfx.html index 439165d..f61e2fd 100644 --- a/blog/adventures-with-groovyfx.html +++ b/blog/adventures-with-groovyfx.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Adventures with GroovyFX</a></li><li><a href='#_further_information' class='anchor-link'>Further information</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./deep-learning-an [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Adventures with GroovyFX</a></li><li><a href='#_further_information' class='anchor-link'>Further information</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./deep-learning-an [...] <div class="sectionbody"> <div class="paragraph"> <p>This blog looks at a <a href="http://groovyfx.org/">GroovyFX</a> version of a <a href="https://donraab.medium.com/my-weird-and-wonderful-first-adventures-with-javafx-6efe3b1923c8">ToDo application originally written in JavaFX</a>. diff --git a/blog/chatgpt-one-liners.html b/blog/chatgpt-one-liners.html index 49045ae..e9e90d6 100644 --- a/blog/chatgpt-one-liners.html +++ b/blog/chatgpt-one-liners.html @@ -56,13 +56,29 @@ </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>ChatGPT meets Groovy one-liners</a></li></ul></div><div class='col-lg-8 col-lg-pull-0'><a name='doc'></a><h1>ChatGPT meets Groovy one-liners</h1><p><span>Author: <i>Paul King</i></span><br/><span>Published: 2023-10-19 06:00PM</span></p><hr/><div class="paragraph"> <p>I asked ChatGPT if it could represent some short/one-liner programming-related dad jokes as short/one-liner Groovy scripts. It’s responses were initially a little -underwhelming but after some coercing and some "post-production tweaking", here is the result.</p> +underwhelming but after some coercing and some "post-production tweaking", this blog post contains the result. Be forewarned, that the quality of the puns +is mixed.</p> +</div> +<div class="paragraph"> +<p>But before starting, Groovy makes an excellent language for interacting +with cloud-based Generative AI systems. You can check out the +following <a href="https://github.com/paulk-asert/demo">GitHub repo</a> that +shows how to talk to ChatGPT using Groovy and <a href="https://micronaut.io/">Micronaut</a>. +This example is in turn based on <a href="https://www.kousenit.com/">Ken Kousen</a>'s similar example in Java. +Check out his excellent <a href="https://www.youtube.com/watch?v=cEl3He6Tsmk">video on the topic</a>. Also check out <a href="https://glaforge.dev/">Guillaume Laforge</a>'s recent posts +about using Groovy to talk to Google’s <a href="https://bard.google.com/">Bard</a> via +its <a href="https://glaforge.dev/posts/2023/05/30/getting-started-with-the-palm-api-in-the-java-ecosystem/">PaLM 2 API</a> and using +<a href="https://glaforge.dev/posts/2023/09/25/discovering-langchain4j/">LangChain4J</a>.</p> +</div> +<div class="paragraph"> +<p>Having said that, we just used the Web UI for this blog post. +Now, let’s have a look at some of those PUNch lines…​</p> </div> <hr> <div class="sidebarblock"> <div class="content"> <div class="paragraph"> -<p><em>Q: Why do programmers always mix up Christmas and Halloween?</em></p> +<p><em>Q: Why do programmers always mix up Christmas</em> 🎄 <em>and Halloween</em> 🎃 <em>?</em></p> </div> <div class="paragraph"> <p><em>A: Because 25 Dec(imal) is the same as 31 Oct(al).</em></p> @@ -110,7 +126,7 @@ with a twist of C#, and finishes with some Ruby.</em></p> <p><em>Q: Why did the developer go broke?</em></p> </div> <div class="paragraph"> -<p><em>A: Because his money cache, intellisense and null stocks were all empty.</em></p> +<p><em>A: Because his money cache, intellisense and null stocks were all empty</em> 💰.</p> </div> </div> </div> @@ -160,7 +176,7 @@ assert box.toString() == '[Chocolate(50, Caramel), Chocolate(80)]'</code></pre> <p><em>If life gives you melons, …​</em></p> </div> <div class="paragraph"> -<p><em>…​you may be dyslexic.</em></p> +<p><em>…​you may be dyslexic.</em> 🍈🍋</p> </div> </div> </div> @@ -177,7 +193,7 @@ assert dyslexic</code></pre> <div class="sidebarblock"> <div class="content"> <div class="paragraph"> -<p><em>6:30 is the best time on a clock, hands down.</em></p> +<p><em>6:30 is the best time on a clock, hands down.</em> 🕡</p> </div> </div> </div> @@ -275,10 +291,10 @@ var favorites = new FavoriteQuotes([q1, q2])</code></pre> <div class="sidebarblock"> <div class="content"> <div class="paragraph"> -<p><em>Why are diamonds and dogs a person’s best friends?</em></p> +<p><em>Q: Why are diamonds and dogs a person’s best friends?</em></p> </div> <div class="paragraph"> -<p><em>Because diamonds are forever, and dogs are fur-ever!</em></p> +<p><em>A: Because diamonds are forever, and dogs are fur-ever!</em> 💎 🐕</p> </div> </div> </div> @@ -312,10 +328,10 @@ assert ['man', 'girl'].collect{ <div class="sidebarblock"> <div class="content"> <div class="paragraph"> -<p><em>Why did the Land Rover car get along so well with the Land Rover Explore smartphone?</em></p> +<p><em>Q: Why did the Land Rover car get along so well with the Land Rover Explore smartphone?</em></p> </div> <div class="paragraph"> -<p><em>Because they both knew the importance of "exploring" new territories, +<p><em>A: Because they both knew the importance of "exploring" new territories, whether off-road or online!!</em></p> </div> </div> @@ -345,10 +361,10 @@ assert c.toString() == 'Car[make=Landrover, model=Explore, color=Black, year=201 <div class="sidebarblock"> <div class="content"> <div class="paragraph"> -<p><em>Why did the Jedi use a mind trick on the stormtroopers when they couldn’t find the missing droids?</em></p> +<p><em>Q: Why did the Jedi use a mind trick on the stormtroopers when they couldn’t find the missing droids?</em></p> </div> <div class="paragraph"> -<p><em>Because, as Obi-Wan said, "These aren’t the droids you’re looking for. You’re actually looking for your misplaced keys, and you’ll find them in the last place you look!"</em></p> +<p><em>A: Because, as Obi-Wan said, "These aren’t the droids you’re looking for. You’re actually looking for your misplaced keys, and you’ll find them in the last place you look!"</em></p> </div> </div> </div> @@ -410,7 +426,7 @@ use(JediMindTrick) { <p><em>Q: What happened when the pirates pet bird tried to say "Pieces of 7"?</em></p> </div> <div class="paragraph"> -<p><em>A: It got a ParrotyError!"</em></p> +<p><em>A: It got a ParrotyError!"</em> 🦜</p> </div> </div> </div> @@ -420,63 +436,115 @@ use(JediMindTrick) { <div class="listingblock"> <div class="content"> <pre class="prettyprint highlight"><code data-lang="groovy">try { - pet.say('Pieces of 7') -} catch(ParrotyError ignore) { }</code></pre> + pet.say('Pieces of 7') +} catch(ParrotyError e) { + var plank = e.stackTrace + plank.walk() +}</code></pre> </div> </div> <hr> <div class="sidebarblock"> <div class="content"> <div class="paragraph"> -<p><em>A politician visited a village and asked what their needs were.</em></p> +<p><em>Q: Why did the functions stop calling each other?</em></p> </div> <div class="paragraph"> -<p><em>”We have 2 basic needs sir,” replied the villager.</em></p> +<p><em>A: Because they had constant arguments.</em></p> +</div> +</div> </div> <div class="paragraph"> -<p><em>“Firstly, we have a hospital, but there’s no doctor.”</em></p> +<p>By definition, pure functions always return +the same result for the same inputs. +As such, a potential optimization for pure functions +is to cache the result for a given set of input values. +Groovy provides the <code>@Memoized</code> AST transform to do this +(and a <code>.memoized()</code> method call for Closures).</p> +</div> +<div class="paragraph"> +<p>Let’s write a <code>StringUtil</code> class +that has an <em>almost</em> pure function. The return value of the <code>bothCases</code> method +is a pure function in terms of its inputs. It returns a list containing +the lowercase and uppercase values for the input string. +It also has a side effect of incrementing a counter whenever it is called; +this is just so we can understand what is going on.</p> +</div> +<div class="listingblock"> +<div class="content"> +<pre class="prettyprint highlight"><code data-lang="groovy">class StringUtil { + static int count = 0 + + @Memoized + static List<String> bothCases(String s) { + count++ + [s.toLowerCase(), s.toUpperCase()] + } +}</code></pre> +</div> </div> <div class="paragraph"> -<p><em>On hearing this, politician whipped out his cellphone, and after speaking for a while he reassured the village leader that the doctor would be there the next day. He then asked about the second problem.</em></p> +<p>We apply the <code>@Memoized</code> annotation to <code>bothCases</code> which enables the automatic +caching. The annotation has a number of optional annotation attributes for +configuring the caching behavior, but we’ll just use the defaults.</p> </div> <div class="paragraph"> -<p><em>“Secondly sir, there is no cellphone coverage anywhere in this village.</em></p> +<p>We can see that for constant arguments, 'Foo' called twice in our case, +that there is no need to invoke the <code>bothCases</code> method on the second call, +since we can use the cached value from the previous call.</p> </div> +<div class="listingblock"> +<div class="content"> +<pre class="prettyprint highlight"><code data-lang="groovy">assert StringUtil.count == 0 +assert StringUtil.bothCases('Foo') == ['foo', 'FOO'] +assert StringUtil.count == 1 +assert StringUtil.bothCases('Foo') == ['foo', 'FOO'] +assert StringUtil.count == 1</code></pre> </div> </div> +<hr> +<div class="sidebarblock"> +<div class="content"> <div class="paragraph"> -<p>First let’s look at how we might write a <code>Politician</code> class:</p> +<p><em>Binary: it’s easy as 1, 10, 11</em></p> +</div> +</div> </div> <div class="listingblock"> <div class="content"> -<pre class="prettyprint highlight"><code data-lang="groovy">class Politician { - private static int next = 0 - boolean elected - private List<String> excuses = ['No budget', 'Maybe later', 'Not a priority'] - String canYouHelpFix(String problem) { - if (!elected) 'Sure can!' - else excuses[next++ % excuses.size()] - } -}</code></pre> +<pre class="prettyprint highlight"><code data-lang="groovy">println "Binary: It's as easy as ${(1..3).collect{ Integer.toBinaryString(it) }.join(', ')}"</code></pre> </div> </div> +<hr> +<div class="sidebarblock"> +<div class="content"> <div class="paragraph"> -<p>Groovy can’t help fix all political problems, but using the <code>@Memoized</code> annotation, and leaving everything else the same, we can make sure that once a politician responds one way, they can only keep responding in exactly the same way, regardless of whether they are elected or not.</p> +<p><em>Q: On my first day of work at the sheep farm, I was asked to roundup 37 sheep?</em></p> +</div> +<div class="paragraph"> +<p><em>A: I said 40!</em> 🐑 🐏</p> +</div> +</div> </div> <div class="listingblock"> <div class="content"> -<pre class="prettyprint highlight"><code data-lang="groovy">import groovy.transform.* - -class Politician { - private static int next = 0 - boolean elected - private List<String> excuses = ['No budget', 'Maybe later', 'Not a priority'] - @Memoized - String canYouHelpFix(String problem) { - if (!elected) 'Sure can!' - else excuses[next++ % excuses.size()] - } -}</code></pre> +<pre class="prettyprint highlight"><code data-lang="groovy">assert 40 == Math.round(37/10)*10</code></pre> +</div> +</div> +<hr> +<div class="sidebarblock"> +<div class="content"> +<div class="paragraph"> +<p><em>Q: What code did the programmer write to celebrate Groovy’s 20th birthday?</em> 🎂</p> +</div> +<div class="paragraph"> +<p><em>A: A hip-hip array</em></p> +</div> +</div> +</div> +<div class="listingblock"> +<div class="content"> +<pre class="prettyprint highlight"><code data-lang="groovy">String[] celebrate = ['hip', 'hip']</code></pre> </div> </div> <hr></div></div></div></div><footer id='footer'> diff --git a/blog/classifying-iris-flowers-with-deep.html b/blog/classifying-iris-flowers-with-deep.html index ef32f5f..269578f 100644 --- a/blog/classifying-iris-flowers-with-deep.html +++ b/blog/classifying-iris-flowers-with-deep.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Classifying Iris Flowers with Deep Learning, Groovy and GraalVM</a></li><li><a href='#_deep_learning' class='anchor-link'>Deep Learning</a></li><li><a href='#_encog' class='anchor-link'>Encog</a></li><li><a href='#_eclipse_deeplearning4j' class='anchor-link'>Eclipse DeepLe [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Classifying Iris Flowers with Deep Learning, Groovy and GraalVM</a></li><li><a href='#_deep_learning' class='anchor-link'>Deep Learning</a></li><li><a href='#_encog' class='anchor-link'>Encog</a></li><li><a href='#_eclipse_deeplearning4j' class='anchor-link'>Eclipse DeepLe [...] <div class="sectionbody"> <div class="paragraph"> <p><span class="image right"><img src="img/iris_flowers.png" alt="iris flowers" width="200"></span> diff --git a/blog/comparators-and-sorting-in-groovy.html b/blog/comparators-and-sorting-in-groovy.html index 3e08d09..ec6b629 100644 --- a/blog/comparators-and-sorting-in-groovy.html +++ b/blog/comparators-and-sorting-in-groovy.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Comparators and Sorting in Groovy</a></li><li><a href='#_the_java_comparator_story_recap' class='anchor-link'>The Java comparator story recap</a></li><li><a href='#_the_groovy_comparator_story' class='anchor-link'>The Groovy comparator story</a></li><li><a href='#_mixing_i [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Comparators and Sorting in Groovy</a></li><li><a href='#_the_java_comparator_story_recap' class='anchor-link'>The Java comparator story recap</a></li><li><a href='#_the_groovy_comparator_story' class='anchor-link'>The Groovy comparator story</a></li><li><a href='#_mixing_i [...] <div class="sectionbody"> <div class="paragraph"> <p><span class="image right"><img src="img/cher_record.png" alt="Cher" width="179" height="179"></span> diff --git a/blog/deck-of-cards-with-groovy.html b/blog/deck-of-cards-with-groovy.html index 1ae789c..b2d7ed0 100644 --- a/blog/deck-of-cards-with-groovy.html +++ b/blog/deck-of-cards-with-groovy.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Deck of cards with Groovy, JDK collections and Eclipse Collections</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./deep-learning-and-eclipse-collections'>Deep Learning and E [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Deck of cards with Groovy, JDK collections and Eclipse Collections</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./deep-learning-and-eclipse-collections'>Deep Learning and E [...] <p>Once again, <a href="https://twitter.com/TheDonRaab">Donald Raab</a> has produced an interesting <a href="https://donraab.medium.com/how-to-create-a-deck-of-cards-using-eclipse-collections-d9838ac430b7">blog post</a> on <a href="https://github.com/eclipse/eclipse-collections">Eclipse Collections</a> this one shows some code for modelling and manipulating cards with Java 17 and Eclipse Collections. His related katas are highly recommended. diff --git a/blog/deep-learning-and-eclipse-collections.html b/blog/deep-learning-and-eclipse-collections.html index 830b3e5..ca749c3 100644 --- a/blog/deep-learning-and-eclipse-collections.html +++ b/blog/deep-learning-and-eclipse-collections.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Deep Learning and Eclipse Collections</a></li><li><a href='#_setting_up_our_model_and_data' class='anchor-link'>Setting up our model and data</a></li><li><a href='#_applying_deep_learning' class='anchor-link'>Applying deep learning</a></li></ul><br/><ul class='nav-sidebar' [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Deep Learning and Eclipse Collections</a></li><li><a href='#_setting_up_our_model_and_data' class='anchor-link'>Setting up our model and data</a></li><li><a href='#_applying_deep_learning' class='anchor-link'>Applying deep learning</a></li></ul><br/><ul class='nav-sidebar' [...] <div class="sectionbody"> <div class="paragraph"> <p>In previous blogs, we’ve covered diff --git a/blog/detecting-objects-with-groovy-the.html b/blog/detecting-objects-with-groovy-the.html index 9bbc378..983e76e 100644 --- a/blog/detecting-objects-with-groovy-the.html +++ b/blog/detecting-objects-with-groovy-the.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Detecting objects with Groovy, the Deep Java Library (DJL), and Apache MXNet</a></li><li><a href='#_deep_learning' class='anchor-link'>Deep Learning</a></li><li><a href='#_deep_java_library_djl_apache_mxnet' class='anchor-link'>Deep Java Library (DJL) & Apache MXNet</a [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Detecting objects with Groovy, the Deep Java Library (DJL), and Apache MXNet</a></li><li><a href='#_deep_learning' class='anchor-link'>Deep Learning</a></li><li><a href='#_deep_java_library_djl_apache_mxnet' class='anchor-link'>Deep Java Library (DJL) & Apache MXNet</a [...] <div class="sectionbody"> <div class="paragraph"> <p>This blog posts looks at using <a href="https://groovy-lang.org/">Apache Groovy</a> with the diff --git a/blog/feed.atom b/blog/feed.atom index 58216f8..21539c3 100644 --- a/blog/feed.atom +++ b/blog/feed.atom @@ -8,21 +8,21 @@ <author> <name>Remko Popma</name> </author> - <title>Groovy 2.5.0 released</title> - <link href="http://groovy.apache.org/blog/groovy-2-5-0-released"/> + <title>Apache Groovy 2.5 CliBuilder Renewal</title> + <link href="http://groovy.apache.org/blog/groovy-2-5-clibuilder-renewal"/> <updated>2018-05-30T11:28:31+00:00</updated> <published>2018-05-30T11:28:31+00:00</published> - <summary>Groovy 2.5.0 Release Announcement.</summary> + <summary>This post looks at new CliBuilder features from Groovy 2.5 in particular the Picocli-based implementation.</summary> </entry> <entry> <author> <name>Remko Popma</name> </author> - <title>Apache Groovy 2.5 CliBuilder Renewal</title> - <link href="http://groovy.apache.org/blog/groovy-2-5-clibuilder-renewal"/> + <title>Groovy 2.5.0 released</title> + <link href="http://groovy.apache.org/blog/groovy-2-5-0-released"/> <updated>2018-05-30T11:28:31+00:00</updated> <published>2018-05-30T11:28:31+00:00</published> - <summary>This post looks at new CliBuilder features from Groovy 2.5 in particular the Picocli-based implementation.</summary> + <summary>Groovy 2.5.0 Release Announcement.</summary> </entry> <entry> <author> diff --git a/blog/fruity-eclipse-collections.html b/blog/fruity-eclipse-collections.html index fef23cb..ab095f0 100644 --- a/blog/fruity-eclipse-collections.html +++ b/blog/fruity-eclipse-collections.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Fruity Eclipse Collections</a></li><li><a href='#_eclipse_collections_fruit_salad' class='anchor-link'>Eclipse Collections Fruit Salad</a></li><li><a href='#_exploring_emoji_colors' class='anchor-link'>Exploring emoji colors</a></li><li><a href='#_putting_it_all_together' [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Fruity Eclipse Collections</a></li><li><a href='#_eclipse_collections_fruit_salad' class='anchor-link'>Eclipse Collections Fruit Salad</a></li><li><a href='#_exploring_emoji_colors' class='anchor-link'>Exploring emoji colors</a></li><li><a href='#_putting_it_all_together' [...] <div class="sectionbody"> <div class="paragraph"> <p>This blog post continues on the theme of using fruit emoji from the diff --git a/blog/gmavenplus-1-6-2-released.html b/blog/gmavenplus-1-6-2-released.html index b7972c1..6ac1dd0 100644 --- a/blog/gmavenplus-1-6-2-released.html +++ b/blog/gmavenplus-1-6-2-released.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>GMavenPlus 1.6.2 Released (Community Artifact)</a></li><li><a href='#_gmavenplus_1_6_2_has_been_released' class='anchor-link'>GMavenPlus 1.6.2 has been released.</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Rel [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>GMavenPlus 1.6.2 Released (Community Artifact)</a></li><li><a href='#_gmavenplus_1_6_2_has_been_released' class='anchor-link'>GMavenPlus 1.6.2 has been released.</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Rel [...] <h2 id="_gmavenplus_1_6_2_has_been_released">GMavenPlus 1.6.2 has been released.</h2> <div class="sectionbody"> <div class="paragraph"> diff --git a/blog/groovy-2-4-16-released.html b/blog/groovy-2-4-16-released.html index b59252e..ac49e68 100644 --- a/blog/groovy-2-4-16-released.html +++ b/blog/groovy-2-4-16-released.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.4.16 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-4-16-windows'>Groovy 2.4.16 Windows Installer Released (Community Artifact)</a></li><li><a hr [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.4.16 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-4-16-windows'>Groovy 2.4.16 Windows Installer Released (Community Artifact)</a></li><li><a hr [...] <p>Dear community,</p> </div> <div class="paragraph"> diff --git a/blog/groovy-2-4-16-windows.html b/blog/groovy-2-4-16-windows.html index 0edf2db..44ce0ac 100644 --- a/blog/groovy-2-4-16-windows.html +++ b/blog/groovy-2-4-16-windows.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.4.16 Windows Installer Released (Community Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-4-16-released'>Groovy 2.4.16 Released</a></li><li><a h [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.4.16 Windows Installer Released (Community Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-4-16-released'>Groovy 2.4.16 Released</a></li><li><a h [...] <p>The Windows installer for Groovy 2.4.16 (community artifact) is available from: <a href="https://bintray.com/groovy/Distributions/Windows-Installer/groovy-2.4.16-installer" class="bare">https://bintray.com/groovy/Distributions/Windows-Installer/groovy-2.4.16-installer</a>.</p> </div></div></div></div></div><footer id='footer'> <div class='row'> diff --git a/blog/groovy-2-4-17-released.html b/blog/groovy-2-4-17-released.html index fe07385..8db3c77 100644 --- a/blog/groovy-2-4-17-released.html +++ b/blog/groovy-2-4-17-released.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.4.17 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-4-16-released'>Groovy 2.4.16 Released</a></li><li><a href='./groovy-2-4-16-windows'>Groovy 2. [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.4.17 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-4-16-windows'>Groovy 2.4.16 Windows Installer Released (Community Artifact)</a></li><li><a hr [...] <p>Dear community,</p> </div> <div class="paragraph"> diff --git a/blog/groovy-2-5-0-released.html b/blog/groovy-2-5-0-released.html index cf4304f..82b4b59 100644 --- a/blog/groovy-2-5-0-released.html +++ b/blog/groovy-2-5-0-released.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.0 released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-7-released'>Groovy 2.5.7 Released</a></li><li><a href='./groovy-2-5-5-windows'>Groovy 2.5.5 [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.0 released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-2-windows'>Groovy 2.5.2 Windows Installer Released (Community Artifact)</a></li><li><a href= [...] <p>Dear community,</p> </div> <div class="paragraph"> diff --git a/blog/groovy-2-5-1-released.html b/blog/groovy-2-5-1-released.html index 2d91071..04d29ee 100644 --- a/blog/groovy-2-5-1-released.html +++ b/blog/groovy-2-5-1-released.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.1 released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-7-released'>Groovy 2.5.7 Released</a></li><li><a href='./groovy-2-5-5-windows'>Groovy 2.5.5 [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.1 released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-2-windows'>Groovy 2.5.2 Windows Installer Released (Community Artifact)</a></li><li><a href= [...] <p>Dear community,</p> </div> <div class="paragraph"> diff --git a/blog/groovy-2-5-2-released.html b/blog/groovy-2-5-2-released.html index ecd3bc9..a6309df 100644 --- a/blog/groovy-2-5-2-released.html +++ b/blog/groovy-2-5-2-released.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.2 released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-2-windows'>Groovy 2.5.2 Windows Installer Released (Community Artifact)</a></li><li><a href= [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.2 released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-2-windows'>Groovy 2.5.2 Windows Installer Released (Community Artifact)</a></li><li><a href= [...] <p>Dear community,</p> </div> <div class="paragraph"> diff --git a/blog/groovy-2-5-2-windows.html b/blog/groovy-2-5-2-windows.html index d078b5a..d4fe897 100644 --- a/blog/groovy-2-5-2-windows.html +++ b/blog/groovy-2-5-2-windows.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.2 Windows Installer Released (Community Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-5-windows'>Groovy 2.5.5 Windows Installer Released (C [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.2 Windows Installer Released (Community Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-7-and'>Groovy 2.5.7 and 3.0.0-beta-1 Windows Installe [...] <p>The Windows installer for Groovy 2.5.2 (community artifact) is available from: <a href="https://dl.bintray.com/groovy/Distributions/groovy-2.5.2-installer.exe" class="bare">https://dl.bintray.com/groovy/Distributions/groovy-2.5.2-installer.exe</a></p> </div></div></div></div></div><footer id='footer'> diff --git a/blog/groovy-2-5-3-released.html b/blog/groovy-2-5-3-released.html index 729a76f..6825aeb 100644 --- a/blog/groovy-2-5-3-released.html +++ b/blog/groovy-2-5-3-released.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.3 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-3-windows'>Groovy 2.5.3 Windows Installer Released (Community Artifact)</a></li><li><a href= [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.3 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-3-windows'>Groovy 2.5.3 Windows Installer Released (Community Artifact)</a></li><li><a href= [...] <p>Dear community,</p> </div> <div class="paragraph"> diff --git a/blog/groovy-2-5-3-windows.html b/blog/groovy-2-5-3-windows.html index a4097a1..7b689f7 100644 --- a/blog/groovy-2-5-3-windows.html +++ b/blog/groovy-2-5-3-windows.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.3 Windows Installer Released (Community Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-5-windows'>Groovy 2.5.5 Windows Installer Released (C [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.3 Windows Installer Released (Community Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-2-windows'>Groovy 2.5.2 Windows Installer Released (C [...] <p>The Windows installer for Groovy 2.5.3 (community artifact) is available from: <a href="https://bintray.com/groovy/Distributions/Windows-Installer/groovy-2.5.3-installer" class="bare">https://bintray.com/groovy/Distributions/Windows-Installer/groovy-2.5.3-installer</a></p> </div></div></div></div></div><footer id='footer'> diff --git a/blog/groovy-2-5-4-released.html b/blog/groovy-2-5-4-released.html index e142cd0..5133eb8 100644 --- a/blog/groovy-2-5-4-released.html +++ b/blog/groovy-2-5-4-released.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.4 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-4-windows'>Groovy 2.5.4 Windows Installer Released (Community Artifact)</a></li><li><a href= [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.4 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-4-windows'>Groovy 2.5.4 Windows Installer Released (Community Artifact)</a></li><li><a href= [...] <p>Dear community,</p> </div> <div class="paragraph"> diff --git a/blog/groovy-2-5-4-windows.html b/blog/groovy-2-5-4-windows.html index 8b805ad..65afd14 100644 --- a/blog/groovy-2-5-4-windows.html +++ b/blog/groovy-2-5-4-windows.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.4 Windows Installer Released (Community Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-5-windows'>Groovy 2.5.5 Windows Installer Released (C [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.4 Windows Installer Released (Community Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-2-windows'>Groovy 2.5.2 Windows Installer Released (C [...] <p>The Windows installer for Groovy 2.5.4 (community artifact) is available from: <a href="https://bintray.com/groovy/Distributions/Windows-Installer/groovy-2.5.4-installer" class="bare">https://bintray.com/groovy/Distributions/Windows-Installer/groovy-2.5.4-installer</a></p> </div></div></div></div></div><footer id='footer'> diff --git a/blog/groovy-2-5-5-released.html b/blog/groovy-2-5-5-released.html index 43396b8..1203cc1 100644 --- a/blog/groovy-2-5-5-released.html +++ b/blog/groovy-2-5-5-released.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.5 released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-5-windows'>Groovy 2.5.5 Windows Installer Released (Community Artifact)</a></li><li><a href= [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.5 released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-5-windows'>Groovy 2.5.5 Windows Installer Released (Community Artifact)</a></li><li><a href= [...] <p>Dear community,</p> </div> <div class="paragraph"> diff --git a/blog/groovy-2-5-5-windows.html b/blog/groovy-2-5-5-windows.html index 4dd99cd..cda3990 100644 --- a/blog/groovy-2-5-5-windows.html +++ b/blog/groovy-2-5-5-windows.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.5 Windows Installer Released (Community Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-5-released'>Groovy 2.5.5 released</a></li><li><a href [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.5 Windows Installer Released (Community Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-2-windows'>Groovy 2.5.2 Windows Installer Released (C [...] <p>The Windows installer for Groovy 2.5.5 (community artifact) is available at: <a href="https://bintray.com/groovy/Distributions/Windows-Installer/groovy-2.5.5-installer" class="bare">https://bintray.com/groovy/Distributions/Windows-Installer/groovy-2.5.5-installer</a></p> </div></div></div></div></div><footer id='footer'> diff --git a/blog/groovy-2-5-6-released.html b/blog/groovy-2-5-6-released.html index e923245..ee9d822 100644 --- a/blog/groovy-2-5-6-released.html +++ b/blog/groovy-2-5-6-released.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.6 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-7-released'>Groovy 2.5.7 Released</a></li><li><a href='./groovy-2-5-5-windows'>Groovy 2.5.5 [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.6 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-2-windows'>Groovy 2.5.2 Windows Installer Released (Community Artifact)</a></li><li><a href= [...] <p>Dear community,</p> </div> <div class="paragraph"> diff --git a/blog/groovy-2-5-7-and.html b/blog/groovy-2-5-7-and.html index 3166aa9..e7371b4 100644 --- a/blog/groovy-2-5-7-and.html +++ b/blog/groovy-2-5-7-and.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.7 and 3.0.0-beta-1 Windows Installers Released (Community Artifacts)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-7-released'>Groovy 2.5.7 Released< [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.7 and 3.0.0-beta-1 Windows Installers Released (Community Artifacts)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-2-windows'>Groovy 2.5.2 Windows In [...] <p>The Windows installer for Groovy 2.5.7 (Community Artifact) is now available from Bintray: <a href="https://bintray.com/groovy/Distributions/Windows-Installer/groovy-2.5.7-installer" class="bare">https://bintray.com/groovy/Distributions/Windows-Installer/groovy-2.5.7-installer</a>.</p> </div> diff --git a/blog/groovy-2-5-7-released.html b/blog/groovy-2-5-7-released.html index 0e66ae1..dccfd25 100644 --- a/blog/groovy-2-5-7-released.html +++ b/blog/groovy-2-5-7-released.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.7 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-7-and'>Groovy 2.5.7 and 3.0.0-beta-1 Windows Installers Released (Community Artifacts)</a></ [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 2.5.7 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-7-and'>Groovy 2.5.7 and 3.0.0-beta-1 Windows Installers Released (Community Artifacts)</a></ [...] <p>Dear community,</p> </div> <div class="paragraph"> diff --git a/blog/groovy-2-5-clibuilder-renewal.html b/blog/groovy-2-5-clibuilder-renewal.html index bb8f901..2882276 100644 --- a/blog/groovy-2-5-clibuilder-renewal.html +++ b/blog/groovy-2-5-clibuilder-renewal.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Apache Groovy 2.5 CliBuilder Renewal</a></li><li><a href='#_the_code_groovy_util_clibuilder_code_class_is_deprecated' class='anchor-link'>The <code>groovy.util.CliBuilder</code> Class is Deprecated</a></li><li><a href='#_typed_options' class='anchor-link'>Typed Options</a> [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Apache Groovy 2.5 CliBuilder Renewal</a></li><li><a href='#_the_code_groovy_util_clibuilder_code_class_is_deprecated' class='anchor-link'>The <code>groovy.util.CliBuilder</code> Class is Deprecated</a></li><li><a href='#_typed_options' class='anchor-link'>Typed Options</a> [...] <div class="sectionbody"> <div class="paragraph"> <p>The <code>CliBuilder</code> class for quickly and concisely building diff --git a/blog/groovy-3-0-0-alpha.html b/blog/groovy-3-0-0-alpha.html index ecb37c4..072927f 100644 --- a/blog/groovy-3-0-0-alpha.html +++ b/blog/groovy-3-0-0-alpha.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 3.0.0-alpha-4 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-3-0-0-alpha1'>Groovy 3.0.0-alpha-4 Windows Installer Released (Community Artifact)</a></ [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 3.0.0-alpha-4 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-3-0-0-alpha1'>Groovy 3.0.0-alpha-4 Windows Installer Released (Community Artifact)</a></ [...] <p>Dear community,</p> </div> <div class="paragraph"> diff --git a/blog/groovy-3-0-0-alpha1.html b/blog/groovy-3-0-0-alpha1.html index 66029e9..e31c97a 100644 --- a/blog/groovy-3-0-0-alpha1.html +++ b/blog/groovy-3-0-0-alpha1.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 3.0.0-alpha-4 Windows Installer Released (Community Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-3-0-0-alpha'>Groovy 3.0.0-alpha-4 Released</a></l [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 3.0.0-alpha-4 Windows Installer Released (Community Artifact)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-3-0-0-alpha'>Groovy 3.0.0-alpha-4 Released</a></l [...] <p>The Windows installer for Groovy 3.0.0-alpha-4 (Community Artifact) is available from the usual place: <a href="https://bintray.com/groovy/Distributions/download_file?file_path=groovy-3.0.0-alpha-4-installer.exe" class="bare">https://bintray.com/groovy/Distributions/download_file?file_path=groovy-3.0.0-alpha-4-installer.exe</a></p> </div> diff --git a/blog/groovy-3-0-0-beta.html b/blog/groovy-3-0-0-beta.html index 11f43dd..5b92e60 100644 --- a/blog/groovy-3-0-0-beta.html +++ b/blog/groovy-3-0-0-beta.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 3.0.0-beta-1 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-3-0-0-alpha'>Groovy 3.0.0-alpha-4 Released</a></li><li><a href='./groovy-3-0-0-beta2'>Gro [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 3.0.0-beta-1 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-3-0-0-alpha'>Groovy 3.0.0-alpha-4 Released</a></li><li><a href='./groovy-3-0-0-beta1'>Gro [...] <p>Dear community,</p> </div> <div class="paragraph"> diff --git a/blog/groovy-3-0-0-beta1.html b/blog/groovy-3-0-0-beta1.html index 635dc70..0316ed4 100644 --- a/blog/groovy-3-0-0-beta1.html +++ b/blog/groovy-3-0-0-beta1.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 3.0.0-beta-2 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-3-0-0-beta2'>Groovy 3.0.0-beta-2 Windows Installer Released (Community Release)</a></li>< [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 3.0.0-beta-2 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-3-0-0-beta2'>Groovy 3.0.0-beta-2 Windows Installer Released (Community Release)</a></li>< [...] <p>Dear community,</p> </div> <div class="paragraph"> diff --git a/blog/groovy-3-0-0-beta2.html b/blog/groovy-3-0-0-beta2.html index 52d4c04..475e4fa 100644 --- a/blog/groovy-3-0-0-beta2.html +++ b/blog/groovy-3-0-0-beta2.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 3.0.0-beta-2 Windows Installer Released (Community Release)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-3-0-0-alpha1'>Groovy 3.0.0-alpha-4 Windows Installe [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 3.0.0-beta-2 Windows Installer Released (Community Release)</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-3-0-0-beta1'>Groovy 3.0.0-beta-2 Released</a></li>< [...] <p>The Windows installer for Groovy 3.0.0-beta-2 is now available from Bintray: <a href="https://bintray.com/groovy/Distributions/download_file?file_path=groovy-3.0.0-beta-2-installer.exe" class="bare">https://bintray.com/groovy/Distributions/download_file?file_path=groovy-3.0.0-beta-2-installer.exe</a></p> </div> diff --git a/blog/groovy-4-0-3-released.html b/blog/groovy-4-0-3-released.html index d91807b..9b2b051 100644 --- a/blog/groovy-4-0-3-released.html +++ b/blog/groovy-4-0-3-released.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 4.0.3 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-7-released'>Groovy 2.5.7 Released</a></li><li><a href='./groovy-2-5-5-windows'>Groovy 2.5.5 [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy 4.0.3 Released</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-2-windows'>Groovy 2.5.2 Windows Installer Released (Community Artifact)</a></li><li><a href= [...] <p>Dear community,</p> </div> <div class="paragraph"> diff --git a/blog/groovy-dauphine.html b/blog/groovy-dauphine.html index 34cfc32..874bbcd 100644 --- a/blog/groovy-dauphine.html +++ b/blog/groovy-dauphine.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Processing Results for the Critérium du Dauphiné</a></li><li><a href='#_results_file' class='anchor-link'>Results file</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./parsin [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Processing Results for the Critérium du Dauphiné</a></li><li><a href='#_results_file' class='anchor-link'>Results file</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./readin [...] <div class="sectionbody"> <div class="paragraph"> <p>The 2023 <a href="https://www.criterium-du-dauphine.fr/en/">Critérium du Dauphiné</a> diff --git a/blog/groovy-haiku-processing.html b/blog/groovy-haiku-processing.html index fe9d0f7..28d540c 100644 --- a/blog/groovy-haiku-processing.html +++ b/blog/groovy-haiku-processing.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy Haiku processing</a></li><li><a href='#_example_1_finding_the_distinct_letters' class='anchor-link'>Example 1: Finding the distinct letters</a></li><li><a href='#_example_2_splitting_letters_into_unique_and_duplicate_partitions' class='anchor-link'>Example 2: Splitt [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy Haiku processing</a></li><li><a href='#_example_1_finding_the_distinct_letters' class='anchor-link'>Example 1: Finding the distinct letters</a></li><li><a href='#_example_2_splitting_letters_into_unique_and_duplicate_partitions' class='anchor-link'>Example 2: Splitt [...] <div class="sectionbody"> <div class="paragraph"> <p>This blog looks at some Groovy solutions for the examples in the diff --git a/blog/groovy-list-processing-cheat-sheet.html b/blog/groovy-list-processing-cheat-sheet.html index a6141de..8ffc3af 100644 --- a/blog/groovy-list-processing-cheat-sheet.html +++ b/blog/groovy-list-processing-cheat-sheet.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy List Processing Cheat Sheet</a></li><li><a href='#_declaring_lists' class='anchor-link'>Declaring lists</a></li><li><a href='#_list_elements_and_properties' class='anchor-link'>List elements and properties</a></li><li><a href='#_modifying_mutable_lists' class='ancho [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy List Processing Cheat Sheet</a></li><li><a href='#_declaring_lists' class='anchor-link'>Declaring lists</a></li><li><a href='#_list_elements_and_properties' class='anchor-link'>List elements and properties</a></li><li><a href='#_modifying_mutable_lists' class='ancho [...] <h2 id="_declaring_lists">Declaring lists</h2> <div class="sectionbody"> <div class="paragraph"> diff --git a/blog/groovy-null-processing.html b/blog/groovy-null-processing.html index 330af6a..82a62be 100644 --- a/blog/groovy-null-processing.html +++ b/blog/groovy-null-processing.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy Processing Nulls In Lists</a></li><li><a href='#_libraries_covered' class='anchor-link'>Libraries covered</a></li><li><a href='#_mutating_a_list_to_remove_its_nulls' class='anchor-link'>Mutating a list to remove its nulls</a></li><li><a href='#_producing_a_new_list_ [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy Processing Nulls In Lists</a></li><li><a href='#_libraries_covered' class='anchor-link'>Libraries covered</a></li><li><a href='#_mutating_a_list_to_remove_its_nulls' class='anchor-link'>Mutating a list to remove its nulls</a></li><li><a href='#_producing_a_new_list_ [...] <div class="sectionbody"> <div class="paragraph"> <p>This <a href="https://www.programmergirl.com/java-remove-nulls-from-list/">article</a> by <a href="https://www.programmergirl.com/about-me/">Shubhra Srivastava</a> diff --git a/blog/groovy-record-performance.html b/blog/groovy-record-performance.html index e023b64..b36e255 100644 --- a/blog/groovy-record-performance.html +++ b/blog/groovy-record-performance.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy Record Performance</a></li><li><a href='#_our_domain' class='anchor-link'>Our domain</a></li><li><a href='#_performance_of_hashcode' class='anchor-link'>Performance of <code>hashCode</code></a></li><li><a href='#_performance_of_equals' class='anchor-link'>Performanc [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy Record Performance</a></li><li><a href='#_our_domain' class='anchor-link'>Our domain</a></li><li><a href='#_performance_of_hashcode' class='anchor-link'>Performance of <code>hashCode</code></a></li><li><a href='#_performance_of_equals' class='anchor-link'>Performanc [...] <div class="sectionbody"> <div class="paragraph"> <p>We highly recommend the excellent diff --git a/blog/groovy-records.html b/blog/groovy-records.html index 275714e..0aa2a9c 100644 --- a/blog/groovy-records.html +++ b/blog/groovy-records.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy Records</a></li><li><a href='#_introduction' class='anchor-link'>Introduction</a></li><li><a href='#_optional_enhancements' class='anchor-link'>Optional enhancements</a></li><li><a href='#_internal_details' class='anchor-link'>Internal details</a></li><li><a href='# [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy Records</a></li><li><a href='#_introduction' class='anchor-link'>Introduction</a></li><li><a href='#_optional_enhancements' class='anchor-link'>Optional enhancements</a></li><li><a href='#_internal_details' class='anchor-link'>Internal details</a></li><li><a href='# [...] <div class="sectionbody"> <div class="paragraph"> <p>A common scenario when programming is the need to group together a bunch diff --git a/blog/groovy-release-train-4-0.html b/blog/groovy-release-train-4-0.html index 32089c9..aea2a90 100644 --- a/blog/groovy-release-train-4-0.html +++ b/blog/groovy-release-train-4-0.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy release train: 4.0.4, 3.0.12, 2.5.18</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-7-released'>Groovy 2.5.7 Released</a></li><li><a href='./groovy-2-5-5- [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy release train: 4.0.4, 3.0.12, 2.5.18</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-2-5-2-windows'>Groovy 2.5.2 Windows Installer Released (Community Artifact [...] <p>It’s been a productive time for the Apache Groovy project recently. We recently released versions 4.0.4, 3.0.12 and 2.5.18 with 42, 21 and 15 fixes and improvements respectively. Two quick highlights for the 4.0.4 release before getting into more details about the release.</p> </div> <div class="paragraph"> diff --git a/blog/groovy-sequenced-collections.html b/blog/groovy-sequenced-collections.html index 8b444c0..ec0d0ba 100644 --- a/blog/groovy-sequenced-collections.html +++ b/blog/groovy-sequenced-collections.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy and Sequenced Collections (JEP-431)</a></li><li><a href='#_sequenced_collections_summary' class='anchor-link'>Sequenced Collections Summary</a></li><li><a href='#_accessing_the_first_and_last_element' class='anchor-link'>Accessing the first and last element</a></li> [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Groovy and Sequenced Collections (JEP-431)</a></li><li><a href='#_sequenced_collections_summary' class='anchor-link'>Sequenced Collections Summary</a></li><li><a href='#_accessing_the_first_and_last_element' class='anchor-link'>Accessing the first and last element</a></li> [...] <div class="sectionbody"> <div class="paragraph"> <p>An exciting feature coming in JDK21 is diff --git a/blog/helloworldemoji.html b/blog/helloworldemoji.html index e53cb28..1075000 100644 --- a/blog/helloworldemoji.html +++ b/blog/helloworldemoji.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Hello World with Emojis</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./deep-learning-and-eclipse-collections'>Deep Learning and Eclipse Collections</a></li><li><a href='./a [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Hello World with Emojis</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./deep-learning-and-eclipse-collections'>Deep Learning and Eclipse Collections</a></li><li><a href='./z [...] <p>In a <a href="https://groovy.apache.org/blog/jvm-hello-world-with-groovy">previous blog post</a> we took an in-depth look at how to write a "hello world" class at the bytecode level using various libraries.</p> diff --git a/blog/index.html b/blog/index.html index 540294b..16a5498 100644 --- a/blog/index.html +++ b/blog/index.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3' id='blog-index'><ul class='nav-sidebar list'><li class='active'><a href='/blog/'>Blogs</a></li><li><a href='groovy-pekko-gpars'>Using Apache Pekko actors and GPars actors with Groovy</a></li><li><a href='groovy-dauphine'>Processing Results for the Critérium du Dauphiné</a></li><li><a href='create-groovy-blog'>Creating a Groovy Blog Post</a></li><li><a href='groovy- [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3' id='blog-index'><ul class='nav-sidebar list'><li class='active'><a href='/blog/'>Blogs</a></li><li><a href='groovy-pekko-gpars'>Using Apache Pekko actors and GPars actors with Groovy</a></li><li><a href='groovy-dauphine'>Processing Results for the Critérium du Dauphiné</a></li><li><a href='create-groovy-blog'>Creating a Groovy Blog Post</a></li><li><a href='groovy- [...] <div class='row'> <div class='colset-3-footer'> <div class='col-1'> @@ -97,7 +97,7 @@ colors: am5.ColorSet.new(root, {}) })); wc.data.setAll([ - { category: "concurrency", value: 2 }, { category: "groovy", value: 71 }, { category: "actors", value: 2 }, { category: "pekko", value: 1 }, { category: "gpars", value: 2 }, { category: "calendar", value: 1 }, { category: "date", value: 3 }, { category: "jsr310", value: 1 }, { category: "time", value: 1 }, { category: "data science", value: 7 }, { category: "eclipse collections", value: 9 }, { category: "kmeans", value: 3 }, { category: "emoji", value: 5 }, { category: "v [...] + { category: "centroids", value: 1 }, { category: "data science", value: 7 }, { category: "groovy", value: 71 }, { category: "kmeans", value: 3 }, { category: "records", value: 7 }, { category: "apache spark", value: 1 }, { category: "apache wayang", value: 1 }, { category: "release", value: 25 }, { category: "clibuilder", value: 1 }, { category: "picocli", value: 1 }, { category: "commons cli", value: 1 }, { category: "decryption", value: 1 }, { category: "encryption", va [...] ]); wc.labels.template.setAll({ paddingTop: 5, diff --git a/blog/lego-bricks-with-groovy.html b/blog/lego-bricks-with-groovy.html index 71992e9..597ccc0 100644 --- a/blog/lego-bricks-with-groovy.html +++ b/blog/lego-bricks-with-groovy.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Lego Bricks with Groovy</a></li><li><a href='#_basic_collection_processing' class='anchor-link'>Basic Collection Processing</a></li><li><a href='#_our_example_domain' class='anchor-link'>Our example domain</a></li><li><a href='#_some_bricks_to_play_with' class='anchor-link [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Lego Bricks with Groovy</a></li><li><a href='#_basic_collection_processing' class='anchor-link'>Basic Collection Processing</a></li><li><a href='#_our_example_domain' class='anchor-link'>Our example domain</a></li><li><a href='#_some_bricks_to_play_with' class='anchor-link [...] <div class="sectionbody"> <div class="paragraph"> <p><a href="https://twitter.com/TheDonRaab">Donald Raab</a> has continued has interesting diff --git a/blog/matrix-calculations-with-groovy-apache.html b/blog/matrix-calculations-with-groovy-apache.html index f3fdff5..d66a923 100644 --- a/blog/matrix-calculations-with-groovy-apache.html +++ b/blog/matrix-calculations-with-groovy-apache.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Matrix calculations with Groovy, Apache Commons Math, ojAlgo, Nd4j and EJML</a></li><li><a href='#_fibonacci' class='anchor-link'>Fibonacci</a></li><li><a href='#_leslie_matrices' class='anchor-link'>Leslie Matrices</a></li><li><a href='#_encryption_with_matrices' class='a [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Matrix calculations with Groovy, Apache Commons Math, ojAlgo, Nd4j and EJML</a></li><li><a href='#_fibonacci' class='anchor-link'>Fibonacci</a></li><li><a href='#_leslie_matrices' class='anchor-link'>Leslie Matrices</a></li><li><a href='#_encryption_with_matrices' class='a [...] <div class="sectionbody"> <div class="paragraph"> <p>This blogs looks at performing matrix calculations with Groovy diff --git a/blog/parsing-json-with-groovy.html b/blog/parsing-json-with-groovy.html index 1ae5630..76919f0 100644 --- a/blog/parsing-json-with-groovy.html +++ b/blog/parsing-json-with-groovy.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Parsing JSON with Groovy</a></li><li><a href='#_batteries_included_experience' class='anchor-link'>Batteries included experience</a></li><li><a href='#_gradle' class='anchor-link'>Gradle</a></li><li><a href='#_maven' class='anchor-link'>Maven</a></li><li><a href='#_advance [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Parsing JSON with Groovy</a></li><li><a href='#_batteries_included_experience' class='anchor-link'>Batteries included experience</a></li><li><a href='#_gradle' class='anchor-link'>Gradle</a></li><li><a href='#_maven' class='anchor-link'>Maven</a></li><li><a href='#_advance [...] <div class="sectionbody"> <div class="paragraph"> <p><span class="image right"><img src="img/json_logo.gif" alt="json logo" width="120"></span> diff --git a/blog/reading-and-writing-csv-files.html b/blog/reading-and-writing-csv-files.html index 4813ac0..003bc69 100644 --- a/blog/reading-and-writing-csv-files.html +++ b/blog/reading-and-writing-csv-files.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Reading and Writing CSV files with Groovy</a></li><li><a href='#_introduction' class='anchor-link'>Introduction</a></li><li><a href='#_commons_csv' class='anchor-link'>Commons CSV</a></li><li><a href='#_opencsv' class='anchor-link'>OpenCSV</a></li><li><a href='#_jackson_da [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Reading and Writing CSV files with Groovy</a></li><li><a href='#_introduction' class='anchor-link'>Introduction</a></li><li><a href='#_commons_csv' class='anchor-link'>Commons CSV</a></li><li><a href='#_opencsv' class='anchor-link'>OpenCSV</a></li><li><a href='#_jackson_da [...] <h2 id="_introduction">Introduction</h2> <div class="sectionbody"> <div class="paragraph"> diff --git a/blog/using-groovy-with-apache-wayang.html b/blog/using-groovy-with-apache-wayang.html index 51c4422..f49b844 100644 --- a/blog/using-groovy-with-apache-wayang.html +++ b/blog/using-groovy-with-apache-wayang.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Using Groovy with Apache Wayang and Apache Spark</a></li><li><a href='#_whiskey_clustering' class='anchor-link'>Whiskey Clustering</a></li><li><a href='#_implementation_details' class='anchor-link'>Implementation Details</a></li><li><a href='#_running_with_the_java_streams [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Using Groovy with Apache Wayang and Apache Spark</a></li><li><a href='#_whiskey_clustering' class='anchor-link'>Whiskey Clustering</a></li><li><a href='#_implementation_details' class='anchor-link'>Implementation Details</a></li><li><a href='#_running_with_the_java_streams [...] <div class="sectionbody"> <div class="paragraph"> <p><span class="image right"><img src="https://www.apache.org/logos/res/wayang/default.png" alt="wayang logo" width="100"></span> diff --git a/blog/whiskey-clustering-with-groovy-and.html b/blog/whiskey-clustering-with-groovy-and.html index 68cb586..a0a76f5 100644 --- a/blog/whiskey-clustering-with-groovy-and.html +++ b/blog/whiskey-clustering-with-groovy-and.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Whiskey Clustering with Groovy and Apache Ignite</a></li><li><a href='#_whiskey_clustering' class='anchor-link'>Whiskey Clustering</a></li><li><a href='#_apache_ignite' class='anchor-link'>Apache Ignite</a></li><li><a href='#_implementation_details' class='anchor-link'>Imp [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Whiskey Clustering with Groovy and Apache Ignite</a></li><li><a href='#_whiskey_clustering' class='anchor-link'>Whiskey Clustering</a></li><li><a href='#_apache_ignite' class='anchor-link'>Apache Ignite</a></li><li><a href='#_implementation_details' class='anchor-link'>Imp [...] <div class="sectionbody"> <div class="paragraph"> <p>In a previous <a href="https://groovy.apache.org/blog/using-groovy-with-apache-wayang">blog post</a>, diff --git a/blog/wordle-checker.html b/blog/wordle-checker.html index 2a75afb..7a72a97 100644 --- a/blog/wordle-checker.html +++ b/blog/wordle-checker.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Checking Wordle with Groovy</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-null-processing'>Groovy Processing Nulls In Lists</a></li><li><a href='./groovy-list-proce [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Checking Wordle with Groovy</a></li></ul><br/><ul class='nav-sidebar'><li style='padding: 0.35em 0.625em; background-color: #eee'><span>Related posts</span></li><li><a href='./groovy-null-processing'>Groovy Processing Nulls In Lists</a></li><li><a href='./zipping-collectio [...] <p>This <a href="https://donraab.medium.com/comparing-my-smalltalk-and-eclipse-collections-wordle-kata-solutions-4058ac7d8ca0">article</a> by <a href="https://twitter.com/TheDonRaab">Donald Raab</a> looks at writing a Wordle checker in Smalltalk and Java using <a href="https://github.com/eclipse/eclipse-collections">Eclipse Collections</a>. Let’s look at doing the same in Groovy. We could easily use Eclipse Collections with Groovy diff --git a/blog/zipping-collections-with-groovy.html b/blog/zipping-collections-with-groovy.html index a1ab2ea..3ad5cfa 100644 --- a/blog/zipping-collections-with-groovy.html +++ b/blog/zipping-collections-with-groovy.html @@ -53,7 +53,7 @@ </ul> </div> </div> - </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Zipping Collections with Groovy</a></li><li><a href='#_what_is_zipping' class='anchor-link'>What is zipping?</a></li><li><a href='#_groovy' class='anchor-link'>Groovy</a></li><li><a href='#_eclipse_collections' class='anchor-link'>Eclipse Collections</a></li><li><a href='# [...] + </div><div id='content' class='page-1'><div class='row'><div class='row-fluid'><div class='col-lg-3'><ul class='nav-sidebar'><li><a href='./'>Blog index</a></li><li class='active'><a href='#doc'>Zipping Collections with Groovy</a></li><li><a href='#_what_is_zipping' class='anchor-link'>What is zipping?</a></li><li><a href='#_groovy' class='anchor-link'>Groovy</a></li><li><a href='#_eclipse_collections' class='anchor-link'>Eclipse Collections</a></li><li><a href='# [...] <h2 id="_what_is_zipping">What is zipping?</h2> <div class="sectionbody"> <div class="paragraph">