skysight-inc/HackerNews huggingface dataset:
Bitcoin miners use hashpower not only to find the next block but to secure the entire chain to that point. So each block secures over 650 million transactions right now, and that number only increases.

Your word "waste" implies a value judgement, and thus you have departed the realm of scientific inquiry.

The transactions-per-second energy argument is completely fallacious and often made in bad faith. It makes no sense whatsoever. Comparing Bitcoin (a settlement system) to some other credit-based payment system is not a genuine comparison.

Ignoring the Lightning Network in any discussion of Bitcoin shows a distinct lack of subject-matter awareness.

If you dig into the power grid system today, you'll find that a huge amount of power generated by the world's energy producers goes unused. The Bitcoin network uses far less energy than the amount lost during normal generation, yet I see no hand-wringing about this colossal "waste" boiling the oceans.
In this case, he was diagnosed as such. The article claims he simply did it to avoid prosecution.
Look another nebulous post on functional programming.
>At 12 I was sent to the US to understand how capitalism is harmful.

Did they think that would work?
By natural resources, do you mean fresh water and arable land?
Good source, an even better source is the very first Mishna in Tractate Sukkah [0] which uses the Hebrew form of the word kosher several times to refer to a Sukka. It's used as both an adjective ("כשרה") and a verb ("מכשירין" - using the Aramaic form of pluralization).

Interestingly, the opposite of kosher in this mishna is פסול, which I'd translate as "invalid".

Also interesting is the apparent relationship between the word כשר and the modern Hebrew מכשיר, meaning "device", or "thing that does something specific".

Edit: took me another moment to realize the root is used a lot in modern Hebrew, such as in the word כושר (ironically pronounced like the English kosher), which means (physical) fitness.

[0] https://he.m.wikisource.org/wiki/%D7%9E%D7%A9%D7%A0%D7%94_%D...
Do we really feed the cows the actual whole soy plant? That sounds incredibly wasteful to me.

Or is it just that the parts of soy that we can't eat (stalk, leaves, husks, discarded beans after processing into tofu/milk/etc.) that comprise 80% of the plant, while the rest we consume ourselves?
How's PorcFest going?
This is how I do it. I'm experimenting with using a TF-IDF
recommendation system to "categorize" everything so I can just think about what is interesting enough to not discard.

Then I can comeback to articles organized by keywords and take notes in obsidian when I'm digging deep.
The idea of grounding UX in physical analogues, in my view, is incredibly important. No matter how much we interact with digital screens, we still walk on ground, pick things up with our hands, etc. Just because we can do anything in a digital experience doesn’t mean we should.

Skeuomorphism may have gone too far, but the pendulum seemed to swing back too far.
As a first stab I went with SMS text messages because the functionality is built into the device and the app can easily access the SMS messaging history on the device to make better decisions. I plan to review support for WhatsApp, Facebook Messenger and friends in the future.
Formatting can hugely change the way text is read. It's quite common for the spacing between sections to be derived from the formatting. So removing the formatting can result in section headings with zero space from the preceeding paragraph but a manual newline between it and the next paragraph. Thus the headings essentially disappear into the preceeding text.

I've had countless other examples over the years where "paste without formatting" involved lots of manual editing of white space. Bullet and numbered lists sometimes vanish which rather matters if the text says "see point 3 above"
Yep, that’s what I do. I’m the marketing, product and design cofounder and I pair with a dev.

The last two companies I’ve sold have had this structure and it works well.

We collaborate on wireframes, I turn it into designs in Figma, he executes with code and I sell it.

We both get feedback, build it into the roadmap, then start the next process over. He builds, I sell.

You need production and distribution, it’s hard to make it work without both.
Mac Shortcuts are a nightmare, jeez.
I'm sorry, but the app is currently in beta and limited to 88 countries/regions to better support this. Please let me know what country you are in so that I may rectify this.
Maybe that's why companies use Teams? Because people only use it when they must?
The problem with this argument is that governments still have jurisdiction over your decentralised blockchain, the developers, the miners, and anyone else involved in it. If you sincerely and seriously want to dismantle that power structure, that's fine, but please start in the right place, with government.

It's naive and ultimately fruitless to throw out all the good things that centralised payments bring (fast transactions, fraud control, etc etc) in the hope that you'll be able to get rid of a thing they don't actually have ultimate jurisdiction over (what is ok and not ok to buy).
Kind of an aside, but as the post talks about all the work needed to be done to verify additions to the blockchain, that also implies people could be adding invalid content to the blockchain. Usually invalid stuff is easier to confirm than valid, but still, how easy is it to use invalid additions to spam the chain? Do valid transactions get validated on top of invalid transactions and require revalidation? Or is the initiator of the transaction responsible for recreating on a valid basis?

