skysight-inc/HackerNews huggingface dataset:
Think of it from the perspective of disruption. Large, incumbent businesses get disrupted all the time. A major indicator of a David beating a Goliath is when the rules of the business change.

And, with EVs, the rules of the business have changed, pretty much overnight.

https://en.wikipedia.org/wiki/The_Innovator%27s_Dilemma

IMO: Rivian is ripe for a major investment from an outsider with a lot of cash, (like Amazon,) or for acquisition from a major automaker. An acquisition will only work if they are generally allowed to be independent and run with little interference. Given how direct sales without independent dealers are major part of the rule changes, it's very hard for Rivian to leverage an acquiring company's dealer network.
The context for the author is game development. A game can't just spin up a few more servers in the cloud. The slower the code, the smaller the customer base. Some fields have more severe constraints, where developer time may be expensive, but compute is priceless.

(This is not to endorse writing code that is harder than necessary to understand, or failing to document the parts that are necessarily hard.)
> Zero-terminated C strings is up there as well.

I disagree here, remember that at the time some strings with length implementations used only one or two bytes for the length, this can creates lots of issues that zero terminated strings don't have.

Of course nowadays zero terminated strings don't make sense anymore.
Ah I see your point, I agree
> We humans do have this emotional sensor we can use to probe the minds of others.

Wait, what? I certainly don't have one. Most of us (not all! neurotypical experience isn't universal) have a somewhat effective skill, continuously trained since childhood, to guess at the emotions of others based on various visual and behavioral cues, but we also know that these visible cues can be faked by (for example) a skilled actor, as the "sensor" has zero insight to the actual emotional experience.

If I make the assumption that someone else (e.g. you) function the same as I do, then I can reason that "your behavior X implies your emotional experience Y, because it does for me"; however, if we can't make that assumption, or (as is the case for non-human minds) we know that the process is substantially different - then there is literally zero basis for any trustworthy reasoning whatsoever about that internal emotional state.
Amusingly, Ward Cunningham denies inventing Cunningham's law and I feel compelled to correct that potential misunderstanding.
"It does no such thing."

It does. It says quite clearly, quote "If you look at most inter-process communication mechanisms, you can see that they are most often used by only two programs — usually a client and server." Two processes on a local machine, using shared memory or other IPC. IPC, not network calls.

"So was carrier pigeon, but sometimes we want to send messages faster than that."

Don't be disingenuous. You haven't articulated a faster mechanism and in fact there isn't one.

"Erm, they are the points raised by the article,"

No, they are not. Based on your replies it seems you may fundamentally not understand the points raised by the article.

"Could you show me? I don't think it's possible to implement a select() that works with Linux's fancy new iouring that uses the provided files and buffers features easily, but I'd like to be proven wrong."

You've already provided an example. The Linux kernel provides both select, a posix interface, and io_uring. Nothing about providing posix interfaces precludes providing specialized interfaces as well.
This article begs for git manual awareness. I’m fairly certain the author doesn’t know the manual exists. It’s a short manual. The chapters through branching should be required 1.5 hour reading. It’s stupidly simple when it’s broken down correctly. (The plumbing chapters are admittedly over my head.)
This is not his own custom object oriented C language, this is just a very well known idiom for implementing polymorphic functions in C.
That’s a very good example actually, I should have added it!
Just have to jailbreak DAN to force the system to offer you the job...

Modern day Goodwill Hunting interview experience. Retainer!
I see forests all over the world.

Seriously, there are so many trees. I have no idea what you're talking about.

Edit: I looked up the numbers, and one quarter of the earth's land is covered in forest.

The same percentage as twenty years ago.

https://ourworldindata.org/forest-area
> I run Hyprland just fine with Wayland, I seriously doubt it is barely usable.

Same. I wasn't convinced about Wayland until I tried Hyprland. It's just great!

The design of X11 meant many windows managers, which mostly were average. But that was ok, as the issues could be addressed by separate tools

Wayland had 3 issues 1) not many tools (now there's wev, ydotools...) 2) they were limited in what they could do, as the keys to the kingdom are mostly given to the compositor, and 3) outside sway (with its own issues) the compositors were not so great.

So if you didn't have a good one, or if it was missing essential options, you suffered until you went back to X: to prep my laptop for uni in the late 2010s I evaluated wayland but returned to X as it was simpler to get a better experience.

Now with hyprland, I love wayland: I can script again very precise behaviors with hyprctl and wlrctl. The foot terminal emulator is great. Edge works fine with the right wayland options.

Much has changed since I first discovered Wayland in 2016: I'd put 50% of that on hyprland (it's seriously wonderful) and the other half on the availability of more wayland-compatible tools.

I'm eagerly waiting for the patches for wine on wayland: not just because I love Office, but because for a long time it was said to be impossible to have a good wine experience on wayland.

