HNHacker News
TopNewBestAskShowJobs

Implicated

1,069 karma · joined May 5, 2013

https://fleet.legitphp.com https://github.com/mferrara

mferrara -. at .- gmail

submissionscomments
Implicated··on AWS multiple services outage in us-east-1
I know nothing. But I'd imagine the number of 'events' generated during this period of downtime will eclipse that number every minute.
Implicated··on Meow.camera
Similarly, I've got 7 regulars and 4 to 5 more occasional visitors that I've been feeding and fixing (11 of them fixed so far) but there's issues with racoons and opossums - pretty sure they stole a whole litter, they taint the water and eat any food available.

My plan is something similar to this feed the cats thing - except, a twitch live stream of an fpv water turret in which they can "deter" those unwanted visitors.

Implicated··on Claude Sonnet 4.5
tbh, I don't really understand it well enough to be able to give a response here. But here's a real prompt I just used on a project copy/pasted:

```

Something that seems to have been a consistent gotcha when working with llm's on this project is that there's no specific `placement` column on the table that holds the 'results' data. Our race_class_section_results table has it's rows created in placement order - so it's inferred via the order relative to other records in the same race_class_section. But this seems to complicate things quite a bit at times when we have a specific record/entry and want to know it's placement - we have to query the rest of them and/or include joins and other complications if we want to filter results by the placements, etc.

  Can you take a look at how this is handled, both with the querying of existing data by views/livewire components/etc and how we're storing/creating the records via the import processes and give me a
   determination on whether you think it should be refactored to include a column on the database for `placement`? I think right now we've got 140,000 or so records on that table and it's got nearly
  20 years worth of race records so I don't think we need to be too concerned with the performance of the table or added storage or anything. Think very hard, understand that this would be a rather
  major refactor of the codebase (I assume, since it's likely used/referenced in _many_ places - thankfully though that most of the complicated queries it would be found in would be easily identified
  by just doing a search of the codebase for the race_class_section_results table) and determine if that would be worth it for the ease of use/query simplification moving forward.
```

This comes with a rather developed CLAUDE.md that includes references to other .md documents that outline various important aspects of the application that should be brought into context when working in those areas.

This prompt was made in planning mode - the LLM will then dig into the code/application to understand things and, if needed, ask questions and give options to weigh before return with a 'plan' on how to approach. I then iterate on that plan with it before eventually accepting a plan that it will then begin work on.

Implicated··on Claude Sonnet 4.5
> But isn't the end goal to be able to get useful results without so much prompting?

See below about context.

> I mean in the movies for example, advanced AI assistants do amazing things with very little prompting. Seems like that's what people want.

Movies != real life

> To me, the fact that so many people basically say "you are prompting it wrong" is knock against the tech and the model. If people want to say that these systems are so smart at what they can do, then they should strive to get better at understanding the user without needing tons of prompts.

See below about context.

> Do you think his short prompt would be sufficient for a senior developer? If it's good enough for a human it should be good enough for a LLM IMO.

Context is king.

> I don't want to take away the ability to use tons of prompting to get the LLM to do exactly what you want, but I think that the ability for an LLM to do better with less prompting is actually a good thing and useful metric.

What I'm understanding from your comments here are that you should just be able to give it broad statements and it should interpret that into functional results. Sure - that works incredibly well, if you provide the relevant context and the model is able to understand and properly associate it where needed.

But you're comparing the LLMs to humans (this is a problem, but not likely to stop so we might as well address it) - but _what_ humans? You ask if that prompt would be sufficient for a senior developer - absolutely, if that developer already has the _context_ of the project/task/features/etc. They can _infer_ what's not specified. But if you give that same prompt to a jr dev who maybe has access to the codebase and has poked around inside the working application once or twice but no real in depth experience with it - they're going to _infer_ different things. They might do great, they might fail spectacularly. Flip a coin.

So - with that prompt in the top level comment - if that LLM is provided excellent context (via AGENTS.md/attached files/etc) then it'll do great with that prompt, most likely. Especially if you aren't looking for specifics in the resulting feature outside of what you mentioned since it _will_ have to infer some things. But if you're just opening codex/CC without a good CLAUDE.md/AGENTS.md and feeding it a prompt like that you have to expect quite a bit of variance to what you get - exactly the same way you would a _human_ developer.

