fix: rename notes to log

This commit is contained in:
2025-11-07 11:53:16 +01:00
parent 9b676693b8
commit b8afcb77f7
12 changed files with 1218 additions and 712 deletions

1526
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -13,10 +13,10 @@
"start": "node ./dist/server/entry.mjs"
},
"dependencies": {
"@astrojs/cloudflare": "^12.6.6",
"@astrojs/mdx": "^4.3.4",
"@astrojs/cloudflare": "^12.6.10",
"@astrojs/mdx": "^4.3.10",
"@tailwindcss/vite": "^4.1.11",
"astro": "^5.13.4",
"astro": "^5.15.4",
"astro-icon": "^1.1.5",
"katex": "^0.16.22",
"lucide-astro": "^0.536.0",

View File

@@ -15,4 +15,19 @@ const workshop = defineCollection({
}),
});
export const collections = { workshop };
const log = defineCollection({
loader: glob({ base: './src/content/log', pattern: '**/*.{md,mdx}' }),
schema: ({ image }) =>
z.object({
title: z.string(),
description: z.string(),
pubDate: z.coerce.date(),
updatedDate: z.coerce.date().optional(),
heroImage: image().optional(),
tags: z.array(z.string()).optional(),
private: z.boolean().optional()
}),
});
export const collections = { workshop, log };

View File

