skysight-inc/HackerNews huggingface dataset:
One reason is they don't actually want the "broader" community to see them. More than once I've seen people lament the fact that the "orange site" picked up one of their posts. There are Twitter accounts dedicated to making fun of things people say in the comments here. There are people who wrote scripts that do special things when the referrer to their site is HN.
I only mentioned it briefly at the end of the post, but metamorphic testing is a very interesting technique that addresses exactly this [0].

The basic idea is to start with some known-good inputs and outputs, and then generate ways to modify the input that should not change the output.

[0]: https://www.hillelwayne.com/post/metamorphic-testing/
Ditch Jira and over-management, focus on your goals
It's reversible. That's the whole point. You don't need to keep a separate table or column for the hashed id.
Thanks for the response. While I certainly see the value of being provider agnostic, I just don't see the value of being multi-cloud within the same app or service.

I worked at a company that wrote an internal infrastructure/deploy management tool based on Kubernetes. You could deploy an app either to our colo facility (we were an old business transitioning to the cloud), or you could deploy it to AWS. As a developer I never interacted with the AWS console, this internal tool just hid it all from me. However, while I had the option of deploying to our colo or to the cloud, it was one or the other; the service was only running in one platform in prod.

And after a multi year push to the cloud, the company actually had to stop that huge push because costs were spiralling out of control. Managing all the costs across a huge enterprise of many services (some micro, some not) became a huge challenge. Can't even imagine the additional cost or complexity if some of those services spanned multiple cloud providers.
still true today.
(not really, but there is a lot of f77 out there...)
Depends on the platform. Ultimately all you need is a list of the routers around you; SSID is often sufficient, but mac adddress is optimal since it can be sent to Google API [0] or similar for geolocation. I'm not sure about Android permissions. With iOS, it used to be (like 2 years ago) that any app could get the list of nearby access points, without permission. But AFAIK that was recently changed to be behind a prompt. Not sure if it's the same permission as location services or a different one.

[0] https://developers.google.com/maps/documentation/geolocation...
Show HN: Learning computational tasks from single examples (incl. code)
Yes, I have gotten it working with those steps.

If you get the black screen I think that means somebody is logged into the console (the hardware X session). That's the big caveat (I used to use x11vnc, which let you vnc into the system's hardware X session then disconnect, and use the console directly).
And it does in my Dell Optiplex 3010 (without BSOD). Maybe in the near future the motherboard, multiprocessor, batteries and Audio drivers, the different .dll modules that should be working, will work. Maybe.
It should be noted that the standard mouse Alzheimer’s models have proven pretty useless over the last 25 years. So far, I'm pretty sure 100% of Alzheimer’s treatment has failed in trials.
At least half of Americans have some form of herpes infection.
To quote the article:

"Luckily, most of them are using the same version of lodash, which just needs one lodash to install inside node_modules. This is often not the case with real-world production projects. Sometimes, different packages require different versions of other packages."

Npm lets you install several versions of the same package. This has the advantage of saving the dev the testing of their lib with a wide range of dependencies versions: it almost always works. Unfortunately, that means most devs just choose one version and call it a day. They build libs like one would build a project: as you were alone in the world.
Note: the title is overstated, this is actually a pretty good discussion of Racket and not just the kind of bashing you would think from a title “I hate Racket”.
I think they just don't audit nor review the code they depend on.
I'm not talking about whether to stay indoors or not. I'm talking about the precautions one should take in public spaces. I still need to go shopping but whilst there I'm going to assume all surfaces are potentially contaminated.

Likewise groceries, parcels and deliveries either go into quarantine for 2 or 3 days or they are washed.
Now imagine 30 years from now when you are going to have to track down the documentation for version X of the web framework for version Y of some language and version Z of frontend framework.
If what you say is true, then Rust is suffering the same fate.

197 dependencies is too many to trust.
hope the apple/google PMs take it into consideration, seems like a valid enhancement to me
Readymade Online Grocery Delivery System
That is so cool. For the first few minutes everyone ran away from me :( But then I was welcomed into a convo.
I always just have a uuid column with an index (which is populated with a random uuid) and use that externally for URLs and such. What is the benefit of this over “slightly smaller database”, and that nagging feeling of violating DRY due to each row having two unique constraints/identifiers?

UUIDs aren’t big when stored properly (ie not as strings); I just got over it. Am I missing something?
Love this! Reminds me of my first attempts at programming on a ZX Spectrum when I was 5 or so.

It's hard to beat the simplicity and immediacy of writing a few lines of code and having a simple physics simulation (the bouncing ball example here). I can see this being extremely popular and useful to kids!
As a candidate, be very careful asking interviewers ‘why’ the company does something in a particular way.

‘Why?’ Is an aggressive question.

When you hit your interviewer with a ‘why?’ Question, you put them on the defensive. They have to justify that their company isn’t dumb, that there are good reasons for doing it that way, that there even is a rational reason why - when they may not know the reasons, they personally might even disagree, and the fact is there may not be a good reason.

And while you might think ‘I really want to know that sort of thing if I’m going to be working there’, the downside is that to get that answer, you have leave your interviewer with a bad taste in their mouth - ‘that candidate seemed to be judging us for how we picked our front-end stack, and I felt slightly embarrassed defending that we still use angular even though I personally have been fighting a running battle to move to a new stack for a year now’

And honestly, those are definitely not red flags right there. If your requirements for joining a tech org are that you expect them to have made all the same decisions you would have made if you were in their shoes, without error, then a) your bar might be a little high and b) what the hell do they need you for, they’ve already got a team that can do everything you could bring to the table.
If you look at the case rates on the RKI tracker / GIS app, you can see that there is a weekly cycle.
https://experience.arcgis.com/experience/478220a4c454480e823...

