Essays, Posts, & Notes

The full date-sorted archive of this site.

Looking for my old tweets? See the tweet archive.

Filter by tag
Restoring Old Digital History

Using LLMs to clean up my early research projects

Vibing Digital History

What if it Just Works?

The Obsidian-Hugo Workflow

Setting up Obsidian, Hugo, and Cloudflare for my website.

A New Design for Readability

Design updates for 2026

Computers Can't Surprise

Creativity belongs to the humans.

My Ideal Library

Reflecting on my personal library, the space serves as both a home office and creative studio.

“Fluent and Stranded”

Current large language models can produce convincing dialogue but struggle to create meaningful new ideas, often resulting in nonsensical exchanges akin to absurdist theater.

How I Use Obsidian Redux

An update on how I use Obsidian for historical research.

Two Quotations on Interfaces

Excessive removal of friction from digital technology has diminished meaningful experiences.

Generative AI and the Work of History

Generative AI lacks the ability to understand context, historical ambiguity, and cannot generate new knowledge, rendering it inadequate for certain kinds of historical research and meaningless for education.

The Christmas Movie Rotation

Our varied selection of Christmas movies we watch each year.

Two Quotes on the Land

Quotes on the land by Aldo Leopold and Edward Abbey

The Farmall H Restoration, February Update

A February update on the 1946 Farmall H restoration.

Living in the News

The importance of prioritizing local and immediate experiences over consuming excessive news and global events to maintain perspective and reclaim attention.

Recovering U.S. Government Data and Websites

Endangered Data Week was founded to address threats to publicly available data, and while it has ended, efforts to archive vulnerable datasets continue, as highlighted by a recent NY Times article on missing government websites.

Own Your Turf

The urgent need for decentralized social media platforms that resist censorship and allow user control has become increasingly clear.

Friction

Migrating to Micro.blog made writing easier and more productive.

Lamentable Word

Charlie Stross and Alan Jacobs on how Microsoft Word hinders the writing and editing process for authors and publishers alike.

Two Quotes on Owning Your Turf

The urgent need for decentralized social media platforms that resist censorship and allow user control has become increasingly clear.

Returning to Firefox
The blog's themes, summarized

Summarizing my blog tags around key themes in my writing.

Year of Foundations
Year-End Tech Report
Becoming News-Resilient
The Return of the Prairie Populists
The Legacies of the Bundyville Stand-off
How I Use Obsidian

Creating my research and note-taking environment

Made by Me

Generative AI shows potential as a tool for synthesis and analysis in history, but we should remain skeptical about its utility and ethical implications.

Reflections on Becoming a Django Developer

Thoughts and experiences on becoming a Django developer.

Are Print Books the New (Old) Authority?

Thinking about the future of printed books and the need for authority in light of inaccurate AI-generated content.

My Next Book's Publication Date

My second book is coming in April 2024.

Default Apps for 2023

A list of my preferred apps and tools for 2023.

Building my Writing Study
Spoiled Fruits: Environmental Inequality in Silicon Valley

Silicon Valley's postwar development created landscapes of stark environmental inequality — prosperity and pollution distributed along racial and class lines.

63rd Annual Western History Association Conference
Adding Conservation to BLM Land
Where I've Been
Weekend Update

Some design updates and a new dark mode switcher!

The Year of Work

Defining my yearly theme for 2023.

Yearly Theme
Updating My RSS

The demise of Twitter seems to lead to RSS's resurgence.

The Agency of Ice
Running my Reading Log

How I manage my reading log.

Web People
0 Tweets

It's time to leave Twitter.

Embracing the Limits
Thinking on the Collapse of Twitter
Creativity and AI

What happens if seemingly historical objects online are entirely unreal?

Elden Ring
Developer Notes: A quick and dirty text diff

Ever need to compare two pieces of text? There's an easy way to do it in VSCode.

The URL is a Radical Act

The web enables the act of visiting and revisiting, lowering the barriers of participation.

COVID
Day of DH 2022

My Day of Digital Humanities for 2022.

Developer Notes: Converting Filenames to Metadata

Using Bash to quickly convert filenames into metadata.

Towards a Stable Set of Tools

I find myself using more stock tools.

The Break from Twitter
Julebordet
Christmas Tunes
A Day of Mourning
Twitter Use at WHA2021

Analyzing Twitter during #WHA2021.

Turning 30
Union
New Role: Developer at RRCHNM

I am thrilled to announce I'm joining RRCHNM!

