skysight-inc/HackerNews huggingface dataset:
Yeah, thinking about this from a business strategy perspective... it doesn't seem smart to lose an existing and future customer by handicapping a low end device. Especially when removing windows and installing linux restores the device to its full capability.
> it's a basic privacy desire to refuse to link your computer to this account

Seems a bit tin-foil in these days.

Which is a fine preference for an individual if they’re into that scene, but you can understand why Microsoft doesn’t care about such a tiny proportion of society.
The main Bay Area cost is housing. I will focus on this because general advice for anywhere in the nation can address other costs.

Even then, the solutions are limited:

#1 Get roommates and split a larger house

#2 Downsize housing

#3 Live further out and commute longer

#4 get on the Section 8 housing list if you qualify

#5 get on the list to buy a government-subsidized subsidized house if you qualify

#6 get a rent control lease and hope for the long-term savings

Overall the Bay Area is not a sustainable place to live with a decent quality of living if you are on a limited income. If costs are an issue for you, I recommend planning to increase your earnings or move somewhere else.
If you can free up one day per week from your regular job, you can pursue a PhD in part-time. It would likely be unfunded, take a little longer, and there may be expenses involved, but still, the option is there.

Moreover, this dramatically lowers the opportunity cost.
If well done, single file projects are not bad. They save a lot boilerplate code. It is also easier to find things, since it is all in the same file.

EDIT: I'll go even further. Programmers who don't like long files are probably using the scrollbar to navigate around the file. Vim saves me from that bad habit.
I’ve seen those old flags come in handy once. Someone accidentally deleted a production database (typo) and we needed to stop all writes to restore from a backup. For most of it, it was just turning off the original feature flag, even though the feature was several years old.
Edit history: https://sqlite.org/docsrc/finfo?name=pages/btreemodule.in

That last substantive edit to the document was in 2009. There were
some spelling corrections in 2010. We finally got around to removing
it from the documentation set in 2016.
Ignore the plight of renters at your own peril.
It has a nice simple syntax that can be easily understood by someone unfamilar with the language. Also many forums, Github, and Reddit use it.
I am certain there is a capitalistic equivalent of the economic calculation problem.

In a planned economy, good decision making is impossible above a certain level of scale and complexity, because it’s infeasible to get the right information on all relevant factors and constraints to the decision makers.

In a market economy, good purchase decisions are impossible because the supply chains are opaque and complex and by the time anyone has figured out the true quality of something, it’s no longer made in the same way.
Call it the 'irate' programming language implimented in excel.

Milage may vary on if 'excel - irate' actually does what's intended.
The ant trail of LNG tankers across Atlantic
Yes, the IBM System/360 was designed to support the full 360° circle of applications (scientific and business), which was a rather revolutionary idea at the time.
When that gap is rapidly closing, I don’t think it’s weird to speculate how it will go in the future. We saw something similar with college attainment, where women were being pushed out and are now the majority, which is causing pains with both men and women in college right now.

Is it weird to worry about the direction the future is heading? Plenty of problems can be seen before they arrive, so why not start thinking about them sooner?
I've never written a file with 11,000 lines of code, but I have often built Clojure projects like this, with everything in one file. I think I might have once had a file with 4,000 lines of code. Maybe 5,000? A complete system might be 5 apps, working together, each made of one large file. It does help with some things. Especially if I try to on-board another programmer, if they don't know Clojure very well, using one file means they don't ever get tripped up by name spaces, instead, they just open one file, and then they can load it into the REPL and start working. I would not recommend this style for every project, but it does offer a kind of simplicity for the projects I work on.
I'd guess if they haven't completely lost their minds you could still just use the old or whatever ways. Just like you still get the old gtk2 chooser with some programs today. Qt apps have also always done their thing.
I guess I don't know for sure but I think Houdini is Turing complete. You can read, write, and branch on arbitrary data.

Shader graphs support loops which should imply they're Turing complete as well?
WolfSSL has this 50K SLOC doozy:

https://github.com/wolfSSL/wolfssl/blob/master/src/ssl.c
It's about risk acceptance. What could go wrong without an staging environment, seriously?
Definitely, NO! Boeing exists on concurrent market.

And its large size not because it could just have some moderate benefits from size, but because it is impossible to build so large objects within small business.

Just imagine, 747 estimated to 500-700 man-years, nobody will wait even 1/10 of so long.

C64 totally different case.
Well third-party browsers need to use the operating system’s built-in components for displaying web pages (ie WebKit) so one cannot port a desktop browser with its own backend (say chrome with Blink/V8 or Firefox with Gecko/Spider Monkey) to iOS. You can only create what is effectively a safari skin.

