skysight-inc/HackerNews huggingface dataset:
Probably because they know FOSS is not at all a threat to their business. I love the idea that if I wanted to I could put some other OS... But Android is very reliable and Graphene OS might not support some feature or other, which I might not notice till I actually need it, so I'm not gonna risk the most expensive thing I own with tinkerer tech.

Companies really overestimate end users tolerance for tinkering.
Employees should have the same access to liquidity that founders get, but that's orthogonal to the 409A. The reason we want to keep the 409A low is so that when the company is valued at, say $100m, the common shares are much lower, say, $20m (even though they make up a majority of the company's shares!). Now when we hire that amazing person and offer them 1% of the company, their options have a strike price of $200k but already an expected value of $1m+.

Really the games we play with 409A valuations are a reason for founders to limit their own liquidity, too. Outside of a few famous examples like Google and Facebook, founders and employees have the same common shares, and it's in both their interests to keep the common share price low while building the company. If founders are selling shares and not inviting employees to participate, it isn't because of the 409A. Those founders are just assholes.
China Doesn't Want You to Say 'Tibet' Anymore
Amazing! With jokes like this you'll really get a car in the world :)
Having over 20 plants indoor and around another 50 outdoor I would love a self hosted app like this. If there were any screenshots or a demo of the app then I would be willing to put the efforts to dockerise it and add a helm chart around it, but hard to justify the efforts without knowing how things look at the end.
https://archive.is/V8FfP
Are you self employed or working for a company?
Sudden infant death syndrome: Docs uncover potential cause in breakthrough study
> That job put me in contact with a criminal gang who went on to supply with me dozens of GBs of stolen hard drives that I used to create what was probably the largest warez FTP

Statements like this seem to agree with the anti-piracy groups' narrative about piracy being closely related to organized crime, a claim that initially seemed questionable to me.
A modern 737 has A / P1 checks every 500 hours. The plane in question has completed a total of 145 flights so it's quite possible it hadn't even reached the 500 hour threshold yet.

While emergency equipment like slides and doors are typically inspected with an "A" check, this wasn't an emergency door that failed. What failed was a permanently installed panel. To inspect it you'd have to pull off interior panels, something that doesn't typically happen on a 737 until a C check (roughly every couple of years or 5,000 hours).

So yeah. What maintenance on a nearly brand new plane would require pulling the interior apart and disturbing the emergency exit plug?

This wasn't a maintenance issue.

Edit: And, no, this plane was never at the Oklahoma City MRO.

https://www.flightradar24.com/data/aircraft/n704al#3374196f
There was no smartphones back then :-) I think I had a blue Ericsson phone that had a tiny one color lcd display and no camera. Now, things are different, but my argument is specifically that taking photos is does not have to be in contrast to "living in the moment".
There are some things that should be in one long function (or method).

Consider dealing with the output of a (lexical) tokeniser. It is much easier to maintain a massive switch statement (or a bunch of ifs/elseifs) to handle each token, with calls to other functions to do the actual processing, such that each case is just a token and a function call. Grouping them in some way not required by the code is an illusory "gain": it hides the complexity of the actual function in a bunch of files you don't look at, when this is not a natural abstraction of the problem at all and when those files introduce extra layers of flow control where tricky bugs can hide. Or see the "PLEASE DO NOT ATTEMPT TO SIMPLIFY THIS CODE" comment from the Kubernetes source[0]. A 300 line function that does one thing and which cannot be usefully divided into smaller units is more maintainable than any alternative. Attempting to break it up will make it worse.

That being said, I agree that nearly all 300 line functions in the wild are not like this.

[0] https://github.com/kubernetes/kubernetes/blob/ec2e767e593953...
This isn't the basis: even if such a thing were a choice there would be no good reason to persecute those who made that choice. Secondly, such things can be immutable or at least very hard to change even if they are not affected by genetics.
It's more expensive with out a doubt although I don't have the exact numbers, but there is also a huge advantage to it that is volumen of content that you can send and control over the system message.
At the end, and this is only my case, I'm using both the premium for short problems and the API for more complex ones.
Why would it be okay to let advertisers know you have an interest in cars? Seeing personally targeted ads affects your autonomy.

I don't want to be influenced by ads on every website that are targeted by my socioeconomic status, such as the potential ability to afford a holiday outing or purchase a car inferred through interest in holidays and cars.

Being able to differentiate on interests such as 'holidays' and 'cars' as compared to 'fast food' enables advertisers to sell the same product at different prices to different socioeconomic groups. This is bad for society.
Some interesting parallels between the original Scheme and message-passing from "The First Report on Scheme Revisited" by Sussman and Steele

