This commit is contained in:
Phapoom Saksri 2025-05-11 00:05:16 +07:00
parent 1cdc92684e
commit fa66815303
7 changed files with 175 additions and 27 deletions

View file

@ -1,7 +1,7 @@
---
title: "I'm back but not the same."
desc: This back to normal but not the same!
date: "28/01/2025"
date: "28-01-2025"
tags:
- website
- domain

View file

@ -1,7 +1,7 @@
---
title: "MCTham อาจจะเน่ากว่าที่คิด...ให้หนูพูดเถอะ"
desc: MCTham with endless drama....
date: "8/12/2024"
date: "8-12-2024"
tags:
- drama
- minecraft server

View file

@ -1,7 +1,7 @@
---
title: "MCTham more like MCCooked, let me explain"
desc: MCTham with endless drama....
date: "8/12/2024"
date: "8-12-2024"
tags:
- drama
- minecraft server

View file

@ -1,7 +1,7 @@
---
title: "Goodbye fusemeow.me, Hello blueskychan.dev"
desc: Hello world!
date: "28/12/2023"
date: "28-12-2023"
tags:
- new home
- new stuff

73
posts/timetomoveon.md Normal file
View file

@ -0,0 +1,73 @@
---
title: "Moving On from the Past"
desc: "Archiving my old 'educational' tools on GitHub — a personal reflection on growth, learning, and letting go."
date: "10-05-2025"
tags:
- GitHub
- Reflection
- Programming Journey
- Personal Life
- Growth
---
# Archiving My Old Projects: A Chapter Ends
> 📌 tl;dr: I'm officially archiving all my "for educational purpose" DDoS/DoS tools on GitHub. These projects helped me learn programming, but Ive outgrown them and no longer want them associated with my identity. Time to move on.
---
Well, it's finally time to talk about something that's been on my mind for a while:
I'm going to archive my old projects—especially the ones related to DDoS/DoS tools created for so-called "educational purposes."
## 🧠 Why This Matters
You might wonder: Why archive these now?
Let me explain the journey that brought me here, and why I think its time to move forward.
---
## 📖 The Beginning
Back in the days of "fusenice" (~2020), I didnt even own a computer. I used my phone and connected to remote desktops from Thai cloud providers like Xver and DriteStudio to experience Windows and explore programming.
Thats when I discovered Python—it looked fun! I started learning but quickly lost interest. I wasnt serious about it back then.
Fast-forward to 2021: I became curious about DDoS attacks after seeing services like MCStresser. I had no clue what I was doing—my first "tool" was literally a batch file running ping in a loop. Around this time, I also moved to Vultr and Azure.
Later in 2021, I got my first laptop (Core i3-330M, 4GB DDR3, 250GB HDD) for online classes. Thats when I seriously started learning to code again. I discovered C#—and for some reason, it just clicked. I also dabbled in C++ and Linux while trying to make better (but still pretty bad) attack tools.
Ironically, building those tools pushed me to learn how to code. I was constantly Googling, experimenting, and debugging.
---
## 💬 About Those Tools
Yes, youve probably seen the many DDoS/DoS tools on my GitHub. Some of you even followed me because of them.
One tool that got attention was DDoSPacket, which I made before I even started middle school. Looking back—it was terrible, I agree. I could write a much better version today, but...
---
## 🧹 Time to Move On
Ive considered rewriting DDoSPacket and similar tools for years—but now, Ive decided to archive them entirely. Here's why:
- 🧨 My identity has been unfairly tied to these tools. People call me an "attacker" without any proof—even when Ive done nothing wrong.
- ❌ The "educational purpose" label doesnt help. Many people still misuse these tools—I've even received Telegram DMs from people using them to attack PUBG servers.
- 🚫 I dont want legal or personal risks. Its 2025, Im in high school now, and Ive got responsibilities, schoolwork, and teachers to deal with. I dont want to be dragged down by an old repo.
- ❤️ Ive outgrown that phase. These days, I find real joy in learning Linux, C, and Rust.
---
## 🫂 Final Words
Writing those tools taught me a lot. They helped me grow and become who I am today—a true computer enjoyer.
But everything has its time—and that time is over.
If you still want to mess around, you can probably find Termux scripts online. But I wont support or help with anything related to DDoS anymore.
If you have questions or just want to chat, reach out: hello@mindhas403.dev
Thanks for reading. Take care, and see you around. <3

View file