It’s not all bad though; safari is for example quite good at having low power usage.
It can become a code maintenance issue, though, when you revisit the code. You need to maintain both paths when you never know if they are being used.

Also, where flags interact, you can get a combinatorial explosion of cases to consider.
Some of the media reports are literally linked from the Twitter thread here as sources.
Actually, here's a fun fact: the audio "chirp" that you have heard in association with black hole mergers is not slowed down. The measurement is a gravitational wave, of course, not a sound wave. But when it is played as a sound wave, that's real speed, not slowed. This is actually mostly determined by the frequencies at which the gravitational wave detectors (LIGO and VIRGO) are sensitive, which happen to coincide with acoustic frequencies that your ears can hear.
The page really isn't clear but I assumed it was for IoT devices like a coffee maker. If all the coffee makers talk to each other, great, but someone has to connect to the internet at some point. I'm clearly missing some context here.
Sorry, but each of those sentences doesn't quite contain enough info to deduce what you mean. Can you elaborate?
This makes it sound so easy, but in my experience, permanent staging environments exist because setting up disposable staging environments is too complex.

How do you deal with setting up complex infrastructure for your disposable staging environment when your system is more complex than a monolithic backend, some frontend and a (small) database? If your system consists of multiple components with complex interactions, and you can only meaningfully test features if there is enough data in the staging database and it's _the right_ data, then setting up disposable staging environments is not that easy.
Many are going to bed after midnight every night.

Tell them to look at their Screen Time or Digital Life applications: https://jakeseliger.com/2020/05/26/why-technology-will-never... and ask about their weekly time usage. It's often over four hours a day. I commonly see six and seven hours a day.

That observation doesn't obviate some of the other points—there seems to be an "excellent sheep" problem: https://jakeseliger.com/2015/11/30/briefly-noted-excellent-s... most people who claim to be busy, but show many hours a day on their phones, will privately admit that perhaps there's something else going on than purely being "busy."
We have been (reluctantly) using the term "6G" in grant proposals for several years now. It's not that new, actually.
> People mistakenly let process replace accountability

> We only merge code that is ready to go live.

This is one of the most off-putting things I have read on HN lately. Having worked on several large SaaS where leadership claimed similar stuff, I simply refuse to believe it.
Lol, reminds me of the meme:

var a = true;

if(a == true) then return true;

else if(a == false) then return false;

Or something like that.
Agreed.

> Projects with hero programmers working on them often make a lot of progress initially, but never arrive at a stable state of completion

No project is ever really finished except the ones nobody cares about. Probably because they stopped being maintained by the hero programmer.
The quality of the discussion is in parts abysmal. Assertions are thrown into the world without even mentioning a source.

A substantive discussion is therefore not possible. It is just 'opinion porn' imho.

Regardless of whether the pandemic, social media, (real) porn, industrial food, excessive demands at school, any combination thereof or other anecdotes are used as the cause. Nothing is substantiated by linking sources. Or at least naming them.

Whatever is claimed can only be questioned, not refuted, as there is no substantive point of attack.

Thus, in the end, everyone feels good because they were able to express an opinion. But unfortunately we have learned nothing.
You can have both process and accountability. Process for the things that can be automated or subject to business rules; accountability for when the process fails (either by design or in its implementation) or after lapses in judgment.
Presumably the brand name goggles are made by the same brands that sell $150 sunglasses. Are there differences? Probably. But they’ll probably also still fog at least based on my past experience. Maybe they’re better these days.
You might be overestimating your peers' ability to find a date relative to your own.
FWIW I don't think it is weird at all. Maybe a little short on details of what ready really means for example. While I don't think going completely staging-less makes a lot of sense, going without a shared staging environment is a good thing.

It is absolutely awesome to be able to have your own "staging" environment for testing that is independent of everyone else. With the Cloud this is absolutely possible. Shared staging environments are really bad. Things that should take a day at most turn into a coordination and waiting game of weeks. And as pressure mounts to get things tested and out you might have people trying to deploy parts that "won't affect the other tests" going on at the same time. And then they do and you have no idea if it's your changes or their changes that made the tests fail. And since it's been 2 weeks since the change was made and you finally got time on that environment your devs have already finished working on two or more other changes in the meantime.

FWIW we have a similar set up where devs and QA can spin up a complete environment that is almost the exact same as prod and do so independently. They can turn on and off feature flags individually without affecting each other. Since we don't need to wait (except for the few minutes to deploy or a bit longer to create a new env from scratch) any bugs found can be fixed rather quickly as devs at most have started working on another task. The environment can be torn down once finished but probably will just be reused until the end of the day.

