HN user

jw1224

1,943 karma
Posts14
Comments315
View on HN
TypeScript 7 14 days ago

Interesting, I've come to the opposite conclusion: a lack of types (or types that are only weakly enforced) costs me significantly more tokens in the long-run to maintain, and makes it far too easy for models to silently introduce bugs.

I run all my projects now in TypeScript with the strictest possible settings, including disabling `ts-ignore` markers.

(This would drive me absolutely insane, but my agents get over it pretty quickly!)

Fable 5 is Back 21 days ago

When Claude Fable 5 declines a request, the Messages API returns stop_reason: "refusal" as a successful HTTP 200 response, not an error

This is precisely what comes to mind when I think “successful”.

Not OP, but I generally agree. Models are powerful enough now to reliably instruct other models. They don’t need fancy tools or IDEs, just the command line.

With deterministic workflows, type-safe languages and test suites, agentic loops pretty much “can’t fail”. They will continue until the types resolve, the tests pass, and the project requirements are deterministically met.

By that point it’s literally just a case of typing a prompt in to a text field, and waiting.

Skills already are "just asking the model". Unless you'd prefer to type out the same instructions every single time?

Skills are literally just Markdown documents that get loaded into context when the /skill-name is invoked.

“To stave off some obvious comments:

yoUr'E PRoMPTiNg IT WRoNg!

Am I though?”

Yes. You’re complaining that Gemini “shits the bed”, despite using 2.5 Flash (not Pro), without search or reasoning.

It’s a fact that some models are smarter than others. This is a task that requires reasoning so the article is hard to take seriously when the author uses a model optimised for speed (not intelligence), and doesn’t even turn reasoning on (nor suggest they’re even aware of it being a feature).

I asked the exact prompt to ChatGPT 5 Thinking and got an excellent answer with cited sources, all of which appears to be accurate.

The “full Tailwind experience” is already freely available. What “lost opportunities for deep integration” is a frontend CSS framework missing?

Tailwind Plus (the commercial product) is like buying an off-the-shelf template. It’s just a collection of themes and pre-built components — useful for devs who want to get started quickly on a project, but it’s cookie-cutter and can easily be replicated by anyone with Tailwind itself.

Associative arrays are iterable internally without needing an interface or key tracking. You can just foreach them.

Let me guess.

This just proves my point, you call this a “hot mess” whilst completely misunderstanding what it’s even used for.

The Iterator interface isn’t even used in the comment you first replied to.

I’m not sure I follow, what exactly is your complaint? The Iterator interface is described as:

Interface for external iterators or objects that can be iterated themselves internally

Note “external iterators or objects”. The Iterator interface is not exactly everyday PHP, it’s a specialist utility for making classes iterable so they can be accessed like arrays. Most developers will rarely use it directly, and it’s not being used in the parent comment’s example either.

Iterating over something requires knowing where you are in the sequence, so of course you would need to implement a method to get the current position of the iteration.

Great first article, and very interesting to see someone else using a receipt printer for bite-sized task management!

I have a variety of automations running which print actionable tasks to my receipt printer via a Raspberry Pi. It’s nice having a real-life ticket I can take hold of.

One thing to be aware of if you’re handling receipts frequently: make sure to buy phenol-free thermal paper. Phenol is toxic and some types of it are banned in certain countries.

I thoroughly enjoyed reading this. I peaked at 137wpm[0] and I’m not ashamed to say I love typing long sentences. I type fast enough that my thoughts normally can’t keep up with my fingers, but when I plan a sentence out in my head, the satisfaction I get from watching my inner monologue transmogrify into words onscreen is palpable. It’s a rush. And I totally get it. Great article!

[0] https://data.typeracer.com/pit/profile?user=mavis_b

Abstract:

The maximum element of the vector output by the Softmax function approaches zero as the input vector size increases. Transformer-based language models rely on Softmax to compute attention scores, causing the attention distribution to flatten as the context size grows. This reduces the model's ability to prioritize key information effectively and potentially limits its length generalization.

To address this problem, we propose Scalable-Softmax (SSMax), which replaces Softmax in scenarios where the input vector size varies. SSMax can be seamlessly integrated into existing Transformer-based architectures. Experimental results in language modeling show that models using SSMax not only achieve faster loss reduction during pretraining but also significantly improve performance in long contexts and key information retrieval.

Furthermore, an analysis of attention scores reveals that SSMax enables the model to focus attention on key information even in long contexts. Additionally, although models that use SSMax from the beginning of pretraining achieve better length generalization, those that have already started pretraining can still gain some of this ability by replacing Softmax in the attention layers with SSMax, either during or after pretraining

Personality Basins 2 years ago

Do they grow up to be liars and thieves?

I think you’ve completely misunderstood what this article goes on to say.

I gave up reading immediately - just dumb

There’s your problem then.

Personality Basins 2 years ago

That’s not how I read it, I think you’re missing some nuance here.

The article doesn’t imply genetics have no effect, it just treats them as a baseline which are then adjusted over time according to the person’s lived experiences.

Likewise with mental disorders and depression, the “solution” you claim it states as “not being mentally ill” is the outcome of a process, not the process itself.

I’m a PhpStorm user so not familiar with Rider specifically, but in my experience JetBrains IDEs are exactly that: Integrated Development Environments. Whereas VSCode is more of a code editor first and foremost.

There’s tons of overlap between the two, and for casual development VSCode will usually be fine. But as a professional I rely on IDEA to make a living, and it rarely lets me down.

95% of everything I could ever need comes out-of-the-box, so I don’t need to go plugin hunting (though there is a broad range of IDEA plugins too). In fact the IDEA plugins are cross-compatible, so plugins for Rider will work in PhpStorm, PyCharm, Rubymine, etc.

The refactoring is outstanding, and leaps beyond what VSCode can do it. Basically it just understands my code like a real developer would. Not just simply checking syntax, but understanding project structure, naming conventions, coding styles, and more.

PhpStorm gives me access to a full debugger, with inline breakpoints and execution step controls. “Find Usages” is incredibly thorough and even understands dynamic symbol names in many cases.

Also I get a full MySQL and Redis client, right there in the UI. I can click on strings which refer to column names in my code, and they’ll appear in the DB panel instantly.

At the end of the day these are power-user features, but I’m glad to have them and feel significantly more productive in a JetBrains IDE. Embracing static analysis and a full IDE was probably the single most beneficial upgrade to my skills and career.

setBigTimeout 2 years ago

Unlike setTimeout, requestAnimationFrame callbacks are automatically skipped if the browser viewport is minimized or no longer visible. You wouldn’t want to miss the frame that matters!

I would assume Apple purchased dedicated hardware capacity at their own expense, which lets them run isolated instances of OpenAI’s models “free”. It would make no sense otherwise!

But with ULID or UUIDv7, this "benefit" is gone to some degree because timestamp is included

Including the timestamp only tells someone the time the UUID was generated. Unlike incrementing numeric IDs (which can simply be subtracted from one another to measure a change in database records), there’s no way to meaningfully count change over time.

any incremental id can be transformed ("encrypted") to arbitary different format (which hides the real id)

Easier said than done… You then have the overhead of encrypting/decrypting every client-facing ID before querying the database. You’ll also need to code workarounds in many frameworks, to bypass conventions where they expect keys in URL paths (for example).

Also UUID is usually much larger: Waste of db/index space, degraded performance

With older UUIDs, sure, but sorted ones (like ULIDs) have consistent prefixes, allowing for very efficient indexing and querying with a binary tree search.