Show HN: OffChess – Offline chess puzzles app
Hi HN!
I'm the developer of rdx, a mildly popular ad-free, privacy and user friendly Reddit client. This time, I made something for a very specific use case: solving chess puzzles with no internet.
Why? Well, my Wi-Fi is terrible in the bathroom—and that's where I do some of my best thinking. I tried printing out “mate in X” puzzles to solve offline, but they weren’t fun without interaction. So I built OffChess.
OffChess is an iPhone/Android app that contains over 100,000 chess puzzles, fully offline and completely ad-free. You can solve puzzles by category (Mate in 1/2/3/4/5, tactics like pins/forks/skewers, or openings like Sicilian/French, etc). You gain or lose points based on how you perform, so there's a light rating system to keep things engaging.
No accounts, no tracking, no monthly subscriptions, no internet required. Just pure, old-school tactical chess training, wherever you are.
You can check out the iPhone/iPad app at https://apps.apple.com/us/app/chess-puzzles-offchess/id67447... or the Android app at https://play.google.com/store/apps/details?id=com.offchess
Would love feedback, bug reports, or suggestions.
Thanks!
ChatGPT testing a mysterious new feature called 'study together'
ChatGPT is testing a new feature called 'Study Together', which allows users to collaborate on tasks and access additional educational resources within the platform. This feature aims to enhance the conversational AI's capabilities for academic and learning-focused applications.
The Texas Flooding Tragedy: Could It Have Been Avoided?
The article examines the Texas flooding tragedy, discussing whether climate change played a role and how the state's infrastructure and emergency response efforts contributed to the disaster. It offers insights into the complex factors that led to the devastating flooding and its impact on the region.
Thunderbird 140 ESR is out now with new features
Thunderbird 91.4.0 ESR has been released, featuring new features, bug fixes, and critical security patches. The update focuses on improving the email client's performance and security, providing users with a more reliable and secure experience.
Pro-Israel Silicon Valley Bro Just Went Viral for Islamophobic Tweets
The article profiles a pro-Israel tech entrepreneur in Silicon Valley, exploring his political views, support for Israel, and involvement in the tech industry. It examines how his advocacy for Israel has influenced his business and personal relationships within the tech community.
Post Office scandal may have led to more than 13 suicides, inquiry finds
The article discusses the ongoing inquiry into the Post Office Horizon IT scandal, which led to the wrongful prosecution of hundreds of postmasters. The inquiry is examining the role of the Post Office, its contractors, and government agencies in the faulty IT system that caused financial discrepancies and led to the unjust convictions.
NuxtLabs Joins Vercel
Vercel, the platform for frontend developers, has announced that NuxtLabs, the team behind the popular Nuxt.js framework, has joined Vercel. This acquisition will enable Vercel to further enhance its offerings and support for the Nuxt.js ecosystem.
The Nothing Phone surprised me – it's the best phone for creating content
The article discusses the Nothing Phone 3, a new smartphone that has impressed the author with its capabilities for content creation. It highlights the phone's design, features, and overall performance as a tool for creative professionals.
Tesla reimbursed Full Self-Driving in arbitration for failing to deliver
Tesla has been ordered to reimburse customers the full cost of its 'Full Self-Driving' feature, which the company failed to deliver as promised. The ruling comes after an arbitration process found Tesla liable for not providing the autonomous driving capabilities it had advertised.
Meta reportedly recruits Apple's head of AI models
Meta, the parent company of Facebook, reportedly recruited Apple's head of AI models, a significant move that could bolster Meta's artificial intelligence capabilities as it continues to invest in virtual reality and the metaverse.
The Future of Work Is Autonomous
The article explores the growing trend of companies hiring AI-powered 'chief of staff' assistants to handle a range of administrative and organizational tasks, highlighting the potential benefits of this technology for improving workplace efficiency and productivity.
Female-led aerospace sewing firm is expanding
The article discusses how crypto exchanges are facing increased regulatory scrutiny, with authorities in various countries cracking down on crypto trading and pushing for tighter controls. It highlights the challenges crypto companies are facing in navigating the evolving regulatory landscape.
People with higher cognitive abilities have weaker moral foundations
A new study found that people with higher cognitive ability tend to have weaker moral foundations, suggesting that cognitive ability may be associated with a more individualistic and less authoritarian moral outlook.
Show HN: Lokilizer – free tool for translating apps from two source langs to any
Our use case: our app has Russian (our native language) and English. We needed to quickly and easily add more languages (as requested by clients). Our translation files were a mess: duplicated strings, concatenation instead of placeholders, different string order in ru/en files, trailing spaces, and much more.
So I wrote a helper tool to fix all of this. Now, adding a new language takes just 40 minutes and $2. It worked so well that I cleaned up the project and released it as open source.
# Key feature:
Translation into new languages happens from two source languages at once: the primary (Russian, in our case) and the secondary (English, for us). The secondary language isn’t strictly required, but highly recommended. No matter how many other languages you have, only the primary and secondary languages get sent to the LLM context for translation.
By the way, the context also includes nearby strings and a glossary (more on that below), and the prompt is designed so the LLM first comments what the string is, where it’s used, and only then translates it. This combination, based on my tests, dramatically improves translation quality.
# About translations:
- Supported formats: for now, only JSON (flat & structured) + i18next-style pluralization, but it’s easy to add new formats.
- Pluralization: supports both cardinal and ordinal forms. Example:
{ "key_one": "1 file", "key_other": "{{count}} files" }
- Placeholders: ${likeJs}, {{doubleCurve}}, {singleCurve} — you can add new formats easily. Preferred format is set per project.
- Order of strings is preserved! Important both for meaning and for LLM.
- Multiline strings: supports both \r and \n (configurable).
- String comments: you can add explanations, stored only in the app. By default, they’re generated by LLM.
- Suggested translation: you can provide a recommended translation separately (e.g., from a professional translator or AI Suggest).
- Bulk or single translation, with LLM selection per language.
- Reuse of translations: for bulk translation, already translated identical strings are reused.
- Old strings/translations aren’t deleted but kept in the DB. This partly covers branching scenarios in git, when some branches already have new translations, some don’t. Nothing gets lost.
# String validation
When we started seriously dealing with translation and localization, we quickly realized our translation files were a total mess. Not just untranslated strings, but also obsolete translations (strings deleted from the primary language), places where placeholders were replaced with string concatenation, translations where the primary (Russian) used “:”, but the secondary (English) didn’t, or line breaks existed only in one. Even cases where the primary had a placeholder but the secondary forgot it.
All these cases are now checked, and any uploaded/translated string gets a Warning flag if:
- The translation string is empty
- There are leading or trailing spaces
- String contains multiple consecutive spaces
- The translation is identical to the primary or secondary (with exceptions for email, api, ip, url, uri, id)
- A placeholder is missing that exists in the primary language
- The translation has a placeholder that doesn’t exist in the primary
- Number of line breaks (\r or \n) differs between primary and translation
- Number of colons : differs between primary and translation
- Pluralized value missing or extra for the language
- Pluralized values differ in line breaks or colons
Regardless of validation, the user can manually mark a string as verified, allowing flexible filtering and mass translation control.
Gifs and more info at GitHub: https://github.com/XAKEPEHOK/lokilizer/
Anker Nebula X1 Projector Review: Bright Enough to Bleach Mars
The Anker Nebula X1 is a bright and feature-packed projector that can produce a large, high-quality image even in well-lit rooms. It offers a range of connectivity options and smart features, making it a versatile choice for home entertainment.
Deterministic Simulation Testing in Rust: A Theater of State Machines
The article discusses the Rust programming language's support for Daylight Saving Time (DST) and the challenges involved in handling time zone and DST changes. It explores the Rust standard library's utilities for working with dates and times, and provides recommendations for ensuring reliable and accurate time-related functionality in Rust applications.
Duke Nukem Is Back, but in a Silly and Sad Way
The article discusses the addition of Duke Nukem and Lara Croft to World of Tanks' battle pass, as well as the reactions of fans to these crossover collaborations, which include both excitement and disappointment.
NuxtLabs is joining Vercel
Nuxt.js is an open-source web application framework for building server-rendered Vue.js applications, offering features like file-based routing, middleware, and universal deployment options to simplify the development of modern web applications.
At least 10k people affected by Post Office IT scandal as bosses 'maintained
The article covers ongoing political developments in the UK, including discussions around the Horizon Post Office scandal and comments from former Conservative Party chairman Norman Tebbit on French President Emmanuel Macron's recent visit to the UK.
Keeping tabs on curl's memory use
The article discusses the importance of monitoring and managing the memory usage of the cURL library in software development. It provides insights into how to track and optimize cURL's memory consumption to ensure efficient and stable applications.