(while it's almost the same as prod it isn't completely like it for cost reasons meaning less nodes by default and such but honestly for most changes that is completely irrelevant and when it might be relevant it's easy to spin up more nodes temporarily through the exact same means as one would use to handle load spikes in prod).
I don’t see how this works when you have multiple external services you don’t control in critical code paths that you can’t fully test in CI.

The cost of maintaining a staging environment is peanuts compared to 30 minutes of downtime or data corruption.
Do you remember the complete PGN of the game?
Agree. I went to Proxmox and virtualize TrueNAS. Best of both worlds IMO and not at all any more difficult to manage.
What's the difference between generic and IoT LTSC? And does it support the winget app package manager?
I can't find a contour plot to reference, but I saw one once to this effect:

Every few decades in the US, the roaming range for kids decreasing by a factor of three or more IIRC -- over generations.

My father as a kid was setting animal traps all over the county, and for him a rifle, technologically speaking, was his PC.
WSL1 has you covered.
I wonder whether there is a HN algorithm involved in the order; I've seen this happen to other polls, and genuinely interested in understanding what happens to the ordering.
It’s my own software that I sell licenses to. I’m a solo dev but I have had contractors help me from time to time. 6 years of dev time with over 500K LOC of a wide variety of languages. It’s mostly really dense functional code. It’s an extremely stable code base - once something is built it’s unlikely I’ll ever have to touch it again. One of my primary motivations to do solo dev was to have the freedom to do things properly without ill-informed program managers rushing me into bad decisions.
What programming language requires 'a lot' of boilerplate code to use multiple files? That sounds awful. I don't think the argument for things being easier to find goes up either, with a tool like grep.
This sounds like something I would write if a hypothetical gun was pointed at my head in a company where the most prominent customer complaint was that time spent in QA and testing was too expensive.

I have zero trust in any company that deploys directly from a developer's laptop to production, not in the least starting with how much do you trust that developer. There has to be some process right?
I feel like it's the framing. We all know the background reasoning is for the sake of equality. And yet it's not taking about equal earnings, it's taking about women earning more. This echoes other discussions where it feels as though the goal is not so much to achieve equality, as it is to reverse the trend and put women in a dominant position. And of course most people deny this is happening so it makes some people feel weird to see this obvious nonegalitarianism
Isn't that essentially the same endgame at the ending of Searching for Bobby Fischer?
I struggle with a lot of the arguments made here. I think one key thing is that staging can mean different things. In the authors case, they say "can’t merge your code because someone else is testing code on staging." It is important to differentiate between this type of staging for development testing development branches vs a staging where only what's already merged for for deployment is automatically deployed.

Many of the problems are organizational/infrastructure challenges, not inherent to staging environments/setups. Straightening out dev processes and investing in the infrastructure solves most of the challenges discussed.

Their points:

What's wrong with staging environments?

* "Pre-live environments are never at parity with production" - resolved with proper investment in infrastructure.

* "There’s always a queue [for staging]" - is staging the only place to test pre-production code? If you need a place to test code that isn't in master, consider investing in disposable staging environments or better infrastructure so your team has more confidence for what they merge.

* "Releases are too large" - reduced queues reduces deployment times. Manage releases so they're smaller.

* "Poor ownership of changes" Of course this happens with all that queued code. address earlier challenges and this will be massively mitigated. Once there, good mangers's job is to ensure this doesn't happen.

* "People mistakenly let process replace accountability" - this is a management problem.

Solving some of the above challenges with the right investments creates a virtuous cycle of improvements.

How we ship changes at Squeaky?

* "We only merge code that is ready to go live" - This is quite arbitrary. How do you define/ensure this?

* "We have a flat branching strategy" - Great. It then surprises me that they have so much queued code and such large releases. I find it surprising they say, "We always roll forward." I wonder how this impacts their recovery time.

* "High risk features are always feature flagged" - do low risk features never cause problems?

* "Hands-on deployments" - I'm not sure this is good practice. How much focus does it take away from your team? Would a hands-off deployment with high confidence pre-deploy, automated deployment, automated monitoring and alerting, while ensuring the team is available to respond and recover quickly?

* "Allows a subset of users to receive traffic from the new services while we validate" is fantastic. Surprised they don't break this into its own thing.
Is it possible to make staging 100% identical with prod? Load is one thing I can think of that is difficult to make identical; even if you artificially generate it, user behaviour will likely be different.
Check out the child birth rates between the two areas.
If you're choosing to pay large sums of money for SQL Server instead of the open source alternatives, you should also factor in the large sums of money to have good development/staging environments too.

All the more reason to just use Postgres or MySQL.

EDIT: as someone else hinted at, it does look like the free Developer version of SQL Server is fully featured and licensed for use in any non-prod environment, which seems reasonable.
That behavior is definitely abhorrent. I wonder, though, if you could get the message to go away for good by accepting the change and then immediately changing it right back after.
We used to believe staging environments are not important enough. If you believe that then I would argue that you have not crossed a threshold as an org where your product is critical enough for you consumers. The staging environment or any for that matter just acts as a gating mechanism to not ship crappy stuff to customers.
You cannot have too many gates, then you would be shipping lates but with less number of gates you end up shipping low quality product.

Staging environment saves unnecessary midnight alerts and easy to catch issues that might have a huge impact when a customer has to face it. I wouldn't be surprised if in few quarters or a year or so they would have an article about why they decided to introduce a staging environment.
And then it will be strange if someone suddenly cares about privacy. “There must be some reason.”
There are homeless shelters and food stamps.
Does it do anything similar when trying to install Chrome?
Levi’s seem to last well for me but I admittedly don’t wear jeans all that often.
that part was because the parent comment was barely understandable.

this interview question is crystal clear and anyone applying for a software dev position should be able to provide a valid answer.

it doesn't remove the fear factor problem. but agreed.
that's also why we got screening calls, in 10 mins even a tech recruiter can filter out wanna be engineers who can't answer super basic tech questions.
Microsoft is like Russia. Just in the moment you thought they chilled, you discover they've been plotting something vile, nasty, and violent.
Paying more productive people the same as less productive people is a great way to ensure there are no productive people.
There are some downsides: interactive pages won’t work and automated content stealers. It very easy to copy articles from such RSS feeds because you don’t need to search for the text in HTML.
Perhaps we have different ideas about what a staging environment is for. I wouldn't expect a staging environment to give accurate performance numbers for a change, the only solution to that is instrumenting the production environment.
When I was younger, I had the impression that people said "sorry" way too quickly and weren't sincere about it. So I set myself a goal for one year to not use the literal word "sorry", instead using word and deed to apologize.

In one particular case I still remember, a batch job I had set up had failed to run, and an entire department couldn't do their work properly the next day; during the "no literal sorry" year!

Instead of just saying "sorry" and being done, instead I was forced to come up with something more:

* "Oh no, that's terrible! We were anticipating this issue due to <reasons> and were already partially mitigating it"

* "Additional QA will likely lead to diminishing returns, but we can still add extra testing time to our daily batch update, at least it can't hurt"

* "Did you know your sysadmins can manually continue the job if this occurs? Send one of them over and I'll show them how!"

Apologizing 'properly' with or without the word "sorry" is hard, but can be done. You need to show that

a) you are aware of the problem/mistake and recognize it.

