Thursday, January 9, 2025

Show HN: Zig Obfusgator https://ift.tt/2vngCeG

Show HN: Zig Obfusgator https://ift.tt/0Ti58QI January 9, 2025 at 01:22AM

New Downtown Express Service and Other Route Changes Start Feb. 1

New Downtown Express Service and Other Route Changes Start Feb. 1
By Benjamin Barnett

Riders on the 29 Sunset will see improved bus stops on Sunset Boulevard thanks to recently completed construction. Beginning Saturday, Feb. 1, the SFMTA will be making some changes to Muni service. We must reduce service on some Muni routes because of our ongoing financial crisis. Some of these changes are not easy decisions for us to make. By doing so now, we can continue delivering reliable service. Meanwhile we can address the SFMTA's financial stability. At the same time, these changes aim to support downtown economic recovery. They are also designed to minimize impacts to customers. And...



Published January 08, 2025 at 05:30AM
https://ift.tt/tpLVQH8

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: Do You Know RGB? https://ift.tt/t8kUpbO

Show HN: Do You Know RGB? https://ift.tt/OWhvmMT June 24, 2025 at 01:49PM