skysight-inc/HackerNews huggingface dataset:
The exact way in which git handles commits is very muddied - it's snapshots on the surface, a bit of diffs when packed and a lot of operations on commits are actually 3-way merges (including merges, rebases, cherrypicks and reverts). Keeping track of all these matter (esp the operations that use diffs), but it can also get overwhelming for a tool.

In my opinion, it's probably good enough to understand the model git is trying to emulate. Commits are stored more or less like snapshot copies of the working tree directory with commit information attached. The fact that there is de-duplication and packing behind the scenes is more a matter of trying to increase storage efficiency than of any practical difference from the directory snapshot model. Meanwhile, the more complex git operations (merges, rebases, reverts, etc) use actual diff algorithms and 3-way merges (way more often than you'd imagine) to propagate changes between these snapshots. This is especially apparent in the case of rebases, where the snapshot model falls completely on its side (modifying a commit will cause the same change in all subsequent commits).

This actually makes sense if you consider the development workflow of linux kernel before git. Versions were directories or on CVS and a lot of development was based on quilt, diffutils and patchutils. Git covers all these use cases, though it may not be immediately apparent.

Added later: It's also interesting to look at Mercurial's model. Like Git, Mercurial uses both snapshot and diffs for storage. But unlike the Git way of layering these two, Mercurial interleaves them - as diffs with full snapshots occasionally. This is more like the video codec concept of keyframes (I think that's what inspired it). This means that Mercurial, unlike Git, doesn't need repacking. And while Git exposes its internal model in its full glory, Mercurial manages to more or less abstract it away.
That's a slippery mantra. I can see putting everything in one file.
I have to say this is the first time I've heard accelerating by gas pedal described as undocumented behavior.

> It's not like the gas pedal being pressed down is actually what makes a car accelerate

In proximity to the driver it certainly is the cause.
Did no-one check the maths? There's a difference between having a full test suite, and someone trying some choice values, but I'd expect both would pick up something like that.
Probably only includes the standard time zone list?
I think the idea is that it used to be Boeing didn't have these kinds of problems, they managed themselves and made safer airplanes. At least they appeared safer.
works until it doesn't
Working with a 300 line method is not fun, believe me. Everything is in one place and you don't have to change many files, yes, but due to the cognitive load, it's so much more effort to maintain it.
Mercurial branches get in the way. Branches should be recorded in commits, not contain or constrain commits.

`git` records one side's branch name for merge commits, which is great ... except it doesn't record the other, or record anything for fast-forward or rebase. And what it does record isn't directly machine-readable.
Sounds like the non-programmers are good at what they are supposed to be good at (solving the actual problem, if perhaps not always in the most elegant manner) while the programmers should be producing a highly maintainable, understandable, testable and reliable code base (and potentially have problems with advanced algorithms that rely on complicated theorems), but they are not. The OP has a case of bad programmers - the techniques listed as bad can be awesome if used with prudence.

A good programmer has a very deep knowledge of the various techniques they can use and the wisdom to actually choose the right ones in a given situation.

The bad programmers learn a few techniques and apply them everywhere, no matter what they're working on, with whom they are working with. Good programmers learn from their mistakes and adapt, bad programmers blame others.

I've worked with my share of bad programmers and they really suck. A good programmer's code is a joy to work with.
Unreal. Do people not go deaf from the sound of the air coming into the exposed fuselage like that? I would have thought they'd be covering their ears or something.
Wondering what UK authorities will say which are referenced in blog post.
Boeing's major competitor is Airbus which is largely a government effort.
That's going a bit far. Git is heavily optimized for speed. If the implementation changed the UI could possibly stay the same but users would notice.

Now, aside from that I think I generally agree with what you are saying. Git's UI, especially the way things are named, does feel very much tied to the implementation in ways that are a problem.
I mean, there's plenty of workable standards. HDMI, USB, Wi-Fi, Bluetooth, HTTP, etc...
The experiences of people who meet a wide range of customers are always interesting.

I had read a similar story of a man who worked at car showrooms of various brands (such as Honda, Toyota).

> Look it's important that if you see Oprah, you act normally, please don't ask her for an autograph or a photo

I never understood why people drool when they see celebrities.

Movie actors, musicians, sportspersons etc — I like watching them when they're in a movie, or when have sung a song, or when they're on the field playing, but I never really had any inclination to actually meet them. Even if I did meet them, I wouldn't have anything useful to say.
Ask HN: How does 6502 stack pointer store addr 0x10FF being an 8bit register
Hello, I was working on emulating 6502 processor, I came to know that 6502 has a 8bit SP which starts from 0x0100 to 0x01FF. So how does it store 0x01FF which is over 8 bits.

Thankyou!
The spec for the targeting replacement is public, I believe it's called FLEDGE. Third party cookies uniquely identify one browser allowing direct targeting, whereas FLEDGE only allows general targeting of larger groups by topic as far as I understand it. I believe it's entirely distinct from Google accounts.

Disclaimer, I work at Google on related things on the Android side, but I only have a layman's understanding of the Chrome side.
Because it was time.
I agree. I learned this way, and, for example, wrapping my head around pointers was much easier after I already understood why LEA existed. Yes, C isn't portable assembler, and no, you can't necessarily predict what ASM will be produced from a particular snippet of code. However, C operates closer to "portable assembler" than any other programming language, and it's a lot harder to go from anything else to C than it is to go from assembly to C
These guys gotta get away from windows. The procedure of opening and closing your windows is just not a good idea at altitude.

Switch to Linux today :)
Same with the A318/319/320/321 vs the 737. The widest appear to be the C-Series/A220 - in my experience pretty consistently 19"+.
Just fix the problem and recertify the plane. How hard is it? I mean you haven't sold a lot of them since a few turned into fireballs.
Might have been better if you worked there.
Give us your GPUs, your cores, your clustered masses...
It does not store 01ff. It stores 00 to ff. The stack is always on page 1 (0x01..) and can not be moved elsewhere. The CPU hardware simply outputs 0x01 on the upper eight bits of the address bus while outputting the 8-bit stack pointer on the lower eight bits of the bus.
It's the reality, it's just applying diffs. The OP's blog actually has an earlier post about how applying diffs uses a 3-way merge; before ort and its more versatile API which can handle just applying diffs, rebase literally used apply machinery.
Alaska Airlines Jet Makes Emergency Landing After Boeing 737 Max Rips Open
Wrong.

