Skip to content

Commit 4b7f214

Browse files
committed
fix: blogpost pages
1 parent 32de2da commit 4b7f214

File tree

10 files changed

+136
-16
lines changed

10 files changed

+136
-16
lines changed

public/posts/posts.json

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,23 @@
11
[
2+
{
3+
"slug": "the-basics-of-time-travel",
4+
"title": "The Basics of Time Travel: Theories, Paradoxes, and Spacetime",
5+
"date": "2026-02-23",
6+
"updated": "2026-02-23",
7+
"description": "A deep dive into the theoretical physics of time travel, exploring Einstein's relativity, wormholes, and the paradoxes that challenge our understanding of causality.",
8+
"tags": [
9+
"physics",
10+
"time-travel",
11+
"relativity",
12+
"science",
13+
"theory"
14+
],
15+
"category": "rant",
16+
"filename": "the-basics-of-time-travel.txt",
17+
"authors": [
18+
"fezcode"
19+
]
20+
},
221
{
322
"slug": "quadtree-algorithm-spatial-indexing",
423
"title": "The Quadtree: Solving the O(N^2) Spatial Nightmare",
@@ -2125,4 +2144,4 @@
21252144
"fezcode"
21262145
]
21272146
}
2128-
]
2147+
]
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
Time travel has long been the crown jewel of science fiction, but its roots are firmly planted in the soil of theoretical physics. From Einstein's revolutionary theories to the mind-bending paradoxes of quantum mechanics, the possibility of moving through time remains one of the most intriguing questions in science.
2+
3+
In this post, we'll explore the fundamental theories that make time travel (theoretically) possible and the logical hurdles that stand in our way.
4+
5+
## 1. Einstein’s Legacy: Time is Relative
6+
7+
The most scientifically grounded form of time travel is **forward time travel**. According to Albert Einstein's theories of relativity, time is not an absolute constant but a flexible dimension that can be stretched or compressed.
8+
9+
### Special Relativity: The Speed Route
10+
Special Relativity tells us that as an object approaches the speed of light, time for that object slows down relative to a stationary observer. This is known as **Time Dilation**.
11+
12+
```mermaid
13+
graph TD
14+
A[Observer on Earth] -->|Time passes faster| B(T = 10 years)
15+
C[Traveler at 99% c] -->|Time passes slower| D(T = 1.4 years)
16+
D --> E[Traveler returns to Earth]
17+
E --> F[Traveler is in the future]
18+
```
19+
20+
### General Relativity: The Gravity Route
21+
General Relativity adds another layer: gravity also warps time. The stronger the gravitational field, the slower time passes. If you were to hover near a black hole for a few hours, years or even decades could pass for the rest of the universe.
22+
23+
## 2. Theoretical Shortcuts: Wormholes and Loops
24+
25+
While relativity handles forward travel, **backward time travel** requires more exotic solutions.
26+
27+
### Einstein-Rosen Bridges (Wormholes)
28+
A wormhole is a theoretical "tunnel" connecting two distant points in spacetime. If one end of a wormhole is accelerated to relativistic speeds (or placed near a massive gravity source), it could create a time difference between the two ends, allowing for travel to the past.
29+
30+
### Closed Timelike Curves (CTCs)
31+
A CTC is a path in spacetime that loops back on itself. In certain solutions of Einstein's field equations—such as those involving a rapidly rotating cylinder (the **Tipler Cylinder**) or a rotating universe (the **Gödel Metric**)—an object could follow a path that returns it to its own past.
32+
33+
## 3. The Paradox Problem
34+
35+
The moment we introduce the possibility of traveling to the past, we run into logical nightmares.
36+
37+
### The Grandfather Paradox
38+
If you travel back in time and prevent your grandfather from meeting your grandmother, you would never be born. But if you were never born, you couldn't travel back in time to stop them.
39+
40+
```mermaid
41+
graph TD
42+
A[Travel to Past] --> B[Prevent Grandfather Meeting]
43+
B --> C[You are never born]
44+
C --> D[No one travels to past]
45+
D --> E[Grandfather meets Grandmother]
46+
E --> F[You are born]
47+
F --> A
48+
```
49+
50+
### The Bootstrap Paradox (Ontological Paradox)
51+
This occurs when an object or piece of information is sent back in time and becomes the cause of its own existence. If you go back in time and give Shakespeare his own plays, who actually wrote them?
52+
53+
## 4. Protecting the Timeline: Proposed Solutions
54+
55+
Physicists have proposed several ways to resolve these paradoxes:
56+
57+
* **Novikov Self-Consistency Principle**: This principle suggests that the laws of physics prevent any action that would create a paradox. If you try to kill your grandfather, the gun will jam, or you'll miss. Your actions were *always* part of history.
58+
* **Many-Worlds Interpretation (Quantum Mechanics)**: Every time a choice is made or a time traveler intervenes, the universe splits. If you prevent your birth, you are doing so in a *parallel* timeline, leaving your original timeline intact.
59+
* **Chronology Protection Conjecture**: Proposed by Stephen Hawking, this conjecture suggests that the laws of physics (specifically quantum effects) would naturally destroy any time machine or wormhole the moment it tries to create a path to the past, thereby protecting causality.
60+
61+
## 5. Conclusion
62+
63+
Currently, we are all time travelers, moving forward at a rate of one second per second. While the math of General Relativity allows for the existence of "closed timelike curves," the energy requirements and the potential for logical contradictions make backward time travel a distant, if not impossible, dream. However, the study of these theories continues to push our understanding of the very fabric of reality.
64+
65+
---
66+
67+
### Sources & Further Reading
68+
69+
1. **Einstein, A. (1915).** *Die Grundlage der allgemeinen Relativitätstheorie.* Annalen der Physik.
70+
2. **Hawking, S. W. (1992).** *Chronology protection conjecture.* Physical Review D.
71+
3. **Novikov, I. D. (1991).** *Time machine and self-consistent evolution in problems with self-interaction.* Physical Review D.
72+
4. **Thorne, K. S. (1994).** *Black Holes and Time Warps: Einstein's Outrageous Legacy.* W. W. Norton & Company.
73+
5. **Gödel, K. (1949).** *An Example of a New Type of Cosmological Solutions of Einstein’s Field Equations of Gravitation.* Reviews of Modern Physics.
74+
6. **Tipler, F. J. (1974).** *Rotating cylinders and the possibility of global causality violation.* Physical Review D.