I'm sure this is all basic blockchain stuff but it hadn't occurred to me before...
I'd call it: pattern match, don't validate.

Gotta go and program more Elixir...
I'm not debating the definition of the word. I'm saying I avoid using it where I can because I've personally found it hard to get multiple people to agree on the definition - you're proving the point by debating against your own link.
Online school has been horrible for many children’s educational outcomes this past year. Getting some of them to actually attend and pay attention has been impossible. Maybe in households with attentive available parents it would be fine, but as it is it’s helped to expand the education gap across the US
When pornhub wanted to start working with Visa, they had to shut down all pornhub non-verified accounts. Visa's terms.
Storing changes as text is a fundamentally bad idea. Not only does it make merge conflicts more likely to happen, as transforms (me adding a function, you renaming something I use in the function) more likely to occur, it also means that formatting is committed and discussed rather than being a matter of personal preference.

Hopefully the next item in this RCS CVS Subversion Git chain is just storing ASTs and transforms on top of them so we can spend less time fixing basic conflicts and discussing formatting.
IMO, David Spivak's book[0] is much less technical than anything coming from Bartosz Milewski. In fact, I think Spivak's book is simpler than that of Lawvere. If you know a little naive set theory, Spivak's book is a breeze.

[0] Talking about the one "for scientists".
It woupd be nice if the article explained why was the current size set and what is the benefit of doing so?
I'm not claiming fraud. I'm claiming he bought the shares for less than the fair market value.

It's probably not illegal, but it should be (buying below market value in an IRA, not buying below market value in general), because it makes a mockery of the contribution limits for IRAs.
> chat, meeting, or channel (from parent)

This is the root of all Teams fuckups.

It's an asinine primitive mapping, that could only come from a project manager who spent their entire career optimizing SharePoint access controls to meet HR product requests.

The entire point of modern chat solutions is persistence and searchability. So the only real differentiation should be public or private channels.
Licence to kill -9
Bitcoin mining strives for as much efficiency as any other electronic process: ASIC chips are hitting the smallest process size available. Miners are extremely sensitive to electricity cost, so they must be efficient there. They do not compete with households for power.

If Bitcoin mining were aiming to consume the most energy possible, then the hashing would be done by hand on pencil and paper.
Say you have a source of A, and a way of turning an A into a source of B. An operation that uses these two inputs to produce a source of B is a monad.

This is about 90% of the way there (and TFA actually contains very similarly phrased description, right before the monad definition you complained about).

The problem is that English does not have the right words to describe the abstract idea behind "source", "way of" and "operation" precisely and rigorously.

Regarding "any common programming language": In a way, this is like trying to explain a concept like, say, "the adjoint operator" [0] to someone only aware of integers. Or trying to explain the idea of the Liskov Substitution Principle [1] to someone who just learned assembly.

In each case above, the language used to describe the concept is multiple layers of abstraction too low to succinctly ping down the concept in question. Haskell brings (or rather is) a very rich language suited specifically for accurately describing the elements involved. That's why 1) the concept of a Monad is visible/cleanly expressible in the first place, and 2) people use it to explain the concept, even when (like this blog post) not aiming at a Haskell (or Haskell learner) audience.

Disclaimer: I'm just a lowly OOP programmer, not written a line of Lisp or Haskell in my life. Watching from the sidelines for now.

[0]: https://en.wikipedia.org/wiki/Hermitian_adjoint

[1]: https://en.wikipedia.org/wiki/Liskov_substitution_principle
Those are the extras. This is the post:

https://fsharpforfunandprofit.com/posts/recipe-part2/
lol Paypal:

https://www.paypal.com/us/webapps/mpp/ua/acceptableuse-full

You may not use the PayPal service for activities that:

* violate any law, statute, ordinance or regulation.

* relate to transactions involving (a) narcotics, steroids, certain controlled substances or other products that present a risk to consumer safety, (b) drug paraphernalia, (c) cigarettes, (d) items that encourage, promote, facilitate or instruct others to engage in illegal activity, (e) stolen goods including digital and virtual goods, (f) the promotion of hate, violence, racial or other forms of intolerance that is discriminatory or the financial exploitation of a crime, (g) items that are considered obscene, (h) items that infringe or violate any copyright, trademark, right of publicity or privacy or any other proprietary right under the laws of any jurisdiction, (i) certain sexually oriented materials or services, (j) ammunition, firearms, or certain firearm parts or accessories, or (k) certain weapons or knives regulated under applicable law.

