Thursday, January 9, 2025

Show HN: Cardstock- Free TCG Proxy Manager for Magic, Yugioh, & Pokemon https://ift.tt/UEh1rHz

Show HN: Cardstock- Free TCG Proxy Manager for Magic, Yugioh, & Pokemon Trading cards are awesome, but paying $30 for some cardboard isn’t. I’ve upscaled 60,000 cards from the entire catalog of Yugioh, Magic, Pokemon, & a newer game, https://elestrals.com . I've made it easy to build a decklist, download it, and then print at home. Modern inkjet printers got really good when nobody was looking. While it’s clear they’re not real cards, the upscaling makes them look great for casual play (these are not tournament legal). It’s totally free, give it a try! Supplies: https://ift.tt/WfyvJeF Printer Settings: https://ift.tt/yTvIxQd Instructions: https://ift.tt/l8Jik75 Overview: I built Cardstock because I had some scripts to do this lying around, and wanted to explore the new Rails 8 magic. Kamal 2 (kamal-deploy.org/) is a game changer, SQLite in production is fine, and the database backed solid family of gems work like a charm. Compute: I am renting a box on https://hetzner.com located in VA for $15/mo. This box has 8 gigs of ram and 2 vCPU's. This is such a deal compared to compute prices on https://render.com . Kamal 2: This thing is amazing. Kamal gives me everything I could want (easy console access, easy shell access, a way to manage secrets, a way to see my logs, and letsencrypt support for DNS), all without a PaaS tax. The best part is the accessories feature: https://ift.tt/O8YJyZ9 . I am running my main app with two accessories: Meilisearch( https://meilisearch.com ) and OpenObserve ( https://openobserve.ai ). Instead of paying Algolia to host search infrastructure and sentry to host monitoring infrastructure, I’m hosting my own OSS without any fanfare. Upscaling: To upscale the trading cards (a mandatory part of this build, scans are never high enough DPI). I am using this ( https://ift.tt/dO4aTKl ) model. For upscaling every card, I've used under a hundred bucks of compute. This model was picked on a whim, but worked well enough that I didn’t compare other models. SQLite: I used SQLite combined with Litestream (litestream.io) for my database. While I considered Postgres, I hesitated due to uncertainties around handling backups on self-hosted infrastructure. This was my first time using SQLite in production, and it was functional but with some minor annoyances. Here’s what I encountered: 1. No Default UUID Primary Key Type I had to set primary keys as strings and assign IDs manually from the application record. It’s an annoying workaround but manageable. 2. No Native Array Columns Because SQLite doesn’t support array columns, I had to use its native JSON column type, which just felt icky. If I were working with something like embeddings, this would be especially annoying, because you couldn’t enforce all the records to have the same number of dimensions. 3. Cryptic Errors At one point, a migration failed silently, leaving a cryptic error in schema.rb. The issue was resolved by rolling back the migration and redoing it, but it was once again, annoying. 4. Litestream Defaults Litestream deletes snapshots after 24 hours by default, which is far too short. When I tried to recover some data, I found it had already been deleted. Adjusting these defaults fixed the problem. Solid Queue/Cache/Cable: The solid family of gems are all backed by the database and were a pleasure to work with. Goal was to prevent needing to reach for redis, so you have one less thing to worry about. You end up with a little more latency, which is a totally reasonable tradeoff. Conclusions: We are moving into a post platform as a service world. Instead of buying a bespoke render.com or heroku, you just buy commodity compute and use Kamal to manage. It's like, pretty much all there, excited to see how this space matures. https://ift.tt/kIURtqy January 8, 2025 at 08:41PM

Wednesday, January 8, 2025

Show HN: I've been posting a sound I made everyday day for the last year https://ift.tt/tUFPlx6

Show HN: I've been posting a sound I made everyday day for the last year Hi - I'm part composer, part engineer and big fan of reading blogs where people learn out loud or with the garage door up by sharing their notebooks or journals. I've been doing this in Moleskines for years (going back to the 80s) but made it a new year's in 2024 resolution to post SOMETHING everyday, so long as I created the sound. I have a big archive of demos and seeds of ideas, so I figured it wouldn't hurt to do something with those in the process. Being so steeped in programming for the last 30 years, a healty chunk of this material is made via coding with Csound, TidalCycles, some raw crude apps I've written from scratch, so I thought it would be of interest to the HN world. Admittedly it's pretty self-indulgent, with a lot of names and references you won't get unless you know me, and the pics are often something from my camera roll that day if there's not a scan of music notation to share. I think it's a very indieweb approach to take, though I wasn't aware of there being an indieweb movement until... 2022 probably. Thanks for reading and listening - let me know what you think. Here's the ASK HN Part: Here are a few blogs where someone is doing this learning out loud. Any others come to mind? Rafal Pastuszak's Untested https://ift.tt/CXGfs6E James Kochalka's American Elf https://ift.tt/PM3ZGXy... Lynda Barry's Tumblr https://ift.tt/F25kRfp https://ift.tt/hA3CgfS January 8, 2025 at 01:15AM

