skysight-inc/HackerNews huggingface dataset:
Huet's zipper. https://en.wikipedia.org/wiki/Zipper_(data_structure).

One zipper value represents a regular tree of data, but from the perspective of the "current position". There are traversal operations that take a zipper value and return the same tree from the perspective of an element above/beside/below the current position, and there are operations that return the same structure but with the current element changed, or items deleted or inserted.

Huet's paper is an easy read if you've been exposed to OCaml or similar languages: https://www.st.cs.uni-saarland.de/edu/seminare/2005/advanced... . His "returned glove" metaphor is what made it click for me.

Clojure includes an implementation of Huet's zippers https://github.com/clojure/clojure/blob/master/src/clj/cloju... that is <300 lines of code. It's very, very clever and broadly useful for dealing with XML or other nested data structures.
Good stuff, but, conversely, one may just manually set any user's default shell [1] back to bash, or Bourne, ksh, csh, tcsh, or install and use another as a default shell, such as fish, nsh, nushell, rc, yash, etsh, and so on and so forth.

[1] https://www.howtogeek.com/444596/how-to-change-the-default-s...
The Zipper acts like a linked-list with a cursor, or "focused element"; it's implemented as a pair of lists in opposite orders; or, equivalently but more symmetric, as triple of (List[A], A, List[A])

Say we have a zipper containing [0, 1, 2, 3, 4, 5], and we're focusing on the 3. In code this will look like:

([2, 1, 0], 3, [4, 5])

Where [a, b, c] denotes a singly-linked list, with O(1) head (returning a) and tail (returning [b, c]). Notice that the first list is in reverse order.

To focus on the next element, we put the currently focused element on the first list, and pull the head off the second list:

([3, 2, 1, 0], 4, [5])

And vice versa to focus on the previous element:

([1, 0], 2, [3, 4, 5])

I like to imagine this as a string of beads, with the focused element held in our fingers and the rest hanging down:

3
/ \
2 4
| |
1 5
|
0

To move the focus forwards and backwards, we move our grip to the next/previous bead.

This works nicely as an immutable datastructure, since the tails of both lists can be shared (i.e. we don't need to copy the whole list, just the wrap/unwrap an element on to the head)

Zippers were first applied to lists, but have since been generalised:

- To trees: focusing on one node, and being able to move the focus up, to the left-child, or to the right child

- To having more than one focus

- To datastructures more generally, by treating them as 'derivatives' (as in calculus)

https://en.wikipedia.org/wiki/Zipper_(data_structure)

As an example, the XMonad window manager uses a zipper to keep track of the currently-focused window.

I've also used Zippers for window management, e.g. having a list of Displays, with one of them focused (accepting keyboard input); each Display containing a list of Workspaces, with one of them focused (currently shown); and each Workspace containing a list of Windows, with one of them focused (the active window). Keyboard shortcuts could shift between the previous/next Window, Workspace, or Display.
This is mainly for interns and T&M, interns juice project profits but regular employees don't really, project managers are incentivized to keep project costs down so they tend to under staff projects rather than staff fillers.
Touche! Probably why slack went from edgy logo to looking like an Atlassian product line. Didn’t get fired for choosing X. I might be wrong then in that light. But I would personally have been more drawn in by the OG design.
Replit has support for Rust:

https://replit.com/new/rust
I have a dream that one day most software on my computers will be written on Lisp, especially web-browser. No other PL can forse that kind of big changes IMO.
So their dealflow is processed remotely versus locally got it.
The thing that is so foreign to me in the UK is their academic culture.

There are people who literally think there are only two universities worth being at: Cambridge and Oxford. They are shocked when they find candidates from abroad turning down offers for permanent positions there or leaving their positions for somewhere else.
I only understand it because I learned how not to shoot myself in the foot with the canon that is C++

I'll sum up "container invalidation". In C or C++ if you append an array you may cause the array to grow which means it might have a different pointer. You basically can't take an address of an array you're planning to grow. All containers are like that except list I think which I never use

In rust, it's roughly the same idea. The problem is I borrowed something from vec (you can think of it as taking a reference or creating a pointer). I then call a function that is const (you can see here it's &self and not &mut self https://doc.rust-lang.org/src/alloc/vec/mod.rs.html#1911). But that invalidates the borrow like push_back/resize/reserve and such in C++. Which is absolutely ridiculous because it's doesn't modify anything.

It makes me so mad because even the one thing I like about rust is annoying to use. Using an annoying checker, slower compiler, harder to optimize language is too much. I don't shoot myself in the foot in C++ so I'm unable to get a win in rust. For me using rust is more pain than practical
It's going to be supported upstream Linux/Mesa but nobody has tested/reported on it publicly. I'd expect growing pains but good support.
I believe in a WAN show appearance last Friday, one of the Intel engineers mentioned it was in the pipeline, and I believe it was hinted they'd be more along the lines of AMD than Nvidia in terms of the open sourcedness.
off topic - cool username :) @2Gkashmiri
"Expensive" in this case is a proxy for rare/unique/desirable/collectible/interesting, since those are the properties that would make a book expensive. It's actually a totally normal and reasonable question.
I've driven through the Tijuana border into mexico about 10x and haven't been stopped once. Easy to do. Hard part is getting back in to the US.
I am a student currently working on a paper which involves understanding the impact of mid-day meals in schools for achieving educational objectives. I feel this a commendable initiative from the Indian Government to end hunger in schools and promote education at the same time. Nowadays, we see many NGOs are contributing to this mid-day meal programme by providing freshly cooked, nutrition-packed meals in Government and Government-aided schools in remote corners of the country.
With the federated model, someone can host whatever they want on peertube, and there's almost nothing you can do about it (just like any website).

