skysight-inc/HackerNews huggingface dataset:
> (Yes, Rust 4ev3r! ;))

Rust has a perfectly nice type system by modern standards, but it's nowhere close to showing you just how deep the rabbit hole goes when it comes to avoiding bugs at runtime by having stronger type systems.

For example suppose my Rust function takes a slice of clowns (named unimaginatively "clowns") and also a usize integer k. Can we write clowns[k] ? Rust says sure, it will emit a runtime bounds check to confirm that k is inside the bounds of the slice. If there are sixteen clowns, and we ask for k = 20, this Rust code will panic at runtime.

But we can do better, if we are willing to pay for it. Dependent Types. In a language with dependent types and enough inference our type inference system will conclude that k can be 20 here, thus clowns must be a slice of at least 21 clowns, but this slice has only sixteen clowns - type error during compilation, either k or clowns are wrong.

Now, for cases where bounds checking would be the reasonable thing to do, Dependent Types just result in you writing bounds checks, ie in this case checking k < 16, and so it's possible you will just end up doing more work to result in a program that still just says, at runtime, "Nope, not enough clowns" or whatever like in Rust. The type system will require you to write correct bounds checks, but the Rust bounds checks are auto-generated, so they're correct too.

But in cases where bounds checks were not the only sensible approach, or maybe you didn't even realise a bounds check would be emitted because you assumed it was statically correct - this can catch some bugs at compile time which would otherwise survive into a running program, "Shifting left" is I believe the usual phrase to describe this improvement.

If you thought the function is obviously correct, "Of course there are more than k clowns" but it isn't, the type error may cause you to take that extra moment to think about it. "Wait, why can there be fewer clowns than... oh, I didn't mean clowns here, this should say circus_performers. I'm not even using the right slice!".
Software engineering can optimize more workplace activities than plumbing can.

Once the plumbing is in place and working, you've exhausted the value that can be delivered by it. The only need for additional plumbing after that point is when something serious breaks (e.g. pipe bursts), which might be a once in a decade event at a typical business.

The software engineer plays a part in optimizing accounting, payroll, communications, customer outreach / acquisition, sales, and some legal processes in virtually every business that exists - and those are just the most universal aspects.

"X and Y are both important and therefore people doing X and Y should earn roughly the same amount of money" is the most ridiculous oversimplification I've heard in at least a week.
All I see is a bunch of wealthy and famous folks whining that their little badge of exclusivity has become easily obtainable by the masses for the price of a latte.

Boo hoo. Your little blue badge of elitism is now available to the proles, how will you ever cope with such uppityness?
Many years ago I saw supplemental light used in commercial hothouses to extend the day. (~49°N)

When the sun was setting, they came on and gave a few more hours of light.

There's also the bonus of waste heat.
While Wikipedia is great, that link is more like news “trivia” rather than anything substantially informative.

There is absolutely no value to knowing every single accident, disaster, political incident, etc happening in every country around the world today.
This documentation page: https://docs.iommi.rocks/en/latest/forms.html
is generated from this pytest source: https://github.com/TriOptima/iommi/blob/master/docs/test_doc...

Is that how rust documentation works?
Review + written encourages buddy-buddy dynamics.

Build failure rates encourages frustration as long as you don't provide ways to run the exact tests in isolation locally, under the same rules as CI. Meanwhile, branch triggers and pre-push hooks trivialize this further.

Most of these metrics are strange given they are trivial to check pre-merge. Meanwhile, running these statistics pre-merge discourages small commits and sharing code prior to having ideal builds.

The moment this gets out is the moment devs will game your statistics and any benefit you gain goes out the door. And almost every one of these, even combined, is easy to game.
Oh yes. The purpose of 'related' lists to give people more (hopefully) interesting stuff to read—not to scold anybody!

Reposts are fine after a year or so (this is in the FAQ: https://news.ycombinator.com/newsfaq.html) and for classics and perennials, occasional reposts are important so more recent cohorts of users can get to know the culture (https://news.ycombinator.com/item?id=32405060).
Au contraire, types can be implemented with OO classes and operator overloading. Errors caught at compile time.
And sold to some dude by $44 Billion... ;-)
> packagers could also use easier-to-recycle plastic, or raise prices to pay for collecting and sorting

But does that actually help the environment, or just cause worse environmental impact?

The dollar value of something is a good approximation of the environmental damage. Spending more on something causes environmental damage, for an average products. Greenwashing is a problem: when you buy that expensive green product, the outcome can often be worse for the environment than the cheaper “non-green” product.
Yes! Thanks a lot
Honestly, that makes me wonder whether IP law is either too strong for software and/or too weak for hardware. I don't see an obvious public benefit to software being better protected than hardware.
That's probably uncomfortably close to the truth.

