<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Helen Scott on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/author/helenjoscott/</link><description>Articles written by Helen Scott on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 13 Mar 2023 08:26:00 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/author/helenjoscott/index.xml" rel="self" type="application/rss+xml"/><item><title>Getting Started with IntelliJ IDEA</title><link>https://foojayio.github.io/website/today/getting-started-with-intellij-idea/</link><pubDate>Mon, 13 Mar 2023 08:26:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/getting-started-with-intellij-idea/</guid><description>&lt;p&gt;First up, I have&lt;a href="https://www.jetbrains.com/idea/guide/tutorials/getting-started-intellij-idea/" target="_blank" rel="noopener noreferrer"&gt;created a tutorial on the IntelliJ IDEA Guide&lt;/a&gt;
 if you want to view the content with videos. I&amp;rsquo;ll concentrate on text-based for this article.&lt;/p&gt;
&lt;p&gt;When someone new joins your team, it can be quite an overwhelming experience.&lt;/p&gt;
&lt;p&gt;There are lots of people to meet, new technologies to learn, different processes to learn and of course, an IDE to learn!&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s helpful to remember what every new starter wants, they want to make a difference, they want to add value, they want to &lt;em&gt;move the needle&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>Foojay Podcast #12: State and Future of the IDEs</title><link>https://foojayio.github.io/website/today/foojay-podcast-12/</link><pubDate>Mon, 23 Jan 2023 10:14:45 +0000</pubDate><guid>https://foojayio.github.io/website/today/foojay-podcast-12/</guid><description>&lt;p&gt;In this podcast, we are talking to some of the key people working on different IDEs, Integrated Development Environments.&lt;/p&gt;
&lt;p&gt;Those are applications that provide tools to computer programmers for software development.&lt;/p&gt;
&lt;p&gt;An IDE typically consists of at least a source code editor, build automation tools, and a debugger.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s learn how these tools evolved, and the challenges they face to stay up-to-date with the many evolutions in Java and all other programming languages.&lt;/p&gt;</description></item><item><title>Resolving Git Merge Conflicts in IntelliJ IDEA</title><link>https://foojayio.github.io/website/today/resolving-git-merge-conflicts-in-intellij-idea/</link><pubDate>Wed, 21 Sep 2022 11:04:06 +0000</pubDate><guid>https://foojayio.github.io/website/today/resolving-git-merge-conflicts-in-intellij-idea/</guid><description>&lt;p&gt;At some point in your career, probably many points, you&amp;rsquo;ll have to resolve merge conflicts.&lt;/p&gt;
&lt;p&gt;A common cause of merge conflicts is when you&amp;rsquo;re working on a &lt;code&gt;feature&lt;/code&gt; branch while other changes have been applied to the &lt;code&gt;main&lt;/code&gt; branch.&lt;/p&gt;
&lt;h2 id="h2-0-merge-feature-branch-into-main"&gt;Merge feature branch into main&lt;/h2&gt;
&lt;p&gt;In this tutorial, we are currently on the &lt;code&gt;main&lt;/code&gt; branch, and we want to merge the &lt;code&gt;feature&lt;/code&gt; branch into &lt;code&gt;main&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You can do this by selecting the feature branch in the &lt;em&gt;Git&lt;/em&gt; tool window which you can open with &lt;strong&gt;⌘9&lt;/strong&gt; (macOS), or &lt;strong&gt;Alt+9&lt;/strong&gt; (Windows/Linux).&lt;/p&gt;</description></item><item><title>Setting up and Working with Apache Tomcat in IntelliJ IDEA Ultimate</title><link>https://foojayio.github.io/website/today/setting-up-and-working-with-apache-tomcat-in-intellij-idea-ultimate/</link><pubDate>Tue, 10 May 2022 08:46:17 +0000</pubDate><guid>https://foojayio.github.io/website/today/setting-up-and-working-with-apache-tomcat-in-intellij-idea-ultimate/</guid><description>&lt;p&gt;In this article, you will learn how to set up IntelliJ IDEA Ultimate to work with Apache Tomcat, herein referred to simply as &lt;em&gt;Tomcat&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;We will create a new project that uses Tomcat and then talk about using Tomcat in IntelliJ IDEA so you can benefit from the rich integration capabilities.&lt;/p&gt;
&lt;h2 id="h2-0-downloading-apache-tomcat"&gt;Downloading Apache Tomcat&lt;/h2&gt;
&lt;p&gt;To use Tomcat with IntelliJ IDEA, it needs to be installed on your machine. If you don&amp;rsquo;t already have Tomcat installed, you can download the latest version, which at the time of writing, is &lt;a href="https://tomcat.apache.org/download-10.cgi" target="_blank" rel="noopener noreferrer"&gt;Tomcat 10&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>Migrating from Java EE to Jakarta EE with IntelliJ IDEA</title><link>https://foojayio.github.io/website/today/migrating-from-java-ee-to-jakarta-ee-with-intellij-idea/</link><pubDate>Fri, 08 Apr 2022 17:02:37 +0000</pubDate><guid>https://foojayio.github.io/website/today/migrating-from-java-ee-to-jakarta-ee-with-intellij-idea/</guid><description>&lt;p&gt;In this post, we&amp;rsquo;re going to migrate some sample code from the &lt;code&gt;javax&lt;/code&gt; namespace to &lt;code&gt;jakarta&lt;/code&gt;. If you want the history on this change, check out &lt;a href="https://blogs.oracle.com/javamagazine/post/transition-from-java-ee-to-jakarta-ee" target="_blank" rel="noopener noreferrer"&gt;this helpful blog post&lt;/a&gt;
 from Java Magazine. Fundamentally the &lt;em&gt;Java Persistence API&lt;/em&gt; was renamed to &lt;em&gt;Jakarta Persistence API&lt;/em&gt; meaning that the &lt;code&gt;javax&lt;/code&gt; namespace changed to &lt;code&gt;jakarta&lt;/code&gt; for frameworks whose APIs have moved to Jakarta EE (which is not all of them).&lt;/p&gt;
