skysight-inc/HackerNews huggingface dataset:
Viewing a company as responsible only to it's shareholders is perspective only proposed and adopted in the last 50/60 years (maybe less), and I believe, a flawed one.

Historically, businesses were understood to also have responsibility to their communities and customers. Also their workers, though perhaps that began to shed somewhat less recently.

In my view, any person or entity is morally responsible for their impacts on others.

So, I believe companies should, indeed, have moral standards.

...

That said yes this is a cultural shift so by no means any kind of immediate solution, and there will always be bad actors, so yes totally agree, fix the policy!

But let's not support a business culture where being a bad actor is cool- it makes the already very difficult job of appropriate regulation that much harder.
Sorry if this comes off as rude, but this comment shows you don't really know what you are talking about. Tesla offers two driver assistance products. There is Autopilot and Full Self-Driving Capability. All Autopilot does is autosteering and adaptive cruise control[1]. The more advance stuff like detecting red lights and stop signs are part of the FSD package which needs to be purchased separately. Autopilot and Comma seem like natural fits for a direct comparison.

[1] - https://www.tesla.com/support/autopilot
> American women mostly give birth at home because they can't afford to go to a hospital

Where in the world did you hear that?

"roughly 99 percent of U.S. children are born" in a hospital

https://www.npr.org/sections/health-shots/2019/03/11/7008297...
Yeah, it's pretty light on the exact details of what's coming. Although it does justify why that's the case in the last paragraph.

In any case I'm happy making my side projects in Elm as it is and not changing is to me a bonus. Let me put it this way: I have an "empty side project" template I use when I start a new project every month or so, and invariably something about it is out of date every time I do so, and it's one of the biggest barriers to starting new things. Also invariably, updating the dependencies I have baked in turns out to be harder than I expect and eat up a bunch of willpower and time. But it's never Elm that is the culprit! It's always the CSS framework, the bundler, the minifier, the something else. I wish to god that other technologies worked like Elm did to be honest, at a glacial pace. It's not like they ever give me any startlingly new benefit; I have to go through hour+ annoyance just to get back to zero! I liked Tailwind 1.X or whatever, why did they have to update to 2.0 and I have to go through all this trouble... Elm stands athwart that tide and says no, I'll only release an update every four years, and it will introduce only extremely carefully considered, elegant changes. Refreshing.
Well, pedantically yes unless every option is exactly as secure as all the rest.

Less pedantically there's stuff like: https://hackaday.com/2016/08/01/lastpass-happily-forfeits-pa...
I recently switched to using esbuild [0] and certainly is fast for minifying js and even css!

For my site I basically only do minifying for js, and bundling+minifying for css, and it all gets done in 0.2 seconds. Right now the longest time in my deploy process is actually just doing a git fetch (with depth=1).

[0]: https://twitter.com/thexpaw/status/1358124690347339778
Most Intel 10 gigabit adapters support PTP.

It's just about inserting the exact time the frame will be sent into a sent frame, and noting the exact time the frame is received. All that's left is a small amount of clock jitter and cable delays.

High end switches support PTP themselves so you don't need to worry about queueing delays, but you don't need a switch that supports PTP to get high resolution, low jitter, low uncertainty time-- at least on reasonably sized networks that are usually not saturated.

There are many algorithmic trading applications that rely upon high quality time derived from a single coherent source, along with telecommunications, control systems, instrumentation, etc. And there are other distributed systems approaches where true ordering is nice: yes, you can provide ordering within a system of dependent events using a Lamport clock, vector clock, etc, but without high quality time you can also correctly sequence causally related events originating outside your tightly coupled system in many use cases.

That said: PTP relies on a tightly coupled master and realistically is intended for a tightly coupled, hierarchal system. NTP is a better "internet" time protocol-- lots of logic for clock precedence, averaging of multiple sources, slower control system, etc.
I've met some developers with a good intuitive understanding of fast vs slow code and who simply don't have the vocabulary (Big-O and whatnot) to perform well in that kind of an interview.

