skysight-inc/HackerNews huggingface dataset:
In my experience: don’t worry about duplication. It’s sometimes OK and sometimes a Symptom. Don’t fix the Symptom, fix the main cause:

Classes or functions that do more than one thing. The definition of one thing is one conceptual thing.

For example I’ve seen DTO objects with both wire concerns and Ui concerns. Splitting that out made a lot of code simpler and incidentally deduped some stuff.

So attack poor abstractions, not duplication. The S.O.L.I.D principle is a good start (even for non OO code)

If you are unsure, I’d always err on keeping the code as is, you can always refactor it tomorrow when you understand more. Instead: make sure the unit test coverage is adequate.
Tests frequently have bugs, especially bugs that result in the test passing when it should fail.
The assumption is that takeout would not work anymore once you are suspended. So unless you are proactive and takeout your data every day, you will probably lose some data
I understand your point.
But my "nod" is something that might be common for Scandinavians, as it is something we do while the other part is communicating.

So, as they make their point through a sentence, I nod/concur with the statement they made to show I understand and do not have a question regarding the statement (sometimes I would need clarification to fully grasp their point). After they are done I respond with either counter-argument or continue the conversation.
Yep data is more valuable than oil.
Excel also has a web client that can be downloaded in seconds and has more features than Google Sheets.
Another thing you can do when a function becomes overencumbered is to split the remaining similar logic into smaller functions which are composed into specialized functions.

This has benefit in that when analyzing modules, you can spot differences in procedure at a glance instead of needing to dig through 100 lines of somewhat similar imperative code.
Well, perhaps you wrote the code quicker because your colleague already wrote all the tests, and it was easy for you to verify the behaviour of your complicated-looking but short code was correct.
He won't be able to fall back on his lyft carrer.
You directly see where the null dereference happens. But that's not necessarily where the problem actually is, because a null pointer can flow through a lot of code before it actually gets dereferenced. So "program continues to work for a while" is also a thing with them.

In a language like C, a null pointer can also become an invalid non-null pointer pretty easy with pointer arithmetics.
who knows the second call may have been the right call, this is often how libraries and frameworks start by “extracting it out of our production app”

the bigger sin was not checking with the colleague. :)
How many years was it where bridges were made only out of wood? I feel engineers before us had the foresight to see the possibilities but lacked the tools and understanding.

I fear only when people realized the economy needed to support large mammals crossing a bridge at one time did they really engineer bridges to support that weight. I think the same metaphor could be said for computing.
That works until you have 20 different Big Ol' Switch Statements, each switching on (mostly) the same cases, essentially implementing a set of related behaviors in 20 different places instead of grouping the 20 behaviors under the same umbrella.

Overall, I think there is an equilibrium between the number of cases in the switch and the number of different switches with the mostly the same cases. The fewer cases ypu have and the more times you handle the same cases, the more it will help to group these different behaviors in separate places: each case would correspond to a different class, each switch statement to a different method in each class. The fewer classes and the larger they are, the more I think it helps to apply this transformation.

By the way, this has nothing to do with the discussion above. The alternative to the switch that GP commenter presented isn't polymorphism, it is simply extracting the common lines into a separate function.
Self Publishing a Technical Book in 2020
Salting only protects against rainbow tables, but does next to nothing against brute force attacks because the salt is usually stored adjacent or even as part of the stored password hash.
> Changing one developers _working code_ after they’ve invested a significant amount of time

How much time they invested is irrelevant. There are lots of times where someone is wrestling with something for so long they just want to get it done and don't want to look at it anymore. Many times it's trivial for someone fresh to tidy it up

> If removing repetitive code is a requirement then the team needs to be informed that code will be reviewed for repetition

This focus on "requirements" is only really trotted out when someone doesn't like someone changing their code and is looking for a defense. In reality, coding is super subjective, there are dozens of aesthetic judgement calls everyone has to make. Saying something "wasn't a requirement" basically means "fuck off I don't like you touching my code".

There's no way to codify concrete requirements for handling every possible way code can be improved. If devs are throwing requirements at each other, that's a culture problem, not a spec problem
> the same way all other laws do, passed by the legislature and signed by the governor

In CA, there are also a fair number of propositions that are voted on by the general public. It would be interesting if there were some sort of mechanism through which a pending law could be put on hold until after a popular vote, say, if enough voter signatures were gathered within a certain timeframe.
Or have tests. If your push comes with tests and I reduce the code by half while still passing all of them it means that 1). you didn't actually test everything you've done 2). you didn't write code as well as you should have 3). I'm an idiot and made the code less robust.

