MurphyA/hacker-news huggingface dataset:
Show HN: Balance iOS – Your Net Worth Across Multiple Currencies and Identities
by cr1st1an | 2025-04-13 21:36:05+00:00
For the past couple of months I've been building Balance, an iOS app designed to simplify tracking your net worth by managing accounts, assets, and debts across multiple currencies and identities.

Built entirely with SwiftUI and SwiftData, Balance stores your financial data locally on-device, protected with biometric authentication.

I'm nearing launch and would appreciate your feedback!

Core Features: Modern interface using SwiftUI - Manage multiple accounts, assets, debts, and identities - Multi-currency support (160+ currencies, hourly updates) - Biometric authentication - Local data storage with SwiftData for privacy

Design & Marketing: I'm currently looking for experienced designers or marketers that can help me with copy and assets for App Stores, Icon, Web, etc. If you're one, or know one, please get in touch.

Try the app: https://testflight.apple.com/join/NXM39cys

Reach me at inbox@cris.mx.

Thanks for checking out Balance!
by pbhjpbhj | 2025-04-13 21:36:17+00:00
The lengths I've had to go to (on Windows, and on Ubuntu) to get games installed for multiple users is frankly ridiculous.

I feel like I'm always fighting against the OS just to share files amongst users.

I suppose the answer is probably a deduplicating fs like zfs/btrfs - although, do they dedupe across users (that feels like an exploit route).
by sdesol | 2025-04-13 21:36:58+00:00
Nice write up. I don't necessary think it is "if you adopt it, you will flourish" as much as, if you have this type of "personality you will easily become 10x, if you have this type of personality you will become 2x and if you have this type, you will become .5x".

I'm obviously biased, but I believe developers with a technical entrepreneur mindset, will see the most benefit. This paradigm shift requires the ability to properly articulate your thoughts and be able to create problem statements for every action. And honestly, not everybody can do this.

Obviously, a lot depends on the problems being solved and how well trained the LLM is in that person's domain. I had Claude and a bunch of other models write my GitSense Chat Bridge code which makes it possible to bring Git's history into my chat app and it is slow as hell. It works most of the time, but it was obvious that the design pattern was based on simple CRUD apps. And this is where LLMs will literally slow you down and I know this because I already solved this problem. The LLM generated chat bridge code will be free and open sourced but I will charge for my optimized indexing engine.
by numpad0 | 2025-04-13 21:38:09+00:00
> Dick’s evidence for this denouncement was that ‘[Lem] writes in several styles and sometimes reads foreign, to him, languages and sometimes does not’.

Man reads some translations, suspects it might have been written by multiple people? But that's what translation is...

It's often misunderstood that translation is done by surgically deconstructing original texts and selecting accurate meanings of words to fit into grammatical structures of the new language text is to be written. That's simply not true.

Rather. You just read the original text and try and say close-enough thing in the target language. Translators are like half ghostwriters. "Accurate" translations are sometimes not even understood by audiences. And then after all the changes, translations will still containe distinct signatures for each original languages.

For entertainment contents like a novel, there will also be marketing elements involved. Some choices may have to be made. Not necessary to interfere with the author's intent - like choosing first person pronouns and ending for each sentences.

Lem's novels being written in a language spoken in a communist country means most competent translators woild be technically a "communist", whether it's just unfortunate categorical labeling or they actually had been.

So, I think, the notion that translated works of Stanisław Lem only occasionally having distinctive foreign language components, and also being not always consistent in styles with one another as if it had been written by a Communist committee with a figurehead, would be just a description of independently rediscovered process of book translation cast in unnecessarily dark light.

I wouldn't find it so weird if PKD was that kind of uninformed crazy person stuck with such preconceptions, though. Sounds like just how it works.
by joenot443 | 2025-04-13 21:38:28+00:00
Sure, so it sounds like we've got a different idea in mind for what this sort of work would look like. Totally understandable!

In your opinion then, what would a Google-run astroturfing campaign roughly look like? Sounds like this article is an example, right? I'm not asking for insider info, I'm just curious about your mental model on the basic mechanics.