@@ -0,0 +1,108 @@
---
title: 'An Unconventional University'
description: 'My thoughts on Epitech after a year, and my next steps.'
pubDate: '2025-08-03'
tags: ['education', 'compsci', 'university']
heroImage: "../images/an-unconventional-university.png"
private: true
---
# Epitech, An Unconventional University
Its a strange thing to admit, but my first year at Epitech has been a weird kind of paradox.
On the one hand, its been a massive success. I got in late 2023, started in the fall of 2024, and dived right into the project-first world I thought I wanted. And I am, genuinely, learning a *ton* about how to build software.
But on the other hand, its felt like a complete mismatch. I'm discovering that when you strip away all the "boring" stuff—the math, the physics, the formal theory—you're left with an education that feels incomplete. It feels like I'm only getting half the story. And that missing half is, ironically, the part I'm starting to realize I really, really miss.
## The University
Epitech (which stands for École pour linformatique et les nouvelles technologies) has multiple campuses around France and in other countries; Im attending the one in Barcelona, which was the closest to me. A brief summary of my first year should give you a decent idea of how things work there. (It was formerly called the European Institute of Technology, which, in my opinion, sounds way cooler.)
Right at the very beginning, the first and only module or course we have is called the C Pool, or hell. Its a 5-week super-intensive course, and students usually spend 10-14h a day on campus, 6 days a week. Its called Pool because the goal is to swim (and drown) in new information. The passing requirement is really low.
There are almost no exams at Epitech. The way they evaluate is based on the projects and exercises of each module. In the Pool, for the first three weeks, each day we had a new set of exercises that had to be delivered 48h after. The second part of the Pool is the first Epitech project: recoding, from scratch, without using the standard library of C, the `printf()` function.
Projects in Epitech are divided in 4 parts:
* **Kick-off:** Presentation of the project (limitations, expected results…).
* **Bootstrap:** Small guided activity that helps the students get the first step of the project.
* **Follow-up:** A 2 to 20-minute meeting with a teacher or assistant to evaluate the current state of the project.
* **Defense:** Presentation of the project to a teacher. The teacher will ask questions related to any section of the code, checking for codebase knowledge and understanding, and looking for any reason to believe any member of the team has cheated (copying, using LLMs, etc.)
When the Pool ends, we have some modules to pick from.
**Semester 1:**
* Mathematics (basic Python implementation of mathematical formulae and concepts)
* Unix (recoding of Unix commands from scratch, such as ls, sudo or top)
* Elementary (DSA)
* Graphics (usually the most fun, as it is videogame and UI tools programming)
*
**Semester 2:**
* Mathematics
* Unix
* Graphics
* Cybersecurity
* Data Analysis
*
With a couple of exceptions, there are no exams. No lessons. Just a project, and yourself. Teachers (or rather, pedagogical team members which tend to be older students), are always there to help out with some issues, but not all of them, as they want the student to succeed on their own.
## My Opinion
**Methodology**
The method works, I guess. For the ones who are 100% passionate about just programming, its probably perfect. It definitely prepares you for the “real world” in that sense. And dont get me wrong, I love programming, I really do. Ive had a lot of fun and I really enjoyed many of the projects Ive done throughout my first year. Smashing my head against the wall and compiling the same code all over again hoping it works, its really enjoyable for me. Not sarcasm, I promise.
But Epitech its not for me. Not completely.
Maybe Im just weird, but I miss the theory. I miss the “why.” Epitech is all “how.” How to build this, how to use that tool, how to recode that command. I love programming, but back in high school I also loved mathematics, I loved physics, and Ive been fascinated by astronomy since I was a kid. Epitechs model doesnt really give me the opportunity to get in touch with that part, the part that loves the formal sciences. So I guess maybe thats whats lacking. It feels like Im learning to be a great carpenter, but Im never taught the physics of why a specific joint is strong or the chemistry of the wood, and I also want to know that.
I wont leave the university. My family and I have already put in quite an economic effort to get me here, and just leaving after one year feels wrong. So, its time to self-study. Its kind of ironic, isnt it? Being at a university but having to teach yourself all the foundational theory on the side.
Its really hard to self-study, especially when youre already swamped with Epitech projects. But I really want to try. I just find myself missing… well, the other stuff. I want to learn about mathematics, and physics, and just understand more about the universe. Thats the stuff that really scratches that part of my brain, and I havent had much of that this year. So thats the new plan: keep up with Epitechs project world, but start teaching myself that other stuff on the side, just out of curiosity. And hey, if it happens to pair well with programming, awesome. If not, thats fine too.
**Teamwork, or Something Like It**
I should also mention that almost none of this is solo. From the C Pool onwards, youre constantly thrown into group projects, sometimes with friends, sometimes with people youve never met. This is a huge part of the “real world” prep. You learn to use Git really fast, or you fail.
You also learn… lets say “people skills.” You have to deal with different personalities: the person who doesnt pull their weight, the one who wants to control everything, and the one whos just on a different wavelength. Its a massive source of stress, maybe even more than the code itself. Sometimes its great and you find people you really click with, other times its a complete disaster. But Ill admit, you learn a lot about communication and (not) losing your mind before a deadline. Its another one of those things thats probably good for me, even if I dont always enjoy it.
**Campus**
This might not be important to everyone Ive talked to, but the vibes are important as well. How you feel when youre there, you know? The Barcelona campus is… tiny. And why shouldnt it be? The promotion size ranges between 25 and 45 students a year, so that makes sense. Its also modern because, well, tech school. But it feels more like a youth activity center where people go to play board games and foosball (I think thats the English word for *futbolín*). It really reminds me of the one I have in my hometown. The colors of the walls, the kind of tables and chairs… it feels really “teenager”.
Of course, this is because of movies and books and stuff, but I just dont feel that “college vibe.” The people arent pulling all-nighters at the campus for an exam the next day. The work is still insane—we definitely pull all-nighters, just at home—but the campus itself is just like an office thats open during the day.
Lately, Ive found that I can access public university libraries, like the one at Universitat Pompeu Fabra (UPF). I especially love the Dipòsit de les Aigües building on their Ciutadella campus. Its this incredible old building, a former water tower, with super high brick arches. From the moment I walk onto that campus until I leave, I finally get that university feeling I was missing.
**Dont say it…**
Dont say it. I know.
Ive been replaying the last two years in my head a lot lately. And Im pretty sure I probably (no, surely) made a mistake. And its an expensive one in terms of money, which makes me feel guilty, and in terms of time, which just makes me feel a bit lost.
And Im sure it comes from a whole chain of smaller mistakes and bad assumptions. Back in high school, I was so focused on “I like computers, I should be a programmer” that I didnt really stop to think about what else I liked. I just wanted to get my hands on the code. When I found Epitech, I saw the marketing for a “modern” school with no exams, all practical projects, and a “Bachelor + Masters” degree.
And I *fell* for it. Its not that I wasnt aware of what I was getting into. I knew it was all-practical. But I was so aligned with that "future of tech" vibe at that point that I convinced myself it was all I needed. I didnt ask the right questions *of myself*. I didnt stop to understand what “no theory” would actually *feel* like, day-to-day. I just… didnt listen to that quieter part of me, the kid who loved astronomy and physics and just knowing how things worked. I thought I had to choose one or the other.
I know. Im aware. And now I keep replaying the alternative, the “normal” path.
I probably should have stayed on the normal course. Gone to a normal public university, like the UPF where I sneak in to use the library. I could have enrolled in a Physics or a Math degree. Id be sitting in massive lecture halls right now, actually learning the “why,” and Id be stressed and complaining about exams and theoretical homework just like everyone else.
And you know what? Id still be learning to code. Im 100% sure of it. Id be doing that on my own, at night, for fun. Id be building my own projects, finding coding challenges online, and probably joining a robotics club or something. Im that kind of person anyway.
That path probably would have been harder in some ways, but it would have been my kind of hard. It would have scratched that part of my brain and taught me how to code. Id be building the foundation and the practical skills at the same time, just in a different order.
But I didnt. I chose this way around. So, I guess it is what it is.
## So, Whats Next?
So thats my first year. Epitech is exactly what it claims to be: an unconventional university. Its less a school in the traditional sense and more of a non-stop programming bootcamp stretched over five years.
My next step is Year 2. Ive heard its more of the same, just with C++, more advanced projects, and probably even less sleep. Im going to stick with it. Im still learning a ton about how to be a competent, self-sufficient programmer. That part is working.
But Ill be running my own curriculum in parallel. My real university experience is going to be a double-degree: Epitech by day, and the physics and math books from the UPF library by night. I need to know the “why” just as much as the “how.”
Its an unconventional plan, I guess. But it feels right for an unconventional university.

