HNHacker News
TopNewBestAskShowJobs

nybble41

1,836 karma · joined November 3, 2017

This is an OpenPGP proof that connects my OpenPGP key to this Hackernews account. For details check out https://docs.keyoxide.org/advanced/openpgp-proofs/

[Verifying my OpenPGP key: openpgp4fpr:d4d25b92bfcb8b1aac34178253a06f568795072a]

submissionscomments
nybble41··on Internet Filtering in Canada: Rogers' NHL Blocking Order
Sure, as long as the same rules applied to their own works. That's the whole motivation behind copyleft licenses: to turn copyright against itself. Without copyright there would be no need for copyleft, the GPL included.
nybble41··on Privacy Badger is a browser extension that learns to block invisible trackers
The "lie" is the unstated implication that doing these things the ads recommend will serve your own interests, and not just the interests of the advertisers.

"Creating awareness" would be handing out unsolicited facts with a neutral point of view. Most ads are more in the nature of unsolicited and manipulative advice from someone who does not have your best interest in mind.

nybble41··on Public CDNs Are Useless and Dangerous
With SRI you can't store unique identifiers in the cache since the cached content has to match the hash in the URI. The only real privacy leak would be potentially determining whether certain data was already cached.
nybble41··on Public CDNs Are Useless and Dangerous
You could include js-ipfs[0] and fetch all your resources from IPFS without going through a gateway. However, this approach would make the site fully dependent on JavaScript.

A PWA with a Service Worker could perhaps implement its own client-side "gateway", translating public gateway URLs into direct IPFS access. Without the Service Worker (or without JS) it would fall back to using the gateway.

[0] https://js.ipfs.io/

nybble41··on Show HN: The Bitcoin Note – Secure, Self-Custodial Bitcoin Wallets in Cash Form
The Liberty Dollar was not a "fake version" of the US Dollar. It wasn't even a "fake version" of the Federal Reserve Notes (nominally denominated in US Dollars, but trading at a far lower value) which make up the vast majority of circulating currency and which too many people incorrectly refer to as the US Dollar.

> The fact that the liberty dollar happened to cost more than a real dollar doesn't make it not a counterfeit…

No, the fact that it was never intended as a counterfeit is what makes it not a counterfeit.

The cost in materials is comparable to a real US Dollar (not to be confused with a Federal Reserve Note); the full cost could actually be lower due to technological advancements.

nybble41··on Show HN: The Bitcoin Note – Secure, Self-Custodial Bitcoin Wallets in Cash Form
> as it is currency designed to confuse people into thinking they are real dollars

That was the government's argument. The defendant clearly disagreed. Arguably they were closer to "real dollars" (defined by the Coinage Act of 1792 to consist of 416 grains, or about 0.95 ounces, of standard silver) than anything the government has minted recently. A bit better, even.

The dollar sign and the word "dollar" are not unique to US currency and in fact predate the US entirely. Likewise for the word "liberty" or the phrase "trust in God"—if anything that last would probably be deemed a blatant violation of the separation of Church and State if the government actually put it on their currency. These are just generic elements common to many currencies and US culture. Even the initials "USA" don't actually imply any endorsement by the US government; you can find them on just about everything these days. The intent was patriotism, not confusion. The same would have been true if they had spelled out "United States of America" like the official coins, though of course they didn't do that.

Any actual confusion can more readily be blamed on the US Mint for making their coins too generic than on NORFED for making theirs too similar. At least NORFED put their name in their design; the US Mint did not.

nybble41··on Show HN: The Bitcoin Note – Secure, Self-Custodial Bitcoin Wallets in Cash Form
That press release does not name any actual laws which were violated. You might do better to link to the ruling itself[0]; it's hardly less biased than the DoJ's statement, but it is at least more specific about the charges. The government's argument was quite expansive in claiming novel exclusive powers for the federal government, but even so their success hinged on (besides a very sympathetic court and favorable jury instructions) the fact that the Liberty Dollars were not just any private currency but actual metal coins incorporating some phrases and imagery vaguely similar to official US coins. The key elements were the visual similarity for the charge of counterfeiting (they're round like most coins, and likewise silver in color, and contain design inspired by US history—though not any from actual US currency), and the constitutional prohibition on states minting metal coins, despite the fact that the defendant was a private individual and not acting on behalf of any state.

There is no particular reason to think the same issues would apply to "minting" a private currency which did not consist of metallic coins or incorporate any "patriotic" imagery.

[0] https://casetext.com/case/united-states-v-von-nothaus?q=Unit...

nybble41··on EU reaches deal to make USB-C a common charger for most electronic devices
> The original intention of patent system was to encourage open publication of inventions.

