News for hackers. Stuff that matters.

zanecodes

Apparently the full expression is "Don't Tread On Me, But Feel Free To Tread On Those With Whom I Disagree"
Re:A Modern Web App in C on Monday October 12, 2026 @06:33PM (#50064018)
A problem that C solves by simply not having a supply chain! You can vendor dependencies in Rust just as easily as you can in C; far easier in fact thanks to `cargo vendor`. Cargo won't review them for vulnerabilities though, you'll still have to do that yourself.
Presumably the grocery stores are already staffed by at least one employee capable of flipping a switch, no?
I'm not sure where you got the impression that I'm making excuses for cloud providers. I'm just stating the way things are, not the way I think they should be.
Because many cloud services have incredibly complex or opaque pricing structures that make it difficult to impossible to determine how much something is going to cost you ahead of time, especially if it's usage-based a la network egress (and the usage statistics don't update frequently enough to make such circuit breakers possible to implement client-side).
Re:There's a 100% Chance AI Agents Are Ruining the Internet on Tuesday September 15, 2026 @03:10PM (#49717321)
If you don't have the time or money to have actual menu photos taken, what are the odds you have the time and money to source high quality ingredients, keep the kitchen clean, or improve the taste of the food?

The minor details are precisely the ones that require the least time and money to handle, so if those are being skimped on, it's likely that the major details are too, in my experience.