&lt;p&gt;However, Apache Tomcat recently released version 10 which updated package names from &lt;code&gt;javax&lt;/code&gt; to &lt;code&gt;jakarta&lt;/code&gt;. SpringBoot also made &lt;a href="https://spring.io/blog/2021/09/02/a-java-17-and-jakarta-ee-9-baseline-for-spring-framework-6" target="_blank" rel="noopener noreferrer"&gt;this change&lt;/a&gt;
 in version 6.&lt;/p&gt;</description></item><item><title>Working with Multiple Carets in IntelliJ IDEA</title><link>https://foojayio.github.io/website/today/working-with-multiple-carets-in-intellij-idea/</link><pubDate>Sun, 14 Nov 2021 12:21:26 +0000</pubDate><guid>https://foojayio.github.io/website/today/working-with-multiple-carets-in-intellij-idea/</guid><description>&lt;p&gt;Sometimes you need to modify multiple lines of code on separate lines inside IntelliJ IDEA with the same change. The fastest way to achieve that is with &lt;a href="https://www.jetbrains.com/help/idea/working-with-source-code.html?keymap=primary_windows#multiple_cursor" target="_blank" rel="noopener noreferrer"&gt;multiple carets&lt;/a&gt;
. In IntelliJ IDEA you can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create multiple carets in a vertical line&lt;/li&gt;
&lt;li&gt;Create multiple carets at the end of lines&lt;/li&gt;
&lt;li&gt;Create multiple carets at any point in your code&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3 id="h3-0-create-multiple-carets-in-a-vertical-line"&gt;Create Multiple Carets in a Vertical Line&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://www.jetbrains.com/help/idea/working-with-source-code.html?keymap=primary_windows#multiple_cursor" target="_blank" rel="noopener noreferrer"&gt;Creating carets&lt;/a&gt;
 that are stacked vertically where you have content on different lines, like a list, can save you a lot of time when you&amp;rsquo;re editing your code.&lt;/p&gt;</description></item><item><title>Everyday Shortcuts in IntelliJ IDEA</title><link>https://foojayio.github.io/website/today/everyday-shortcuts-in-intellij-idea/</link><pubDate>Mon, 06 Sep 2021 07:27:35 +0000</pubDate><guid>https://foojayio.github.io/website/today/everyday-shortcuts-in-intellij-idea/</guid><description>&lt;p&gt;Let&amp;rsquo;s take a look at some of my favourite keyboard shortcuts in &lt;a href="https://www.jetbrains.com/idea/" target="_blank" rel="noopener noreferrer"&gt;IntelliJ IDEA&lt;/a&gt;
