skysight-inc/HackerNews huggingface dataset:
Let's reason about client-server state management in web apps
I am developing an open-source web app DSL/framework and I would like to find the best abstraction for the client-server state management (SPA + API server, what we use Redux, MobX, Apollo and similar for).

The fact that it is a DSL gives me a lot of freedom to implement whatever might be the best solution, so I am trying to think about it from the ground up.

Below are my thoughts so far, to start the discussion - I would love to hear yours!

1. Where is complexity coming from?

The problem arised with SPAs because UI logic moved from the server to the client, while server remains the source of the data. Therefore, we are sending more data over the network, and we have to be smart about what we fetch, and we need to cache it -> so complexity happens there.

2. Solutions: Implicit vs explicit cache

Implicit (Apollo, react-query): focus on operations, cache is implementation detail.
Explicit (Redux, MobX): focus on the cache which you have to explicitly model.

3. RPC + meta data as a core solution?

Insight #1 -> Before the SPAs, we were dealing with the data via just logic on the server -> function calls.

Insight #2 -> Implicit cache solutions are becoming more popular than explicit ones -> operations > cache ~> functions.

So, currently best solutions seem to be converging toward how it was in the past, before the problem ever arised.
Can we abstract the client-server state management to again feel like just calling functions?

If so, some form of RPC might be the solution. However we can't just ignore additional complexity, but maybe we can solve that by adding some meta-data to our functions, and that is it? It sounds true to the core problem and relatively simple.

This is somewhat abstract, here is how I implemented this specifically in the DSL for now: https://wasp-lang.dev/docs/language/basic-elements#queries-and-actions-aka-operations .

This is it shortly, let me know how you see it!
Yeah, there's enough software that only understands ISO-8601 to be YYYY-MM-DDThh:mm:ss (with optional Z or +/-xx:xx for a offset datetime), that I wouldn't rely on anything more niche from the spec.

That does include the period definition format, which I know will disappoint some people.
I would say it gets about as much hate as any other Ponzi scam. It's just that other Ponzi scams aren't as wildly popular. But then again, other scams aren't causing global economic and environmental damage.
It sounds like you guys could use a YMCA or community center catering to these types. My grandmother was lonely so I convinced her to go to a YMCA for exercise reasons and she made a bunch of friends.
Great article. Have you come across any studies that quantify the value of diversity and inclusion?
There is a sizable portion of people on HN who understand the value proposition of blockchain and invested and / or work in the space. We just get downvoted and drowned out by a vocal group of toxic no-coiners who hate this tech with great passion. I think HN is a little more curious of the tech, especially with NFTs lately and artist interest. But overall still the worst place to talk intelligently about this stuff.
HealthiVibe | London, UK | Remote (UK Only) | Full Time

HealthiVibe, a division of Corrona LLC, is a market leader in innovative, evidence-based patient engagement initiatives across the product lifecycle for pharmaceutical clients. The HealthUnlocked platform is a key part of our ambitious plans to create an industry-leading ecosystem centered around the patient voice, providing access to engaged patients across the globe and allowing us to better understand what matters most to patients.

We're looking for a

- Senior Backend Developer ;; Clojure
- Fullstack Developer ;; Clojure and React/Redux/Next.js
- QA Engineer // Cypress preferable but TS/JS skills and a broad experience of testing tools in general is welcome too!

to join the Product, Data and Technology team at HealthiVibe and help build on the success of the HealthUnlocked platform as the world’s largest health focussed social network improving the lives of millions of patients. We help people find the information they need to better manage their health condition, and connect them with others from all over the world in the same situation for peer support and advice.

Tech stack: Clojure, React, Redux, Next.js, Docker, AWS, Terraform, MySQL, Elasticsearch, Redis

This role is remote first, the team made a successful transition to being fully remote in 2020. We use Clojure heavily on the backend, and deploy our code in Docker containers to our Terraform managed AWS infrastructure. Our frontend stack is built in React, Redux and Next.js.

