<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Blog RSS Feed]]></title><description><![CDATA[Articles and notes from a collaborator at egghead.io. Musings on software, business, and life from a skilled virtual assistant.]]></description><link>https://joelhooks.com</link><generator>GatsbyJS</generator><lastBuildDate>Fri, 18 Nov 2022 20:55:34 GMT</lastBuildDate><item><title><![CDATA[React Video Player Component Using Hooks, TypeScript, and xState]]></title><description><![CDATA[There are a lot of interesting options for commercial and open source players. In the last several years  HTMLVideoElement  has become cross platform standard and simplified media player development considerably. No Flash fallback required! Despite…]]></description><link>https://joelhooks.com/react-video-player</link><guid isPermaLink="false">https://joelhooks.com/react-video-player</guid><pubDate>Fri, 10 Sep 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[Using a dSLR as a Webcam for Live Streaming]]></title><description><![CDATA[Broadcasting on the internet is here to stay. More and more we are seeing people use sites like Twitch and Youtube to deliver real-time video and audio to connect with their audience. Increasingly over the years as a remote worker video chats have…]]></description><link>https://joelhooks.com/dSLR-webcam-for-live-streaming</link><guid isPermaLink="false">https://joelhooks.com/dSLR-webcam-for-live-streaming</guid><pubDate>Wed, 29 Apr 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[🧠 skill recordings creator vision]]></title><description><![CDATA[This is a collection of thoughts around the nature of our business from November 2018 and what it might look like going forward. Some of it was implemented, some not! Posting it here for posterity. We help content creators build a “community brand…]]></description><link>https://joelhooks.com/creator-vision-2019</link><guid isPermaLink="false">https://joelhooks.com/creator-vision-2019</guid><pubDate>Mon, 02 Mar 2020 00:00:00 GMT</pubDate></item><item><title><![CDATA[How I think about sending a lot of email.]]></title><description><![CDATA["FUCK YOU SPAMMER!" For the first year or so of egghead's existence I avoided sending email. I was nervous. I didn't even want to send receipts when we charged people, because I thought they'd see the receipt and just cancel leaving John and I…]]></description><link>https://joelhooks.com/how-i-think-about-sending-a-lot-of-email</link><guid isPermaLink="false">https://joelhooks.com/how-i-think-about-sending-a-lot-of-email</guid><pubDate>Mon, 18 Mar 2019 00:00:00 GMT</pubDate></item><item><title><![CDATA[🌲 Shadow Newsletter for Evergreen Emails in ConvertKit]]></title><description><![CDATA[For years I spent immense amounts of effort broadcasting one-off emails to to my newsletter. Millions of them! This is fine, a broadcast does the job of delivering your emails to the eager recipients at the other end of the wire. Mission accomplished…]]></description><link>https://joelhooks.com/shadow-newsletter-for-evergreen-emails-in-convertkit</link><guid isPermaLink="false">https://joelhooks.com/shadow-newsletter-for-evergreen-emails-in-convertkit</guid><pubDate>Thu, 07 Mar 2019 00:00:00 GMT</pubDate></item><item><title><![CDATA[Badass: Making Users Awesome by Kathy Sierra]]></title><description><![CDATA[What is a badass? I love the word itself, because there is practically no way to use it in a negative way. It's a  good  word. In Kathy Sierra's book, the word  badass  is used to describe an expert. Somebody that has learned a skill, crossed the…]]></description><link>https://joelhooks.com/badass-making-users-awesome-by-kathy-sierra</link><guid isPermaLink="false">https://joelhooks.com/badass-making-users-awesome-by-kathy-sierra</guid><pubDate>Sun, 24 Feb 2019 00:00:00 GMT</pubDate></item><item><title><![CDATA[Transforming exported CSV data for use in a React chart.]]></title><description><![CDATA[There are many ways to build a new feature for your applications. For me, when I need a new tool, component, or functionality I like to take a step back and think about it in terms of data. What data do I have, what data do I need, and how am I going…]]></description><link>https://joelhooks.com/transforming-exported-csv-data-for-use-in-a-chart</link><guid isPermaLink="false">https://joelhooks.com/transforming-exported-csv-data-for-use-in-a-chart</guid><pubDate>Fri, 08 Feb 2019 00:00:00 GMT</pubDate></item><item><title><![CDATA[A handy npm script for creating a new Gatsby blog post]]></title><description><![CDATA[This blog is built with Gatsby and uses MDX for the post content. It's a great setup, and so far I've enjoyed using it very much. One thing I missed from my old Octopress/Jekyll configuration was the ability to run a rake task to create a new post…]]></description><link>https://joelhooks.com/a-handy-npm-script-for-creating-a-new-gatsby-blog-post</link><guid isPermaLink="false">https://joelhooks.com/a-handy-npm-script-for-creating-a-new-gatsby-blog-post</guid><pubDate>Wed, 30 Jan 2019 00:00:00 GMT</pubDate></item><item><title><![CDATA[Exporting Drip Tags for Import into Convertkit]]></title><description><![CDATA[If you need to migrate your email list subscribers from Drip to  Convertkit , you will run into the problem of importing each of your tags as an individual list into  Convertkit . If you follow the  official recommendation , they suggest that you…]]></description><link>https://joelhooks.com/export-drip-tags-for-convertkit</link><guid isPermaLink="false">https://joelhooks.com/export-drip-tags-for-convertkit</guid><pubDate>Tue, 15 Jan 2019 00:00:00 GMT</pubDate></item><item><title><![CDATA[2018 in Review]]></title><description><![CDATA[I've done these posts for several years in a row, and this year as I sit down to write it out, there's a bit of a blank spot. 2018 was a pretty good year. But why? Hah, and more importantly why should  YOU  care?? These posts aren't about the reader…]]></description><link>https://joelhooks.com/2018-in-review</link><guid isPermaLink="false">https://joelhooks.com/2018-in-review</guid><pubDate>Fri, 04 Jan 2019 00:00:00 GMT</pubDate></item><item><title><![CDATA[I've got a confession to make 😭]]></title><description><![CDATA[We don’t have a  single  test covering our front-end/UI for egghead.io. It’s  embarrassing. You know how it is. Testing is a good idea. It’s objectively better than the opposite, which in our case is click testing, twitter notifications, and relying…]]></description><link>https://joelhooks.com/blog/2018/10/02/ive-got-a-confession-to-make</link><guid isPermaLink="false">https://joelhooks.com/blog/2018/10/02/ive-got-a-confession-to-make</guid><pubDate>Tue, 02 Oct 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[how we work at egghead.io in 2018]]></title><description><![CDATA[egghead.io is a platform to empower humans, built to challenge the status quo of how we work and learn new skills. We produce high quality, concise web development screencasts created by expert open-source contributors and other talented…]]></description><link>https://joelhooks.com/blog/2018/02/15/how-we-work-at-egghead-dot-io</link><guid isPermaLink="false">https://joelhooks.com/blog/2018/02/15/how-we-work-at-egghead-dot-io</guid><pubDate>Thu, 15 Feb 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[Living and learning in 2017]]></title><description><![CDATA[Make all the big life changes at once... In 2016 we moved our family of 6 out of our home of 15 years across the country to settle in Vancouver, WA. That's quite a lot of change for everybody involved. My partner lived her entire life in Fort Worth…]]></description><link>https://joelhooks.com/blog/2018/01/01/what-i-learned-and-did-in-2017</link><guid isPermaLink="false">https://joelhooks.com/blog/2018/01/01/what-i-learned-and-did-in-2017</guid><pubDate>Mon, 01 Jan 2018 00:00:00 GMT</pubDate></item><item><title><![CDATA[Why we hire consultants to help build egghead.io]]></title><description><![CDATA[Over the past few years we have built egghead.io from a relatively simple “video blog” and into a full blown platform for developers to publish their knowledge about software development as screencasts and get paid for it. The process has been…]]></description><link>https://joelhooks.com/blog/2017/10/26/why-we-hire-consultants-to-help-build-egghead-dot-io</link><guid isPermaLink="false">https://joelhooks.com/blog/2017/10/26/why-we-hire-consultants-to-help-build-egghead-dot-io</guid><pubDate>Thu, 26 Oct 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[2016 was amazing. Best year yet.]]></title><description><![CDATA[2016 as a year took a lot of criticism as a year. Beloved celebrities died in a seemingly endless parade of "noooooooo". We were subjected to a painful and divisive US federal election cycle, which resulted in another shameless ass-clown getting…]]></description><link>https://joelhooks.com/blog/2017/01/02/2016-was-amazing-best-year-yet</link><guid isPermaLink="false">https://joelhooks.com/blog/2017/01/02/2016-was-amazing-best-year-yet</guid><pubDate>Mon, 02 Jan 2017 00:00:00 GMT</pubDate></item><item><title><![CDATA[Setting goals for (my version of) success.]]></title><description><![CDATA[There is this amazing conference in Las Vegas once a year called MicroConf. It's a gathering of like-minded entrepreneurs that (for the most part) are boot-strapping their business. This means that they aren't taking outside investment, specifically…]]></description><link>https://joelhooks.com/blog/2016/04/08/setting-goals-for-my-version-of-success</link><guid isPermaLink="false">https://joelhooks.com/blog/2016/04/08/setting-goals-for-my-version-of-success</guid><pubDate>Fri, 08 Apr 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[Build an Image Gallery Using React, Redux and redux-saga]]></title><description><![CDATA[Building an Image Gallery The image gallery we will build is a simple application that displays an array of image URLs loaded from a service (Flickr), and allows the user to select them individually. It will be built with React, using Redux and redux…]]></description><link>https://joelhooks.com/blog/2016/03/20/build-an-image-gallery-using-redux-saga</link><guid isPermaLink="false">https://joelhooks.com/blog/2016/03/20/build-an-image-gallery-using-redux-saga</guid><pubDate>Sun, 20 Mar 2016 00:00:00 GMT</pubDate></item><item><title><![CDATA[2015 Year in Review]]></title><description><![CDATA[It’s been two years since I woke up dreading a workday. And I work almost every day. When we first set out to build egghead, I told my parter John that all he had to do was make amazing content, and that  I would do the rest . {% emoji flushed %} For…]]></description><link>https://joelhooks.com/blog/2015/12/31/2015-year-in-review</link><guid isPermaLink="false">https://joelhooks.com/blog/2015/12/31/2015-year-in-review</guid><pubDate>Thu, 31 Dec 2015 00:00:00 GMT</pubDate></item><item><title><![CDATA[Bootstrapping egghead.io to feed my family: 2014 in Review]]></title><description><![CDATA[2014 Year in Review It's that time of the year. People dusting off the blog and endeavoring to capture the past 12 months of their life in a wordy nutshell. It's something that I've never participated in, but I thought I'd give it a try. I quit my…]]></description><link>https://joelhooks.com/blog/2014/12/24/bootstrapping-egghead-dot-io-to-feed-my-family-2014-in-review</link><guid isPermaLink="false">https://joelhooks.com/blog/2014/12/24/bootstrapping-egghead-dot-io-to-feed-my-family-2014-in-review</guid><pubDate>Wed, 24 Dec 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[Let's Make Full-Ass AngularJS Directives]]></title><description><![CDATA[With best intentions we set forth to create the mighty directive. The steepest slope of the dreaded AngularJS learning curve. The "place where the jQuery goes." So what is a directive? We've  talked about this before , and decided that they are  not…]]></description><link>https://joelhooks.com/blog/2014/02/11/lets-make-full-ass-angularjs-directives</link><guid isPermaLink="false">https://joelhooks.com/blog/2014/02/11/lets-make-full-ass-angularjs-directives</guid><pubDate>Tue, 11 Feb 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[Stop writing For loops. Start using underscore.]]></title><description><![CDATA[How many for loops did you write today? This week? Sure. That's harmless enough. Ugly and weird, but not something to really complain about. But this is all too common: Which on the scale of bad code, isn't even  that  bad, but you start throwing…]]></description><link>https://joelhooks.com/blog/2014/02/06/stop-writing-for-loops-start-using-underscorejs</link><guid isPermaLink="false">https://joelhooks.com/blog/2014/02/06/stop-writing-for-loops-start-using-underscorejs</guid><pubDate>Thu, 06 Feb 2014 00:00:00 GMT</pubDate></item><item><title><![CDATA[How to Build a Subscription Service on Rails: A Noob's Guide]]></title><description><![CDATA[There are few things as nerve-wracking as pushing your first subscription
website into production. Am I covering all the bases? Will everything break and
leave me in a pit of customer support sadness? How do I even take payments? Are
they just going…]]></description><link>https://joelhooks.com/blog/2013/10/30/how-to-build-a-subscription-service-on-rails-a-noobs-guide</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/10/30/how-to-build-a-subscription-service-on-rails-a-noobs-guide</guid><pubDate>Wed, 30 Oct 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[How to Record a High Quality Screencast]]></title><description><![CDATA[Audio:
convert mono to stero
add a slight delay to one channel
use an EQ
add a touch of reverb (not too much)
add a little compression]]></description><link>https://joelhooks.com/blog/2013/09/23/how-to-record-a-high-quality-screencast</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/09/23/how-to-record-a-high-quality-screencast</guid><pubDate>Mon, 23 Sep 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[Why I Built an AngularJS Training Site on Rails]]></title><description><![CDATA[If you're into AngularJS at all, you are probably familiar with the kickass  AngularJS video training  from egghead.io. If you haven't seen egghead.io, it is a collection of 50+ short "bite-sized" training videos, largely focused on the AngularJS…]]></description><link>https://joelhooks.com/blog/2013/09/15/why-i-built-an-angularjs-training-site-on-rails</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/09/15/why-i-built-an-angularjs-training-site-on-rails</guid><pubDate>Sun, 15 Sep 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[Configuring Dependency Injection in AngularJS]]></title><description><![CDATA[Dependency injection is the act of supplying values or object instances (dependencies) to target objects
from outside of the target object. In many (most?) cases this is automated
by a framework, such as AngularJS. This means that a given target…]]></description><link>https://joelhooks.com/blog/2013/08/18/configuring-dependency-injection-in-angularjs</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/08/18/configuring-dependency-injection-in-angularjs</guid><pubDate>Sun, 18 Aug 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[Learn AngularJS this Weekend]]></title><description><![CDATA[AngularJS has a reputation for a steep learning curve. It's definitely complex, but follows the 80/20 rule.  20% of the features are what you will use 80% of the time . If you are new to AngularJS and have a weekend to study, there are some very high…]]></description><link>https://joelhooks.com/blog/2013/08/03/learn-angularjs-in-a-weekend</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/08/03/learn-angularjs-in-a-weekend</guid><pubDate>Sat, 03 Aug 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[Using AngularJS? Stop using jQuery as a crutch.]]></title><description><![CDATA[Have you ever heard (or said!) this: "Directives? That's where the jQuery goes." I definitely have. In an effort to better understand
 @joshdmiller 's excellent
 ng-boilerplate , I