> We were very pleased with this toy actor implementation and named it “Schemer” because we thought it might become another AI language in the tradition of Planner and Conniver. However, the ITS operating system had a 6-character limitation on file names and so the name was truncated to simply SCHEME and that name stuck. (Yes, the names “Planner” and “Conniver” also have more than six characters. Under ITS, their names were abbreviated to PLNR and CNVR. We can no longer remember why we chose SCHEME rather than SCHMR—maybe it just looked nicer.)

> then came a crucial discovery. Once we got the interpreter working correctly and had played with it for a while, writing small actors programs, we were astonished to discover that the program fragments in apply that implemented function application and actor invocation were identical! Further inspection of other parts of the interpreter, such as the code for creating functions and actors, confirmed this insight: the fact that functions were intended to return values and actors were not made no difference anywhere in their implementation. The difference lay purely in the primitives used in their bodies. If the underlying primitives all returned values, then the user could (and must) write functions that return values; if all primitives expected continuations, then the user could (and must) write actors. Our interpreter provided both kinds of primitives, so it was possible to mix the two styles, which was our original objective.

> But the lambda and alpha mechanisms were themselves absolutely identical. We concluded that actors and closures were effectively the same concept.
What China did to Tibet is really a tragedy. Completely unnecessary destruction of people and learning. I was a fan of China about many things, but that is unforgivable. So sad.
I was just going to say this too. Site is wonderful except the scrollbar which was very very tiny and barely visible.
This looks great. Thank you for building and sharing it. I have a small feedback here.

I entered Kathmandu, Nepal and Hamburg, Germany. The time difference is -4:45 hours. The app shows me -4:75h. Which I think is a bug?

Thank you
Gust in Time
> Not if you are encapsulating and naming effectively...

No, and this is one of the reasons inheritance has lost popularity. Splitting some functionality across many files adds significantly to the cognitive load of figuring out what code is actually even running. After you trace that information out, you need to keep it all straight in your head while debugging whatever you’re working on. That’s even more problematic when you’re debugging, which implies you already don’t really understand what the program is doing.

And that’s in the case where things are named well. When they’re inevitably accidentally named in confusing or incorrect ways that can contribute to the bug itself and cause the code to be even more confusing.

Extreme levels of encapsulation has its own issues when, actually, the original author is wrong and you really do need some public access to some member. No one writing code is clairvoyant, so excessive encapsulation is common.
> why the languages newer than Go, including Rust, also keep a clear division between errors and exceptions.

There are also languages older than Go that make this distinction. Java for example. Like Rust (and in contrast to Go) they even have syntax for convenience, and the compiler checks that you handle them.

You know how you can immediately spot old Java APIs and code? The one that was designed and written while we lived through the suffering? Whenever you encounter checked exceptions. Turns out there is no (or even negative) value in this rather arbitrary separation.
Boeing probably isn't gonna get that safety exemption from FAA.
Game #1: The Will Power Challenge Game of Life
I don't think airline manufacturers are a great example of unchained capitalism. They're a god-awful example actually, being heavily chained to nations and in many cases directly supported, protected, and owned by them. There's a reason high-level diplomats are involved in many aircraft sales and you'll see the US ambassador to Saudi Arabia or wherever announce preliminary sales numbers before even the manufacturer does. Airline manufacturers are essentially immune to free-market forces, because their respective governments would never let them fail. Not to mention that - unlike aviation - many other industries don't even have their own dedicated government agencies to regulate them.

Also the airline industry as a whole also has a stellar safety record, Boeing's issues notwithstanding.

That's not to say that your core thesis is necessarily wrong, but airline manufacturers aren't a great vehicle to argue that point.
I've done a few New Zealand to Houston trips on the Dreamliner and I find the vibration, temperature and humidity to be totally hostile compared to the A350.

Maybe it's a personal preference thing.
What would it need so the US government takes over the company and puts the engineers in charge? Hadn't NASA been run like that at least until some point in the 80s or so? I don't know about those contexts at all, would just like to wrap my head around what was and is possible or not in the US.
I don't think anything changed in this respect since the 90's.

(Well, except we have more of the nu-style "expose all ports to the Internet and protect them with an HTML form and a q1w2e3 password, #yolo" corporate networks.)
Yes, software engineers should take over airplane maintenance because their track record at safety is just sooooo much better, right?

Airline industry has processes that work well and made flying ridiculously safe - there hasn't been a major plane crash in the whole of 2023! - maybe they know more about maintenance, accidents, investigations and corrective actions than a bunch of HN users?
For some reason "CDATA" is ringing a bell and I don't know why. Was that a thing way back when?

EDIT: oh right, it was an XML/XHTML comment thing.
Ohh I’m jealous of you. I dream of coming near that number this year on my personal projects.

I’m in the market looking for something in the intersection of infra/systems programming.