For sure, of all the code I've ever written, 124 lines I wrote for a previous startup that was acquired is responsible for 99.99% of the revenue that code I've written ever "earned".
That's likely the flight simulator application causing it, not the VR headset. Those things are extremely performance intensive even without VR, with VR it gets only that much worse. Unless the application & the setup is very high end and extremely well tuned, it is going to be a barf fest due to lag, poor frame rate and other issues. Your friend is likely used to it (most people lose the feeling of nausea and motion sickness over time) but for you it was likely too much.

Ask your friend to show you some of the basic demos that came with the headset they have. I bet you will have much better time.
Just because it didn't work for you once doesn't mean it can't work. I know of many US companies using Eastern European and south American people very successfully and getting high quality contributions.
> Something being difficult to achieve does not make it valuable.

And value to what? As an ex-physicist I can confidently say that doing that was substantially harder than the ML I do now. But I also think that what I did provided more value to society as a whole. Just my opinion though. But it doesn't pay well (<$100k/yr) and I'm not surprised I saw a mass exodus of people trying to get more money with their math skills (mostly in DS and CS). If pay was correlated strongly to difficulty mathematicians and physicists would be paid much more than Hollywood actors. But for some reason these conversations always revolve around the (barely a) millionaire class and never include the billionaire class. It feels surreal in that it looks like we're fighting for crumbs and arguing who deserves it more.
I don't think consumerism and capitalism are related in this way. Consumerism just happens to be what people want to do. Capitalism as a better substrate allows people to do more of what they want to do... people in different systems (like Soviet Union) for the most part were just as "consumerist", they simply couldn't do as much consumption because the system sucked. That "consumerism" is bad is your personal value judgement (and mine, but I recognize it as such).

It's kinda like, most major cultures wanted to, let's say, (among other things) study the stars and enslave other people. Primitive technology and economy produced a lot of cultures with calendars and simple systems of slavery. Stable empire like e.g. Caliphate was able to leverage their economy and better technology to do better at astronomy, and to do some real large-scale enslaving. Western countries eventually used even better technology and economic system to do things like send people to other planets and do some truly industrial-scale slavery. Everything just works better with technology - what you choose to do and how to change values to want astronomy and not want slavery is a separate question. Ditto capitalism vs consumerism.
What could be the chances of watching the video "Trackers: The Sound of 16-Bit" by Ahoy for 15 minutes while browsing HN and reading this message by coincidence?
I really love what Ahoy is doing, it's very well done and full of great information.
Almost all of the highly profitable companies have one monopoly product and a massive associated bureaucracy doing nothing...and that is a handful of companies. The rest are setting fire to money. Google is the worst example, they have one product that is probably 150-200% of profit, 99% of staff do nothing, and they believe they have a right to harvest income from a search product they don't work on.

The economics of this system make no sense at all. Part of it is VC culture, part of it is massive corporate governance breaches, part of it is QE...it is just multiple things that defy logic. I don't think anyone should be surprised that shareholders ask questions when they see individual companies with thousands of staff who do nothing, that is normal. The bezzle of 2021 was the exception.
What's annoying is not being able to reproduce the 2% cases so you can't fix it even when you've noticed them. Sensible test tools give you the random seed they used to order the tests so you can reproduce the sequence.
It's on Autopilot
I doubt it. Getting a job at those Bay Area companies is still harder. Like it's widely accepted you'll be studying leetcode for a while and know your data structures & algorithms like the back of your hand and be able to solve any leetcode problem impromptu within 30 minutes on a whiteboard.

It costs a lot more to run a company headquarters in the bay area than most other places. That alone is a bit of a flex. It's like how NYC banking firms pay better than banking firms elsewhere. Being able to have a HQ in an expensive city is a flex and you have higher standards because of it.
Hardware engineers are absolutely necessary. However, they make tools, not solutions. No question, their tools are incredibly complex, and their job is important. However, it doesn't scale in the way that a software need does.

And the thing is, as even absurd but amazing Minecraft examples have shown, software engineers can develop hardware, if inefficiently. True we don't know anything about 5nm lithography or whatever, but that's more a chemistry/physics/manufacturing domain.

Finally, even the hardware depends on software. It requires software internally to do its job, and the development of said hardware absolutely depends on software. Chances are, hardware engineers informed software engineers about their need for doing better hardware work, and the software engineers built better software to enable that.
It's not about "more", it's about accessibility. If AI makes creating software products more accessible, the demand for programmers will increase.

If programming was niche and hard to capitalize on then yeah the demand wouldn't increase if you could do "more".