The peak of the last weekly cycle was April 2nd, and was the highest peak yet.

The current cycle is still in progress. Cases get added to previous days of the week retroactively. For example, there were days when it looked like case would go down, and then the next day several thousand cases were added to prior days and we went back to the weekly cycle.

We need to wait until next week to make any judgement about what is going on right now.

Up until now, there seems to be a linear increase if we ignore the cyclic component. At least for two weeks, people have been fantasizing about a decline that did not occur.

I agree that it looks like as if we'll have less cases this week. However, since it's holiday, this may be deceptive.
We will not know for certain until next week, perhaps week after next week.

It's too early to celebrate.
Obviously I share the hope.
yeah it's basically to windows what Linux was to Unix back in the day. hopefully some day it will be viable, but maybe it won't. there's only one way to find out
Hierarchies scale well, though, and are often found in complex systems, both natural and manmade, where this is an issue.

This classic paper (The Architecture of Complexity, by Herbert Simon, Nobel prize winner) explores hierarchy as an organizing principle in complex systems:

https://www.andrew.cmu.edu/course/15-440/READINGS/simon-arch...
For me, it feels a bit "wrong" to be building on each production server.

Firstly, production servers are usually "hardened", and only have installed what they need to run, reducing the attack surface as much as possible.

Secondly, for proprietary code, I don't want it on production servers.

But most importantly, I want a single, consistent set of build artifacts that can be deployed across the server/container fleet.

You can do this with CI/CD tools, such as Azure DevOps (my personal favourite), Github Actions, CircleCI, Jenkins and Appveyor.

The way it works is you set up an automated build pipeline, so when you push new code, it's built once, centrally, and the build output is made available as "build artifacts". In another pipeline stage, you can then push out the artifacts to your servers using various means (rsync, FTP, build agent, whatever), or publish them somewhere (S3, Docker Registry, whatever) where your servers can pull them from. You can have more advanced workflows, but that's the basic version.
As a counterpoint, I picked up (some) haskell pretty quickly.

I read a lot of code and didn’t get bogged down reading explanations of what a monad is. I also avoided trying to understand too well what the evaluation semantics of the language were.

When I read code, I focused on looking at the type signatures and understanding what they meant, then I would stare at the code and try to work out in my head why those definitions would get those types.

I did this at a time when there were lots of “I wrote a program in Haskell. Let me explain how it works” blog posts on this site.

I defined some data structures and solved a bunch of project euler problems as practice
it's basically to windows what Linux was to Unix, except it's still in the early 90s stage compared to Linux.
Zinc (intracellular) is also well known to inhibit viral RNA replication: https://journals.plos.org/plospathogens/article?id=10.1371/j...
Could not agree more. Top schools like MIT gave up on their silly dedication to obscure languages in introductory programming classes and switched to Python. It seems like there was a generation of professors who decided there was a “correct” way to teach computer science and it involved languages completely isolated from the mainstream industry. It’s like teaching someone grammar by forcing them to use Esperanto because it’s “The Best” language (according to tenured professor who doesn’t give a shit about their students).

All Turing complete languages can execute any program. The fundamentals of programming exist in all languages. Teach students using languages with the absolute minimal friction so they aren’t spooked in their first exposure to programming.

Academia has scared away an untold number of aspiring students with their nonsense languages. Such a damn waste of talent. The absolute worst programmers in terms of craftsmen-ship are academics - if you want to see some truly WTF code look at what underpins research papers.
I was thinking the same, especially since they mention manual testing.
I agree with you on the content creation part. I've found that working on your own stuff, be it creative or business-related will naturally cause you to focus your internet time on a specific topic of research.

That alone can go a long way towards fighting the instinct to open up the laptop or phone and surf idly; a terrible habit that we've likely all developed.

Now, if only I could put my phone down while I'm eating meals...
> Why are small packages bad?

