skysight-inc/HackerNews huggingface dataset:
I worked on the proxy and dns software almost every ISP in the world uses today to transfer http and tls traffic. If a bug was put into code it could take months where subtle parts of the internet would be failing. This wasn't an option, so we had strict testing. I think for every line of code we had 2 to 3 lines of equivalent test code. From this experience I've found:

1) I found a natural way to write pseudo TDD I prefer. When I'm mocking up some code in a project, I write interface code to run what I'm writing. I run the code from time to time to make sure it's working. If I'm not doing that, how do I know my code it working? You get a sort of dopamine high when running the code and seeing everything come together.

What I do is I take that interface code I wrote while creating the code and instead of deleting it, I create a test function (or multiple) and I copy paste it there. If I'm in a hurry I'll come back and write the assert_eq or equivalent later.

Writing a test is that quick. You're already doing 95% of it. Just copy paste it into a function. I know it's not always that simple, but often times it is. When approaching testing this way there is no reason not to write tests.

2) Systems tests catch far more than integration and unit tests, so if you're serious about testing, these should be considered. Systems tests go by many different names, so by this I mean a testing echosystem where the system is spun up and a mock client and mock servers are ran. This simulates a real world client connecting to the software and tests the real world results they would get.

The reason system tests catch so much more than unit tests is in a large system not everyone knows every functionality and how it should work. It's easy to create a regression where a new feature is added but it changes the behavior of this old previously unknown feature. This often results in going back to the drawing board as it's a business issue more than just a software issue. These kind of bugs can get pretty nasty in the enterprise space if unchecked so it's a good idea to catch them.

Furthermore, systems tests catch nearly 100% of what unit tests and integration tests catch as well. This is because if there is a bug in a unit caught, it will propagate out to the client affecting behavior. If it is caught in a unit test and not a systems test, then there might be a hole in systems tests where it's not testing every scenario, or you might have dead/unused code in the code base or something similar.

Systems tests I've found are better at catching race conditions as well.

Systems tests act as a great source of documentation, because they document how every interface in the program is intended to act. You get a quick high level view and can learn the ecosystem quickly from it, where unit tests are down in the weeds.

And finally, you don't need to write anywhere as many systems tests as you do integration and unit tests. You can test a lot more with a lot less work.
The mocks have the same fixtures, plus a bunch of plumbing you have to sort out with every major and some minor version number upgrades.

You pay a bigger tax on the mocks down the road.
If it truly was about reaching a density point where cars no longer make sense we'd have built rail. Why didn't we?

Transportation is fundamentally about time and money trade-offs. Supply goes up and cost comes down or vise versa. If you want cost low you gotta have a lot of supply. It doesn't matter whether the wheels are steel or rubber you just need to have the supply. For an economy to flourish people need to be able to not be trapped going to a job or shopping at a particular store because the cost of getting there is workable but that is exactly the reality that transit scarcity creates.

If it was just about the cars they wouldn't have spent the 60s and 70s killing mass transit projects while also killing highways. Infrastructure development in the US ground to a halt because in the 60s the upper middle class managed to get far away from the poors for the first time in history and they wanted to keep it that way by keeping the cost of living outside the inner city from getting too low.
I don't think that you are correct. Well... maybe they do know it and are opting for an alternative approach, because guilt-tripping seems like a fairly common tactic, especially in the aforementioned activists.
> Use non-IDFA match methods such as adopting Facebook Login or using Advanced Matching to share hashed customer contact information