The idea is that you join or self host some home server, and the admin of that server makes sure to only show content from decent sources.

To this end the admins have a few tools. They choose the list of servers to show new videos from in the publicly available lists ("new videos" etc). So these will come from servers with a history of good moderation.

As a user, you can also subscribe to content from servers not specifically approved by the admin. If the admin finds it really offensive they can block that also. Then, as a user, you need to either give up on that content or find a different home server.

Obviously an admin is also responsible for the content they themselves host.
and new jobs and industries will be created.
The morale and “good news” factor alone makes it worth it (at $3 per resident per year). Also spin off tech must be worth it too.
"This is the story of a clever trick that's been around for at least 35 years, in which array values can be left uninitialized and then read during normal operations, yet the code behaves correctly no matter what garbage is sitting in the array. Like the best programming tricks, this one is the right tool for the job in certain situations. The sleaziness of uninitialized data access is offset by performance improvements: some important operations change from linear to constant time."

https://research.swtch.com/sparse
Long-term this great news for the consumer that there is a third competitor in the discrete GPU space. If the tier 1 games have competitive/same performance then I'm optimistic that the HW is solid and the gap needs to be closed via updates on driver software.
Is there a name for the data structure/algorithm?
Everyone in Westworld is a host
How is fermented tea “mushroom water”?
That's (part of) the social "limiting factor" I'm talking about. It's starting to change though, and younger folks especially are taking the lead.

In re: corporations, I noticed that the first video you linked to is from CNBC and the second is from USA TODAY, both large corporations.
There must be security camera footage along the street before and after the car's location. It doesn't seem implausible to find the damaged car leaving that wasn't damaged coming. You could also look at the damaged vehicle to figure out the paint of the other car, I'm guessing something would be left behind. You could contact repair shops in the area looking for a match.

I don't know - I'm not a cop but there are certainly many possible avenues of investigation if people were willing to try.
I do not suggest switching to GitLab because it will not display anything if JavaScripts are disabled (although the git protocol will still work, but it is a bit confusing; I think fossil is much less confusing). There are other alternatives, such as Sourcehut (which does not use JavaScript) and Codeberg (which does, but it can still be displayed without JavaScript too, like GitHub).

