The best Hacker News stories from Show from the past week
Latest posts:
Show HN: My Go SQLite driver did poorly on a benchmark, so I fixed it
<a href="https://github.com/ncruces/go-sqlite3">https://github.com/ncruces/go-sqlite3</a> was doing poorly on this benchmark that was posted yesterday to HackerNews [1].<p>With the help of some pprof, I was able to trace it to a serious performance regression introduced two weeks ago, and come up with the fix (happy to field questions, if you're interested in the nitty gritty).<p>It's not the fastest driver around, but it's no longer the slowest: comfortably middle of the pack.
It's based on a WASM build of SQLite, and thanks to <a href="https://wazero.io" rel="nofollow noreferrer">https://wazero.io</a> doesn't need CGO.<p>[1]: <a href="https://news.ycombinator.com/item?id=38626698">https://news.ycombinator.com/item?id=38626698</a>
Show HN: Airdraw
Hey Everyone! I wanted to show my passion project I made a few years back and recently turned into a web app.<p>Airdraw is an app that takes in your hand gestures and converts it into real time drawing capabilities.<p>There are tons of stuff I want to build with this, but most importantly just put it out into the world! Hope you all enjoy :)<p>Tested on my MacOS with Chrome, Safari, and FF<p>I included a link to the original GH project I wrote here - <a href="https://github.com/arefmalek/airdraw">https://github.com/arefmalek/airdraw</a>
and a link to the blog where I explained how I made it here - <a href="https://arefmalek.github.io/blog/Airdraw/" rel="nofollow noreferrer">https://arefmalek.github.io/blog/Airdraw/</a><p>If anyone has issues with loading, try again with this link - <a href="https://web-draw-e58vy7q9m-arefmalek.vercel.app/" rel="nofollow noreferrer">https://web-draw-e58vy7q9m-arefmalek.vercel.app/</a>. AFAIK, IOS livestream doesn't allow a canvas overlay so you would be able to draw, but not see anything until you exit the livestream. Hope someone has a sol for that ¯\_(ツ)_/¯
Show HN: I scraped 25M Shopify products to build a search engine
Hi HN! I built Agora as a side-project leading up to the holiday season. I wanted to find an easier way to find Christmas gifts, without needing to go store-by-store.<p>My wife asked me for a a pair of red shoes for Christmas. I quickly typed it into Google and found a combination of ads from large retailers and links to a 1948 movie called 'Red Shoes'. I decided to build Agora to solve my own problem (and stay happily married). The product is a search engine that automatically crawls thousands of Shopify stores and makes them easily accessible with a search interface. There's a few additional features to enhance the buying experience including saving products, filters, reviews, and popular products.<p>I've started with exclusively Shopify stores and plan to expand the crawler to other e-commerce platforms like BigCommerce, WooCommerce, Wix, etc. The technical challenge I've found is keeping the search speed and performance strong as the data set becomes larger. There's about 25 million products on Agora right now. I'll ramp this up carefully to make sure we don't compromise the search speed and user experience.<p>I'd love any feedback!
I benchmarked six Go SQLite drivers
Show HN: Advent of Distributed Systems
Hey! I built a playground called Advent of Distributed Systems (<a href="https://aods.cryingpotato.com/" rel="nofollow noreferrer">https://aods.cryingpotato.com/</a>) where you can work through the Fly.io distributed systems challenges (<a href="https://fly.io/dist-sys/1/">https://fly.io/dist-sys/1/</a>) directly in your browser. Running challenges like this directly in the browser has often been the best way for me to get the activation energy to start them since it bypasses all the annoying dev environment setup that has to happen as a precursor to working on it.<p>The coding environment was built with another project I'm working on called Cannon (<a href="https://cannon.cryingpotato.com/" rel="nofollow noreferrer">https://cannon.cryingpotato.com/</a>) that aims to let you embed codeblocks of any language in your browser. Right now the Go environment runs on a Modal backend using their sandbox, but I'm hoping to use the excellent work done on Hackpad (<a href="https://github.com/hack-pad/hackpad/tree/main">https://github.com/hack-pad/hackpad/tree/main</a>) to run the whole thing in your browser, with no network calls necessary, soon.<p>Let me know what you think - week 3 is coming out soon!
Show HN: Visualize rotating objects from the 4th, 5th, nth dimensions
Ever since I remember I had a lot of curiosity regarding hyper dimensional spaces. Picturing higher dimensions, such an impossible yet exciting idea... So years ago I came across a small GIF of a tesseract. Since then it left me wondering how cubes from even higher dimensions would look like... Years passed and I became a software developer, decided to tackle the problem myself and ncube was the result.<p>ncube allows you to visualize rotating hypercubes of arbitrary dimensions. It works by rotating the hyperdimensional vertices and applying a chain of perspective projections to them until the 3rd dimension is reached. Everything is generated in real time just from the dimension number.<p>The application is fully free and open source: <a href="https://github.com/ndavd/ncube">https://github.com/ndavd/ncube</a>. There, you'll find some demos, more detailed explanation and how you can test it out yourself.
Binaries for Windows, Mac and Linux are available: <a href="https://github.com/ndavd/ncube/releases/latest">https://github.com/ndavd/ncube/releases/latest</a>
There's also a web version that runs fully on the browser: <a href="https://ncube.ndavd.com" rel="nofollow noreferrer">https://ncube.ndavd.com</a><p>If you like the project I'd appreciate if you could give it a star on GitHub ♥ If you have any issue or feature request please submit at <a href="https://github.com/ndavd/ncube/issues">https://github.com/ndavd/ncube/issues</a><p>-- EDIT DEC13 2023: IMPORTANT NOTICE --<p><a href="https://ncube.ndavd.com" rel="nofollow noreferrer">https://ncube.ndavd.com</a> MIGHT BE DOWN FOR YOU.<p>I deeply appreciate all the attention and feedback that ncube has been having this last day.<p>Alas it has become too big for the free hosting that I'm currently using and has exceeded my available monthly bandwidth.<p>I will be fixing it soon. In the meantime I recommend using the native binaries from <a href="https://github.com/ndavd/ncube">https://github.com/ndavd/ncube</a><p>UPDATE: <a href="https://ncube.ndavd.com" rel="nofollow noreferrer">https://ncube.ndavd.com</a> IS BACK ONLINE and with a performance boost. Should load faster now.<p>-- EDIT DEC17 2023 --<p>If ncube is leaving your system unresponsive it should be due to a recent Chromium issue with hardware acceleration affecting at least all Chromium-based web browsers on Linux. In case you're on Brave downgrading to 1.60 fixes it.<p>- 0xndavd
Show HN: A pure C89 implementation of Go channels, with blocking selects
Show HN: Open-source macOS AI copilot using vision and voice
Heeey! I built a macOS copilot that has been useful to me, so I open sourced it in case others would find it useful too.<p>It's pretty simple:<p>- Use a keyboard shortcut to take a screenshot of your active macOS window and start recording the microphone.<p>- Speak your question, then press the keyboard shortcut again to send your question + screenshot off to OpenAI Vision<p>- The Vision response is presented in-context/overlayed over the active window, and spoken to you as audio.<p>- The app keeps running in the background, only taking a screenshot/listening when activated by keyboard shortcut.<p>It's built with NodeJS/Electron, and uses OpenAI Whisper, Vision and TTS APIs under the hood (BYO API key).<p>There's a simple demo and a longer walk-through in the GH readme <a href="https://github.com/elfvingralf/macOSpilot-ai-assistant">https://github.com/elfvingralf/macOSpilot-ai-assistant</a>, and I also posted a different demo on Twitter: <a href="https://twitter.com/ralfelfving/status/1732044723630805212" rel="nofollow noreferrer">https://twitter.com/ralfelfving/status/1732044723630805212</a>
Show HN: I built an OSS alternative to Azure OpenAI services
Hey HN, I am proud to show you guys that I have built an open source alternative to Azure OpenAI services.<p>Azure OpenAI services was born out of companies needing enhanced security and access control for using different GPT models. I want to build an OSS version of Azure OpenAI services that people could self host in their own infrastructure.<p>"How can I track LLM spend per API key?"<p>"Can I create a development OpenAI API key with limited access for Bob?"<p>"Can I see my LLM spend breakdown by models and endpoints?"<p>"Can I create 100 OpenAI API keys that my students could use in a classroom setting?"<p>These are questions that BricksLLM helps you answer.<p>BricksLLM is an API gateway that let you create API keys with rate limit, cost control and ttl that could be used to access all OpenAI and Anthropic endpoints with out of box analytics.<p>When I first started building with OpenAI APIs, I was constantly worried about API keys being comprised since vanilla OpenAI API keys would grant you unlimited access to all of their models. There are stories of people losing thousands of dollars and the existence of a black market for stolen OpenAI API keys.<p>This is why I started building a proxy for ourselves that allows for the creation of API keys with rate limits and cost controls. I built BricksLLM in Go since that was the language I used to build performative ads exchanges that scaled to thousands of requests per second at my previous job. A lot of developer tools in LLM ops are built with Python which I believe might be suboptimal in terms of performance and compute resource efficiency.<p>One of the challenges building this platform is to get accurate token counts for different OpenAI and Anthropic models. LLM providers are not exactly transparent with the way how they count prompt and completion tokens. In addition to user input, OpenAI and Anthropic pad prompt inputs with additional instructions or phrases that contribute to the final token counts. For example, Anthropic's actual completion token consumption is consistently 4 more than the token count of the completion output.<p>The latency of the gateway hovers around 50ms. Half of the latency comes from the tokenizer. If I start utilizing Go routines, might be able to lower the latency of the gateway to 30ms.<p>BricksLLM is not an observability platform, but we do provide integration with Datadog so you can get more insights regarding what is going on inside the proxy. Compared to other tools in the LLMOps space, I believe that BricksLLM has the most comprehensive features when it comes to access control.<p>Let me know what you guys think.
Show HN: I Remade the Fake Google Gemini Demo, Except Using GPT-4 and It's Real
Show HN: I Remade the Fake Google Gemini Demo, Except Using GPT-4 and It's Real
Show HN: Open source alternative to ChatGPT and ChatPDF-like AI tools
Hey everyone,<p>We have been building SecureAI Tools -- an open-source application layer for ChatGPT and ChatPDF-like AI tools.<p>It works with locally running LLMs as well as with OpenAI-compatible APIs. For local LLMs, it supports Ollama which supports all the gguf/ggml models.<p>Currently, it has two features: Chat-with-LLM, and Chat-with-PDFs. It is optimized for self-hosting use cases and comes with basic user management features.<p>Here are some quick demos:<p><pre><code> * Chat with documents using OpenAI's GPT3.5 model: https://www.youtube.com/watch?v=Br2D3G9O47s
* Chat with documents using a locally running Mistral model (M2 MacBook): https://www.youtube.com/watch?v=UvRHL6f_w74
</code></pre>
Hope you all like it :)
Show HN: Open-source alternatives to tools You pay for
hey makers,
I've spent the whole night to compile this list out of
> winners of Product Hunt
> best dev tools on DevHunt
> recently active on GitHub
> most internet backlinks
> most mentions as "alternative to .."<p>Let me know if I should add anything there.
Show HN: CopilotKit- Build in-app AI chatbots and AI-powered textareas
Show HN: Dropbase – Build internal web apps with just Python
Hey HN, I’m Jimmy, co-founder of Dropbase (<a href="https://www.dropbase.io">https://www.dropbase.io</a>). We are an internal tools builder for Python developers. All you have to do is import any Python scripts/libraries, declare UI components, and layer app permissions so you can share them with others.<p>We’re a middle ground between Airplane and Retool—simpler UI creation than Airplane, more code-centered than Retool. UI building is declarative and you can bind Python scripts/functions to UI components. You can write Python scripts/functions using our App Studio with support from a Python Language Server Protocol (LSP) for linting. Since the self-hosted worker directly references .py or .sql files in the filesystem, you can even write them on VSCode directly or import any other Python script or library.<p>Our app layout is highly opinionated to speed up app building. Instead of an open canvas for UI building, we just give you a main table view and a widget sidebar. This approach significantly reduces app-building time while still covering what most tools need: see some data and take actions based on it. It’s not flexible enough to do absolutely anything, but that’s the point—there’s a tradeoff between flexibility and speed. Dropbase gives you most of what you need, plus speed!<p>A neat feature we are experimenting with to build admin panels fast is “Smart Tables”. We convert any SQL SELECT statement (even across multiple joins and filters) into an inline editable table, like spreadsheets, without any additional code.<p>We have a hybrid hosting model that combines a self-hosted client and a worker server, with a backend API for app/component definitions hosted by us to simplify pushing feature updates. The worker server sits in your machines so your sensitive data doesn’t leave your infra.<p>We’re Python-centric for now, but plan to add support for Rust, Go, and others later.<p>We made a few demo videos building common tools:
- Customer approval tool: <a href="https://youtu.be/A1MIIRNkv3Q" rel="nofollow noreferrer">https://youtu.be/A1MIIRNkv3Q</a>
- Data editing tool (with Smart Table): <a href="https://youtu.be/R1cHO9lMRXo" rel="nofollow noreferrer">https://youtu.be/R1cHO9lMRXo</a><p>To try Dropbase, create an account at <a href="https://app.dropbase.io">https://app.dropbase.io</a> and generate a token, then follow these instructions for local setup: <a href="https://docs.dropbase.io/setup/developer">https://docs.dropbase.io/setup/developer</a>.<p>We are very early so we're really excited to get your feedback, especially on our approach to tools building with Python! My co-founder Ayazhan and some of our teammates will be around to answer questions.
Show HN: How did your computer reach my server?
Show HN: Beeper Mini – iMessage client for Android
Hi HN! I’m proud to share that we have built a real 3rd party iMessage client for Android. We did it by reverse engineering the iMessage protocol and encryption system. It's available to download today (no waitlist): <a href="https://play.google.com/store/apps/details?id=com.beeper.ima">https://play.google.com/store/apps/details?id=com.beeper.ima</a> and there's a technical writeup here: <a href="https://blog.beeper.com/p/how-beeper-mini-works">https://blog.beeper.com/p/how-beeper-mini-works</a>.<p>Unlike every other attempt to build an iMessage app for Android (including our first gen app), Beeper Mini does not use a Mac server relay in the cloud. The app connects directly to Apple servers to send and receive end-to-end encrypted messages. Encryption keys never leave your device. No Apple ID is required. Beeper does not have access to your Apple account.<p>With Beeper Mini, your Android phone number is registered on iMessage. You show up as a ‘blue bubble’ when iPhone friends text you, and can join real iMessage group chats. All chat features like typing status, read receipts, full resolution images/video, emoji reactions, voice notes, editing/unsending, stickers etc are supported.<p>This is all unprecedented, so I imagine you may have a lot of questions. We’ve written a detailed technical blog post about how Beeper Mini works: <a href="https://blog.beeper.com/p/how-beeper-mini-works">https://blog.beeper.com/p/how-beeper-mini-works</a>. A team member has published an open source Python iMessage protocol PoC on Github: <a href="https://github.com/JJTech0130/pypush">https://github.com/JJTech0130/pypush</a>. You can try it yourself on any Mac/Windows/Linux computer and see how iMessage works. My cofounder and I are also here to answer questions in the comments.<p>Our long term vision is to build a universal chat app (<a href="https://blog.beeper.com/p/were-building-the-best-chat-app-on">https://blog.beeper.com/p/were-building-the-best-chat-app-on</a>). Over the next few months, we will be adding support for SMS/RCS, WhatsApp, Signal and 12 other chat networks into Beeper Mini. At that point, we’ll drop the `Mini` postfix. We’re also rebuilding our Beeper Desktop and iOS apps to support our new ‘client-side bridge’ architecture that preserves full end-to-end encryption. We’re also renaming our first gen apps to ‘Beeper Cloud’ to more clearly differentiate them from Beeper Mini.<p>Side note: many people always ask ‘what do you think Apple is going to do about this?’ To be honest, I am shocked that everyone is so shocked by the sheer existence of a 3rd party iMessage client. The internet has always had 3rd party clients! It’s almost like people have forgotten that iChat (the app that iMessage grew out of) was itself a multi-protocol chat app! It supported AIM, Jabber and Google talk. Here’s a blast from the past: <a href="https://i.imgur.com/k6rmOgq.png" rel="nofollow noreferrer">https://i.imgur.com/k6rmOgq.png</a>.
Show HN: Audio plugin for circuit-bent MP3 compression sounds
I made MAIM, an open-source audio plugin that uses real MP3 encoders to distort the sound. I've also added knobs that let you "circuit bend" the encoders, changing parameters that would normally be inaccessible to the user to get strange glitchy sounds.<p>The plugin lets you switch between two MP3 encoders, since under the MP3 standard, the specifics of what to lose in MP3 lossy compression is left up to the encoder. The encoders are LAME, the gold standard for open-source MP3 encoders, and BladeEnc, an old open-source MP3 encoder that has a really bubbly sound and was fun to work with.<p>I'd love any feedback, and I'll be around to answer questions!
Show HN: Onsites.fyi - Curated Big Tech Interview Experiences
Hi HN!<p>While Glassdoor and other employment discussion boards offer valuable interview experience data, navigating it to prepare for interviews can be difficult.<p>Onsites.fyi curates interview experiences and insights from Big Tech hiring across various positions and levels.<p>Our collection currently includes interview experiences from top-tier companies like Apple, Google, Meta, Microsoft, and Amazon.<p>Reviewing real interview experiences (rounds, questions, format) of others could be an invaluable preparation tool for interviews.<p>Try it out and please share any feedback!
Show HN: Simulate 3D plants in the browser