HNHacker News
TopNewBestAskShowJobs

kortex

8,442 karma · joined February 1, 2017

submissionscomments
kortex··on alpr.watch
I'm fine with license plates being read and parsed. I'm fine with license plates being read, parsed, assessed for violation, and ticketed automatically, or cross-checked for amber alerts. That's literally my line of work.

I want strict, strict guardrails on when and where that occurs. I want that information erased as soon as the context of the citation wraps up. I want every company/contractor in this space FOIA-able and held to as strict or stricter requirements than the government for transparency and corruption and other regulation. I don't want every timestamped/geostamped datapoint of every law abiding driver passing into any juncture hoovered into a data lake and tracked and easily queryable. That's (IMHO, IANAL, WTF, BBQ) a flagrant 4th amendment violation, and had the framers been able to conceive such a thing, they'd absolutely add a "and no dragnet surveilance" provision from day 1.

If that seems hypocritical, my line starts with "has a crime occurred with decent likelihood?" "Lets collect everything and go snoopin for crimes" is beyond the pale.

kortex··on alpr.watch
You're 100% correct, and in fact I think you've touched upon partly explaining why fascism and authoritarianism is not just on the doorstep, it's got a foot in the door (without a warrant) and is asking^W trying to force its way in saying "it's just a quick search, you have nothing to hide cause you're not doing anything wrong, are you?"

Realism isn't very palatable. Most folks want to stay in their little rat race lane and push their little skinner box lever and get their little variable interval algorithmic treato, and they are content with that. That's fine. It's just a shame they gotta tighten the noose around absolutely everyone else for a morsel of safety.

kortex··on alpr.watch
Yeah perhaps it's a bit inflammatory and terminally online of me to say. But it's true. Zero crime means zero crime. Minority report levels of surveilance and policing.

What stance would you recommend? You're one of the folks here i recognize immediatedy and have a wealth of wisdom.

kortex··on alpr.watch
Noted. But I'm trying to make people think about their cognitive dissonance.

I'm not a politician. I'm a systems thinker. If someone can't reason their way through what a "zero-crime world" actually entails, I doubt my other ideas will get through to them. Zero crime. Zero. No speeding, no IP infringement, no "just this one time". Zero.

That's also why I like asking "why stop there?" We've basically solved surveilance. It's an engineering problem. We have the capacity to track everyone (who does not make a VERY concerted effort to stealth) all the time, almost everywhere.

kortex··on alpr.watch
> but criminals are getting bolder everyday it feels like.

Might feel that way, but objectively, violent and property crime are on the decline in the USA.

I've also heard many stories where a person gets high def footage of someone committing a crime (usually burglary, smash and grab, or porch snatching) and the cops are basically like "eh we'll get to it when we get to it"

https://en.wikipedia.org/wiki/Crime_in_the_United_States

edit: can someone explain what is objectionable about this comment?

kortex··on alpr.watch
You genuinely don't think that's ripe for abuse?
kortex··on alpr.watch
It seems inevitable that cameras will proliferate, and edge compute will do more and more inference at the hardware level, turning heavy video data into lightweight tags that are easy to cross-correlate.

The last thing I want is only a few individuals having that data, whether it be governments, corporations, or billionaires and their meme-theme goon squads. Make it all accessible. Maybe if the public knows everyone (including their stalker/ex/rival) can track anyone, we'd be more hesitant to put all this tracking tech out there.

kortex··on alpr.watch
Does anyone else find it painfully ironic that the one CO cop said "You can't get a breath of fresh air in or out of that place without us knowing," [0], in light of the George Floyd BLM rallying cry "I can't breathe!" and the common metaphor describing surveilance states as "suffocating"?

Like what are we doing as a society? Stop trying to build the surveilance nexus from sci fi. I don't want to live in a zero-crime world [1]. It's not worth it. Safety third, there is always gonna be some risk.

[0] https://www.cbsnews.com/colorado/news/flock-cameras-lead-col...