We like to move fast and release in small increments frequently - you’ll be deploying to production within your first few days. As a team we really value giving enough time for developers to tackle bug-fixes, refactoring and other technical optimisations, which we do by alternating 2 week product feature sprints with maintenance periods to ensure the long-term technical health of our codebase.

Send me some CVs and resumes!
Happy to chat as well if you need some more info: sam+hiring@healthunlocked.com
I kind of regret not buying when it was worth US$ 2 (actually it was not easy to buy with money, back then). Whatever happened after US$ 1000 is out of my preoccupations.

I had the chance to participate on a Ponzi scheme once, in 1993. I declined because I could not accept the idea of getting quick money knowing that 7 every 8 people would lose money.
> may not be sexist in your case but perhaps so in the author's.

'Perhaps' is doing a lot of heavy lifting in that sentence. I'm convinced social media is raising a generation of mind-readers.
I run tsc with noEmit passed as a flag. Esbuild is replaces my previous tsc, babel, uglify setup and is much faster.
ITT: Americans who think Europe is full of communist countries. NA education!
It is absolutely not - where did I say it was? But you do invest your money in stocks or bonds don't you? Why couldn't you have invested 1% of your capital in BTC in 2018? Just treat it as one of those investments which went well?
You're talking about the streamers? As I mentioned, streaming is a tough business, it's going to have a lot of churn. In terms of viewership, there's publicly available data and it's not going down:

https://dotesports.com/streaming/news/over-27-9-billion-hour...
Show HN: iSpent19: View and peronalise all your bank transactions in one place
Regular raises are not guaranteed for nonunion workers.
What some people do is use types purely for editor purposes, and let the build process just throw them away. We did this at my last company using Babel
The usage of the other buttons varies wildly by participant. I know some that mute and hide the camera at all times unless otherwise necessary, while I also know others that generally never mute or hide.

> I believe it is more a matter of "multiple vs single" use that needs to be considered, or more like "on going vs finishing" actions when separating/grouping buttons

We could probably separate them along those lines, yes. But I don't think this relates much to the original article. It compared the "leave meeting" button, which we agree is an "exactly once per call" button, to the cancel/reset buttons, which are in the "hardly ever maybe never" category, and that's not a fair comparison. My point is that while we can find ways to distinguish the "leave meeting" button from mute and hide, it's not appropriate to give it the same treatment as a cancel/reset button should get.
> Then why can't I seem to find anyone saying anything to this effect, anywhere?

Because that's strongly implied to be the reason for any objection at all - i.e. the coercion of prisoners into working for a pathetically low wage, and the exploitation of that coercion for financial gain. Unless you can think of some other reason why people object to prison labor other than it being coercive and exploitative?
What boat? where is it sailing to now? Is bitcoin purpose just to make you rich? What did we miss?

Maybe, I missed the latest Medium article on why we are near adoption(!?). The tech is useless and detrimental to our earth. It finances terrorism, human trafficking and other ponzi schemes.

But Elon Musk... just pumping an unregulated market. The fact that he created Dogecoin is a pretty strong giveaway of his stance on the subject of the blockchain

Edit: Elon Musk didn't created Dogecoin
Now they are gonna miss the 50k->1M, so need to stop it at all costs.
Destructive actions should be suppressed when they are rare. This is the case for "Reset" or "Close Application". For a video chat, however, "Hang Up" is one of the most common actions, and one that is urgent to be able to find rapidly. As an example, Discord puts hang up nowhere near the mute/video buttons - and every time I want to leave a call I have to search for 15 seconds to find it because it's over in a corner near nothing else currently in use.
The reasonable conclusion is that you should read the surrounding context and try to understand what these variables are used for. The purpose of code review is to understand the code enough that you can spot real bugs; I try to avoid flagging surface-level stuff unless it's really important. IMO, this is a borderline case due to the very clear comment (which is a bit too far away).
This attack is pretty unrealistic. For one, China is extremely invested in Bitcoin, and if they were to seize equipement from miners it would be to drive up the price, not try to kill it.

