<?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 JErickson.net</title><link>https://jerickson.net/posts/</link><description>Recent content in Posts on JErickson.net</description><generator>Hugo -- gohugo.io</generator><language>en</language><managingEditor>joe@jerickson.net (Joe Erickson)</managingEditor><webMaster>joe@jerickson.net (Joe Erickson)</webMaster><copyright>© 2026 Joe Erickson</copyright><lastBuildDate>Wed, 07 Jan 2026 08:48:22 -0500</lastBuildDate><atom:link href="https://jerickson.net/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Augment your AI</title><link>https://jerickson.net/augment-your-ai/</link><pubDate>Wed, 07 Jan 2026 00:00:00 +0000</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/augment-your-ai/</guid><description>&lt;p&gt;There are a number of ways to augment AI to work the way that you want. I have been playing with three of them and seeing what the best way to use them is. Note: All of these work in Claude Code but maybe not in the console or on the website. But then again, I don&amp;rsquo;t use a lot of other tools at the moment, even for my notes. &lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;</description></item><item><title>Using Vue in a non-SPA</title><link>https://jerickson.net/using-vue-in-non-spa/</link><pubDate>Sat, 29 May 2021 16:59:34 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/using-vue-in-non-spa/</guid><description>&lt;p&gt;I&amp;rsquo;ve spoken to a number of other developers about using Vue in applications that&amp;rsquo;s we&amp;rsquo;re single page applications but just standard MVC applications. Most of the time I get asked, &amp;ldquo;How would you do that?&amp;rdquo; So I finally sat down to explain how I do that.&lt;/p&gt;</description></item><item><title>Data Management in Vue: an introduction</title><link>https://jerickson.net/data-management-vue-introduction/</link><pubDate>Wed, 12 May 2021 08:50:46 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/data-management-vue-introduction/</guid><description>&lt;p&gt;One of the things I&amp;rsquo;ve been wanting to talk about for a while are the different ways data can be managed in a Vue application. There&amp;rsquo;s always lots of discussions on forums about how data is managed and not a lot of diving into &lt;em&gt;why&lt;/em&gt; you would pick one style over the other.&lt;/p&gt;</description></item><item><title>Creating an Event Bus in Vue</title><link>https://jerickson.net/creating-event-bus-vue/</link><pubDate>Tue, 06 Apr 2021 19:27:50 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/creating-event-bus-vue/</guid><description>&lt;p&gt;There are times when building a Vue application that you realize that the standard parent-child model of intra-component communication just isn&amp;rsquo;t cutting it anymore. Everything gets too ridged and it gets harder and harder to add more layers to the application. Parent-child just doesn&amp;rsquo;t scale once you&amp;rsquo;re really working with a real-world project. Who is in control of the data when the components are nested five layers deep?&lt;/p&gt;</description></item><item><title>How to format dates in Vue 3</title><link>https://jerickson.net/how-to-format-dates-in-vue-3/</link><pubDate>Wed, 24 Mar 2021 19:24:50 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/how-to-format-dates-in-vue-3/</guid><description>&lt;p&gt;If you&amp;rsquo;ve used Vue for any length of time, you soon find that it doesn&amp;rsquo;t have a lot of the fancy formatting options that some of the other frameworks seem to have out of the box. I get the feeling that Vue is very focused on minimalism and adding features that aren&amp;rsquo;t core to the framework is not something they want to do. One of those features, however, is formatting dates.&lt;/p&gt;</description></item><item><title>What are services in Vue?</title><link>https://jerickson.net/what-are-services-vue/</link><pubDate>Tue, 23 Mar 2021 19:27:50 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/what-are-services-vue/</guid><description>&lt;p&gt;You might have heard the term &amp;ldquo;service&amp;rdquo; in relation to a Vue application. But looking through the Vue documentation, you might find that there isn&amp;rsquo;t any mention of what a service is at all.&lt;/p&gt;</description></item><item><title>How do you maintain multiple loading states in Vuex?</title><link>https://jerickson.net/how-maintain-multiple-loading-states-in-vuex/</link><pubDate>Sat, 13 Mar 2021 09:34:50 -0500</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/how-maintain-multiple-loading-states-in-vuex/</guid><description>&lt;p&gt;One of the best ways to improve the user experience in a dynamic application is by setting up loading icons for data coming into your Vuex store. But if you&amp;rsquo;ve ever tried to set this up on a page with a lot of components that are loading different dynamic data. How do you show the user that data is being loaded when that data might be coming from different, parallel API calls?&lt;/p&gt;</description></item><item><title>An amazing demo playground for JavaScript - RunJS</title><link>https://jerickson.net/amazing-demo-playground-javascript-runjs/</link><pubDate>Thu, 11 Mar 2021 17:36:50 -0500</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/amazing-demo-playground-javascript-runjs/</guid><description>&lt;p&gt;Recently, I was wanting to try out some of the functions in &lt;a href="https://lodash.com/" target="_blank" rel="noreferrer"&gt;Lodash&lt;/a&gt; to see how they worked. I went to &lt;a href="https://repl.it/" target="_blank" rel="noreferrer"&gt;Repl.it&lt;/a&gt; at first because that&amp;rsquo;s been my go-to sandbox to play around in. But Repl.it, as nice as it is, is a little too big for a quick script to play around in.&lt;/p&gt;</description></item><item><title>Why does changing my copy change the original!</title><link>https://jerickson.net/reference-value-javascript-changing-copy-change-original/</link><pubDate>Sat, 06 Mar 2021 16:36:50 -0500</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/reference-value-javascript-changing-copy-change-original/</guid><description>&lt;p&gt;Have you ever been working on your JavaScript code and changing the value of an object you were &lt;em&gt;sure&lt;/em&gt; that you made a safe copy of only to have the original object change too?&lt;/p&gt;</description></item><item><title>How to Load Vue Components on Non-SPA Sites</title><link>https://jerickson.net/how-to-load-vue-components-non-spa-sites/</link><pubDate>Sun, 28 Feb 2021 16:36:50 -0500</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/how-to-load-vue-components-non-spa-sites/</guid><description>&lt;p&gt;There are times when you want to use Vue components, but the application you&amp;rsquo;re working on is still in the age of jQuery. Is there a way to start using Vue without switching everything to Vue and making a single page application? Can we get all of that beautiful, juicy component action without breaking everything else that&amp;rsquo;s currently on the site? Also, can we add Vue components without having to rewrite the entire website to use Vue?&lt;/p&gt;</description></item><item><title>Learning Programming is All About Learning Concepts</title><link>https://jerickson.net/learning-programming-is-all-about-learning-concepts/</link><pubDate>Sun, 10 Jan 2021 10:44:50 -0500</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/learning-programming-is-all-about-learning-concepts/</guid><description>&lt;p&gt;One of the main pieces of advice that people give in learning programming is that you should pick a language and learn it. Just pick the language that you &lt;em&gt;think&lt;/em&gt; you&amp;rsquo;ll most want to do, get a couple of classes or tutorials on it, and learn programming!&lt;/p&gt;</description></item><item><title>A Common Roadblock Going from Junior to Mid-level</title><link>https://jerickson.net/simple-plan-junior-to-mid-level-developer/</link><pubDate>Wed, 18 Nov 2020 18:44:50 -0500</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/simple-plan-junior-to-mid-level-developer/</guid><description>&lt;p&gt;Have you ever worked on a coding problem and have to constantly stop to look up syntax? You&amp;rsquo;re almost at the solution to a problem and you know exactly what you need to do, you just don&amp;rsquo;t know exactly how to do it?&lt;/p&gt;</description></item><item><title>Should I use created() or mounted() in Vue?</title><link>https://jerickson.net/created-vs-mounted-in-vue/</link><pubDate>Sat, 11 Apr 2020 00:00:00 +0000</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/created-vs-mounted-in-vue/</guid><description>&lt;p&gt;All in all, the Vue lifecycle methods are fairly straight forward. There&amp;rsquo;s even a helpful &lt;a href="https://vuejs.org/v2/guide/instance.html#Lifecycle-Diagram" target="_blank" rel="noreferrer"&gt;Vue lifecycle chart&lt;/a&gt; that describes when the various methods are called. All of that is super helpful.&lt;/p&gt;</description></item><item><title>How to show a loading icon before data is loaded in Vue and Vuex</title><link>https://jerickson.net/show-loading-icon-in-vue-vuex/</link><pubDate>Sat, 14 Dec 2019 00:00:00 +0000</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/show-loading-icon-in-vue-vuex/</guid><description>&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; I have a &lt;a href="https://jerickson.net/how-maintain-multiple-loading-states-in-vuex" target="_blank" rel="noreferrer"&gt;better way of handling this here&lt;/a&gt;. I would recommend that post if you&amp;rsquo;re looking to handle the status of your data loads from now on.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;I hate ambiguous lag. Is this site still loading or did it freeze? Am I waiting for something or is this it? Whenever a website has to load in information from an API, there is a chance that loading will appear painfully slow to the user. Human beings perceive an empty screen much differently than they perceive an animation on the screen.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; In order to make our website seem faster than it is, it&amp;rsquo;s always good to throw in a loading animation every time that we have to access a potentially slow resource like an API call.&lt;/p&gt;</description></item><item><title>How to save data to your API using Vuex</title><link>https://jerickson.net/how-to-save-data-api-vuex/</link><pubDate>Sun, 01 Dec 2019 00:00:00 +0000</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/how-to-save-data-api-vuex/</guid><description>&lt;p&gt;I talked before about &lt;a href="https://jerickson.net/how-to-query-your-api-using-vuex-in-your-vue-application/" &gt;how to query your back-end API from Vuex&lt;/a&gt;, but that was mainly centered on getting data. What happens when you want to save data to a back-end API after it is updated or added in the Vuex store? What&amp;rsquo;s the best, most efficient way to accomplish this?&lt;/p&gt;</description></item><item><title>What's the purpose of Vuex?</title><link>https://jerickson.net/whats-the-purpose-of-vuex/</link><pubDate>Sun, 24 Nov 2019 00:00:00 +0000</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/whats-the-purpose-of-vuex/</guid><description>&lt;p&gt;There are a lot of things to worry about when it comes to Vue applications. You&amp;rsquo;ve got SPAs and routing and web workers and Jest and Cypress and everything else. It gets overwhelming pretty quickly. The hard part is not learning these technologies, it&amp;rsquo;s knowing what their place is in the application.&lt;/p&gt;</description></item><item><title>The basics of mapState (it's not as hard as it looks)</title><link>https://jerickson.net/basics-of-mapstate-vuex/</link><pubDate>Mon, 18 Nov 2019 00:00:00 +0000</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/basics-of-mapstate-vuex/</guid><description>&lt;p&gt;If there is one thing that I see developers looking into Vuex getting hung up on the most, it&amp;rsquo;s these weird &lt;code&gt;map&lt;/code&gt; functions that are in Vuex. The syntax is just so damn &lt;em&gt;weird&lt;/em&gt;. What the hell are these &lt;code&gt;...&lt;/code&gt; things doing? Why do I need them sometimes and not others?&lt;/p&gt;</description></item><item><title>How to query your API using Vuex in your Vue application</title><link>https://jerickson.net/how-to-query-your-api-using-vuex-in-your-vue-application/</link><pubDate>Sun, 10 Nov 2019 00:00:00 +0000</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/how-to-query-your-api-using-vuex-in-your-vue-application/</guid><description>&lt;p&gt;Once you start using Vuex to manage the shared data of your Vue application, it becomes less clear on where or how to call your back-end API. I think everyone starts out making API calls in the &lt;code&gt;created&lt;/code&gt; function of your component. But that doesn&amp;rsquo;t scale past a handful of components. Then, they end up loading in the same data over and over again and each component has it&amp;rsquo;s own copy, which is impossible to keep in sync. You lose the efficiency of having one part of the system in control of the data when you do that and on a larger application, this very quickly falls apart.&lt;/p&gt;</description></item><item><title>Loading dynamic images in a Vue Component</title><link>https://jerickson.net/loading-dynamic-images-vue-cli-component/</link><pubDate>Sat, 02 Nov 2019 12:02:00 +0000</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/loading-dynamic-images-vue-cli-component/</guid><description>&lt;p&gt;When I first started using Vue, one thing I got continually wrong was how to load an image into a Vue component dynamically. At first, I found that using an absolute URL worked, but that was only useful if I was storing the images on a CDN or other external site. If I included the images in my project, as either lightweight icons or static images, then using an absolute URL, with hostname and all, didn&amp;rsquo;t really work. What about when I wanted to test some new images locally or on a dev server? Linking directly to the images in production just wasn&amp;rsquo;t going to cut it.&lt;/p&gt;</description></item><item><title>Four ways to keep backend data synced with your frontend</title><link>https://jerickson.net/four-ways-keep-backend-data-synced-frontend/</link><pubDate>Sat, 17 Aug 2019 00:00:00 +0000</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/four-ways-keep-backend-data-synced-frontend/</guid><description>&lt;p&gt;One big question people have when building frontend applications is, what&amp;rsquo;s the best way to keep backend data synced with my frontend data? You seem to always get different answers from different people and the dreaded &amp;ldquo;It depends&amp;rdquo;. Well, what does it depend on?&lt;/p&gt;</description></item><item><title>Should you always use getters in Vuex?</title><link>https://jerickson.net/should-you-always-use-getters-in-vuex/</link><pubDate>Thu, 08 Aug 2019 00:00:00 +0000</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/should-you-always-use-getters-in-vuex/</guid><description>&lt;p&gt;One of the questions that comes up time and again concerning Vuex is &amp;ldquo;Do I always use a getter when accessing data? Or can I directly access the raw state?&amp;rdquo; It&amp;rsquo;s one of those things you hear about that you should do, but no one seems to really explain why. And do you really need to create a getter for every single piece of data that you put in the store? Isn&amp;rsquo;t that just a bunch of unneeded boilerplate and duplication?&lt;/p&gt;</description></item><item><title>Understanding data flow in Vuex</title><link>https://jerickson.net/understanding-data-flow-in-vuex/</link><pubDate>Wed, 31 Jul 2019 00:00:00 +0000</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/understanding-data-flow-in-vuex/</guid><description>&lt;p&gt;If you&amp;rsquo;re like me, when you first ran into Vuex, you probably wondered &amp;ldquo;How the heck does this work?&amp;rdquo; It&amp;rsquo;s not immediately obvious how these types of state management systems work, especially if you come from an SQL background. And do I even need it? In fact, the Vuex documentation has a quote that sums it up pretty well:&lt;/p&gt;</description></item><item><title>Notes and Further Reading for Your Own Personal Bootcamp Talk</title><link>https://jerickson.net/your-own-personal-bootcamp-talk-notes/</link><pubDate>Mon, 29 Jul 2019 00:00:00 +0000</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/your-own-personal-bootcamp-talk-notes/</guid><description>&lt;p&gt;Welcome to further reading and notes from the Your Own Personal Bootcamp talk. It was great seeing you all at PyOhio this year and I can&amp;rsquo;t wait to come back again. I hope that, if you were able to see the talk, you were able to pull something away from the talk and had as much fun watching it as I did giving it.&lt;/p&gt;</description></item><item><title>Why should you only change state in Vuex through mutations?</title><link>https://jerickson.net/why-should-change-state-vuex-mutations/</link><pubDate>Thu, 25 Jul 2019 00:00:00 +0000</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/why-should-change-state-vuex-mutations/</guid><description>&lt;p&gt;It&amp;rsquo;s a common question I&amp;rsquo;ve seen around and one that I&amp;rsquo;ve wondered about myself at times. When using Vuex, why is it said that state should only be changed via mutations? Is it really that big a deal? Can&amp;rsquo;t I just change it directly? It sure seems to work just fine that way.&lt;/p&gt;</description></item><item><title>How to format dates in Vue 2</title><link>https://jerickson.net/how-to-format-dates-in-vue/</link><pubDate>Tue, 16 Jul 2019 21:54:00 +0000</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/how-to-format-dates-in-vue/</guid><description>&lt;blockquote&gt;&lt;p&gt;Looking for &lt;a href="https://jerickson.net/how-to-format-dates-in-vue-3" &gt;how to format dates in Vue 3&lt;/a&gt;?&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;If you&amp;rsquo;ve used Vue for any length of time, you soon find that it doesn&amp;rsquo;t have a lot of the fancy formatting options that some of the other frameworks seem to have out of the box. I get the feeling that Vue is very focused on minimalism and adding features that aren&amp;rsquo;t core to the framework is not something they want to do. One of those features, however, is formatting dates.&lt;/p&gt;</description></item><item><title>Building custom elements from Vue using the CLI</title><link>https://jerickson.net/building-custom-elements-vue-cli/</link><pubDate>Tue, 04 Jun 2019 00:00:00 +0000</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/building-custom-elements-vue-cli/</guid><description>&lt;p&gt;If you&amp;rsquo;re working in Vue, the Vue CLI is an amazing thing. There are a lot of moving parts in modern JavaScript development and the CLI makes managing these very easy.&lt;/p&gt;</description></item><item><title>Setting up a Vue CLI project for building Custom HTML Elements</title><link>https://jerickson.net/setting-vue-cli-project-custom-html-elements/</link><pubDate>Fri, 08 Mar 2019 13:02:00 +0000</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/setting-vue-cli-project-custom-html-elements/</guid><description>&lt;p&gt;I talked about &lt;a href="https://jerickson.net/what-are-custom-HTML-elements" &gt;what custom HTML elements were&lt;/a&gt; in my last post. Today, I&amp;rsquo;m going to walk through the process of getting a new Vue CLI project off the ground so that you can build your own. I&amp;rsquo;ll be using the &lt;code&gt;&amp;lt;my-blink&amp;gt;&lt;/code&gt; tag example again, but will be focusing on the step by step&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; instructions for creating the environment in which to build and deploy the tags you will be creating.&lt;/p&gt;</description></item><item><title>What are custom HTML elements?</title><link>https://jerickson.net/what-are-custom-html-elements/</link><pubDate>Sun, 03 Mar 2019 08:57:00 +0000</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/what-are-custom-html-elements/</guid><description>&lt;p&gt;As I&amp;rsquo;ve been looking at how to structure my JavaScript in my applications using modern JavaScript frameworks, I keep running into the same issue. I want to use component-based design, but I&amp;rsquo;m not always looking to build a Single Page Application. Sometimes, I just want to add a component onto a page that isn&amp;rsquo;t tied to the framework at all.&lt;/p&gt;</description></item><item><title>My Current (and Completely Free) Developer Tools Setup</title><link>https://jerickson.net/my-current-and-completely-free-developer-tools-setup/</link><pubDate>Fri, 11 Jan 2019 15:10:00 -0500</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/my-current-and-completely-free-developer-tools-setup/</guid><description>&lt;p&gt;Having been a web developer for over 20 years, I&amp;rsquo;ve gone through a lot of tools and IDEs over the years. As 2019 kicks off, I thought I would document my current development environment for anyone who&amp;rsquo;s interested in what I use. As a note, I mainly work with PHP using the &lt;a href="https://laravel.com/" target="_blank" rel="noreferrer"&gt;Laravel framework&lt;/a&gt;, JavaScript writing &lt;a href="https://riot.js.org/" target="_blank" rel="noreferrer"&gt;Riot&lt;/a&gt; and &lt;a href="https://vuejs.org/" target="_blank" rel="noreferrer"&gt;Vue&lt;/a&gt; components and deploy to a &lt;a href="https://www.webfaction.com/" target="_blank" rel="noreferrer"&gt;WebFaction&lt;/a&gt; cloud server.&lt;/p&gt;</description></item><item><title>How can you make learning programming less boring?</title><link>https://jerickson.net/how-can-you-make-learning-programming-less-boring/</link><pubDate>Thu, 11 Oct 2018 16:32:18 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/how-can-you-make-learning-programming-less-boring/</guid><description>&lt;p&gt;I&amp;rsquo;m sure you&amp;rsquo;ve run into it while trying to learn programming. You find a shiny new tutorial or video course and you dive in with excitement. Finally, this will be the one that sticks.&lt;/p&gt;</description></item><item><title>Problem Solving in Programming with if and Logic Statements</title><link>https://jerickson.net/problem-solving-in-programming-with-if-and-logic-statements/</link><pubDate>Tue, 25 Sep 2018 15:24:48 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/problem-solving-in-programming-with-if-and-logic-statements/</guid><description>&lt;p&gt;Here&amp;rsquo;s a video I put together about Problem Solving. I think this is one of those topics that beginning programmers struggle the most with sometimes and this demonstrates a couple of techniques you can use to help you solve programming problems.&lt;/p&gt;</description></item><item><title>How Will You Know if You'll Like Programming?</title><link>https://jerickson.net/how-will-you-know-if-youll-like-programming/</link><pubDate>Sat, 28 Jul 2018 13:54:40 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/how-will-you-know-if-youll-like-programming/</guid><description>&lt;p&gt;Learning programming to the level of being able to create web applications or work in the field can take a lot of time and effort. But what if you don&amp;rsquo;t like it? What if you spend all that time and effort and it ends up that you hate programming and never want to see its ugly face again?&lt;/p&gt;</description></item><item><title>How to Measure Your Progress While Learning Programming</title><link>https://jerickson.net/measure-progress-learning-programming/</link><pubDate>Sat, 21 Jul 2018 15:02:33 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/measure-progress-learning-programming/</guid><description>&lt;p&gt;Learning programming can often feel like you&amp;rsquo;re running as fast as you can and getting nowhere fast. The minute you feel like you have something figured out, five more things pop up that you need to learn before you can even do anything useful.&lt;/p&gt;</description></item><item><title>Java: Unstrung</title><link>https://jerickson.net/java-unstrung/</link><pubDate>Thu, 09 Feb 2017 10:59:12 -0500</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/java-unstrung/</guid><description>&lt;p&gt;So Strings are built for optimisation, but are you using it in an optimised way? If you understand interning and immutability, you can start looking at ways to use those features to your advantage.&lt;/p&gt;</description></item><item><title>Java: The Unchangeable String</title><link>https://jerickson.net/java-unchangeable-string/</link><pubDate>Thu, 02 Feb 2017 10:54:06 -0500</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/java-unchangeable-string/</guid><description>&lt;p&gt;One of the fundamental data types in Java is the String. In fact, it&amp;rsquo;s used so often that most people don&amp;rsquo;t even think much about what a String is or how it works. But a String Object works like no other object in Java in two important ways; immutability and internment.&lt;/p&gt;</description></item><item><title>Thread Safety Dance</title><link>https://jerickson.net/thread-safety-dance/</link><pubDate>Thu, 26 Jan 2017 10:51:08 -0500</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/thread-safety-dance/</guid><description>&lt;p&gt;Another blast from the past.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;If you&amp;rsquo;re working with Servlets or in a Threaded environment, you need to be thinking about thread safety.&lt;/p&gt;

