News for hackers. Stuff that matters.

nogridbag

Re:OLED iPad Mini on Monday October 26, 2026 @10:46AM (#50244652)
For nighttime viewing with my Pixel 8 Pro (OLED), I wish I could make the screen even dimmer at night. The extra dim mode barely does anything.
Re:Passkeys Are Not a Trap on Wednesday October 14, 2026 @12:51PM (#50090766)
Not sure if this mentioned, but I setup a new Gmail account and it wouldn't let me add my yubikey for MFA. I could only add a passkey to my yubikey for MFA.
Re:What even is an OS now? on Saturday September 26, 2026 @12:10PM (#49857876)
Have you seen the Googlebook? I think Google is taking the lead here with "Create a Widget". I think some have overlooked this feature or treated it as a gimmick. But this is the first step into average users building small micro apps just for themselves. I think it will go from Create a Widget to Create an App within a short period.
Re:iOS 27, iPadOS 27, and macOS 27 on Tuesday September 15, 2026 @09:33AM (#49712307)
I've had the latter with Gemini in Android Auto. In fact, my scenario was even worse.

Me: "Send a message to <wife>".

Gemini: "OK what's the message?"

Me: "Can you bring Tylenol I'm having a headache?"

Gemini: "I'm sorry, I cannot help with that. If you need medical advice..." <-- or something to that extent.

Up to this point, I thought when Gemini would prompt for a message, it would simply accept whatever I said essentially as plain text - and maybe with the new Rambler feature on Pixel phones it may cleanup my message slightly.

But now I can see scenarios where Gemini would possibly need to parse my input. And it should have been obvious since I would often say things like "cancel" and I never questioned it.

Yeah I'm confused. The title of the article is wrong. There was no "Flock Camera Glitch" according to the article.

The human in the loop did not properly delete an invalid license plate number from one of the databases the flock system checks against.

The issue issues are with:

1. Human in the loop

2. Third party database police use for homicide info

3. Police response

I don't see what the license plate reading technology has to do with any of this. It seems like the only thing working reliably.

One misconception I had was that with value objects we could simply use `==` for comparison. But it looks like there's lots of gotchas with this especially if the value class has String fields for one or more fields. For example, comparing two ZonedDateTime value objects may be fine with == because I believe the JDK team ensured the Strings that represent the ZoneIds are always the same reference.

We have tons of wrapper classes in our codebase which seem ideal as value objects. For example, instead of passing around "String emailAddress", we have a wrapper class EmailAddress. While we can now make our EmailAddress class a value object, we cannot do "==". Unlike ZoneId in which there's a fixed set and you can intern all ZoneIds in the string pool, email addresses are unique and trying to intern all email addresses would be a bad idea. So it seems like using .equals is here to stay even for these types of basic classes.

There's always this comment on every Java post. I expect the average HN member to be someone on the team who is either leading their projects or plays a significant role in driving the design of the software. You set the culture for your own projects. I've lead the development of some massive Java apps and all have had simple and clean architecture. I've never seen IStatusChangeEntityCreationManagerFactory or anything like it even once in any of my projects, but perhaps that's because the last time I used Spring was ~17 years ago. Most of my recent projects are using Quarkus, which is still a relatively large framework. But our codebase is designed in such a way that we're not tightly coupled to Quarkus.

I have seen a surge of overly complicated PRs now that we're in the AI era, but it's our job to be the gatekeeper and push back on this crud from entering the codebase. And that's likely true of any language.

I wish I did something valuable. Instead I spent most of my time writing kick scripts for #warfactory pretending I was some l33t coder... I still have some of those scripts saved somewhere!
Re:Screenshots of Old Desktop OSes on Tuesday May 12, 2026 @11:12AM (#48109516)
I have a feeling you're in the minority. I've been using computers for 35+ years and I feel like I still don't understand OK/Apply/Cancel buttons. I still click Apply before clicking OK even if I know it's unnecessary.

Plus, I don't believe Cancel reverts changes the user made if they clicked Apply already. So your suggestion would go against how the UX of OK/Apply/Cancel has historically worked.

Back in the early dial-up era, when teachers were not tech-savvy, I went online and found a paper exactly matching what I was tasked to write about for a homework assignment. And I regrettably submitted it as-is with no changes. I guess I knew it was cheating, but I likely also thought I was being incredibly clever as I had not heard of anyone ever doing that before. However, another student in the class submitted the same exact paper. I received an A and he received a C.

The teacher likely didn't know that he used to be my best friend growing up, and at some point was more knowledgable with computers than me. He introduced me to things like IRC. But he became one of the most popular kids at school and started distancing himself from me.

After getting our papers back, he came over to brag about how he found his paper online and that's how we discovered we submitted the same exact essay. At that point in time, I thought the teacher must have assumed he copied from me. But I think your explanation is likely more plausible. I guess the teacher just skimmed the papers and graded based on our expected grade.

We have a medium sized Quarkus app (~200kLOC) and Quarkus has been fantastic. Startup in JVM mode for our app is around 10 secs. Not blazing fast - but likely much faster than a typical Java enterprise app. I'm sure a few of those secs are spent doing things like pulling authz policies from github or due to having several thousand hibernate entities.
Re:So where are all the AI apps? on Tuesday March 24, 2026 @12:57PM (#47505732)
I wish we had a dedicated InstallShield engineer! I had to design and burn my own discs for the desktop apps I built. And for some reason, the LightScribe drive was installed on the receptionist's computer. I have no idea why, but I was a new hire and I didn't question much.
I believe every UI developer that has used frameworks like Swing has reached a point where specific user interfaces, even those that look trivial, become too complex primarily due to things like event handlers. Trying to figure out a simple thing like why a radio box is enabled and is marked dirty may require long debugging sessions where one event handler for component A triggers another event handler for component B, which triggers another event handler, etc. And before you know it, 50 events were triggered just during the initial mounting of the UI. Making sense of it all is maddening.

And then said developer does what they think feels right: "I have my state and I simply want all the fields to reflect my state". So they try and rewrite the component into some sort of mini immediate-mode style component. All of the event handlers get wired up a single "layoutComponent" method that tries to call all the UI component setters based on the current state with all the problems you alluded to. I know I've done this type of things numerous times before going back all the way to my first internship, well before React was even a thing.

I think modern frameworks solve the reactivity issue this well enough, that it really doesn't matter if the underlying framework is not natively reactive. I will say though that I've primarily used Vue.js where most state is relatively local and we don't try to re-render the world on every input. I think part of the problem with modern dev is likely that React has become the default instead of a simpler framework like Vue.

Re:I'm OK being left behind, thanks on Friday March 20, 2026 @01:57PM (#47458222)
The tire is the black rubber that's mounted to the wheel. Tire shops don't give you a new wheel when you get a flat tire.
Re:I Pitched a Roller Coaster to Disneyland at Age 10 in 1978 on Tuesday February 24, 2026 @03:37PM (#47142619)
This is a timely post. Just last night my 8 y/o asked if she could create a presentation on my laptop like they do at school. I have no idea what software they use at the elementary school.

I've let her play around with Google Docs before. But what I really wanted was something like Creative Writer that is more kid friendly. I used Gemini (sorry) to suggest some software and it suggested "Book Creator" which is intended for schools/teachers. I signed up as a fake teacher and added my kids as students and they did create some really creative books, importing images, and adding their own drawings. But it's still missing that kid-friendly vibe like Creative Writer.

Re:I Pitched a Roller Coaster to Disneyland at Age 10 in 1978 on Tuesday February 24, 2026 @10:26AM (#47138353)
lmao, I was just thinking about this yesterday. My parents would do the same thing and I would try to correct them and explain how they can get better results just typing keywords and not sentences. And here I am in 2026 typing full sentences in Google search so that AI can present me the exact answer directly in the search results.
Re:I Pitched a Roller Coaster to Disneyland at Age 10 in 1978 on Tuesday February 24, 2026 @10:18AM (#47138245)
These letters matter a lot to kids. I sent my video game idea to Nintendo as a little kid and I had the same reaction seeing that envelope from Nintendo in the mailbox addressed to me. I think it was also a bit more special pre-internet as these companies felt a bit more magical and mysterious. You can only read about them through video game magazines and see their names in the credit scenes at the end of the games. Unless you were one of those weird kids that called Nintendo Power helpline of course!

I remember also receiving that weird VHS tape from Nintendo in the mail: https://www.youtube.com/watch?v=rJzIc_c1PvE

I have no idea how I received that, but it was so cool!

I had this same question recently. There's mesh networks like meshcore. But you would be limited to just sending text messages to other users. I would imagine the government would be able to easily identify and destroy such a network as well.
Programming a VCR was pretty trivial for me as a kid, but a bit annoying.

But then VideoGuide [1] was released (available from RadioShack). I begged my parents for that and honestly it was the most amazing product and worked flawlessly. I felt like I was living in the future.

[1] https://www.youtube.com/watch?v=aWzJuqkQbEQ

I believe that's always been a thing. A long time ago I read this teardown article [1] of real vs counterfeit Beats headphones. And even the counterfeit versions had metal weight added to make it feel like the real Beats headphones!

[1] https://blog.bolt.io/our-beats-were-counterfeit/

Re:It's hard to justify Tahoe icons on Monday January 05, 2026 @12:04PM (#46501444)
I consider myself above average with UI design, but I still got confused with that dang "i" icon in the Preview app just yesterday.

I had to add my signature and write in the date so it looks like it was handwritten. So the plan was to just draw the date with a pencil tool and if that failed use the text tool to write the date.

First I instinctively clicked the pencil icon which turned out to be a highlighter. That's a great example where if they had added color for the tip and line it would have clearly looked like a highlighter. After that failed, I clicked that "i" icon because it looks like it's for inserting text. Honestly I was in such a rush I didn't even see the info pane popping up and was dang confused when nothing was happening.

I'm very familiar with info icons and have used them in my own apps, yet I had never seen one without the circle around it.

Re:New OS aims to provide (some) compatibility with macOS on Friday November 21, 2025 @12:10PM (#46006394)
Those mini screenshots do not look like anything like what's in the "Screenshots" section:

https://imgur.com/a/svQaeCa

Re:Show HN: DBOS Java – Postgres-Backed Durable Workflows on Thursday November 13, 2025 @05:14PM (#45921346)
Are there any plans for supporting other databases? Our company primarily uses and has experience managing MySQL deployments. I evaluated Temporal some time ago as it seemed like a good fit for what we're building so I'm watching this closely. Thanks!
The OP is real time ray tracing which is running between 30-60FPS on my macbook air while moving the camera and objects around.

Your link appears to be a basic ray tracer which anyone who has taken an intro to computer graphics course in college is likely required to implement and would only need a javascript canvas. To be honest I have no idea how much OPs real-time ray tracing differs in complexity from traditional ray tracing.

The update loop occurs as a result of step 3 in which the UI updates itself from the model which then, due to a combination of developer inexperience, UI framework design/complexity, or application complexity, the UI then automatically triggers updates to the model. In my experience, this was a common defect in all applications I've seen that used various MVC style frameworks or home grown MVC architectures.

In a declarative framework, while it is still technically possible, it is very rare. The current app I'm working on is one of the largest front-end apps I've worked on (multiple years of dev). We've had a single infinite loop issue reported that was trivial to fix. We have very junior UI devs compared to teams I've worked on in the past, yet our UI defect rate is incredibly low.

I've used several MVC UI frameworks in the past both on the desktop and web, and they all had the same problems. When the view becomes out of sync with the model, it becomes a nightmare to figure out why that's happening.

You have your model (data), and conceptually, you just want to bind that model to the view. But you have to write all this imperative code to do that. It's very simple with an imperative UI to have infinite loops even with very simple UIs. "When this field changes, I want to update this other field". But that other field has it's own event listeners that trigger other effects. The event listeners work fine in their own silo, but the interactions between fields cause unintended effects that are not obvious reading the code.

When the component is mounted, the behavior is very hard to reason about and you spend lots of time in a debugger tracing through all the event listeners just to reach the initial state of the UI. Additionally, in these frameworks the developer is typically responsible for cleaning up all the event listeners. It's very easy to forget to clean these up properly.

Once a UI reaches a certain complexity, you try to rewrite the imperative code so that it almost reads declarative and you wish you could simply use a declarative UI framework. I can't speak for React as I have not used that in a long time, but in Vue.js I never write the UI to use global state. All state is local to the views that it pertains to and with defineModel introduced back in late 2023, you can write small UI components without all the plumbing required in earlier versions. I've never experienced such a simple and reliable UI framework previously.

Re:Wren: A classy little scripting language on Tuesday October 28, 2025 @02:35PM (#45736903)
I went through the Crafting Interpreters book with modern Java. I posted this on reddit, but I basically used records and sealed interfaces. With modern Java there's no need for visitor pattern.

    private void execute(Stmt statement) {
        switch (statement) {
            case Stmt.Expression expression -> evaluate(expression.expr());
            case Stmt.Block block -> executeBlock(block.statements(),
               new Environment(environment));
            ...

    public sealed interface Expr permits
        Expr.Assign,
        Expr.Binary,
        Expr.Call,
        Expr.Function,
        .... more exprs here
Re:Magit Is Amazing on Tuesday October 21, 2025 @03:31PM (#45660544)
How does Magit handle complex merges? The website shows simple diffs. In my experience, merging is something where a great UI can vastly simplify the process. I personally use SmartGit which I find is fantastic for diffs and resolving conflicts.
> accelerate slightly, deactivate cruise, drive as normal.

That was also what I tried doing to try and remedy the problem. The problem is normally when you want to deactivate cruise, it's because there's a slower car in front. And it's a bit unnerving to accelerate towards the slower vehicle (even if ever so subtle) when the goal is to deactivate cruise. I've attempted this about 3 times on the highway and it just didn't feel comfortable so I stopped doing that. I wish there was simply some setting so that after deactivating cruise there was some smoother ramp up to the current regen setting. For example, after deactivating cruise it's max-regen should be similar to ICE vehicle deceleration, then after N milliseconds ramp up to last used regen. That would solve the problem for me.

Not the OP and driving my EV isn't a terrible experience, but I do find I struggle to drive it smoothly.

I have a really hard time using cruise control in my Genesis EV. I usually use one of the regen breaking modes, and when you disable cruise control, the car will automatically start regen braking unless you have you have the throttle at the perfect position which is near impossible. And that's much more noticeable if you use one of the more heavy regen modes.

So I have to follow this pattern: Disable regen, engage cruise, use cruise, disable cruise, enable regen just to use it for a few minutes. And with the Genesis, every time you change between regen modes the car kind of jerks a bit. I've heard this is not really a problem in Teslas. Of course I could simply not use regenerative braking (a major feature of the car) or I can attempt to change my driving habits and not use cruise control as often. For long drives I much prefer my ICE vehicle specifically because of this.

The other thing may be related more to my driving position. The car is heavy and rides harshly over bumps which causes my foot to accidentally push harder on the throttle for < 1 sec. And because it's an EV which has quick acceleration the car occasionally will accelerate fast after I hit a bump. I've driven a ton of ICE sports cars with hard suspensions and never had this problem. Perhaps I'm just getting old and now have bad reflexes!

Older »