HW engineers seems like a good example of this. HW has gotten tremendously better, but HW engineers haven't seem a commensurate increase in demand.
What's the difference between me making food at home for me to eat and a restaurant? The restaurant is a business. What's a business? It's an economic & logistics model that produces value using known processes and workflows. Say that a different way. It's a repeatable algorithm for producing value. What's our current best toolset for building models and algorithms? Software. We're done.
I would rather have dependency problems-which are able to be automated with sufficient tooling-than working in a codebase written by someone that thought you could just use floats and strings for everything in an extremely overloaded fashion. Doubly so if they don’t believe in documenting all the separate use cases and just keep all that knowledge in their head.
The article entitled "The pool of talented C++ developers is running dry", the author was referring to, was a hot submission on HN [1] with more than 800 comments.

1. https://news.ycombinator.com/item?id=33436268
Last year Twitter lost $221M so, yes, much of the $4M daily loss is due to Musk’s leveraged buyout.
MyPy is awesome and will make you a more productive programmer and will make your application more robust. But I agree that Python types are "weak ass". It's not a particularly ergonomic type system to use, and it's more difficult to express complex types than is worth it for the sometimes questionable benefit.

3.10 does add unions using | which is nice, and I expect the type system will get better, but I share these frustrations.
> "recognize that trying to parse any meaning from an email address' local-part is blatantly ignorant of IETF specifications and almost certainly will create bugs"

I am sorry but this makes no sense. You do realize that the only reason you are able to use aliases is because your email provider chooses to parse meaning out of the supposedly "opaque" text right? If your email provider is free to "break" the spec, so are people you give your id to.
I guess the legendary amount of innovation Twitter has been known for will be reduced
I've been working in structural steel fabrication and construction for over two decades, when I started the product we put out the door had no software in it, and still doesn't today.

There's definitely more software used to aid–that's the A in CAD/CAM)–in manufacturing, but software isn't what we sell.
Except this wouldn't amount to the BBC failing to use British English; they are quoting someone else's written text...
In the last decade, the (stock and private) markets rewarded growth (not profitability). Operators were not compensated on efficiency or revenue per employee. There was no expectations of dividends or profit. As a matter of fact massive spend for growth drove stock prices higher so that's what everyone did. Jack was complicit in this ultimately bearing responsibility however this was the status quo in the growth at all costs era of tech.
https://atproto.com/guides/applications#record-types

So if I'm a social media platform that implements this protocol, am I restricted to supporting only the activities that Bluesky supports? Like if I wanted to have a network that distinguishes people I follow from people who I personally know, am I just out of luck because protocol doesn't support that distinction? And if I do create that distinction, what is its meaning when a user decides to migrate that data elsewhere?
It wasn't Jobs' call. He wasn't ceo yet.
Ask HN: What print magazines do you read?
I'm just skeptical about the importance of twitter per se.

> if Twitter truly didn't matter, the people who got kicked out of it wouldn't make such a big deal out of it

I'm pretty sure that you can be trollish ass-hat and wrong at the same time. I think a lot of people tie up a lot of self worth in follower counts on twitter, but its illusory and probably not important. If you talk to any authors, musicians, or journalists with presences on twitter they'll all tell you that twitter doesn't drive traffic or sales its just a place to scream at people who mildly disagree with you.

I think the greatest trick that twitter ever pulled was convincing people that twitter mattered outside of twitter.
Cool idea, but my first and only attempt returned "something went wrong".
> Which other languages also support this?

Haskell and related languages have distinct types; so does Nim. But even if there's no direct language support, you can always emulate them by having a compound type (record, struct, class, whatever you call it) with one field.
> we pay people the lowest amount we can that is enough to keep them from going to another job.

First off, what a terrible system. Why would we want to support that. Second off, this clearly isn't happening when you look at those taking in 8+ figures.
Not just the past 2-3 years. Many people at google semi-half-joked-not-joked that they could cut half the staff without a single dollar of revenue disappearing back in 2014-2015 time period.
^ this is the best explanation I've seen so far in the thread.

Software translates directly into money. The company I work for makes physical devices - they have all kinds of engineers, but what we're making goes directly into making the company money. Like I can straight up say, they make millions off the stuff we produce for them.

If your work makes the company a lot of money, it's not frivolous to ask for a small chunk of it lol.
C++23! The future is here.
I love how you found a way to blame men for womens choices.

Those darned smelly CS grads with their non-matching clothes, if not for them more women would be in CS!
Developers are paid well in US. In EU, the difference between the salary of a garbage man and a scientist or a software engineer may not be all that much (at least by US standards).

So, the salaries may be roughly similar and constant.
Things will likely work less well in various ways.
> Why do people still link to Twitter instead of of nitter?

Because Twitter is the original source. When people start publishing on nitter instead, we can start linking there.
...