How maintainable code is is measured in how well you know where to change something, and how certain you are that it did the right thing without side effects.

The fatal error of the linked article is that bad scientific code often suffers from correctness problems - not just theoretical concerns, but the "negates the main point of this paper" kind of thing.
A common criticism of the defense industry, or relating to government contractors in all industries, is misaligned incentives. Military contractors are incentivized to maximize profit, not win wars. Health care contractors are incentivized to maximize profit, not care for people. Technology contractors are incentivized to maximize profit, not innovate. And so on...

Which may explain why Russia's military is more effective than US led NATO. Or why US Health Care is relatively expensive compared to other countries offering equivalent care. Or why massive tech initiatives need to be rescued or are a costly failure.
"Oslo, Bouvet Island." :D
Parentheses need to be matched. That adds cognitive overhead. It's especially frustrating when you find the closing parenthesis and then realise it wasn't even necessary.

IMHO it's on a similar level as "== true" "== false" and variations thereof --- absolutely redundant and unnecessary, and shows a lack of knowledge. The same "explicit is better than implicit" mantra is often repeated to justify the latter, but if you think

if(x == true)

is somehow more "explicit", then surely

if((x == true) == true)

is even better?

So at the end of the day, what's more clear depends on How familiar the engineers working on your code are with a given set of operators

If someone is not familiar then they should be encouraged to learn and level up, rather than pulling down everyone else.
Hotel management software.

