🚧 Site Under Construction

This website is currently being developed and may contain dummy data, placeholder text, or incomplete features. Thank you for your patience as we continue to build and improve!

Hello,
I'm Casper

Exploring software design, AI research, electronics engineering, physics, and critical perspectives on culture and society. Writing about building things from scratch and diving deep into complex topics.

Explore Content

Discover topics and content types I write about

Physics & Science

Deep dives into quantum mechanics, mathematical physics, and scientific concepts with LaTeX equations.

Software Design

Architecture patterns, code examples, UML diagrams, system design concepts, and software development insights with interactive visualizations.

AI Research

Exploring artificial intelligence, machine learning, neural networks, and cutting-edge AI research.

Music & Production

Writing, playing, and producing music across various genres and instruments.

Electronics Engineering

Circuit design, embedded systems, hardware projects, and electronics engineering concepts.

Culture & Society

Critical analysis of contemporary issues, cultural trends, and societal challenges facing our world today.

Recent Posts

Latest thoughts and stories

PhysicsQuantum Mechanics

The Schrödinger Equation

The time-dependent Schrödinger equation describes how quantum systems evolve over time:

itΨ(r,t)=H^Ψ(r,t)i\hbar\frac{\partial}{\partial t}\Psi(\mathbf{r},t) = \hat{H}\Psi(\mathbf{r},t)

Where Ψ\Psi is the wave function, H^\hat{H} is the Hamiltonian operator, and \hbar is the reduced Planck constant.

ProgrammingCode Example

Code Snippets Support

The blog now supports syntax-highlighted code blocks. Here's an example:

1function greet(name: string): string {
2  return `Hello, ${name}!`;
3}
4
5const message = greet("World");
6console.log(message); // Output: Hello, World!

Code blocks support syntax highlighting for many languages and integrate seamlessly with the dark theme design.

Software DesignFile Structure

Project Structure

File tree diagrams show folder and file layout. Use ```tree or ```filetree in markdown:

Example layout
app/
page.tsx
layout.tsx
blog/
page.tsx
[slug]/
page.tsx
api/
posts/
route.ts
components/
MarkdownContent.tsx
CodeBlock.tsx
FileTree.tsx

Use indentation (tabs or spaces) for hierarchy. Add name[tag] for optional labels on items.

Software DesignGit & Mermaid

Domain, Integration & Project (Git Submodules)

Project references Integration as a submodule at a version tag; Integration references Domain as a submodule at a version tag. All three repos have version tags along their history. Merge commits represent the parent updating which tag it pins: e.g. Integration merging Domain when Domain is at v0.2.0 means Integration now points its Domain submodule at v0.2.0.

Project pins Integration at v0.1.0, then later at v0.2.0 and v1.0.0; Integration pins Domain at v0.1.0, v0.2.0, then v1.0.0. Merge commit ids use proj@int-* / int@dom-* to indicate which submodule ref was updated.

Software DesignPlantUML

Domain, Integration & Project (PlantUML)

PlantUML has no git-graph syntax, so the same three repositories and submodule pins are shown as a component diagram: Project references Integration as a submodule at version tags; Integration references Domain as a submodule at version tags. Arrows are labeled with the pinned versions; each component lists its own release tags.

Loading diagram...

Use ```plantuml in markdown to render PlantUML. The diagram conveys structure and which versions the parent pins; it does not show commit history or a timeline like the Mermaid gitGraph above.

TechnologyCI/CD

Automated Deployment Pipeline

This site is automatically deployed using GitLab CI/CD. Every push to the master branch triggers a build and deployment process that ensures the latest code is always live.

1deploy:
2  stage: deploy
3  script:
4    - npm ci
5    - npm run build
6    - pm2 restart app
7  only:
8    - master

The pipeline builds the application, verifies the build succeeded, and restarts the production server automatically. This ensures zero-downtime deployments and consistent updates.