It has been tough to get interviews due to my location and experience, but I know I will manage to do it.
What do you mean? Why is it weird? Did you mean to imply that you're surprised that he was old or that Pearl Harbor happened around an average lifetime ago ?
The only thing I can see missing that I would use would be the ability to select a date in the future or past. Now this might be my ignorance of the subject area but it's definitely something I use other services for.
What Is Qi2? The Wireless Charging Standard Goes Magnetic in 2024
It feels like OP is a bit stuck in their own preconceptions? I almost feel offended when I read:

> I feel like there’s a whole very coherent “wrong” set of ideas you can have about git

I feel like there's much opportunity missed where they could dive into git and figure out the concepts themself. Too much talk about what should and could left me an unsatisfied reader.
He's a pretty well known v8 engineer btw.
Show HN: I made M.I.L.E.S, the worlds best voice assistant
I’ve developed M.I.L.E.S, a MacOS voice assistant powered by GPT-4-Turbo. It's designed to perform a variety of tasks such as controlling Spotify, providing weather updates, and remembering user inputs. The assistant also features a realistic voice and can multitask. It's a passion project of mine, blending AI with practical, everyday applications. I'd love your feedback, suggestions, and thoughts on how to improve it or implement it in different scenarios.
400MPH with an open window plausibly causes some loud noise due to turbulent flow across the opening. The turbofan engines are also reasonably close to the opening and ground crew wear hearing protection to mitigate the effects of the noise.
Not if you are encapsulating and naming effectively...

Encapsulation is hard and a lot of what people call encapsulation isn’t. For example, taking a global variable and moving it to a class is not encapsulation. You have to actually do the hard work of removing the dependency on global shared state. Just changing everything to mutate the new global through an accessor to a “god” object that gets passed everywhere is accomplishing nothing at all. Worse than nothing, you’re complexifying without fixing the root problem: global mutable state.
If you claim it’s not immutable, you enable quacks who torture people thinking they can “convert” them to “straight” and promise parents that they can “““fix””” their kids.

Conversion “““therapy””” does not work, it is torture and has never worked but religious nutjobs keep insisting because they think it’s a choice, or because they like it, or because they think it’s their duty to “fix” people.
I had this exact idea a few months back and wondered if anyone had done this. Nice job :)
Question to the Airline people on HN:

I recall that following the 2019 deaths that Boeing was going to rebrand the Max with some number series or similar, so that passengers didn't get nervous flying in it.

How do I as a passenger identified all the rebranding permutations of the Max so that I make sure my family is not flying in them?
Then what is _Bool, if not a built in boolean type?
> After all, we had several hundred kilobytes of source code, and maybe 3 installations....

I don't know if the following addendum is apocryphal or not, but I still like it.

Follow-up question: several hundred kilobytes? Why didn't you just grep for all instances of "&"?

Dennis Ritchie: because that happened in 1972, and Ken would write grep only in 1973.
There certainly seems to be a genetic component to sexuality (as well as gender identity). It's not the only factor though: for example, there are epigenetic factors like the more older brothers you have from the same mother, the more likely to are to be gay.
related discussion:
https://news.ycombinator.com/item?id=38887840
We've come full circle - we are chiseling data in rock once more.
I'm trying to get as many people I know onto Meshtastic as possible. $25 hardware, no central server(I quite like not having home servers to maintain!), no ham licence, phone-based control.

Eventually, of course, I'd like to do Some Really Cool Project with it beyond the default functionality, but I have no idea what.
I think I will have to find something to do on the side because everywhere I went with that I thought I would program a lot I ended up not doing much programming.
I've seen this:

- Multiple/virtual/high-on-crack inheritance:

add each function/class has 7 template specialization parameters and 3 macros which expand to templates which expand to macros

- Lookup using dynamic structures from hell – dictionaries of names where the names are concatenated from various pieces at runtime, etc.

think maps of maps of maps loaded from configs of configs

- Dynamic loading and other grep-defeating techniques

obviously everything has to be a "plugin"

- A forest of near-identical names along the lines of DriverController, ControllerManager, DriverManager, ManagerController, controlDriver ad infinitum – all calling each other

a 1000 times yes! yes!!! DriverController inherits from ControllerManager which extends ManagerController which contains a DriverManager which agregates 3 ControllerManager from diferent namespaces. I've seen a DriverController function going through 12 levels of stack passed between 3 threads to eventually call back a function from the same DriverController

- Templates calling overloaded functions with declarations hopefully visible where the template is defined, maybe not

if a template technique exists, it had to be used!

- Decorators, metaclasses, code generation, etc. etc.

Of course they define their own DDL with xmls parsed by a combination of Python and awk which generates C++ macros which are used in templates to dynamically load plugins which hold maps of maps of function pointers to create3 events dispatched on a pool of threads
> you can't imprison your way out of a crime problem