Twitter Use at WHA2020

Analyzing Twitter during #WHA2020.

Superfund Package

I'm releasing my in-progress dataset on Superfunds as an R package.

Moments
Basecamp
BootcampR
Email
Democratic Typography
The IndieWeb

Doubling down on the Indie Web.

Paper notes

How I take and manage paper notes.

Twitter Use at WHA2019

Analyzing Twitter during #WHA2019.

Omaha Zoning

Mapping Omaha's single-family zoning versus multifamily zoning.

How Silicon Valley Provides the Blueprint for Cleaning Up Our Drinking Water

The region's long history of industrial contamination — and the legal battles it spawned — offers a model for communities confronting polluted groundwater today.

Making my Budget Peloton

Armed with a Sunny Health bike, cadence monitor, and iPhone, you can replicate a Peloton cheaply.

AHA 2019

I'll be at AHA talking digital history.

Twitter Use at WHA2018

Analyzing Twitter during #WHA2018.

Software I Use

Here's some software I really like right now.

Advocacy, Training, and Awareness Through Endangered Data Week

An essay co-authored with Brandon Locke, Sarah Melton, and Rachel Mattson on data advocacy and the annual Endangered Data Week initiative.

Teaching the tidyverse to R novices

How I teach R to novices.

Endangered Data Week

Announcing the founding of Endangered Data Week.

Migrating to Hugo

Migrating my site to Hugo.

HTTPS

Enforcing HTTPS around here.

How Silicon Valley Industry Polluted the Sylvan California Dream

Long before Silicon Valley became synonymous with tech startups, it was orchards and aerospace — and the chemicals that came with both.

Mapping Omaha Bikes

How can we make Omaha safer for bicyclists?

Arguing with Digital History

My contribution to the working paper on arguing with digital history.

Standing up for Net Neutrality

The dismantling of net neutrality is bad for the web.

Recent Updates on Data Visualization

A few things I've made and read on data visualization.

Mapping Midwest

An overview of the keynote address I gave at the 2017 Midwestern History Conference.

mozsprint

Participating in Mozilla's MozSprint!

Introducing Endangered Data Week

How you can get involved with Endangered Data Week.

Digital History at the AHA: Workshops, Roundtables, Sessions

Things I'm presenting on at the AHA next week.

Homecoming

I'm excited to announce my new role at the University of Nebraska at Omaha.

Syllabus for Teaching Digital Public History

My syllabus for Stanford's Digital Public History.

My Open History Notebook

I made an open notebook with Jekyll.

Federal Policy, Western Lands, and Malheur

The federal government administer's a lot of public lands.

Visualizing the Wars of the United States

A timeline of American wars.

Podcasts Redux

An update on some podcasts I'm currently listening to.

Humanistic Approaches to Data Visualization

My presentation at the d3.digitalhumanities() meetup in San Francisco.

Interview with Matt Burton

My interview with Matt Burton.

The Machines in the Valley Digital History Project

Announcing the release of my dissertation's digital history component.

The View from New York

I'll be presenting at a couple of conference at the AHA.

Teaching Digital History

During the fall quarter, I taught a digital history course at Stanford. Here's how it went.

Research Design and Geography of the Post

How and why we designed Geography of the Post.

Syllabus for Digital History

My syllabus for my digital history class I'm teaching at Stanford.

Environmental History at the 2014 Western History Association Conference

Here's the panels about environmental history at the WHA this year.

Simple Parsing CSV to JSON

A simple Ruby script for parsing a CSV into JSON.

Editorial is a Powerful, Flexible iOS App for Text Editing

Editorial is a great tool for iOS-based text editing.

Use Copy for Cloud Storage Backup and File Sharing

Copy is a great cloud storge service.

What Does Missile Command Have to do with Digital History?

What can an old arcade game tell us about history in the digital age?

Day of DH: The Collaborative Historian

My Day of DH 2014.

Day of DH: The Spatial Historian

My Day of DH 2014.

Western History and the California Drought

A historical perspective on the California drought and what it can teach us about western history and sustainability.

Digital History Interview with BlogWest

My interview with Michael Childers at BlogWest.

Using Omekadd and Bash Together

Using Bash to automate adding content to Omeka.

Converting Plain Text to PDF with Bash

Create great-looking PDFs from Markdown with Pandoc and LaTeX.

Digital History at Stanford

Launching Stanford's initiatives in digital history.

My Alt-Ac Life

My work as a digital historian at Stanford.

