The best Hacker News stories from Show from the past week
Latest posts:
Show HN: I made a programmable computer from NAND gates
I am proud to present my solo hobby project NAND. This year-long undertaking follows the completed Nand to Tetris course, but ported to the web with its own runtime, user interface, and IDE. Using the "Load example program" selector, you can try out some programs I wrote on NAND's emulated hardware such as 2048, a genetic algorithm, and a manual stack overflow to corrupt the screen.<p>Check out NAND at <a href="https://nand.arhan.sh" rel="nofollow">https://nand.arhan.sh</a><p>Additionally, I've authored an extensive writeup about the project. Read about it on the GitHub repository's readme.
Show HN: LangCSS – An AI Assistant for Tailwind
Hi All<p>This is my personal project that is an IDE and AI assistant for creating tailwind components and pages. You can chat to create designs, then make small edits yourself, and continue chatting to refine them. I am always working to improve the UX.<p>I have a time limited demo page here: <a href="https://langcss.com/demo" rel="nofollow">https://langcss.com/demo</a><p>Please let me know what you think! Feedback is welcome.<p>Tech wise, this just uses NextJS (Hosted on Docker) and Azure Open AI.
Show HN: Getada: rustup-like installer for Ada's toolchain/package manager
One of my goals with Ada is to have a one-liner copy-paste terminal command for people to install Ada so they can get to coding in just a few minutes. After extensive testing I feel like it's ready for general release[1].<p>Getada was inspired by Rustup[2] and aside from the init script is written entirely in Ada.<p>It's completely open source and you can check out the readme and code on github[3]. It currently supports all non-windows platforms that Alire has an official release for, which at present is Linux (glibc) and MacOS. If you try running it on an unsupported platform, it tries to point you in the right direction. For example, you can install Alire on windows with an already-existing installer.<p>It downloads the latest version of Alire[4] (Ada's toolchain and package manager, similar to Cargo) for your platform as a zip file to a temporary directory and then extracts it to a binary directory. By default the temporary directory (configure with "-t /directory" or "--tmp=/directory") defaulted to $TMPDIR or /tmp. The config directory is ~/.getada (change via "-c /directory", "--cfg=/directory", or $GETADA_CFG), and the alr and getada binaries go in ~/.getada/bin (configure with ""-b /directory", "--bin=/directory", or $GETADA_BIN). It also tries to add the file to your path by dropping a "env.sh" file into ~/.profile/ (disable with -p or --no-path).<p>If you don't allow executables in temporary or home directories, you can change all of these via environmental variables or passing parameters.<p>You can remove it all by running: getada --uninstall<p>Now you can create a brand new Ada project with: alr init --bin my_project (How to use Alire[5] for more details)<p>Since one of the biggest complaints about Ada is getting the toolchain [6], I hope this can solve a lot of problems for newcomers to the language.<p>[1] <a href="https://www.getada.dev" rel="nofollow">https://www.getada.dev</a><p>[2] <a href="https://rustup.rs/" rel="nofollow">https://rustup.rs/</a><p>[3] <a href="https://github.com/aj-ianozi/getada">https://github.com/aj-ianozi/getada</a><p>[4] <a href="https://alire.ada.dev/" rel="nofollow">https://alire.ada.dev/</a><p>[5] <a href="https://www.getada.dev/how-to-use-alire.html" rel="nofollow">https://www.getada.dev/how-to-use-alire.html</a><p>[6] <a href="https://programming.dev/comment/9438211" rel="nofollow">https://programming.dev/comment/9438211</a>
Show HN: Getada: rustup-like installer for Ada's toolchain/package manager
One of my goals with Ada is to have a one-liner copy-paste terminal command for people to install Ada so they can get to coding in just a few minutes. After extensive testing I feel like it's ready for general release[1].<p>Getada was inspired by Rustup[2] and aside from the init script is written entirely in Ada.<p>It's completely open source and you can check out the readme and code on github[3]. It currently supports all non-windows platforms that Alire has an official release for, which at present is Linux (glibc) and MacOS. If you try running it on an unsupported platform, it tries to point you in the right direction. For example, you can install Alire on windows with an already-existing installer.<p>It downloads the latest version of Alire[4] (Ada's toolchain and package manager, similar to Cargo) for your platform as a zip file to a temporary directory and then extracts it to a binary directory. By default the temporary directory (configure with "-t /directory" or "--tmp=/directory") defaulted to $TMPDIR or /tmp. The config directory is ~/.getada (change via "-c /directory", "--cfg=/directory", or $GETADA_CFG), and the alr and getada binaries go in ~/.getada/bin (configure with ""-b /directory", "--bin=/directory", or $GETADA_BIN). It also tries to add the file to your path by dropping a "env.sh" file into ~/.profile/ (disable with -p or --no-path).<p>If you don't allow executables in temporary or home directories, you can change all of these via environmental variables or passing parameters.<p>You can remove it all by running: getada --uninstall<p>Now you can create a brand new Ada project with: alr init --bin my_project (How to use Alire[5] for more details)<p>Since one of the biggest complaints about Ada is getting the toolchain [6], I hope this can solve a lot of problems for newcomers to the language.<p>[1] <a href="https://www.getada.dev" rel="nofollow">https://www.getada.dev</a><p>[2] <a href="https://rustup.rs/" rel="nofollow">https://rustup.rs/</a><p>[3] <a href="https://github.com/aj-ianozi/getada">https://github.com/aj-ianozi/getada</a><p>[4] <a href="https://alire.ada.dev/" rel="nofollow">https://alire.ada.dev/</a><p>[5] <a href="https://www.getada.dev/how-to-use-alire.html" rel="nofollow">https://www.getada.dev/how-to-use-alire.html</a><p>[6] <a href="https://programming.dev/comment/9438211" rel="nofollow">https://programming.dev/comment/9438211</a>
Show HN: Balancing game for the mobile browser with increasing difficulty
I made this 10 level Game. Excited for people to try it. :) Stay Balanced :)
Show HN: Balancing game for the mobile browser with increasing difficulty
I made this 10 level Game. Excited for people to try it. :) Stay Balanced :)
Show HN: OpenOrb, a curated search engine for Atom and RSS feeds
Alternative search engines are neat, as are RSS feeds. OpenOrb is a self-hosted app which allows visitors to search over a list of blogs you love. If you put your 10 favourite blogs in there, it'll search just those blogs and not show you any sponsored content or machine-generated garbage (unless... you follow blogs written by machines?)<p>Personal RSS feed readers can usually do this sort of thing, but RSS readers aren’t meant to be shared, so you can think of the search engine as a 'curated feed list as a public service'.<p>I wrote a longer blog post about OpenOrb here: <a href="https://raphael.computer/blog/openorb-curated-search-engine/" rel="nofollow">https://raphael.computer/blog/openorb-curated-search-engine/</a>
Show HN: OpenOrb, a curated search engine for Atom and RSS feeds
Alternative search engines are neat, as are RSS feeds. OpenOrb is a self-hosted app which allows visitors to search over a list of blogs you love. If you put your 10 favourite blogs in there, it'll search just those blogs and not show you any sponsored content or machine-generated garbage (unless... you follow blogs written by machines?)<p>Personal RSS feed readers can usually do this sort of thing, but RSS readers aren’t meant to be shared, so you can think of the search engine as a 'curated feed list as a public service'.<p>I wrote a longer blog post about OpenOrb here: <a href="https://raphael.computer/blog/openorb-curated-search-engine/" rel="nofollow">https://raphael.computer/blog/openorb-curated-search-engine/</a>
Show HN: We relaunched the Official MTA App for NYC public transit
You might remember MYmta, and maybe you loved it, but it was impossible to maintain. The Digital Services team at the MTA + Axon Vibe + many others contributed to relaunching the official MTA app with new features based on user feedback.<p>Let us know what you think!
Show HN: I made a website that converts YT videos into step-by-step guides
Hey HN,<p>I've been working on this side project for the past month. It generates a step-by-step tutorial guide for YouTube videos that you can follow along without watching long videos. Best suited for tutorial videos but can work for other videos aswell. No BS. Just straight to the point.<p>The guides are generated from pure transcript so you don't have to worry about it being AI. It's my first project as a total beginner. Something I had to do inorder to get out of tutorial hell.<p>Please let me know if you have any suggestions or if you face any problems or bugs. I would try to fix them to the best of my abilities and as soon as possible.<p>I would appreciate your feedback on this. Let me know what you think!
Show HN: I made a website that converts YT videos into step-by-step guides
Hey HN,<p>I've been working on this side project for the past month. It generates a step-by-step tutorial guide for YouTube videos that you can follow along without watching long videos. Best suited for tutorial videos but can work for other videos aswell. No BS. Just straight to the point.<p>The guides are generated from pure transcript so you don't have to worry about it being AI. It's my first project as a total beginner. Something I had to do inorder to get out of tutorial hell.<p>Please let me know if you have any suggestions or if you face any problems or bugs. I would try to fix them to the best of my abilities and as soon as possible.<p>I would appreciate your feedback on this. Let me know what you think!
Show HN: Vapi – Convince our voice AI to give you the secret code
Show HN: Open Source TailwindCSS UI Components
Free Tailwind html UI Components - built to create landing pages and websites. Easyfrontend UI components are free and open-source. Copy paste the components to update your existing site or create a new site from it.
Show HN: Speeding up LLM inference 2x times (possibly)
Here's a project I've been working on for the last few months.<p>It's a new (I think) algorithm, that allows to adjust smoothly - and in real time - how many calculations you'd like to do during inference of an LLM model.<p>It seems that it's possible to do just 20-25% of weight multiplications instead of all of them, and still get good inference results.<p>I implemented it to run on M1/M2/M3 GPU. The mmul approximation itself can be pushed to run 2x fast before the quality of output collapses.<p>The inference speed is just a bit faster than Llama.cpp's, because the rest of implementation could be better, but with a better development I think it can be a new method to speed up inference - in addition to quantization.<p>You could call it ad-hoc model distillation :)<p>You can change the speed / accuracy of a model at will, in real time.<p>Oh, and as a side effect, the data format allows to also choose how much of the model you want to load into the memory. You can decide to skip say 10-20-40% of the least important weights.<p>It's implemented for Mistral, it was also tested slightly on Mixtral and Llama. It's for FP16 for now, but Q8 is in the works.<p>The algorithm is described here, and the implementation is open source.<p><a href="https://kolinko.github.io/effort/" rel="nofollow">https://kolinko.github.io/effort/</a><p>I know these are bold claims, but I hope they survive the scrutiny :)
Show HN: Render audio waveforms to HTML canvas using WebGPU
Hey HN. I built this quick and dirty component to render audio waveforms using WebGPU. I just published it to NPM.<p>It's the first time I use WebGPU and it's been a while since I write shaders. Feedback is very welcome!<p>GitHub: <a href="https://github.com/mrkev/webgpu-waveform">https://github.com/mrkev/webgpu-waveform</a>
Examples: <a href="https://aykev.dev/webgpu-waveform" rel="nofollow">https://aykev.dev/webgpu-waveform</a>
Show HN: Term Typer – Learn a language by typing
Hey HN! I'm from Brazil and I created Term Typer to help my little brother learn other languages while practicing his keyboard typing skills. We've found it super helpful and fun. Feel free to try it out and let me know your thoughts and feedback. Thanks a lot!
Show HN: Building a GPS receiver
Hi everyone!<p>Shortly after publishing my iOS 4 jailbreak last October[1], I got to work on my next hobby project: a from-scratch homebrew GPS receiver, which can solve the user’s location solely from billions of radio antenna samples.<p>I took a commodity SDR (alongside the Python standard library and numpy) and built a signal processing pipeline that can detect and track GPS satellites over many minutes, drop and pick up satellites as they come in and out of view, and precisely determine the user’s position and clock inaccuracy.<p>All told, gypsum can go from a cold start to a fix on the user’s position, and the precise time, in less than a minute of listening to the antenna. I went on a journey of learning how to detect and track satellite signals that are literally too quiet to hear, and I hope that some of the magic comes through in the posts!<p>After implementing this myself and walking the long road of getting it working, I’m left completely stunned by the brilliance of GPS, across so many axes. I hope you enjoy the read!<p>On a more personal note, I’ll be starting a new job next week which isn’t as amenable to publishing side projects, and therefore this will be my last publicly-published project for some time. I’ve had great experiences making and sharing projects on here, and I’m really grateful for the positive feedback that’s been shared!<p>[1]: <a href="https://news.ycombinator.com/item?id=37736318">https://news.ycombinator.com/item?id=37736318</a>
Show HN: PostgreSQL index advisor
This is a Postgres extension that can determine if a query should have an index. For example, for this table:<p><pre><code> create table book(
id int primary key,
title text not null
);
</code></pre>
You can run `index_advisor()` to see if there should be an index on a select statement:<p><pre><code> select *
from index_advisor('select book.id from book where title = $1');
</code></pre>
And it will return (summarized):<p><pre><code> {"CREATE INDEX ON public.book USING btree (title)"}
</code></pre>
It works particularly well with pg_stat_statements[0] which tracks execution statistics of all SQL statements executed on your Postgres database.<p>It leans heavily on HypoPG[1], an excellent extension to determine if PostgreSQL will use a given index without spending resources to create them.<p>[0] pg_stat_statements: <a href="https://www.postgresql.org/docs/current/pgstatstatements.html" rel="nofollow">https://www.postgresql.org/docs/current/pgstatstatements.htm...</a><p>[1] <a href="https://github.com/HypoPG/hypopg">https://github.com/HypoPG/hypopg</a>
Show HN: PostgreSQL index advisor
This is a Postgres extension that can determine if a query should have an index. For example, for this table:<p><pre><code> create table book(
id int primary key,
title text not null
);
</code></pre>
You can run `index_advisor()` to see if there should be an index on a select statement:<p><pre><code> select *
from index_advisor('select book.id from book where title = $1');
</code></pre>
And it will return (summarized):<p><pre><code> {"CREATE INDEX ON public.book USING btree (title)"}
</code></pre>
It works particularly well with pg_stat_statements[0] which tracks execution statistics of all SQL statements executed on your Postgres database.<p>It leans heavily on HypoPG[1], an excellent extension to determine if PostgreSQL will use a given index without spending resources to create them.<p>[0] pg_stat_statements: <a href="https://www.postgresql.org/docs/current/pgstatstatements.html" rel="nofollow">https://www.postgresql.org/docs/current/pgstatstatements.htm...</a><p>[1] <a href="https://github.com/HypoPG/hypopg">https://github.com/HypoPG/hypopg</a>
Show HN: I made a tool to clean and convert any webpage to Markdown
My partner usually writes substack posts which I then mirror to our website’s blog section.<p>To automate this, I made a simple tool to scrape the post and clean it so that I can drop it to our blog easily. This might be useful to others as well.<p>Oh and ofcourse you can instruct GPT to make any final edits :D