Paraguay conclusively proved that yes, you can.
Aren’t there situations with divergent branches where you end up wanting to apply or rewind commits but cannot do so because applying that function is invalid because the difference between commits is just that, a difference, and not a full snapshot of the repository.
This is a really cool view on where to aim efforts
Show HN: ListenBrainz Year in Music 2023
If you are a seasoned C programmer, helping GNU Hurd, for instance, with the Rump kernel addon to add NetBSD driver support (please, no blobs) would be a good thing to have.

https://www.gnu.org/software/hurd/

You can debug drivers on the fly with gdb, something much more difficult to do under OpenBSD, NetBSD and Linux-(libre).

Also, you can run Hurd inside Hurd, a la chroot. But no root permissions are needed.

https://www.gnu.org/software/hurd/community/gsoc/project_ide...

Yep, C is the Unix and Unix-like ABI, and an odd form of C it's under 9front/plan9's ABI/API too, but this makes the userland much more powerful than the typical permission-isolated Unix system where the user has near no capabilities even for mounting non-external media (by default).
It's Boeing that can't catch a break.

Starliner? Delays and cancellations.

KC-46? That POS still isn't reliably refueling, and if I understand correctly USAF is rumored to be looking for a replacement.

F-15EX? It can't use conformal fuel tanks the F-15E has been using for almost 40 bloody years. No, that means it can't achieve its major selling point of carrying 22 missiles either.

737 MAX? Clearly maximum kek given this and that whole comedy about safety exemptions yesterday.

I want to like Boeing, but I feel it's justifiable to tell them to go fuck themselves at this point.

EDIT: I also forgot that V-22 Osprey that crashed into the sea off Japan back in November, killing all on board. As far as I'm aware, that led to a complete grounding of all Ospreys by all US military branches and also the JSDF pending investigation findings.
It depends on what it means to be to get the job done.

Write some code and generate immediate results can be considered a done job. If you want to reuse the code a year later and found an unreadable mess though, not so much.
How did you grow?
I imagine that to become a director one must have had a very good IC career and accomplishments.
(Ab)use of any paradigm (I'll need a shower for using that word) can result in nightmares.
Inheritance has its place and it is definitely useful in more than "few specialised cases". It can get out of hand and it can become a nightmare.
Composition has its place and it is definitely not better than inheritance except in "few specialised cases". It can also result in nightmare, just wait till adoption of Rust and go is at the level of Java and C++ in enterprise environment and you will see.
Writing clean and maintainable code should be the best practice and writing obfuscated code for performance and security should be reserved for "few specialised cases" but most developers and languages prefer the short and obfuscated to clear and (slightly) longer.
RUst and go are perfect examples of why software development is an immature engineering discipline that favors "cool" and "terse" to clear and expressive...and no, C and C++ are not "good old times", they are old and slightly worse but not much worse, or I should clarify, go and rust and not much better because they still do not allow user (programmer) to express the intent clearly and instead force the reader of the code to sound like a person with severe speech impediment.
The Boeing Max is safe and effective.
They might just want cheap disk persistence. I'm not a Java developer, but if SortedMaps are a memory-only data structure, persisting them reliably doesn't look an easy feat.
> But its dynamic nature together with automatic memory management

Generally Lisp was used with a resident interpreter and (loadable) compiler, often interactively, it contained lots of information about the program under development. PASCAL tended to be compiled to small programs with small runtimes by a batch compiler.

The actual performance was only a secondary problem. The main problem was that Lisp used lots of memory and when the GC kicked in, it was generating a lot of memory usage -> for example by a mark & sweep GC. On a shared computer this could mean that just the Lisp program used much of the memory and on GC it was busy for some period of time. Other uses would see a massive performance degradation of the computer.

That was one of the reason to develop special computers, expensive single user workstations for Lisp, which had lots of expensive memory just for one user and improved memory management. For example, they then had four megabyte (or more) of random access memory. ;-)

> UCSD Pascal (I used it on the Apple II) was using a bytecode engine as the compilation task

Lisp systems also used byte code engines. Example: https://dl.acm.org/doi/pdf/10.1145/800087.802811
> That compensation, as glorious as it is, doesn't feel so heavy in your pocket when your day-to-day lacks substance and joy.

This hits home. Thank you.
For small aircraft. Not for major transports or tankers.
Just fly Airbus.
Without paywall: https://archive.ph/5343r
Agree with those two problems on the scientist side. I would also add that they often don't use version control.

I think a single semester of learning the basics of software development best practices would save a lot of time and effort in the long term if it was included in physics/maths university courses.
I used it a couple weeks ago when I just wanted to replace a few values in a template file in an automated way. I used sed at first until the number of values involved made it awkward. I certainly didn’t want to bother with jinja or mustache etc for this trivial little case. M4 was there and handy.

But I’d rather swallow my own tongue than use it to configure Sendmail again. Postfix had many compelling features that made me want to switch to it. None were as insta-buy as comparing its configuration language to Sendmail’s.