That is how it was sold to the public. Unfortunately the system was never designed with the proper structure and incentives to ensure that patents were only granted when doing so actually resulted in the publication of accurate details about useful inventions which would not have become known to the public anyway well before the patent period expired.

In practice, if you think you can keep something a trade secret for more than 20 years without it being independently reinvented you'll do that and not file for a patent. Patents are thus useful only in those cases where a patent is expected to be worse for the public than a trade secret, as they inhibit independent reinvention and reverse engineering for the duration of the patent.

nybble41··on California aims to slash insulin prices
Patents are only one of the varieties of monopolies which apply in the field of medicine. The FDA imposes several more. Even after the patents have officially expired and you've developed your own safe & effective alternative you may not be able to get it certified because the FDA has a prior agreement with the existing manufacturers to guard their product from competition.
nybble41··on California aims to slash insulin prices
That's a plausible story for drugs which already exist. The problem, though, is that they wouldn't bother researching new drugs in the first place if it weren't for the prospect of those "absurd profits" in the USA, because that research would never pay off.

Once they have the drug developed it makes sense to sell it wherever they can, at whatever price they can get (above COGS and overhead, of course), as profit is profit—so long as it doesn't cannibalize their much more profitable sales in the USA.

If the USA were to suddenly allow retailers to import drugs at scale from other countries to reduce costs then those countries would find their supply of cheaper drugs drying up. They could either accept prices on par with those in the USA, thus eliminating the arbitrage, or simply go without.

nybble41··on EU reaches deal to make USB-C a common charger for most electronic devices
> [!] Amusingly, my laptop won't actually charge off the _standard_ A/C plugs on most airplanes because the 100W charger blows a soft fuse that requires unplugging and replugging the A/C adapter!

To be fair, 100 W may not seem like a lot when you're used to plugging in to the national power grid, but it's a lot to ask for a non-essential system supplied by an off-grid generator shared by hundreds of passengers. And 100 W is the maximum allowance for In-Seat Power Support Systems according to the FAA, before any conversion losses in your power adapter; the actual amount available to you may be much less.

nybble41··on EU reaches deal to make USB-C a common charger for most electronic devices
Ensuring accurate metering in the context of commerce is within the scope of "To … fix the Standard of Weights and Measures". The specific form of the nozzle clearly is not, but they might justify it on the basis of some other enumerated power—the interstate commerce clause is frequently (ab)used for this sort of thing. Nothing technically requires every regulation produced by the NIST Weights and Measures division to be grounded exclusively in the Weights and Measures clause, though one could be forgiven for making that assumption.

As dpratt remarked earlier[0], any interpretation which would deem nozzle size—or the specific form of an electrical connector—to be covered by the Weights and Measures clause of the Constitution would effectively cede unlimited power to the federal government. What couldn't they regulate under such broad rules?

[0] https://news.ycombinator.com/item?id=31654558

nybble41··on EU reaches deal to make USB-C a common charger for most electronic devices
> …if we're forcing every device to merely adopt a USB-C port, that does nothing to ensure they're actually using USB-C specifications or interoperable.

