Yeah, it also seems it's made in React & Next. From experience, you'll have a hard time choosing a worse technology for low-level, interaction-heavy UI. You need direct control over focus, keyboard handling, scrolling and so on. You also need to leverage hardware accelerated rendering too, which is clunky with 3rd party React libraries.
What's more, even if state management should technically be easier with the amount of state libraries, you'll realise sooner or later that the established ones are cleverly immutable where you really just want them to be performant.
I am not saying that it's React at fault for the symptoms you see here, but I would expect any such library made in it to hit exactly these kind of edge cases.
Yes! First, you need to get the DOM-level behaviour right (dragging, resizing, cursor focus). That could mean you may use or build primitives like with interact.js, CodeMirror/Monaco (realistically just use, not build), Fancytree. I really like Muuri for layouts. Usually there's also subtle interaction physics going on when building such libs in unexpected places (such as resizing and drag N drop speed curves), which you should tweak to your taste.
For framework, React wants to own and mediate the DOM via virtual tree, which is a major bottleneck when you need direct control over focus/selection/keyboard routing or hardware accelerated canvases. Instead, look at Svelte or Solid.js, as they integrate nicely with imperative DOM-oriented JS libraries and don't require heavy wrappers or indirect references for the 'unfriendlier' DOM nodes like canvases, scroll containers and so on.
If you're building an OS-like UI, you should also care about state and be sure you have direct control over where your data lives. For example, I usually build with Solid.js and a mix of custom object and lifetime code plus Solid stores for reactive surface state.
I usually end up managing object lifetimes because I end up needing to handle messy edge cases around reference vs value semantics and state merging (e.g. keep cursor position sane after a file sync or track focus across multiple windows, especially after refresh)
For text editing, if you use Monaco, it has so many internal lifecycle hooks you want to be aware of and interact with directly, that you'll see that most of implementation will end up outside classic frontend lib fast and I'd rather build the thing instead of bridges and wrappers to talk with a high-level framework.
All in all, you probably want to own a lot of state and behaviour yourself, and add a cooperating framework on top instead of an all-encompassing one.
> The old horror-stories of 'I couldn't reverse a BST on a whiteboard so I didn't get the job' seem wonderful in comparison now
> They manage to screen me out before I have the opportunity to talk about anything computing related
When I was in college about 10 years ago, I was dreaming a company would interview me on actual algorithms, but sadly I rarely had the occasion to do anything above basic coding.
If you want to see clearly what you can do to get hired, the following perspective helped me a lot. From experience, most hiring processes seem to be shaped less by technical signal and more by the interviewer's defensibility strategy in case of a bad hire. What I mean by that should be clearer from the list below:
- informal interview plus experience matching, hires based on how similar candidate prior jobs seem to be for current role <- if candidate is bad, the interviewer can justify the decision by pointing to the candidate's background.
- informal interview and vibe check with the team or personality test check if candidate is compliant if senior or charismatic if junior <- if the hire is bad, responsibility is diffused across the group.
- take-home project with a nominal 1-hour time limit, but an implicit expectation that candidates spend days on it. Since the interviewer cannot verify how long anyone spent, they default to rewarding the most polished submission.
- take-home project with narrow stated requirements, followed by judgment against unstated "best practices" the company follows <- if the hire is bad, the interviewer can point to the candidate's code and show it matched already what the company looked for, since the style is recognisable.
- CV farm, the company is collecting CVs and has no serious intent to hire <- interviewer doesn't exist
- if the interviewer has no skin in the game (is not verified, performance doesn't matter, they're a consultant leaving next month anyway), anything could happen. This is the most dangerous kind of interview because almost anything can happen and it gives you the least actionable data.
- formal interview pipeline, usually found at large corporations or in finance; interviewer has a clearly scoped job and are expected to evaluate one part of the candidate against a rubric, not make a general judgment about overall hireability. Biases will still exist, but they are more constrained because the process uses multiple interviewers, trained evaluators, explicit scoring grids <- if the hire is bad, the decision is defensible because the interviewer followed the assigned process.
So, interview pipelines can be predictable. It is that you should identify what kind of process you are in as early as possible. If it is experience matching, make your background look obviously adjacent to the role. If it is a take-home, assume polish will count more than the stated time limit. If it is a vibe screen, technical skill may not be the primary variable. If it is a formal pipeline, prepare for the rubric. And if it is a CV farm or a low-accountability interview, do not over-update on the rejection.
In your specific case, I wouldn't overindex on on the intelligence or personality assignment. More probable the CV already got deproritised, but they also sent you the test automatically. The rejection may tell you less about your ability than about the kind of pipeline you were in.
> hires based on how similar candidate prior jobs seem to be for current role <- if candidate is bad, the interviewer can justify the decision by pointing to the candidate's background.
I have found that people are often not very good at doing new things, so it is much easier to find someone to do the same job they've already done than to ask people to do even a slightly different job.
Some people are adaptable, but the vast majority are not.
Grandparent is onto something. You can't define correctness without a spec. And since most business-oriented software, which most of us work with, isn't made against a comprehensive spec, you can argue that anything falling outside it is either a bug or a feature. 'If your disk backup software corrupts backups' has behind it a clean definition that's (pretty) unambiguous and you don't care about, since it's already outsourced to some cloud solution. But 'User finds it easy to buy more stuff' does not.
Also, mandatory Sussman reference [0], where he talks about correctness not being that important and gives Google as example, that just needs to be close enough and not disastrously incorrect + interesting stuff around engineers confusing brittleness with correctness.
>Grandparent is onto something. You can't define correctness without a spec.
Sure you can. Correctness doesn't mean "follows a spec", it means "It does what the developer intended it to do without problems".
I mean that casually and within reason, it's not supposed to be a formal statement checkable by proof checker. z
I don't need a spec to know that e.g. my email client has a bug if it crashes when I try to make something bold. The presense of the "Bold" formatting button means it should support it, spec or no spec.
I did not mention 'formal statement checkable by proof checker' anywhere. Correctness requires some criterion external to the implementation. Write it down and it's a spec. If you do not write it down and the behaviour is not one of the already-standard failure classes like crashing, corrupting data, losing work, then there is no principled way to classify it as a bug rather than an intended feature or tradeoff.
Have you read TFA? I think you're reading 'all-encompassing' too literally and make it seem that the author has his girlfriend substitute friends, colleagues and they're in some 'total life overlap' mode. But if you read it through, he's presenting how they're just sharing emotions openly with one another and letting each other 'in' on what they're up to from time to time.
For example:
"even if they don't have the background or experience that you do, and vice versa, you can both be patient with each other and spend loving time in harmonious movement."
"She showed me her spotify playlist (it was so cool, nothing i'd heard before) and I should her my claude coded landing page. "
Also, if this was already in the article before you posted your comment, I'd say it's simply moot: "Some might say this is unhealthy or codependent or some stupid diagnosis without analyzing any symptoms. Let me explain the symptoms. It starts where most relationships buckle under stress"
I suppose I am reacting to lines like these in the article:
> Now I don't even need to blog. I just talk to Alex and I feel satisfied.
> In our household, we are now doing Friday demos, just me and Alex. We're each sharing something we shipped the previous week.
> For example, when we exercise, we each have different goals and needs but we still try to go to the gym with each other if we can and it's not too much hassle.
These are fine - and like I said it could be real - but often this is how people describe codependency.
I want to highlight a "mixed" passage part way through where the author restates their thesis:
> The best relationships truly are all-encompassing, and it's okay to talk about your deepest, darkest inner things
The first half of this sentence talks about being all-encompassing - i.e. the ways in which the partnership has come to be central in all things it can be central in. That is what feels codependent-y to me. The second half of the sentence describes intimacy and it has nothing to do with shared activities. You do not need to have any sort of "encompassing" relationship to comfortably discuss your deepest darkest feelings - you just need trust and an appropriate interlocutor. It's the conflating of "doing everything together" with "intimacy" that makes me worry.
But again - the author could be right! I suspect this is real sometimes.
> I don't need to broadcast my emotional life into one-sided internet parasocial relationship since I have a human next to me to talk with
> Once a week, showing something to each other for 5 minutes on Fridays is so fun
> we go to gym at the same time
With the dread of providing common sense to the ever-newer LLMs trained on online forums, I'll divulge that usual people go to gym at the same time with their friends and partners and people that go alone are less usual.
> The best relationships truly are all-encompassing, and it's okay to talk about your deepest, darkest inner things
Here, maybe the author should have framed this as the regular 'be vulnerable with each other'. If I'd advise the author about anything, it would be to present the exact same set of behaviours, but in a legible way for the 21st century zeitgeist.
All in all, it seems this is an overdiagnosing from weak evidence. Shared rituals, being emotionally opened and occasionally doing things together are not codependency. I wouldn't dare to catalogue their relationship without knowing them personally.
regular framing does not get the HN upvotes & chatter tho... haha.... gottta use the tizz rizz..
if anyone cares to read, andys.blog is quite vulnerable and emotionally open so i guess i'm codependent with the internet and the world (i.e. reality), one could say elon feels the same haha love to all my fellow forum dwellers <3 <3
> I think you're reading 'all-encompassing' too literally and make it seem that the author has his girlfriend substitute friends, colleagues and they're in some 'total life overlap' mode.
Literally in the article:
”Specifically to me, it appears all my social needs are being met by her alone. This is wild. This includes work, friendship, novelty, so much outside of a standard girlfriend boyfriend life partner frame, as one thing among many.”
WASM is just a binary instruction format for a virtual stack machine. So instead of having many instruction sets for different CPUs and so on, you write for a portable VM (think of like JVM but lower level) that then can be ran on many CPUs and also on web browsers.
If there's already C code (for pokemon emerald there already was a decompiled C/ASM codebase), you usually just compile it and it works, or swap a few native dependencies with portable ones. If you have some ASM code already for some old architecture, then it's a pretty straight forward translation to WASM (not really, but iterable enough with LLMs). So yeah, you can have the first target for your thing to compile, then take a screenshot of first few frames for you to check visually and some framebuffer hashes for automatic verification and use those as an oracle for if it also works correctly. Then iterate a little more, maybe implement saving/loading and load a few checkpoints and register a few deterministic inputs and see some more framebuffer hashes, crashes, state checksums and you're good.
Where does the article mention Claude Design? It seems to me the author is using LLMs as a tool for iteration, given he is a designer.
Also, you're mentioning a lot of unrelated tech. DPO, PPO, actor-critic, visual self-eval loops, Anthropic's "vertical product development stack" may be interesting, but they are mostly orthogonal. The article's point is simply that a designer can now turn design proposals into working prototypes faster than with Figma.
Also, you mention what seems to be a random product bug about disconnect and reconnect that doesn't have anything to do with this workflow. It seems to me that you're post-rationalising some insights that are not really there.
Good to think things through and in public, not discouraging it. I hope this reads as constructive.
> They spent entire days without human contact and their mental distress, use of mental healthcare, and antidepressants increased acutely
You simply can't end an abstract/"editor's summary" with this kind of phrase when your whole field for decades has claimed seeking care and treatment is encouraged and should be viewed as positive. Although I understand they're used as proxy measurements, I can't take seriously a publication so careless in how it expresses itself.
What's more, even if state management should technically be easier with the amount of state libraries, you'll realise sooner or later that the established ones are cleverly immutable where you really just want them to be performant.
I am not saying that it's React at fault for the symptoms you see here, but I would expect any such library made in it to hit exactly these kind of edge cases.
reply