There’s like… two? They’re both garbage from my experience both as a frequent flyer and as someone who’s hosted one of them professionally.
There is a lot of middle ground between swallowing lobbyists language wholesale because it was adopted by legislators in their pocket and revisionism.
I disagree, snapshots is the fundamental model. Otherwise, shallow clones would not be possible.
That's not really how MoEs work. They never directly interact with eachother. There is one manager type model that takes a prompt, directs token inference to 1 or more models, chooses the best response, and continues. The analogy would be closer to a "swarm of agents". (There are a handful of names for this approach, I think swarm is catching on the most)
Greed, corruption and moral decadence are not soviet monopolies.
Not for long, 10 abreast will almost certainly become the standard configuration with the NPS models
Boeing made better planes when they had to compete with McDonnell Douglas.

Once they bought them out and became a monopoly that was deemed ‘not a monopoly’ they had room to relax and replaced engineers with finance people.

This is what happens when finance people make aircraft.
The 787 is nice, but the competing A350 and A380 both have similar pressurisation and I haven't noticed humidity issues on either. I think the 787 was a significant step up on the 777, but compared to modern alternatives I think it probably is slightly less comfortable.
Hmm. Are we both talking about Mercurial branches and not maybe bookmarks or something different? It's been a while since I've used mercurial but from what I remember the branch name is recorded as part of the commit?

I'm not sure I understand what you mean by containing or constraining or being in the way, either, sorry.

If you are rebasing you are modifying history generally to purposefully remove a branch in the DAG. I'm not sure you'd want to keep a branch name in that case?
> The big use case is if you need to use Fossil, which only supports Pikchr for inline diagrams. That's a shame IMO, and I would love Mermaid support.

Sidebar...

(A fossil dev here.) That would require third-party code dependencies, something all projects created by Fossil's project lead (Richard Hipp) avoid except where absolutely necessary.

In fossil, the only required 3rd-party dependency is zlib, with libssl highly recommended but not strictly required. Though fossil is heavily dependent on sqlite, they're both by the same main developer so it's not really a 3rd-party dependency. Same goes for JS code like Mermaid - if it's not written by a fossil project member, it doesn't go into the source tree.
Good code is the simplest code you can write to get the job done.

Getting too excited about techniques is a form of scope creep
Am I missing something? Opening files is not my most intensive work as a developer.
Respect the hustle
A previous HN thread on Arthur Whitney's "B" is relevant here. Follow my previous comment here - https://news.ycombinator.com/item?id=30416737 where user "yiyus" goes through the code line-by-line adding detailed notes for comprehension.

Also see https://github.com/tlack/b-decoded
Agreed, I'd like to be skilled enough to contribute and add some more drivers to NetBSD or NextStep 3.3/OpenStep 4.2/Rhapsody DR2 (Objective C)
Google Flights already does it, I am a frequent and thankful user!
> The entire C-Suite of Boeing should be sentenced to multi-decade prison terms at IDF SuperMax for their selling out US National security for profit.

100%
Bad code written by software engineers is worse than bad code written by scientists, as the former takes more effort to fix than the latter (given the pathologies mentioned). It's naturally preferable to not have bad code, but it that choice was actually on the table, then I don't know who would choose the bad code.

As for hiring software devs, that's not going to change (in general, there are places where software devs write code used by scientists, but rarely are these codes themselves pushing research boundaries, it's code on top it that does) absent significant changes in funding structure and rules (which are typically a government/public service concern, and not up to researchers).
Wild read!
Real world person. Rare animal.
That is a US problem though, not a COVID problem. Go vote for paid sick leave.
Systemd through the eyes of a musl distribution maintainer
Adding indirection makes code less maintainable.
Stuff you only hear in Chinese manufactured goods, oh how the world has turned...

I wouldn't trust either, industry is moving to Airbus because of their failures.
Is there a list of airlines with MAX? I seriously don't want to fly in this death machine ever.
Boeing is so fucked as a company. How many critical failures are we at now?
Mars gives you a useful atmosphere, both for resources, cooling and breaking. Easily available water is a big one. Temperatur is far closer to something we can handle. And of course useful gratify.