Show HN: HipScript – Run CUDA in the Browser with WebAssembly and WebGPU https://ift.tt/3kubYDL

Show HN: HipScript – Run CUDA in the Browser with WebAssembly and WebGPU CUDA is NVIDIA's language for GPU programming, allowing you to mix write CPU and GPU code in C++ in one file. By chaining a few projects that compile CUDA to OpenCL, then Vulkan, then WebGPU, you can experiment with this GPGPU language on any hardware. https://ift.tt/yGg2xLz January 7, 2025 at 09:14PM

Show HN: Tinyhnsw – The Littlest Vector Database https://ift.tt/Kby8FXh

Show HN: Tinyhnsw – The Littlest Vector Database In an effort to understand it, I put together a simple, pure python implementation of HNSW, an approximate nearest neighbor library. Learned a lot, and I think for anyone interested in vector search it's an exercise that's absolutely worth doing. The code is optimized (imo) for readability, and working (albeit, quite slowly) on putting together a tutorial that walks through the motivation and implementation of HNSW. There's also working code examples for using the library for text and image search with sentence transformers and CLIP! https://ift.tt/CiMfmxd January 7, 2025 at 11:14PM

Tuesday, January 7, 2025

Show HN: I created a directory of the most durable products in the world https://ift.tt/WFV10lx

Show HN: I created a directory of the most durable products in the world Hi HN, I'm a big fan of buy it for life products so I created a directory for them. I'm looking for some feedback! https://ift.tt/8KoXdxf January 7, 2025 at 01:35AM

Show HN: A 100-Line LLM Framework https://ift.tt/KtGhcDv

Show HN: A 100-Line LLM Framework I've seen a lot of comments about how complex frameworks like LangChain can be. Over the holidays, I wanted to see how minimal an LLM framework could get if we stripped away everything non-essential. The result is an LLM framework in just 100 lines of code. These 100 lines capture what I see as the core abstraction of most LLM frameworks: a nested directed graph that breaks down tasks into multiple LLM steps, with branching and recursion to enable agent-like decision-making. From there, you can layer on more advanced features like agents, RAG, task decomposition, and more. I’ve intentionally avoided bundling vendor-specific wrappers (e.g., for OpenAI) into the framework. That kind of lock-in can be brittle and is easy to recreate on the fly—just feed the vendor’s API docs into your favorite LLM to generate a new wrapper. With miniLLMFlow, you only get the fundamentals. It also works nicely with coding assistants like ChatGPT, Claude, and Cursor.ai. Because the code is so minimal, you can quickly share the entire "source code and documentation with an AI assistant, and it can help you build new workflows on the spot. I’m adding more examples (including multi-agent setups) and would love feedback! If there's a feature or use case you’d like to see, please let me know. GitHub: https://ift.tt/KcO1ZwE https://ift.tt/KcO1ZwE January 6, 2025 at 09:20PM

Taken with Transportation Podcast: Thank You, Jeff Tumlin

Taken with Transportation Podcast: Thank You, Jeff Tumlin
By

Jeff Tumlin has left the SFMTA after five years with our agency. His last day was Dec. 31, 2024. It’s January 2025, and we have said goodbye to Director of Transportation Jeff Tumlin. Director Tumlin announced in mid-December that he would not renew his contract and instead would step down from his position at the end of the year. “Thank You, Jeff Tumlin” is the latest episode of our Taken with Transportation podcast. In it, we talk with our former director about his time at the agency. Reflecting on the last five years “I started this job on Dec. 15, 2019. Three months later, we were in...



Published January 06, 2025 at 05:30AM
https://ift.tt/ml9XKbV

Show HN: Free OSS transcription app I made and found it's faster than wispr flow https://ift.tt/jXQh9Tk

Show HN: Free OSS transcription app I made and found it's faster than wispr flow title doesn't let nuance, ofc it's not the app ...