Personally, I think the case "other entities with comparable resources do this, so Google probably does too" isn't super convincing to me. IMO, the null hypothesis "Google has lots of nerdy fans who'll happily post positively about it for free" is a lot reasonable, but perhaps there's something I'm missing.
by jumploops | 2025-04-13 21:38:54+00:00
Humans have been programming other humans since the beginning of our time (and arguably other species too[0]).

The irony that the affiliate link was for a book about this exact topic, just fantastic.

LLMs are truly memetic machines, the best we’ve created so far.

What’s the difference between a bot and a human who parrots other humans?

Is agency+novelty the new version of the Turing test?

[0] https://www.scientificamerican.com/article/bonobo-calls-are-...
by crazygringo | 2025-04-13 21:39:23+00:00
Yup, I did my own comparisons a couple of years ago and agree greatly.

Most of all, getting real 4K detail requires a level of precision in camera focus that frequently just isn't happening. Whether it's an anamorphic lens that is intentionally blurring everything except the center of the shot, or just a shallow depth of field that becomes even shallower in 4K. You can get some astonishing detail with fixed landscape establishing shots, but it really depends on the lens. The only place where you consistently get full 4K sharpness is in 3D animation.

That being said, if you watch on a projector, 4K can be nice because you really can't see the square pixels anymore. You don't usually get more detail than with 1080p, but it does feel more like the detail limit is due to the limit of sharpness of the lens, rather than the pixel format. That being said, it barely matters. Spending money on brightness and contrast is 100x more important.
by Animats | 2025-04-13 21:39:57+00:00
Right. The normal way this works is that when you buy something to be imported into the US, you compute the tariffs and post a "customs bond" with CBP at the same time you pay for the product. When the shipment arrives in the US, the customs bond is used to pay the tariff, and the shipment is released by CBP. Shipping companies such as DHL integrate this into their systems so the end user doesn't have to deal with it directly. To the purchaser, it looks like tariffs are paid when the product is ordered. That's the happy path, taken by most imports.

But when tariffs change faster than it takes to get the shipment from source to destination, the bond won't be for the right amount. You then enter the wonderful world of "insufficient bonds". Here's "Understanding Insufficient Customs Bonds in Nine Easy Steps", which outlines the process and tries to sell you on a service that deals with the problem.[1]

Coming May 2: the end of "de miniumus" customs exemptions for small packages under $800 value. Goodbye, Shein, Ali Express, and dropshippers. Unless, of course, the rules are changed again.

[1] https://www.afcinternationalllc.com/customs-brokerage-news/u...
by wizzwizz4 | 2025-04-13 21:40:02+00:00
It was easy to understand what the code was instructing the computer to do. It was harder to understand what that meant, why it was happening, and how to change it.

