Skip to content

Instantly share code, notes, and snippets.


Joel Hooks joelhooks

View GitHub Profile
joelhooks / drip_to_convertkit.js
Created Jan 10, 2019
This is a little node app that creates individual csv files for each tag in an exported Drip subscriber (people!) csv
View drip_to_convertkit.js
const _ = require('lodash')
const fs = require('fs')
const csv = require('csv-parser')
const writer = require('fast-csv')
const csvFilePath = 'PATH_TO.csv'
const filesToBuild = {}
View gist:424fb208fd52351622cf1ef044288447
### Keybase proof
I hereby claim:
* I am joelhooks on github.
* I am joelhooks ( on keybase.
* I have a public key whose fingerprint is 251E 1196 F0E2 7B60 686B E7F2 BE4C F2AD E4D6 2AB7
To claim this, I am signing this object:
View drip-responsive-simple.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
<html xmlns="">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width"/>
<style type="text/css">
/* Based on The MailChimp Reset INLINE: Yes. */
View egghead-redux-course-flash-cards.json
"slug": "react-redux-the-single-immutable-state-tree",
"question": "What is the *entire* state of the application represented as?",
"answer": "A single Javascript object."
"slug": "react-redux-describing-state-changes-with-actions",
"question": "What is an action?",
"answer": "A minimally represented change of the state"
View lesson_fsm.rb
aasm :column => :state do
state :proposed, :initial => true
state :cancelled
state :accepted
state :claimed
state :submitted
state :rejected
state :updated
state :approved
state :published
View build.pde
import hype.*;
import hype.extended.colorist.HPixelColorist;
int myStageW = 1920;
int myStageH = 1080;
color clrBG = #FFFFFF;
// ********************************************************************************************************************
joelhooks /
Last active Dec 12, 2019
It seems trivial to record a 1-8 minute screencast, but there are actually quite a few moving parts when it comes to recording a **high quality** screencast. Here's some of our thoughts on the subject.

Recording a Great Coding Screencast

The Screen

First and foremost a coding screencast is about the code, and we need to make sure it looks great. There are a few aspects to this that help ensure that is the case.


720p is the target resolution. In pixel terms this is 1280x720. We've gotten the best results when we record at 2560x1440 in a HiDPI (pixel double) mode, giving an effective visible resolution of 1280x720, but extremely crisp. This resolution is achievable on 27" monitors and retina MBPs.

View patio11_microconf_2014_tweets.json
"created_at": "Tue Apr 15 23:26:00 +0000 2014",
"id": 456211869691154400,
"id_str": "456211869691154432",
"text": "@zrail Congrats. I think that is close to the highest I've ever heard of.",
"source": "<a href="" rel="nofollow">Twitter for Mac</a>",
"truncated": false,
"in_reply_to_status_id": 456211742448566300,
"in_reply_to_status_id_str": "456211742448566272",
joelhooks / LOG.js
Created Jan 24, 2014
Enhanced Logging
View LOG.js
.run(function ($rootScope, $log, $window) {
var prepareLogFn = function (logFn) {
var enhancedLogFn = function () {
var modifiedArguments =;
modifiedArguments[0] = [moment().format() + ' '] + modifiedArguments[0];
logFn.apply(null, modifiedArguments);
enhancedLogFn.logs = [ ];
joelhooks /
Last active Jun 14, 2021
Podcasting Gear List