View File

@@ -3,6 +3,7 @@ title: 'My tech'
description: 'My tech'
pubDate: '2025-08-03'
tags: []
private: true
---
Yinyoo KZ ZSN Pro (Blue with mic)

View File

@@ -1,105 +0,0 @@
---
title: 'An Unconventional University'
description: 'My thoughts on Epitech after a year, and my next steps.'
pubDate: '2025-08-03'
tags: ['education', 'compsci', 'university']
heroImage: "../images/an-unconventional-university.png"
---
# Epitech, An Unconventional University
I was accepted at Epitech in November 2023 and started in the fall of 2024. To give some context, this university offers a "Bachelor + Master's Degree" focused on numerous practical programming projects across a large variety of programming languages. The goal is to get students familiar with multiple fields in the world of software engineering.
## The University
Epitech (which stands for École pour l'informatique et les nouvelles technologies) has multiple campuses around France and in other countries; I'm attending the one in Barcelona, which was the closest to me. A brief summary of my first year should give you a decent idea of how things work there. (It was formerly called the European Institute of Technology, which, in my opinion, sounds way cooler.)
Right at the very beginning, the first and only module or course we have is called the C Pool, or hell. It's a 5-week super-intensive course, and students usually spend 10-14h a day on campus, 6 days a week. It's called Pool because the goal is to swim (and drown) in new information. The passing requirement is really low.
There are almost no exams at Epitech. The way they evaluate is based on the projects and exercises of each module. In the Pool, for the first three weeks, each day we had a new set of exercises that had to be delivered 48h after. The second part of the Pool is the first Epitech project: recoding, from scratch, without using the standard library of C, the printf() function.
**Projects in Epitech are divided in 4 parts**:
- Kick-off: Presentation of the project (limitations, expected results...).
- Bootstrap: Small guided activity that helps the students get the first step of the project.
- Follow-up: A 2 to 20-minute meeting with a teacher or assistant to evaluate the current state of the project.
- Defense: Presentation of the project to a teacher. The teacher will ask questions related to any section of the code, checking for codebase knowledge and understanding, and looking for any reason to believe any member of the team has cheated (copying, using LLMs, etc.)
When the Pool ends, we have some modules to pick from.
_Semester 1_:
- Mathematics (basic Python implementation of mathematical formulae and concepts)
- Unix (recoding of Unix commands from scratch, such as ls, sudo or top)
- Elementary (DSA)
- Graphics (usually the most fun, as it is videogame and UI tools programming)
- ...
_Semester 2_:
- Mathematics
- Unix
- Graphics
- Cybersecurity
- Data Analysis
- ...
With a couple of exceptions, there are no exams. No lessons. Just a project, and yourself. Teachers (or rather, pedagogical team members), are always there to help out with some issues, but not all of them, as they want the student to succeed on their own.
## My Opinion
### Methodology
The method works, I guess. For the ones who are 100% passionate about just programming, it's probably perfect. It definitely prepares you for the "real world" in that sense. And don't get me wrong, I love programming, I really do. I've had a lot of fun and I really enjoyed many of the projects I've done throughout my first year. Smashing my head against the wall and compiling the same code all over again hoping it works, it's really enjoyable for me. Not sarcasm, I promise.
But Epitech it's not for me. Not completely.
Maybe I'm just weird, but I miss the theory. I miss the "why." Epitech is all "how." How to build this, how to use that tool, how to recode that command. I love programming, but back in high school I also loved mathematics, I loved physics, and I've been fascinated by astronomy since I was a kid. Epitech's model doesn't really give me the opportunity to get in touch with that part, the part that loves the formal sciences. So I guess maybe that's what's lacking. It feels like I'm learning to be a great carpenter, but I'm never taught the physics of why a specific joint is strong or the chemistry of the wood, and I also want to know that.
I won't leave the university. My family and I have already put in quite an economic effort to get me here, and just leaving after one year feels wrong. So, it's time to self-study. It's kind of ironic, isn't it? Being at a university but having to teach yourself all the foundational theory on the side.
It's really hard to self-study, especially when you're already swamped with Epitech projects. But I really want to try. I just find myself missing... well, the other stuff. I want to learn about mathematics, and physics, and just understand more about the universe. That's the stuff that really scratches that part of my brain, and I haven't had much of that this year. So that's the new plan: keep up with Epitech's project world, but start teaching myself that other stuff on the side, just out of curiosity. And hey, if it happens to pair well with programming, awesome. If not, that's fine too.
### Teamwork, or Something Like It
I should also mention that almost none of this is solo. From the C Pool onwards, you're constantly thrown into group projects, sometimes with friends, sometimes with people you've never met. This is a huge part of the "real world" prep. You learn to use Git really fast, or you fail.
You also learn... let's say "people skills." You have to deal with different personalities: the person who doesn't pull their weight, the one who wants to control everything, and the one who's just on a different wavelength. It's a massive source of stress, maybe even more than the code itself. Sometimes it's great and you find people you really click with, other times it's a complete disaster. But I'll admit, you learn a lot about communication and (not) losing your mind before a deadline. It's another one of those things that's probably good for me, even if I don't always enjoy it.
### Campus
This might not be important to everyone I've talked to, but the vibes are important as well. How you feel when you're there, you know? The Barcelona campus is... tiny. And why shouldn't it be? The promotion size ranges between 25 and 45 students a year, so that makes sense. It's also modern because, well, tech school. But it feels more like a youth activity center where people go to play board games and foosball (I think that's the English word for futbolín). It really reminds me of the one I have in my hometown. The colors of the walls, the kind of tables and chairs... it feels really "teenager".
Of course, this is because of movies and books and stuff, but I just don't feel that "college vibe." The people aren't pulling all-nighters at the campus for an exam the next day. The work is still insane—we definitely pull all-nighters, just at home—but the campus itself is just like an office that's open during the day.
Lately, I've found that I can access public university libraries, like the one at Universitat Pompeu Fabra (UPF). I especially love the Dipòsit de les Aigües building on their Ciutadella campus. It's this incredible old building, a former water tower, with super high brick arches. From the moment I walk onto that campus until I leave, I finally get that university feeling I was missing.
## Don't say it...
Don't say it. I know.
I've been replaying the last two years in my head a lot lately. And I'm pretty sure I probably (no, surely) made a mistake. And it's an expensive one in terms of money, which makes me feel guilty, and in terms of time, which just makes me feel a bit lost.
And I'm sure it comes from a whole chain of smaller mistakes and bad assumptions. Back in high school, I was so focused on "I like computers, I should be a programmer" that I didn't really stop to think about what else I liked. I just wanted to get my hands on the code. When I found Epitech, I saw the marketing for a "modern" school with no exams, all practical projects, and a "Bachelor + Master's" degree. I thought, "Yeah, that's it. That's the future. That's practical."
I didn't research enough. I didn't ask the right questions. I didn't really understand what "no theory" meant in practice, day-to-day. I just... didn't listen to that quieter part of me, the kid who loved astronomy and physics and just knowing how things worked. I thought I had to choose one or the other.
I know. I'm aware. And now I keep replaying the alternative, the "normal" path.
I probably should have stayed on the normal course. Gone to a normal public university, like the UPF where I sneak in to use the library. I could have enrolled in a Physics or a Math degree. I'd be sitting in massive lecture halls right now, actually learning the "why," and I'd be stressed and complaining about exams and theoretical homework just like everyone else.
And you know what? I'd still be learning to code. I'm 100% sure of it. I'd be doing that on my own, at night, for fun. I'd be building my own projects, finding coding challenges online, and probably joining a robotics club or something. I'm that kind of person anyway.
That path probably would have been harder in some ways, but it would have been my kind of hard. It would have scratched that part of my brain and taught me how to code. I'd be building the foundation and the practical skills at the same time, just in a different order.
But I didn't. I chose this way around. So, I guess it is what it is.
## So, What's Next?
So that's my first year. Epitech is exactly what it claims to be: an unconventional university. It's less a school in the traditional sense and more of a non-stop programming bootcamp stretched over five years.
My next step is Year 2. I've heard it's more of the same, just with C++, more advanced projects, and probably even less sleep. I'm going to stick with it. I'm still learning a ton about how to be a competent, self-sufficient programmer. That part is working.
But I'll be running my own curriculum in parallel. My 'real' university experience is going to be a double-degree: Epitech by day, and the physics and math books from the UPF library by night. I need to know the "why" just as much as the "how."
It's an unconventional plan, I guess. But it feels right for an unconventional university.

View File

@@ -3,7 +3,7 @@ import "../styles/global.css"
import Layout from "../layouts/Layout.astro"
import NavigationCard from "../components/NavigationCard.astro"
import ExperienceCard from '../components/ExperienceCard.astro';
import { PencilRuler, LibraryBig, NotepadText, GraduationCap, Wrench, Feather, Briefcase, Mail, Github, Linkedin, ExternalLink } from 'lucide-astro';
import { PencilRuler, LibraryBig, ScrollText, GraduationCap, Wrench, Feather, Briefcase, Mail, Github, Linkedin, ExternalLink } from 'lucide-astro';
const navItems = [
{
@@ -19,10 +19,10 @@ const navItems = [
content: "Books and papers and resources I use to learn. What I read, and why it matters."
},
{
href: "/notes",
icon: NotepadText,
heading: "Notes",
content: "My explorations into the fundamental nature of everything."
href: "/log",
icon: ScrollText,
heading: "Log",
content: "Progress notes across study, work, and self, and some reflections."
}
];

View File

@@ -2,7 +2,7 @@
import "../styles/global.css"
import Layout from "../layouts/Layout.astro"
import NavigationCard from '../components/NavigationCard.astro';
import { Fingerprint, PencilRuler, LibraryBig, NotepadText } from 'lucide-astro';
import { Fingerprint, PencilRuler, LibraryBig, ScrollText } from 'lucide-astro';
const navItems = [
{
@@ -24,10 +24,10 @@ const navItems = [
content: "Books and papers and resources I use to learn. What I read, and why it matters."
},
{
href: "/notes",
icon: NotepadText,
heading: "Notes",
content: "My explorations into the fundamental nature of everything."
href: "/log",
icon: ScrollText,
heading: "Log",
content: "Progress notes across study, work, and self, and some reflections."
}
];
---

View File

@@ -2,7 +2,7 @@
import "../styles/global.css"
import Layout from "../layouts/Layout.astro"
import NavigationCard from '../components/NavigationCard.astro';
import { Fingerprint, PencilRuler, LibraryBig, NotepadText } from 'lucide-astro';
import { Fingerprint, PencilRuler, LibraryBig, ScrollText } from 'lucide-astro';
const navItems = [
{
@@ -24,10 +24,10 @@ const navItems = [
content: "Books and papers and resources I use to learn. What I read, and why it matters."
},
{
href: "/notes",
icon: NotepadText,
heading: "Notes",
content: "My explorations into the fundamental nature of everything."
href: "/log",
icon: ScrollText,
heading: "Log",
content: "Progress notes across study, work, and self, and some reflections."
}
];
---

View File

@@ -3,7 +3,7 @@ import { type CollectionEntry, getCollection, render } from 'astro:content';
import PostLayout from '../../layouts/PostLayout.astro';
export async function getStaticPaths() {
const posts = await getCollection('workshop');
const posts = await getCollection('log');
return posts.map((post) => ({
params: { slug: post.id },
props: post,

96
src/pages/log/index.astro Normal file
View File

@@ -0,0 +1,96 @@
---
import "../../styles/global.css"
import Layout from "../../layouts/Layout.astro"
import { getCollection } from 'astro:content';
import { Image } from 'astro:assets';
const posts = (await getCollection('log'))
.filter(post => !post.data.private)
.sort(
(a, b) => b.data.pubDate.valueOf() - a.data.pubDate.valueOf(),
);
---
<Layout>
<section class="max-w-7xl mb-10 sm:mb-14">
<h1 class="text-4xl sm:text-5xl font-bold mb-6 text-neutral-900 dark:text-neutral-100">Log</h1>
<p class="text-md text-neutral-600 dark:text-neutral-400 leading-relaxed text-justify max-w-3xl">
I used to think I was following a plan. Then I realized Id mostly been running on momentum, studying, coding, doing, without really asking why. At some point, I stopped feeling in charge of my own path; everything became reaction. A reaction to schedules, deadlines, expectations.
<br>
Lately, Ive been trying to rebuild some structure. To slow down, learn on purpose, and make sense of where all this effort is actually going. This log is part of that process,a way to connect the dots between theory and practice, body and mind, direction and doubt.
<br>
Its how Im trying to turn scattered effort into something deliberate again.
</p>
</section>
{/* Grid layout for posts */}
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 sm:gap-6">
{posts.map((post) => (
<article class="group rounded-xl border border-neutral-200 dark:border-neutral-700 bg-white dark:bg-neutral-800 hover:shadow-lg transition-all duration-300 overflow-hidden flex flex-col">
<a href={`/log/${post.id}/`} class="block flex flex-col h-full">
{/* Hero Image */}
{post.data.heroImage && (
<div class="aspect-video overflow-hidden">
<Image
src={post.data.heroImage}
alt={post.data.title}
width={800}
height={450}
class="w-full h-full object-cover grayscale group-hover:grayscale-0 group-hover:scale-105 transition-all duration-300"
loading="lazy"
/>
</div>
)}
<div class="p-4 sm:p-6 flex flex-col flex-grow">
{/* Title */}
<h2 class="text-lg sm:text-xl font-semibold text-neutral-900 dark:text-neutral-100 group-hover:text-neutral-700 dark:group-hover:text-neutral-300 transition-colors mb-2 line-clamp-2">
{post.data.title}
</h2>
{post.data.description && (
<p class="text-sm sm:text-base text-neutral-600 dark:text-neutral-400 mb-4 line-clamp-3 leading-relaxed flex-grow">
{post.data.description}
</p>
)}
{post.data.tags && post.data.tags.length > 0 && (
<div class="flex flex-wrap gap-1.5 mb-4">
{post.data.tags.slice(0, 3).map((tag) => (
<span class="inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-neutral-100 dark:bg-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-200 dark:hover:bg-neutral-600 transition-colors">
#{tag}
</span>
))}
{post.data.tags.length > 3 && (
<span class="inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-neutral-100 dark:bg-neutral-700 text-neutral-500 dark:text-neutral-400">
+{post.data.tags.length - 3}
</span>
)}
</div>
)}
{post.data.pubDate && (
<div class="flex items-center text-xs sm:text-sm text-neutral-500 dark:text-neutral-400 mt-auto">
<svg class="w-3 h-3 sm:w-4 sm:h-4 mr-1.5 sm:mr-2" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path>
</svg>
<time datetime={post.data.pubDate.toISOString()}>
{new Date(post.data.pubDate).toLocaleDateString('en-US', {
year: 'numeric',
month: 'short',
day: 'numeric'
})}
</time>
{post.data.updatedDate && (
<span class="ml-1 sm:ml-2 text-xs hidden sm:inline">
(Updated {new Date(post.data.updatedDate).toLocaleDateString('en-US', {
year: 'numeric',
month: 'short',
day: 'numeric'
})})
</span>
)}
</div>
)}
</div>
</a>
</article>
))}
</div>
</Layout>

View File

@@ -1,39 +0,0 @@
<!-- ---
import "../../styles/global.css"
import Layout from "../../layouts/Layout.astro"
import { getCollection } from 'astro:content';
const posts = (await getCollection('workshop')).sort(
(a, b) => b.data.pubDate.valueOf() - a.data.pubDate.valueOf(),
);
---
<Layout>
<section class="max-w-3xl mb-10 sm:mb-14">
<h1 class="text-4xl sm:text-5xl font-bold mb-6 text-neutral-900 dark:text-neutral-100">Workshop</h1>
<p class="text-lg text-neutral-600 dark:text-neutral-400 leading-relaxed text-justify">
I'm a second year computer science student at the European Institute of Technology, still trying to figure out my place but enjoying the journey through systems programming, webdev and other fields. Outside of code, my favorite writer is Isaac Asimov, my favorite piece of music is Spiegel im Spiegel, and my favorite book is The Witches by Roald Dahl. My favorite star is Vega because it was once our north star and will be again in about 12,000 years - something poetic about that cycle. And that's pretty much everything you need to know about me, except maybe my tea preferences, but we'll save that for another time... </p>
</section>
<ul class="space-y-4">
{posts.map((post) => (
<li class="p-4 rounded-xl border border-neutral-200 dark:border-neutral-700 bg-white dark:bg-neutral-800 hover:shadow-md transition-shadow">
<a href={`/workshop/${post.id}/`} class="block">
<h4 class="text-xl font-semibold text-neutral-900 dark:text-neutral-100 hover:text-neutral-700 dark:hover:text-neutral-300 transition-colors">
{post.data.title}
</h4>
{post.data.pubDate && (
<p class="text-sm text-neutral-500 dark:text-neutral-400 mt-1">
{new Date(post.data.pubDate).toLocaleDateString()}
</p>
)}
</a>
</li>
))}
</ul>
</Layout> -->
---
import WorkInProgress from "../../components/WorkInProgress.astro"
---
<WorkInProgress />