I too test the happy path once and assume there's no problems.
You also can't:

- move your account to a different server

- use your account as a sign-on for other ActivityPub based services

- easily discover content that your server doesn't already know about
Yes, it was.

Times have changed though, the smart ones are getting with the program. The others will have their share price obliterated
Junit is especially bad about this. I often wonder how many of these maxims are from people using substandard Java tools and confusing their workarounds with deeper insights.
The link you posted makes no such claim.

Instead, confirms exactly what I posted. Then it tries to dismiss on the basis this implies a China nuclear umbrella that no one claimed.
VSCode != Visual Studio

EDIT: I'd also hardly call VSCode "performant", either, at least compared to the multitudes of editors that don't pull in a full-on browser engine for basic text rendering... but yes, it is indeed "performant" relative to Visual Studio.
Business expands to the resources available. One programmer can easily deliver a basic website that worked great in the early 2000s, but same website won't cut it today.
> I am fairly sure there are multiple published results in computational fluid dynamics that are subtly wrong.

I wonder what that means for the accuraccy of the climate models...
You probably want smart constructors, as you probably don't want the possibility for a 10,000 character username to float through your system.
I think that is definitely true, but it doesn't explain the wild geographic variation in pay. Why are SV programmers paid maybe 5-10x what programmers in Europe are. They definitely aren't 5-10x better and the cost of living isn't 5-10x as much.

I definitely think we'll see movement of work outside SV and outside the US to save costs. Musk could have made Twitter profitable simply by moving all engineering work outside the US.
Thank you! For the board layers I just used macOS's screenshot utility, though I would like to do something fancier in the future. The schematics are rendered using code I wrote specifically for this article, but I am planning to publish it as an open source library so others can use it. It needs a little bit more polishing before it's ready, though! You can follow me on Twitter if you wanna get updates about it.
Smart lawyer wrote a nice piece of a contract.
"I regret hiring most of you." basically.

Not the best wording.

He should have said he failed to grow revenue and the macro-economy wasn't as expected.
Not to mention with exceptions - a good programmer in my particular niche is someone who probably spent YEARS fucking around with embedded devices and Linux machines. Most of the hardcore nerdy types had at least 10 years of experience with the technology they're working on before they even graduated college.

It's not impossible to do the same in medicine or law....
Or stop using rhetorical buzzwords and the language of demagoguery.
The big overlooked thing here is that doctors and lawyers don't really create any value. They extract value from existing systems (not to disparage their professions - they're both very important).
Why is this downvoted?

Are we really at the stage where we simply downvote people who say things that are hard to hear?

Parent is right: there's an imminent correction, and it will be unevenly distributed, because so is everything else.
The sign-in-or-sign-up nag screen has already stopped appearing as quickly, the end is nigh.
I don't know if you recall, but we all thought "tweet" was ridiculous and cringe-worthy back in the day too.
Fair enough. I'm an American born American who relishes language studies. I prefer British English in most cases.

In this case, to me, using [sic] reads as preposterous. I kind of like it, but it's definitely unnecessary, right?
>>>> In fact, I would argue that we are paid comparatively more than other careers because to be successful in our work we must take the confused requests or requirements we are given and make sense of them, make them fit into the actual business need, and then execute on that improved understanding.

It works both ways. From the "other side," communicating requirements to programmers is also hard. The problem is compounded if the requirements involve specialized domain knowledge, including math. And everybody thinks they have the best understanding of business needs. Everybody thinks the "other side" is the problem.

There may be conflicting expectations. For instance, when I communicate requirements, I actually try not to precisely specify every detail. I want the programmers to come up with their own ideas and solutions.

I think the high pay is just a supply/demand issue. Paradoxically, most of us who program think it's easy, but most people who try to learn how to program find it to be prohibitively difficult. And we don't know why.

Also, demand fuels itself in peculiar ways: The visibility and aesthetic appeal of software make it a focal point of the business. Investors are gaa-gaa over it. When the big-wigs review a business unit, they will ask: "What is your digital strategy?" It's hard for an electrical engineer to make their work self-advertising in this way. Second, Brooks' Law suggests that there may be positive feedback cycles in the need for programmers within organizations with large ongoing development efforts. Hiring more programmers makes programming harder.

On the other hand, my general advice to all workers is to plan for lower pay. My spouse and I have done this throughout our careers, and I don't regret it an any way. For instance we bought half the house that the bank said we could "afford."
I'm honestly curious whether the site will manage to stay running over the next few weeks / months.
Hey, I wanted to wait a day or so before commenting but I wanted to let you know that you can send an email to a specific email address so the receiver receives an SMS text. People may try to cheap out of paying by doing so. Good luck on the venture!
You don't avoid injection attacks by validation, but by escaping.