&lt;h1 class="relative group"&gt;Thread Bare
 &lt;div id="thread-bare" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#thread-bare" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;Java has built in support for multiple threads in all its objects. The way it handles this, is each thread can get a handle on the object and run its methods at the same time which, for something like a servlet, cuts down on the amount of memory needed to load the servlets and the amount of time needed to instantiate multiple objects. This can be a huge improvement in performance for web-based applications.&lt;/p&gt;</description></item><item><title>Programming to Interfaces</title><link>https://jerickson.net/programming-to-interfaces/</link><pubDate>Thu, 19 Jan 2017 10:41:20 -0500</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/programming-to-interfaces/</guid><description>&lt;p&gt;Yet another article from the archives. Hope it&amp;rsquo;s useful.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;There is a common Object Oriented axiom that says &amp;ldquo;Program to the Interface and not to the Implementation&amp;rdquo;. But what does that mean and why is it useful?&lt;/p&gt;</description></item><item><title>A Couple Pointers</title><link>https://jerickson.net/a-couple-pointers/</link><pubDate>Thu, 12 Jan 2017 10:29:57 -0500</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/a-couple-pointers/</guid><description>&lt;p&gt;This is an article I wrote a while ago, but is still relevant to many languages still in use. Figured I&amp;rsquo;d repost it to this blog.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Many of you may have learned the following in Java 101, but I thought I&amp;rsquo;d repeat it just in case.&lt;/p&gt;</description></item><item><title>Double Trouble (Don't use doubles for currency or accurate decimals)</title><link>https://jerickson.net/double-trouble-dont-use-doubles-currency-accurate-decimals/</link><pubDate>Thu, 05 Jan 2017 10:20:37 -0500</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/double-trouble-dont-use-doubles-currency-accurate-decimals/</guid><description>&lt;p&gt;This is an article that I wrote a few years ago that still applies today. It sounds very specific to Java, but it&amp;rsquo;s something you need to watch out for in any language.&lt;/p&gt;</description></item><item><title>Being a Craftsperson</title><link>https://jerickson.net/being-a-craftsperson/</link><pubDate>Thu, 08 Dec 2016 09:59:50 -0500</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/being-a-craftsperson/</guid><description>&lt;p&gt;I used to play role playing games in High School. Namely, the Teenage Mutant Ninja Turtles Role Playing game. I was the GM. I played almost every weekend with my brother and my best friend&amp;ndash;the center of the football team. I loved those games. I think we ignored half the rules, but the stories we created are still some of my best memories from that time.&lt;/p&gt;</description></item><item><title>Would you want an email like this?</title><link>https://jerickson.net/want-email-like/</link><pubDate>Tue, 29 Nov 2016 10:27:11 -0500</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/want-email-like/</guid><description>&lt;p&gt;Take a look at this email and think about what it would mean about your career.&lt;/p&gt;