Operating in all space environment is incredibly hard.
in-coupling and de-coupling of light, anyone care to explain?
These days you can get passive ‘waste water heat recovery’ systems that sit beneath a bath or shower tray - warming your inbound cold water with your outflow, so you use less new hot water (or have to heat it less).
Same here: lot of long haul. Know of all the rumors about bad 787 engineering. Still much prefer 787 over alternatives because I find it significantly more comfortable.
> Add in the fact that your IPhone has mac randomization but every other device you own including your car's TPMS doesn't.

The truly pathetic thing is that virtually all of these devices could use RPA but don't, because nobody remembered to flip that flag from "n" to "y"
No need for an anti-ice system, just wait for the deactivated mid-aft door fall out and knock the ice off.
Hillary Mantel's book on Cromwell too are top notch historical fiction.
It's a decent starting point, but it's an assumption that they're not collecting data (because it is discoverable if it's written in the code); however is not always true.

You should check the source code for every project you're using as much as possible to really ensure that there isn't anything obviously nefarious like telemetry included, because in some cases it's still there.

See Sunxi's Linux SBC backdoors on git for one of many examples of undocumented insecure or privacy-breaking code.
In other cases it may be more documented, such as Golangs baked-in telemetry.

There should be better ways to check these problems. The best I have found so far is Crev https://github.com/crev-dev/crev/. It's most used implementation is Cargo-crev https://github.com/crev-dev/cargo-crev, but hopefully it will become more required to use these types of tools. Certainty and metrics about how many eyes have been on a particular script, and what expertise they have would be a huge win for software.
I recommend striving to understand what `git cherry-pick` does, since that's equivalent to rebasing a single commit without doing anything else. That parts is where you get rebase conflicts from. Everything else `git rebase` does is a combination of `git amend` and `git squash`.
There's a happy middle path here I think. Long functions are hard to grok. Spreading the logic across 20 files also increases cognitive load. There's a balance to strike.
My problem here is that I distinguish between multiplication and addition by seeing which one distributes over the other.

a * (x + y) = (a * x) + (a * y)

However, the reverse doesn’t work…

a + (x * y) =? (a + x) * (a + y)

Why is this a problem?

a ∧ (x ∨ y) = (a ∧ x) ∨ (a ∧ y)
a ∨ (x ∧ y) = (a ∨ x) ∧ (a ∨ y)

Both are true. So, who are we to say that one corresponds to multiplication, and the other corresponds to addition? The two operations are too similar to each other.
Porn markets have addictive dynamics. Much like alcohol, drugs, betting, freemium gaming. 90% of the people can just have their fun on the cheap end. But the 10% that are prone to addiction will pour their life savings into it.
"replaced with someone more pliable."

If I don't rob the bank, someone else will!

Yes, and then the other engineer is responsible for the dead people, not you. But if your job is more important than other peoples lifes, I guess, yes, you do as you have been told.
Russia Got 7.5klbd Rockets from North Korea–and Promptly Blew Up Ukrainian Bases
If simple checks could find all bugs we would not have so much buggy software.
A former physicist at our organization wrote a tool t convert a diagram into an algorithm in a domain specific language.

He made it to make his own life easier, and never considered any best practices, everything was a thousands of lines of jupyter notebook, it was not modular, painful to customize but just got the work done, and was kinda a black box in way the way it generated the outputs.

Since then we've tried to re-write it with good programming principles, but still we were not able to re-create what he did. So yah sometimes done is better than perfect.
Do you think there will be any accountability from Boeing executives? Boeing hasn't had a lot of good press in the last few years, will leadership ever be held accountable?

There was a time when Boeing was considered a very trustworthy and reliable company, is this the result of a decline in an engineering-focused culture?

Edit: Many of the comments in this thread mention that they avoid the 737 MAX whenever possible. Maybe if enough people start to boycott these unsafe airplanes that would result in more economic pressure and lead to improvements?
IPFS and Nostr are both brilliant but they have their limitations. The main issue I see for an app like seedling is that by submitting your content you lose control over it. You cannot edit or delete.