src/components/MermaidDiagram.jsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import React, { useEffect, useState } from 'react';
22
import mermaid from 'mermaid';
33

4-
const MermaidDiagram = ({ chart }) => {
4+
const MermaidDiagram = ({ chart, theme = 'dark', className }) => {
55
const [svg, setSvg] = useState('');
66
const [error, setError] = useState(null);
77

88
useEffect(() => {
99
mermaid.initialize({
1010
startOnLoad: false,
11-
theme: 'dark',
11+
theme: theme,
1212
securityLevel: 'loose',
1313
fontFamily: "'JetBrains Mono', monospace",
1414
useMaxWidth: false,
@@ -22,7 +22,7 @@ const MermaidDiagram = ({ chart }) => {
2222
fontSize: '16px',
2323
},
2424
});
25-
}, []);
25+
}, [theme]);
2626

2727
useEffect(() => {
2828
const renderChart = async () => {
@@ -52,8 +52,10 @@ const MermaidDiagram = ({ chart }) => {
5252
);
5353
}
5454

55+
const containerClass = className || "mermaid-container my-8 bg-gray-900/30 p-6 rounded-lg overflow-x-auto";
56+
5557
return (
56-
<div className="mermaid-container my-8 bg-gray-900/30 p-6 rounded-lg overflow-x-auto">
58+
<div className={containerClass}>
5759
<style>
5860
{`
5961
.mermaid-container svg {

src/pages/BlogPostPage.jsx

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,17 @@ const BlogPostPage = () => {
3333
return themeParam;
3434
}
3535

36-
// Auto-switch to luxe if global theme is luxe and user hasn't explicitly chosen another non-brutalist mode
37-
// or if they have selected 'luxe' explicitly in settings
38-
if (blogPostViewMode === 'luxe') return 'luxe';
39-
if (
40-
fezcodexTheme === 'luxe' &&
41-
(blogPostViewMode === 'brutalist' || blogPostViewMode === 'standard')
42-
)
36+
// If user has explicitly chosen a mode (other than standard), respect it
37+
if (blogPostViewMode !== 'standard') {
38+
return blogPostViewMode;
39+
}
40+
41+
// Otherwise, adapt to the global theme
42+
if (fezcodexTheme === 'luxe') {
4343
return 'luxe';
44+
}
4445

45-
return blogPostViewMode === 'standard' ? 'brutalist' : blogPostViewMode;
46+
return 'brutalist';
4647
})();
4748

4849
if (effectiveViewMode === 'luxe') {

src/pages/blog-views/DokumentBlogPostPage.jsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,13 @@ const DokumentBlogPostPage = () => {
162162
const isMermaid = match && match[1] === 'mermaid';
163163

164164
if (!inline && isMermaid) {
165-
return <MermaidDiagram chart={String(children).replace(/\n$/, '')} />;
165+
return (
166+
<MermaidDiagram
167+
chart={String(children).replace(/\n$/, '')}
168+
theme="neutral"
169+
className="my-8 border-2 border-black bg-white p-6 shadow-[4px_4px_0px_0px_rgba(0,0,0,1)] overflow-x-auto"
170+
/>
171+
);
166172
}
167173

168174
const handleCopy = () => {

src/pages/blog-views/DossierBlogPostPage.jsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,13 @@ const DossierBlogPostPage = () => {
208208
const isMermaid = match && match[1] === 'mermaid';
209209

210210
if (!inline && isMermaid) {
211-
return <MermaidDiagram chart={String(children).replace(/\n$/, '')} />;
211+
return (
212+
<MermaidDiagram
213+
chart={String(children).replace(/\n$/, '')}
214+
theme="neutral"
215+
className="my-8 border border-black bg-[#f0f0f0] p-6 shadow-[4px_4px_0px_0px_rgba(0,0,0,0.2)] overflow-x-auto"
216+
/>
217+
);
212218
}
213219

214220
const handleCopy = () => {

src/pages/blog-views/LuxeBlogPostPage.jsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,13 @@ const LuxeBlogPostPage = () => {
9292
const isMermaid = match && match[1] === 'mermaid';
9393

9494
if (!inline && isMermaid) {
95-
return <MermaidDiagram chart={String(children).replace(/\n$/, '')} />;
95+
return (
96+
<MermaidDiagram
97+
chart={String(children).replace(/\n$/, '')}
98+
theme="neutral"
99+
className="my-12 bg-white border border-[#1A1A1A]/5 p-6 rounded-sm overflow-x-auto shadow-sm"
100+
/>
101+
);
96102
}
97103

98104
const handleCopy = () => {

src/pages/blog-views/OldBlogPostPage.jsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import rehypeKatex from 'rehype-katex';
2121
import { calculateReadingTime } from '../../utils/readingTime';
2222
import { useAchievements } from '../../context/AchievementContext';
2323
import MarkdownLink from '../../components/MarkdownLink';
24+
import MermaidDiagram from '../../components/MermaidDiagram';
2425

2526
const OldBlogPostPage = () => {
2627
const { slug, seriesSlug, episodeSlug } = useParams();
@@ -186,6 +187,9 @@ const OldBlogPostPage = () => {
186187
};
187188

188189
if (!inline && match) {
190+
if (match[1] === 'mermaid') {
191+
return <MermaidDiagram chart={String(children).replace(/\n$/, '')} />;
192+
}
189193
return (
190194
<div className="relative group my-6">
191195
<div className="absolute -top-3 right-2 flex gap-2 opacity-0 group-hover:opacity-100 transition-opacity duration-200 z-10">

src/pages/brutalist-views/BrutalistSettingsPage.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,7 @@ const SettingsPage = () => {
363363
variant="brutalist"
364364
label="Select View"
365365
options={[
366+
{ label: 'Default', value: 'standard' },
366367
{ label: 'Brutalist', value: 'brutalist' },
367368
{ label: 'Editorial', value: 'editorial' },
368369
{ label: 'Classic', value: 'old' },

src/pages/luxe-views/LuxeSettingsPage.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,7 @@ const LuxeSettingsPage = () => {
316316
variant="paper"
317317
label="Select View"
318318
options={[
319+
{ label: 'Default', value: 'standard' },
319320
{ label: 'Brutalist', value: 'brutalist' },
320321
{ label: 'Editorial', value: 'editorial' },
321322
{ label: 'Classic', value: 'old' },

0 commit comments

Comments
 (0)