HN user

the-alchemist

449 karma
Posts1
Comments155
View on HN

They go into detail on their technical decision making, very cool:

Choosing Clojure6 and Datalog7 was a calculated risk–but one which paid off. The Datalog model offered the simplest and most ergonomic queries, had strengths in graphs and relationships, and the entity model could easily transform to more standard formats. In–memory Datomic was chosen on the server, allowing complicated relational rule–based queries to map over tens of thousands of claims, linking sources to the attributes of entities. Using Clojure allowed for rapid prototyping and fast feedback cycles. Together, this allowed constructing arbitrary graph traversal queries, without having to round–trip from the database to execute recursive code, allowing the nature of traversing the domain model to be separated from the specifics of the relationship. How entities relate, and how relations work through time, could be developed as separate concepts. Using Datalog queries, it was possible to get every subordinate, as well as the time ranges they held true for, with a simple query like (subordinate-of ?a ?b ?start-date ?end-date)

Looks like a few folks are confused.

1. One of the underlying cryptographic principles is multi-party / secure-party communication (https://en.wikipedia.org/wiki/Secure_multi-party_computation). e.g., three people want to share their salaries to each other, but don't want the information to be traceable to back to the source.

2. Another is Steganography, hiding text in, say, an image, or audio.

3. You want to prevent the problems with Signal, Tor, Bitcoin, etc. This means, no "50%" problem like Bitcoin, no monitoring of exit nodes like Tor, no centralized distribution issue like Signal.

Imagine:

Alice "sends" a message to Bob by creating an account on Reddit and posts a cat meme which has the hidden text (steganography).

Bob knows how to find the text in that cat meme, and responds by posting something on Twitter, which Alice can read and decrypt.

All this is deniable (I didn't get anything from Alice!), available (e.g., Twitter goes down), and secure.

It wasn't even 5-4, it was 6-3.

The basic idea, AFAICT, is that _federal_ law should not punish _state_ crimes under this specific section of the law (§666). As noted elsewhere, there might be other laws on the books for bribes, but §666 doesn't apply here.

The distinction between "gratuities"/ "gifts" and "bribes" is artificial to me, as a normal person, but I understand that the law makes a distinction.

I'm sympathetic to the federalism argument (every state should have anti-bribery laws so that _states_ themselves can take them to court instead of waiting for the feds!).

But I don't understand why someone would explicitly write a law that tries to draw a fat line between bribes and gifts. Is that the legal equivalent of a bug? A bad law?

Also worth pointing out that the original Nissan Leaf is now at least 13 years old, a lifetime ago in lithium battery tech, and intentionally used very cheap cells to keep the cost down.

Very misleading statement.

First, NY Post is kind of a tabloid. You gotta dig deeper. Here's the actual study: https://uk-air.defra.gov.uk/assets/documents/reports/cat09/1...

I recommend reading it. It's actually pretty well done.

Secondly, the report itself and common sense dictate that regenerative braking on EVs (or hybrids) greatly decrease brake usage, therefore brake dust. Some EVs have "one-pedal" modes where you don't use the brakes at all in normal usage.

Thirdly, tires is a different calculation. This looks like a fairly unbiased source (https://www.emissionsanalytics.com/news/2020/1/28/tyres-not-..., https://www.nokiantyres.com/company/news-article/there-is-a-...).

Looks like tire issue is a toss up, and it depends on what the type of tire and how you drive. The much higher torque on an EV and a heavy foot will wear down the tires a lot more, but that has more to do with driver behavior than EVs.

Also, this whole issue is kind of a red herring because tractor trailers and heavy pickups and SUVs are a much, much larger source of brake and tire dust, and overall particulate pollution.

Don't quite understand the hate. This is very reasonable behavior for a compiler in 2024. I would even go so far as to say that a compiler should never execute any user code by default.

Imagine if gcc could automatically, by default, download some shared library and include it in the build because of a special macro included by a random header file on the system.

Of course, this change is optional (just add `-proc:full` to the command line) if you want the old, less secure behavior.

Also, Lombok is not affected because it's not an annotation processor. (Also, look at Immutables: https://immutables.github.io/).

Java's FFI is currently a very low-level. As the article points you, you don't actually have to do this: the jextract tool will generate the bindings for you from header files.

I'm sure someone will come along and write annotations to do exactly as you describe there. The Java language folks tend to be very conservative about putting stuff in the official API, cuz they know it'll have to stay there for 30+ years. They prefer to let the community write something like annotations over low-level APIs.

Anyway, the GraalVM folks don't have quite the same limitations as Java, so they have annotations already (https://yyhh.org/blog/2021/02/writing-c-code-in-javaclojure-...):

    @CStruct("MDB_val")
    public interface MDB_val extends PointerBase {

        @CField("mv_size")
        long get_mv_size();

        @CField("mv_size")
        void set_mv_size(long value);

        @CField("mv_data")
        VoidPointer get_mv_data();

        @CField("mv_data")
        void set_mv_data(VoidPointer value);
    }

What a crappy article. One can't complain NYT is too pro-EV.

This problem is a combination of growing pains, uneducated EV drivers, old EVs with crappy batteries, some bad infrastructure, and EV manufacturers that don't put enough diagnostics.

1. Ask anyone who has lived in these kinds of cold temperatures. Cold starts in ICEs are always a problem. in upstate NY, you always need a pair of jumper cables ready. you might get to where you're going, and then can't make it back.

2. Different battery chemistries have different cold vs. warm characteristics. Surprise, surprise, the newer, better, more expensive battery packs don't suffer in the cold as much. The loss can be as low as 3% (Jaguar I-Pace) to 30% (Ford Mustang Mach-E, VW ID.4). See https://www.recurrentauto.com/research/how-temperature-affec...

3. EVs have two battery packs: a small 12V one, like a regular car battery, and the BIG one. If the 12V one dies, you can't start the car, even if the BIG one is good. (EV manufacturers should install better 12V batteries and provide better diagnostics for this kind of problem.)

4. EVs also have a "pre-conditioning" charge, where (massively simplified) battery warms itself to prevent damaging itself when it's too cold. This can drain the battery, but if the car is plugged in, it's not a problem, it'll just pull the charge from the plug (even if the battery doesn't need charging).

5. Sounds like a few chargers "froze" up. Just like gas pumps, but obviously it's a much bigger issue because there's always another gas station down the road, unlike EV chargers.

6. Most EV owners charge at home, and we just plug in all the time because it's easy, convenient, and we can pre-heat the car with a button on our remotes, saving on battery.

7. Some EVs use resistive heat instead of a heat pump for heat gen, which can eat a lot of juice, but it's not a big deal anymore because the battery packs are so big.

So, really, my takeaway is that Tesla and the other EV manufacturers need to:

- cold proof their charging stations (probably a simple "growing pain")

- educate their users a bit. (if the car won't make it overnight because it'll have to do a conditioning charge based on the weather forecast, WARN the driver!)

- use better batteries. this issue will fix itself as the better manufacturing techniques spread throughout the industry

This.

We would all benefit from more cause and effect analysis in our media.

- Let's say we increase prices that we pay cocoa farmers, even double the price

- Is this extra enough to send the girl to school an hour away, pay for her books, etc.? If you pay the family more, how do you know they would spend it on the girl's education? Maybe fixing the water well or building a sturdier house is more important. Or paying off debt.

- The school is an hour away, the girl might not feel safe being away from home for so long without any adults. She might prefer being with her family. So... boarding school? Are the teachers qualified? (Go read about absentee teachers in Indian schools.)

- Also, if cocoa farming becomes more profitable, it might encourage _more_ child labor as parents pull their kids from school to work "on the family farm".

- If cocoa farming is profitable enough, it might invite a protection racket. Go Google for Mexican cartels and avocados.

Ironically, here in the U.S., we kinda glorify "working on the family farm", expecting kids to help on their parents' farms. Isn't that family doing something similar?

I am in no way glorifying child labor. I think it's sad and I wish I could adopt all these children and give them the quality of life I enjoy.

But complex problems require complex solutions. Unfortunately, we--humanity as a whole--have not found a universal solution to end human suffering as a whole, even the small subset of misery like child labor.

Historically, almost every country that has "developed" into an "industrialized" nation has had a very difficult, dangerous, violent learning curve. Kids in coal mines in the U.S., 18th century Dickensian English was a hellhole...

Knocking on a friend's door (though he knows a same-age kid two doors away) would be considered out of bounds nowadays.

Yeah, the social dynamics of this kind of thing baffles me. I'm sure it's very neighborhood-dependent, but neighbors don't "check" up on each other either.

I think this is more U.S.-wide: it's not socially acceptable to knock on someone's door or ring their doorbell even if they're waiting for me. You're supposed to text that you're waiting outside. Doorbells are only for deliveries and unknown strangers (like selling something, politics, religious missionaries).

If it's not socially acceptable to knock on a friend's door when they're waiting for you to get there, then it's definitely not gonna be socially acceptable to just knock, see if they're home, say hi, and that's it.

Oh, benchmarking.

Great work, but maybe I'm missing something: I'm more interested in "performance per MB", i.e., per dollar USD, versus "how much memory does it use?"

I feel like that's not fair to systems that will trade performance and memory usage if given the chance. If you give Linux 10GB of memory and only use 2GB, it'll use the rest as a page cache, or memory cache, or anything. Unused RAM is wasted RAM.

Same for the JVM. Maybe it's deep in the weeds, but I don't see any setting of max memory (-Xmx, or -mx in the Java world). Same as any operation system, if you give it more memory, it'll use it.

Also, just like you'd want to generate and pre-warm your caches, you'd want to use the same for a JIT, a cache of sorts.

I'd also like to see these benchmarks using GraalVM native image, which tends to use a lot less memory and reach peak speeds much much faster (seconds, instead of minutes).

There's a lot of Protege tutorials out there, but here's what an ontology (in the OWL sense of the word, let's you do). The "pizza ontology" is the Hello World of the ontology world.

* imagine a graph of things you wanna organize ("model"), say world religions, or the plant and animal kingdom * you can tell the system that anything that's a plant can never be an animal. or viruses can't be bacteria * or lions and zebras are both mammals * you can define what mammals are, vertebra, heart, brain, etc.

The interesting part is ontology _validation_ or querying.

Is it internally consistent? Maybe you specified viruses and bacteria and said they are never the same thing, but the way you modeled it, they are identical! Hmm, you'll have to update your definition of bacteria, or viruses, or both.

Next, you try to put fungi in the system, but there's an error because fungi do not belong to the plant or animal kingdom: they are their own thing.

So this is a fairly simplistic use case, but scale this up to hundreds if not thousands of entities and you can start to see the value.

Imagine sticking the human genome in there, and which drugs act on which chromosomes, etc.

It's a niche, for sure, if you need something like reasoning it's the way to go.

It's been a struggle getting Clickhouse accepted here in the U.S., despite its technical prowess, even prior to the war in Ukraine.

I know, I read the blog:

ClickHouse, Inc. is a Delaware company with headquarters in the San Francisco Bay Area. We have no operations in Russia, no Russian investors, and no Russian members of our Board of Directors. We do, however, have an incredibly talented team of Russian software engineers located in Amsterdam, and we could not be more proud to call them colleagues.

The FUD is really hard to overcome. This is coming from someone who advocated for Clickhouse, sent some PRs, and did a minor code audit.

No one's perfect, but I'm a fan because she'll tell you if something is her-possibly-unpopular opinion (see particle physics), well-accepted scientific fact, or her pet opinion. You know where she stands, and tells you her agenda, if any. Or, if she's trying really hard to stay away from _any_ bias (see her video on trans).

More generally, I don't like the "stay in your lane" opinion. To more forward as a society, we need _more_ interdisciplinary work, not less. Mathematicians need to work with engineers and architects, psychologists with economicists, etc.

Of course, let's call out bad science or bias, but let's not ignore valuable insights because they came from the wrong lane.

I like her videos because I'm generally curious what a fairly unbiased intelligent person thinks about trans issues, economics, etc. Even if I don't agree with them on everything, not should you.

I'm not Swiss, but I get the impression they pride themselves on compromise, stability, and independence.

Public infrastructure has positive feedback loops, so if your neighbor canton has good train stations, you also want to have good train stations to connect to them.

You also don't want to depend on importing expensive oil, especially as a land-locked country.

GraalVM for JDK 21 3 years ago

I think the biggest improvement in GraalVM 21 is profile-guided optimizations (PGO) in both aarch64 and amd64.

This means you can take full advantage of ARM cloud services like AWS Graviton (sp?) services for lower cost.

Also, looks like the Java Vector API (JEP338) has been optimized.

So, same code on your Raspberry Pi and AWS Graviton, cool.