Friday, January 10, 2025

Show HN: TLabWebViewVR – Open Source 3D Web Browser Project https://ift.tt/bTD1ksN

Show HN: TLabWebViewVR – Open Source 3D Web Browser Project https://ift.tt/aT70yLI January 10, 2025 at 08:20AM

Show HN: Never let friends forget who is the winner https://ift.tt/MucUBsj

Show HN: Never let friends forget who is the winner Hi HN, I made a simple little app to keep track of game rankings with friends. It uses the Elo system (like in chess) to adjust scores after each game. Works for board games, chess, padel, tennis, or anything that’s competitive. It’s free — give it a try https://www.shmelo.io/ January 10, 2025 at 06:17AM

Show HN: Ultra-portable Gantt chart tool for very regulated environments https://ift.tt/LeVbzDu

Show HN: Ultra-portable Gantt chart tool for very regulated environments I work for government agency with a lot of security considerations. We can't install anything and using public webapps is out of the question. Going through clearance or procurement to buy or install something is a pain. I needed a project management tool, and what we had on offer was too clunky and old. I built SimpleGantt to be ultra lightweight and portable. It's one HTML, one Javascript and one CSS file. Each project is saved into a single .yaml file. If you have a SharePoint environment you can "host" it by uploading the repo to SharePoint after renaming simplegantt.html to simplegantt.aspx. That allows anyone with access to open the tool by simply having the URL. Try it at: https://ift.tt/OGpWcAb This is a couple of days of tinkering, and mostly exists to keep me from going crazy while managing projects with lots of deadlines and dependencies, so don't expect much. But another person in the same position, finding this might lead to calmer days. https://ift.tt/wcp7u0o January 9, 2025 at 10:41PM

Thursday, January 9, 2025

Show HN: Zero-overhead compile-time builder pattern for Rust https://ift.tt/aguGRS2

Show HN: Zero-overhead compile-time builder pattern for Rust https://ift.tt/pGK4mBj January 9, 2025 at 04:03AM

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

Show HN: I trained a chess engine to play like humans https://ift.tt/i5eF9rL

Show HN: I trained a chess engine to play like humans I built 1e4.ai - a chess web app where you play against neural networks trained to mim...