The best Hacker News stories from Show from the past day

Go back

Latest posts:

Show HN: MyraOS – My 32-bit operating system in C and ASM (Hack Club project)

Hi HN, I’m Dvir, a young developer. Last year, I got rejected after a job interview because I lacked some CPU knowledge. After that, I decided to deepen my understanding in the low level world and learn how things work under the hood. I decided to try and create an OS in C and ASM as a way to broaden my knowledge in this area.<p>This took me on the most interesting ride, where I’ve learned about OS theory and low level programming on a whole new level. I’ve spent hours upon hours, blood and tears, reading different OS theory blogs, learning low level concepts, debugging, testing and working on this project.<p>I started by reading University books and online blogs, while also watching videos. Some sources that helped me out were OSDev Wiki (<a href="https://wiki.osdev.org/Expanded_Main_Page" rel="nofollow">https://wiki.osdev.org/Expanded_Main_Page</a>), OSTEP (<a href="https://pages.cs.wisc.edu/~remzi/OSTEP" rel="nofollow">https://pages.cs.wisc.edu/~remzi/OSTEP</a>), open-source repositories like MellOS and LemonOS (more advanced), DoomGeneric, and some friends that have built an OS before.<p>This part was the longest, but also the easiest. I felt like I understood the theory, but still could not connect it into actual code. Sitting down and starting to code was difficult, but I knew that was the next step I needed to take! I began by working on the bootloader, which is optional since you can use a pre-made one (I switched to GRUB later), but implementing it was mainly for learning purposes and to warm up on ASM. These were my steps after that:<p><pre><code> 1) I started implementing the VGA driver, which gave me the ability to display text. 2) Interrupts - IDT, ISR, IRQ, which signal to the CPU that a certain event occurred and needs handling (such as faults, hardware connected device actions, etc). 3) Keyboard driver, which enables me to display the same text I type on my keyboard. 4) PMM (Physical memory management) 5) Paging and virtual memory management 6) RTC driver - clock addition (which was, in my opinion, optional) 7) PIT driver - Ticks every certain amount of time, and also 8) FS (File System) and physical HDD drivers - for the HDD I chose PATA (HDD communication protocol) for simplicity (SATA is a newer but harder option as well). For the FS I chose EXT2 (The Second Extended FileSystem), which is a foundational linux FS structure introduced in 1993. This FS structure is not the simplest, but is very popular in hobby-OS, it is very supported, easy to set up and upgrade to newer EXT versions, it has a lot of materials online, compared to other options. This was probably the longest and largest feature I had worked on. 9) Syscall support. 10) Libc implementation. 11) Processing and scheduling for multiprocessing. 12) Here I also made a shell to test it all. </code></pre> At this point, I had a working shell, but later decided to go further and add a GUI! I was working on the FS (stage 8), when I heard about Hack Club’s Summer of Making (SoM). This was my first time practicing in HackClub, and I want to express my gratitude and share my enjoyment of participating in it.<p>At first I just wanted to declare the OS as finished after completing the FS, and a bit of other drivers, but because of SoM my perspective was changed completely. Because of the competition, I started to think that I needed to ship a complete OS, with processing, GUI and the bare minimum ability to run Doom. I wanted to show the community in SoM how everything works.<p>Then I worked on it for another 2 months, after finishing the shell, just because of SoM!, totalling my project to almost 7 months of work. At this time I added full GUI support, with dirty rectangles and double buffering, I made a GUI mouse driver, and even made a full Doom port! things I would've never even thought about without participating in SoM.<p>This is my SoM project: <a href="https://summer.hackclub.com/projects/5191" rel="nofollow">https://summer.hackclub.com/projects/5191</a>.<p>Every project has challenges, especially in such a low level project. I had to do a lot of debugging while working on this, and it is no easy task. I highly recommend using GDB which helped me debug so many of my problems, especially memory ones.<p>The first major challenge I encountered was during the coding of processes - I realized that a lot of my paging code was completely wrong, poorly tested, and had to be reworked. During this time I was already in the competition and it was difficult keeping up with devlogs and new features while fixing old problems in a code I wrote a few months ago.<p>Some more major problems occurred when trying to run Doom, and unlike the last problem, this was a disaster. I had random PFs and memory problems, one run could work while the next one wouldn’t, and the worst part is that it was only on the Doom, and not on processes I created myself. These issues took a lot of time to figure out. I began to question the Doom code itself, and even thought about giving up on the whole project.<p>After a lot of time spent debugging, I fixed the issues. It was a combination of scheduling issues, Libc issues and the Qemu not having enough (wrongfully assuming 128MB for the whole OS was enough).<p>Finally, I worked throughout all the difficulties, and shipped the project! In the end, the experience working on this project was amazing. I learned a lot, grew and improved as a developer, and I thank SoM for helping to increase my motivation and make the project memorable and unique like I never imagined it would be.<p>The repo is at <a href="https://github.com/dvir-biton/MyraOS" rel="nofollow">https://github.com/dvir-biton/MyraOS</a>. I’d love to discuss any aspect of this with you all in the comments!

Show HN: MyraOS – My 32-bit operating system in C and ASM (Hack Club project)

Hi HN, I’m Dvir, a young developer. Last year, I got rejected after a job interview because I lacked some CPU knowledge. After that, I decided to deepen my understanding in the low level world and learn how things work under the hood. I decided to try and create an OS in C and ASM as a way to broaden my knowledge in this area.<p>This took me on the most interesting ride, where I’ve learned about OS theory and low level programming on a whole new level. I’ve spent hours upon hours, blood and tears, reading different OS theory blogs, learning low level concepts, debugging, testing and working on this project.<p>I started by reading University books and online blogs, while also watching videos. Some sources that helped me out were OSDev Wiki (<a href="https://wiki.osdev.org/Expanded_Main_Page" rel="nofollow">https://wiki.osdev.org/Expanded_Main_Page</a>), OSTEP (<a href="https://pages.cs.wisc.edu/~remzi/OSTEP" rel="nofollow">https://pages.cs.wisc.edu/~remzi/OSTEP</a>), open-source repositories like MellOS and LemonOS (more advanced), DoomGeneric, and some friends that have built an OS before.<p>This part was the longest, but also the easiest. I felt like I understood the theory, but still could not connect it into actual code. Sitting down and starting to code was difficult, but I knew that was the next step I needed to take! I began by working on the bootloader, which is optional since you can use a pre-made one (I switched to GRUB later), but implementing it was mainly for learning purposes and to warm up on ASM. These were my steps after that:<p><pre><code> 1) I started implementing the VGA driver, which gave me the ability to display text. 2) Interrupts - IDT, ISR, IRQ, which signal to the CPU that a certain event occurred and needs handling (such as faults, hardware connected device actions, etc). 3) Keyboard driver, which enables me to display the same text I type on my keyboard. 4) PMM (Physical memory management) 5) Paging and virtual memory management 6) RTC driver - clock addition (which was, in my opinion, optional) 7) PIT driver - Ticks every certain amount of time, and also 8) FS (File System) and physical HDD drivers - for the HDD I chose PATA (HDD communication protocol) for simplicity (SATA is a newer but harder option as well). For the FS I chose EXT2 (The Second Extended FileSystem), which is a foundational linux FS structure introduced in 1993. This FS structure is not the simplest, but is very popular in hobby-OS, it is very supported, easy to set up and upgrade to newer EXT versions, it has a lot of materials online, compared to other options. This was probably the longest and largest feature I had worked on. 9) Syscall support. 10) Libc implementation. 11) Processing and scheduling for multiprocessing. 12) Here I also made a shell to test it all. </code></pre> At this point, I had a working shell, but later decided to go further and add a GUI! I was working on the FS (stage 8), when I heard about Hack Club’s Summer of Making (SoM). This was my first time practicing in HackClub, and I want to express my gratitude and share my enjoyment of participating in it.<p>At first I just wanted to declare the OS as finished after completing the FS, and a bit of other drivers, but because of SoM my perspective was changed completely. Because of the competition, I started to think that I needed to ship a complete OS, with processing, GUI and the bare minimum ability to run Doom. I wanted to show the community in SoM how everything works.<p>Then I worked on it for another 2 months, after finishing the shell, just because of SoM!, totalling my project to almost 7 months of work. At this time I added full GUI support, with dirty rectangles and double buffering, I made a GUI mouse driver, and even made a full Doom port! things I would've never even thought about without participating in SoM.<p>This is my SoM project: <a href="https://summer.hackclub.com/projects/5191" rel="nofollow">https://summer.hackclub.com/projects/5191</a>.<p>Every project has challenges, especially in such a low level project. I had to do a lot of debugging while working on this, and it is no easy task. I highly recommend using GDB which helped me debug so many of my problems, especially memory ones.<p>The first major challenge I encountered was during the coding of processes - I realized that a lot of my paging code was completely wrong, poorly tested, and had to be reworked. During this time I was already in the competition and it was difficult keeping up with devlogs and new features while fixing old problems in a code I wrote a few months ago.<p>Some more major problems occurred when trying to run Doom, and unlike the last problem, this was a disaster. I had random PFs and memory problems, one run could work while the next one wouldn’t, and the worst part is that it was only on the Doom, and not on processes I created myself. These issues took a lot of time to figure out. I began to question the Doom code itself, and even thought about giving up on the whole project.<p>After a lot of time spent debugging, I fixed the issues. It was a combination of scheduling issues, Libc issues and the Qemu not having enough (wrongfully assuming 128MB for the whole OS was enough).<p>Finally, I worked throughout all the difficulties, and shipped the project! In the end, the experience working on this project was amazing. I learned a lot, grew and improved as a developer, and I thank SoM for helping to increase my motivation and make the project memorable and unique like I never imagined it would be.<p>The repo is at <a href="https://github.com/dvir-biton/MyraOS" rel="nofollow">https://github.com/dvir-biton/MyraOS</a>. I’d love to discuss any aspect of this with you all in the comments!

Show HN: MyraOS – My 32-bit operating system in C and ASM (Hack Club project)

Hi HN, I’m Dvir, a young developer. Last year, I got rejected after a job interview because I lacked some CPU knowledge. After that, I decided to deepen my understanding in the low level world and learn how things work under the hood. I decided to try and create an OS in C and ASM as a way to broaden my knowledge in this area.<p>This took me on the most interesting ride, where I’ve learned about OS theory and low level programming on a whole new level. I’ve spent hours upon hours, blood and tears, reading different OS theory blogs, learning low level concepts, debugging, testing and working on this project.<p>I started by reading University books and online blogs, while also watching videos. Some sources that helped me out were OSDev Wiki (<a href="https://wiki.osdev.org/Expanded_Main_Page" rel="nofollow">https://wiki.osdev.org/Expanded_Main_Page</a>), OSTEP (<a href="https://pages.cs.wisc.edu/~remzi/OSTEP" rel="nofollow">https://pages.cs.wisc.edu/~remzi/OSTEP</a>), open-source repositories like MellOS and LemonOS (more advanced), DoomGeneric, and some friends that have built an OS before.<p>This part was the longest, but also the easiest. I felt like I understood the theory, but still could not connect it into actual code. Sitting down and starting to code was difficult, but I knew that was the next step I needed to take! I began by working on the bootloader, which is optional since you can use a pre-made one (I switched to GRUB later), but implementing it was mainly for learning purposes and to warm up on ASM. These were my steps after that:<p><pre><code> 1) I started implementing the VGA driver, which gave me the ability to display text. 2) Interrupts - IDT, ISR, IRQ, which signal to the CPU that a certain event occurred and needs handling (such as faults, hardware connected device actions, etc). 3) Keyboard driver, which enables me to display the same text I type on my keyboard. 4) PMM (Physical memory management) 5) Paging and virtual memory management 6) RTC driver - clock addition (which was, in my opinion, optional) 7) PIT driver - Ticks every certain amount of time, and also 8) FS (File System) and physical HDD drivers - for the HDD I chose PATA (HDD communication protocol) for simplicity (SATA is a newer but harder option as well). For the FS I chose EXT2 (The Second Extended FileSystem), which is a foundational linux FS structure introduced in 1993. This FS structure is not the simplest, but is very popular in hobby-OS, it is very supported, easy to set up and upgrade to newer EXT versions, it has a lot of materials online, compared to other options. This was probably the longest and largest feature I had worked on. 9) Syscall support. 10) Libc implementation. 11) Processing and scheduling for multiprocessing. 12) Here I also made a shell to test it all. </code></pre> At this point, I had a working shell, but later decided to go further and add a GUI! I was working on the FS (stage 8), when I heard about Hack Club’s Summer of Making (SoM). This was my first time practicing in HackClub, and I want to express my gratitude and share my enjoyment of participating in it.<p>At first I just wanted to declare the OS as finished after completing the FS, and a bit of other drivers, but because of SoM my perspective was changed completely. Because of the competition, I started to think that I needed to ship a complete OS, with processing, GUI and the bare minimum ability to run Doom. I wanted to show the community in SoM how everything works.<p>Then I worked on it for another 2 months, after finishing the shell, just because of SoM!, totalling my project to almost 7 months of work. At this time I added full GUI support, with dirty rectangles and double buffering, I made a GUI mouse driver, and even made a full Doom port! things I would've never even thought about without participating in SoM.<p>This is my SoM project: <a href="https://summer.hackclub.com/projects/5191" rel="nofollow">https://summer.hackclub.com/projects/5191</a>.<p>Every project has challenges, especially in such a low level project. I had to do a lot of debugging while working on this, and it is no easy task. I highly recommend using GDB which helped me debug so many of my problems, especially memory ones.<p>The first major challenge I encountered was during the coding of processes - I realized that a lot of my paging code was completely wrong, poorly tested, and had to be reworked. During this time I was already in the competition and it was difficult keeping up with devlogs and new features while fixing old problems in a code I wrote a few months ago.<p>Some more major problems occurred when trying to run Doom, and unlike the last problem, this was a disaster. I had random PFs and memory problems, one run could work while the next one wouldn’t, and the worst part is that it was only on the Doom, and not on processes I created myself. These issues took a lot of time to figure out. I began to question the Doom code itself, and even thought about giving up on the whole project.<p>After a lot of time spent debugging, I fixed the issues. It was a combination of scheduling issues, Libc issues and the Qemu not having enough (wrongfully assuming 128MB for the whole OS was enough).<p>Finally, I worked throughout all the difficulties, and shipped the project! In the end, the experience working on this project was amazing. I learned a lot, grew and improved as a developer, and I thank SoM for helping to increase my motivation and make the project memorable and unique like I never imagined it would be.<p>The repo is at <a href="https://github.com/dvir-biton/MyraOS" rel="nofollow">https://github.com/dvir-biton/MyraOS</a>. I’d love to discuss any aspect of this with you all in the comments!

Show HN: We tried to build a job board that isn't awful

Hi HN,<p>We’re definitely not the first to realise there’s something seriously wrong with how hiring and job-seeking works today. Zero-cost communication and LLMs have created so much noise that good candidates can’t get heard, and it becomes all too tempting to game the system with keywords and prompt-hacking.<p>In fact we discovered that 70% of early stage AI startups don't post their jobs on LinkedIn. Instead, many founders hire exclusively within their network, which works at the start but doesn’t scale.<p>We thought a lot about this problem, and pivoted through a few ideas including an AI voice agent recruiter. We even spent some time trying to be conventional tech recruiters to better understand the problem space.<p>And in the end we built...a job board.<p>But we think there are a few things that make ours different:<p>- We decided to not put barriers between the user and the data. You can search, filter or browse however you like from the minute you sign up. Zero onboarding<p>- We wanted to nail one niche, so we focused on surfacing opportunities at early-stage AI companies (over 30,000 jobs at 24,000 companies)<p>- You can navigate it using keyboard shortcuts!<p>- We built a voice agent, Nell, who conducts a technical recruiter call with you through your browser and immediately finds matches, the way a well-connected friend who knows you well would<p>- When you tell us you’re interested in a role, we make a best effort to connect you to founders directly, along with your profile, so no cover letters, no pointless forms<p>- We enriched jobs data with investor-grade intelligence - you can look at same data that VCs use to decide whether a startup is worth joining or not<p>Give it a try and let us know what you think: <a href="https://teeming.ai" rel="nofollow">https://teeming.ai</a>

Show HN: LLM Rescuer – Fixing the billion dollar mistake in Ruby

> "In a world without nil safety, one gem dares to ask: 'What if we just guessed?'"

Show HN: LLM Rescuer – Fixing the billion dollar mistake in Ruby

> "In a world without nil safety, one gem dares to ask: 'What if we just guessed?'"

Show HN: LLM Rescuer – Fixing the billion dollar mistake in Ruby

> "In a world without nil safety, one gem dares to ask: 'What if we just guessed?'"

Show HN: Shadcn/UI theme editor – Design and share Shadcn themes

Hey, I built <a href="https://ShadcnThemer.com" rel="nofollow">https://ShadcnThemer.com</a> - a web app for creating and sharing themes for shadcn/ui, made with my some of my favorites, Next.js 15, Tailwind CSS 4, Drizzle ORM, and Supabase.<p>The goal was to make it easy to visually design shadcn color themes, preview them live across various example UIs, and export them straight into your projects (as CSS or via the shadcn CLI registry command).<p>I had a bit of experience going into this because I built the Theme Studio for VS Code in the past, but it was fun using a modern stack and leveraging Cursor to help me along the way this time.<p>GitHub: <a href="https://github.com/miketromba/shadcn-themer" rel="nofollow">https://github.com/miketromba/shadcn-themer</a>

Show HN: Shadcn/UI theme editor – Design and share Shadcn themes

Hey, I built <a href="https://ShadcnThemer.com" rel="nofollow">https://ShadcnThemer.com</a> - a web app for creating and sharing themes for shadcn/ui, made with my some of my favorites, Next.js 15, Tailwind CSS 4, Drizzle ORM, and Supabase.<p>The goal was to make it easy to visually design shadcn color themes, preview them live across various example UIs, and export them straight into your projects (as CSS or via the shadcn CLI registry command).<p>I had a bit of experience going into this because I built the Theme Studio for VS Code in the past, but it was fun using a modern stack and leveraging Cursor to help me along the way this time.<p>GitHub: <a href="https://github.com/miketromba/shadcn-themer" rel="nofollow">https://github.com/miketromba/shadcn-themer</a>

Show HN: Shadcn/UI theme editor – Design and share Shadcn themes

Hey, I built <a href="https://ShadcnThemer.com" rel="nofollow">https://ShadcnThemer.com</a> - a web app for creating and sharing themes for shadcn/ui, made with my some of my favorites, Next.js 15, Tailwind CSS 4, Drizzle ORM, and Supabase.<p>The goal was to make it easy to visually design shadcn color themes, preview them live across various example UIs, and export them straight into your projects (as CSS or via the shadcn CLI registry command).<p>I had a bit of experience going into this because I built the Theme Studio for VS Code in the past, but it was fun using a modern stack and leveraging Cursor to help me along the way this time.<p>GitHub: <a href="https://github.com/miketromba/shadcn-themer" rel="nofollow">https://github.com/miketromba/shadcn-themer</a>

Show HN: Diagram as code tool with draggable customizations

In the past I've used declarative diagram generation tools like Mermaid.js a lot for quickly drawing up things but for presentations or deliverables I find that I have to then move the generated diagrams over to a tool like Lucidchart which allows full control of the organization and customization.<p>Therefore I am now working on this to combine the benefits of both into just one tool which can do both functions.<p>The project is certainly in the early stages but if you find yourself making architecture diagrams I'd love to hear your thoughts on the idea or even a Github issue for a feature request!<p>One of the workflows I'm targeting is when an AI generates the first draft of the diagram (all the LLMs know .mmd syntax) and then the user can then customize it to their liking which I think can drastically speed up making complex diagrams!

Show HN: Diagram as code tool with draggable customizations

In the past I've used declarative diagram generation tools like Mermaid.js a lot for quickly drawing up things but for presentations or deliverables I find that I have to then move the generated diagrams over to a tool like Lucidchart which allows full control of the organization and customization.<p>Therefore I am now working on this to combine the benefits of both into just one tool which can do both functions.<p>The project is certainly in the early stages but if you find yourself making architecture diagrams I'd love to hear your thoughts on the idea or even a Github issue for a feature request!<p>One of the workflows I'm targeting is when an AI generates the first draft of the diagram (all the LLMs know .mmd syntax) and then the user can then customize it to their liking which I think can drastically speed up making complex diagrams!

Show HN: Diagram as code tool with draggable customizations

In the past I've used declarative diagram generation tools like Mermaid.js a lot for quickly drawing up things but for presentations or deliverables I find that I have to then move the generated diagrams over to a tool like Lucidchart which allows full control of the organization and customization.<p>Therefore I am now working on this to combine the benefits of both into just one tool which can do both functions.<p>The project is certainly in the early stages but if you find yourself making architecture diagrams I'd love to hear your thoughts on the idea or even a Github issue for a feature request!<p>One of the workflows I'm targeting is when an AI generates the first draft of the diagram (all the LLMs know .mmd syntax) and then the user can then customize it to their liking which I think can drastically speed up making complex diagrams!

Show HN: I built an 8-bit CPU simulator in Python from scratch

I built a tiny 8-bit CPU simulator in Python to better understand how computers work at a low level. It visualizes registers, memory, and instructions in real-time, so you can actually see each operation as it happens. You can write simple assembly code and watch how the CPU executes it step by step.<p>The project is mainly for learning and experimentation, but I’d love feedback or ideas for improvement.

Show HN: OpenSnowcat – A fork of Snowplow to keep open analytics alive

I’ve been a long-time Snowplow user and unofficial evangelizer. I have deep respect for its founders, Alex and Yali, who I met a few times.<p>What made me fall in love with Snowplow was that it was unopinionated, gave access to raw event data, and was truly open source. Back in 2013, that changed everything for me. I couldn’t look at GA the same way again.<p>Over the years, analytics moved into SQL warehouses driven by cheaper CPU/storage, dbt, reproducibility, and transparency. I saw the need for a democratized Snowplow pipeline and launched a hosted version in 2019.<p>In January 2024, Snowplow changed its license (SLULA), effectively ending open-source Snowplow by restricting production use. When that happened, I realized the spirit of open data and open architecture was gone.<p>A week later, I forked it, I wanted to keep the idea alive.<p>OpenSnowcat keeps the original collector and enricher under Apache 2.0 and stays fully compatible with existing Snowplow pipelines. We maintain it with regular patches, performance optimizations, and integrations with modern tools like Warpstream Bento for event processing/routing.<p>The goal is simple: keep open analytics open.<p>Would love to hear how others in the community think we can preserve openness in data infrastructure as “open source” becomes increasingly commercialized.<p>That's it, I should have posted here earlier but now felt right.

Show HN: OpenSnowcat – A fork of Snowplow to keep open analytics alive

I’ve been a long-time Snowplow user and unofficial evangelizer. I have deep respect for its founders, Alex and Yali, who I met a few times.<p>What made me fall in love with Snowplow was that it was unopinionated, gave access to raw event data, and was truly open source. Back in 2013, that changed everything for me. I couldn’t look at GA the same way again.<p>Over the years, analytics moved into SQL warehouses driven by cheaper CPU/storage, dbt, reproducibility, and transparency. I saw the need for a democratized Snowplow pipeline and launched a hosted version in 2019.<p>In January 2024, Snowplow changed its license (SLULA), effectively ending open-source Snowplow by restricting production use. When that happened, I realized the spirit of open data and open architecture was gone.<p>A week later, I forked it, I wanted to keep the idea alive.<p>OpenSnowcat keeps the original collector and enricher under Apache 2.0 and stays fully compatible with existing Snowplow pipelines. We maintain it with regular patches, performance optimizations, and integrations with modern tools like Warpstream Bento for event processing/routing.<p>The goal is simple: keep open analytics open.<p>Would love to hear how others in the community think we can preserve openness in data infrastructure as “open source” becomes increasingly commercialized.<p>That's it, I should have posted here earlier but now felt right.

Show HN: MacOS Live Screensaver – A screensaver that plays live video streams

Show HN: MacOS Live Screensaver – A screensaver that plays live video streams

Show HN: MacOS Live Screensaver – A screensaver that plays live video streams

Show HN: Silly Morse code chat app using WebSockets

My dad just bought a new printer. I joked and asked if it also had fax and a scanner. He said yes, not realizing I was making fun of him, so I asked if it also supported Morse code. That made it clear :) Anyway, I decided to take the joke too far and build a silly Morse code chat app for fun.

< 1 2 3 4 ... 886 887 888 >