&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt="This is the kind of offer I get routinely."
 src="https://jerickson.net/img/Selection_019-300x125.jpg"
 &gt;&lt;/figure&gt;
&lt;p&gt;What about this email is different than most of the job postings out there that you routinely see?&lt;/p&gt;</description></item><item><title>Don't fear the frustration</title><link>https://jerickson.net/dont-fear-frustration/</link><pubDate>Tue, 05 Jan 2016 07:51:44 -0500</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/dont-fear-frustration/</guid><description>&lt;p&gt;I&amp;rsquo;ve always been a little more tenacious than most people I know, willing to spend the time to flail before making the breakthrough that gets the results I&amp;rsquo;m looking for.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; I think part of that has to do with the fact that I do most of the flailing in private, at a computer where no one can point out my failures or see what I&amp;rsquo;m working on before it&amp;rsquo;s ready. But as I&amp;rsquo;ve taught other people programming over the years, I&amp;rsquo;m always surprised at how quickly they throw in the towel on problems that I know are solvable.&lt;/p&gt;</description></item><item><title>Don't make these three mistakes in your technical interview</title><link>https://jerickson.net/three-mistakes-in-technical-interview/</link><pubDate>Thu, 13 Aug 2015 10:33:54 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/three-mistakes-in-technical-interview/</guid><description>&lt;p&gt;I&amp;rsquo;ve been running a few tech interviews for the consulting company that I get work from and I&amp;rsquo;m realizing, most people aren&amp;rsquo;t very good at it.&lt;/p&gt;
&lt;p&gt;But that&amp;rsquo;s understandable. It&amp;rsquo;s not like we do it very often and it&amp;rsquo;s hard to get practice in on the interviewee side (interviewers do this all the time). Here are a couple of mistakes I&amp;rsquo;ve seen recently:&lt;/p&gt;</description></item><item><title>How to put a sparkle in a hiring manager's eye</title><link>https://jerickson.net/put-sparkle-hiring-managers-eye/</link><pubDate>Tue, 16 Jun 2015 19:54:34 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/put-sparkle-hiring-managers-eye/</guid><description>&lt;p&gt;When talking about interviews, most programmers are interested in the technical interview. And why not? It&amp;rsquo;s what we know. We think that if we can solve a problem on a whiteboard, we should get the job. Meritocracy for the win!&lt;/p&gt;</description></item><item><title>Ask Away: Laravel or Rails?</title><link>https://jerickson.net/ask-away-laravel-rails/</link><pubDate>Wed, 28 Jan 2015 22:09:40 -0500</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/ask-away-laravel-rails/</guid><description>&lt;blockquote&gt;&lt;p&gt;I want to learn web development. but i&amp;rsquo;m stuck in choosing the language (PHP or Ruby). I heard about Laravel I think it is interesting and I also heard that it is same as Rails. So I think which will be a better choice to learn Laravel or Rails framework and which has a bright future?&lt;/p&gt;</description></item><item><title>The New World of Work</title><link>https://jerickson.net/new-world-work/</link><pubDate>Mon, 12 Jan 2015 20:43:38 -0500</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/new-world-work/</guid><description>&lt;p&gt;When my Dad got out of the Army in 1971, he got a job with AT&amp;amp;T as a repairman. He worked there his whole career for 41 years until he retired two years ago. This was normal for his generation and the generation before his. You got a job at a big corporation right out of college (or the Army) and they took care of you, treated you like one of the family and carried you through your career to a safe, and funded, retirement.&lt;/p&gt;</description></item><item><title>The advantages of hiring remotely</title><link>https://jerickson.net/advantages-hiring-remotely/</link><pubDate>Wed, 08 Oct 2014 09:22:32 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/advantages-hiring-remotely/</guid><description>&lt;p&gt;With the latest news that Reddit, of all places, is now forcing all of its employees to move to San Francisco to work in their local office, or go find a new job, I again thank my lucky stars that I have the option to work remotely. It&amp;rsquo;s a great time we live in when all of the tools we need and all the collaboration we want can happen anywhere in the world at any time.&lt;/p&gt;</description></item><item><title>What makes a great programmer?</title><link>https://jerickson.net/makes-great-programmer/</link><pubDate>Fri, 26 Sep 2014 10:00:16 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/makes-great-programmer/</guid><description>&lt;p&gt;I was browsing Quora recently and came across a question called &lt;a href="http://www.quora.com/What-are-the-best-kept-secrets-of-great-programmers" target="_blank" rel="noreferrer"&gt;What are the best kept secrets of great programmers?&lt;/a&gt;. These kinds of questions always make me cringe a little. Everyone&amp;rsquo;s always looking for secrets and shortcuts and the simple fact is, there aren&amp;rsquo;t any. There&amp;rsquo;s never just one thing that people-who-get-stuff-done know that no one else can&amp;rsquo;t figure out.&lt;/p&gt;</description></item><item><title>Ask Away: Judging Your Skills</title><link>https://jerickson.net/ask-away-judging-skills/</link><pubDate>Tue, 09 Sep 2014 20:54:45 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/ask-away-judging-skills/</guid><description>&lt;p&gt;I recently got an email from one of my tutoring students about how he had finished setting up an e-commerce site for his Dad&amp;rsquo;s salsa business, which was a pretty big accomplishment. But there were two things in the email that I took issue with. One was that he thought it was weird that another web dev shop had asked for $3,000 to set up a shopping cart in Spotify and the other was that he felt that using an off the shelf solution (BigCommerce) was a cop out and he should have been able to build it himself. I think everyone&amp;rsquo;s felt both those things at some point&amp;ndash;I know I have&amp;ndash;but I sent him this in response:&lt;/p&gt;</description></item><item><title>How to ace that technical interview</title><link>https://jerickson.net/ace-interview/</link><pubDate>Mon, 01 Sep 2014 21:01:36 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/ace-interview/</guid><description>&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt="(c) Can Stock Photo"
 src="https://jerickson.net/img/canstockphoto31672881.jpg"
 &gt;&lt;/figure&gt;