Using Editorial and Bibkeys Together

Using Editorial with Bibkeys for citation management.

Getting Started with D3

An overview for getting started with D3.

Don't Forget Google Reader Goes Dark Monday

Google Reader goes dark on Monday.

On Tornadoes

In 1998, a tornado practically wiped a city off the map.

The Digital Public Library of America

Using the DPLA for research, teaching, and creating.

History Harvest Blitz Week

Learn more about hosting a History Harvest.

Interview for Digital History@Rice

My interview with Caleb McDaniel.

The Link Blog Experiment

Maybe link blogging just isn't for me.

Parsing CSV Data with Ruby

A simple script for parsing a CSV with Ruby and counting values.

Defining Digital Humanities

My new project providing perpetual answers to the perpetual question.

Using Text Expansion in My Research Workflow

Using TextExpander to work with markdown efficiently.

Word Processor Mode in Vim

Vim is already great. Here's some adjustments to make it even better for writing.

New Job, Joining Stanford

I could not be more excited to announce that I'm joining Stanford University!

OmniFocus Workflow and Notes

An overview on how I use Omnifocus.

Using AppleScript to Automate Notetaking

Extracting PDF highlights to markdown with AppleScript.

Using Markdown Like an Academic

Plain text should rule your writing life.

Lorem Ipsum Block in Sublime Text

Sublime Text supports lorem ipsum by default.

Searching My Brain

Using TextExpander to search my writing.

Opening Marked in Vim

A simple way to open Marked via vim.

Better Web Scraping with Nokogiri

An improved Ruby-based web scraper.

Building Your Own Memex

How I manage information.

Grad Students Guide to Good Coffee

How to make a great cup of coffee.

Turning 28

It's my birthday!

On Podcasts

Here's some of my favorite podcasts.

Towards Better PDF Management with the Filesystem

Using the filesystem to manage your journal PDFs.

What I've Learned as an Academic Blogger

Blogging has taught me a lot.

A Few New Scripts

A few scripts I'm using to automate some tasks.

AHA Forming a Task Force on Digital Scholarship

A positive development: The AHA has formed a task force on digital scholarship.

Popup Footnotes

A jQuery script for creating pop-up footnotes.

Forking the Rubyist Historian

My open access book on Ruby programming for historians.

It's About the Problem

Programming is about solving problems.

Adam Lisagor's AeroPress Tribute

How Adam Lisagor makes his coffee.

A Simple Ruby NGram Generator

A simple Ruby-based text tokenizer.

Full Trash

There's just a few things in the trash.

The French Press Method

A great method for prearing a French Press.

Journals in the Digital Age

Some thoughts on the role of academic journals in the digital age.

The Paleo Diet

Adopting the paleo diet has been transformative.

Redefining Scholarship in the Digital Age

Please consider endorsing our call for the AHA to evaluate the role of digital scholarship in peer review, tenure, and promotion.

Standing Against SOPA

The Stop Online Piracy Act is bad legislation, and bad for the web.

A Call to Redefine Historical Scholarship in the Digital Age

We're asking for endorsements, feedback, and edits to our call for redefining historical scholarship.

Digital History at the AHA

My inaugural attendance at the American Historical Association conference.

THATCamp Proposal: Programming in the Humanities

My proposal for THATCamp AHA in Chicago.

New Year

It's time to re-center my attention.

Legacy Research

Plain text ensures longevity.

Directions in Digital Humanities Research

How I plan to incorporate digital history into my research on William F. Cody.

Alone Together

Let's not let machines dictate who we are.

Who Controls the Master Switch

A reading reflection of Tim Wu for HIST946.

What My lolcat Ate For Breakfast

A reading reflection on the state of the web for HIST946.

The Architecture of Humanities Cyberspace

A reading reflection on Lawrence Lessig for HIST946.

Peer Reviewing Writing History in the Digital Age

My peer review of 'The Hermeneutics of Data and Historical Writing' by Fred Gibbs and Trevor Owens.

The Obligation of Open Access

I've signed the Open Access pledge.

Latour and the Social

A reading reflection on Bruno Latour for HIST946.

Models for Narrative in Digital Humanities

A reading reflection on Franco Moretti for HIST946.

The Information: A History, a Theory, a Flood by James Gleick

A quick review of James Gleick's _The Information_.

SpecLab and Digital Aesthetics

A few examples of what I think are great design in digital humanities.

Thanks, Steve

Remembering Steve Jobs.

Remembering Steve Jobs