Ideally many different hosting options should be supported.
high rent and car centric cities does worse for all the metrics you mentioned, so you're wrong on all accounts of your hot take
Is there a way to know when booking flights what whether this plane is going to be used?
Here's some Python pseudocode of the mental model that works well enough most of the time?

def rebase(base, curr=HEAD):
common_ancestor = git_merge_base(base, curr)
git_checkout(common_ancestor)
for commit in commit_range(common_ancestor, curr):
git_cherry_pick(commit)

Does that help?
Pretty optimistic timeline. Hopefully a base on Mars is decades away, that would be great. However its depends on when we start to call it colonization. If a base counts then yeah hopefully we are right.

But Musk is correct that what they are doing now is gone be vital to make this happen in a couple decades. It takes a while to get those technologies not just tested but mass produced.
The other article today about Boeing trying to exempt themselves from safety regulations for the 737 MAX is pretty timely.

https://news.ycombinator.com/item?id=38882358
46, but I only touch type A-Z then freestyle some of the other characters. Except ( ; , . the close ones)
There are only 256 different values for the stack pointer. That’s low enough to fit in a 8-bit register.

See it as a digital display with two hex digits and the value “0x01” painted in front of it:

0x0142
^^ two hex digits: the value in the register
^^^^ painted on the front plate of the display

The cpu, similarly, hard-wires those 8 bits (seven zeros and a single one) in front of the register value when accessing the stack.
Define "correctness bugs". Does the code leak memory (which is not ideal)? That's only an issue for the scientist if it prevents/invalidates the science. But if the pattern hides how something is expressed, or someone unfamiliar with the science tries refactoring the code, that's more likely to cause issues with the science than the memory leak.
It's a decent measure of complexity: It's not that "opening files" themselves is work-intensive. But having a lot of files smells of overengineered code. One long, yet simple function has less cognitive overhead than spreading the function across multiple classes or functions or call hierarchies (themselves spread over multiple files).
Interesting that this article omits any mention of "cherry-pick".
> onerous contracts, complex or buggy booking platforms/procedures, unhygienic, stuffy, rigid class start times and open hours.

Damn. You pretty much just described civilization right there.
> At least with Uber you own the car.

Uber is or was happy to refer you to a partner that will lease or rent you a car.
I'm betting the number of people doing it will increase at the same rate as the number of apps blocking screenshots. Also would have a relationship to the expectation of security. If more people believe it's secure then the amount of sensitive content will increase

Wanting to get around artificial barriers seems pretty engrained into human nature
Under 2 seconds seems rather impossible on my machine since the disk maxes out at 5.1 GB/s. This one ran in 7.4s on my M3:

`bin/analyze measurements.txt 30.34s user 16.28s system 629% cpu 7.406 total`
Wow, why isn’t this the default?!
> staff churn over the lifetime of a company, it's too risky.

Experience says otherwise. C code bases have serious longevity due to how many people know it and can jump in and contribute. There just aren't that many patterns and abstractions.
Yes, they did rule that. You and Mr. Imaginary Janitors are just trying to stretch the NLRB’s ruling, beyond all recognition instead of admitting to having been wrong. Let’s go back to his qualification about what this “species of tree” constituted:

>There is nothing at all in the ruling that says these contractor were performing the same work as employees.

Except there was in their ruling - the Google employees and “contractors” both work together to resolve problems and to coordinate training, management, and work assigned to lower level staff.

Why you both refuse to admit this, I have no idea. Him, I guess because he likes imagining janitors, you, I would guess because you also didn’t read the filings, and only realized you were wrong when I cited the first ruling.
`flex-wrap: wrap;`

and maybe, if you want, a `min-width` on the boxes themselves
Non paywall: https://archive.is/H0LoR
If we don't care about implementation details then isn't it mathematically equivalent to say that a commit is a diff or a snapshot?

Each commit knows its parent. So from the diff you can calculate the snapshot, and from the snapshot you can calculate the diff.