@ -6,7 +6,7 @@ console.log("Sometimes this world is great, but sometimes it sucks.... :c")
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms))
sleep(2500).then(() => {
console.log(
"%cI 🫶 @ahenyao! (so much) <3",
"%c Something went wrong... :c",
"color: #FF69B4; font-size: 20px; font-weight: bold;",
)
console.log(

View file

@ -2,6 +2,7 @@ import fs from "fs"
import matter from "gray-matter"
import Link from "next/link"
import Head from "next/head"
import { useState } from "react"
export async function getStaticProps() {
const files = fs.readdirSync("posts")
@ -12,11 +13,29 @@ export async function getStaticProps() {
const slug = fileName.replace(".md", "")
const readFile = fs.readFileSync(`posts/${fileName}`, "utf-8")
const { data: frontmatter } = matter(readFile)
// Fix date formatting - handle both DD-MM-YYYY and other formats
let formattedDate = frontmatter.date;
if (frontmatter.date && frontmatter.date.includes('-')) {
const [day, month, year] = frontmatter.date.split('-');
if (day && month && year) {
formattedDate = new Date(`${month}/${day}/${year}`).toLocaleDateString('en-US', {
year: 'numeric',
month: 'long',
day: 'numeric'
});
}
}
return {
slug,
frontmatter,
frontmatter: {
...frontmatter,
formattedDate: formattedDate || frontmatter.date
},
}
})
.sort((a, b) => new Date(b.frontmatter.date) - new Date(a.frontmatter.date))
return {
props: {
@ -26,29 +45,85 @@ export async function getStaticProps() {
}
export default function Blog({ posts }) {
const [search, setSearch] = useState("")
const [sortBy, setSortBy] = useState("date")
const filteredPosts = posts
.filter(({ frontmatter }) =>
frontmatter.title.toLowerCase().includes(search.toLowerCase())
)
.sort((a, b) => {
if (sortBy === "letter") {
return a.frontmatter.title.localeCompare(b.frontmatter.title)
} else {
return new Date(b.frontmatter.date) - new Date(a.frontmatter.date)
}
})
return (
<>
<Head>
<title>My Blog :3</title>
<meta name="theme-color" content="#FFC0CB" />
<meta property="og:title" content="Blog" key="title" />
<meta
property="og:description"
content="My blog :3"
/>
</Head>
<div className="md:grid-cols-3 lg:grid-cols-4 p-4">
{posts.map(({ slug, frontmatter }) => (
<div
key={slug}
className="border-2 border-gray-300/80 bg-gray-700/50 rounded-xl shadow-lg overflow-hidden flex flex-col m-2 backdrop-blur-md"
>
<Link href={`/post/${slug}`}>
<h1 className="p-4 text-1xl font-bold">{frontmatter.title}</h1>
</Link>
<Head>
<title>My Blog :3</title>
<meta name="theme-color" content="#FFC0CB" />
<meta property="og:title" content="Blog" key="title" />
<meta property="og:description" content="My blog :3" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
</Head>
<div className="p-4 md:p-6 backdrop-blur-md bg-gray-800/50 rounded-lg max-w-7xl mx-auto">
<h1 className="text-2xl md:text-3xl font-bold mb-2 text-center text-[#FFC0CB]">Blog</h1>
<p className="text-center text-gray-300 mb-4 md:mb-6 text-sm md:text-base">All of my thoughts and writings :3</p>
{/* Search & Sort */}
<div className="flex flex-col gap-3 md:gap-4 md:flex-row items-start md:items-center mb-4 md:mb-6 bg-gray-700/50 p-3 md:p-4 rounded-lg">
<input
type="text"
placeholder="Search posts..."
value={search}
onChange={(e) => setSearch(e.target.value)}
className="px-3 py-2 md:px-4 md:py-2 rounded-xl border border-gray-300 bg-white/80 text-black shadow-md focus:outline-none focus:ring-2 focus:ring-pink-300 flex-grow text-sm md:text-base"
/>
<select
value={sortBy}
onChange={(e) => setSortBy(e.target.value)}
className="px-3 py-2 md:px-4 md:py-2 rounded-xl border border-gray-300 bg-white/80 text-black shadow-md focus:outline-none focus:ring-2 focus:ring-pink-300 text-sm md:text-base"
>
<option value="date">Sort by Date</option>
<option value="letter">Sort by Alphabetical</option>
</select>
</div>
))}
</div>
{/* Posts */}
{filteredPosts.length > 0 ? (
<div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-3 md:gap-4">
{filteredPosts.map(({ slug, frontmatter }) => (
<Link
key={slug}
href={`/post/${slug}`}
className="border-2 border-gray-300/80 bg-gray-700/50 hover:bg-gray-600/70 transition-all duration-300 rounded-xl shadow-lg overflow-hidden flex flex-col backdrop-blur-md hover:shadow-pink-500/20 hover:border-pink-300/50 group"
>
<div className="p-3 md:p-4 flex flex-col h-full">
<h1 className="text-lg md:text-xl font-bold text-white group-hover:text-[#FFC0CB] transition-colors duration-300 line-clamp-2">
{frontmatter.title}
</h1>
<p className="text-xs md:text-sm text-gray-300 mt-1 mb-2 md:mb-3">
{frontmatter.formattedDate}
</p>
{frontmatter.description && (
<p className="text-gray-400 text-xs md:text-sm mt-auto line-clamp-2">
{frontmatter.description}
</p>
)}
</div>
</Link>
))}
</div>
) : (
<div className="text-center py-6 md:py-8 bg-gray-700/30 rounded-lg">
<p className="text-gray-300 text-base md:text-lg">No posts found matching your search.</p>
</div>
)}
</div>
</>
)
}
}