wanted to understand its dependency on Boostrap. More specifically, I…]]></description><link>https://joelhooks.com/blog/2013/07/27/using-angularjs-stop-using-jquery-as-a-crutch</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/07/27/using-angularjs-stop-using-jquery-as-a-crutch</guid><pubDate>Sat, 27 Jul 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[The basics of using ui-router with AngularJS]]></title><description><![CDATA[URL routing is a popular approach to matching the contents of a URL to specific
functionality within a web application. URL routes programatically present
specific content to users based on the URL that they are visiting. It is a
popular approach…]]></description><link>https://joelhooks.com/blog/2013/07/22/the-basics-of-using-ui-router-with-angularjs</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/07/22/the-basics-of-using-ui-router-with-angularjs</guid><pubDate>Mon, 22 Jul 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[AngularJS Directives That Override Standard HTML Tags]]></title><description><![CDATA[Directives are the heart and soul of AngularJS. They are incredibly powerful.
AngularJS sets out to extend the grammar of the browser to supply semantics that
facilitate the creation of web applications, going beyond the standard
hyper-linked web…]]></description><link>https://joelhooks.com/blog/2013/07/15/a-look-at-angularjs-internal-directives-that-override-standard-html-tags</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/07/15/a-look-at-angularjs-internal-directives-that-override-standard-html-tags</guid><pubDate>Mon, 15 Jul 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[Why Doesn't My Photography Studio Website Appear in Search Results?]]></title><description><![CDATA[This is a series of post examining why our  Fort Worth photography
studio  website performs poorly in Google search
results, and why it fails to convert the visitors it does get into new clients.
The first post sought to  analyze Google Analytics…]]></description><link>https://joelhooks.com/blog/2013/06/25/why-doesnt-my-photography-studio-website-appear-in-search-results</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/06/25/why-doesnt-my-photography-studio-website-appear-in-search-results</guid><pubDate>Tue, 25 Jun 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[Optimizing a Photography Studio Website for Converstion and SEO: The Analysis]]></title><description><![CDATA[The internet is a competitive place for small businesses, and this is especially
true when we are talking about portrait photographers. My lovely wife is a
 family photographer in Fort Worth , Texas. She's been