1) happens all the time. 2) happens some of the time 3). happens as often as 2.
Exactly the same here. Wow.
> I'm against the idea that people should be attached to "their" code

I agree with this, but it goes both ways. The codebase belongs to the team, not any individual developer.
Making changes for the sole purpose of making the team's code correspond to your personal preferences is the opposite of professional detachment.
I have actually proposed just that in my last sentence: blanket whitelist journalist work, similar to whistleblower protection.

Combined with real punitive fines (for corporations, let's say 10% of gross yearly income before any deductions and for government bodies removal from office and loss of electability for ten years for the person at the top) fot intimidating journalists this should work out pretty well.

Additionally the amount of lawyer fees that can be awarded to the losing side should be capped. In Germany you're free to charge your client whatever you want as a lawyer (there are minimums to prevent dumping though)... but if your client wins, your client will only get a (highly capped) amount of these costs from the losing side and be on the hook for the rest.
>At the point where you're professing sadness for Paris' dead culture in reference to the immigrant population, it's no longer a dogwhistle. It's just blatantly obvious standard-issue racism.

There is nothing racist in saying that importing vast numbers of people from a different culture into another will radically change the culture native to that area. Quite the contrary, it's absolute fantasy to try and pretend it does not.

I understand that the concept may be completely foreign to someone who has grown up in modern America, but it's a rising issue amongst Europeans to the extent that the EU has created a position titled "VP for Protecting Our European Way of Life" in the midst of Europeans getting continually more aggrieved over the cultural changes happening with mass migration and worse - the cultural changes expected of them to facilitate that mass migration.

If we can't get past the hand-wringing and proclamations of "racist!" every time someone infers anything remotely negative about immigration, especially mass migration as Europe has encountered, then I can guarantee you there are very dark times ahead.

There are positives and negatives to migration, to bang the drums happily when discussing the positives and then sticking one's fingers in one's ears, closing one's eyes and lashing out when the negatives are brought up is a very dangerous game to play, and that is on any topic, not constrained to migration.
I have worn my earplugs (still carried from the flight that morning) in a Paris restaurant where the locals were watching the football.

It was a great atmosphere, but I was glad when the waiter asked us to swap tables to the other room — he rearranged all the noisy people into one room, and the quiet ones into the other.
If you don’t support gender transitioning, fine, but don’t pretend that your concern is for the person transitioning as if they don’t understand the implications. Your agenda is painfully clear and has nothing to do with the ethics of prescribing hormones when we don’t fully understand them: “I'm saying hormones and plastic surgery do not make a woman”.

The reality is that we don’t understand any medicine particularly well, but we do our best to treat an endless array of diseases and disorders anyway, because it’s more ethical to attempt to ease pain and discomfort than to ignore suffering.

Also people do regularly get plastic surgery to address aesthetic concerns. Would you advocate that people with cleft lips should simply learn to accept who they are and we should consider it unethical to correct the deformity?
NanoVMs is the company while Nanos is the kernel.

I respect the developers at ScyllaDB (formerly Cloudius Systems) who created OSv quite a lot and find them very talented.

There are some fairly major technical differences on implementation that stem from both a different time period and (time/money) resource constraints, however, yes the end goals are fairly similar.

I'd say it's still a bit early to try and compare the two technically though since we have many architectural projects on our roadmap that are not yet in. I will say from a product/company standpoint we have paid kernel engineers working on this currently and some of our customers are extremely large organizations.

I know this is probably not the answer you were looking for but it's just kinda early to compare.
> Okay, suppose someone backporting a Rust update runs a big batch of tests and finds, say, two dozen packages with regressions.

> Now what?

> Spend two weeks investigating all the test failures? Backporting updates to these packages as well, all while users are patiently waiting for their Firefox to have its zero‐day fixed? Are the tests even correct? Were they failing before and nobody noticed?

Yes, people do exactly that. It's part of running a "rolling" distro, see e.g. the Debian Testing transition tracker at https://release.debian.org/transitions/ - These transitions are running essentially all the time; they're only "put on hold" as a first step in the process of making a new stable release. And even then, newer versions of packages such as rust can still enter stable as part of an "unrelated" security update.
> you can forget to check

Linters can help with this.
Why wouldn't they?

"Shooter" is a word that's acceptable to use in almost any company, even though the verb at it's root part of some abhorrent acts.

"Fuck" is a distasteful word for an act with near-universal approval.
Verint ForeSee Public API Webinar – Customer Experience
It is considered normal to share trivialities online.

You may cynically consider it "building an online presence", but more generously people like to share things... even obvious things... like this comment I'm writing.
There is literally no place where C has no viable alternative.
In scientific lingo, proven is absolute. Accepted is almost-absolute, a certainty that, if shook up, would be a major upset.

Same with the actual meaning of "hypothesis" and "proof".
It's also useful to look at not just the duplication but the code itself. In this case, it was code for geometry which is not like to change all too much.

Often the difference between harmless but ugly looking duplication and duplication that is actually harmful relies on the semantics of the code and not just its appearance.
The only true alternative I see on the horizon is https://servo.org/ from Mozilla, but it's still a work-in-progress.
Interesting with the sideways head bobble. I had to google that one :D Thanks :)