Small, separately maintained packages are bad in a an ecosystem where a final system can incorporate only one version of any given package because it increases the number of opportunities for version conflicts.

Now, it's true that there are some other concerns which weigh in favor of packages being at the minimum useful size, but those necessarily also weigh in favor of a package management system which allows each package to isolate its upstream dependencies without constraining it's downstream users. And not just allows, but facilitates it so that it is the norm, so that dependency conflicts aren't a thing.
I see other comments that bring up the 'RF pollution' from aircraft travel..all of those airplanes spewing RF, and harmonics all over.
How about normal pollution? All those tons of burned hydro carbon absent from the atmosphere (10K to 40K feet).
Is it possible the non-normal chemical composition of the air is impacting the observed ducting? (de WB0VIX/5)
Lifelong Serial Founder/PM here. The one biggest thing I see missing from most comments (which in general are quite good) is that the role of the PM and the decision framework depends very highly on the stage that your company is in. Are you pre product/market fit? Are you just seeing traction? Are you in hyper growth? This should massively change your decisions.

There are endless frameworks for balancing these choices. For me, they all come down to this:

Value

1. Dollar value; in either revenue unlocked or money saved (and money can be customer support time)

2. Strategic alignment; how is the item aligned with overall vision & goals? If this item is completed, does it make us stronger or dilute our value / competitiveness? This is really where stage of company comes into play.

...vs...

Cost:

1. Time; Estimated time to build/support. This can be a wag from the engineering team.

2. Risk; what is the uncertainty around the time and maintenance estimates?

Using a framework like this allows you to include architecture, technical debt maintenance, etc into your overall planning and decision process. This will help make visible to business stakeholders the true complexity of operating the product and hopefully lead to better PM decisions. Everything is a trade-off.

Remember: one of the most important jobs of a PM is to say NO. You are the process gatekeeper to how the company spends a ton of resources.

Happy to discuss further.
If you’re interested in more about what these blogs contain, I review the links in all these threads at https://kickscondor.com/hrefhunt/.

For example, here’s one from last year’s thread at this time: https://www.kickscondor.com/hrefhunt/6/
Testing with hardware is hard. You can emulate to some degree but that just helps making sure your tests are written correctly. In the end you have to run tests against the real thing. I deal with complex UIs that interact with hardware. If you are smart you can split things up so they are easier to test in isolation but the whole system has a ton of potential interactions that are hard to write test cases for.

The OpenCV example is a pretty easy one. You have clear inputs with clearly defined outputs. The only thing you have to do is to create sample data.
He will use his hunches and risk millions of people's lives. I for one don't appreciate this one bit.
This is exactly true. The pay is this low because there is a glut of cheap cobol developers in the US due to decades of off shoring. There have been 2000+ cobol developers laid off here over the past 5 years alone (medium midwest metro).
Aha! Thanks.

Obviously picking first element as pivot makes for a very poor Quicksort. Though I presume a better approach, say median of first, mid and last elements, would add but an extra line?
It's very frustrating to me that we're even talking about these COBOL programs today. During Y2K there was suddenly a huge demand for COBOL programmers to come out of retirement and young programmers to frantically learn it. The claim I remember at the time was that those systems should have already been rewritten, but the departments were underfunded, and they were finally doing it since it was an emergency. And yet, all they did was a little hacky patch and 20 years later it's still running. So we're 40-60 years on with these pieces of software. Look for whatever hacks they made for Y2K to be biting people in the butt again in 20-40 years, and programming historians to be pulled out of universities to patch again.
Unless they are going to pay me way above my current pay to compensate for dealing with an obsoslete language and the programming practices of its era, no way.

This is a great non-monetary example of one of the biggest issues we are seeing in our time. That is, as a civilization, we have become terrible at investing in future contingencies. In the last few months, we have witnessed how our biases prevented most of us(and businesses) from building up a meaningful savings for stormy weather, and the COBOL situation is hardly different. Banks could have invested in gradually switching from older mainframes to modern ones with software built with any modern language, and they were(or should have been) in one of the best positions to do this. Instead, they said "whatever" or simply were complacent in where technology was headed, and did little or nothing.

As a society in it's current state, we need to seriously look at ourselves in the mirror.
With respect to evolving balls of mud, the only thing that mostly worked for me is to try to find those boundaries where you can apply the [Strangler Pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns...)
> the MITRE ATT&CK framework

This looks incredibly useful, thanks for pointing it out

For anyone else who's curious: https://attack.mitre.org/
I don't agree with you on this. The JS (or NPM) way makes it a pain to audit a project due to thousands of dependencies, but it's far easier to "have everything working".

`npm i && npm start` is as good as it gets in terms of "getting started" friction (with version locking): python is worse, ruby is worse, PHP is worse, Java is worse.