If a person really couldn't write fast code though, they could also just never have been assigned anything performance critical, the issues could have been addressed before they had any impact (e.g., in code review), or there could be a host of organizational reasons why despite pushing excessively slow code to production the consequences to any one developer are minor, especially in the short term (I've seen all of the above).

Mildly off-topic, most of the accidentally quadratic code I've seen has arisen by building on top of something that wasn't designed to support it via some kind of miscommunication or leaky abstraction (and the rest from building the algorithm never imagining N could grow large enough to matter). E.g., somebody designed a type which could be instantiated with sorted data and then passed to other places with demanding enough performance guarantees to need sorted data, and the type checker would ensure that an unsorted array wasn't accidentally being passed places it shouldn't be. Somebody else saw a sorted data type providing an Add() method and thought that was perfect -- without any exotic performance needs they just blissfully assumed any of the many well-known average-case logarithmic algorithms was used for the implementation. Fast forward a little bit, and suddenly the instantiation of a large sorted data type is taking way too long because...drumroll please...it's bubble sorting!

That isn't to say that nobody was blameless per se, but lack of comp sci knowledge wasn't the culprit; it was some combination of poor communication, ambiguous type names, leaky abstractions, not performance testing, not verifying the behavior of the components you're building on, etc....
> I don't know of any language where the compiler automatically infers field names and types, and I don't know if I would ever want such a thing.

Typescript can do this to unannotated code, and it’s surprisingly useful.
Some people can't see color either, and unfortunately their life is more difficult because of it. But seeing color is the expected outcome for most, and the world is built with that assumption in mind.

If you aren't making connections you are unfortunately at a severe disadvantage. To the extent you're self-aware to realize this, you may be able to correct it. Otherwise, like anything else, you learn to adapt.
"Now, the average non-software senior engineer in those countries gets around 45K euros/year."

For Industrial Engineering (the most common) it's €18k-€22k when you finish the 6-year degree (4+2), and if you go so far as to become "project director" with some extra qualifications you get €71k/year (which is literally a "director-level" position). I'd say that these are rare enough to be well matched with the few people making €100k+ working for a company abroad.

One of the problems is that there is a lot of self-taught developers, where they make that same "junior" salary of 18k-22k after 1-2 years of a bootcamp or learning on their own. So this brings the whole average down, but for the same amount of experience (studies+work) I'm pretty confident a software developer makes 1.5x-2x that of an Industrial Engineer for all of their _technical_ careers.
Awesome ending. Thanks for everything, pg.
I actually suggest keeping the parentheses, and updating the system functions to also use them. That way, you can potentially more easily support nesting of compound expressions in function calls.

Re: naming for IO functions, it's really up to you. I personally try to avoid abbreviations for readability, except for incredibly common ones.

One idea:

init_pin(index, mode)
get_pin(index)
get_pin_mode(index)
set_pin_mode(index, mode)

Or CamelCase, InitPin, GetPin, etc.

Mode is an enum with values for input, input_pullup, input_pulldown, output_low, output_high.

For getting timestamps:

milliseconds()
microseconds()

For computing deltas in time between two timestamps correctly with rollover (Provided by the system in case the data type is unsigned. Returns 0 if t2 > t1):

time_left(t1, t2)
1) This is a clickbait headline. TFA doesn't say there's a 50% chance of a collapse tonight. It says there's a 50% chance of collapse at some point in the next year.

2) TFA also says the reason Bitcoin futures are contango (6 month contract costs more than 3 month contract) on the Chicago Merc is because of counterparty risk with Bitcoin exchanges. But it also says there's zero counterparty risk with the Chicago Merc. So who cares about sketchy Bitcoin exchanges when you could just buy the CME 3-month, sell the CME 6-month, roll it every month and pocket the premium?

