The best Hacker News stories from Show from the past day
Latest posts:
Show HN: Create Native Desktop Apps from WebAssembly
Show HN: Create Native Desktop Apps from WebAssembly
Show HN: Create Native Desktop Apps from WebAssembly
Show HN: MyNotifier – Simple Notifications
Show HN: I created a library to create product tours / walkthroughs
This is significantly different in its feature set than the existing open source alternatives, I made this to be a more complete library, and well, as a portfolio artefact.
Any comment is greatly appreciated. Thank you!<p>Code: <a href="https://github.com/lusift/lusift" rel="nofollow">https://github.com/lusift/lusift</a>
Show HN: I created a library to create product tours / walkthroughs
This is significantly different in its feature set than the existing open source alternatives, I made this to be a more complete library, and well, as a portfolio artefact.
Any comment is greatly appreciated. Thank you!<p>Code: <a href="https://github.com/lusift/lusift" rel="nofollow">https://github.com/lusift/lusift</a>
Show HN: I created a library to create product tours / walkthroughs
This is significantly different in its feature set than the existing open source alternatives, I made this to be a more complete library, and well, as a portfolio artefact.
Any comment is greatly appreciated. Thank you!<p>Code: <a href="https://github.com/lusift/lusift" rel="nofollow">https://github.com/lusift/lusift</a>
Show HN: Pi-hole deployed at the edge on Fly.io and accessed via TailScale
Hi, I just saw this tweet[^1] by @QuinnyPig that mentions accessing your Pi-hole while traveling thanks to TailScale and wondered how to deploy Pi-hole at the edge, instead of a home lab, for improved latency.<p>My simple solution involves running it on Fly.io to make it easy to relocate anywhere, and embedding tailscale into the same firecracker VM (né docker container) to keep the infra dead simple and cheap.<p>Naively deploying a publicly accessible DNS resolver is not ideal[^2] so the main constraint was to secure the VM by 1) keeping all public ports closed and 2) having Pi-hole listen only on the private network interface created by TailScale.<p>It's all very straightforward but it's noticeably improved my bandwidth usage and page loading times across my laptop and mobile phone, so I figured I'd share. Suggestions for improvement are also welcome!<p>[^1]: <a href="https://twitter.com/QuinnyPig/status/1558521941538983936" rel="nofollow">https://twitter.com/QuinnyPig/status/1558521941538983936</a><p>[^2]: <a href="https://www.cloudflare.com/learning/ddos/dns-amplification-ddos-attack/" rel="nofollow">https://www.cloudflare.com/learning/ddos/dns-amplification-d...</a>
Show HN: Modifying Clang for a Safer, More Explicit C++
Modified C++<p>Inspired by the paper "Some Were Meant for C" by Stephen Kell, I decided to show that it's possible to iterate C++ to be safer, more explicit, and less error-prone.<p>Here's a possible starting point: I didn't invent a new language or compiler, but took the world's best compiler, clang, and modified it to begin iterating towards a new furture of C++. Naming things is hard, so I call this 'Modified C++'. Some of the following could be implemented as tooling in a linter or checker, but the idea is to update the compiler directly. I also wanted to learn more about clang. This compiler needs a flag to enable/disable this functionality so that existing library code can be used with a 'diagnostic ignored' pragma.<p>You can build clang using the normal non-bootstrap process and you'll be left with a clang that compiles C++ but with the following modifications:<p><pre><code> - All basic types (excluding pointers and references) are const by
default and may be marked 'mutable' to allow them to be changed after
declaration
- Lambda capture lists must be explicit (no [&] or [=], by themselves)
- Braces are required for conditional statements, case and default
statements within switches, and loops
- Implicit conversions to bool are prohibited (e.g., pointers must be
compared against nullptr/NULL)
- No goto support
- Explicit 'rule of six' for classes must be programmer-implemented
(default, copy, and move c'tors, copy and move assignment, d'tor)
- No C style casts
</code></pre>
Here's an example program that's valid in Modified C++:<p><pre><code> mutable int main(int, char**)
{
mutable int x = 0;
return x;
}
Here's another that will fail to compile:
mutable int main(int, char**)
{
int x = 1;
x = 0; // x is constant
return x;
}
</code></pre>
I'd like your feedback. Future changes I'm thinking about are:<p><pre><code> - feature flag for modified c++ to enable/disable with 'diagnostic ignored'
pragma, to support existing headers and libraries
- support enum classes only
- constructor declarations are explicit by default
- namespaces within classes
- normalize lambda and free function syntax
- your ideas here</code></pre>
Show HN: Modifying Clang for a Safer, More Explicit C++
Modified C++<p>Inspired by the paper "Some Were Meant for C" by Stephen Kell, I decided to show that it's possible to iterate C++ to be safer, more explicit, and less error-prone.<p>Here's a possible starting point: I didn't invent a new language or compiler, but took the world's best compiler, clang, and modified it to begin iterating towards a new furture of C++. Naming things is hard, so I call this 'Modified C++'. Some of the following could be implemented as tooling in a linter or checker, but the idea is to update the compiler directly. I also wanted to learn more about clang. This compiler needs a flag to enable/disable this functionality so that existing library code can be used with a 'diagnostic ignored' pragma.<p>You can build clang using the normal non-bootstrap process and you'll be left with a clang that compiles C++ but with the following modifications:<p><pre><code> - All basic types (excluding pointers and references) are const by
default and may be marked 'mutable' to allow them to be changed after
declaration
- Lambda capture lists must be explicit (no [&] or [=], by themselves)
- Braces are required for conditional statements, case and default
statements within switches, and loops
- Implicit conversions to bool are prohibited (e.g., pointers must be
compared against nullptr/NULL)
- No goto support
- Explicit 'rule of six' for classes must be programmer-implemented
(default, copy, and move c'tors, copy and move assignment, d'tor)
- No C style casts
</code></pre>
Here's an example program that's valid in Modified C++:<p><pre><code> mutable int main(int, char**)
{
mutable int x = 0;
return x;
}
Here's another that will fail to compile:
mutable int main(int, char**)
{
int x = 1;
x = 0; // x is constant
return x;
}
</code></pre>
I'd like your feedback. Future changes I'm thinking about are:<p><pre><code> - feature flag for modified c++ to enable/disable with 'diagnostic ignored'
pragma, to support existing headers and libraries
- support enum classes only
- constructor declarations are explicit by default
- namespaces within classes
- normalize lambda and free function syntax
- your ideas here</code></pre>
Show HN: Modifying Clang for a Safer, More Explicit C++
Modified C++<p>Inspired by the paper "Some Were Meant for C" by Stephen Kell, I decided to show that it's possible to iterate C++ to be safer, more explicit, and less error-prone.<p>Here's a possible starting point: I didn't invent a new language or compiler, but took the world's best compiler, clang, and modified it to begin iterating towards a new furture of C++. Naming things is hard, so I call this 'Modified C++'. Some of the following could be implemented as tooling in a linter or checker, but the idea is to update the compiler directly. I also wanted to learn more about clang. This compiler needs a flag to enable/disable this functionality so that existing library code can be used with a 'diagnostic ignored' pragma.<p>You can build clang using the normal non-bootstrap process and you'll be left with a clang that compiles C++ but with the following modifications:<p><pre><code> - All basic types (excluding pointers and references) are const by
default and may be marked 'mutable' to allow them to be changed after
declaration
- Lambda capture lists must be explicit (no [&] or [=], by themselves)
- Braces are required for conditional statements, case and default
statements within switches, and loops
- Implicit conversions to bool are prohibited (e.g., pointers must be
compared against nullptr/NULL)
- No goto support
- Explicit 'rule of six' for classes must be programmer-implemented
(default, copy, and move c'tors, copy and move assignment, d'tor)
- No C style casts
</code></pre>
Here's an example program that's valid in Modified C++:<p><pre><code> mutable int main(int, char**)
{
mutable int x = 0;
return x;
}
Here's another that will fail to compile:
mutable int main(int, char**)
{
int x = 1;
x = 0; // x is constant
return x;
}
</code></pre>
I'd like your feedback. Future changes I'm thinking about are:<p><pre><code> - feature flag for modified c++ to enable/disable with 'diagnostic ignored'
pragma, to support existing headers and libraries
- support enum classes only
- constructor declarations are explicit by default
- namespaces within classes
- normalize lambda and free function syntax
- your ideas here</code></pre>
Show HN: SineRider - A game about love, math, and graphing built by teenagers
Hello everyone! It was so fun working on this project for the past few months with some of my fellow high school students :) I am so excited to share our first prototype and hopefully we'll be done with it all soon! <3<p>(ofc, it's open source, contribute here: <a href="https://github.com/hackclub/sinerider" rel="nofollow">https://github.com/hackclub/sinerider</a>)<p>The goal of the game is to slowly teach function composition that get progressively more complex while you also help the ghosts ski on the slopes and explore the entire map!
Show HN: SineRider - A game about love, math, and graphing built by teenagers
Hello everyone! It was so fun working on this project for the past few months with some of my fellow high school students :) I am so excited to share our first prototype and hopefully we'll be done with it all soon! <3<p>(ofc, it's open source, contribute here: <a href="https://github.com/hackclub/sinerider" rel="nofollow">https://github.com/hackclub/sinerider</a>)<p>The goal of the game is to slowly teach function composition that get progressively more complex while you also help the ghosts ski on the slopes and explore the entire map!
Show HN: SineRider - A game about love, math, and graphing built by teenagers
Hello everyone! It was so fun working on this project for the past few months with some of my fellow high school students :) I am so excited to share our first prototype and hopefully we'll be done with it all soon! <3<p>(ofc, it's open source, contribute here: <a href="https://github.com/hackclub/sinerider" rel="nofollow">https://github.com/hackclub/sinerider</a>)<p>The goal of the game is to slowly teach function composition that get progressively more complex while you also help the ghosts ski on the slopes and explore the entire map!
Show HN: SineRider - A game about love, math, and graphing built by teenagers
Hello everyone! It was so fun working on this project for the past few months with some of my fellow high school students :) I am so excited to share our first prototype and hopefully we'll be done with it all soon! <3<p>(ofc, it's open source, contribute here: <a href="https://github.com/hackclub/sinerider" rel="nofollow">https://github.com/hackclub/sinerider</a>)<p>The goal of the game is to slowly teach function composition that get progressively more complex while you also help the ghosts ski on the slopes and explore the entire map!
Show HN: Allsearch – Making it easier to use different search engines seamlessly
Allsearch is a tool I made after getting fed up with Google's search results and reading up on conversations on HN about the state of search on the internet.<p>This is a tool I made as a spiritual successor to GnodSearch (<a href="https://www.gnod.com/search/" rel="nofollow">https://www.gnod.com/search/</a>), which I've seen in a couple conversations about search on HN. GnodSearch is great, but a bit barebones in terms of looks and functionality; Allsearch is my attempt to build off of it.<p>Similar to Gnod, Allsearch allows you to apply any given search query to a search engine of your choice (either through only keystrokes, or via mouse). However, it also allows you to add your own engines to its catalogue, and allows you to define macros to use multiple engines simultaneously (useful for easily comparing engines).<p>It's not feature complete; there are still some things I'd like to add in. There are way more engines I want to add to it's default catalogue, and I also want to add in the ability to export your settings to allow people to easily share their Allsesarch configurations.<p>Curious about people's thoughts on it :)
Show HN: Allsearch – Making it easier to use different search engines seamlessly
Allsearch is a tool I made after getting fed up with Google's search results and reading up on conversations on HN about the state of search on the internet.<p>This is a tool I made as a spiritual successor to GnodSearch (<a href="https://www.gnod.com/search/" rel="nofollow">https://www.gnod.com/search/</a>), which I've seen in a couple conversations about search on HN. GnodSearch is great, but a bit barebones in terms of looks and functionality; Allsearch is my attempt to build off of it.<p>Similar to Gnod, Allsearch allows you to apply any given search query to a search engine of your choice (either through only keystrokes, or via mouse). However, it also allows you to add your own engines to its catalogue, and allows you to define macros to use multiple engines simultaneously (useful for easily comparing engines).<p>It's not feature complete; there are still some things I'd like to add in. There are way more engines I want to add to it's default catalogue, and I also want to add in the ability to export your settings to allow people to easily share their Allsesarch configurations.<p>Curious about people's thoughts on it :)
Show HN: I made a writing tool that asks questions like Socrates
Show HN: I made a writing tool that asks questions like Socrates
I built a vector map from scratch
Hi HN<p>I've used a lot of vector maps in the past, and was always fascinated by the technology, so I decided to try and build one from scratch as a way to learn more about how it works, and also as a reason to (finally) learn WebGL.<p>I've uploaded the source to GitHub <a href="https://github.com/kochis/webgl-map" rel="nofollow">https://github.com/kochis/webgl-map</a><p>Hope someone finds it useful / informative, and open to any feedback or tips as well. Cheers!