React-Native has more moving pieces indeed, but it's not really JS's (or NPM's) fault: you get all problems of iOS and Android at once. I will definitely agree with you that working on React-Native is a pain, to be able to work with modern tools need to know JS, optionally TS, Obj-C, Swift, Java, Kotlin, Ruby (for Fastlane) and Gradle's custom language. Insane.
Phonetic crossword – all the answers must be written in the IPA [pdf]
The problem is not small packages or huge dependency trees. It's the fact widely used packages have to be installed at all. This is compounded by the package manager which allows packages to have independent copies of their dependencies.

We should have a de facto standard library that gets distributed along with the language's reference implementation. Widely-used packages that have a stable and well-designed interfaces should be distributed by default. If something isn't being used anymore, it can be dropped from the standard library while still being available from the repositories.
It's a white content-editable <p>, for anyone trying to figure it out.
Every separate package adds overhead and another maintainer that you've got to put your trust in. I'd rather have few packages of well trusted maintainers instead of a thousand packages from god knows who.

Personally, I've made it a habit to not add anything that requires trivial one liner garbage packages, which amounts to not installing any dependency that uses anything from Jon Schlinkert (so no Webpack). Unfortunately I'm stuck with gulp right now but with the next major rewrite, I'll also get rid of gulp and its 300 dependencies.
If you use virtual addresses to index your caches, you have to clear them all on every process context switch.

With physical addresses, you just have to clear your TLB cache.
solution: http://rtmccoy.com/crosswords/changing_places_answers.pdf
Utterly brilliant. If you haven't seen it before then do watch the whole series. It may be over 40 years old, but its still as relevant as ever.

The opening piece about the fragility of our modern technostructure was eye-opening when I first saw it and still packs a punch today. And especially right now.

Spooky co-incidence: the initial pieces to camera were made from the World Trade Centre. Then in the sequence on the power cut he talks about Scandinavian Flight Nine-Eleven being in danger of hitting the towers of down-town NY.

Also in Episode 4, look at the size of that military sat-nav! For bonus points, type the coordinates into Google Earth to see where he is sitting.
That's interesting, I understand the need for feature flags, but don't they reduce code readibility?
Covid-19 results in New Jersey desperately needing COBOL coders
Also, nitric oxdide is necessary for erections, and is what all the "boner drugs" increase when used.

https://www.mayoclinic.org/diseases-conditions/erectile-dysf...

Sildenafil (Viagra)
Tadalafil (Adcirca, Cialis)
Vardenafil (Levitra, Staxyn)
Avanafil (Stendra)

Just wait for the spammers to get word of this. The emails should be entertaining: "Huge boner and kill COVID! BUY HERE!!!1!!"
It's way too early to be making these comparisons. Wait until the pandemic is over and then we can analyze the death rates. Otherwise you're just talking about where it spread first, which is not the same as how well each place managed the totality of it.
There are plenty of other minimalist text editors, so I'd say this is a one-day-hack kind of thing.
Show HN: Elevator party – An interactive small talk experience
L-Arginine
New document reveals significant fall from grace for Boeing’s space program
Welp, guess I'm never going to Washington
Why questions are great because they show you think about things beyond just the surface code typist level.

You can go one step further and engage in proper discussion and offer suggestions and things they can try to improve whatever situation they’re in that leads you to ask a Why question. Show that you bring solutions to the table, not just a pair of hands.

And if you fear why is too aggressive, use “how come” instead.

Always try to leave your interviewer feeling “Wow I really want that guy to come solve my problems” and “Fuck that was a good suggestion I wanna try that”
Coronavirus and Cities
Ask HN: Dark Mode
Adding dark mode using CSS variables and media queries is a possibility now. How can we help HN enable native dark mode?

I can write the CSS if that's needed.

Do HN care about IE11?
Not paying your rent because you can’t afford it != joining a rent strike.

The rent strike movement is a political one, and has little to do with wether or not one can afford rent.
And that it is not even the worst I have seen.
I think the worst offenders are development tools like webpack.

I have a small project that I work on from time to time which uses 5 libraries (react, a map library and a chart library), typescript, and react-scripts (which I guess pulls in webpack and all the rest).

This is what happens when I run a npm audit (I havent' touched it for a couple of months)

> found 38934 vulnerabilities (38916 low, 18 moderate) in 906346 scanned packages

> run `npm audit fix` to fix 38620 of them.

> 314 vulnerabilities require manual review. See the full report for details.

While the real numbers are probably lower because there is a lot of duplication inside the node_modules folder, I find this ... astounding.
What physics textbooks say about magnetic attraction is very far from being "trivially" true. It's a wealth of utterly non-obvious information resulting from centuries of scientific research.

Also, "cucumbers" is not an answer to the question you posed.
Don't use things that can change for IDs. Any individual thing that describes a user can change, so just use synthetic IDs.