3) We should immediately discount stories about cryptoassets from any site that can't manage to set up a TLS cert.
I call it the canary system. Some people are more sensitive than others, but we're all being harmed with it.

For my part, I pay attention to what others are sensitive to and avoid it as well.

If someone else has trouble coping with a substance but I'm "fine", that probably means that underneath my constituents are still struggling to deal with it and just not telling me.
Umberto Eco: Ur-Fascism (1995) [pdf]
It is the case in India. You can make $60k/yr back home in India in a good tech job. Very few salaried jobs pay that well.
With permanent remote at a bunch of companies becoming the norm, location will increasingly become less important.

I can foresee a talent grab happening in the next years where the best devs in KC all start working remotely at 2x what they are currently making.
> Two people with direct knowledge said the manipulation combined two pieces of code: The first was embedded in instructions that manage the order of the startup and can’t be easily erased or updated. That code fetched additional instructions that were tucked into the BIOS chip’s unused memory, where they were unlikely to be found even by security-conscious customers. When the server was turned on, the implant would load into the machine’s main memory, where it kept sending out data periodically.

Asking the obvious...

If this description is accurate, would the second piece of code probably be pretty easy to identify, as a suspicious extraneous block of bits, by a curious ordinary techie who rigged up a RasPi to read the Supermicro's BIOS flash? (Using a tutorial intended for Coreboot installation, for example.)

And does anyone know whether the first piece of code would be in that same flash (perhaps harder to find, as part of a blob of BIOS/init code), or stored in the BMC package, or somewhere else?

If it turned out that (alleged) backdoored units were widespread, or some rare (alleged) backdoored units possibly were mixed into the supply of cheap used Supermicro servers on eBay, or among units taken home when retired from IT people's workplaces... then might some random techie fiddling around at home find a backdoor?

And if someone did find a backdoor that way, would their first call be to their national authorities (to alert, and ask whether it would be bad if they talked about it), or to a journalist, or to post on social media, or to write a haxor paper/post?

I'm not going to look myself; just wondering whether this story might suddenly get more credible and problematic that way.
From that article:

> Blinded clinical trials show that people with MCS react as often and as strongly to placebos as they do to chemical stimuli; the existence and severity of symptoms is seemingly related to perception that a chemical stimulus is present.
I haven't, but will likely give it a try when I get back on the reading (books) horse. I wish it weren't owned by Amazon. de-FAANGing is too hard!
That is essentially it - the upper class has the confidence (and safety net) required to take big swings, and the lower class has nothing to lose. The middle class has been conditioned to live conservatively.
There's been a pandemic and an insurrection in USA, yet stocks are higher than ever. Banning crypto exchange transactions wouldn't even be a blip on the radar. The forces attracting foreign investment are much bigger.
Aside from the fact that I’d be willing to bet that all the gold in the world occupies less space than all the Bitcoin mining equipment in the world, space is a terrible measure of energy consumption. So let me spell it out for you: Bitcoin is a system designed to maximize its energy use indefinitely for as long as it exists. The cost of holding any value of Bitcoin is equivalent to the energy consumption of the entire network for as long as it exists, because that Bitcoin’s existence is only guaranteed as long as the network remains online. By contrast, if I have a gold bar sitting in a safe in my house, there’s a fixed energy cost to that, and it’s virtually zero.
> "this stuff"

Is it less hard to take seriously when the proper term is utilized?

Volatile Organic Compounds (a.k.a. VOCs)

https://en.wikipedia.org/wiki/Volatile_organic_compound
Just to put the 280k lines into perspective, deletion rate seems close to addition rate[0]; measuring the number of changes made to code is also a poor proxy for productivity, but is at least not quite as bad as the pure "lines added" metric.

[0] https://github.com/evanw/esbuild/graphs/code-frequency
In my experience, the answer is absolutely "NO", for mid-market, and smaller, companies. K8S and Terraform are absolute overkill when you can just spin up a VM from an ARM template in Azure and call it a day.