Im also leaning towards the suggestions of "I understand" etc. I think the border between confirmatory and agreement is super thin and somewhat dangerous since you do not have to agree with someone/something just because you understand what they are saying.
> You are not building something new switching from one big corp to another small company that want to become another big company next day.

So what? The point is to have different services upon different companies, even if tomorrow DuckDuckGo becomes a giant (unlikely anyways) the idea is to use it only for search not for everything.

> May be for “millenials” you need to be brave to leave this circle, but I don't getting it.

The article clearly states is for pragmatical reasons, where do you came out with him needing to be "brave" to do it?

>What is so special in using other providers? Is it just... normal?

As special as not helping yet another monopoly that has vast control over most people's lives, yeah maybe thats not so special to you and thats fine but it still a reasonable cause to advocate for.
An American colleague sent his children (7 years old ish) to the British International school on a foreign assignment, as there was no American school in the city.

The teacher sometimes asked the children were to "use their one metre voice".
Funkwhale – Enjoy and share music within a decentralized, open network
The title on this story makes it sound like OpenBSD stopped updating Firefox altogether. That's not the case, it just stopped backporting non-ESR Firefox updates to its -stable branch.
There are two separate concepts here that often gets conflated.

There's null reference in a sense of a special pointer value (usually all bits set to 0) that means "this doesn't point to anything". That's a useful low-level tool that allows for compact representation of many important data structure.

And then there's null reference in a sense of type systems. To be more specific, "null reference" here is really a shortening of "every reference in the type system is implicitly nullable". And that is the billion dollar mistake.

An explicitly nullable reference type that requires explicit check on dereference, or option types, that use null pointers under the hood, are obviously not the problem.
Comparing single threaded speeds is also very valid for tons of contexts. Of course if one algo can't be multithreaded, maybe it will be better to use one that can instead, if that's interesting for a particular application, but it won't be necessarily interesting for all applications. So there is no single ordering about which is faster, in this case. If you sometimes needs to compute hashes on a computer that would have multiple unused cores at that moment, the multithreaded hash will have an advantage. If you are always loaded, you better consider the total amount of work; and maybe likewise if you want to prioritize energy efficiency (although it will not be completely linear)
> At the point where you're professing sadness for Paris' dead culture in reference to the immigrant population, it's no longer a dogwhistle. It's just blatantly obvious standard-issue racism.

If its racist to identify race then you can call me a racist. Sorry, race exists, get over yourself.
from the link:

> Once we have the SHA1 name of a file we can safely request this file from any server and don't need to bother with security.

> For example, if I request a file with SHA1 cf23df2207d99a74fbe169e3eaa035e623b65d94 from a server then I can check that the data I got back was correct by computing its SHA1 checksum.

—-

that’s crazy! i’ve had the same thought myself, and wondered why no one had done something like that... i hope this becomes more and more common (though not using sha-1 ^^)
> What you lose is access to the "latest and greatest", because it takes time for the new stuff to filter in.

Depends on the distro. Archlinux is pretty fast to update packages.
The Case for Bayesian Deep Learning
> That might be true now, but who knows where your current employer will be in 10 years and if they by then even remotely match your current values.

You’re just cutting the cord of falsifiability here. Because none of us can see 10 years into the future, you’ve made it impossible for anyone to disagree with you or even have a reasonable discussion. It’s an intellectually dishonest position to take.
On CRM: This Is What Google Should Consider Before Buying Salesforce
> acme freelance sends me quotes and profiles for people willing to do the work