For two, pricing hash power as USD ignores that they aren't the same. The US doesn't need to spend $9m per day (actually $45m per day, since this is from Jul 8, 2020 @ 9k, and BTC has since went way up) since they can't buy Bitcoin ASICs any better than anyone else can, and probably a lot worse since govt procurement is fucked. There's a limited amount of ASICs in the world, and no matter how much they subsidize the electricity cost it doesn't do anything until they have 51% hash power.
The stats talk about number of people imprisoned in a particular moment of time. It doesn't say if a part of them for example died over the next couple of months due to cold and starvation and were topped up with new inmates That would make the number look unchanged during the next count.
Side note: I wish the ones who caught the bus could reveal how early they got on it. I play the wishful thinking game in my mind all the time. I have some but not enough, which I believe is the general sentiment everywhere.
And it takes a tremendous amount of effort, discipline, expertise, and deep, intimate familiarity with the entire dependency tree. This is the whole problem. We should be able to build software without needing to be intimately familiar with every package in the tree and how it wants us to build it, what its implicit dependencies are, etc.

For example, for the overwhelming majority of Rust and Go projects, there are explicit dependency trees in which all nodes are built roughly the same way such that a builder can do "cargo build" and get a binary. No need to understand each node's bespoke, cobbled-together build system or to figure out which undocumented dependencies are causing your build to fail (or where those dependencies need to be installed on the system or how to resolve conflicts with other parts of the dependency tree).
A go-to architecture topic of mine for backend engineer interviews is to design a webhook system (the push side). I’ve gotten a lot of mileage out of it because depending on the person’s experience dealing with a running production system, I’d get varying level of detail unprompted and that usually is a nice proxy for depth of experience.

It turns out my interview question is now a SaaS!

Kudos on the launch OP. This is a much needed service and it’s one of those things that once you see exist you go d’oh, why didn’t we have something like this all this while.
Yes, I am aware of the publicly available data. I'm saying that's wrong, but again I can't share my data so I don't expect you to believe me.

We're not going to agree. I'm exiting this thread.
I actually read the article and it has nothing to do with hating bitcoin. It delves into the logistics of a theoretical attack against Bitcoin's proof-of-work blockchain. Quite interesting if you're willing to put down your pitchfork.
Most of whom would be delighted to see the dollar dethroned.
The fact that everyone is still talking about Bitcoin as a commodity that others have "missed out on" shows there's still something huge missing. Nobody is talking about using Bitcoin to pay for goods, it's all about price movements and making profits. It's the ultimate meme stock. But that's not what the dream of Bitcoin is, and as far as I can tell it's failing at what it was meant for.
I'm saying the problem ain't just the prison system - and neither is the punishment.
> The company’s ability to be in business in a few years depends on how much cash they have and how much they can generate. If the market tanks financing dries up, and if they aren’t cash flow positive then it’s game over.

Sure, and these considerations are all things that are downstream of product, competitive positioning and IP.
Nuclear technology’s role in the world’s energy supply is shrinking
What's wrong with disliking unnecessary environmental destruction?
Do you have any more information about that? It sounds really interesting, and I think my family used to actually have iSentry cameras at an old house.
I find it hard to imagine a scenario in which all of the relevant infrastructure is shutdown to such a degree that it forces a country to surrender.
Girls perform better academically in almost all countries (2015)
Snowpack uses esbuild internally now, there's a good rundown of it and other awesome snowpack features like streaming imports in their 3.0 release announcement: https://www.snowpack.dev/posts/2021-01-13-snowpack-3-0
If you find a significant portion of the communities you generally align with are fervently opposed to something it can pay to take a step back from your own entrenched position and ask why. The environmental concerns around Bitcoin are not trivial. To many of us they are very, very serious. Not to mention the very real practical concerns around usage of Bitcoin - the fees, long confirmation times, poor throughput, etc. Again, real issues.
As an Android user it's also a problem here. The settings menu got a Search feature a few releases ago and its a sad concession that people have no idea where to find things in the Settings menu.