nice
Zoho has recently launched TransMail (https://www.zoho.com/transmail/) - an exclusive service for sending transactional emails via SMTP and API. By isolating transactional emails from marketing emails, TransMail ensures great email deliverability and inbox placement. TransMail is used by 45+ Zoho applications to send transactional emails. It has a user-friendly interface with email performance monitoring and tracking tools. You can even do away with monthly flat prices with TransMail’s pay as you go plan (https://www.zoho.com/transmail/pricing.html), where you buy email credits as and when you use them up. With TransMail, sender reputation and quality of shared IPs are monitored so you won't be forced to pay extra for a dedicated IP. For queries, inbox us: support(at)transmail.net - TransMail (Zoho)
TrackerControl is also a great app (available on F-Droid[1]; probably also on the Play Store but I wouldn't know) that works without root. It blocks a blacklist of known tracker domains and you can turn them on/off per-app.

For example, does your HackerNews app need to talk to Google? Probably not, so that gets blocked by default. Does your Newpipe/YouTube app? Yes, so you should unblock that from talking to Google. The Spotify app also tries to talk to like 9 different tracking domains, but only one category is actually required to fully use the app. Screenshot: https://dro.pm/n.png (Current version doesn't yet allow toggling per-domain in an attempt to make it easier/more manageable; but iirc allowing that is a planned change.)

The app is under active development and the dev seems to listen to feature requests, so if you have any... :). One downside is that it doesn't work alongside other VPN apps because it pretends to be a VPN. If anyone has a good idea how to solve that, the dev asked for ideas if I remember correctly.

I already blacklisted advertising domains in /etc/hosts and disabled things like broadcast listeners so certain apps don't receive the OnBoot/OnAppInstalled/etc. events to limit what they notice and can do, but with TC I feel like my privacy on Android got a substantial boost. Spotify was the last app I use with Facebook integration and I was wondering what to do about it, but I think that is not an issue anymore now.

[1] https://f-droid.org/en/packages/net.kollnig.missioncontrol.f...
Not possible with an RTL SDR dongle. Not only are they not able to handle enough bandwidth (Wifi needs a minimum of 20MHz bandwidth), they can't transmit either. There's some other SDRs like the HackRF One that might be able to do it, but you're looking at needing two of them (one for RX one for TX) unless they can switch modes fast enough (not sure on that).
I'm responding to the Europeans who want to wrap 9/11 (and further, Islamic terrorism) into a tidy "America's problem" package when it clearly isn't
With a corporation, you have three choices on how to be taxed.

One, you can pay yourself a salary up to any amount, even potentially making a loss for the corporation (as long as someone will give you the money to stay solvent). That salary is an expense for the company, so you won't pay corporate tax on that amount. You'll then have to pay personal income tax, as well as payroll tax and probably some unemployment insurance and other fees on that.

Two, you can distribute money to yourself as dividends. Dividends are cash-neutral to the corporation, so they won't deduct from the company's tax liability. Usually they come out of profits, so indeed they are post-tax money. Whomever receives the dividends will pay personal income tax on them, but at a lower rate than most people's tax on wage income (often much lower).

Third, the corporation can hold all of the profits internally, which will increase the value of the company, and thus the shares held by the owners. The shareowners can eventually sell those shares for a profit, which will be taxed as long-term cap gains if held more than a year.

In brief, yes, there is double taxation, in the sense that income is taxed more than once, but it's not taxed at the full rate used for wages both times, and it's possible to defer that second tax bill indefinitely.
How to Build a Compromise-Resilient CI/CD
CI/CD is critical to any DevOps operation today, but when attackers compromise it, they get to distribute malicious software to millions of unsuspecting users. We present how Datadog used TUF and in-toto to develop, to the best of our knowledge, the industry’s first end-to-end verified pipeline that automatically builds integrations for the Datadog agent. That is, even if this pipeline is compromised, users should not be able to install malware. We will show a demonstration of our pipeline in production being used to protect users of the Datadog agent, and describe how you can use TUF + in-toto to secure your own pipeline.
There is a great talk by Gary Bernhardt exploring this exact view. It shows how types and and tests actually do not solve the same problems and are not interchangeable.

https://www.destroyallsoftware.com/talks/ideology
I had to enable webgl for it to not error
I consider TDD as a tool rather than a methodology. Its utility is in exploration, when the problem at hand does not have a precedent or an already well-fitting solution.

Writing tests first serves more like a guidance in fleshing out the approach. At the conclusion, seeing the 'emerged' approach, I always get an itchy feeling that it could be done smoother, now that I know it's doing what I need.

Sure, no one is going to rewrite it, so it goes out as done. The net result is perhaps more domain knowledge, and the tests flesh out the expectations of the behavior.

That's why writing meaningful tests (even by the name) make TDD worthwhile.

But all in all TDD a kinda prototyping tool first. Ideally, someone has to analyze the bulk of the tests to better formulate the product and its resulting 'spec' such that this prototype could be further maintained, hopefully morphing into a better one at some future time.
> The issue here is that the manufacturers committed fraud - falsifying and/or misrepresenting clinical data

This is my point - the claims were BS. A number of doctors should have been raising a number of red flags, because their knowledge contradicted those claims, as did patient evidence right in front of their very eyes.

I'm obviously not saying they should ignore or distrust all clinical data, but if they see such massive discrepancies then they should be speaking up.
Ah, yeah. I am a little surprised to be honest.
I mostly agree with you in that OCaml has a lot of problems no one is willing to admit exist. The language isn't very elegant and the type system is primitive compared to Haskell or Scala.

I would use Haskell, but I don't believe in tracking effects with a type system and also lazy by default causes a lot of problems. Of course I guess I could use unsafePerformIO everywhere, but that seems wrong.

I've said this before and I'll say it again, modular implicits would be a game changer for OCaml.
Sue Apple for putting privacy first and informing users of clear opt-out choice right below the opt-in?
I have no sympathy for a company who is so dependent on the invasive use of personal data to survive.
Someone have the TLDR?
"But if you want to put $5-$20K into a friend's business, or a business you know well, the SEC makes it hard unless you're already a millionaire."

What do you mean? Individuals are still allowed to sign contracts. So write up a specific contract.
For the love of God will someone think of the people that don't have fiber internet ?

The carelessness of most web devs is infuriating. Don't you care that a not insignificant portion of potential users / customers will just close your website after waiting a few seconds as nothing happens.

To the author that thinks he's making the world a better place with lines of code (written on his GitHub), then walk the walk and actually make it a better place for everybody.

Thank you.

The irony that tomorrow a technician is coming to install fiber internet to my home is not lost on me.
How do you tell before the crisis whether your bank is going to care about you?
I have a perfect real-world example. About four years ago some of my code broke in certain cases. I came up with a fix that relied on a case-sensitive regex to check for those cases. I think I made it case-sensitive because I wanted to make sure it didn't trigger accidentally on something added in the future. And these case names had never changed, right?

Yep, now that I've spelled it out, what happened is obvious. Three years later, I got ordered to change one letter in these case names from lower case to upper case. Of course I didn't remember that I'd used a case-sensitive test against the names three years before. And bam, the bug was back, and as there was no test for it, I shipped code with the bug.

The good news is the bug was obvious as soon as the customers tried to compile my code, so it didn't cause any harm but embarrassment on my part. Even so, it took me a while to track down what was going on. Imagine my shock when I got into the code and found the fix I thought I needed to make was already there... but itself needed to be fixed!
I don't assume. You assume stuff about me. :)

The GUI is heterogeneous world. Linux doesn't have tools AFAIK work mentioning because it didn't need them due to CLI. Tools like xdotool are very limited.

Windows had much better tools, such as AutoIt, AHK etc. This was because they all were created prior to PowerShell when there was no other option that encompasses all apps. And PowerShell doesn't deal with GUI too, although you could force it.

However, big part of those scripts depend on current theme, window sizing, even positions. To create good script is not easy.
Can't you just leave California?
I was going through some old bookmarks and I came across this. It's a collection of online interpreters for an impressive set of programming languages. The website says that there are "260 practical and 420 recreational programming languages, for a total of 681 languages."

There are some odd omissions: ALGOL-68 is included, but ALGOL is missing. Pascal and Oberon are there, but none of the Modulas.

Some of the more "interesting" (to me, at least) programming language names include "Bitwise Fuckery, Hodor, Lean Mean Bean Machine, Pyramid Scheme, and Bitwise Cyclic Tag But Way Worse".
The United States is neoliberal with a couple social programs tacked on top. The interests of capital nearly always win. Individuals at the top are nearly always shielded from liability using various levels of companies in between them and the "consumer" and plausible deniability. The typical worst-case scenario is that the company has to pay a large fee that is still smaller than the profits they made through their monstrous actions.

These are well-known forces that have acted this way for 150 years. Unfortunately, these systemic problems are not taught in school. Quite the opposite, they are treated more as minor aberrations that are fixed with a touch of social democratic intervention or regulation. And even that is considered an extremist position, extending to all kinds of subjects relevant to this community regarding how tech companies should be structured, labor organized, compensation structured (including healthcare), or even just having more coherent and explicit control over your personal data.
I really don't understand what you mean by 'culture' and 'attitude'; please explain.
The article ignores one of the biggest drivers of tech concentration, network effects. This is where 'tech exceptionalism' really stems from.

Facebook got big, not just from the failures of competitors or from acquiring them, but because the platform became more useful as more people joined. Network effects took over once Facebook hit a critical mass of users.

This happens with most social platforms, they either wither and slowly die or they hit a critical mass and grow towards monopolies. There is a reason everyone in a society speaks the same language. There is a reason why we only have a few operating systems. There is a reason everyone gravitated towards a few social platforms.

Enforcing antitrust laws is only a temporary fix. Unless everyone moves onto free and open source platforms where network effects can't hand control over to a central authority, this story will just repeat itself again and again with a new boogeyman each time.

This trend was identified 25 years ago. Before the internet took over business and before Facebook and Google were founded. https://hbr.org/1996/07/increasing-returns-and-the-new-world...
Given the attitude on HN about iOS14, I don’t think most here grasp the implication of gutting ad attribution. All publishers (news sites, indie games, etc) are going to see huge drops in CPM. It could easily be a business ending shift.

Sure removing IDFA will help protect user privacy, but let’s not kid ourselves that there will not be collateral damage. Being a third party publisher will be that much harder and walled gardens (FB, Google, Instagram) will be further cemented as the only viable business model.
Did you predict other stuff too?
In other words, you had one physical machine per platform, and at least one developer manually running each build on each platform. Or perhaps one developer per each if you've got an even bigger budget.

I'm just imagining a quasi-Luddite hacker collective that eschews automation and does their own builds directly on the physical hardware to keep themselves "in touch with the hardware." That actually sounds pretty fun and social. Plus I wonder what the effect would be on catching regressions/issues before release compared to modern CI.
My problem with this is now it shifts the goal post on what's considered bad. Chinese companies collecting data is bad, US companies collecting data is better so we don't focus on it as much. When in fact in general massive data collection is a problem and should be dealt with. This is providing a smoke screen.
Most of your objections essentially agree with parent comment's coda:

> The reason most houses are 2500 square feet nowadays is because you have to maintain a space for all the things you want to do inside your house. Whereas if you share space with your community for those things that many people do then you don't have to maintain a separate space for it.

If you go to an office and keep your instrument in a locker someplace with practice rooms and your kids spend a lot of time elsewhere (outside, neighbors' houses, etc) then it probably is?

But yeah, for my wife and I (who only have one kid, but may want more) it was still the same thought process as you. We've been living in 1200 square feet with an 8 month old and we make it work but we're both working / studying / networking from the living room and going a little batty in the process, not to mention that our kitchen is tiny and probably not ventilated well enough given that the stove and oven are gas.

So we went for 2500 rather than enter the market and incur closing costs again if we want another kid or both wind up permanently remote post-COVID.
So the objections seem to be that 1. we don't fully understand immunity, 2. the incidental privacy concerns of handing over your phone, and 3. the unequal access to smart phones.

How about just fucking no? Can that be a reason?
Having seen both Brasilia and Islamabad, two contemporary master planned cities, I prefer the latter. Islamabad is just chaotic enough and weird enough, and every sector is unique... G9 is not like F7 and so on.
Yeah, that targeting bit is fine to argue and I tried to infer that with my comment as well.

I just have an issue with hyperboles like "sold individual user's behavioral profile to Cambridge Analytica" being thrown around in articles related to tech when in HN of all places, you can argue without resorting to that.
https://github.com/philipl/pifs
I don't care.

It's my phone, not the developers, not the advertisers, mine.

If you want a device which is subsidized by and encourages advertising and tracking, you have Android or Amazon's devices.
60,000 USD, per the article
For extended stays, physiology demands of breathing compressed gasses get complicated. At that depth, the effects are minimized.
Just because you only know his last name, but not Fabien’s actual research work, background and experience doesn’t preclude that he is highly qualified to run and make use of this project. Regardless of his last name.

to you he is just “this Fabien guy” because you are uninformed of his qualifications. But blame the journalist, or blame the article for not providing that context, or blame Fabien for his last name, or maybe do a little googling before discounting the person and blame yourself
Only if they made this accessible to everyone. You need a thousand dollar phone which is useless in 3 years
Another interesting thought exercise would be "can you accomplish X with as few layers/infrastructure/historical context/complexity as possible?"

Knowing what you need to accomplish, can you design a system from the ground up that sheds some of the traditionally expected layers and idioms and see what you can come up with.
Yes. Apple is using their monopoly position to harm their business of selling private data of consumers.
Yeah I always check source control (blame/annotate), even if I wrote the code myself, just to be sure I'm not missing some context.

Automated tests is pretty great, but a lot of the stuff we do is difficult to test, mostly due to a lot of legacy code that's not well confined. As we work on a piece of code we try to clean that part up, but it takes time.
Perhaps it will lead to public transport infrastructure being built out. Well, we can dream.
Google Chrome Tab Grouping Now Available; Also Allows Collapsing
Precisely. Those choices (made for entertainment purposes) infiltrate into the general masses through insane popularity of movies --> into the designer's personal taste through exposure since childhood ---> then those designers get employed at various medical, industrial, military, etc. fields and they try to put aesthetics/taste before everything else ---> decision makers in these companies also love it because it appeals to their childhood influence and taste too ---> sub-optimal UI goes into production which influences more designers to follow the trend. We love shiny things.

This strawman is pretty tall and perhaps I am just getting old and grumpy :).
It's funny but it really needs elements of randomness. Make the "mv instead of cp" thing only happen 1 out of 10 times and do something similar for the other levels.
But isn't it also the SECs job to punish those who commit fraud against investors?

In my mind it is like the NYPD making it illegal to walk down the street at night unless you are 6'2" or above, or have trained in martial arts. After all, there are a lot of people out there who would want to take advantage of a weaker, easier target. And it also just happens to make the NYPDs job easier.
I’m using the synology sync to back up my Amazon photos to my NAS (and then back that up to Backblaze)... sounds like it won’t be possible any more?
As a user, I want all my UI's to be just as elegant, purpose-driven and performant as whatever best of breed example you can think of (perhaps to the point where, like the controls of a cockpit, they feel like a natural extension of my body). Imagine if all Palm or Apple had strived for was "good enough".
So far is the evidence pointing towards more or less than two days?
I think it means "train ride between the 2 furthest possible points", so using train only.