This is the step that doesn't happen with Uber.
Rain Follows the Plow
But if they hired you at the beginning you wouldn't have been able to save this much money that would actually justify your salary. I think they made the right decision depending on the amount of time they were burning the cash.
New US building codes require plugs for electric cars
I quit using their search due to their sudden lack of ethics in the last few years. As well as my own disgusting experience I had doing business with them (treated me like garbage when invited to demo my tech. All their competitors I met with around same time were professional/respectful; deal or no deal) and then more so other stories detailing they do the same to others. Upon seeing that I was like wow my experience wasn't fringe it's in their DNA now.

I no longer can support a company whose tagline is "Do No Evil," yet that's exactly what they do!
50 years ago construction often required individual skill. My grandfather used to tile kitchens back when they still floated countertops using "mud" (dry-ish concrete mix) which resulted in a solid very level counter top (assuming skilled labor). Nowadays, you use concrete board or similar and hope the cabinets were leveled well (usually off about an inch) for cost. Most things are now some degree of prefab and plug-and-play built by less skilled workers so you can get by paying them less. They often have no experience in building and can't spot details that will cause problems. In some cases the technology makes for an overall better product or reduced waste, but often as not it's just less material resulting in flimsy construction. I'd be surprised if you couldn't get a staircase nowadays that was just a precut aluminum struts with pre-etched holes that you can tap out (or similar). Like an upscaled Ikea part. So that's what contractors use because otherwise they couldn't compete on labor costs with someone who did.

Oddly the overall costs for building a house have not correspondingly decreased for the consumer as banks and builders generally take a larger share. Though to be fair consumers also want larger "McMansions" as well so part of the factor is some of the savings do go into giving "more".
Another similar anti-pattern is acting in a way that implies the computer itself cares about such things. Other than efficiency concerns, the audience for code is other programmers, and those programmers over time. The computer doesn't care about your variable names, how DRY your code is, or even the elegance of your data structures except if the ones you have chosen cause it to run more or less slowly.

Another way to put it: if data is passed from one function to another in a way that would make any programmer wince, but the odds of it ever being re-visited by another programmer are near zero, and it affects nothing else, does it matter? No, unless you think the computer itself winces as well.
One advantage is that it is much easier to create multi-pixel receiver systems. Having two receivers at the focus is like having two telescopes! So for survey science, it is much more economical than building 50 telescopes with a total equivalent area and one receiver each than building one telescope and 50 receivers.

However the main reasons we often don't build big single dishes is that (1) it's very hard to keep the surfaces from deforming from gravity and heat (the GBT for example needs to be accurate to 0.2mm over two acres of surface), and (2) the bigger the telescope gets the bigger the sail with respect to the wind, which makes it hard to point and keep the pointing accurate.
How to Think about Parallel Programming: Not! (2010)
In practice, usually any operation on optionals with such short-circuiting behavior must be explicit. For example, for member access, instead of foo.bar, you get something like foo?.bar - and that ? right there tells you all you need to know.

Same thing with exceptions/error types. With exceptions, propagation is implicit, but with error types, you usually have to use some explicit proceed-or-propagate operator.
There's also no drop-in replacement for the G-docs suit, nor for google-play of course. Firebase has no alternative.

Google got some pretty useful things up there.
https://www.hhs.gov/hipaa/for-professionals/covered-entities...

It doesn't appear to be as broad as you (and I) imagined. Google might qualify as a "Health Care Clearinghouse" in this case, but it's far from clear.
Not if we stop posting paywalled content. There's plenty of great content that is not restricted.
Has anyone else had experience with getting their Google account suspended? I literally use it for everything in my life, and without it I would probably lose access to a lot. I would change away from Google in a heartbeat but it just seems like too much effort if I can avoid getting my account suspended in the first place.

If anyone has gotten their account suspended, what was it for and how can I avoid it?
Monitoring tool for checking the uptime and performance of your service
Just consider all pointers null until proven otherwise, shouldn't be that hard to do something like this in static analysis. Even if a reference is non-null, you still have to wonder if it's valid.
FFS – Frustration Free Setup
Ofcouse the story itself doesn't show any bias. But the summation of only seeing police cases of reported injustice is going to create the illusion that there might be something rotten in the police force. The truth is that policework is similar to surgery, 6% might not survive low risk surgeries. The best surgeon will have a lower mortality rate, the worst will hae a significantly higher rate. But we dont shame and blame minor misconduct, misstepts or errors because there is an understanding that surgery is done to the best of our ability, even for the rookie surgeon, and it CAN go wrong against all odds. Yet this simple analysis doesn't get to be applied to these police stories because we're unable to seperate the individual story in which we know with 100% certainty mistakes were made by a policeofficer from the overarching story of policeofficers making the wrong decision 6% of the time.