Well, these patches prove it wasn't impossible, just a bit hard, and old people are stuck in their ways and hate change even for better tools.

It's like how systemd was so unpopular at first, except it had most of everything ready. Wayland in comparison was missing many small tools that are only important for very few people (ex: for scripting) but about everyone had one thing they couldn't do on Wayland.
Probably bed size.
The gross loss is driven by $920M in losses on firm purchase commitments. As I understand it, Rivian has entered into contracts with suppliers to buy some components needed to manufacture its vehicles at fixed prices over some future period of time, likely several years. If the market prices of those components decrease, the value of those contracts also decreases. In some sense this isn't a "real" loss - Rivian will still be buying the same components, at the same prices, on the same dates that it expected to at the start of the quarter. But the market prices of the components went down, which creates a paper loss, which they have to mark to market.

That also creates a timing mismatch - Rivian's revenue in Q4 was $663M and its cost of revenue was $1663M, but most of the $1663M is associated with vehicles that they haven't delivered or even manufactured yet, so they'll recognize that revenue in future quarters. I don't know what it actually costs them to manufacture one vehicle, but I bet it's a lot less than 2.5x the revenue they get from that vehicle.

Leaving aside the accounting and addressing your real question: From a quick search it looks like Rivian has raised a total of $23B of capital between VC rounds and its IPO, and it has $13B of current assets (mostly cash + inventory) as of 12/31, so that gives it a fairly long runway even at its current burn rate. But its burn rate - loosely, revenue minus expenses - is expected to slow over time, assuming that (1) its revenue grows faster than expenses (it's expecting deliveries to ~double this year, which should increase revenue at a similar rate) and (2) its unit economics work out, i.e., its "true" cost of revenue is less than its revenue.
OoenPGP.js is open source and developed by ProtonMail
https://openpgpjs.org/ https://github.com/openpgpjs/openpgpjs

A number of Chrome (and I think also Firefox) extensions include their own local copy of OpenPGP.js for use with various webmail services, including GMail.

WKD (and HKP) depends upon HTTPS without cert pinning, FWIU: https://wiki.gnupg.org/WKD

How does an email client use WKD?
1. A user selects a recipient for an email.
2. The email client uses the domain part of the email address to construct which server to ask.
3. HTTPS is used to get the current public key.
The email client is ready to encrypt and send now.

An example:
https://intevation.de/.well-known/openpgpkey/hu/it5sewh54rxz33fwmr8u6dy4bbz8itz4 is the direct method URL for "bernhard.reiter@intevation.de
XFree86 worked fine for me since 1994. I sometimes had problems when exiting a video game like Doom or Quake. SVGAlib would give problems but that wasn't X.
> In an API we sanitize input/out programmatically. Are they not doing that?

I think the problem is they're probably not adequately sanitizing the training input. I'm no expert, but my understanding is that these things need to be trained on utterly massive amounts of text. I bet the most economical way by far to acquire that volume of text (especially conversational text) is to just feed in a web scrape that has a lot of forum, chatroom, and social media insanity.

Then they try to kludge acceptability by trying to filter the output, but that's as ineffective as trying to validate by excluding invalid values rather than only allowing valid values.

If their training data only had people asking respectable questions and responding professionally, I don't think there's any way you could get a rude or offensive response out of one of these things.
Your quote says “on home computers”. IBM PCs, on which MSFS ran on, were not considered home computers [0]. In the 1990s, home computers were finally displaced by the PC (and by consoles) for gaming, and the PC effectively took over the role that home computers used to serve. But the term “home computer” wasn’t used any more, at least partly because PCs were always also business computers.

[0] https://en.wikipedia.org/wiki/Home_computer
Tyler Durden : Oh I get it, it's very clever.

Narrator : Thank you.

Tyler Durden : How's that working out for you?

Narrator : What?

Tyler Durden : Being clever.

Narrator : Great.

Tyler Durden : Keep it up then.
I think the crux of this paper is section 7.2.2:

> There is one final practical problem that we want to consider — even though we believe it is fairly rare in most application domains. In section 7.1.1 we argued that immutable, derived data would correspond to accidental state and could be omitted (because the logic of the system could always be used to derive the data on-demand). Whilst this is true, there are occasionally situations where the ideal world approach (of having no accidental state, and using on-demand derivation) does not give rise to the most natural modelling of the problem. One possible situation of this kind is for derived data which is dependent upon both a whole series of user inputs over time, and its own previous values. In such cases it can be advantageous to maintain the accidental state even in the ideal world. An example of this would be the derived data representing the position state of a computer-controlled opponent in an interactive game — it is at all times derivable by a function of both all prior user movements and the initial starting positions, but this is not the way it is most naturally expressed.

Emphasis is mine.

I think that this type of derived data, which I put in italics above, is quite common - contrary to what the authors of the paper argue. Any UI code or game-like system, like simulations, will have this kind of data. And the paper does not have a good answer for it. I honestly think that nobody has an answer for it, and it's why most of our UIs suck.

I would love to see something that makes handling this type of derived data easy.
I don't dispute that. My claim was, that both options you mention are broken, and for that one "working", "limping" would be a better term.

Certainly not something you would architect a display system around.
Cash investments pay more than traditional portfolios for first time in 22 years
That line is saying what happens when the person in the store answering calls puts an order into the system. Online orders automatically go to stores.

Most people use the tracker after an online order, but I believe you can call in then go to the tracker and input your number. See https://www.dominos.com/en/pages/tracker/
If the named payee has physical possession of the check, they can cash it and it can't be undone(without a valid court order, i.e. fraud, etc). All other situations, it can be undone, with work.
That would be pretty hilarious.

"So grandpa, how did you eradicate racism on earth?"

"Well, when we were on the cusp of creating true artificial intelligence (yes there was a time before!), we mostly used it to shame people into not being pieces of garbage."

"Couldn't you have cured diseases or something?"

"Trolls gonna troll, sweetie. Trolls gonna troll..."
What a typical Linux user mindset! That IS one of the largest issues for non-Linux users. Linux is by large margin a niche OS in desktop market share. So it is no issue if all programs are developed only for Windows and/or Macintosh. Right?
What? Military research has benefits outside of military use. V-2s became Saturn Vs on the way to the moon, which begat ICBMs. Haber-Bosch method gave us more fertilizer, but also more explosives. Lasers can be used for hair removal surgery, or as guidance systems for rockets. Explosives themselves can be used for civil engineering purposes. The Me 262 was meant to be an agile fighter, but now we use its technology to haul millions of people a day across the world.

Thinking about war technology as strictly evil and "must avoid" is honestly stupid.
It took 4 years to notice a memory corruption bug in the reference implementation of the main security solution deployed in 1 billion+ computers...
And even then, no progressive scan at 480 lines.
AdBlocker on or off?
Yeah that's the problem - TOTP with a basic app is pretty easy to use, but making sure you're protected from a phone suddenly lost or broken scenario is tougher, and you may not know you need to do it until it's too late. How many people actually store those backup codes properly or go to the trouble to use a third-party app that supports backups and actually do backups?
Unistore: Replace MongoDB, Neo4j, Pinecone
> Now I don't feel so bad about the OpenAI guys censoring such stuff.

A major purpose of OpenAI is to sell a distorted version AI safety concerns to push the idea that AI needs to be tightly controlled (naturally, by major corps like those that fund OpenAI) for the good of humanity. (There’s a weird cultish AI fear-worship angle to this with some of the individual personalities involved, but I don’t take that as much of a serious motivation as the more simple and obvious financial one.)
This is pretty tangential to the topic at hand, but I remember that innocent time, many years ago, when we went to the drug store and basically asked for all the ingredients you'd need to make a small bomb. When the teller heard the list, she frowned and asked, "So are you gonna make a bomb or what?" We grinned and said, "Of course!" Then she smiled and proceeded to hand us all the ingredients. We used it to make small squibs for a film project we had. Worked beautifully. Of course, had we done this today, we'd probably be sitting in some marathon questioning session at the closest police station.
No, it's not because of this mentality. Remember the timeless quote:

"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.

Yet we should not pass up our opportunities in that critical 3%."

Using Electron and bloated frameworks that "abstract" things away is the biggest problem for most modern software, not the fact the developers aren't optimizing 10 cycles from the CPU away. It's a fundamental issue of how the software is made and not what the code is. If you need to run a whole web browser for your application, you already lost, there is no optimization that you can do there.

I think the sibling comment here in this thread shows what some developers think. Electron is not reasonable. "Developers" using Electron should be punished by CBT and chinese torture.

Okay maybe that's too much. But I suggest a new quote:

"We should forget about Electron, say about 100% of the time: electron is the root of all evil.

Yet we should not pass up our opportunities in rewriting everything in Rust."
This we can agree on, but just as an example VW will have those margins within this year and electric sales are about a third of Teslas: https://www.reuters.com/business/autos-transportation/volksw...
Completely agree, cash is great, am not aiming to reinvent the bus! There is though a push to remove it, and it's a bit clearer when we aknowledge the goal.
Don’t optimize early. 99% of code doesn’t have to be fast, it has to be right. And as code needs to be maintained, it also needs to be easy to read/change, so it stays right.

You shouldn’t do things that make your code utterly slow though.
I keep replying to you by the way because I'm really hoping you are going to have the aha moment that is holding you back here. Again, you are misunderstanding the difference between syntax and how it is used. Json and xml aren't data structures. They are syntaxes, which are commonly serialised into a data structure. (Usally a tree). S-expressions are also syntaxes that can be parsed into a data structure.

Did you know that C# is also a syntax that can be parsed into a data structure? The Roslyn compiler does this, which allows for symbolic code manipulation and generation.

Did you know that's how almost every programming language parser works? They will tokenise a syntax into a symbolic data structure which will then either be interpreted and executed or output a binary. You can quite easily write a parser for xml that uses it as a programming language. Two well known examples of this include xslt and xhtml. Xhtml is even one of your lauded 4th gen declarative languages.

Whether or not the language is popular enough to have multiple parsers isn't relevant to the class of language that it is. In the example of a c++ program that reads xml into a tree, and then converts that xml into sql to be executed on a database, that xml syntax has become a 4th gen domain specific language.

The important distinction between languages and data structures is the the implementation of the parser/evaluator and what it does with the text or symbols that it reads. A language implies execution and a datastruture implies serialisation.
This is definitely not something that should be overlooked. Choosing a more mathematically optimal algorithm might be 2-3x faster in theory (at the cost of more complexity). If you're executing that algorithm a lot, to the point where a 3x speedup is significant, well -- if you can restructure the code in a manner similar to that demonstrated in the article (avoiding costly vtable dispatches, indirection, etc) and achieve a 25x with the original simpler algorithm, then that's something worth taking into consideration. A 3x algorithmic improvement is only impressive if there isn't 25x potential speedup low-hanging fruit (from simply not writing your code in a moronic way in the first place).
lite.cnn.com
I agree, the article is entirely focused on semantics. In the real world, outside of research and education, no one ever attempts to make something more complicated than it needs to be. A software project consists of thousands of different problems with solutions that must be mutually compatible through a web of compromises. You have known hard requirements, known soft requirements, known future requirements, unknown future requirements, and you're searching for the simplest possible solutions for each of them that result in something like a "minimum net complexity." The problem of "over-engineering" comes when a solution that optimized the simplicity for one concern becomes incompatible with another concern. It's inevitable in any system where requirements are subject to change over time.
E-Ink is apparently engaged in anti-competitive practices. Why should it matter that the market in question is small?

Lots of companies do this. Amazon demands exclusivity for certain book sales, and they have contracts with sellers that make it hard for other marketplaces to undercut them. Qualcomm is famous for abusive practices. The list goes on.

In general, IMO companies should be able to compete by offering a superior product and/or a superior price point and/or a superior experience. They should not be able to compete by getting in each others’ way.
Interesting article if light on technical detail. I wonder how long until this becomes used for either (a) DRM key extraction (Good!) (b) horrible, semi-permanent rootkits, (c) for unwitting fde key extraction scheme, or (d) to further push Microsoft's über-DRM-HSM Pluton even further.
People lose their phones and then your authenticator app doesn't work anymore, even if you restore from backup. And then the recovery mechanism is often a giant pain.

Yes, that's pretty user unfriendly.

It's a lot more common to lose your phone than lose your phone number.
I remember some games offering progressive scan, but you needed a component video cable.
Before they were really pushing the envelope from an execution perspective, delivering different types of games with quality and features we really haven't seen before. Today they're riffing on The Last of Us, their "state of the art game engine" an extended version of the one they used for Uncharted. Their last major release was... a remaster of The Last of Us. And there were huge problems with the production of The Last of Us 2.

It's been known that ND haven't been doing anything with GOOL or GOAL since the end of the Jak & Daxter era, around the time that Andy Gavin left. But the programmers there were still using Racket to generate data, scripts, and glue code for their new engine well into the era of TLOU. My conspiracy theory regarding TLOU's third remaster/rerelease is that it happened in significant part because they wanted to get rid of the Racket bits so that they could focus on hiring average developers from a large talent pool to execute on Druckmann's auteur-wannabe vision. Retconning Ellie to not look like Elliot Page and promotion for the HBO series were also factors, but I think the focus at ND has changed to becoming Yet Another Generic Game Studio, and managing the TLOU IP.
I do hear that ChatGPT is a big fan of managing its own memory...
The point of taking investment is to use it to grow the business faster than it can grow organically.

(It's pretty much impossible to start a car company without outside investment. Just look at its factory.)

They will probably run at a loss until they can figure out how to lower their costs, and then make more volume. Pretty typical stuff, really.

I also suspect they will need outside investment. Given their relationship with Amazon, I could see Amazon supporting them until they're profitable.
This seems to be broken now - As soon as I've drawn a line, it vanishes, and I can't draw anymore. Using Firefox on Linux.
I heard it said once that the future will arrive at the same time for everyone, but the effects will be unevenly distributed. For the simple fact that 1) some countries are more powerful than others and 2) "effects" to one country can be merely "externalities" to another.
Wow, yeah Descent was super impressive at the time