<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Posts on Lee Turner</title>
		<link>https://leeturner.me/post/</link>
		<description>Recent content in Posts on Lee Turner</description>
		<generator>Hugo</generator>
		<language>en-US</language>
		
		
		
		
			<lastBuildDate>Mon, 16 Feb 2026 10:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://leeturner.me/post/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Convert an Image into Colourful Ascii Art - Vlang Edition</title>
				<link>https://leeturner.me/post/image-term-vlang/</link>
				<pubDate>Mon, 16 Feb 2026 10:00:00 +0000</pubDate>
				<guid>https://leeturner.me/post/image-term-vlang/</guid>
				<description>&lt;p&gt;Coming into 2026, I decided that it was time to step outside the JVM and play&#xA;around with some different languages. While &lt;a href=&#34;https://kotlinlang.org/&#34;&gt;Kotlin&lt;/a&gt; is still&#xA;my goto language, jvm languages do come with their own baggage.  I have used&#xA;&lt;a href=&#34;https://go.dev/&#34;&gt;Go&lt;/a&gt; before and really liked the simplicity and performance of the&#xA;language.  It has a lot to like, but it does have a few things that I am not a fan of:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;No mutability built into the language&lt;/li&gt;&#xA;&lt;li&gt;Error handling is a bit clunky&lt;/li&gt;&#xA;&lt;li&gt;Lack of visibility modifiers&lt;/li&gt;&#xA;&lt;li&gt;Enum support is limited&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Anyway, long story short, I decided to dive into a couple of new languages and see what&#xA;I liked best.  The main one being &lt;a href=&#34;https://rust-lang.org/&#34;&gt;Rust&lt;/a&gt; and the other being&#xA;&lt;a href=&#34;https://vlang.io/&#34;&gt;V&lt;/a&gt;. V is a newer language that I have been wanting to try out for a while.&lt;/p&gt;</description>
			</item>
			<item>
				<title>WireMock 3.6.0 - New Array Helpers</title>
				<link>https://leeturner.me/post/wiremock-3-6-0-array-helpers/</link>
				<pubDate>Fri, 24 May 2024 10:00:00 +0000</pubDate>
				<guid>https://leeturner.me/post/wiremock-3-6-0-array-helpers/</guid>
				<description>&lt;p&gt;WireMock version 3.6.0 has &lt;a href=&#34;https://www.wiremock.io/post/wiremock-3-6-0-released&#34;&gt;just been released&lt;/a&gt; containing a&#xA;number of new features, bug fixes and dependency updates. Version 3.6.0 has a number of new template helpers to make&#xA;working with arrays much easier when using Response Templating.&lt;/p&gt;&#xA;&lt;p&gt;In this post we are going to explore the new array helpers and how to use them.&lt;/p&gt;&#xA;&lt;h2 id=&#34;arrayadd---add-elements-to-an-array&#34;&gt;arrayAdd - add elements to an array&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;code&gt;arrayAdd&lt;/code&gt; helper can be used to add elements to an array based on a position value or the start or end keywords. If&#xA;no position is specified, the element will be added to end of the array.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Returning Images From Micronaut Controllers</title>
				<link>https://leeturner.me/post/returning-images-from-micronaut-controllers/</link>
				<pubDate>Thu, 29 Jun 2023 18:00:00 +0000</pubDate>
				<guid>https://leeturner.me/post/returning-images-from-micronaut-controllers/</guid>
				<description>&lt;p&gt;This week I was browsing the &lt;a href=&#34;https://matrix.to/#/#micronautfw_questions:gitter.im&#34;&gt;Micronaut Gitter channel&lt;/a&gt; and saw a&#xA;question about how to return a BufferedImage from a Micronaut controller. This isn&amp;rsquo;t something I&amp;rsquo;ve done before and it&#xA;instantly &lt;a href=&#34;https://xkcd.com/356/&#34;&gt;nerd snipped&lt;/a&gt; me:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I am looking for help on how to make a controller method respond with a BufferedImage. Any ideas ?&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;I had a quick google, and it turns out you don&amp;rsquo;t need a buffered image at all. I found a few references to returning a&#xA;byte array from a controller, so I quickly span up a new service from &lt;a href=&#34;https://micronaut.io/launch/&#34;&gt;Micronaut Launch&lt;/a&gt;,&#xA;added a controller with an endpoint that loaded an image from the classpath returned it as a byte array:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Creating Hugo Blog Posts from Meetup Pages using Kotlin Script and JSoup</title>
				<link>https://leeturner.me/post/creating-hugo-blog-posts-from-meetup-pages-using-kotlin-script-and-j-soup/</link>
				<pubDate>Mon, 26 Jun 2023 10:20:08 +0000</pubDate>
				<guid>https://leeturner.me/post/creating-hugo-blog-posts-from-meetup-pages-using-kotlin-script-and-j-soup/</guid>
				<description>&lt;h2 id=&#34;the-dark-side-of-running-a-meetup-group&#34;&gt;The Dark Side of Running a Meetup Group&lt;/h2&gt;&#xA;&lt;p&gt;I really enjoy running the &lt;a href=&#34;https://brightonkotlin.com&#34;&gt;Brighton Kotlin&lt;/a&gt; and &lt;a href=&#34;https://www.meetup.com/brighton-jug/&#34;&gt;Brighton JUG&lt;/a&gt;&#xA;meetup groups. It is purely selfish to be honest, I get to meet lots of interesting people and learn a lot from the&#xA;speakers and attendees and generally geek out with like-minded people.&lt;/p&gt;&#xA;&lt;p&gt;However, there is a lot of admin involved in running a meetup group, let alone two - especially when you decide to set&#xA;up a dedicated blog for each of the meetup groups. Add that to a full time job and family commitments and it makes an&#xA;interesting juggling act. So, inspired by &lt;a href=&#34;https://twitter.com/osteel&#34;&gt;Yannick&lt;/a&gt;, one of the organisers of the&#xA;local &lt;a href=&#34;https://phpsussex.uk/&#34;&gt;PHP meetup&lt;/a&gt;, and the way he &lt;a href=&#34;https://github.com/PHPSussex/phpsussex.github.io&#34;&gt;automates&lt;/a&gt;&#xA;the updating of the website homepage, I decided that it was time for me to look at my setup.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Brighton JUG &amp; Kotlin Summer Social 🍺</title>
				<link>https://leeturner.me/post/brighton-jug-kotlin-summer-social/</link>
				<pubDate>Sat, 17 Jun 2023 10:20:08 +0000</pubDate>
				<guid>https://leeturner.me/post/brighton-jug-kotlin-summer-social/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://leeturner.me/img/blog/2023-06-17-kotlin-jug-summer-social/summer-social.png&#34; alt=&#34;Brighton JUG &amp;amp; Kotlin Summer Socal&#34; title=&#34;Summer Social&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;We will be taking a break from our usual schedule of talks to get both our meetups together with an IRL social and kick off the summer with a few drinks at the Foundary pub in Brighton.&lt;/p&gt;&#xA;&lt;p&gt;Come and join us by signing up on either the &lt;a href=&#34;https://www.meetup.com/brighton-kotlin/events/293905840/&#34;&gt;Brighton Kotlin&lt;/a&gt; or &lt;a href=&#34;https://www.meetup.com/brighton-jug/events/293905213/&#34;&gt;Brighton JUG&lt;/a&gt; meetup pages.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Overriding a Parent Dependency in Maven</title>
				<link>https://leeturner.me/post/overriding-a-dependency-in-maven/</link>
				<pubDate>Sat, 08 Jan 2022 10:20:08 +0000</pubDate>
				<guid>https://leeturner.me/post/overriding-a-dependency-in-maven/</guid>
				<description>&lt;p&gt;This weekend I am spending some time taking a look at my &lt;a href=&#34;https://snyk.io&#34;&gt;Snyk Dashboard&lt;/a&gt; and upgrading a few dependencies in old projects&lt;/p&gt;&#xA;&lt;p&gt;The main thing I wanted to take a look at was the recent RCE (Remote Code Execution) vulnerability that was disclosed in the h2 database.  This is a similar &lt;code&gt;JNDI&lt;/code&gt; exploit to the one that impacted Log4j in December last year (called Log4Shell).  You can read more about Log4Shell on the &lt;a href=&#34;https://snyk.io/log4j-vulnerability-resources/&#34;&gt;Snyk resources page&lt;/a&gt; and find details of the recent h2 RCE on the &lt;a href=&#34;https://security.snyk.io/vuln/SNYK-JAVA-COMH2DATABASE-2331071&#34;&gt;Snyk Vulnerability Database&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Outputting the result of a mockMvc call</title>
				<link>https://leeturner.me/post/outputting-result-of-mockmvc/</link>
				<pubDate>Sun, 12 Sep 2021 10:20:08 +0000</pubDate>
				<guid>https://leeturner.me/post/outputting-result-of-mockmvc/</guid>
				<description>&lt;p&gt;This post falls into the category of something I always forget and need to Google.&lt;/p&gt;&#xA;&lt;p&gt;When running spring integration tests and using mockMvc, it can often be useful to see the output of the call in the console to help with debugging.  This can be done by adding &lt;code&gt;MockMvcResultsHandlers.print()&lt;/code&gt; to the call chain like in the following example.&lt;/p&gt;&#xA;&lt;p&gt;This:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-java&#34; data-lang=&#34;java&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nd&#34;&gt;@Test&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;void&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;nf&#34;&gt;getStatementsThrowABadRequestWhenCookiesNotPresent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;kd&#34;&gt;throws&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Exception&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;   &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mockMvc&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;perform&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;/statements&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#x9; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;headers&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;getHeaders&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#x9; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;cookie&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;getCookies&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#x9; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;contentType&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;MediaType&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;APPLICATION_JSON&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#x9; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;andExpect&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;status&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;().&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;isBadRequest&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#x9; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;andExpect&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;jsonPath&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;$.status&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;400&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#x9; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;andExpect&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;jsonPath&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;$.type&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;BAD_REQUEST&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)))&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;&#x9; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;andExpect&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;jsonPath&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;$.errors.length()&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;is&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)));&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Becomes this:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Creating a Progression Framework in Hugo</title>
				<link>https://leeturner.me/post/hugo-progression-framework/</link>
				<pubDate>Sat, 01 May 2021 10:20:08 +0000</pubDate>
				<guid>https://leeturner.me/post/hugo-progression-framework/</guid>
				<description>&lt;p&gt;I was introduced to progression frameworks last year when I came across the &lt;a href=&#34;https://github.com/monzo/progression-framework&#34;&gt;Monzo progression framework&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I really like the idea that people within an organisation have a tool to help them grow and hone their strengths along with organisations ensuring they are in good shape, and their employees are happy.&lt;/p&gt;&#xA;&lt;p&gt;The Monzo progression framework is built using the Gatsby static site builder which makes the frameworks easy to build and track via source control. I have never used Gatsby, but I do have some investment in the Hugo static site builder, and we also use that at &lt;a href=&#34;https://crunchtech.medium.com/&#34;&gt;Crunch&lt;/a&gt;, so I thought I would see if I could put a hugo template together that can render progression frameworks in the same data format as Monzo.&lt;/p&gt;</description>
			</item>
			<item>
				<title>BlinkyTape JUnit Testwatcher API Implementation</title>
				<link>https://leeturner.me/post/blinkytape-junit-testwatcher/</link>
				<pubDate>Tue, 06 Apr 2021 10:20:08 +0000</pubDate>
				<guid>https://leeturner.me/post/blinkytape-junit-testwatcher/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://leeturner.me/posts/building-a-camel-case-junit5-displaynamegenerator/&#34;&gt;Every so often&lt;/a&gt; I like to have a play around with a part of &lt;a href=&#34;https://junit.org&#34;&gt; Junit &lt;/a&gt; that I haven&amp;rsquo;t used before, and I recently decided to look into the &lt;a href=&#34;https://junit.org/junit5/docs/5.5.1/api/org/junit/jupiter/api/extension/TestWatcher.html&#34;&gt;TestWatcher API&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I have to admit that I have been meaning to play with this for quite a while now&amp;hellip;. I just haven&amp;rsquo;t really found a good use-case for it. Given that I decided to quit trying to find a good use-case and implement something nerdy instead.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Geek Reads 1</title>
				<link>https://leeturner.me/post/geek-reads-1/</link>
				<pubDate>Sun, 07 Jun 2020 13:20:08 +0000</pubDate>
				<guid>https://leeturner.me/post/geek-reads-1/</guid>
				<description>&lt;p&gt;Geek Reads are a selection of the articles, tools and announcements I have found interesting while browsing the interwebs, I save all of these in my &lt;a href=&#34;https://pinboard.in&#34;&gt;pinboard&lt;/a&gt; account and gather them up periodically and post them here.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-ultimate-kotlin-tutorials-for-beginners--callicoder&#34;&gt;&lt;a href=&#34;https://www.callicoder.com/categories/kotlin/&#34;&gt;The Ultimate Kotlin Tutorials for Beginners | CalliCoder&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;A wide range of kotlin tutorials&lt;/p&gt;&#xA;&lt;h2 id=&#34;yolossnprometheus-basics-a-beginner-friendly-introduction-to-prometheus-&#34;&gt;&lt;a href=&#34;https://github.com/yolossn/Prometheus-Basics&#34;&gt;yolossn/Prometheus-Basics: A beginner friendly introduction to prometheus 🔥&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;A beginner friendly introduction to prometheus&lt;/p&gt;&#xA;&lt;h2 id=&#34;gitops-days-2020--conference-for-devops-kubernetes-and-microservices&#34;&gt;&lt;a href=&#34;https://www.gitopsdays.com/&#34;&gt;GitOps Days 2020 – conference for DevOps, Kubernetes, and Microservices&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Whether you’ve been wanting to learn about GitOps for the first time or you need help to convince your teams to understand the benefits of GitOps, this event is for you! The even has now passed, but you should definitely take a look at the videos on youtube.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Copying A Branch Name In Intellij</title>
				<link>https://leeturner.me/post/copying-the-branch-name-in-intellij/</link>
				<pubDate>Sun, 12 Apr 2020 18:09:08 +0000</pubDate>
				<guid>https://leeturner.me/post/copying-the-branch-name-in-intellij/</guid>
				<description>&lt;p&gt;How many times do you need to use the name of the branch you are currently working on ?  Entering the name of the branch into your CI/CD system to deploy your feature branch into a staging environment, sending the name over email or internal messaging app to a co-worker who you are pair-programming with&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;I seem to need to do this quite frequently over the course of a working week, and the place I always go to get the branch name is Intellij.  Up until a couple of days ago I longed for an easy way to simply copy the name of the current branch from the git branch list in the status bar.  It just seemed to make sense when there are already options like &lt;code&gt;remane&lt;/code&gt;.  So, to achieve this I would select the &lt;code&gt;rename&lt;/code&gt; option on the branch name I would like to copy and then just &lt;code&gt;Ctrl/Cmd+C&lt;/code&gt; in the rename branch dialog.  Quite a few mouse clicks and keyboard presses, but it achieved the desired result in the end.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Building a Camel Case @DisplayNameGenerator For JUnit 5</title>
				<link>https://leeturner.me/post/building-a-camel-case-junit5-displaynamegenerator/</link>
				<pubDate>Sun, 10 Feb 2019 22:09:08 +0000</pubDate>
				<guid>https://leeturner.me/post/building-a-camel-case-junit5-displaynamegenerator/</guid>
				<description>&lt;p&gt;I think it is fair to say that &lt;a href=&#34;https://junit.org&#34;&gt;JUnit&lt;/a&gt; has been my go to unit testing framework for quite a while.  I have used &lt;a href=&#34;https://testng.org/&#34;&gt;TestNG&lt;/a&gt; on some pretty major projects where it was already in use (and it has some awesome features) but if I am building something from scratch, I will most likely reach for the JUnit maven dependencies.&lt;/p&gt;&#xA;&lt;p&gt;This was solidified even further with the release of JUnit 5.  I won&amp;rsquo;t go into any detail here of what the major differences are between version 4 and 5 because there are loads of great articles on the web about this already.  However, some of my favourites are:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Tooling Up - Implementing test &amp;&amp; commit || revert (TCR) In IntelliJ</title>
				<link>https://leeturner.me/post/tooling-up-tcr-intellij/</link>
				<pubDate>Thu, 17 Jan 2019 22:09:08 +0000</pubDate>
				<guid>https://leeturner.me/post/tooling-up-tcr-intellij/</guid>
				<description>&lt;p&gt;Like many others, I have been reading about the new programming workflow introduced by &lt;a href=&#34;https://twitter.com/KentBeck&#34;&gt;Kent Beck&lt;/a&gt; called &lt;a href=&#34;https://medium.com/@kentbeck_7670/test-commit-revert-870bbd756864&#34;&gt;test &amp;amp;&amp;amp; commit || revert&lt;/a&gt; (TCR)&lt;/p&gt;&#xA;&lt;p&gt;When I first heard about it I had much the same response as Kent - why the hell would you want to do something like that?  That can&amp;rsquo;t possibly work, my tests don&amp;rsquo;t always pass when I am experimenting - I would lose my code if I did this.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hello World.... erm again</title>
				<link>https://leeturner.me/post/hello-world-erm-again/</link>
				<pubDate>Wed, 16 Jan 2019 22:09:08 +0000</pubDate>
				<guid>https://leeturner.me/post/hello-world-erm-again/</guid>
				<description>&lt;p&gt;Well, what can I say?  It has been nearly a year to the day that I posted my original &lt;a href=&#34;https://leeturner.me/posts/hello-world&#34;&gt;Hello World post&lt;/a&gt; and I think it is fair to say that there hasn&amp;rsquo;t been a great deal of activity since.&lt;/p&gt;&#xA;&lt;p&gt;That isn&amp;rsquo;t to say that it hasn&amp;rsquo;t been an extremely busy 2018.  I just completely failed to write about any of it which is a shame.  2018 was filled with some pretty cool stuff:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Oracle MOOC - Java Virtual Machine Troubleshooting (2018)</title>
				<link>https://leeturner.me/post/oracle-mooc-java-virtual-machine-troubleshooting/</link>
				<pubDate>Sun, 25 Feb 2018 22:09:08 +0000</pubDate>
				<guid>https://leeturner.me/post/oracle-mooc-java-virtual-machine-troubleshooting/</guid>
				<description>&lt;p&gt;Its been a while since I have completed one of the Oracle MOOC (Massive Open Online Courses).  This one on troubleshooting the JVM and OutOfMemoryErrors was particularly good.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://leeturner.me/img/blog/2018-02-25-oracle-mooc-java-virtual-machine-troubleshooting/completion-award-for-oracle-mooc-java-virtual-machine-troubleshooting-2018.png&#34; alt=&#34;JVM Troubleshooting Orcale MOOC&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;This Oracle MOOC was run by Poonam Parhar, currently a JVM Sustaining Engineer at Oracle where her primary responsibility is to resolve customer escalated problems against JRockit and HotSpot JVMs&lt;/p&gt;&#xA;&lt;p&gt;Here is the summary from the course:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;If you are interested in learning why our Java applications might exhibit performance problems, abnormal memory usage growth or sometimes even fail with OutOfMemoryError exceptions, and you want to learn how these problems can be diagnosed and eradicated, then this course is for you! This course talks about different memory issues that we may come across with our java applications, and goes in detail on how we should approach these issues, what diagnostic tools we should use to collect the interesting diagnostic data, and what tools can help us analyze that data to get to the bottom of these memory problems.&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
			</item>
			<item>
				<title>Continuous Feedback With TDD &amp; Auto Running Tests</title>
				<link>https://leeturner.me/post/continuous-feedback-with-tdd/</link>
				<pubDate>Mon, 12 Feb 2018 22:09:08 +0000</pubDate>
				<guid>https://leeturner.me/post/continuous-feedback-with-tdd/</guid>
				<description>&lt;p&gt;This is the first of my &amp;lsquo;reference&amp;rsquo; posts which pretty much means I am writing about it here so I don&amp;rsquo;t forget about it in the future.&lt;/p&gt;&#xA;&lt;p&gt;This post it about configuring your dev environment to provide you with continuous feedback while writing your code.  All of this came about after a conversation with another developer on my team about how to setup IntelliJ to run tests automatically.  We were looking at plugins such as &lt;a href=&#34;https://infinitest.github.io&#34;&gt;Infinitest&lt;/a&gt; but it all seemed a little clunky and crashed every so often.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Do You Bake or Fry</title>
				<link>https://leeturner.me/post/do-you-bake-or-fry/</link>
				<pubDate>Sat, 20 Jan 2018 22:09:08 +0000</pubDate>
				<guid>https://leeturner.me/post/do-you-bake-or-fry/</guid>
				<description>&lt;p&gt;Before I go much further, I thought it was probably worth me putting down a few notes about my technology choices for this site.&lt;/p&gt;&#xA;&lt;p&gt;In term of website development, I have had experience of quite a few different content management systems such as &lt;a href=&#34;http://b2evolution.net&#34;&gt;b2Evolution&lt;/a&gt; and more recently &lt;a href=&#34;http://wordpress.org&#34;&gt;Wordpress&lt;/a&gt;.  I have developed plugins and templates for b2Evolution as well as contributing code to the core product back in the day.  I have put more sites together in Wordpress than I care to remember - most of my clients used Wordpress in some form or other while I was working in the paid traffic/SEO industry.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Hello World</title>
				<link>https://leeturner.me/post/hello-world/</link>
				<pubDate>Thu, 18 Jan 2018 22:09:08 +0000</pubDate>
				<guid>https://leeturner.me/post/hello-world/</guid>
				<description>&lt;p&gt;Well, it has been quite a while since I&amp;rsquo;ve had a personal site up and running but given I am back in the dev world full-time, now seemed like a good time to kick one off again.&lt;/p&gt;&#xA;&lt;p&gt;At the moment I have no idea where this site is going to go but at the very least it will be a place for me to document what I am working on and the things I am playing around with - more for my reference than anything else but hopefully there might be some use for others as well.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