'Cloud Native", if translated as 'cloud-agnostic' (I don't know how else to translate it in a practical sense), has some value for major corporations. Let's say a company starts competing with Amazon (as Kroger has), suddenly they need to be able to take their data off of Amazon's servers.

The problem, again, is that this is all easier said than done in reality - they probably don't have their data in SQL, they are using something like GCP's Big Query, etc, and the data doesn't copy over one-to-one, and so on.

'Cloud-native' === 'cloud-agnostic' === K8S/Terraform === developmentCosts.MUCH_HIGHER_THAN_NORMAL.
It’s good it’s up for the many to read, but this is not surprising to anyone who has remotely worked on chemical systems.

I’ve only done Computer simulation of polymers. I haven’t even taken a single chemistry class past freshman year. And yet there’s no way anyone is going to convince me that smell is OK.

That smell is the slow degassing of all the chemicals used in the production of the car. It will include foaming agents, plasticizers, solvents, curing agents, dyes, paints, etc.

When I but a plastic baby bottle (we try to use glass, but for some things plastic works best) I always put it through several dishwasher cycles. I’ll never pour a warm liquid into it. And I always do a smell test to make sure there’s no unatural smell (rotted milk vomit I’m “ok” with. “Can’t place it” freaks me out)

I always air out the car if I buy a new one (even used! God knows what’s in air fresheners and detailing products) by running the fan at 75% if I can’t have the window open.
> Why do people feel entitled to "usable" ML at all?

Yeah, people are annoying, with their demands to use software themselves. It would be much easier for everyone if computers were controlled by an elite group of engineers who could hide the complexity from the rest of us. Perhaps they could wear labcoats.

> What the fuck more do you want?

If I knew the answer to that, life would be a lot simpler.
But those benchmarks show that it does keep up until you literally throw more cores at the benchmark.

Without going up to 10 cores, only 4 models on that list are faster than a Mac mini that costs $600, and those models are negligibly faster. And they can’t run on a battery for 15 hours like the M1 laptops.

