The best Hacker News stories from Show from the past day
Latest posts:
Show HN: Create your own complete UI color system easy as 1-2-3
Vim Reference Guide
Hello!<p>"Vim Reference Guide" is intended as a concise learning resource for beginner to intermediate level Vim users. I hope this guide would make it much easier for you to discover Vim features and learning resources than my own blundering experience.<p>To celebrate the release, ebook version is free to download till 31-Mar-2022:<p>* <a href="https://learnbyexample.gumroad.com/l/vim_reference_guide" rel="nofollow">https://learnbyexample.gumroad.com/l/vim_reference_guide</a><p>* <a href="https://leanpub.com/vim_reference_guide" rel="nofollow">https://leanpub.com/vim_reference_guide</a><p>Some of my other ebooks and bundles are on sale and I'm currently creating short 1-3 minute videos to highlight Vim features. You can find these details in the above links.<p>Visit <a href="https://github.com/learnbyexample/vim_reference" rel="nofollow">https://github.com/learnbyexample/vim_reference</a> for markdown source and other details related to the book.<p>Hope you find these resources useful. Let me know your feedback.<p>Happy learning :)
PartialExecuter: Reducing WebAssembly size by exploring all executions in LLVM
WebAssembly is commonly used as part of web applications, and minimizing its size is especially important.<p>As part of the latest release of Cheerp, our C++ to WebAssembly/JavaScript compiler, we have introduced a powerful new LLVM optimization that aggressively reduce WebAssembly output size at compile time.<p>We have named this optimization 'PartialExecuter', the key idea behind it being taking advantage of known function parameters to find inner code blocks that cannot ever be possibly executed.<p>Such blocks can then be completely removed from the compiled output, significantly reducing its size.<p>What makes this pass more powerful than typical Dead Code Elimination is the ability of reasoning over all the possible executions that the code can take, while being robust to memory stores and side-effects. Moreover, PartialExecuter can even reason over loads as far as they refer to read-only memory. This latter capability is especially useful to drop code from complex functions whose behavior depend on input strings (i.e. printf).<p>We think this work may be of interest for the HN community, and we welcome feedback and questions.<p>In-depth blog post: <a href="https://leaningtech.com/reducing-webassembly-size-by-exploring-all-executions-in-llvm/" rel="nofollow">https://leaningtech.com/reducing-webassembly-size-by-explori...</a>
Show HN: I made Devzat – It's like Discord but in the terminal, over SSH
Run `ssh devzat.hackclub.com` to try it out! The repo is here: https://github.com/quackduck/devzat (golang).
It has markdown and emoji support, DMs, channels, and it can show images too. You can send code, and it gets syntax highlighted (you can change the theme). You can ping people like so: @user and it sends them a \a, which should play an audible sound if the terminal allows it. There's inbuilt games and rainbow names and a lot of other small things I don't remember right now.<p>You might find the auth system interesting: it's based on a hash of ssh pubkey (bans use that and a hash of IP, so it isn't so easy to get around a ban)<p>Also an interesting issue: bots that go around trying to brute force ssh into random IPs with common usernames. My current solution is banning if rapid successive joins are detected.
Show HN: I made Devzat – It's like Discord but in the terminal, over SSH
Run `ssh devzat.hackclub.com` to try it out! The repo is here: https://github.com/quackduck/devzat (golang).
It has markdown and emoji support, DMs, channels, and it can show images too. You can send code, and it gets syntax highlighted (you can change the theme). You can ping people like so: @user and it sends them a \a, which should play an audible sound if the terminal allows it. There's inbuilt games and rainbow names and a lot of other small things I don't remember right now.<p>You might find the auth system interesting: it's based on a hash of ssh pubkey (bans use that and a hash of IP, so it isn't so easy to get around a ban)<p>Also an interesting issue: bots that go around trying to brute force ssh into random IPs with common usernames. My current solution is banning if rapid successive joins are detected.
Show HN: I made Devzat – It's like Discord but in the terminal, over SSH
Run `ssh devzat.hackclub.com` to try it out! The repo is here: https://github.com/quackduck/devzat (golang).
It has markdown and emoji support, DMs, channels, and it can show images too. You can send code, and it gets syntax highlighted (you can change the theme). You can ping people like so: @user and it sends them a \a, which should play an audible sound if the terminal allows it. There's inbuilt games and rainbow names and a lot of other small things I don't remember right now.<p>You might find the auth system interesting: it's based on a hash of ssh pubkey (bans use that and a hash of IP, so it isn't so easy to get around a ban)<p>Also an interesting issue: bots that go around trying to brute force ssh into random IPs with common usernames. My current solution is banning if rapid successive joins are detected.
Show HN: I made Devzat – It's like Discord but in the terminal, over SSH
Run `ssh devzat.hackclub.com` to try it out! The repo is here: https://github.com/quackduck/devzat (golang).
It has markdown and emoji support, DMs, channels, and it can show images too. You can send code, and it gets syntax highlighted (you can change the theme). You can ping people like so: @user and it sends them a \a, which should play an audible sound if the terminal allows it. There's inbuilt games and rainbow names and a lot of other small things I don't remember right now.<p>You might find the auth system interesting: it's based on a hash of ssh pubkey (bans use that and a hash of IP, so it isn't so easy to get around a ban)<p>Also an interesting issue: bots that go around trying to brute force ssh into random IPs with common usernames. My current solution is banning if rapid successive joins are detected.
Show HN: I made Devzat – It's like Discord but in the terminal, over SSH
Run `ssh devzat.hackclub.com` to try it out! The repo is here: https://github.com/quackduck/devzat (golang).
It has markdown and emoji support, DMs, channels, and it can show images too. You can send code, and it gets syntax highlighted (you can change the theme). You can ping people like so: @user and it sends them a \a, which should play an audible sound if the terminal allows it. There's inbuilt games and rainbow names and a lot of other small things I don't remember right now.<p>You might find the auth system interesting: it's based on a hash of ssh pubkey (bans use that and a hash of IP, so it isn't so easy to get around a ban)<p>Also an interesting issue: bots that go around trying to brute force ssh into random IPs with common usernames. My current solution is banning if rapid successive joins are detected.
Show HN: A Wordle clone made in Google Sheets
Show HN: A Wordle clone made in Google Sheets
Show HN: Smort.io – Edit, annotate and share articles easily
Hey HN, I created Smort as I wanted to highlight an article and share it with a friend but couldn't find an easy way of doing it.<p>Smort lets you easily edit, annotate and share an article. To read any article, just prepend smort.io/ before a URL in a browser. (I recently found out that even 12ft.io/ uses the same technique). Smort is free to use and shareable links are valid for 7 days from creation. Permanent links will be supported soon.<p>I'm primarily a backend/ML engineer so had to learn all things frontend to build Smort. I started out developing in SvelteKit and loved it but later migrated to React & Nextjs due to better third party library support. I have lots of ideas on how to take Smort forward and would love for you all to use it. Please join our Discord to share your curated articles and feedback!<p>This is a walkthrough article detailing everything Smort can do at the moment - <a href="https://smort.io/demo-walkthrough" rel="nofollow">https://smort.io/demo-walkthrough</a>.<p>Smort's name was inspired by the memes [1]<p>[1] <a href="https://www.google.com/search?q=smort+meme&tbm=isch" rel="nofollow">https://www.google.com/search?q=smort+meme&tbm=isch</a>
Show HN: Smort.io – Edit, annotate and share articles easily
Hey HN, I created Smort as I wanted to highlight an article and share it with a friend but couldn't find an easy way of doing it.<p>Smort lets you easily edit, annotate and share an article. To read any article, just prepend smort.io/ before a URL in a browser. (I recently found out that even 12ft.io/ uses the same technique). Smort is free to use and shareable links are valid for 7 days from creation. Permanent links will be supported soon.<p>I'm primarily a backend/ML engineer so had to learn all things frontend to build Smort. I started out developing in SvelteKit and loved it but later migrated to React & Nextjs due to better third party library support. I have lots of ideas on how to take Smort forward and would love for you all to use it. Please join our Discord to share your curated articles and feedback!<p>This is a walkthrough article detailing everything Smort can do at the moment - <a href="https://smort.io/demo-walkthrough" rel="nofollow">https://smort.io/demo-walkthrough</a>.<p>Smort's name was inspired by the memes [1]<p>[1] <a href="https://www.google.com/search?q=smort+meme&tbm=isch" rel="nofollow">https://www.google.com/search?q=smort+meme&tbm=isch</a>
Show HN: Serve your saved articles to a Kindle
Show HN: Serve your saved articles to a Kindle
Show HN: I built an open-source web hosting platform for static sites
HI Hacker News!<p>I’m very excited to show you this project I have been working on, MarkdownSite.com.<p>For folks who interact with the website, it is a web hosting platform where you can add your repository and have a website built from the `public/` directory. Files in `site/` with an `.md` extension are rendered from markdown to HTML, and the website is then available at a random subdomain.<p>For folks that set up their own instance, it can also become a framework for customized building. The entire project is open source and I tried my best to document and explain the structure of the machines and how they interact in various mermaid graphs in the readme files under the `devops/` folder.<p>There is still a lot of work to be done, I hope that you find this useful. It's been super fun to work on!
Show HN: I built an open-source web hosting platform for static sites
HI Hacker News!<p>I’m very excited to show you this project I have been working on, MarkdownSite.com.<p>For folks who interact with the website, it is a web hosting platform where you can add your repository and have a website built from the `public/` directory. Files in `site/` with an `.md` extension are rendered from markdown to HTML, and the website is then available at a random subdomain.<p>For folks that set up their own instance, it can also become a framework for customized building. The entire project is open source and I tried my best to document and explain the structure of the machines and how they interact in various mermaid graphs in the readme files under the `devops/` folder.<p>There is still a lot of work to be done, I hope that you find this useful. It's been super fun to work on!
Show HN: I built an open-source web hosting platform for static sites
HI Hacker News!<p>I’m very excited to show you this project I have been working on, MarkdownSite.com.<p>For folks who interact with the website, it is a web hosting platform where you can add your repository and have a website built from the `public/` directory. Files in `site/` with an `.md` extension are rendered from markdown to HTML, and the website is then available at a random subdomain.<p>For folks that set up their own instance, it can also become a framework for customized building. The entire project is open source and I tried my best to document and explain the structure of the machines and how they interact in various mermaid graphs in the readme files under the `devops/` folder.<p>There is still a lot of work to be done, I hope that you find this useful. It's been super fun to work on!
Show HN: I built an open-source web hosting platform for static sites
HI Hacker News!<p>I’m very excited to show you this project I have been working on, MarkdownSite.com.<p>For folks who interact with the website, it is a web hosting platform where you can add your repository and have a website built from the `public/` directory. Files in `site/` with an `.md` extension are rendered from markdown to HTML, and the website is then available at a random subdomain.<p>For folks that set up their own instance, it can also become a framework for customized building. The entire project is open source and I tried my best to document and explain the structure of the machines and how they interact in various mermaid graphs in the readme files under the `devops/` folder.<p>There is still a lot of work to be done, I hope that you find this useful. It's been super fun to work on!
Show HN: Instantly create a GitHub repository to take screenshots of a web page
I built a GitHub repository template which automates the process of configuring a new repository to take web page screenshots using GitHub Actions.<p>You can try this out at <a href="https://github.com/simonw/shot-scraper-template" rel="nofollow">https://github.com/simonw/shot-scraper-template</a><p>Use the <a href="https://github.com/simonw/shot-scraper-template/generate" rel="nofollow">https://github.com/simonw/shot-scraper-template/generate</a> interface to create a new repository using that template, and paste the URL that you want to take screenshots of in as the "description" field.<p>The new repository will then configure itself using GitHub Actions, take the screenshot and save it back to the repo!
Show HN: Instantly create a GitHub repository to take screenshots of a web page
I built a GitHub repository template which automates the process of configuring a new repository to take web page screenshots using GitHub Actions.<p>You can try this out at <a href="https://github.com/simonw/shot-scraper-template" rel="nofollow">https://github.com/simonw/shot-scraper-template</a><p>Use the <a href="https://github.com/simonw/shot-scraper-template/generate" rel="nofollow">https://github.com/simonw/shot-scraper-template/generate</a> interface to create a new repository using that template, and paste the URL that you want to take screenshots of in as the "description" field.<p>The new repository will then configure itself using GitHub Actions, take the screenshot and save it back to the repo!