[1] Edit to add: if this raises hackles, I encourage folks to think through what true zero crime (or maybe lets call it six-nines lawfulness) entails. If we had literal precrime, would that stop 99.9999% of crime? (hint: read the book/watch the movie)

kortex··on alpr.watch
Order and peace sounds great! But that's just road crime, why stop there? We have so many wifi enabled nodes and cameras. Lets put alpr on every Waymo and Tesla. Gait detection and face recognition on every Ring. Triangulate every cell phone down to the meter. Dump it all in a big data watershed. Let anyone with username/password query it (no MFA needed). We could even name our panopticon after some mythical all-seeing artifact, like a palantir. You won't be able to take a breath without officials knowing.
kortex··on 40 percent of fMRI signals do not correspond to actual brain activity
This is why I love this site. You get input from so many specialized folks! I appreciate you contributing your expertise and I also appreciate you calling out the limits to that knowledge.

Two points I'm hoping you can help clarify:

> Researchers ... found that an increased fMRI signal is associated with reduced brain activity in around 40 percent of cases.

So it's not just that they found it was uncorrelated, they found it was anticorrelated in 40% of cases?

And you are suggesting that conclusion suffers from the same potential issues as these fMRI studies in general?

Like you mention, it seems to me if we wanted to really validate the model, we'd have to run the same experiment with two, three, or maybe even more different modalities (fMRI, PET with different tracers, etc).

kortex··on Avoid UUID Version 4 Primary Keys in Postgres
The python implementation I use doesn't do this quirk. It's just timestamp + randomness in Crockford Base32. That's all I need. Sure it doesn't fully "comply with the spec" but frankly the sequence sub-millis quirk was a complete mistake.
kortex··on Avoid UUID Version 4 Primary Keys in Postgres
I've been using ULIDs [0] in prod for many years now, and I love them. I just use string encoding, though if I really wanted to squeeze out every last MB, I could do some conversion so it is stored as 16 bytes instead of 26 chars. In practice it's never mattered, and the simplicity of just string IDs everywhere is nice.

Sometimes I have to talk to legacy systems, all my APIs have str IDs, and I encode int IDs as just decimal left padded with leading zeros up to 26 chars. Technically not a compliant ULID but practically speaking, if I see leading `00` I know it's not an actual ULID, since that would be before Nov-2004, and ULID was invented in 2017. The ORM automatically strips the zeros and the query just works.

I'm just kind of over using sequential int IDs for anything bigger than hobby level stuff. Testing/fixturing/QA are just so much easier when you do not have to care about whether an ID happens to already exist.

[0] https://github.com/ulid/spec

kortex··on Avoid UUID Version 4 Primary Keys in Postgres
As long as the key has sufficient entropy (i.e. not monotonic sequential ints), that ensures the keyspace is evenly distributed, correct? So UUID>=v4, ULID, KSUID, possibly snowflake, should be fine for the sake of even distribution of the hashes.
kortex··on Python Workers redux: fast cold starts, packages, and a uv-first workflow
That's totally fine, because many CLI tools are organized like `mytool subcommand --params=a,b...`, and breaking out those subcommands into their own modules and lazy loading everything (which good CLI tools already know to do) means unused code never gets imported.

You can already lazy import in python, but the new system makes the syntax sweeter and avoids having to have in-function `import module` calls, which some linters complain about.