Apple, and Steve, played a huge role in my life.

Spatial Humanities and Visual Narratives

A reading reflection on spatial history for HIST946.

Digital Humanities at the 2012 American Historical Association

Digital history has a real showing at AHA 2012.

Information and Data in the Digital Age

A reflection on data for HIST946.

Electronic Text and the Digital Humanities

Reflecting on a collection of readings for HIST946.

The Medium of Digital Humanities

A thought piece on Marshall McLuhan for HIST946.

Organizing Knowledge and the Future of the Humanities

A reflection on knowledge for HIST946.

The Digital Humanities Seminar

An overview of my coursework for HIST946.

Constructing a Digital Humanists' C.V.

Building a CV for the digital humanities.

Using Notational Velocity

The perfect piece of software.

Own Your Identity

You need to control your identity on the web.

On Writing and Notebooks

My current favorite notebook and pen.

Twitter from the Command Line

I spend a lot of time at the CLI. Might as well tweet from it.

Grown Up Computing

Marco Arment on the difference between 'young' and 'grown-up' computing.

Silicon Valley and the Cold War

Silicon Valley's military history in the Cold War.

Designing Digital History

How should we consider the role of design in digital history?

Longform Writing on the Web

Can we replicate longform writing on the web?

Migrating to Jekyll

I've moved from Wordpress to Jekyll. Here's how I did it.

Day of DH

My Day of DH 2011.

Initial Thoughts on TileMill

A quick review of TileMill by Mapbox.

Apple iPad 2

The iPad 2 looks excellent.

Digital History and Continuous Deployment

Digital history is an ongoing process of refinement, narrative, and archiving.

Why I Don't Use A Commenting System

There's no comments here. Just email me.

FREQr Version 2

Some improvements to my word tokenizer.

Facebook and the Problem of Publics

There's a distinction to make between _a_ public and _the_ public.

The Rubyist Historian: Our First Program

The Rubyist Historian: Creating our first program!

The Rubyist Historian: Randomness

The Rubyist Historian: Introduction to recursion and other random things.

The Rubyist Historian: Working With Advanced Data

The Rubyist Historian: Working with inputs and outputs.

The Rubyist Historian: Arrays and Hashes

The Rubyist Historian: Introduction to arrays and hashes.

The Rubyist Historian: Loops and Control Structures

The Rubyist Historian: An introduction to loops and controls.

The Rubyist Historian: Methods and Classes

The Rubyist Historian: Introducing Ruby classes and methods.

The Rubyist Historian: Getting Started

The Rubyist Historian: How to get started with Ruby.

The Rubyist Historian: The Series

The Rubyist Historian: An introduction to the series.

How I Learned Code

Here's how a historian learned to be a programmer.

FREQr, a Command Line Word Frequency Generator

A simple word tokenizer written in Ruby.

Refocusing on Content

Reaching for the ease of the printed page.

Pianobar, Your Command Line Pandora Client

Run Pandora from the command line.

Open Access Scholarship and Computers in the Humanities

The web holds an exciting promise for history, if we reach for it.

Back to Blog (Basics)

Some redesigning of the site.

Excuse the Mess

Doing a bit of design and cleanup. Excuse the dust.

Preparing for Your Semester Teaching Assistantship

My semester checklist as I prepare for my teaching assistantship.

Tool Review: TokenX and Language Analysis

Using TokenX in historical research.

Tool Review: Google Earth for Digital Historians

How Google Earth might be used by historians.

Digital History as a Research Methodology

How I incorporated digital history into my Master's thesis.

Foundational Material in Digital History

Here's how I would introduce someone to digital history.

Framing Red Power: Newspapers and the Trail of Broken Treaties

Annoucing my digital history project, Framing Red Power.

How To: Designing Digital History

Thoughts on the role of design and digital history.

Open Source Scholarship, and Why History Should Be Open Source

Digital history is, by its very nature, open.

The Dell Mini 9: A Historian's Review

A review of the new Dell Mini 9.

The WHA: A Debrief

Looking back on the WHA conference.

The Promise of Digital History

Digital history in the latest Journal of American History.

Kindle as a Metaphore for the History Web

Can the Kindle serve as a metaphor for digital history?

The Challenge of Digital History

Historians have to play a role in defining good history on the web.

Liveblogging the Rawley: The Historical Community Online

Live-blogging the James Rawley History Conference.

Bobley Visits UNL

Brett Bobley paid us a visit to talk about the new NEH Office of Digital Humanities.