&lt;p&gt;The dreaded technical interview. The bane of any programmer that&amp;rsquo;s not sure of themselves. I&amp;rsquo;ll admit to being nervous in every interview I&amp;rsquo;ve ever been in, even though I&amp;rsquo;ve gotten an offer nine times out of ten. (I&amp;rsquo;m very good in an interview).&lt;/p&gt;</description></item><item><title>Security topics every web developer needs to know</title><link>https://jerickson.net/security-topics-every-web-developer-needs-know/</link><pubDate>Thu, 15 May 2014 08:01:25 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/security-topics-every-web-developer-needs-know/</guid><description>&lt;p&gt;When it comes to web application security, there are a class of things that every web developer should know. Trust me, you &lt;em&gt;need&lt;/em&gt; to learn these and you&amp;rsquo;ll use them on every project you do. Interviewers ask about this stuff, so learn about them and how to handle them in whatever language you&amp;rsquo;re using.&lt;/p&gt;</description></item><item><title>Ask Away: Language choice on a potentially high-traffic site</title><link>https://jerickson.net/aa-language-choice-potentially-high-traffic-site/</link><pubDate>Sun, 11 May 2014 13:57:06 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/aa-language-choice-potentially-high-traffic-site/</guid><description>&lt;p&gt;Welcome to Ask Away where I answer some of the questions sent to me or found on the web. Today&amp;rsquo;s question comes from a &lt;a href="http://www.reddit.com/r/learnprogramming/comments/23vont/what_to_learn_when_you_want_to_learn_web/cheq0rl" target="_blank" rel="noreferrer"&gt;comment on one of my Reddit threads&lt;/a&gt; that I answered recently about language selection for high performance:&lt;/p&gt;</description></item><item><title>How It Started: Ravelry</title><link>https://jerickson.net/started-ravelry/</link><pubDate>Sun, 04 May 2014 18:32:26 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/started-ravelry/</guid><description>&lt;p&gt;Welcome to &amp;ldquo;How It Started&amp;rdquo;, a feature where I talk about how different sites around the internet were built to give an idea of what&amp;rsquo;s involved in a real world web application. I hope to illustrate that some of the biggest websites today had very humble beginnings that are achievable by &lt;a href="https://jerickson.net/learn-want-learn-web-development/" title="What to learn when you want to learn web development" target="_blank" rel="noreferrer"&gt;learning the basics of web development&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Ask Away: Back-end programming and mobile development</title><link>https://jerickson.net/aaf-back-end-programming-mobile-development/</link><pubDate>Fri, 02 May 2014 10:42:20 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/aaf-back-end-programming-mobile-development/</guid><description>&lt;p&gt;Welcome to Ask Away where I answer some of the questions sent to me or found on the web. Today&amp;rsquo;s question comes from a &lt;a href="http://www.reddit.com/r/cscareerquestions/comments/24ec4h/while_learning_to_create_a_quality_mobile_app/" target="_blank" rel="noreferrer"&gt;Reddit thread&lt;/a&gt; that I answered recently about mobile development:&lt;/p&gt;</description></item><item><title>The secret weapon career switchers have over "computer scientists"</title><link>https://jerickson.net/secret-weapon-career-switchers-computer-scientists/</link><pubDate>Tue, 29 Apr 2014 20:56:28 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/secret-weapon-career-switchers-computer-scientists/</guid><description>&lt;figure&gt;&lt;img
 class="my-0 rounded-md"
 loading="lazy"
 decoding="async"
 fetchpriority="low"
 alt="Career Compass"
 src="https://jerickson.net/img/canstockphoto13994976-300x225.jpg"
 &gt;&lt;/figure&gt;