Re:There's a 100% Chance AI Agents Are Ruining the Internet on Tuesday September 15, 2026 @02:08PM (#49716440)
If you can't be bothered to get the minor details right, how can I be confident that you'll get the major ones right?
Re:Rust Is Tier-1 Language at Microsoft on Thursday September 10, 2026 @02:53PM (#49648604)
Android's permission system conflates the Bluetooth scanning permission with the "Fine location" permission, because in theory any app that can enumerate nearby Bluetooth devices (including things like nearby Bluetooth Low Energy beacons commonly found in stores and malls) could use that information to locate your phone within a few hundred feet.

It seems like there's a newer build option to explicitly disable the "Fine location" permission prompt while still being able to scan for Bluetooth devices, but such beacons are somehow filtered from the list if it's enabled, and it's only available for builds targeting newer Android versions.

Re:Dates That Don't Exist (2015) on Tuesday August 04, 2026 @04:46PM (#49174880)
Interesting, I didn't know that! I suppose I could edit my post accordingly, maybe a better example would be "the pharmacy won't let me get a refill until the date written on my prescription: Wednesday, August 12th 2026"? I think the point gets across regardless.
Re:Dates That Don't Exist (2015) on Tuesday August 04, 2026 @02:54PM (#49173217)
Dealing with dates becomes much simpler conceptually when you realize that you are actually dealing with two different ideas masquerading as one: dates, and the actual instants in time which they name. Instants in time can only be unambiguously referenced by measuring some fixed unit of time intervals from some commonly agreed upon event (e.g. seconds since the Unix Epoch).

Dates are a mapping from human-readable labels to instants in time; critically, this mapping is not a total function (there are dates that map to no instant in time in a particular calendar, such as October 5-14 1582 in the Gregorian calendar, or 2:30am March 8 2026 in US timezones due to DST), nor is it in fact a function at all depending on how you define your inputs (1:30am November 1 2026 in US timezones is ambiguous if you don't specify DST/ST).

Furthermore, the mappings (both for past dates and future dates!) can themselves change over time (changes to DST, timezones, and calendars such as in TFA), and you need to keep track of these changes in perpetuity, as well as at which instant in time they were implemented, and we don't necessarily have that information for some of these historical changes, we only have the date as written down, which itself can suffer from the ambiguity problem (is it the date pre- or post- calendar change?).

This makes dealing with past dates tricky, and dealing with future dates speculative at best. For instance, what's February 28th + 1 day? The answer depends on the calendar system and the year; we can answer it definitively for past years but not necessarily for future years (maybe in 2040 we'll move the leap day to December 32nd). This is why it's important to immediately convert past dates (and sometimes future dates, depending on the use case) to unambiguous instants in time, and only convert them back to dates for display purposes.

"Wednesday, August 12th 2026" and "8 days from now" are also semantically distinct for some purposes: if have 8 doses of a daily prescription left, I'm still going to run out in 8 days even if tomorrow the government decides to repeal the Gregorian calendar, thus changing the name of "8 days from now" from "Wednesday, August 12th 2026" to "Sunday, August 2nd 2026". My medication doesn't care what the government decides to call 8 days from now, I'm going to run out either way. The pharmacy, on the other hand, very much does care what the government decides to call 8 days from now, because perhaps they're closed on Sundays. The calendar change means that "8 days from now" went from being not-a-Sunday to a Sunday, affecting their operating hours.

It's really just another instance of one of the two hard problems in computer science: naming things.

Re:The development pipeline is a production system on Saturday August 01, 2026 @04:25PM (#49138099)
Docker has made this much much easier than it used to be, and the ease of publishing images has led to many SaaS companies providing "dockerized" versions of their services.

I write a lot of Terraform to manage internal infrastructure with dependencies on other internal and external infrastructure that's outside of my control. I define a module parameter for each dependency (usually with a default value that points to the real service URL) and then create a second module that uses Docker to spin up and configure local instances of each dependency and overrides the corresponding parameter.

This makes local testing very straightforward: `terraform -chdir=tests apply`

Not to mention indirectly subsidised by ignoring the externalities imposed on the health of ourselves and our environment.
Fossil fuel being heavily subsidised kind of undermines both of your points.
Re:git's –end-of-options Flag on Thursday July 23, 2026 @01:02AM (#49017152)
Sometimes you're using git in a context where you don't control the filenames, or where a potential attacker could influence or fully control them, at which point edge cases like this can easily turn into exploits.

I also chafe whenever I run into artificial restrictions on things like characters in names of things, because there's no good reason for them besides the laziness of developers or the limitations and inertia of existing systems that might be used under the hood, like DNS for instance.

Re:Which streaming service was that on again on Wednesday July 22, 2026 @12:37PM (#49009555)
Poob has it for you.
Re:Goes-19 weather satellite enters Safe Hold mode on Thursday July 16, 2026 @01:58PM (#48937931)
I doubt you need an LLM for that, a diffusion model or perhaps even a deep CNN could probably do a passable job. You could train it by taking consecutive triplets of images [A, B, C] and providing [A, C] as inputs with B as the expected output.
Re:Just Let Me Write Digits on Tuesday July 14, 2026 @12:28PM (#48909317)
My equally uninformed guess is that the presence of six empty boxes communicates that the code entered must be exactly six digits long in a way that a generic text input doesn't. It clearly delineates the digits which makes it easy to see how many you've entered and how many are empty, and the presence of an empty box suggests that it needs to be filled while a number that's simply shorter than the input field doesn't. At least, that's my steelman; maybe browsers should check if a field's min-length and max-length are the same and style them similarly?
Re:Have You Restarted Your Computer This Week? on Tuesday June 30, 2026 @12:47PM (#48735419)
So I don't have to spend 10-15 minutes saving all my open files (including the scratchpad ones I haven't named) and then later reopening all my applications, recreating all of my tmux windows and panes, setting up my vim splits and tabs again, and starting all of my stopped Docker containers?
Re:Can we have the day off? on Wednesday May 27, 2026 @09:22PM (#48303111)
If only there were some kind of third party we could all collectively agree to delegate enforcement of cooperation to...
I'm pretty sure that if you need ubiquitous surveillance to ensure that your citizens don't commit crimes, you don't have a high-trust society, by definition.
Re:Parse, Don't Validate (2019) on Tuesday February 10, 2026 @01:36PM (#46964655)
Ah yeah, I guess I assumed by the use of the term "contructor" that GP meant a language like Python or Java, and in some cases it can difficult to prevent misuse by making an unsafe constructor private and only providing a public safe contructor that returns a sum type.

I definitely agree returning a sum type is ideal.

Re:Parse, Don't Validate (2019) on Tuesday February 10, 2026 @12:37PM (#46963635)
Given that the compiler can't enforce that users only enter valid data at compile time, the next best thing is enforcing that when they do enter invalid data, the program won't produce an `Email` object from it, and thus all `Email` objects and their contents can be assumed to be valid.
The far right are largely the people voting against robust safety nets and low inequality...
Re:You did no fact checking, and I must scream on Friday October 17, 2025 @12:06PM (#45618317)
You might be interested in IPFS [1], and content-addressed storage systems more generally.

[1] https://en.wikipedia.org/wiki/InterPlanetary_File_System

You can directly pass JSON to Terraform by putting it in a `.tfvars.json` file [1], as far as I can tell this has been supported since v0.5.0 which released in May 2015.

Terraform doesn't have a built-in deep merge function, but it will merge `.tfvars.json` files in the order given on the CLI, if you specify multiple `-var-file` arguments. For what it's worth, as of Terraform 1.8, you can also use functions from third-party providers like isometry/deepmerge [2] to perform a deep merge.

[1] https://developer.hashicorp.com/terraform/language/parameter... [2] https://registry.terraform.io/providers/isometry/deepmerge/l...

Re:Pixel 10 Phones on Wednesday August 20, 2025 @01:54PM (#44964323)
I look forward to the news stories about people getting lost because they used 100x "zoom" to read a distant sign.
Re:Pixel 10 Phones on Wednesday August 20, 2025 @01:36PM (#44964083)
The -a models are typically released in the spring, the Pixel 9a was only just released in April of this year, so I wouldn't expect to see a Pixel 10a until March or April of 2026.
We were making great progress under the previous administration until six months ago, yes.

Older »