A program to calculate payroll might be easy to understand, but unless you understand enough about finance and tax law, you can't successfully modify it. Same with an audio processing pipeline: you know it's doing something with Fourier transforms, because that's what the variable names say, but try to tweak those numbers and you'll probably destroy the sound quality. Or a pseudo-random number generator: modify that without understanding how it works, and even if your change feels better, you might completely break it. (See https://roadrunnerwmc.github.io/blog/2020/05/08/nsmb-rng.htm..., or https://redirect.invidious.io/watch?v=NUPpvoFdiUQ if you want a few more clips.)

I've worked with codebases written by people with varying skillsets, and the only occasions where I've been confused by the subtext have been when the code was plagiarised.
by canterburry | 2025-04-13 21:40:03+00:00
I wouldn't be surprised if someone tries to leverage this with their customer feature request tool.

Imagine having your customers write feature requests for your saas, that immediately triggers code generation and a PR. A virtual environment with that PR is spun up and served to that customer for feedback and refinement. Loop until customer has implemented the feature they would like to see in your product.

Enterprise plan only, obviously.
by perching_aix | 2025-04-13 21:41:24+00:00
My expectation of easy is driven by what other social sites are required to provide by law: a button. I think we can agree that being able to consume an API is reasonably far from that, even if that API is straightforward.

Good to know it's that straightforward though, I knew of the repo but was like eh, maybe next time, always the next time.
by joenot443 | 2025-04-13 21:42:12+00:00
Right, but isn't that just fans being fans?

Usually when I read "astroturfed" I assume there's some higher level coordination involved. I think the flock of birds metaphor is probably a reasonable comparison to the behavior we see on social media all the time - members acting individually on their own self interests in a means which appears coordinated when you zoom out.
by guywithahat | 2025-04-13 21:42:57+00:00
Reddit is becoming unusable, and I’ve deleted my accounts. I know this is a hot take but paid accounts on X and fact-checking have made it so much more usable. My feed has (less) political content, and my interactions feel more human. It makes me wonder if in the future, social media sites will all be pay-to-use just to cut down on bots
by bbyford | 2025-04-13 21:43:18+00:00
I use duckduckgo and google for search – sometimes I find the google AI answers helpful (even though sometimes inaccurate still) for more categorical questions that I simply need an anwser or somewhere to start with (i.e. "can you eat charcoal?"), I then go ahead a click some links...

I use ChatGPT for text summation and translation, and midjourney for slide decks and graphic design ideation.
by IshKebab | 2025-04-13 21:43:19+00:00
This is called mutation testing and is very common in formal silicon verification.

https://en.wikipedia.org/wiki/Mutation_testing

A downside of naively changing source code is that you have to recompile the code for every mutant, which can be very slow (especially for Rust!). Obviously the right thing to do is to decide at runtime whether to insert a bug or not for each mutation point.

I had a brief skim through the help for cargo-mutants and it looks like it takes the naive approach which is rather unfortunate.
by n4ture | 2025-04-13 21:43:51+00:00
I do not understand the appeal of non-LISPy languages. I get that most people are used to reading it and that they are efficent, but I believe the developer (of the compiler in this case) should serve the convenience of the user, not the other way around.

Writing code like this is combersome and unnecessarily symbol heavy, and reading it isn't really nice as well.

I'd rather have the language add those extra parens into the parser than have me stare down these endless semi-colon, linebreaks or indentation. Parsing something Lisp-like is not that, hard, trust me, I've done it.
by musicale | 2025-04-13 21:43:56+00:00
Kernighan probably disliked PL/I as well, but it had better memory safety than C; Multics was never plagued with buffer overflows.

Pascal implementations typically support index and range checking, while Ada provides even more extensive memory and concurrency safety.

Fortunately for C, clang's -fbounds-safety seems to be making progress. It's implemented in Apple's LLVM fork, so this now works on macOS:

clang -Xclang -fbounds-safety program.c

https://clang.llvm.org/docs/BoundsSafety.html
by jiggawatts | 2025-04-13 21:45:21+00:00
Because it is a punishment for both sides.

Trade is not zero sum: both sides of a deal typically get something they want.

Conversely: cessation of trade prevents both sides getting what they want.

In this case the US wants to have their cake and eat it too: they require Chinese imports to continue, but they want to turn the faucet down to a trickle.

China needs the faucet on at full throughput, there is no practical difference to them between a trickle and “off”, so that’s their poker hand, and they’re playing it.

I think Trump’s team overestimated the importance of the US market to China, and they underestimated the impact on their own economy.

They don’t hold any cards right now, as they like to put it.
by SpicyLemonZest | 2025-04-13 21:45:47+00:00
"Fraud" is a strong word, and there's nothing inherently wrong with having multiple share classes. But I really feel that preferred stock as implemented by most early stage startups is an intentional attempt to deceive employees. There's a lot of founders out there telling early engineers they're getting "0.5%" when they know full well that a $1B acquisition down the line is not going to put 5 million dollars in the engineer's pocket.
by neilv | 2025-04-13 21:46:33+00:00
(Kudos on doing this in Racket. Besides being a great language to learn and use, using Racket (or another Scheme, or other less-popular language) is a sign that the work comes from genuine interest, not (potentially) just pursuit of keyword employability.)

Side note on Lisp formatting: The author is doing a mix of idiomatic cuddling of parenthesis, but also some more curly-brace-like formatting, and then a cuddling of a trailing small term such that it doesn't line up vertically (like people sometimes do in other languages, like, e.g., a numeric constant after a multi-line closure argument in a timer or event handler registration).

One thing some Lisp people like about the syntax is that parts of complex expression syntax can line up vertically, to expose the structure.

For example, here, you can clearly see that the `min` is between 255 and this big other expression:

(define luminance (min (exact-round (+ (* 0.2126 (bytes-ref pixels-vec (+ pixel-pos 1))) ; red (* 0.7152 (bytes-ref pixels-vec (+ pixel-pos 2))) ; green (* 0.0722 (bytes-ref pixels-vec (+ pixel-pos 3))))) ; blue 255))

Or, if you're running out of horizontal space, you might do this:

(define luminance (min (exact-round (+ (* 0.2126 (bytes-ref pixels-vec (+ pixel-pos 1))) ; red (* 0.7152 (bytes-ref pixels-vec (+ pixel-pos 2))) ; green (* 0.0722 (bytes-ref pixels-vec (+ pixel-pos 3))))) ; blue 255)))