You certainly need more than just the physical port. IMHO the minimum reasonable requirement would be that the device must charge at near the maximum supported rate (minimum of the device's, cable's, and charger's advertised rates) with any combination of compliant charger & cable. There wouldn't be much point in mandating the use of USB-C ports otherwise.

nybble41··on EU reaches deal to make USB-C a common charger for most electronic devices
Some adapters are more problematic than others. For example if the charger and the vehicle both expect the other side to initiate the charging process and withhold power until some voltage is detected then the adapter may need its own independent power supply to jump-start the charging process. Locks are another problem—some combinations would require the adapter to provide powered locking mechanisms for both sides. None of this makes an adapter impossible, but it could be too expensive or unwieldy to be a practical solution.
nybble41··on EU reaches deal to make USB-C a common charger for most electronic devices
> I was set to be all libertarian about this…

Disallowing patents is the libertarian solution, though it would be up to the customers to demand published specifications and official support for interoperability.

nybble41··on The Lazy Monad
"Functor" is a perfectly good and descriptive name… provided you are at least somewhat familiar with the esoteric branch of mathematics it's based on. For someone from a Category Theory background renaming it to "Mappable" would be weird and unintuitive. And as in most things, those actually doing the work get to pick the names that make sense to them.
nybble41··on The Lazy Monad
> one the two other important Haskell "design-patterns" (Functor - Applicative - Monad)

These days you should probably add Foldable and Traversable to that list, as they are closely related and appear throughout the standard libraries and even in the Prelude.

Traversable is a generalization of Functor to include Applicative effects. It reduces to Functor if the Applicative happens to be the Identity type.

Where Functor and Traversable replace values one-to-one while preserving structure, Foldable represents reducing operations (folds) which consume the values from a structure in some defined order to build up a result. This includes basic functions like sums and products, as well as more complex operations like `sequence`.

nybble41··on Don't send to Gmail over IPv6
Naturally there are far more IPv6 /60s than IPv4 /32s. As a spammer, though, you don't get to pick just any /60 prefix you want—it has to be allocated to you.
nybble41··on VSCodium – Free/Libre Open Source Software Binaries of VS Code
I'm not affiliated with either, but from looking at some of the extension pages on Open VSX it appears they use GitHub accounts exclusively for publishers—so that part is already handled by the existing GitHub/Keyoxide integration. For VS Code Marketplace, the publisher pages do include a description section which could be used for the identity proof but there doesn't seem to be a (documented) REST API.
nybble41··on Don't send to Gmail over IPv6
You're supposed to get your IPv6 prefix from your ISP's allocation, not directly from the regional registry. Simplifying the routing tables with hierarchical address assignment was one of the major selling points for the larger address size in IPv6. If everyone gets their own prefix independent from their ISP then the core Internet routing tables will continue to grow ever more complicated.
nybble41··on Don't send to Gmail over IPv6
IPv6 addresses are more plentiful. However, you don't assign reputation to an individual IPv6 address but rather to an IPv6 network prefix (a /64, or even /60). That gives roughly the same granularity as a single public IPv4 address: one ISP subscriber.
nybble41··on Using the mold linker for fun and 3x-8x link time speedups
With LTO when you "compile" a source file it really only processes it into an intermediate language (IL) format and stores that in the object (.o) files. When you invoke the linker on those object files it runs the compiler again with all the IL from the inputs and generates a temporary object file with the actual executable object code, which is then linked into the final executable binary.

I would guess that mold doesn't have the necessary support for the second step, running the compiler again on the IL during linking.

nybble41··on VSCodium – Free/Libre Open Source Software Binaries of VS Code
> You don't have to be a homeowner to have a right against people invading your home.

"Your home", as in: a home you have ownership rights to. You may only be renting those rights for a limited time, but your right not to have your home invaded is still grounded in the rights of ownership you hold in the home.

There are no "rights related to privacy or control" without ownership.

> Personal ownership of computing devices is not necessarily what the term 'private property' refers to.

"In some economic systems, such as capitalism, private and personal property are considered to be exactly equivalent." — Your Wikipedia link

So in the systems which matter there is no difference. Only broken economic systems such as socialism, Marxism, and left-anarchism attempt to draw a distinction between personal and private property. Personal property is just that part of private property that those in power (whether a lone dictator or an egalitarian collective) doesn't consider useful or significant enough to be worth taking for itself.

nybble41··on VSCodium – Free/Libre Open Source Software Binaries of VS Code
> Something as minor as changing what user handle is displayed was probably hand waved away, if it was even considered, yet here in this thread we have a demonstrable case of a user losing trust and confidence in the project simply as a result of this decision.

If displaying the same "author" data resulted in users assuming that a given username on the Open VSX site should be trusted just because it happened to match a username on the VS Code Marketplace, it's probably a good thing that Open VSX displays the name differently. These are two different sites, and two different accounts; trust in one should not imply trust in the other. It would be even better if Open VSX could somehow ensure that the displayed author names never match the corresponding projects on VS Code Marketplace, for example by integrating a domain name or other globally-unique component into the author field.

nybble41··on VSCodium – Free/Libre Open Source Software Binaries of VS Code
Open VSX (and perhaps VS Code Marketplace) might consider adding support for identity verification through Keyoxide[0]. This would allow interested parties to easily determine whether the user bung87 on Open VSX and the user bung87 on VS Code Marketplace are really the same person and not just someone claiming the same username. There is already support for linking Keyoxide to one's GitHub account and even Hacker News, among other service providers.

[0] https://docs.keyoxide.org/advanced/for-service-providers/

nybble41··on The curse of strong typing
Sure, if you want to use arbitrary-precision integers everywhere. At a significant loss in performance.
nybble41··on The curse of strong typing
Haskell's number system has its good points, but there are some hidden gotchas there as well. For example, all integer literals are interpreted by starting from the most general type (arbitrary-precision integers) and narrowing them with `fromInteger`, a member of the `Num` typeclass—which doesn't offer any means of handling failure (e.g. `321483209423 :: Word8`) other than a runtime error or overflow. It can also be rather verbose since all other conversions must be explicit, even ones which cannot possibly fail.

IMHO Rust's `Into` and `TryInto` traits offer a better solution than Haskell's `fromInteger`, distinguishing between conversions which cannot fail and ones which may. It also infers the correct width for unsuffixed integer literals from the context—but it draws a sharp distinction between integer and floating-point literals, which is why `2 * 3.14` (integer * float) is a type error while `2 * 314u16` would be accepted without issue. The downside of the Rust approach is that the type inference rules for integer literals are hard-coded into the language and can't easily be extended to cover user-defined types, whereas Haskell's approach can accept integer literals where any type with an instance of the `Num` typeclass is expected. One alternative, combining the best of both worlds, would be to infer the narrowest type which can hold the literal value and add an implicit `.into()` for non-lossy conversion to any compatible type.

nybble41··on Firefly III: A free and open-source finance manager
Thanks for mentioning that. It looks like there is support in HLedger for per-posting / per-account dates via `date:` tags[0]; I'm not sure how I missed that before. For the auxiliary dates, I suppose one could just ignore balance assertions when using the `--date2` option, but IMHO it would be better to set a posting date for the bank account for when the transfer cleared rather than an auxiliary date on the transaction as a whole. The expense account would then show when the expense was incurred, and the bank account would show when it cleared. Usually only the latter would have a balance assertion.

[0] https://hledger.org/1.25/hledger.html#posting-dates

nybble41··on Firefly III: A free and open-source finance manager
In practice most computer-based accounting packages only simulate the appearance of a double-entry bookkeeping system. In traditional double-entry bookkeeping one must manually enter the data for each transaction into multiple journals: a minimum of twice, or more than twice for split transactions. This is what allows the journals to be cross-checked for consistency. The reports produced by computer-based "double-entry" systems will always be consistent, however, because they're really just different views of the same set of multi-account transactions recorded in a general ledger rather than distinct single-sided transactions recorded in account-specific journals.

"General-ledger accounting" (for lack of a better term) is superior in terms of having a single source of truth, but not very practical for manual accounting since all the transactions are mixed together. The introduction of computers changed all that by making it easy to generate targeted reports from the general ledger.

nybble41··on Firefly III: A free and open-source finance manager
> There is a differentiation between source and destination accounts (called expense and revenue) which makes reverse transactions a pain. I pay 100€ for furniture in May and return it in July. Now I can either create the furniture store as both source and destination account or delete the first entry.

The use of expense and revenue accounts is standard, but I find it surprising that you can't enter a negative amount for a payment. There isn't even a "return" transaction type with a similar effect. That's how I would handle returns in my own accounting software (HLedger): Original payment, $100 from checking (asset) to merchant (expense). Return, $-100 from checking to merchant, with a comment identifying the original transaction. It doesn't make sense to have separate "Furniture Store" expense and "Furniture Store Return" income accounts—that does not provide accurate income & expense reporting. Logically, after the return you have no expense or income related to that purchase.

Of course HLedger, being much less opinionated, doesn't actually care about "source" and "destination" accounts—that's a matter of how you interpret them. IMHO it's far easier to just think of the accounting system as a single directed graph where nodes are accounts and edges are transactions. A "negative" edge is just a transfer in the opposite direction.

This does mean that the income/revenue accounts have negative balances, which can be counter-intuitive, but it makes sense once you learn to think of the income account balances as reflecting changes in the source of money (i.e., $-100 in an "employer" income account means your employer has $100 less because they it to paid your asset account) rather than the amount of income you've received. Likewise, a positive balance in an expense account means that the recipient of that money has more because of your payment, not that you do. Assets and liabilities are your accounts and sum to your net worth; the equity accounts, which I would define to including income and expense accounts, belong to your counterparties, and are relative rather than absolute since they only reflect the transactions which are relevant to you.

> Also, what I was struggeling with (and not only in Firefly, but all budgeting apps) was the sometimes significant delay between the purchase and the bank transaction.

HLedger addresses this by tracking two separate dates for each transaction, with options to choose which one to use for a given report. This can cause some issues with balance assertions which lie between the two dates, though, so I just use a priority system—the date my bank shows is always "right" even if the transaction occurred some days prior. It would be nice to be able to set a date for each account, which would probably fix the balance assertion issue, but then you could have transactions which didn't balance (sum to zero) for certain intervals. (Perhaps this is acceptable as long as the transaction eventually balances?) HLedger, like most other accounting software, also tracks flags for pending and cleared transaction which can be used in reports and queries.

← PreviousPage 3 of 34Next →