b) you are acting to prevent the problem from happening again.

c) you are (willing to) engage with the other party and empower them where possible.
It's not too complex. There's plenty of products that make this easy, gitlab review apps being one of them.
That’s wild! I’m not very good but if black offered me a draw in this position my thought would be “his pawn is faster, so why would he offer a draw? Unless he thinks he’s losing for some reason…” which would be the hint to look for the tactic.

I guess in many queen/king endgames you can have perpetual checks, but accepting the draw wouldn’t be my first instinct.
Thanks! Whatever this is far faster than I've seen in other non-compiled languages. If it holds up like this I might actually use it for small projects in the future!
try dominions 5
I would play this more often but I’m running out of friends.
> Do whatever feels right to you and as long as your senses are calibrated (there'll be a short period of adjustment while you learn how ingredients work) it'll come out better than if you'd measured and you'll enjoy it more too.

You’re missing that this is a lot of work, and far from everybody is even remotely interested in doing that. Most people would rather be doing useful or entertaining things, not cooking the same thing a thousand times to discover how much salt “to taste” means. Do not assume that everybody’s hobby ought to be cooking.
Yeah, it sounds to me like OP had the former, which they've dropped, and haven't yet found a need for the latter.

I work for a tiny company that, when I joined, had a "pet" prod server and a "pet" staging server. The config between them varied in subtle but significant ways, since both had been running for 5 years.

I helped make the transition the article described and it was huge for our productivity. We went from releasing once a quarter to releasing multiple times a week. We used to plan on fixing bugs for weeks after a release, now they're rare.

We've since added staging back as a disposable system, but I understand where the author is coming from. "Pet" staging servers are nightmarish.
I'll have to test this because it's much faster than I remember Python achieving with memoization.
Sure different planning 20 years ago would have made a big difference. Or the will/resources to transition. I am just saying that this scenario exists.