doing portrait photography…]]></description><link>https://joelhooks.com/blog/2013/06/22/optimizing-a-photography-studio-website-for-converstion-and-seo-the-analysis</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/06/22/optimizing-a-photography-studio-website-for-converstion-and-seo-the-analysis</guid><pubDate>Sat, 22 Jun 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[Coming to Terms With Enterprise JavaScript]]></title><description><![CDATA[What is enterprise javascript? Good question. One that might even make you chuckle 1  a little bit on the inside.
The word "enterprise" is definitely a loaded term. It could be considered by
some to be a buzzword. Others might say "Why are we talking…]]></description><link>https://joelhooks.com/blog/2013/06/17/coming-to-terms-with-enterprise-javascript</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/06/17/coming-to-terms-with-enterprise-javascript</guid><pubDate>Mon, 17 Jun 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[The Paralyzing Grip of Fear]]></title><description><![CDATA[My sons love playing basketball. After a certain age
(around 12), youth sports change. The court or field is no longer filled with
kids that were dragged to the game by their parents. These kids are here because
they love playing the game. So what do…]]></description><link>https://joelhooks.com/blog/2013/06/10/the-paralyzing-grip-of-fear</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/06/10/the-paralyzing-grip-of-fear</guid><pubDate>Mon, 10 Jun 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[What I Learned From Brennan Dunn's Consultancy Masterclass]]></title><description><![CDATA[Consulting is something that I truly love. Helping businesses succeed, helping
employees to stop focusing on mundane repeatable tasks, helping enterprises
drive large scale commerce... these are truly activities that I enjoy. Getting
into the mix…]]></description><link>https://joelhooks.com/blog/2013/06/07/what-i-learned-from-brennan-dunns-consultancy-masterclass-w-slash-sketchnotes</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/06/07/what-i-learned-from-brennan-dunns-consultancy-masterclass-w-slash-sketchnotes</guid><pubDate>Fri, 07 Jun 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[My Sketchnotes and Thoughts from BaconBizConf 2013]]></title><description><![CDATA[It is hard to explain how excited I was when Amy announced
 BaconBizConf  in April of 2013. A