Or you might decide those comments should be language, and do this:

(define luminance (let ((red (bytes-ref pixels-vec (+ pixel-pos 1))) (green (bytes-ref pixels-vec (+ pixel-pos 2))) (blue (bytes-ref pixels-vec (+ pixel-pos 3)))) (min (exact-round (+ (* red 0.2126) (* green 0.7152) (* blue 0.0722))) 255)))

One of my teachers would still call those constants "magic numbers", even when their purpose is obvious in this very restricted context, and insist that you bind them to names in the language. Left as an exercise to the reader.
by funnym0nk3y | 2025-04-13 21:46:36+00:00
This is common with SSRIs/SNRIs.

For me it is not at the same intensity at all times, but it can reach levels where I forget the name of my roommate or the name of my friends partner. However, I still know that I know their names. It feels like there is an error in the communication between parts of my brain. Like it's comming any time now. But it doesn't.
by gruez | 2025-04-13 21:47:23+00:00
>Providers like Oxylabs can be quite restrictive, preventing access to many of the common sites that scrapers choose to target.

Most of them seem pretty reasonable?

"Entertainment & streaming" - who's trying to scrape netflix's library?

"Banking and other financial institutions" / "Government websites" / "Mailing" - seems far more likely it'll be used for credential stuffing than for "scraping".

"Ticketing" - seems far more likely that it'll get used by scalpers than for scraping

The main targets of scraping - e-commerce sites (for price comparisons) and social media networks (for user generated content) are fine to scrape. Is there some use case I'm missing here? Is there a huge contingent of people wanting to scrape ticketmaster or bank of america?
by teovall | 2025-04-13 21:47:24+00:00
I think Swatch Internet Time is more practical in day-to-day use. Swatch Internet Time divides the day into 1,000 units instead of 100,000 so is much more succinct. People rarely need <1 sec precision when communicating with each other, and when they do, they can just use decimals.

https://en.wikipedia.org/wiki/Swatch_Internet_Time
by quectophoton | 2025-04-13 21:47:37+00:00
I might be remembering wrong on where the problem was exactly, but it was either the generated code, or the code for the Fennel transpiler itself.

I just know that I tried to use it without loading Lua's libraries (i.e. without calling the `luaL_openlibs` function or equivalent) and was unable to.

> I just copy the compiled lua into the place the program expects to find lua scripts.

Yeah most existing programs just load all Lua libraries by default, so that's generally not an issue.

My post is more from the point of view of embedding a restricted Lua interpreter into a program (i.e. only Lua-the-language, not Lua-the-language-plus-its-libraries) while still supporting Fennel.

---

EDIT: Just checked, the Fennel code `(lambda [foo bar] bar)` compiles to Lua code that calls `_G.assert`.
by NotPractical | 2025-04-13 21:47:47+00:00
Thanks for your thought-provoking response. I agree with most of it.

The vibe I generally get from Graphene users is that they feel that they are taking control over their device by installing Graphene onto it (which is almost always a manual process, at least for now). I probably exaggerated when I said the vast majority of users care deeply about this, but I think it's still a major selling point of Graphene for a lot of people.