.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s really helpful to use keyboard shortcuts because it speeds you up and keeps you in the flow of coding!&lt;/p&gt;
&lt;h2 id="h2-0-intention-actions-alt-enter"&gt;Intention Actions - ⌥⏎ / Alt+Enter&lt;/h2&gt;
&lt;p&gt;You can use &lt;a href="https://www.jetbrains.com/help/idea/intention-actions.html" target="_blank" rel="noopener noreferrer"&gt;this shortcut&lt;/a&gt;
 in a number of places, even when it&amp;rsquo;s not an error or when IntelliJ IDEA has not given you any indication that you could use it. It&amp;rsquo;s always worth trying it just to see what your options are.&lt;/p&gt;</description></item><item><title>Creating a Simple Spring Boot Application in IntelliJ IDEA</title><link>https://foojayio.github.io/website/today/creating-a-simple-spring-boot-application-in-intellij-idea/</link><pubDate>Mon, 31 May 2021 17:06:51 +0000</pubDate><guid>https://foojayio.github.io/website/today/creating-a-simple-spring-boot-application-in-intellij-idea/</guid><description>&lt;p&gt;This tutorial uses IntelliJ IDEA Ultimate because we want to create a new project using Spring Initializr. This functionality is only available with IntelliJ IDEA Ultimate. It is based off &lt;a href="https://spring.io/guides/gs/spring-boot/" target="_blank" rel="noopener noreferrer"&gt;Building an Application with Spring Boot&lt;/a&gt;
.&lt;/p&gt;
&lt;h2 id="h2-0-creating-your-spring-boot-project"&gt;Creating your Spring Boot Project&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;If you&amp;rsquo;re in an IntelliJ IDEA project already, select &lt;strong&gt;File&lt;/strong&gt; &amp;gt; &lt;strong&gt;Project&lt;/strong&gt; . Alternatively click the &lt;strong&gt;New Project&lt;/strong&gt; button on the Welcome screen.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select &lt;strong&gt;Spring Initializr&lt;/strong&gt; on the left-hand side and then enter the following options:&lt;/p&gt;</description></item><item><title>Are You New Yo Java? Here Are Some Resources</title><link>https://foojayio.github.io/website/today/new-to-java-some-resources/</link><pubDate>Fri, 30 Apr 2021 07:16:16 +0000</pubDate><guid>https://foojayio.github.io/website/today/new-to-java-some-resources/</guid><description>&lt;p&gt;In &lt;a href="https://twitter.com/helenjoscott/status/1372477062263496704?s=21" target="_blank" rel="noopener noreferrer"&gt;this tweet&lt;/a&gt;
, I was asked if I had a list of resources for developers who are new to Java. I didn&amp;rsquo;t at the time, but I&amp;rsquo;ve spent some time researching and here is that list.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve listed content that is both free and paid. It&amp;rsquo;s not that one type is superior; it&amp;rsquo;s just to give you plenty of choices. These are the resources that I&amp;rsquo;ve used and do still use to re-learn Java. So, if you&amp;rsquo;re new to Java or looking to pick it up again after a break, this article is for you.&lt;/p&gt;</description></item><item><title>About IntelliJ IDEA Changelists and Git Staging</title><link>https://foojayio.github.io/website/today/intellij-idea-changelists-and-git-staging/</link><pubDate>Fri, 16 Apr 2021 07:13:37 +0000</pubDate><guid>https://foojayio.github.io/website/today/intellij-idea-changelists-and-git-staging/</guid><description>&lt;p&gt;Since the release of IntelliJ IDEA 2020.3, there are now two ways to manage your commits to Git. The first one is through existing functionality with &lt;a href="https://www.jetbrains.com/help/idea/managing-changelists.html" target="_blank" rel="noopener noreferrer"&gt;IntelliJ IDEA changelists&lt;/a&gt;
, the second is through support for &lt;a href="https://www.jetbrains.com/help/idea/commit-and-push-changes.html#use-git-staging-area-to-commit-changes" target="_blank" rel="noopener noreferrer"&gt;Git staging&lt;/a&gt;
. This blog will take you through both approaches and highlight the differences. There is no right or wrong answer, it&amp;rsquo;s a case of choosing the method that works best for you, or that you&amp;rsquo;re most familiar with.&lt;/p&gt;</description></item><item><title>Generating Boilerplate Code with IntelliJ IDEA</title><link>https://foojayio.github.io/website/today/generating-code-with-intellij-idea/</link><pubDate>Wed, 10 Feb 2021 09:17:18 +0000</pubDate><guid>https://foojayio.github.io/website/today/generating-code-with-intellij-idea/</guid><description>&lt;p&gt;One of the super cool things about IntelliJ IDEA is how much code you can generate with minimum effort. Yes, it&amp;rsquo;s not the 1990s anymore, we&amp;rsquo;re no longer measured on how many lines of code we generate (thankfully), but you also know that Java has its fair share of &lt;em&gt;boilerplate&lt;/em&gt; code.&lt;/p&gt;
&lt;p&gt;Well, there&amp;rsquo;s a &lt;a href="https://www.jetbrains.com/help/idea/generating-code.html" title="shortcut in IntelliJ IDEA" target="_blank" rel="noopener noreferrer"&gt;shortcut in IntelliJ IDEA&lt;/a&gt;
 that generates a lot of code for you:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;⌘N&lt;/code&gt; on macOS&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Alt+Insert&lt;/code&gt; on Windows and Linux&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These shortcuts load the &lt;strong&gt;Generate&lt;/strong&gt; menu. Here&amp;rsquo;s a quick tour of where you can use it in Java projects in IntelliJ IDEA. It&amp;rsquo;s not a complete list; let me know where else we can use it please!&lt;/p&gt;</description></item><item><title>3 Ways to Refactor Your Code in IntelliJ IDEA</title><link>https://foojayio.github.io/website/today/3-ways-to-refactor-your-code-in-intellij-idea/</link><pubDate>Tue, 12 Jan 2021 08:24:00 +0000</pubDate><guid>https://foojayio.github.io/website/today/3-ways-to-refactor-your-code-in-intellij-idea/</guid><description>&lt;p&gt;In this article, we&amp;rsquo;re going to look at 3 ways to refactor your code in IntelliJ IDEA.&lt;/p&gt;