small conference devoted to like-minded people that either are, or want to be,
bootstrapping product businesses. The speaker lineup included personal "gurus…]]></description><link>https://joelhooks.com/blog/2013/06/06/my-sketchnotes-and-thoughts-from-baconbizconf-2013</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/06/06/my-sketchnotes-and-thoughts-from-baconbizconf-2013</guid><pubDate>Thu, 06 Jun 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[Lessons Learned: A Year with a Large AngularJS Project]]></title><description><![CDATA[After a year of working with a large AngularJS project, I thought I'd share a
few of the lessons that I learned in the process. Firstly, I love AngularJS. It
suits my needs exceedingly well, and I expect it will be my goto for the
forseeable future…]]></description><link>https://joelhooks.com/blog/2013/05/22/lessons-learned-kicking-off-an-angularjs-project</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/05/22/lessons-learned-kicking-off-an-angularjs-project</guid><pubDate>Wed, 22 May 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[Size and Composition of Effective Software Teams]]></title><description><![CDATA[The success or failure of  any  project is based on the team or teams working on
it. Teams are like fingerprints and snowflakes. They are composed of individuals
with unique experiences and skillsets. When we set out to build large
applications in a…]]></description><link>https://joelhooks.com/blog/2013/05/21/size-and-composition-of-effective-teams</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/05/21/size-and-composition-of-effective-teams</guid><pubDate>Tue, 21 May 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[AngularJS, Dependency Injection, and when is a singleton not a Singleton?]]></title><description><![CDATA[The Singleton is the Highlander of design patterns.  There can be only one . An example of a Singleton implementation might look something like this: from Tom Roggero The above JavaScript is from an  answer 
from StackOverflow that seemed resonable…]]></description><link>https://joelhooks.com/blog/2013/05/01/when-is-a-singleton-not-a-singleton</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/05/01/when-is-a-singleton-not-a-singleton</guid><pubDate>Wed, 01 May 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[A rose by any other name?]]></title><description><![CDATA[I posted  an
article  about using models to assist in creating leaner, meaner controllers. It resulted in a lively conversation in the comments that spawned an interesting  rebuttal  from  Rob Conery  that essentially says I am full of it, and the…]]></description><link>https://joelhooks.com/blog/2013/04/26/a-rose-by-any-other-name</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/04/26/a-rose-by-any-other-name</guid><pubDate>Fri, 26 Apr 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[Modeling Data and State in Your AngularJS Application]]></title><description><![CDATA[Respect your data. Contain your state. 
Data and state are the foundation of your application. These two items should be
absolutely respected. As you work through the AngularJS documentation, these two
items are generally stored on the controllers…]]></description><link>https://joelhooks.com/blog/2013/04/24/modeling-data-and-state-in-your-angularjs-application</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/04/24/modeling-data-and-state-in-your-angularjs-application</guid><pubDate>Wed, 24 Apr 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[5 Essential VIM Plugins That Greatly Increase my Productivity]]></title><description><![CDATA[There are  a lot  of VIM plugins to choose from. An individual's list of what
would be considered "essential" is largely a personal matter. For any given
plugin, there is also probably going to be an excellent alternative plugin that does the
same…]]></description><link>https://joelhooks.com/blog/2013/04/23/5-essential-vim-plugins</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/04/23/5-essential-vim-plugins</guid><pubDate>Tue, 23 Apr 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[It is Tiny. One Week Developing With an 11" MacBook Air]]></title><description><![CDATA[For as long as I can remember, all of my computer upgrades have been "bigger and
badder." Outside of moving from a FULL ATX DESKTOP WORKSTATION to a laptop,
Moore's law has played out nicely. Every few years I'd get something bigger and
better. Not…]]></description><link>https://joelhooks.com/blog/2013/04/18/a-tiny-review-one-week-with-an-11-macbook-air-for-software-development</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/04/18/a-tiny-review-one-week-with-an-11-macbook-air-for-software-development</guid><pubDate>Thu, 18 Apr 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[Getting to Know VIM]]></title><description><![CDATA[It's like coming full circle. When I was first introduced to computers, they very much resembled what I see in
Terminal today. I've always had a distinct fondness for the command line
interface. That said, when I started using computers…]]></description><link>https://joelhooks.com/blog/2013/04/09/getting-to-know-vim</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/04/09/getting-to-know-vim</guid><pubDate>Tue, 09 Apr 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[VIM Adventures: A Fun Way to Pick up Some Basic Skills]]></title><description><![CDATA[Vim Adventures  is a fun browser based game that
teaches basic VIM skills while adventuring. It is kind of silly, and can be a
bit... frustrating... but that is the point. This is VIM after all! No pain, no
gain ;)]]></description><link>https://joelhooks.com/blog/2013/04/09/vim-adventures-a-fun-way-to-pick-up-some-basic-skills</link><guid isPermaLink="false">https://joelhooks.com/blog/2013/04/09/vim-adventures-a-fun-way-to-pick-up-some-basic-skills</guid><pubDate>Tue, 09 Apr 2013 00:00:00 GMT</pubDate></item><item><title><![CDATA[Using Custom Jasmine Matchers to Make Unit Tests More Readable]]></title><description><![CDATA[Image from purplemattfish I'm a stickler for the "single assertion per test" guideline. One of the pillars of good unit tests is readability. Multiple asserts undermine this principle and make tests that are more difficult to read, understand, and…]]></description><link>https://joelhooks.com/blog/2012/11/17/using-custom-jasmine-matchers-to-make-unit-tests-more-readable</link><guid isPermaLink="false">https://joelhooks.com/blog/2012/11/17/using-custom-jasmine-matchers-to-make-unit-tests-more-readable</guid><pubDate>Sat, 17 Nov 2012 00:00:00 GMT</pubDate></item><item><title><![CDATA[Practical Object Oriented Design is Excellent]]></title><description><![CDATA[I've been reading the Rough Cut of  Practical Object Oriented Design , and I have been absolutely enjoying every page. It isn't very often that a technical book comes along that really strikes me as a "new classic," but this one qualifies.  Sandi…]]></description><link>https://joelhooks.com/blog/2012/08/28/practical-object-oriented-design-in-ruby-is-a-really-good-book</link><guid isPermaLink="false">https://joelhooks.com/blog/2012/08/28/practical-object-oriented-design-in-ruby-is-a-really-good-book</guid><pubDate>Tue, 28 Aug 2012 00:00:00 GMT</pubDate></item><item><title><![CDATA[On Transitioning to JavaScript From AS3/Flex]]></title><description><![CDATA[I'm currently working on a large enterprise JS application, and enjoying myself quite a bit. We've implemented standards and practices that remove most of the bad parts of JS dev. We are using straight up JS with  AngularJS . We are covering our…]]></description><link>https://joelhooks.com/blog/2012/08/27/on-transitioning-to-javascript-from-as3-slash-flex</link><guid isPermaLink="false">https://joelhooks.com/blog/2012/08/27/on-transitioning-to-javascript-from-as3-slash-flex</guid><pubDate>Mon, 27 Aug 2012 00:00:00 GMT</pubDate></item><item><title><![CDATA[Code Review: How to Make Friends and Influence Developers]]></title><description><![CDATA[I'm a huge fan of peer review, especially with Atlassian's  Crucible  tool. It can be hard to introduce code review to a group that isn't used to doing it, or has had bad experiences with "hostile" review process in the past. It can be a very…]]></description><link>https://joelhooks.com/blog/2012/08/01/code-review-how-to-make-friends-and-influence-developers</link><guid isPermaLink="false">https://joelhooks.com/blog/2012/08/01/code-review-how-to-make-friends-and-influence-developers</guid><pubDate>Wed, 01 Aug 2012 00:00:00 GMT</pubDate></item><item><title><![CDATA[Fresh Start: Migrating from Wordpress to Octopress]]></title><description><![CDATA[I've been wanting to part ways with WordPress for some time. It's been expensive, running a VPS for the hosting. I've been "attacked" on multiple occasions that result in blacklisting from the Google when I ran on much less expensive shared hosting…]]></description><link>https://joelhooks.com/blog/2012/07/25/fresh-start-migrating-wordpress-octopress</link><guid isPermaLink="false">https://joelhooks.com/blog/2012/07/25/fresh-start-migrating-wordpress-octopress</guid><pubDate>Wed, 25 Jul 2012 00:00:00 GMT</pubDate></item></channel></rss>