* relate to transactions that (a) show the personal information of third parties in violation of applicable law, (b) support pyramid or ponzi schemes, matrix programs, other "get rich quick" schemes or certain multi-level marketing programs, (c) are associated with purchases of annuities or lottery contracts, lay-away systems, off-shore banking or transactions to finance or refinance debts funded by a credit card, (d) are for the sale of certain items before the seller has control or possession of the item, (e) are by payment processors to collect payments on behalf of merchants, (f) are associated with the sale of traveler's checks or money orders, (g) involve currency exchanges or check cashing businesses, (h) involve certain credit repair, debt settlement services, credit transactions or insurance activities, or (i) involve offering
or receiving payments for the purpose of bribery or corruption.

* involve the sales of products or services identified by government agencies to have a high likelihood of being fraudulent.

Look at what you need approval for: https://www.paypal.com/us/webapps/mpp/ua/acceptableuse-full
A closer look at Acorn, an open source precision farming rover
Ah yes, my brain has been permanently mutilated preventing me from reaching the one and only programmer nirvana found in functional programming. Give me a break.
Would be amazing if it could interface with web.whatsapp.com as most people I know use WA primarily nowadays instead of sms.
I've worked with plenty of coders who talk about how awesome their code is even though they just write unit test as an afterthought. They also talk about how they don't need validation and everything is just awesome.

I hated working with those coders because they weren't really very good and their code was always the worst to maintain. They are the equivalent of a carpenter who brags about how quickly they can bang nails but can't build a stable structure to save their life.
I know of the advantages of static typing and very much appreciate them. My point was more about how the concept in the article may be translated to other types of tooling.
I don't know if the author meant to, but he describes a problem that people run into with concurrent systems, and which creates a lot of real-life bugs if people don't anticipate it and design for it. In the author's case, the solution is trivial because it can be solved by specifying the order of updates, but in concurrent systems that isn't always an option. Let's say instead of Manuel the Carpenter's position on the screen, we're updating the status of Monte the Money Launderer's application for a line of credit. The CreditCheck system receives an external credit report and updates Monte's application state to indicate he has passed the credit check. The Approval system sees the credit check result, sees that all other conditions have been met, and updates the application state to Approved. At the same time, a loan officer who has received a call from the FBI about Monte uses the Control system to put a manual Hold on the loan. If the concurrent updates from the Approval and Control systems are combined naively, the application can end up in the state of Approved and Hold simultaneously. The loan officer, seeing that the Hold has been successfully placed on the application, believes that Monte has been blocked, but in fact Monte is able to access the Approved line of credit.

Like the problem described by the author, this is a pretty basic problem that most HN readers would design for from the start, but the title "Immutability is not enough" should (theoretically) select for readers who are a little bit surprised by it.
> The author is overconfident and underestimates library writers to a fault.

Clicking around the website a bit, it would seem that the author is a library writer (some specifically targeting GPUs), and the article is a plug for the books he's written about numerical analysis. How confident are you?
> Why aren’t they pivoting into a marketplace instead?

I laughed a bit at this because they had previously bet hard on Reddit Gifts. No idea what happened, and the timing just might not have been right.
Not a theory, but additional info: female teenage suicide is one-third the rate of male in US[1], but typically grows faster per year.

[1] https://time.com/5590344/youth-suicide-rates/

Edit: The Time article links to original JAMA
> Also, it is a trivially scalable problem, where you can just throw 5x as many people at it.

Having done exactly this work it's really not as simple as throwing 5x as many people at it.

Though to be clear, I am an advocate of native apps on each platform and am not a fan of "wrap a webview around it" type fake-apps. That said, we need to be honest about level of complexity here.

The problem with maintaining 5x native apps is not just the cost of hiring 5x as many people - as you scale towards more platforms the inter-team coordination overhead increases exponentially.

The complexity of coordinating 4 teams to ship in lockstep on 4 separate platforms isn't double the complexity of 2 teams on 2 platforms.

There are a bunch of intersecting factors here:

- product management has extreme load - new features need to be designed for every supported platform at the same time, increasing complexity in feature definition. Some features aren't possible on some platforms, so that increases scope and complexity of the features as we include fallbacks or exceptions.

- engineering has to happen (roughly) in lockstep with one another. It's not acceptable to ship a new feature only on Windows and not Android - they don't have to launch on the same day, but neither can they launch a year apart. This means you have multiple engineering teams that basically have to move at roughly the same speed, even though they are developing on completely differently platforms.

- underlying platform changes affect your ability to move in lockstep - iOS and Android both have significant yearly updates that create additional testing needs. Both platforms also introduce more significant OS-level features that you want to add support for than the older/more mature platforms like macOS or Windows. This throws another wrench in having your teams progress in unison.

There are real advantages to cross-platform frameworks, even though I dislike them from a UX perspective. In particular I have beef with the use of web views, which while offering incredible consistency between platforms is probably the least CPU/RAM efficient way to do literally anything. A huge part of why computers feel slower than ever is the pervasive use of web views for everything.

