WARP.md
This file provides guidance to WARP (warp.dev) when working with code in this repository.
Project Overview
This is a personal GitHub Pages blog built using Jekyll Now, a simplified Jekyll setup that requires minimal configuration. The blog focuses on data analysis, computational molecular simulations, machine learning, and Python development topics.
Repository URL: christophergaughan.github.io (GitHub Pages hosted)
Key Technologies
- Jekyll: Static site generator (v1.2.0 - Jekyll Now)
- Kramdown: Markdown processor with GitHub Flavored Markdown support
- Rouge: Syntax highlighter
- MathJax: Mathematical equation rendering (LaTeX support)
- Plotly: Interactive data visualizations
- Sass/SCSS: CSS preprocessing
Development Commands
Local Development
# Install Jekyll and GitHub Pages dependencies (if not already installed)
gem install github-pages
# Serve site locally with live reload
jekyll serve
# View site at: http://127.0.0.1:4000/
Note: Jekyll is not currently installed on this system. Install via gem install github-pages before local development.
Content Management
# Create new blog post (filename format is critical)
# Format: YYYY-MM-DD-title-with-hyphens.md
touch _posts/$(date +%Y-%m-%d)-your-post-title.md
# View all posts
ls _posts/
Repository Structure
Core Directories
_posts/: Blog post content in Markdown format- Must follow naming convention:
YYYY-MM-DD-title.md - Front matter required:
layout,title, optionalauthor,date - Support for LaTeX equations using MathJax (inline:
$$equation$$) - Can include Jupyter notebooks (converted to markdown/HTML)
- Must follow naming convention:
_layouts/: Page templatesdefault.html: Base template with header, footer, navigationpost.html: Blog post template (extends default.html)
_includes/: Reusable HTML componentsanalytics.html: Google Analytics integrationdisqus.html: Comment systemmeta.html: SEO meta tagssvg-icons.html: Social media icons
_sass/: SCSS stylesheets (compiled by Jekyll)_reset.scss: CSS reset_variables.scss: Design system variables_highlights.scss: Syntax highlighting styles_svg-icons.scss: SVG icon styles
images/: Static image assets
Key Files
_config.yml: Jekyll configuration- Site metadata (name, description, avatar)
- Social media links
- Plugin configuration
- Permalink structure
style.scss: Main stylesheet (imports all Sass partials)index.html: Homepage listing all blog postsabout.md: About page content404.md: Custom 404 error page
Architecture Patterns
Jekyll Liquid Templating
This site uses Jekyll’s Liquid templating engine:
-
Variables:
Christopher Gaughan Ph.D.,WARP.md, `<article class="page">Quantitative Skepticism
Quantitative Skepticism
Applying Data Science to Popular Claims
Extraordinary claims deserve rigorous analysis. This section contains projects where I apply statistical methods, data collection, and critical thinking to evaluate popular beliefs, viral claims, and persistent myths.
The goal is not cynicism, but clarity. Sometimes the data supports the claim. Often it does not. Either way, the methodology matters more than the conclusion.
Projects
Missing 411: A Bayesian Analysis
Do “mysterious” wilderness disappearances defy statistical explanation?
The Missing 411 phenomenon claims thousands of people have vanished under unexplained circumstances in US National Parks. I gathered official NPS visitation data, compiled Search and Rescue statistics from peer-reviewed sources, and applied Bayesian inference to test whether these disappearances are anomalous.
Spoiler: When adjusted for the 300+ million annual park visits, the numbers are exactly what statistics predicts.
Tools: Python, SciPy, NPS IRMA API, Bayesian Poisson-Gamma models
More Coming Soon
Future analyses may include:
- Shark attack risk perception vs. reality
- “Cluster” disappearances and spatial statistics
- Other viral claims that warrant quantitative scrutiny
Why This Matters
This type of analysis demonstrates:
- Data collection skills: API integration, FOIA data, academic sources
- Statistical rigor: Bayesian inference, base rate analysis, Monte Carlo methods
- Critical thinking: Identifying methodological flaws, selection bias, scope creep
- Science communication: Making technical results accessible
These are the same skills required to evaluate AI model outputs, identify hallucinations, and distinguish genuine patterns from statistical noise.
“The first principle is that you must not fool yourself, and you are the easiest person to fool.” — Richard Feynman
</div> </article> `
- Loops:
......... - Includes: `
`
- Conditionals:
...
Front Matter Structure
All posts and pages require YAML front matter:
---
layout: post
title: "Your Post Title"
author: "Christopher L. Gaughan, Ph.D."
date: YYYY-MM-DD
---
Math Equation Support
LaTeX equations are rendered via MathJax (included in default.html):
- Inline math:
$$E = mc^2$$ - Display math: Use double
$$on separate lines - MathJax CDN:
https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js
Styling System
The site uses Sass with a modular structure:
- Variables defined in
_sass/_variables.scss(colors, fonts, breakpoints) - Mobile-first responsive design with
@include mobilemixins - Base font size: 18px, Helvetica/Helvetica Neue font stack
- Container max-width: 740px
Third-Party Integrations
- Plotly.js: Loaded via CDN in default layout for interactive visualizations
- Bootstrap CSS: Version 3.3.7 (loaded for specific components)
- JiffyReader: Speed reading enhancement bookmarklet embedded in navigation
Development Guidelines
Creating Blog Posts
- File naming: Use
YYYY-MM-DD-descriptive-title.mdformat - Front matter: Always include
layout: postandtitle - LaTeX: Use MathJax syntax for mathematical content
- Code blocks: Use triple backticks with language specifier for syntax highlighting
- Images: Store in
/images/directory, reference with/images/filename.png
Style Modifications
- Edit
style.scssfor global styles - Edit individual Sass partials in
_sass/for specific components - Jekyll automatically compiles SCSS to CSS on build
- Changes require Jekyll restart in local development
GitHub Pages Deployment
This site uses GitHub Pages’ automatic deployment:
- Push to
masterbranch triggers automatic rebuild - Changes typically appear within seconds to minutes
- No manual build/deploy commands needed
- Site available at: https://christophergaughan.github.io
Excluded Files
The following are excluded from the built site (see _config.yml):
Gemfile,Gemfile.lockLICENSE,README.md,CNAME_site/(build output).jekyll-*(cache files)node_modules/,vendor/
Important Notes
Blog Post Content
- This blog features technical content including physics (Einstein field equations, general relativity), data science, and machine learning
- Posts may include complex mathematical notation requiring proper LaTeX rendering
- Some posts include embedded Jupyter notebooks or converted notebook content
No Automated Testing
There are no test scripts or CI/CD pipelines in this repository. Content validation is manual.
GitHub Pages Limitations
- Only specific Jekyll plugins are supported (listed in
_config.yml) - Custom plugins require pre-building site locally and pushing to
gh-pagesbranch - Ruby dependencies managed via
github-pagesgem
Common Tasks
Add a new blog post
# Create post file with proper naming
touch _posts/$(date +%Y-%m-%d)-new-post-title.md
# Add front matter and content
# Edit in your preferred editor
# Commit and push to GitHub
git add _posts/$(date +%Y-%m-%d)-new-post-title.md
git commit -m "Add new blog post"
git push origin master
Preview changes locally
# Serve site (auto-regenerates on file changes)
jekyll serve
# Or with drafts visible
jekyll serve --drafts
# With future-dated posts visible
jekyll serve --future
Update site configuration
- Edit
_config.yml - Restart Jekyll server (config changes not auto-reloaded)
- Commit and push changes
Modify styles
- Edit
style.scssor files in_sass/ - Changes auto-reload with Jekyll serve
- Test thoroughly before pushing to production