The best Hacker News stories from Show from the past day
Latest posts:
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: 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: 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: Stack, an open-source Clerk/Firebase Auth alternative
Hey HN! Happy to finally launch Stack. We made it because we like to put apps into production quickly, and authentication & user management was taking up way too much time.<p>We have components like <SignIn /> and <AccountSettings /> that automatically adapt to whatever theme & design system you're using. Check the blog post to see the example with Radix UI and Joy UI.<p>Also, there's an admin dashboard for monitoring and editing accounts. Stack is 100% AGPL/MIT-licensed, so you can self-host it.<p>Cheers!
Show HN: Stack, an open-source Clerk/Firebase Auth alternative
Hey HN! Happy to finally launch Stack. We made it because we like to put apps into production quickly, and authentication & user management was taking up way too much time.<p>We have components like <SignIn /> and <AccountSettings /> that automatically adapt to whatever theme & design system you're using. Check the blog post to see the example with Radix UI and Joy UI.<p>Also, there's an admin dashboard for monitoring and editing accounts. Stack is 100% AGPL/MIT-licensed, so you can self-host it.<p>Cheers!
Show HN: Stack, an open-source Clerk/Firebase Auth alternative
Hey HN! Happy to finally launch Stack. We made it because we like to put apps into production quickly, and authentication & user management was taking up way too much time.<p>We have components like <SignIn /> and <AccountSettings /> that automatically adapt to whatever theme & design system you're using. Check the blog post to see the example with Radix UI and Joy UI.<p>Also, there's an admin dashboard for monitoring and editing accounts. Stack is 100% AGPL/MIT-licensed, so you can self-host it.<p>Cheers!
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: 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
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
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
Show HN: tu – Convert natural language date/time to UTC
Show HN: ZSV (Zip Separated Values) columnar data format
A columnar data format built using simple, mature technologies.
Show HN: CTRL-F for YouTube Videos
This is a small project i made years ago and updated to whisper last year, i still use it from time to time and thought it might be useful to others, or just put the idea out there for someone better than me to make a better implementation!
Show HN: CTRL-F for YouTube Videos
This is a small project i made years ago and updated to whisper last year, i still use it from time to time and thought it might be useful to others, or just put the idea out there for someone better than me to make a better implementation!
Show HN: A JavaScript library for data visualization in both SVG and Canvas
Here's a project I've been working on for a little while now. Ripl is a JS library that provides a unified API for rendering shapes on both canvas and SVG interchangeably. Over the years I've used D3 extensively to create data visualisations so I figured I'd have a go at making my own version with a slightly more modern API and stricter TypeScript support.<p>I am aware there are already libraries that can draw to multiple contexts interchangeably, but I've added a few little niceties to Ripl that (as far as I know) some other libraries don't have such as CSS-like query selectors, DOM-like event bubbling, and keyframe animation support.<p>The project is far from done and not published to NPM yet, but there are a few demos and source that you can look at in the repo.<p>I'm happy with how it has come along and the things I've learnt along the way, especially the math. My dream would be to one day work on this full-time and build out a full data-viz library.
Show HN: A JavaScript library for data visualization in both SVG and Canvas
Here's a project I've been working on for a little while now. Ripl is a JS library that provides a unified API for rendering shapes on both canvas and SVG interchangeably. Over the years I've used D3 extensively to create data visualisations so I figured I'd have a go at making my own version with a slightly more modern API and stricter TypeScript support.<p>I am aware there are already libraries that can draw to multiple contexts interchangeably, but I've added a few little niceties to Ripl that (as far as I know) some other libraries don't have such as CSS-like query selectors, DOM-like event bubbling, and keyframe animation support.<p>The project is far from done and not published to NPM yet, but there are a few demos and source that you can look at in the repo.<p>I'm happy with how it has come along and the things I've learnt along the way, especially the math. My dream would be to one day work on this full-time and build out a full data-viz library.
Show HN: My $1k self-install, off-grid solar backup build for renters
Show HN: My $1k self-install, off-grid solar backup build for renters