I really, really wish we had a better cross-platform solution than a thing with an ill-defined render cycle, bases literally all rendering on an XML-like structure, and has all processing stuck to a single thread on an interpreted language. Yikes.
Yep, Reddit is basically a junk site at the moment and it gets worse by the day. Just this month they started restricting “potentially NSFW” posts from being opened unless you login.

This is their direction now, soon enough we’ll have popunders like TripAdvisor, other successful junk site.
Generally recursion is not something you want in production code. It's cute for academia when studying algorithms but where there's an iterative alternative that should be used.
The challenge I've seen is to have a combination of good, small-scale Human-Centered Design research (watching people work,for instance) and good, large-scale testing. It can be really hard to learn the "why" from a/b tests otherwise.
For some reason I was reminded of the ending of Dave Chappelle's old bit about Disney World: https://www.youtube.com/watch?v=mG7XikEENZ4
I mean I don't think he should be thrown in jail for that, but you can't just go do that and not expect to get in trouble. Sanction violations are something the feds take extremely seriously. It's one of the few ways to actually get the corporate death penalty if you're a company.
The more important factor is the actual execution. And the reality is this is has been done, many, many times. In fact a friend recently wrote a version of this in order to learn Swift.

Ultimately it’s a social problem not a technological problem. I don’t think this is quite hitting the nail on the end. The author said part of the motivation was that his gf wanted periodic reach outs during the day. Automating this isn’t the solution because it’s totally inorganic. They need to figure their communication out themselves — this isn’t the right path that’s sustainable.
Why not just a stripped down custom Android image?
I'm not able to access (play tells me it does not found)? Is country limited app or something?
If speed issues then it sounds like this is critical code path that is sensitive to time. You'd be looking for alternative data structures at that point so this point would be moot.
"Waste" is value judgement. For me, it's securing a network of decentralized transactions, so that power isn't wasted. Given my distaste for adtech and certain governments, I'd qualify their power and resource usage as a waste and that the world would be better off without them, even if the people who work in adtech or benefit from said governments would disagree.
Oh yeah I totally agree. I would never buy a condo in a building like this in a location like this, largely because of the impossible situation with respect to "big" maintenance. Americans don't know how to cooperate without the imposition of authority.
Why do all this complaining and ignoring instead of just downloading an app like "rif is fun", logging in once, and then having great reddit experience on mobile?

Everyone here is aware of the dark patterns on reddit. We know they're not going anywhere. We continue to read reddit posts every day, so why not make it easy on yourself instead of endless misery and complaining about things that you know won't change?
> banned for life no questions asked

If a 13-year-old cheats at a game, do you really think they should still be banned when they're 30? Permanent punishments for things people did as minors are essentially unheard of for anything less serious than murder or rape.
As an initial start I went with SMS text messages because the functionality is built into the device and the app can easily access the SMS messaging history on the device to make better decisions. I plan to review support for WhatsApp, Facebook Messenger and friends in the future.
I agree with the author re Git as it exists right now, but this feels like an unsolved technical problem that ideally should be handled in your VCS than something to be worked around by social conventions not to do cleanups.

git blame, for instance, has the "--ignore-revs" and "--ignore-revs-file" options which let you specify some commits that can be ignored. This is a little helpful for the sort of code spelunking the author does (which I do very frequently), but it's a manual process. There's no built-in convention to Git for what this file should be named and how to have git blame pick it up automatically. Moreover, you have to create the commit in order to know what its revision is, which means that in squash/rebase workflows, you have to land the style cleanup on the target branch and only then can you add it to the ignore list.

One option that occurs to me is a special marker string to put in the commit message like "Git-Ignore-For-Blame: yes" or something. I'm not sure if there's a better way to do it.

More generically, if the commit is only swapping out tabs and spaces, "git blame -w" ought to take care of it. For more involved reformatting, git diff and git merge both have "ignore-all-space" modes, which will handle things like line breaks.

But really what you want for blames and cherry-picks, I think, is blames at the syntax level. The Git commands only know about lines - git blame runs on lines, git cherry-pick constructs diffs based on lines and tries to re-apply them, etc. But at the repository level there's nothing special about line breaks. Why can't we run git blame or cherry-pick on an AST, so that it operates regardless of formatting?

Are there tools that do this? (They don't need to be built into git; a third-party tool ought to be able to do this just fine.)
I’ve been using lambda to scrape an api that technically is only available in their app. The api uses aws so running the scraper on lamda seems to have hidden it well enough. Doubt they want to start blocking amazon ips.
> These practices are done because it works.

It works for metrics. It works for making more money than you know what to do with. It absolutely doesn't work for keeping your user base loyal. The moment you implement the dark patterns, the users immediately start looking for alternatives to your platform that respect them.

That said, I still use reddit. Except I use the old design and RES. And a third-party app on my phone.
How do you feel about the monitoring of every executable you run, when and where?