And it also has the same problem you describe - you don't know how to find something unless you know what it's called. And even if you do find something, there's no breadcrumb trail to learn how to find it without using search. You have to look at what's on the current page and like some kind of reverse engineering sherlock, think about where a designer could possibly have put this page. It's insane.
When Content Becomes Your King
For me Lenovo have been in between the pure and wonderful but too expensive for me of System 76 and the Pinebook Pro which I own but is too slow and low end to use for my daily get stuff done machine, which instead is an ideapad 3 with ubuntu 20.04.
GP was talking about Outbrain and Taboola who are not as far as I know hacking anyone’s emails. That was what I was responding to.
Exactly the type of people I was referring to in my comment. Read the 2015 thread. You would find people who mirror you.
Not sure when the next https://breaking-bitcoin.com/ conference will be after covid.
But I am sure they would love to have you.
Wake me up when it's in LAPACK. Then replace DGBSV, and don't tell me.
Exactly. Finding the "leave meeting" button is not one that should be hard to find as it's expected to be used at some point by each participant on the call. The UI should be calling attention to it (albeit in a click-safe way).
Heh, try for

#define 0 0
The problem is that everyone has an opinion on design and thinks it's only about making things pretty. The designer, often on low end of organizational pecking order, is asked to bend over from all sounds and is just trying to keep food on the table.
This is a bad take and a false dichotomy. The reasons for choosing a library or a service are so myriad and context-dependent that any generalization about which is "better" is just silliness. It's like saying, "If you have to get somewhere, running is better than walking." Sure, in the case of a race or escaping a predator, running is probably the best option. But what if you want to take in the sights or you can't sweat in your clothes? Running would be a bad choice, even though it's faster. There are just too many variables in the real world to make any sort of blanket statement about which approach is "better."
chalk it up to seething nocoiners
Brazilian adventurer traverses lava lake for Guinness record [video]
I'd argue autoworkers and steel workers in America probably die less than their more productive and globally competitive peers in countries like China.
Why my kids ask me questions like this, "who invented the number three," I usually tell them it was someone vaguely European of the Enlightenment era with the same last name. "Ah, it was Ulysses Herman Three, inventor the natural numbers and famed bicyclist." Usually buys me enough time to look it up online.
> I have to say they're pretty amazing if you can get everyone on-board and writing good tests

This is my main complaint about code coverage metrics. I want you to be good at test writing before you write the bulk of your tests, not after. It’s hard enough to get people to write good ones, let alone go back and fix the messy ones they wrote badly (recall I said good tests are easier to replace than bad ones).

If you write a bad enough test it can take longer to fix it than throw it out and start over. But since you didn’t clearly capture the constraints the first time, do you dare delete it? What aren’t you testing after?
Octane X launches bringing fast spectral GPU rendering to 3D artists on macOS
‘Great Man of Wine’ Steven Spurrier Dies at Home
> … while pointing out completely different implementations…

danielscrubs referenced measurements which showed similar performance for Dart and NodeJS programs, but did not mention that similar performance.
> You can't mute them anymore

Just for the record, I've found I can still mute them if I do the right combo of button presses.

Most of these pumps in my state have a column on either side of the screen of four or five unlabeled buttons. If I press the left side top to bottom (usually by running my finger straight down the line) on the left column, then the right, then the left, that shuts up 90% of them in my area.

Still sucks though
Huh? NaCL is dead, and as far as I know nothing relies on the JVM sandbox for security anymore (and it was a disaster when they tried).

These also rely on wrapping the entire userspace into a sandbox, which is hardly relevant to the libraries vs. services thing. You can't inspect a stack from inside the attacker's process and expect that to do anything at all, let alone control access to a resource.
- Retail jobs suck, so this is good.

- warehouses and public dispensaries are content-address-based networking for the physical world.

