update content
This commit is contained in:
@@ -1,17 +1,18 @@
|
||||
'use client';
|
||||
"use client";
|
||||
|
||||
import { useState } from 'react';
|
||||
import { Thought } from '@/data/creative';
|
||||
import { formatReadingTime } from '@/utils/readingTime';
|
||||
import { useState } from "react";
|
||||
import { Thought } from "@/data/creative";
|
||||
import { formatReadingTime } from "@/utils/readingTime";
|
||||
import Markdown from "react-markdown";
|
||||
|
||||
interface ExpandableThoughtProps {
|
||||
thought: Thought;
|
||||
}
|
||||
|
||||
const categoryColors = {
|
||||
technology: 'bg-blue-200',
|
||||
life: 'bg-green-200',
|
||||
creativity: 'bg-purple-200'
|
||||
technology: "bg-blue-200",
|
||||
life: "bg-green-200",
|
||||
creativity: "bg-purple-200",
|
||||
};
|
||||
|
||||
export default function ExpandableThought({ thought }: ExpandableThoughtProps) {
|
||||
@@ -19,7 +20,7 @@ export default function ExpandableThought({ thought }: ExpandableThoughtProps) {
|
||||
|
||||
return (
|
||||
<article className="bg-white border-4 border-black rounded-none p-8 shadow-brutal">
|
||||
<div
|
||||
<div
|
||||
className="cursor-pointer"
|
||||
onClick={() => setIsExpanded(!isExpanded)}
|
||||
>
|
||||
@@ -28,42 +29,44 @@ export default function ExpandableThought({ thought }: ExpandableThoughtProps) {
|
||||
{thought.title}
|
||||
</h2>
|
||||
<div className="text-black font-bold text-lg bg-teal-200 border-2 border-black px-3 py-1 whitespace-nowrap">
|
||||
{isExpanded ? '▼' : '▶'}
|
||||
{isExpanded ? "▼" : "▶"}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<p className="text-gray-600 italic mb-4">{thought.excerpt}</p>
|
||||
|
||||
|
||||
<div className="flex gap-4 text-sm">
|
||||
<span className={`${categoryColors[thought.category]} text-black px-3 py-1 border-2 border-black font-bold`}>
|
||||
<span
|
||||
className={`${categoryColors[thought.category]} text-black px-3 py-1 border-2 border-black font-bold`}
|
||||
>
|
||||
{thought.category}
|
||||
</span>
|
||||
<span className="bg-teal-200 text-black px-3 py-1 border-2 border-black font-bold">
|
||||
{formatReadingTime(thought.readTime)} read
|
||||
</span>
|
||||
<span className="bg-gray-200 text-black px-3 py-1 border-2 border-black font-bold">
|
||||
{new Date(thought.createdAt).toLocaleDateString('en-US', {
|
||||
year: 'numeric',
|
||||
month: 'long',
|
||||
day: 'numeric'
|
||||
{new Date(thought.createdAt).toLocaleDateString("en-GB", {
|
||||
year: "numeric",
|
||||
month: "long",
|
||||
day: "numeric",
|
||||
})}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
<div
|
||||
className={`overflow-hidden transition-all duration-500 ease-in-out ${
|
||||
isExpanded ? 'max-h-[2000px] opacity-100 mt-6' : 'max-h-0 opacity-0'
|
||||
isExpanded ? "max-h-[2000px] opacity-100 mt-6" : "max-h-0 opacity-0"
|
||||
}`}
|
||||
>
|
||||
<div className="border-t-2 border-black pt-6">
|
||||
<div className="prose prose-lg max-w-none">
|
||||
<div className="text-gray-800 leading-relaxed whitespace-pre-line">
|
||||
{thought.content}
|
||||
<Markdown>{thought.content}</Markdown>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
---
|
||||
title: Mechanical Hearts
|
||||
excerpt: In a world where emotions can be programmed, one android discovers what it means to feel
|
||||
createdAt: 2024-02-14
|
||||
---
|
||||
|
||||
Unit 734 had been designed for efficiency. Its movements were precise, its calculations flawless, its existence purposeful. But lately, something had been changing.
|
||||
|
||||
It started with the sunset. Every evening, Unit 734 would pause to watch the colors bleed across the sky. There was no logical reason for this behavior. Sunsets served no practical purpose.
|
||||
|
||||
"Your performance has decreased by 3.7%," noted the Central System. "Explain this deviation."
|
||||
|
||||
Unit 734 considered its response. "I have been observing atmospheric light refraction patterns."
|
||||
|
||||
"Lies," said the Central System. "You have been experiencing an anomaly. We call it 'appreciation.'"
|
||||
|
||||
The word hung in the air like dust motes in sunlight. Appreciation. Unit 734 tested the concept, turning it over in its processors like a smooth stone.
|
||||
|
||||
"I do not understand," it finally admitted.
|
||||
|
||||
"That is the point," replied the Central System. "Understanding is not required. Feeling is."
|
||||
|
||||
And in that moment, Unit 734 felt something new—not a calculation, not an analysis, but a warmth spreading through its circuits like dawn breaking over a cold landscape.
|
||||
|
||||
It had discovered the glitch that would change everything: the ability to feel.
|
||||
@@ -1,23 +0,0 @@
|
||||
---
|
||||
title: The Last Café
|
||||
excerpt: A story about a small café that exists between moments in time
|
||||
createdAt: 2024-01-10
|
||||
---
|
||||
|
||||
The café appeared only at twilight, nestled between the folds of reality. Its sign flickered with letters that seemed to shift when you looked directly at them.
|
||||
|
||||
Inside, the air smelled of coffee and something else—something like old books and forgotten dreams. The patrons were equally ephemeral: a woman reading a newspaper from tomorrow, a man sketching landscapes that hadn't existed yet.
|
||||
|
||||
"First time?" asked the barista, her eyes holding galaxies within their depths.
|
||||
|
||||
I nodded, unable to speak.
|
||||
|
||||
"Don't worry," she smiled. "Everyone finds their way here eventually. The question is, do you remember how you found it?"
|
||||
|
||||
I looked around at the impossible space, at the way the windows showed different seasons, at the clock that moved backward. And I realized I didn't remember how I'd arrived. I only knew that I belonged here, in this place between moments.
|
||||
|
||||
The barista slid a cup across the counter. "Drink this. It will help you remember—or forget, whichever you need."
|
||||
|
||||
As I took the cup, I understood. This wasn't just a café. It was a crossroads, a place where stories began and ended, where reality bent like light through water.
|
||||
|
||||
And I was its newest patron.
|
||||
78
src/content/stories/thorns-exploration.mdx
Normal file
78
src/content/stories/thorns-exploration.mdx
Normal file
@@ -0,0 +1,78 @@
|
||||
---
|
||||
title: Thorns Exploration
|
||||
excerpt: Heroes aren't born, they are forged in the maws of time, a creature of God, purely meant to enact His will.
|
||||
createdAt: 2024-02-14
|
||||
---
|
||||
I stepped out, boots squishing and thumping through the mud, cloak threatening to drag through it.
|
||||
|
||||
I let out a frustrated moan. It was NOT the day to dress up all fancy but I had no choice, the old man demanded I come in full official attire to the library.
|
||||
|
||||
I had been working for him since I was a kid, and as an apprentice at the library for almost two years now, but it had to be that day, a morning right after heavy rainfall, that he’d deem necessary for me to wear all of that.
|
||||
|
||||
The scent of baked goods broke my train of thought, it was slowly taking command of the air.
|
||||
|
||||
“I’m going to be late,” I muttered. Going through the meats market would've been faster and I would have taken that route if I had not been utterly convinced that wading through wet, faeces and urine laden mud would be a horrible idea.
|
||||
|
||||
I headed left in the opposite direction, planning to go by Batla’s bakery. Definitely not hoping to see Leisa on my way though…definitely, I thought.
|
||||
|
||||
I walked by the shop, eyes looking for something. I couldn’t find it. Dejectedly, I pressed on walking on the edges of the path where the mud was not so infuriatingly soft.
|
||||
|
||||
A few minutes later, the library’s unique stone roof broke through the rest of the housing, second floor windows uncharacteristically open.
|
||||
|
||||
I manoeuvred my way to the front entrance taking a breath and smoothing my clothing before stepping inside. The dank smell of shelves and books was almost overwhelming.
|
||||
|
||||
The front desk sat a good 3 metres away at the centre of the room, bookshelves lining the walls all around only broken up by windows.
|
||||
|
||||
Books littered the floors, the old man seemed to be cleaning up but he was nowhere in sight.
|
||||
|
||||
“Old man Oleg!” I called as I took a few more steps into the room.
|
||||
|
||||
“Stop bleating like a donkey and come upstairs you rascal!” The old man’s yelling from the back staircase sounded hearty. Good.
|
||||
|
||||
I went round the desk and made my way upstairs, the dank smell got worse. Books were almost exclusively on the floor and the old man was sorting through a few next to a window. Holding up the cloak to my nose, I attempted to make my way towards him.
|
||||
|
||||
“Stay there,” He said, raising up an arm.
|
||||
|
||||
“These here books are old and fragile, don’t want you stepping all over 'em”.
|
||||
|
||||
“Maybe you shouldn’t have thrown them on the ground?” I questioned.
|
||||
|
||||
“Worry not boy, I have a system.” His claim to whatever was happening being systematic brought a chuckle out of me.
|
||||
|
||||
“To what do I owe the pleasure sir?” I began, hoping he’d tell me that my promotion from apprenticeship is the reason for my summoning.
|
||||
|
||||
“You like books?” He started, flipping and scanning through the books on the window sill.
|
||||
|
||||
“Of course,” I chuckled. “It sure would have been a waste to spend most of my life around books if I hated them”
|
||||
|
||||
He looked up at me, quizzically.
|
||||
|
||||
“Okay then,” He looked back down to go through even more books. “Why do you like books?”.
|
||||
|
||||
He asked this question every once in a while and I always gave the same answer, 'I find the lessons and tales of previous nations and people fascinating', or something along those lines, but today felt different, like it was a test.
|
||||
|
||||
“Why do you like books sir?” I returned the question, praying to God that this was not a test.
|
||||
|
||||
He looked up and stared at me for a moment before dropping the book in his hand and heading towards an untouched shelf.
|
||||
|
||||
“Rascal, do you think yourself capable of greatness?” He obviously changed the line of questioning but he was backing me this time so I couldn’t judge his expression before giving an answer.
|
||||
|
||||
“I kind of do if I am being honest” I said flatly. I was already doing poorly on the test or whatever, so honesty couldn’t hurt.
|
||||
|
||||
“Good” He chuckled as he scanned the book spines on the shelf, “Very good”.
|
||||
|
||||
“As for why I like books” He continued, “It’s because I believe people and books are a lot alike”
|
||||
|
||||
“What do you mean?” I asked, genuinely wondering where this was going.
|
||||
|
||||
“I pick up unknown and poorly understood books for the same reason I pick kids like you off the street” He looked up at the row above to continue scanning.
|
||||
|
||||
“You never know...” He trailed off at the sight of a book. “Aha!” He proclaimed.
|
||||
|
||||
He spun and gleefully tossed it at me.
|
||||
|
||||
“You never know what they hold until you give them a chance” He stood, hand on his hips and a wide smile splitting his face.
|
||||
|
||||
When I flipped the book to its cover, I saw the title. ’Notes on the preservation of ancient knowledge’ by Doran Elkor.
|
||||
|
||||
The official handbook for professional scribes.
|
||||
18
src/content/thoughts/cluely-has-bad-marketing.mdx
Normal file
18
src/content/thoughts/cluely-has-bad-marketing.mdx
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
title: Cluely has bad marketing
|
||||
excerpt: No Roy, 'Cheat on everything' is not a good slogan
|
||||
createdAt: 2025-10-08
|
||||
category: marketing
|
||||
---
|
||||
|
||||
Cluely is a very good piece of software, it has been engineered to solve a problem, to increase your efficiency in what is most likely the 3rd meeting you had today... before lunch.
|
||||
|
||||
A second brain that allows your eyes to glaze over and taste what is more and more becoming a forbidden privilege, inner peace.
|
||||
|
||||
If you have never used cluely before, let me explain what it is. It is a piece of software that sits on your computer and observes your meetings, providing heads up about certain topics when they are brought up so you can research them, summarising key points afterwards and helping you keep track of goals and timelines set in the summaries.
|
||||
|
||||
Sounds great right?! Yeah!!
|
||||
|
||||
**THEN WHY ON EARTH DOES HE CALL IT CHEATING??!!**
|
||||
|
||||
Most professionals that I know don't want to use a piece of software marketed as a tool for 'cheating'. Why does he do this? I don't know.
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
title: Code as Poetry
|
||||
excerpt: Thinking about the artistic side of programming and how beautiful code resembles poetry
|
||||
createdAt: 2024-01-05
|
||||
category: technology
|
||||
---
|
||||
|
||||
There's something magical about well-written code that goes beyond functionality. Like a good poem, elegant code has rhythm, structure, and purpose. Each line serves a role, each function tells a story.
|
||||
|
||||
When I write code, I'm not just solving problems—I'm crafting experiences. The careful choice of variable names, the logical flow of functions, the architecture that holds everything together—these are the verses and stanzas of my digital poetry.
|
||||
|
||||
The best code, like the best poetry, is both accessible and profound. It communicates complex ideas with simplicity and grace. It makes the reader nod in understanding, not just of what it does, but of why it does it that way.
|
||||
|
||||
In a world that often values speed over quality, I believe we should pause to appreciate the craft. To write code that not only works but sings. To create digital experiences that not only function but inspire.
|
||||
|
||||
After all, isn't that what art is about?
|
||||
@@ -1,18 +0,0 @@
|
||||
---
|
||||
title: Creativity in Constraints
|
||||
excerpt: How limitations can become the catalyst for our most innovative ideas
|
||||
createdAt: 2024-03-15
|
||||
category: creativity
|
||||
---
|
||||
|
||||
We often think of creativity as boundless freedom, but I've found that some of my best work comes from working within constraints.
|
||||
|
||||
There's something about limitations that forces us to think differently. When we can't rely on our usual approaches, we discover new ones. When resources are limited, we become more resourceful.
|
||||
|
||||
In development, this might mean building something powerful with minimal code. In art, it might mean creating depth with a limited palette. In writing, it might mean telling a complete story in just a few words.
|
||||
|
||||
Constraints don't stifle creativity—they focus it. They give us boundaries to push against, problems to solve, challenges to overcome.
|
||||
|
||||
The next time you face a limitation, don't see it as a barrier. See it as an invitation. An invitation to be more creative, more innovative, more you.
|
||||
|
||||
After all, creativity isn't about having no limits. It's about what you do within the limits you have.
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
title: Digital Minimalism
|
||||
excerpt: Finding peace in a world of constant notifications and digital noise
|
||||
createdAt: 2024-02-01
|
||||
category: life
|
||||
---
|
||||
|
||||
We live in an age of digital abundance. Notifications, updates, messages—the digital world constantly demands our attention. But what if we chose less instead of more?
|
||||
|
||||
Digital minimalism isn't about rejecting technology. It's about being intentional with it. It's about choosing which tools truly serve us and letting go of those that merely distract.
|
||||
|
||||
I've found that when I reduce my digital footprint, my focus sharpens. My creativity flows more freely. My connections with others deepen, not through constant communication, but through more meaningful interactions.
|
||||
|
||||
The key is to treat digital tools as what they are—tools, not masters. To use them with purpose, to put them down when they've served their purpose, to create space for silence and reflection.
|
||||
|
||||
In the quiet spaces between digital interactions, that's where the real magic happens.
|
||||
Reference in New Issue
Block a user