However, you do not have to use only one service; it is also possible to make mirrors on multiple services, including GitHub and GitLab. If it is not the only mirror, then it does not matter that JavaScripts are required for one of them. Although, if you do not want to use GitHub then that is OK, too; there are many others.

I host projects on my own computer (using Fossil) but also mirror on Chisel. If you use Git then you will not use this, though; if you use Git then you can use Sourcehut or Codeberg instead.

Note that GitHub has API documentation. Codeberg also has, although its API documentation will not be displayed without JavaScripts, but it is using the Swagger format, so if you have a program that can display it then you can use it (or you can just view the JSON code directly). If similar features are implemented, then if you have your own then it can also be possible to implement the same API so that your service can be compatible.
Biden backs new NSF tech directorate, but Senate balks
What a nonsense. Of course it matters. Some foods are more satiating than others. As an example, compare 100 calories of broccoli with 100 calories of ice cream.
1000% agree. A lot of web dev is insanely overpriced. Find a good cheap template and save tens of thousands. I guarantee you an agency will not be 100x better than for the 100x price difference. Web is one of those "make once, use often" industries that we don't really know how to price yet, but $175/hr is definitely not right.

Agencies aren't selling you superior talent. They're preying on your ignorance. Most of the best web stuff is free, made by people who are either passionate about their craft and want to give it away, or else have to prove the value of their labor because they were born in a poorer country and merit is all they have to prove themselves with. When you work with an agency, all it means is that you're too scared (or don't know how) to vet design and dev work accurately, so you're paying extra for the illusion of quality. Trust me, you're not going to get that. You're just ripping yourself off.
As a senior in college, I figured out how to earn a B in almost any class:

1. Read the assigned material before class.
2. Attend the lecture and any recitations; listen and take notes.
3. Do the homework.

Note that the material is read, heard, written, and used. It worked so well (for me) that I basically didn't have to study for finals.

A lecture or a book by itself is useless, but when used in combination with other forms of learning, can be powerful.

I agree with the comment that constructivism and transmission is a false dichotomy. We use both all the time, together.
Do you mean the roads are well planned for car trafic or for pedestrian/bicycle trafic? What I usually hear from visitors in our Swedish town is that it's much safer to bike than in their home town. Areas built after 1970 or so was planned for pedestrian first, car second. This has resulted in very few trafic accidents. You can get almost everywhere outside of the city center without sharing road with cars, only crossing at dedicated bicycle crossings or bridges over/under the road.

The most dangerous situation I can think of would still be where cars cross a bicycle road after doing a left or right turn in a crossing and not checking for trafic on the bicycle road.
> The whole central point of this euro scaremongering is that Google will turn over your data to intelligence agencies when U.S. court orders it to do so.

I am sure, Google has ways to abuse data that do not include any courts.
Orthodox monks preserved a part of it. How much? I do not have numbers.
The Framework product has a much bigger value: it demonstrates that it is possible to deliver a consumer product with less builtin obsolescence. If they can stay profitable long-term they will be an important POC that we do not need to maximize obsolescence for a company to survive.
There is nothing broken in this example, it's functioning exactly as it's intended to. What makes you think the borrow checker is broken here?

It appears like you don't really understand the rule about mutable and immutable references. Asking for the length of the vector requires an immutable reference, but you already have a mutable reference, which is explicitly not allowed by design (that's the whole point!).

So, you can only have one mutable reference to something if there are no immutable references, and multiple immutable references if there are no mutable references, you can never have both immutable and mutable references to something at the same time.
If at some point you have a cycle, you can then reparent and remove the cycle, right? This structure in general then can encode transitive relations effectively?

Something like “a and b …” “b and c …” “c and a …”.
Please stop using multiple accounts and please don't use HN primarily for promotion—it's against the site guidelines.

We've banned this account and some others. If you stick to one account and submit your own stuff as part of a mix of unrelated things, and don't overdo it, that would be ok.

