Guy Freeman's Data Science Blog
A personal blog showcasing data analysis projects, statistical insights, and coding adventures. Built with Quarto for reproducible research and beautiful presentations.
About
This repository contains the source code for my personal data science blog. I'm a data scientist with a PhD in statistics who has worked across various domains and locations (Israel, England, Hong Kong).
Features
- Quarto-powered: Modern, reproducible research with R and Python
- Data Analysis Posts: Election analysis, puzzle solutions, and statistical insights
- Interactive Elements: Code folding, data tables, and dynamic visualizations
- Responsive Design: Clean, professional layout that works on all devices
Recent Posts
- Israel's Election for the 25th Knesset: Analysis of the 2022 Israeli election results
- Hanukkah of Data 5783: Solving data puzzles in R (alternative to Advent of Code)
Technology Stack
- Quarto: Static site generator for technical content
- R: Primary language for data analysis and visualization
- Python: Supporting language for data processing
- CSS: Custom styling for enhanced presentation
Local Development
To run this blog locally:
- Install Quarto: Download from https://quarto.org/docs/get-started/
- Install R: Download from https://cran.r-project.org/
- Install Python dependencies: This project uses
uv for Python package management
uv sync
- Clone this repository:
git clone git@gitlab.com:gfrmin/blog-quarto.git
cd blog-quarto
- Start the development server:
quarto preview
- Build the site:
quarto render
Project Structure
blog-quarto/
├── _quarto.yml # Quarto configuration file
├── index.qmd # Homepage content
├── about.qmd # About page redirect
├── projects.qmd # Projects page redirect
├── posts/ # Blog posts directory
│ ├── _metadata.yml # Posts metadata
│ └── hanukkah-of-code/ # Data puzzles post
├── projects/ # Project showcases
├── styles.css # Custom CSS styling
├── profile.jpg # Profile image
├── pyproject.toml # Python project configuration
├── uv.lock # Python dependency lock file
├── _freeze/ # Quarto cache (tracked for reproducibility)
Dependencies
Python Dependencies
Managed via pyproject.toml and uv:
jupyter>=1.1.1 - Jupyter notebook support
matplotlib>=3.10.3 - Plotting library
plotly>=6.1.2 - Interactive visualizations
R Dependencies
Install required R packages:
install.packages(c("tidyverse", "ggplot2", "dplyr", "readr"))
Contributing
This is a personal blog, but suggestions and feedback are welcome! Feel free to:
- Open issues for bugs or suggestions
- Submit pull requests for improvements
- Reach out with questions about the analysis
License
This work is licensed under CC BY SA 4.0.
Contact
Built with ❤️ using Quarto