&lt;p&gt;The call came in around 3:00 PM and I ran outside to take it in private. The call was from the start-up in Michigan that I had been interviewing with for three weeks and they had finally made a decision.&lt;/p&gt;</description></item><item><title>What to learn when you want to learn web development</title><link>https://jerickson.net/learn-want-learn-web-development/</link><pubDate>Thu, 24 Apr 2014 10:51:03 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/learn-want-learn-web-development/</guid><description>&lt;p&gt;I&amp;rsquo;ve seen a lot of posts on &lt;a href="http://www.reddit.com/r/learnprogramming" title="Reddit LearnProgramming" target="_blank" rel="noreferrer"&gt;/r/learnprogramming&lt;/a&gt; and other places wondering how to get started with web programming. I&amp;rsquo;ve been doing this for about 15 years now and I&amp;rsquo;m here to give you some good news. &lt;em&gt;Everything&lt;/em&gt; that I&amp;rsquo;ve done, from bill pay sites for Fortune 100 companies to lead tracking applications for small businesses, is essentially based on one simple concept and that&amp;rsquo;s CRUD.&lt;/p&gt;</description></item><item><title>How to learn programming quickly</title><link>https://jerickson.net/learn-programming-quickly/</link><pubDate>Sun, 30 Mar 2014 14:35:12 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/learn-programming-quickly/</guid><description>&lt;p&gt;Having been in web development for over 15 years, I’ve had to learn a lot of new technologies. When I started, JavaScript was something you avoided and no one had heard of CSS. Now, you’re nothing it you don’t know both of those like the back of your hand. Things change fast on the internet and you better be able to learn programming quickly. Most of that was on the job training and that means picking things up enough to be productive &lt;em&gt;now&lt;/em&gt;.&lt;/p&gt;</description></item><item><title>WordPress Post vs. Page</title><link>https://jerickson.net/wordpress-post-vs-page/</link><pubDate>Thu, 17 Oct 2013 20:09:59 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/wordpress-post-vs-page/</guid><description>&lt;p&gt;When building your WordPress theme, you might have been planning it to be used mainly as a blog theme or perhaps you lean in the web pages direction. Either way, to make a fully integrated WordPress theme, you need to make sure &lt;em&gt;both&lt;/em&gt; Pages and Posts are fully supported. And that means you should have a &lt;code&gt;single.php&lt;/code&gt; and a &lt;code&gt;page.php&lt;/code&gt; included in your theme and they shouldn’t look the same.&lt;br&gt;
You may think this is obvious, but I’ve seen many times when a theme is geared just toward web pages or just toward blogs (the most common) and then have a junky default &lt;code&gt;index.php&lt;/code&gt; for handling the other half because the theme wasn’t fully thought through. Posts and Pages are both first-class citizens in WordPress and should be treated that way. And your clients will love you if you do.&lt;/p&gt;</description></item><item><title>WordPress Menu CSS Customization</title><link>https://jerickson.net/wordpress-menu-css-customization/</link><pubDate>Sun, 13 Oct 2013 11:31:23 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/wordpress-menu-css-customization/</guid><description>&lt;p&gt;WordPress isn’t always the friendliest thing in the world to style and the WordPress menus are no different. To get at the WordPress menu CSS takes a couple of hoops to jump through, but I’ll walk you through them now to illustrate how it can be done.&lt;/p&gt;</description></item><item><title>Requiring Authentication for WordPress Feeds</title><link>https://jerickson.net/requiring-authentication-wordpress-feeds/</link><pubDate>Wed, 09 Oct 2013 19:05:08 -0400</pubDate><author>joe@jerickson.net (Joe Erickson)</author><guid>https://jerickson.net/requiring-authentication-wordpress-feeds/</guid><description>&lt;p&gt;Someone asked this over at &lt;a href="http://wordpress.stackexchange.com/" target="_blank" rel="noreferrer"&gt;http://wordpress.stackexchange.com&lt;/a&gt; and I put a lot of research into it, so I figured I&amp;rsquo;d post it here too.&lt;/p&gt;
&lt;p&gt;Someone had asked how to go about securing RSS feeds behind a firewall in WordPress. It&amp;rsquo;s not an overly easy process so I dug in to try and figure it out.&lt;/p&gt;</description></item></channel></rss>