Best Business Books for Inspiration

I have written business plans every year for fun and executed a few. These books inspire different aspects of running a company or starting a new one. E-Myth: Revisited by Gerber First epiphany business book is E-Myth: Revisited by Gerber. This book exposes the myth of “I started a business so I’m an entrepreneur!” It follows the pie maker starting a pie shop and making pies. The core insight: they are a technician making pies, not an entrepreneur. By documenting routines for pie production and hiring staff to follow them, they become a manager. Eventually, documenting management routines creates a self-running company based on repeatable processes. ...

August 24, 2025 · Geoff Corey

Setup a Self-Hosted Ghost Blog with Docker and Caddy

Ghost blogging platform offers simplicity, but email configuration presents challenges. This guide demonstrates deploying Ghost via docker-compose with Caddy as a reverse proxy. Core Setup The Ghost documentation provides foundational installation steps. Caddy can handle wildcard domain certificates through Let’s Encrypt for HTTPS security. Email Configuration Options Transactional Emails (signup/subscriptions): Mailtrap free tier maintains your domain reputation Gmail alternative available if you accept third-party domain indicators Newsletters (bulk messages): Mailgun offers a free tier suitable for low-volume blogs Configuration requires editing config.production.json with SMTP credentials Gmail SMTP Configuration Generate a dedicated app password via Google Account security settings, then configure Ghost with these credentials in the mail section of your production configuration file. ...

August 22, 2025 · Geoff Corey

Caddy, Wildcard Certs and Ghost

The Problem Hosting multiple applications on subdomains requires a strategy for SSL certificates. The specific example involves deploying Ghost blogging software to blog.geoffcorey.com while redirecting the root domain to this subdomain. The setup uses wildcard Let’s Encrypt certificates to avoid generating separate certificates for each subdomain. Cloudflare API Token DNS configuration requires Cloudflare. The CaddyBuilds/caddy-cloudflare Docker image provides DNS challenge support for obtaining wildcard certificates. Setup: Docker Compose & Caddy Configuration docker-compose.yml The configuration includes three services: ...

May 23, 2025 · Geoff Corey

Snowflake: conversion of timestamp NTZ to UTC with offset

Problem Code attempting to transform Snowflake timestamp_ntz values stored in America/New_York local format into UTC time with offset notation did not account for Daylight Savings Time. Solution ALTER SESSION SET TIMEZONE = 'America/New_York'; SELECT TO_TIMESTAMP_NTZ('12/15/2023 01:02:03', 'mm/dd/yyyy hh24:mi:ss') as mytimestamp, mytimestamp::timestamp_tz as orig, TO_VARCHAR(mytimestamp, 'YYYY-MM-DDTHH24:MI:SS.FF3-TZHTZM') as datetime_wrong, CONVERT_TIMEZONE('UTC','America/New_York',TO_TIMESTAMP_LTZ(mytimestamp)) AS converted_ts, DATEDIFF('hour', converted_ts, mytimestamp) as hourdiff, TO_VARCHAR(converted_ts) || '-0' || hourdiff || ':00' as datetime; The key involves using CONVERT_TIMEZONE() with explicit source and target timezones, which properly handles DST transitions.

April 17, 2025 · Geoff Corey