You context and prompt are the project spec. You get out what you put in.

Implicated··on Claude Sonnet 4.5
> The thing is my "experiment" is one that represents a fairly common use case

Valid as well. I guess I'm just nitpicking based on how much I see people saying these models aren't useful combined with seeing this example, triggered my "you're doing it wrong" mode :D

> GPT-5-Codex allows me to write a pretty quick & dirty prompt, yet still get VERY good results.

I have a reputation with family and co-workers of being quite verbose - this might be why I prefer Claude (though haven't tried Codex in the last month or so). I'm typically setting up context and spending a few minutes writing an initial prompt and iterating/adjusting on the approach in planning mode so that I _can_ just walk away (or tab out) and let it do it's thing knowing that I've already reviewed it's approach and have a reasonable amount of confidence that it's taking an approach that seems logical.

I should start playing with codex again on some new projects I have in mind where I have an initial planning document with my notes on what I want it to do but nothing super specific - just to see what it can "one shot".

Implicated··on Claude Sonnet 4.5
Well, I don't have the context myself about what's happening in this example, though I don't see anything about auth myself.

And I left that window at 5-20x because, again, no real context. But unless I was already in the middle of a task and I was giving direction that there was already context for - my prompt is generally almost never _this_ short. (referring to the prompt in the top level comment)

> A 20x longer prompt doesn't sound like a satisfying solution to whatever issue is happening here.

It wouldn't be, given the additional context given by the author in a sibling comment to yours. But if you had specific expectations on the resulting code/functionality that 20x longer prompt is likely to save you time and energy in the back and forth adjustments you might have to make otherwise.

Implicated··on Claude Sonnet 4.5
I'm not trying to be offensive here, feel the need to indicate that.

But that prompt leads me to believe that you're going to get rather 'random' results due to leaving SO much room for interpretation.

Also, in my experience, punctuation is important - particularly for pacing and grouping of logical 'parts' of a task and your prompt reads like a run on sentence.

Making a lot of assumptions here - but I bet if I were in your shoes and looking to write a prompt to start a task of a similar type that my prompt would have been 5 to 20x the length of yours (depending on complexity and importance) with far more detail, including overlapping of descriptions of various tasks (ie; potentially describing the same thing more than once in different ways in context/relation to other things to establish relation/hierarchy).

I'm glad you got what you needed - but these types of prompts and approaches are why I believe so many people think these models aren't useful.

You get out of them what you put into them. If you give them structured and well written requirements as well as a codebase that utilizes patterns you're going to get back something relative to that. No different than a developer - if you gave a junior coder, or some team of developers the following as a feature requirement: `implement a fuzzy search for conversations and reports either when selecting "Go to Conversation" or "Go to Report" and typing the title or when the user types in the title in the main input field, and none of the standard elements match, a search starts with a 2s delay` then you can't really be mad when you don't get back exactly what you wanted.

edit: To put it another way - spend a few more minutes on the initial task/prompt/description of your needs and you're likely to get back more of what you're expecting.

Implicated··on Claude Sonnet 4.5
I'm on a max ($200) plan and I only use opus and I've _never_ hit a rate limit. Definitely using for 5+ hours at a time multiple days per week.
Implicated··on Claude Sonnet 4.5
I'm also a max user and I just _leave_ it on Opus 4.1 - I've never hit a rate limit.
Implicated··on Claude Sonnet 4.5
I'd imagine that the proportion of "legit" conversations around these topics and those that they're intending to not allow is large enough that it doesn't make sense for them to even entertain the idea of supporting those conversations.

As a rather hilarious and really annoying related issue - I have a real use where the application I'm working on is partially monitoring/analyzing the bloodlines of some rather specific/ancient mammals used in competition and... well.. it doesn't like terms like "breeders" and "breeding"

Implicated··on Vertical Solar Panels Are Out Standing
Congrats!
Implicated··on Redis is fast – I'll cache in Postgres
Yea, I guess in that case I'd say it's likely a bad move in every direction if you're constrained to 5 min to deploy something you don't understand.
Implicated··on Redis is fast – I'll cache in Postgres
> Is it the typical advantages of using a db over a filesystem the reason to use redis instead of just reading from memory mapped files?

Eh - while surely not everyone has the benefits of doing so, I'm running Laravel and using Redis is just _really_ simple and easy. To do something via memory mapped files I'd have to implement quite a bit of stuff I don't want/need to (locking, serialization, ttl/expiration, etc).

Redis just works. Disable persistence, choose the eviction policy that fits the use, config for unix socket connection and you're _flying_.

My use case is generally data ingest of some sort where the processing workers (in my largest projects I'm talking about 50-80 concurrent processes chewing through tasks from a queue (also backed by redis) and are likely to end up running the same queries against the database (mysql) to get 'parent' records (ie: user associated with object by username, post by slug, etc) and there's no way to know if there will be multiples (ie: if we're processing 100k objects there might be 1 from UserA or there might be 5000 by UserA - where each one processing will need the object/record of UserA). This project in particular there's ~40 million of these 'user' records and hundreds of millions of related objects - so can't store/cache _all_ users locally - but sure would benefit from not querying for the same record 5000 times in a 10 second period.

For the most part, when caching these records over the network, the performance benefits were negligible (depending on the table) compared to just querying myqsl for them. They are just `select where id/slug =` queries. But when you lose that little bit of network latency and you can make _dozens_ of these calls to the cache in the time it would take to make a single networked call... it adds up real quick.

PHP has direct memory "shared memory" but again, it would require handling/implementing a bunch of stuff I just don't want to be responsible for - especially when it's so easy and performant to lean on Redis over a unix socket. If I needed to go faster than this I'd find another language and likely do something direct-to-memory style.

Implicated··on Qwen3-Omni: Native Omni AI model for text, image and video
I just wanted to touch on this despite being days later in hopes you see this - I've seen this sort of feedback about the Pro plan quite a bit. I skipped it and went for max so I don't have any experience with it but I can tell you that I've _never hit my/any usage limit_ with the max plan.

Like, I don't know if my account is broken or everyone else just uses things differently. I use claude code, I have it hard-stuck to Opus 4.1 - I don't even touch Sonnet. I _abuse_ the context - I used to /compact early or /clear often depending on the task... but these days (Opus seems much better with nearly full context than Sonnet was) if I'm still on the same task/group of tasks or I think that the current context would be useful for the next thing/task/step I don't even /compact anymore. I've found that if I just run it right up to full and let it auto /compact it does a _really_ good job picking up where it left off. (Which wasn't always the case) Point being - I'm exclusively using Opus 4.1 while also constantly cycling through and maxing out context only to restart with /compact'd context so it's not even starting empty and just keep going.

Hours a day like this. Never hit a limit. (I've said elsewhere that I do believe the general time I work, which is late evening and early morning in north america, does have something to do with this but I don't actually know)

Implicated··on Redis is fast – I'll cache in Postgres
I'm definitely getting the wrong kind of clients.

Kudos to you sir. Sincerely, I'm not hating, I'm actually jealous of the environment being that mellow.

Implicated··on Redis is fast – I'll cache in Postgres
Sincerely (Feel the need to add that given the tension around here in these comments), I'm curious how Redis was annoying. Can you give any detail/insight?
Implicated··on Redis is fast – I'll cache in Postgres
> I've deployed Single monolith + PostgreSQL to about 8 different clients in the last 2.5 years. It's my largest source of income.

And... do you do that with the default configuration?

Implicated··on Redis is fast – I'll cache in Postgres
> If you, like the whole world, consume Redis through a network connection, it should be obvious to you that network is in fact the bottleneck.

Not to be annoying - but... what?

I specifically _do not_ use Redis over a network. It's wildly fast. High volume data ingest use case - lots and lots of parallel queue workers. The database is over the network, Redis is local (socket). Yes, this means that each server running these workers has its own cache - that's fine, I'm using the cache for absolutely insane speed and I'm not caching huge objects of data. I don't persist it to disk, I don't care (well, it's not a big deal) if I lose the data - it'll rehydrate in such a case.

Try it some time, it's fun.

> And at the end of the day, what exactly is the performance tradeoff? And does it pay off to spend more on an in-memory cache like Redis to buy you the performance Delta?

Yes, yes it is.

> That's why real world benchmarks like this one are important.

That's not what this is though. Just about nobody who has a clue is using default configurations for things like PG or Redis.

> They help people think through the problem and reassess their irrational beliefs.

Ok but... um... you just stated that "the whole world" consumes redis through a network connection. (Which, IMO, is wrong tool for the job - sure it will work, but that's not where/how Redis shines)

> What you cannot refute are the real world numbers.

Where? This article is not that.

Implicated··on Redis is fast – I'll cache in Postgres
> I’m not sure what the best pattern is for this.

> You can put the relevant docs in your prompt

I've done a lot of experimenting with these various options for how to get the LLM to reference docs. IMO it's almost always best to include in prompt where appropriate.

For a UI lib that I use that's rather new, specifically there's a new version that the LLMs aren't aware of yet, I had the LLM write me a quick python script that just crawls the docs site for the lib and feeds the entire page content back into itself with a prompt describing what it's supposed to do (basically telling it to generate a .md document with the specifics about that thing, whether it's a component or whatever, ie: properties, variants, etc in an extremely brief manner) as well as build an 'index.md' that includes a short paragraph about what the library is and a list of each component/page document that is generated. So in about 60 seconds it spits out a directory full of .md files and I then tell my project-specific LLM (ie: Claude Code or Opencode within the project) to review those files with the intention of updating the CLAUDE.md in the project to instruct that any time we're building UI elements we should refer to the index.md for the library to understand what components are available and when appropriate to use one of them we _must_ review the correlating document first.

Works very very very well. Much better than an MCP server specifically built for that same lib. (Huge waste of tokens, LLM doesn't always use it, etc) Well enough that I just copy/paste this directory of docs into my active projects using that library - if I wasn't lazy I'd package it up but too busy building stuff.

Implicated··on Redis is fast – I'll cache in Postgres
I mean - this is the entire problem right here.

Don't ask LLMs that are trained on a whole bunch of different versions of things with different flags and options and parameters where a bunch of people who have no idea what they're doing have asked and answered stackoverflow questions that are likely out of date or wrong in the first place how to do things with that thing without providing the docs for the version you're working with. _Especially_ if it's the newest version, regardless if it's cutoff date was after that version was released - you have no way to know if it was _included_. (Especially about something related to a programming language with ~2% market share)

The contexts are so big now - feed it the docs. Just copy paste the whole damn thing into it when you prompt it.

Implicated··on Redis is fast – I'll cache in Postgres
> copy pasting some configuration I might not really understand

Uh, yea... why would you? Do you do that for configurations you found that weren't from LLMs? I didn't think so.

I see takes like this all the time and I'm really just mind-boggled by it.

There are more than just the "prompt it and use what it gives me" use cases with the LLMs. You don't have to be that rigid. They're incredible learning and teaching tools. I'd argue that the single best use case for these things is as a research and learning tool for those who are curious.

Quite often I will query Claude about things I don't know and it will tell me things. Then I will dig deeper into those things myself. Then I will query further. Then I will ask it details where I'm curious. I won't blindly follow or trust it like I wouldn't a professor or anyone or any thing else, for that matter. Just like I would when querying a human for or the internet in general for information, I'll verify.

You don't have to trust it's code, or it's configurations. But you can sure learn a lot from them, particularly when you know how to ask the right questions. Which, hold onto your chairs, only takes some experience and language skills.

Implicated··on I'm spoiled by Apple Silicon but still love Framework
Totally understandable. You're right that those people are highly unlikely to really care between 2 seconds to being functional and 60 seconds. They're at the coffee machine anyway.

I've been obsessed with building things since I got my first lincoln logs set. I don't "clock out". There's no work computer and life computer, or even more foreign to me, no computer when not at work. I take my laptop nearly everywhere with me and have been known to pull over into the nearest gas station or any parking lot, pull it out and immediately write some code or make some notes due to something I'd just then had some breakthrough or idea about. There's no way I'm doing that if it takes a full minute to boot up and I'm there looking at a fresh rebooted OS. But if I can open it, touch my finger to the fingerprint reader and _immediately_ be productive? Happens all the time.

Hell, I'll walk across the room and open my laptop when my phone is in my pocket because it's just easier to use and it's immediately functional.

Different strokes for different folks, but I'd venture to bet that my experience mimics that of many others.

Implicated··on Qwen3-Omni: Native Omni AI model for text, image and video
I mean - the AI itself will help you get all that setup.

Claude code is your friend.

I run proxmox on an old Dell R710 in my closet that hosts my homeassistant (amongst others) VM and then I've setup my "gaming" PC (which hasn't done any gaming in quite some time) to dual boot (Windows or Deb/Proxmox) and just keep it booted into Deb as another proxmox node. That PC also has a 4070 Super that I have setup to passthru to a VM and on that VM I've got various services utilizing the GPU. This includes some that are utilized by my hetzner bare metal servers for things like image/text embeddings as well as local LLM use (though, rather minimal due to VRAM constraints) and some image/video object detection stuff with my security cameras (slowly working on a remote water gun turret to keep the racoons from trying to eat the kittens that stray cats keep having in my driveway/workshop).

Install claude code (or, opencode, it's also good) - use Opus (get the max plan) and give it a directory that it can use as it's working directory (don't open it in ~/Documents and just start doing things) and prompt it with something as simple as this:

"I have an existing home assistant setup at home and I'd like to determine what sort of self-hosted AI I could setup and integrate with that home assistant install - can you help me get started? Please also maintain some notes in .md files in this working directory with those note files named and organized as you see appropriate so that we can share relevant context and information with future sessions. (example: Hardware information, local urls, network layout, etc) If you're unsure of something, ask me questions. Do not perform any destructive actions without first confirming with me."

Plan mode. _ALWAYS_ use plan mode to get the task setup, if there's something about the plan you don't like, say no and give it notes - it will return with a new plan. Eventually agree to the plan when it's right - then work through that plan not in plan mode, but if it gets off the plan, get back in plan mode to get the/a plan set and then again let it go and just steer it in regular mode.

Implicated··on I'm spoiled by Apple Silicon but still love Framework
This, so much. I read that comment and immediately recoiled at the idea of waiting "less than a minute" to be able to do anything. I'd estimate that 1/3 of the time I even open my laptop, I'm done with what I needed in less time than that boot up sequence takes and have closed it and moved on to something else. So often I just pop it open, do/check something and close it within seconds.

I go _months_ without rebooting/proper shut downs. And this is on a MacOS install that I've migrated from one Macbook to another for 5 macbooks now O.O

Implicated··on I'm spoiled by Apple Silicon but still love Framework
While I understand your perspective here - let me counter with mine. I have the same issue where I maintain a 'state' that I'd prefer to maintain but my interest in maintaining it does have this anxiety you describe.

It's just a huge waste of time to get it all back. I see it no different than being in the middle of a heavy coding/mental task and being interrupted to the point that you have to 'start over' in the sense of getting all that context back in the right places.

Sure, I _could_ neatly close everything out and have a pristine perfect work/desktop environment. But, personally, when I see the work/desk environment of someone and it's absolutely pristine all I can think about is how they're spending energy to maintain that.

To give another example - in my workshop (woodworking), if I'm in the middle of something and need to take a break/leave the shop... I'm not putting _anything_ away. I turn off the lights and walk out. That way when I return I don't have to set everything back up. Now - when I finish something, then I go through and clean up and organize and get the state freshened up. Same thing with my laptop/computer.

Zero anxiety about it all - it's not about losing anything but time. And that's what's most important.

Implicated··on Philips announces digital pathology scanner with native DICOM JPEG XL output
> they'll have 0 idea why this has so much mindshare

Considering the amount of storage all of these companies are likely allocating to storing jpegs + the bandwidth of it all - maybe the instant file size wins?

Implicated··on EPA Seeks to Eliminate Critical PFAS Drinking Water Protections
Def not sugar canes :D
Implicated··on EPA Seeks to Eliminate Critical PFAS Drinking Water Protections
> Same for American coke w/ Cane Sugar instead of actual sugar.

I think you meant high fructose corn syrup instead of cane sugar (which is real sugar)

Implicated··on Immich – High performance self-hosted photo and video management
Or Redis :D
Implicated··on Taylor Otwell: What 14 Years of Laravel Taught Me About Maintainability
Thanks for those - turns out, I'm just lucky and have been using in a manner this never reared its head in my (only one) application where they're used. Heavily. But with the way things are done - the tagged caches were only flushed during a time that there were never going to be new keys added.
← PreviousPage 3 of 14Next →