The best Hacker News stories from Show from the past week
Latest posts:
Show HN: ScratchDB – Open-Source Snowflake on ClickHouse
Hello! For the past year I’ve been working on a fully-managed data warehouse built on Clickhouse. I built this because I was frustrated with how much work was required to run an OLAP database in prod: re-writing my app to do batch inserts, managing clusters and needing to look up special CREATE TABLE syntax every time I made a change. I found pricing for other warehouses confusing (what is a “credit” exactly?) and worried about getting capacity-planning wrong.<p>I was previously building accounting software for firms with millions of transactions. I desperately needed to move from Postgres to an OLAP database but didn’t know where to start. I eventually built abstractions around Clickhouse: My application code called an insert() function but in the background I had to stand up Kafka for streaming, bulk loading, DB drivers, Clickhouse configs, and manage schema changes.<p>This was all a big distraction when all I wanted was to save data and get it back. So I decided to build a better developer experience around it. The software is open-source: <a href="https://github.com/scratchdata/ScratchDB">https://github.com/scratchdata/ScratchDB</a> and and the paid offering is a hosted version: <a href="https://www.scratchdb.com/">https://www.scratchdb.com/</a>.<p>It's called “ScratchDB” because the idea is to make it easy to get started from scratch. It’s a massively simpler abstraction on top of Clickhouse.<p>ScratchDB provides two endpoints [1]: one to insert data and another to query. When you send any JSON, it automatically creates tables and columns based on the structure [2]. Because table creation is automated, you can just start sending data and the system will just work [3]. It also means you can use Scratch as any webhook destination without prior setup [4,5]. When you query, just pass SQL as a query param and it returns JSON.<p>It handles streaming and bulk loading data. When data is inserted, I append it to a file on disk, which is then bulk loaded into Clickhouse. The overall goal is for the platform to automatically handle managing shards and replicas.<p>The whole thing runs on regular servers. Hetzner has become our cloud of choice, along with Backblaze B2 and SQS. It is written in Go. From an architecture perspective I try to keep things simple - want folks to make economical use of their servers.<p>So far ScratchDB has ingested about 2 TB of data and 4,000 requests/second on about $100 worth of monthly server costs.<p>Feel free to download it and play around - if you’re interested in this stuff then I’d love to chat! Really looking for feedback on what is hard about analytical databases and what would make the developer experience easier!<p>[1] <a href="https://scratchdb.com/docs">https://scratchdb.com/docs</a><p>[2] <a href="https://scratchdb.com/blog/flatten-json/">https://scratchdb.com/blog/flatten-json/</a><p>[3] <a href="https://scratchdb.com/blog/scratchdb-email-signups/">https://scratchdb.com/blog/scratchdb-email-signups/</a><p>[4] <a href="https://scratchdb.com/blog/stripe-data-ingest/">https://scratchdb.com/blog/stripe-data-ingest/</a><p>[5] <a href="https://scratchdb.com/blog/shopify-data-ingest/">https://scratchdb.com/blog/shopify-data-ingest/</a>
Show HN: Fediverser Portal – Bring your subreddits to Lemmy
This is my attempt at helping those who are trying to ditch reddit but have not been satisfied with the content from Lemmy or haven't been able to find the corresponding communities.<p>There are two sides to this project. The first one is that I have setup a Lemmy instance (alien.top) which is mirroring some of the reddit content from subreddits that I wanted to follow <i>with the comments</i>. The difference from most mirroring bots is that, instead of one single bot account mirroring all content, the system creates one account for each reddit user that is being mirrored.<p>The <i>other</i> part of this idea which I believe is more interesting: reddit users can <i>take over</i> their own mirrored bot account on this Lemmy instance. The instance itself does not use the regular registration process, but instead authenticates via Reddit OAuth. If you login through through the "Portal", we can then grab your subscribed subreddits and (when it can) find the corresponding Lemmy communities and subscribe you to those automatically. At the moment there are not that Lemmy communities that are being mirrored because I've been the sole user, but hopefully if more people sign-up, it will help to create the network effects and more instance admins will be interested in hosting these "fediversed" communities.<p>All of the code is open source (<a href="https://github.com/mushroomlabs/fediverser">https://github.com/mushroomlabs/fediverser</a>) and I'm more than willing to help people getting their own instances if they don't want to use alien.top itself.<p>Questions and any type of feedback is always welcome!
Show HN: OpenAPI DevTools – Chrome extension that generates an API spec
Effortlessly discover API behaviour with a Chrome extension that automatically generates OpenAPI specifications in real time for any app or website.
Show HN: OpenAPI DevTools – Chrome extension that generates an API spec
Effortlessly discover API behaviour with a Chrome extension that automatically generates OpenAPI specifications in real time for any app or website.
Show HN: Restaurants in Peace – leave a remembrance for a closed restaurant
Hey HN! I go a bit about the project on the about [0] page, but wanted to chime in here as well.<p>It’s been a project long in the making - it started in 2019, before everything shut down/changed. The list of closed restaurants I found - for New York only - was already really long. So now (that I have time to work on it at recurse.com) it really felt like I needed to do something about it.<p>When a restaurant (or any business) shows up on Google Maps as “permanently closed”, in that bright red font, there’s always a tiny bit of a pang of sadness. It’s definitely more than a pang when you look for a place you loved and expected to visit again.<p>The project’s “aesthetic” is inspired by early 2000s funeral homes’ websites. The combination of funeral + restaurant is what made it click for me. Maybe what we long for is a place to share our losses? Maybe.<p>Thanks for checking it out! :)<p>[0] <a href="https://restaurants.rip/about" rel="nofollow noreferrer">https://restaurants.rip/about</a>
Show HN: Restaurants in Peace – leave a remembrance for a closed restaurant
Hey HN! I go a bit about the project on the about [0] page, but wanted to chime in here as well.<p>It’s been a project long in the making - it started in 2019, before everything shut down/changed. The list of closed restaurants I found - for New York only - was already really long. So now (that I have time to work on it at recurse.com) it really felt like I needed to do something about it.<p>When a restaurant (or any business) shows up on Google Maps as “permanently closed”, in that bright red font, there’s always a tiny bit of a pang of sadness. It’s definitely more than a pang when you look for a place you loved and expected to visit again.<p>The project’s “aesthetic” is inspired by early 2000s funeral homes’ websites. The combination of funeral + restaurant is what made it click for me. Maybe what we long for is a place to share our losses? Maybe.<p>Thanks for checking it out! :)<p>[0] <a href="https://restaurants.rip/about" rel="nofollow noreferrer">https://restaurants.rip/about</a>
Show HN: Pypipe – A Python command-line tool for pipeline processing
pypipe is a command-line tool for writing data pipelines in Python. When working with data processing in the terminal, I often find myself wanting to pass the output of commands to Python for further processing. In such cases, one can either write one-liners or create regular Python scripts and connect them through pipes. However, using pypipe makes this process more convenient and efficient.
Show HN: WebSession, a Secure Replacement for Cookies
Show HN: CFR[]: Very minimal drawing language with 5 commands: C, F, R, [, ]
Show HN: Autotab – An AI-powered Chrome extension to create Selenium scripts
Autotab is a Chrome extension that writes Selenium code to mirror your actions as you navigate the browser. See it in action: <a href="https://youtu.be/UypAcozIaoo" rel="nofollow noreferrer">https://youtu.be/UypAcozIaoo</a><p>Autotab lets you create browser automations that actually work. We designed it around two principles:<p><pre><code> 1. Show, don’t tell: In a domain like web automation, it's often easier to *show* the model what you want rather than to explain it in sentences.
2. Code is the best output: Code is easy to inspect and enables manual tweaking of the model’s suggested actions. On top of that, code output avoids lock in and is straightforward to extend and integrate with larger projects.
</code></pre>
Autotab runs as a Chrome extension. As you navigate in the browser, autotab generates the Selenium code to reproduce your actions. You can copy that code into your own project or use our starter GitHub repo to get your automation up and running in <5 minutes: <a href="https://github.com/Planetary-Computers/autotab-starter">https://github.com/Planetary-Computers/autotab-starter</a>.<p>We'd love to hear what you think!
Show HN: "Interactive" Italian Poetry for English Speakers
It's hard to appreciate poetry in a language one doesn't know, so this is my attempt to make Italian poetry more easily enjoyable to English speakers. The approach is probably a bit nerdy, so I hope that at least it will be of interest on HN.<p>I basically implemented what I would like to have when I listen to songs or poems in a language I don't speak: karaoke-like, word by word, literal translation, with notes about word usage and some context when needed.<p>And some stuff about the language itself --- the part needed for the poems, at least.<p>The tech stack is as minimal as it gets: I was hoping for an old web vibe.<p>Feedback welcome!
Show HN: Firefox add-on to open YouTube videos in alternative front ends
YouTube started blocking me because I use an adblocker. So I made this simple Firefox Add-On (haven't made it cross-browser yet, contributions welcome!) to open videos in alternative front-ends (piped.video by default).<p>Default keybinding: Alt+J to reopen current page in the configured frontend.<p>Shift+Click to open any video in a new tab in the configured frontend.<p>You can change the default frontend to something else if you like.
Show HN: I built a virtual tabletop for playing Dungeons and Dragons
Diceright is a virtual tabletop for playing dungeons and dragons with friends on the web. You can watch a quick overview of how it works here: <a href="https://tinyurl.com/diceright" rel="nofollow noreferrer">https://tinyurl.com/diceright</a>. And there’s a list of the main features right on the homepage.<p>It’s a Ruby on Rails site that makes heavy use of action cable for keeping the maps and tokens in sync for all players. On the front end, I’m using HTML canvas for the maps and a js library called fabric.js for interacting with the canvas. Otherwise, just jQuery on the front end. I optimized it all to work on mobile too.<p>I built this as a side project for fun over of the past couple years. It took a lot longer than expected, but it was also a lot of fun. I did all the design / UX for it too which was a struggle at first but was a great learning experience.<p>Let me know what you think and if you have any questions. Thanks!
Show HN: See library availabilities for your Goodreads want-to-read list
This is a Goodreads + Libby app integration which shows you the library availability for each of the books on your Goodreads want to read list.<p>Basically, I got sick of manually looking up each book on my Want to Read list on the Libby app to see if it was available or how long the wait was. So I made this site which easily gathers all that info for me.<p>At this point, I'm scraping Goodreads to figure out the "Want to Read" list. Libby provides a nice API though.<p>Any feedback is appreciated!! I also have a substack that I'm going to use to post updates, so follow along there if you're interested :) projecttbr.substack.com
Show HN: Obligator – An OpenID Connect server for self-hosters
Show HN: Building a 42-inch E-Ink frame for generative art
Show HN: I made a all-in-one web app to help me with my freelance admin tasks
Show HN: DotBigBang – Multiplayer game engine with 120fps and 2 second load time
With all the turmoil in the game engine world recently, I thought I'd quickly post to show progress on our game platform dotbigbang.com.<p>It's a fully integrated game platform where the multiplayer game editor and games all run on the web. You can make multiplayer games and share them with just a link with no setup at all.<p>Breakdown of major features here: <a href="https://twitter.com/bobbydigitales/status/1526470671034818561" rel="nofollow noreferrer">https://twitter.com/bobbydigitales/status/152647067103481856...</a><p>We have comprehensive docs at <a href="http://docs.dotbigbang.com" rel="nofollow noreferrer">http://docs.dotbigbang.com</a> and a cosy Discord server at <a href="https://dotbigbang.com/discord" rel="nofollow noreferrer">https://dotbigbang.com/discord</a><p>All updates are on our blog here: <a href="https://blog.dotbigbang.com/" rel="nofollow noreferrer">https://blog.dotbigbang.com/</a>
Show HN: DotBigBang – Multiplayer game engine with 120fps and 2 second load time
With all the turmoil in the game engine world recently, I thought I'd quickly post to show progress on our game platform dotbigbang.com.<p>It's a fully integrated game platform where the multiplayer game editor and games all run on the web. You can make multiplayer games and share them with just a link with no setup at all.<p>Breakdown of major features here: <a href="https://twitter.com/bobbydigitales/status/1526470671034818561" rel="nofollow noreferrer">https://twitter.com/bobbydigitales/status/152647067103481856...</a><p>We have comprehensive docs at <a href="http://docs.dotbigbang.com" rel="nofollow noreferrer">http://docs.dotbigbang.com</a> and a cosy Discord server at <a href="https://dotbigbang.com/discord" rel="nofollow noreferrer">https://dotbigbang.com/discord</a><p>All updates are on our blog here: <a href="https://blog.dotbigbang.com/" rel="nofollow noreferrer">https://blog.dotbigbang.com/</a>
Show HN: Shortbread – Create AI comics in minutes
Just go to the link and click on "Start Creating". No signing in required.<p>I built shortbread to help anyone to create comics / manga series. The onboarding process helps you kick start a page from 60%, then you can use your creativity to bring it to 1000% in a fully-controllable editor.<p>Tech stack:<p>GPT 3.5 Turbo - the comic script generation. It handled everything from layout, character, scene, SD prompts, to dialogue.<p>SD 1.5 - We put up SD servers on GCP. For every comic we generate one large image and crop it into panels. Per the experiments of u/Deathmarkedadc on Reddit, this massively helps with consistency. The models are trained on anime scenes tho, and might not be so great with animals.<p>Frontend: Next.js 13 on Vercel, React + Typescript. We built the entire editor from scratch to compose the comic (images, panels, speech bubbles, text) like a webpage. This allows you to edit and republish your comics like a website.
You can dynamically generate panels as well. Try resizing a panel into a long narrow box and generate.<p>Backend: Firebase.<p>Sample comics:<p>a japanese couple sits at dinner table. The husband told the wife a secret (link <a href="https://create.shortbread.ai/viewer/debdf25c-3f95-492a-952a-3098e0044bf5_2">https://create.shortbread.ai/viewer/debdf25c-3f95-492a-952a-...</a>)<p>An army of male soldiers fighting against an army of female soldiers in ancient china (<a href="https://create.shortbread.ai/viewer/4566613c-7146-4ed7-9b8d-85bcd2e58785_2">https://create.shortbread.ai/viewer/4566613c-7146-4ed7-9b8d-...</a>)<p>a team of girls play volleyball against a team of boys (<a href="https://create.shortbread.ai/viewer/aafc2f61-d008-4f3f-aa8f-62d87080d66b_2">https://create.shortbread.ai/viewer/aafc2f61-d008-4f3f-aa8f-...</a> )<p>Next steps:<p>- More pages<p>- Fine panel-level control. Poses, control net, etc.<p>- Multi-character.<p>- Different styles.<p>- Allows you to control character design.<p>I’m Fengjiao Peng, founder and chief engineer at Shortbread. I was previously a webtoon artist. We want to build this into something you can create entire comics series / manga / webtoons with. Criticism and suggestions welcome!