&lt;p&gt;Simplifying your code has lots of advantages, including improving readability, tackling technical debt, and managing ever-changing requirements. The three types of refactoring we will look at in this blog are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Extracting and Inlining&lt;/li&gt;
&lt;li&gt;Change Signature&lt;/li&gt;
&lt;li&gt;Renaming&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The code samples are available in the &lt;a href="https://github.com/JetBrains/intellij-samples" target="_blank" rel="noopener noreferrer"&gt;IntelliJ IDEA sample code repository&lt;/a&gt;
, specifically the &lt;a href="https://github.com/JetBrains/intellij-samples/blob/main/standard-java/src/main/java/com/jetbrains/refactoring/PlanetExtractions.java" target="_blank" rel="noopener noreferrer"&gt;PlanetExtractions&lt;/a&gt;
 and &lt;a href="https://github.com/JetBrains/intellij-samples/blob/main/standard-java/src/main/java/com/jetbrains/refactoring/Planet.java" target="_blank" rel="noopener noreferrer"&gt;Planet&lt;/a&gt;
 class.&lt;/p&gt;</description></item><item><title>It's all IntelliJ IDEA's Fault: IntelliJ IDEA Made Me Lazy</title><link>https://foojayio.github.io/website/today/intellij-idea-made-me-lazy/</link><pubDate>Tue, 24 Nov 2020 08:58:42 +0000</pubDate><guid>https://foojayio.github.io/website/today/intellij-idea-made-me-lazy/</guid><description>&lt;p&gt;I haven&amp;rsquo;t always been lazy; it&amp;rsquo;s a fairly recent addition to my repertoire of skills. And do you know who I blame? I blame IntelliJ IDEA. I used to check that I&amp;rsquo;d completed a statement correctly, I used to look at &lt;em&gt;javadoc&lt;/em&gt;, I used to check I&amp;rsquo;d closed my parentheses correctly, but now I don&amp;rsquo;t give things a second glance.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://helenjoscott-blogs.s3.eu-west-2.amazonaws.com/lazy-cat.jpg" alt="Lazy cat" loading="lazy"&gt;