And yes, I do agree that sandboxing actually provides more control to the user, not less! I'd just hate to see Graphene become more like iOS over time and start intentionally omitting features that would otherwise empower the user, for security's sake. If "security" and "giving users a say in how their phone works" really are diametrically opposed, and user freedom isn't a concern, then it would probably make sense to start gutting out stuff like developer mode, adb, and sideloading for the user's own safety. But the project's track record has been pretty good so far from what I can tell, and I don't think this will happen.
by bonoboTP | 2025-04-13 21:48:42+00:00
I'm not sure in what way that is AI generated. I'm following this space quite a bit and it looks like it's at least partially real. The voice is very realistic, I doubt that's AI generated. The motion and facial expressions are also very natural. I would assume it's some AI transformation (like style transfer) on top of a real video. I see no evidence that it's AI. In fact, I think there's a genre of online garbage that's claiming that things were made by certain AI tools when they weren't. I'm not saying this video has no AI in it, just that it doesn't seem fully AI and we have no way to tell.
by blitzar | 2025-04-13 21:49:01+00:00
As your 30 person startup has grown, the (future) value of the stock has gone from $0.00 to not $0.

When the value was zero, of course you had to talk up future value - you were selling something worth $0 for $1,000's. Now that it is worth something, it represents actual value for the employees to swap for salary, which is why you no longer offer as much!
by crazygringo | 2025-04-13 21:49:31+00:00
> Atkinson dithering is great, but what's awesome about dithering algorithms is that there's no definitive "best" algorithm!

I've always wondered about this. Sure, if you're changing the contrast then that's a subjective change.

But it's easy to write a metric to confirm the degree to which brightness and contrast are maintained correctly.

And then, is it really impossible to develop an objective metric for the level of visible detail that is maintained? Is that really psychovisual and therefore subjective? Is there really nothing we can use from information theory to calculate the level of detail that emerges out of the noise? Or something based on maximum likelihood estimation?

I'm not saying it has to be fast, or that we can prove a particular dithering algorithm is theoretically perfect. But I'm surprised we don't have an objective, quantitative measure to prove that one algorithm preserves more detail than another.
by hombre_fatal | 2025-04-13 21:50:07+00:00
Add in the ability for subreddit mods to silently hide any post for any reason, too. There should at least be a “deleted by mods” counter/button like there is for replies hidden by the OP on twitter.

It creates this awful system where you might never see pushback on an idea.

Horrible place to spend your time like all social media if you care about exposing yourself to bad ideas that you’ll passively pick up through mere repetition.
by bmcahren | 2025-04-13 21:50:15+00:00
From day one. We would have had LLMs years before if Google wasn't holding back. They knew the risk - google search would be dead as soon as the internet were flooded with AI content that google could not distinguish from real content.

Then you could look at how the first "public preview" models they released were so neutered by their own inhibitions they were useless (to me). Things like over-active refusals in response to "killing child processes".
by sidrag22 | 2025-04-13 21:50:42+00:00
the only way i engage with reddit now is directly on subreddits i think arent total wastes of time(shrinking fast). which mainly means i never navigate to their main page and my first stop is directly on a subreddit rather than the front page, all, or whatever.

currently thats pretty much two humor based subreddits.

this has been slowly getting worse and worse over the years. Ive also for sure experienced the google search results from reddit that have felt manipulated. one that springs to mind is a topic about favorite bar soap... really? the consensus in a hygiene subreddit was that the most popular brand with likely the highest advertising budget of any other brand is the top comment? its also not like a defeated "xxx gets the job done and is affordable" its like a really odd praising of them.
by sdesol | 2025-04-13 21:51:19+00:00
> Have you tried building agents?

I think the issue right now is so many people want to believe in the moonshot and are investing heavily in it, when the reality is we should be focusing on the home runs. LLMs are a game changer, but there is still A LOT of tooling that can be created to make it easier to integrate humans in the loop.
by grandempire | 2025-04-13 21:51:39+00:00
I’m actually proposing a new one - not a going back. One where we fix our budget to be sustainable and better help our citizens.

I’m open to proposals about what to do about social security because it MUST change.

How about instead we have a forced savings account that you cannot withdraw from. And the government has some matching component.

Senior centers also seem to be a low cost community investment.