So it’s really just a nitpick surrounding the fact that Apple doesn’t sell an M1 with more than 8 cores yet, which Apple definitely will, probably within the next 6 months.
NY Court holds that Citibank is not entitled to its money back
And results: Weisskopf Announces Hiatus for Baen’s Bar [http://file770.com/weisskopf-announces-hiatus-for-baens-bar/]
This would be a massive wealth transfer to the companies on SP500 because demand for the stocks would go up and those companies would basically get infinite zero interest loans by issuing more stock, which would inflate your currency.
pg has a whole essay[0] where he dismisses practically the entirety of Western philosophy and the value or use of the study thereof.

consider the difference between,

“All I knew at the time was that I kept taking philosophy courses and they kept being boring.”

and,

“All I knew at the time was that I kept taking philosophy courses and I kept finding them boring.”

recasting the first as the second puts some of the onus on the author, pg is too good of an essayist and too thoughtful a writer to inadvertently overlook this distinction.

and consider the whole paragraph beforehand,

“Though I liked programming, I didn't plan to study it in college. In college I was going to study philosophy, which sounded much more powerful. It seemed, to my naive high school self, to be the study of the ultimate truths, compared to which the things studied in other fields would be mere domain knowledge. What I discovered when I got to college was that the other fields took up so much of the space of ideas that there wasn't much left for these supposed ultimate truths. All that seemed left for philosophy were edge cases that people in other fields felt could safely be ignored.”

that last sentence is a remarkably dismissive throwaway statement.

just because something doesn't have value for you or you don't see how something might have value for you, you don't need to make out that it has very little intrinsic value.

[0] http://www.paulgraham.com/philosophy.html
So now the Nigerian Princes are going to be trying to get their millions in bitcoin out of the country and nobody is going to answer their emails.
Awesome!!! Excited how easy this is
Looks very interesting.

Yeah I mean, I'm just running a django site, so I imagine I could add a custom middleware that makes an API request on every page load. I guess it would have to try and see if the access token is expired first? and if so grab a new one then make the hit. Is that the recommended setup?

Would I be able to pass extra information to be included in the logs, like e.g. username?

Also, I know you have good privacy policies, but still sending this information through a request makes me nervous nevertheless, even though it's of course miles better than js-based solutions. But what are your thoughts on how possible is it for these requests to be intercepted and this logged data siphoned off by someone else?
If you mean https://lobste.rs/s/jec21l/thought_leaders_chicken_sexers#c_..., that's not serious criticism. (And like the other article, is obviously motivated by extrinsic animosity. Articles like that get reactions based on how people already feel. Those who share the animosity like the hit, those who don't don't.)

pg's idea for Bel was to express existing programming language constructs in the style of McCarthy's original Lisp, so to complain that it doesn't introduce new ones misses the point. You can't make serious criticism without knowing what the project was trying to achieve. (IIRC, Bel does actually contain a couple of unusual constructs for a Lisp, but not because pg was trying to invent any. They came up as side-effects of making the program clearer and smaller.)

Similarly, it makes no sense to complain that Bel isn't being used as a programming language. That's not its intent. Its intent is to be the minimal executable explanation of what a programming language is, in the way that McCarthy's Lisp explained what computation is. Obviously that would be unusably slow as a real-world platform. The important thing is that it runs at all.
Well designed Static Types are better than Unit Tests. They only fail because they are hard, because c++ is hard, because our present cultural reality is optimized for Time to Market, because we dont teach computer science to kids in elementary school and because if it works, it works, we ship it and move on.

I propose that Unit Tests have arisen in popularity solely because of the rise of Python, as a band aid to the complexity that rises as an untyped code base gets large.

Matt Godbolt does a great job giving an overview of the power of static types to ensure correctness in this C++ On Sea Talk [1].

I've worked in places where people evangelize Unit Tests. But it is certainly true that no one really code reviews the Unit Tests that hard. People generally skim the tests file to see how many tests there are and give it the thumbs up. But then they seriously review the feature code. If TDD is to truly followed, shouldnt we review the tests more thoroughly than the implementation? Does anyone actually do that?

My basic assertion is that, in practice, no one _really_ follows TDD. I think it's more of an easy political win. If you evangelize TDD, you look like a "real programmer" who cares about Stability and Reliability, but are you actually following through with that? Are you rejecting pull requests because some test case isn't present? Are you primarily reviewing the tests above the implementation? Is it actually feasible to test every code path in an untyped language? I would propose that it is not. That correctness can only come through the compiler, through a static type system.

1: https://www.youtube.com/watch?v=nLSm3Haxz0I
I thought it was the smoother ride on newer cars (or when I was really little associated it with green cars), but probably was the smell all along.
> then applying it to California's carcinogen list

I've seen prop 65 warnings in hotel rooms, likely due to lead pipes in the toiletry. The application, and to an extent the compounds included, are a little overkill. Keeping that in mind, It would be worth scrubbing through the article and seeing what the components are that are not just "California Carcinogens". That's what would be the really valuable information here.
The target market for the Raspberry Pi foundation is education. They get cheap boards into the hands of people everywhere and provide plenty of documentation to get them started.

Raspberry Pi has the biggest community, and therefore it’s the best choice for anyone looking to get started.

If you’re the type of person who needs very specific features like AES acceleration, then you don’t want to invest in a board aimed at education markets anyway.

The Raspberry Pi 4 is actually very performant due to the Cortex-A72 cores, which are not common on other SBCs at low price points. It’s actually an incredible performance value in the space, even if it doesn’t fit everyone’s exact situational requirements.
Well a more forceful version of your counter-argument would be that Claude Shannon laid the foundations for the information age in his thesis, rather than linking to some obscure Lisp work. But really, that wasn't their point -- most theses go nowhere, the few that do are obvious exceptions to that rule.