- I don't really care about purchases being deanonymized because money itself a public good.

- I do care about the private sector having the data, because they will surely do terrible things with it.

Back to the networking analogy, the post is classic local-address-based networking for the physical realm. Just as we have a state-run post service utility, we should have a state-run warehouse-and-store utility.

Even all you free market types: the point is of the free market is that the transacting agents are independent, not that the market itself is. Running the marketplace and goods distribution utility as a public good is perfect fine "market socialism".

The only thing to be mindful of is that there is a standard and fair procedure for new sellers to have their goods stocked and distributed to bootstrap the demand.
Hi, I'm the OP.

I understand DKIM and i have written this part in the article

> Somehow when we signed a message with DKIM, google decided to show the “Via way.hanami.run”, which is technically correct because the message lack of DKIM signature for original email(I made a typo and type gmail in original article) address

As in, I agree with gmail decision. My point is that, why when a message has nothing, gmail didn't say "warning: no DKIM signing".

I just hope gmail makes that fact clear on their UI when a message has no DKIM signing.

And sometime, to reduce minimal work for users, DKIM is optional for them. If they add our public key to `hanami._domain` we will sign it. But it's really tricky to configure DKIM for a normal user. Even gmail makes it optionally. In that case, gmail signed it with gappssmtp.com and yet, they don't say "Via gappssmtp.com"...
What is federation in this context?

Does not federated mean not using a jailbroken phone?

Or is it related to how the app is installed?

Or the underlying infrastructure relying on a central server instead of distributed?
Ok I'm not sure what "preternaturally" means, but yes I agree that Robux are an awful scam and Roblox would be better without them. That said I'm also not nuts and I realize that Roblox would likely not exist without them.

I'm advocating for picking all the VC-funded (and user-generated) freebies off the platform and giving nothing back. It's like using YouTube with an ad blocker.

That said, I'm not sure I parsed your comment right, so just to clarify: when I say "economic" I mean stuff like "Pizza Tycoon" where you run a restaurant and need to buy stuff with fake money to get more customers etc etc. That's not Robux money, that's 100% in-game fake money that you earn by selling pizzas. Even the better clickers have this dynamic, where you click to get some kinds of points and then you can use the points to buy/build stuff that auto-generates clicks etc. It's not unlike the economies in Starcraft (yeah I'm old) and the likes.
I used to push back had on my kids wanting to buy hats, pets, etc in Roblox. Seemed like a waste of money and I hate microtransactions.

Then I realized that this is literally the only game they play, and it's free. Compare that to me at that age, buying Nintendo games for $50 a pop, why am I hesitant to support these creators with a $2 hat?

I still limit purchases just for general personal finance lessons, but otherwise let them spend money here like they would on actual paid games.
FWIW this is one reason I designed the Eggex sublanguage of Oil to translate to extended regexps: so you can use it with egrep, awk, and sed --regexp-extended.

https://www.oilshell.org/release/latest/doc/eggex.html

It really annoys me to have to remember multiple syntaxes for regexes in shell scripts!

Also, even if you added Perl syntax to sed today, it wouldn't be available everywhere. Oil isn't available everywhere either but there are some advantages to having the syntax in the shell rather than in every tool.

(It's also easy to translate eggex to the BRE syntax or Perl syntax, but nobody has done so yet)
Good engineering is definitely key, but I think interpreted languages are a bad fit for developer tools (though they are extremely popular for writing developer tools). On the surface, writing JS tools in JS is good because hey, you definitely know JS, right? But in practice it is bad because I don't want the JS I am writing in any way constrained by the JS you wrote.

The problem with any interpreted language is that to run the tool you need all the source and all the dependencies plus the interpreter in something like their intended versions to be present in the right locations on disk. This is a huge PITA, and if you're say writing JavaScript targeting ES5 but your tools are targeting ES2020 or vice versa, there can be painful yak shaving sessions getting everything on the same page.

Essentially all developer tools should be static binaries.
Alert Fatigue and Your Health