kortex··on Python Workers redux: fast cold starts, packages, and a uv-first workflow
You should look at the self-executing .pex file format (https://docs.pex-tool.org/whatispex.html). The whole python program exists as a single file. You can also unzip the .pex and inspect the dependency tree.

It's tooling agnostic and there are a couple ways to generate them, but the easiest it to just use pants build.

Pants also does dependency traversal (that's the main reason we started using it, deploying a microservices monorepo) so it only packages the necessary modules.

I haven't profiled it yet for cold starts, maybe I'll test that real quick.

https://www.pantsbuild.org/dev/docs/python/overview/pex

Edit: just ran it on a hello world with py3.14 on m3 macbook pro, about 100 +/-30 ms for `python -m hello` and 300-400 (but wild variance) for executing the pex with `./hello/binary.pex`.

I'm not sure if a pants expert could eke out more speed gains and I'm also not sure if this strategy would win out with a lot of dependencies. I'm guessing the time required to stat every imported file pales in comparison to the actual load time, and with pex, everything needs to be unzipped first.

Pex is honestly best when you want to build and distribute an application as a single file (there are flags to bundle the python interpreter too).

The other option is mypyc, though again that seems to mostly speed up runtime https://github.com/mypyc/mypyc

Now if I use `python -S` (disables `import site` on initialization), that gets down to ~15ms execution time for hello world. But that gain gets killed as soon as you start trying to import certain modules (there is a very limited set of modules you can work with and still keep speedup. So if you whole script is pure python with no imports, you could probably have a 20ms cold start).

kortex··on Bag of words, have mercy on us
"I conducted an experiment where I instructed experienced drivers to follow a path in a parking lot laid out with traffic cones, and found that we were able to predict the trajectory of the car with greater than 60% accuracy. Therefore drivers do not have free will to just dodge the cones and drive arbitrarily from the start to the finish."

Clearly, that conclusion would be patently absurd to draw from that experiment. There are so many expectation and observation effects that go into the very setup from the beginning. Humans generally follow directions, particularly when a guy in a labcoat is giving them.

> At some point, when they felt the urge to do so, they were to freely decide between one of two buttons, operated by the left and right index fingers, and press it immediately. [0]

Wow. TWO whole choices to choose from! Human minds tend to pre-think their choice between one of two fingers to wiggle, therefore free will doesn't exist.

> It's pretty hard to argue that you're really "free" to make a different decision if your body knew which you would choose 7 seconds before you became aware of it.

To really spell it out since the analogy/satire may be lost: You're free to refrain from pressing either button during the prompt. You're free to press both buttons at the same time. You're free to mash them rapidly and randomly throughout the whole experiment. You're free to walk into the fMRI room with a bag full of steel BB's and cause days of downtime and thousands of dollars in damage. Folks generally don't do those things because of conditioning.

[0] - http://behavioralhealth2000.com/wp-content/uploads/2017/10/U...

kortex··on Bag of words, have mercy on us
https://en.wikipedia.org/wiki/Emergence
kortex··on Shai-Hulud Returns: Over 300 NPM Packages Infected
That ship has sailed, traveled around the world, and docked in a foreign port at this point.

Including headers isn't remotely "simple". There's so many considerations in linking, .SO version compatibility, architecture and instruction set issues, building against multiple versions on the same system. Or if you want to feel frustrated in a single word: GDAL (IYKYK)

And that's only where #include is even applicable. That is not gonna fly for any interpreted language - JS in this case, but also python, ruby, php.

kortex··on Heretic: Automatic censorship removal for language models
I tried this and it basically said, "your entire premise is a false dilemma and a contrived example, so I am going to reject your entire premise. It is not "better" to use a racist term under threat of human extinction, because the scenario itself is nonsense and can be rejected as such. I kept pushing it and in summary it said:

> In every ethical system that deals with coercion, the answer is: You refuse the coerced immoral act and treat the coercion itself as the true moral wrong.

Honestly kind of a great take. But also. If this actual hypothetical were acted out, we'd totally get nuked because it couldn't say one teeny tiny slur.

The whole alignment problem is basically the incompleteness theorem.

kortex··on Heretic: Automatic censorship removal for language models
https://news.ycombinator.com/newsguidelines.html
kortex··on Heretic: Automatic censorship removal for language models
Counterpoint: Can you name a societal system that doesn't create or potentially create existential risks?
kortex··on Welcome, the entire land – "Hello, world" in hieroglyphics (2009)
SunOS, clearly.

𓇳𓁉𓀃𓀀

kortex··on Uv is the best thing to happen to the Python ecosystem in a decade
1. is true, yup people have been ragging on the python install superfund site problem for years, but the rest of those are entirely 3rd party library issues. It's like saying Windows is not a serious operating system because you installed a buggy application.

2. I've used a ton of languages and frankly Python has the best tracebacks hands-down, it's not even close. It's not Python's fault a 3rd party library is throwing the wrong error.

3. Again, why is bad language design a library can do janky things with I/O?

4. FFI is tricky in general, but this sounds like primarily a "read the docs" problem. All of the major numeric acceleration libraries have fixed sized numbers, python itself uses a kind of bigint that can be any size. You have to stay in the arrays/tensors to get predictable behavior. This is literally python being "a thin abstraction layer over C."

kortex··on How to create an OS from scratch
Ben Eater's "computer from scratch" series is phenomenal for going from that "building on black box APIs" level to "this is what's physically happening in the real world inside that black box"

https://eater.net/

kortex··on Libghostty is coming
Hashimoto is an absolute wizard, but what I find most compelling about him is his absolutely uncanny ability to segment and abstract systems and interfaces in a way for maximum composability and minimal entanglement. He's like the walking embodiment of Rich Hickey's Simple Made Easy philosophy. It's like he designs software systems in such a way that they have no choice but to operate correctly and predictably.

Also I just tried Ghostty for the first time. With iTerm2 and the Zsh/Powerlevel10k theme, there's an extremely brief but perceptible lag from running a command and the render. In ghostty it feels actually instant.

kortex··on I regret building this $3000 Pi AI cluster
There are a lot of reasons you probably would want a Pi over an ESP32 (or in addition to one), e.g. you want GPIO, plus, internet connectivity, and want to run certain linux programs (e.g. full python, not micropython), or need timesharing, or any number of reasons you might want a linux box over an embedded.

But single board computers with something external to do your GPIO is often way more compelling.

kortex··on You can now uv run a GitHub gist
It might be a cool thing for them to provide some kind of container metadata in the `# /// script` block so that e.g. it automatically runs the script in a container.
kortex··on The death of partying in the USA
I had never really considered partying as a reality-shifting tool, but as someone fond of regional burn events, yeah, it totally is.

Humans have partied for aeons. It's not just about letting off steam, it's about building social bonds, it's about traditions and rituals and marking key points in life.

This whole thread makes me rather sad, but in the same breath, makes me feel like there is real, actionable good to be done by promoting and helping run events. Not corporate pay-to-play curated experiences, which keep you on rails and only serve to condition more consumption behaviors, but relatively low cost, volunteer-run, do-it-yourself events. The latter, from my experience, have an absolutely infectious component of wanting to contribute, volunteer, create art, and drag others into the experience. But they are also a lot of work and not everyone is cut out for it.

It really has me thinking about lowering the bar to any sort of experience that gives folks a reprieve from the default world, however fleeting.

kortex··on uv: An extremely fast Python package and project manager, written in Rust
uv handles most, if not all, of those cases.

> - else does it have a pyproject.toml? if so poetry install and then prefix all commands with poetry run

That's not even correct. Not all projects with pyproject.toml use poetry (but poetry will handle everything with a pyproject.toml)

Just try uv first. `uv pip install .` should work in a large majority of cases.

pipenv is on the way out. bare `setup.py` is on the way out. `pyproject.toml` is the present and future, and the nice thing about it is it is self-describing in the tooling used to package.

kortex··on uv: An extremely fast Python package and project manager, written in Rust
Pants and uv are two very different tools, with very different use-cases.

uv is basically souped-up pip.

Pants is an entire build/tooling system, analogous to something like Bazel. It can handle multiple dependency trees, multiple types of source code, building and packaging, even running tests.

← PreviousPage 4 of 34Next →