The best Hacker News stories from Show from the past day
Latest posts:
Show HN: SeekStorm – open-source sub-millisecond search in Rust
Show HN: SeekStorm – open-source sub-millisecond search in Rust
Show HN: SeekStorm – open-source sub-millisecond search in Rust
Show HN: A terminal tool for Logseq journal entries
Creator here. I built lsq to solve a simple but annoying workflow problem: having to leave the terminal just to make quick notes in Logseq.<p>Technical details:
- Written in Go using Bubble Tea for the TUI
- Reads Logseq's config.edn for format preferences
- Supports both external editor ($EDITOR) and TUI modes
- Handles both Markdown and Org formats<p>Core design decisions:
1. Zero-config default installation (uses standard ~/Logseq path)
2. Single command to open today's journal (just 'lsq')
3. TUI mode for Logseq-specific features (TODO/priority cycling)<p>The project started as a simple editor launcher but evolved to include a TUI when I realized certain Logseq features couldn't be easily replicated in a standard text editor.<p>Code and installation instructions are in the repo. Feedback and contributions welcome.
Show HN: Jinbase – Multi-model transactional embedded database
Hi HN ! Alex here. I'm excited to show you Jinbase (<a href="https://github.com/pyrustic/jinbase">https://github.com/pyrustic/jinbase</a>), my multi-model transactional embedded database.<p>Almost a year ago, I introduced Paradict [1], my take on multi-format streaming serialization. Given its readability, the Paradict text format appears de facto as an interesting data format for config files. But using Paradict to manage config files would end up cluttering its programming interface and making it confusing for users who still have choices of alternative libraries (TOML, INI File, etc.) dedicated to config files. So I used Paradict as a dependency for KvF (Key-value file format) [2], a new project of mine that focuses on config files with sections.<p>With its compact binary format, I thought Paradict would be an efficient dependency for a new project that would rely on I/O functions (such as Open, Read, Write, Seek, Tell and Close) to implement a minimalistic yet reliable persistence solution. But that was before I learned that "files are hard" [3]. SQLite with its transactions, BLOB data type and incremental I/O for BLOBs seemed like the right giant to stand on for my new project.<p>Jinbase started small as a key-value store and ended up as a multi-model embedded database that pushes the boundaries of what we usually do with SQLite. The first transition to the second data model (the depot) happened when I realized that the key-value store was not well suited for cases where a unique identifier is supposed to be automatically generated for each new record, saving the user the burden of providing an identifier that could accidentally be subject to a collision and thus overwrite an existing record. After that, I implemented a search capability that accepts UID ranges for the depot store, timespans (records are automatically timestamped) for both the depot and key-value stores and GLOB patterns and number ranges for string and integer keys in the key-value store.<p>The queue and stack data models emerged as solutions for use cases where records must be consumed in a specific order. A typical record would be retrieved and deleted from the database in a single transaction unit.<p>Since SQLite is used as the storage engine, Jinbase supports the relational model de facto. For convenience, all tables related to Jinbase internals are prefixed with "jinbase_", making Jinbase a useful tool for opening legacy SQLite files to add new data models that will safely coexist with the ad hoc relational model.<p>All four main data models (key-value, depot, queue, stack) support Paradict-compatible data types, such as dictionaries, strings, binary data, integers, datetimes, etc. Under the hood, when the user initiates a write operation, Jinbase serializes (except for binary data), chunks, and stores the data iteratively. A record can be accessed not only in bulk, but also with two levels of partial access granularity: the byte-level and the field-level.<p>While SQLite's incremental I/O for BLOBs is designed to target an individual BLOB column in a row, Jinbase extends this so that for each record, incremental reads cover all chunks as if they were a single unified BLOB. For dictionary records only, Jinbase automatically creates and maintains a lightweight index consisting of pointers to root fields, which then allows extracting from an arbitrary record the contents of a field automatically deserialized before being returned.<p>The most obvious use cases for Jinbase are storing user preferences, persisting session data before exit, order-based processing of data streams, exposing data for other processes, upgrading legacy SQLite files with new data models and bespoke data persistence solutions.<p>Jinbase is written in Python, is available on PyPI and you can play with the examples on the README.<p>Let me know what you think about this project.<p>[1] <a href="https://news.ycombinator.com/item?id=38684724">https://news.ycombinator.com/item?id=38684724</a><p>[2] <a href="https://github.com/pyrustic/kvf">https://github.com/pyrustic/kvf</a><p>[3] <a href="https://news.ycombinator.com/item?id=10725859">https://news.ycombinator.com/item?id=10725859</a>
Show HN: Vicinity – Fast, Lightweight Nearest Neighbors with Flexible Back Ends
We’ve just open-sourced Vicinity, a lightweight approximate nearest neighbors (ANN) search package that allows for fast experimentation and comparison of a larger number of well known algorithms.<p>Main features:<p>- Lightweight: the base package only uses Numpy<p>- Unified interface: use any of the supported algorithms and backends with a single interface: HNSW, Annoy, FAISS, and many more algorithms and libraries are supported<p>- Easy evaluation: evaluate the performance of your backend with a simple function to measure queries per second vs recall<p>- Serialization: save and load your index for persistence<p>After working with a large number of ANN libraries over the years, we found it increasingly cumbersome to learn the interface, features, quirks, and limitations of every library. After writing custom evaluation code to measure the speed and performance for the 100th time to compare libraries, we decided to build this as a way to easily use a large number of algorithms and libraries with a unified, simple interface that allows for quick comparison and evaluation.<p>We are curious to hear your feedback! Are there any algorithms that are missing that you use? Any extra evaluation metrics that are useful?
Show HN: Vicinity – Fast, Lightweight Nearest Neighbors with Flexible Back Ends
We’ve just open-sourced Vicinity, a lightweight approximate nearest neighbors (ANN) search package that allows for fast experimentation and comparison of a larger number of well known algorithms.<p>Main features:<p>- Lightweight: the base package only uses Numpy<p>- Unified interface: use any of the supported algorithms and backends with a single interface: HNSW, Annoy, FAISS, and many more algorithms and libraries are supported<p>- Easy evaluation: evaluate the performance of your backend with a simple function to measure queries per second vs recall<p>- Serialization: save and load your index for persistence<p>After working with a large number of ANN libraries over the years, we found it increasingly cumbersome to learn the interface, features, quirks, and limitations of every library. After writing custom evaluation code to measure the speed and performance for the 100th time to compare libraries, we decided to build this as a way to easily use a large number of algorithms and libraries with a unified, simple interface that allows for quick comparison and evaluation.<p>We are curious to hear your feedback! Are there any algorithms that are missing that you use? Any extra evaluation metrics that are useful?
Show HN: OrioleDB Beta7
Show HN: Markwhen: Markdown for Timelines
Show HN: Markwhen: Markdown for Timelines
Show HN: Markwhen: Markdown for Timelines
Show HN: Markwhen: Markdown for Timelines
Show HN: It took me 5() months to build a Plausible alternative
After months of using Google Analytics I realized only about 50% of people accepted my cookie-popup. I had months of incorrect data for my website.
I started looking for alternatives and eventually found Plausible, which is great (and open-source). Problem is, I didn't feel like paying 9$ a month to see the amount of visitors on a website i didn't even earn anything on, it was just a hobby project.<p>Eventually I started making my own web analytics. Which actually isn't that hard. It took me about a month of working on my spare time every now and then. Being GDPR compliant basically means to not save any personal identifiers. At first I thought it would be easy since something like a public IP adress can't count as a personal identifier right? I was very wrong.<p>How it works: When a user visited my website I saved the IP and Header for 24 hours. Then if they visited again I checked the combination of IP and Header against the ones saved in my DB. If they were the same I simply added 1 view to my data. If they weren't the same I added 1 unique daily user and 1 view.<p>That's in short how it works. A few weeks later I realized if I had this problem then other would also have it. So I started working on Simplytics.dev. I had to do a lot of new stuff and re-build my code from the ground-up twice. Small things like OAuth was completely new to me and took up a lot of time.<p>But eventually I got here and just launched something that with the knowledge I have today wouldn't even take a third of the time recreating today. It's my first real "Launch" and it feels really good finally creating something AND publishing it. Instead of a montly fee I opted to make it a pay-once service. Right now it's priced at 49$ but I'll see how it works out.<p>If you got any questions on how it works Id love to answer them.
Show HN: Open-source private home security camera system (end-to-end encryption)
I needed a security camera inside my house, one that would send motion notifications to my smartphone and would allow me to livestream remotely. However, I could not find one that I could trust due to privacy concerns. Many of them upload the plaintext of videos to their servers and none is fully open-source as far as I know. Therefore, I decided to use my spare time to build one from scratch. Called Privastead (as in Private Homestead), it uses OpenMLS for end-to-end encryption (between the camera local hub and the smartphone) and is mostly implemented in Rust (except for part of the Android app that is implemented in Kotlin). The system is functional now and I've been using it in my own house for the past couple of weeks.<p>Based on some of the discussions I've seen online, it seems like there are other users who are also concerned with the privacy implications of home security cameras. Therefore, I decided to open source my solution for everyone to use. If you need a privacy-preserving home security camera, please give it a try and provide feedback. Note that trying out the system requires you to have a supported IP camera, a local machine connected to the IP camera, a server, and an Android smartphone. I have put together detailed instructions on setting up the system, which I hope makes it easier for others to get the system up and running.<p>In addition, consider contributing to the project. The prototype currently has a lot of limitations: mainly that it has only been tested with one IP camera, only allows the use of one camera, and only supports Android. I'll continue to improve the prototype as time permits, but progress will be much faster if there are other contributors as well.
Show HN: Open-source private home security camera system (end-to-end encryption)
I needed a security camera inside my house, one that would send motion notifications to my smartphone and would allow me to livestream remotely. However, I could not find one that I could trust due to privacy concerns. Many of them upload the plaintext of videos to their servers and none is fully open-source as far as I know. Therefore, I decided to use my spare time to build one from scratch. Called Privastead (as in Private Homestead), it uses OpenMLS for end-to-end encryption (between the camera local hub and the smartphone) and is mostly implemented in Rust (except for part of the Android app that is implemented in Kotlin). The system is functional now and I've been using it in my own house for the past couple of weeks.<p>Based on some of the discussions I've seen online, it seems like there are other users who are also concerned with the privacy implications of home security cameras. Therefore, I decided to open source my solution for everyone to use. If you need a privacy-preserving home security camera, please give it a try and provide feedback. Note that trying out the system requires you to have a supported IP camera, a local machine connected to the IP camera, a server, and an Android smartphone. I have put together detailed instructions on setting up the system, which I hope makes it easier for others to get the system up and running.<p>In addition, consider contributing to the project. The prototype currently has a lot of limitations: mainly that it has only been tested with one IP camera, only allows the use of one camera, and only supports Android. I'll continue to improve the prototype as time permits, but progress will be much faster if there are other contributors as well.
Show HN: Open-source private home security camera system (end-to-end encryption)
I needed a security camera inside my house, one that would send motion notifications to my smartphone and would allow me to livestream remotely. However, I could not find one that I could trust due to privacy concerns. Many of them upload the plaintext of videos to their servers and none is fully open-source as far as I know. Therefore, I decided to use my spare time to build one from scratch. Called Privastead (as in Private Homestead), it uses OpenMLS for end-to-end encryption (between the camera local hub and the smartphone) and is mostly implemented in Rust (except for part of the Android app that is implemented in Kotlin). The system is functional now and I've been using it in my own house for the past couple of weeks.<p>Based on some of the discussions I've seen online, it seems like there are other users who are also concerned with the privacy implications of home security cameras. Therefore, I decided to open source my solution for everyone to use. If you need a privacy-preserving home security camera, please give it a try and provide feedback. Note that trying out the system requires you to have a supported IP camera, a local machine connected to the IP camera, a server, and an Android smartphone. I have put together detailed instructions on setting up the system, which I hope makes it easier for others to get the system up and running.<p>In addition, consider contributing to the project. The prototype currently has a lot of limitations: mainly that it has only been tested with one IP camera, only allows the use of one camera, and only supports Android. I'll continue to improve the prototype as time permits, but progress will be much faster if there are other contributors as well.
Show HN: Indentation-based syntax for Clojure
Show HN: Indentation-based syntax for Clojure
Show HN: Indentation-based syntax for Clojure
Show HN: Screen Sharing in the Browser
Seeing all the hype around Bolt.new, I decided to give it a try, and within just 30 minutes, I built a fully functional web app for screen sharing.<p>How It Works:<p>- One user opens a room and receives a unique code.<p>- Participants join by simply entering the code to view the shared screen.<p>After that initial build, I moved the project to Cursor to continue iterating and enhancing its features.<p>Github: <a href="https://github.com/tonghohin/screen-sharing">https://github.com/tonghohin/screen-sharing</a><p>Demo: <a href="https://share-your-screen.vercel.app" rel="nofollow">https://share-your-screen.vercel.app</a>