https://news.ycombinator.com/newsguidelines.html
Measure in “trips” not miles. Measuring in miles rewards suburban culture. Highway driving isn’t where deaths happen. They happen most on urban roads.
Delta flies Heathrow plane loaded with 1k bags – and no passengers – to US
That's pretty easy. Sweden is the poster child of a rational covid19 response.

https://en.wikipedia.org/wiki/COVID-19_pandemic_death_rates_...

Sweden deaths per million: 1834

U.S. deaths per million: 3043

However you can also choose various European countries that avoided masking children and minimized school disruption. France and UK for starters, but also all the Nordic countries. Sweden being quite different from the other Nordic countries, but all of them being consistent in avoiding school disruption or masking children.

Most of Europe does not recommend vaccinating young children either.

France deaths per million: 2242

Denmark deaths per million: 1122
> defense invests in the entire "stack". It creates factory jobs

Every defence dollar (or any other government spending) comes from taxes that could have been spent or invested and which would have also created jobs.

There’s no evidence that government spending causes a net gain in jobs.

Every time someone tells you that a new government spending program is creating jobs, they’re only telling you half the story.
Go is nice but it certainly has its limitations. I've seen heavily optimized jvm based things run circles around the kind of numbers you are talking about. 70 MB/s is not a number that should scare anyone running things like Kafka at scale.

I've worked with Elasticsearch clusters indexing close to a million documents per second from kafka. That takes a lot of CPU, memory, bare metal, etc. and it taxes the JVM garbage collection quite a bit. But it can be done. We basically maxed out CPUs across 30 or so nodes. Basically, when you get close to maxing out the disk IO, you know you are doing a decent job.

People reach for C for a lot of reasons. And not always the right reasons. But if it works, it works. A big reason seems to simply be that interfacing with it from various other languages is pretty straightforward. That's why python developers don't worry about performance. They can always plug in something native if it becomes an issue.
This the only reasonable and realistic answer. Humans and life in general have been managing to adapt to all sorts of environmental conditions over a helluva long time. The fact that we as a species can inhabit both Siberia and Senegal tells me we will survive and thrive just fine.
What would they offer to make it worthwhile? It's not like the US is holding Indian nationals in detainment whom the Indian Government would be willing to scour the country to find someone to exchange for release.

Perhaps they would for a violent criminal or terrorist, but it certainly seems unlikely for a relatively small-time white collar criminal. The fraud totaled $1.5M, this guy isn't exactly Bernie Madoff. Surely the US would not expect the Indian Government to spend multiple millions in operational and resource costs to locate, capture, and extradite a nonviolent criminal who made $1.5M illegally.
Wow this looks great, I will be following the project.

It's a pity that shipping and taxes outside the US effectively doubles the price.
Oh, this makes sense: since mail and phone spans the whole nation instead of states, it becomes a federal matter?
https://en.m.wikipedia.org/wiki/Disjoint-set_data_structure
It's really easy to impersonate any user using domain wide delegation, and subsequent accesses aren't logged.

https://developers.google.com/admin-sdk/directory/v1/guides/...
Better go to the source : https://www.reddit.com/r/raspberry_pi/comments/w37gx2/i_free... instead of this add-filled page. Scrolled a millimetre down and the "subscribe to our newsletter" popup came. That page adds nothing.
When you say, e.g. NASAs work is a total waste, it makes me wonder if you are working on something incredibly impactful for human kind.
Fibonacci Heap

Famous as the data structure that achieved optimum runtime in Djikstra’s algorithm. In practice it isn’t often used because simpler heaps outperform it except in very specific circumstances.

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

Soft heap

As far as I know this hasn’t really been implemented. It’s used for the best known minimum spanning tree algorithm. Pretty crazy.
https://en.wikipedia.org/wiki/Soft_heap
Sure, if you have a better idea, redeploy the money. But if your best idea was in the proposal, you will work on it. That does not invalidate the proposal as a driver of clear thinking.
Verkle Tree