&lt;/p&gt;
&lt;h2 id="h2-0-it-s-all-intellij-idea-s-fault"&gt;It&amp;rsquo;s all IntelliJ IDEA&amp;rsquo;s Fault&lt;/h2&gt;
&lt;p&gt;No, really, it is. Back when I was a &lt;em&gt;cough&lt;/em&gt; younger adult, we had to type out &lt;em&gt;&lt;strong&gt;all the code&lt;/strong&gt;&lt;/em&gt;, we also thought it was cool to mix drinks that turned into something akin to gorilla snot. Maybe we weren&amp;rsquo;t that smart, but I am discovering one thing at a rapid rate, IntelliJ IDEA was smarter than me, even 20 years ago (I&amp;rsquo;d like to say it was a low bar).&lt;/p&gt;</description></item><item><title>OpenJDK, JDKs and Every Java Acronym in Between</title><link>https://foojayio.github.io/website/today/openjdk-jdks-and-every-java-acronym-in-between/</link><pubDate>Wed, 04 Nov 2020 09:57:46 +0000</pubDate><guid>https://foojayio.github.io/website/today/openjdk-jdks-and-every-java-acronym-in-between/</guid><description>&lt;p&gt;The Java SE landscape is strewn with acronyms that it has picked up over the last 25 years. Sometimes those acronyms even mean multiple things. This post attempts to explain them all in terms of two main groupings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenJDK&lt;/li&gt;
&lt;li&gt;Java Development Kits (JDKs)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="h2-0-what-is-openjdk"&gt;What is &amp;lsquo;OpenJDK&amp;rsquo;?&lt;/h2&gt;
&lt;p&gt;The phrase &lt;em&gt;OpenJDK&lt;/em&gt; is used to describe at least three fundamental things in the Java ecosystem.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;First use&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Firstly, there is a place called &lt;em&gt;OpenJDK&lt;/em&gt; which lives at &lt;a href="https://openjdk.java.net/" target="_blank" rel="noopener noreferrer"&gt;https://openjdk.java.net/&lt;/a&gt;
 also known to some as &lt;em&gt;The OpenJDK Project&lt;/em&gt; , which is a place to collaborate on an open-source implementation of the Java specifications from Oracle - &lt;a href="https://www.oracle.com/java/technologies/java-se-glance.html" target="_blank" rel="noopener noreferrer"&gt;https://www.oracle.com/java/technologies/java-se-glance.html&lt;/a&gt;
, which are released every 6 months. Sun Microsystems open-sourced the majority of Java in 2006 under the GNU General Public License (GNU GPL) version 2 with a linking exception. &lt;em&gt;OpenJDK&lt;/em&gt; serves as a continuation of that change. This is the use that I will refer to througout this blog. When I say &lt;em&gt;OpenJDK&lt;/em&gt; I mean the &lt;a href="https://openjdk.java.net/" target="_blank" rel="noopener noreferrer"&gt;https://openjdk.java.net/&lt;/a&gt;
.&lt;/p&gt;</description></item><item><title>Live Templates for Java Developers in IntelliJ IDEA</title><link>https://foojayio.github.io/website/today/live-templates-in-intellij-idea/</link><pubDate>Mon, 26 Oct 2020 08:31:52 +0000</pubDate><guid>https://foojayio.github.io/website/today/live-templates-in-intellij-idea/</guid><description>&lt;p&gt;Okay, I did the math. If you use all 38 of the Live Templates for Java that are available out of the box in IntelliJ IDEA 2020.2, you will save your finger pads approximately 2092 presses of wear and tear, and that&amp;rsquo;s just each one once, the reality is likely to be substantially higher.&lt;/p&gt;
&lt;p&gt;I will caveat this by saying that I counted the unresolved variables, yours may be longer or shorter. Still, it&amp;rsquo;s impressive!&lt;/p&gt;</description></item><item><title>New to IntelliJ IDEA by JetBrains? Me Too!</title><link>https://foojayio.github.io/website/today/new-to-intellij-idea-me-too/</link><pubDate>Fri, 02 Oct 2020 10:07:49 +0000</pubDate><guid>https://foojayio.github.io/website/today/new-to-intellij-idea-me-too/</guid><description>&lt;p&gt;Until recently, I last wrote Java in anger in 2002. IntelliJ IDEA had just been released; it wasn&amp;rsquo;t remotely on my radar. I honestly can&amp;rsquo;t remember what IDE we were using back then, but it certainly was a very long way to the fully featured IDE that JetBrains produce today.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s my experience of using IntelliJ IDEA for the first time!&lt;/p&gt;
&lt;h3 id="h3-0-1-downloading-intellij-idea"&gt;1. Downloading IntelliJ IDEA&lt;/h3&gt;
&lt;p&gt;There&amp;rsquo;s a lot going on when you first load IntelliJ IDEA, but I learned pretty quickly that there are also some good first steps you can take to make your experience a little more comfortable.&lt;/p&gt;</description></item></channel></rss>