https://vitalik.ca/general/2021/06/18/verkle.html

https://blog.ethereum.org/2021/12/02/verkle-tree-structure/
With the federated model, peertube isn't one site, and so in the model there isn't a way to get a list of all the content. It would be like getting the recommended list for WordPress.

That said, I like this account for video tips: https://mas.to/@FediVideos

I believe that there are some services that collect videos for indexing etc. but I don't have experience with them.
Yes! This is both possible and fairly easy.
There are applications where you cannot have a garbage collector. The software on the PLC that controls when a saw stops itself and doesn't slice your finger. This would be horrible if a GC pass happened during this. I don't think realtime rust is a particularly fun idea, either, though you could certainly give runtime limits at compile time I suspect the macro system will make debugging timings on such code difficult if you ever need to use "other people's code"... One reason why I'm unsure about crypto in rust.
Tim sort.
There is a similar effect, but in reverse, when adding interdependent features.
Early ones don't have a big impact, but once you get to a certain point the inefficiencies add up and the program becomes bogged down.

Cache invalidations and memory swapping as you approach the limits are other examples.
Old coworkers used to call the growth mushroom as slang for some reason, at least that was the first thing that came to mind.

The other one is a ludicrously overpriced relatively recent beverage called mud water (caffeinated mushroom water?)
> if we hadn't done that stuff, we would have seen even more than the 1M deaths we did experience

How much more? And how would that increase compare to the drug overdoses and other mental health related deaths that lockdowns caused?

What's the control group you're using to make your claim?
Holding all other variables and calories equal, I'm confident that someone who eats 3000 calories of chicken and broccoli daily is going to have a different body composition and health stats than someone who eats 3000 calories of Doritos.
It's called union-find, but also disjoint-set sometimes. The process of reparenting nodes is called path compression, and the optimization of using the larger set of the two as the parent when merging is usually just called "union by rank." Any of those terms should give you more details upon search.
agreed, that was like the first thing I noticed which broke a lot of the credibility
You are not wrong of course. But it's interesting to see many commercial 3d gaming engines use things like Lua, C# and other garbage collected languages as the main way for game developers to use their engines. I grew up in an era where all that stuff was done in assembly. That stopped being a thing decades ago.

The vast majority of commercial software development can use off the shelf native components and pair them with garbage collected languages these days.
It's not only that we can't know what the optimal choice is. We also can't know how far the benefits of our choice are from the benefits of the optimal choice.

And what would be the expense of figureing out what the optimal choice is.

I got into this way of thinking this morning starting with what is the definition of "Technical Debt". I would say it is the cost of moving from the current implementation to the optimal implementation.

But we don't know what would the optimal implementation. That means we can't even begin to estimate how much it would cost to refactor the current implementation into the optimal implementation.

Therefore I conclude that "Technical Debt" is consultant-speak. Something you can sell without clearly explaining what you are selling.
This is a very good point, sadly :( A lot of mediocre companies will abuse the legal system to cover up their ineptitude.
Zigs async/await is not really a concurrency construct (though you can use it as the basis for a work stealing scheduler), it's something much more fundamental and close to the metal.
Some call the mother colony a 'mushroom'.
Wouldn't this all depend on fan size, blade count, blade design, etc...?
We have excellent evidence that the amyloid hypothesis is valid. Otherwise you get no grant (enter the clothing shop).

This is sarcasm of course.
Anyone looking for a pleasant systems language check out Nim.

It’s the most fun I’ve had programming in a long time!
Toolchains are free for swr devices, including simulation, synthesis, debug, etc. No. Need for 10k licenses
It sounds like there was no execution put in place. They just lifted the gate and let loose.

What about harm reduction? Testing kits, needle recycling, or even diamorphine clinics like in Canada, assuming they can.

The article is so quick to blame decriminalization, as if it solely lead to infections and overdoses, shame on them.