skysight-inc/HackerNews huggingface dataset:
I have never been involved in running an academic journal. But I have been involved in a group which published a periodical. And from my experience I can tell you that you're dead wrong. Without all that work, there is no journal, no publication, no readership, and limited interest and exposure of people to the content.
Thanks for sharing this link.

I've wanted to get off Google Authenticator for awhile now, mostly because of the backup-restore problem, also a general trend of limiting my involvement with the company.
It will be industry-wide game over when they grab Max Martin and Lukasz Gottwald
https://nypost.com/2015/10/04/your-favorite-song-on-the-radi...

I think the goal is to launch the next ASCAP/BMI/SESAC and basically charge astronomical rates for songs people want to hear. Songwriters will love it and artists will have no choice.

This is pretty much a confirmation: "Along with owning a bigger chunk of the publishing market, he wants to continue altering it. He’s considering launching a songwriter’s union, something akin to the Screenwriters Guild, that would give songwriters more leverage to extract better deals from the industry’s power brokers."

It's a public company. I might want to buy some stock in it when I can.
I hope he succeeds and makes "every pop song" so expensive to license that pop music just dies a natural death, yielding way to musicians who can actually play instruments and singers who can actually sing. The current situation is kind of absurd.
> Raw

> TypeScript

What?
Despite all of its limitations, C still has no viable alternatives in many areas.

And personally I now really appreciate the persistence of C in contrast to all the changes and new features in other languages.
Like on the open source side things, it's already possible to run a RISC-V desktop. Problem is no cheap hardware outside some expensive dev boards.

https://abopen.com/news/building-a-risc-v-pc/

Also that thing does not have up-gradable RAM, but you do have PCI-E.
>For me, I flunked out of math my entire life until I learned coding and was able to find the answers to "what is this used for?" so I could put it into context.

When all I used math for was wetlab biology work I found it tedious and annoying. Teaching myself how to code (for data analysis) made me go from disliking maths to loving it. It is easy to see how powerful and beautiful math is now.
> /they: we've merged our patch

This happened to me, but with a different project.. laughed off the mailing list for a dumb patch only to be included in a near term update. I seriously walked away from large open source projects for almost 6 years because of this attitude.
Would it help to point out that he didn’t? :-)
> Languages with null still have value types that cannot be null.

Not all languages.

> C++ doesn't define this, but the OS does (and even has help from the CPU).

That's not how it works anymore, because C / C++ front-ends interacting with the optimizers are yielding too "optimized" results. See the classic https://t.co/mGmNEQidBT
Embark is a new AAA studio made up of ex-EA DICE folks who are heavily using Rust.
I don't understand the point of arguments about constructible functions on unconstructable reals. I.e. reals with infinite digits and no finite symbolic representation.

For anything actually computable (in finite time), on computable (in finite time) values, you will always get discrete (not continuous) functions on discrete (not continuous) values.
What is this implying? That instead of adding a property/method to a class you should instead create a child class that inherits from the original with the new properties? Sounds like a great way to have a very complicated class hierarchy IMO
I think cynicism became paranoia here.
Finally, a moral DVCS.
Null termination is still easily much worse. At least the general case of null dereferences today (less so earlier) is a page fault.
Why not increase the rounds then? What makes the current security margins acceptable but not smaller margins?
If it is enough with access to the phone number, no password needed, then it is no longer 2FA.
That's a valid point, but it might be the case that it's not actually banned.
> Then you need to start passing options and configuration into your helper method... and before long your helper method is extremely difficult to reason about

In which case, you should split the helper function ( extract sub-part common to all cases, and report the differences where the helper function is called).

I think I would most of the time go with de-duplicating as early as possible, as long as the helper function only has few parameters and can be described in plain english rather easily.

To me the cost of having to refactor the helper function later in the process is less than dealing with duplicated code.

Duplicated code causes many issues. You mentioned introducing bugs, but it also makes the code harder to read. Every person who reads the code has to make the de-duplication effort mentally (check that the duplicated parts are indeed duplicated, figure out what they do, and on what parameters they differ...).
Man kills himself after Police falsely said he critically injured woman in crash
At least some agencies seem to be using the potential of creatives to imagine the future.

Imagineering empire: how Hollywood and the US national security state ‘operationalizes narrative’
https://journals.sagepub.com/doi/abs/10.1177/016344371989054...
>1. Is there a limit at which you believe mass migration into France would be undesirable?

Too much mass immigration to anywhere would be undesirable, but for economic and population density reasons. I am skeptical of the idea of the idea that culture is fixed and immutable.

> what would a legitimate movement to argue for limiting mass migration look like

It would exist in a time where mass immigration is causing the problems I mentioned above.
> Even if the intentions are benign now, there's no reason to trust they'll be so later, based on Google's track record and the typical tech mindset.

I have never heard of Google doing outright illegal things. They make very liberal interpretations of the law in their own favor, but patient data protection is very clear and well understood so there isn't much room to play there.
Data science becomes software engineering, making data scientists irrelevant
Sci-fi depictions of everything bothers me. Everything just looks like Tron. Why? Because sci-fi authors are obsessed with shallow aesthetics and design - the "futuristic" look, functionality and objectivity take a back seat. The sad thing is that people like Elon Musk embrace the sci-fi look and that has influenced the new dragon capsule design, the spacesuit design, just because it looks "cool". How about ignoring how something appears, and focusing on functionality, maintainability, operability, serviceability, legibility, etc. Let's replace all buttons and knobs with touchscreens everywhere in a space cockpit because it fits Elon's taste of aesthetics inspired by sci-fi movies. Ugh... this stuff bothers me.
Drivers? Cannot imagine it being a big problem people having really offensive names though, after all you are actually meeting the driver irl and expect them to.. well, drive you.
How to Make Asynchronous Communication Work for Your Team
Switched to Insomnia and never look back.
New VPN brand looking for software engineers for macOS X/iOS and Android
Hello all,

A new VPN brand is looking for some talented individuals to come on board and help with development of applications for MAC OSX, iOS, and Android.

If you have prior experience working with OPENVPN/IKEV2 for MAC, OSX, and iOS , get in touch with us via email at UltraPlusNetworks@gmail.com .

Keep in mind the following tech stack :

MAC OSX : Swift(Native) NOT SwiftUI
iOS : SWIFT(NATIVE)
Android : FLUTTER + Android Native
That's part of it, sure.

It's not meaningless, either. If you have a hundred venues for publication - what should you choose to follow? What should a library subscribe to? What do you recommend to students? etc.
>If they are accessible, then yes, and I don’t see why that would be controversial.

The simple answer is that it completely ignores how the world works. Things don't decide to be world class. They are labeled world class after they have existed and were compared with other things that are not world class. If you decide to remove the non world class things from the ranking (because they were not worth doing) you will realize that the number of non world class things has increased.
Cities move to ban dollar stores, blaming them for residents’ poor diets
Clean code and Agile is excellent and is important to use in enterprise applications. The author needs to educate himself
Exactly that. Just because you want new behavior doesn't mean all the other consumers of that class also want it. The old behavior should still exist, and have a name. I'm not sure whether the idea was ever fully developed into patterns for replacing deep hierarchies with simplified classes that factor out some inheritance from otherwise-unused base classes.
Having worked around payments, I can guarantee you that card networks do check the Card Holder name. Better yet, they can match against first name, last name and middle name to adjust the risk rating of individual transactions.

Albeit, this is rarely used to block payments, because if they stopped payments when customers didn't put their middle name the exact way it's written on their card, nobody would be able to pay online.
My rule is: if I find myself sorting things into two buckets, one of which I’ve given a name that obviously means “good” and the other “bad,” that’s a sign I’m deciding emotionally rather than rationally. It’s time to take a step back and think about the distinctions between the things in the buckets harder.

Sorting code into “clean” and “dirty” buckets is a good example of this. Both bucket names are completely subjective, with “clean” obviously meaning good and “dirty” bad. As the article indicates, dig in a little deeper and it’s not hard to find objective ways the “dirty” code would actually be preferable.
Khodynka Tragedy
I think this is a great idea! Does anyone from Egypt have an opinion of how far along this is? I ask because I thought "Cool, let's check that out on Google maps." and got this :https://www.google.com/maps/place/Serapium+Forest/@30.486290... Which shows a fairly aspirational project rather than a forest.
Go error handling is a good example of this. So far all the attempts to reduce the repetitive `if err != nil { ... }` through some abstraction failed. Look at https://github.com/golang/go/issues/32825
https://www.google.com.au/amp/s/www.nytimes.com/2020/01/09/b...

Sorry for the amp reference.

At least another paper using 2018 as the source year for that same quote.

How the hell this single quote can, ‘without context’ lack enough punch to convey anything meaningful is just wrong. Your attempt at being even-handed here seems totally misguided. If I met you on the street I would immediately assume you’re massively long Boeing. What’s the point? There are no redeeming features from the whole MAX story - every month another piece of disasterous news comes out about the practices of this company and the culture that allowed this to happen
Show HN: I used SwiftUI to build the 43125th productivity app
Premature optimization. Duplicated code is only evil when there's a bug you only fix in one place and forget about the duplicates; in almost every other case, it's easier to reason about and is more resilient in the face of local changes.

Abstraction is often like compression, and compressed data is easier to corrupt. Change the implementation of an abstraction, and you put all consumers of it at risk. It's not an absolute good.
(nope! wrong! deleted)
> I hear the argument but taxi drivers were always required to show their real name, so the same should apply to Lyft drivers.

You can definitely argue that they should show their real name, but it is not a good argument that because taxi requires it, lyft should as well.
... which is another silly approach. So a pair of researchers who always work together on projects supposedly never publish :-(
A compact disc is, for practical purposes, indestructible under normal use (compared to vinyl and tape, which degrade in playback) Rip it lossless and use good backup discipline, even more so.

It's never going to say "our business model requires you pay 20% more to keep listening to me", or "we're going to stop working on your favourite playback device because we changed the DRM and expect you to buy a new one."

No service-based model can match those claims.
For the life of me I cannot get “may” to stop autocorrecting to “May”
I also think it's fine to change the code someone wrote. Just because someone wrote it, doesn't mean it's the right way to do it. I often find myself rewriting the code, it's the natural process of code evolution. It just feels that it should be more readable, efficient etc.

Although, if the change is essential or it requires more pair of eyes, I'll just make a PR(MR) and let the people review it.
> being too complicated to package (thanks to cbindgen and rust dependencies)

Can anyone explain what is behind? Is it symptomatic for any programs with those dependency? Especially curious about rust because it seems to be hyped very much lately (I have almost zero rust experience and even less bias about it, just being curious)
ENOUGH OF THIS FKING PROPAGANDA
> > Firstly, I didn’t talk to the person who wrote it. I rewrote the code and checked it in without their input.

> Do you really need to talk to different 10 people to maintain to make a change?

No, you don't talk to all of the 10 contributors. But if you want to still work as a team you should talk to a few. Depending on the size of the change.

Some or even all of the previous contributors may no longer be at the company or are inaccessible. But a super quick discussion with 1-3 other team members should float if this is a good idea or not.

Obviously, if you practise pair programming, most smaller rewrites just need a consensus within the pair, and a more extensive change may be a good idea to get the approval of another pair, especially if some other team members were the original contributors.

There is no need to be precious about any existing code. Nor any need to be a bull-in-china-shop either.
Well, helping people cope and find acceptance could be a form of treatment. I am a little scared by the number of my friends who have gone on the medical transgender journey.
Both Cogmind and Caves of Qud have optional tiles that look like little more than ASCII.

Door in the Woods is ASCII only and has sold ~5,000 copies in about a month. In fact this game has inspired me to try to work on a pure ASCII roguelike for my next commercial project.
Oy, me too, and though I love Twilio they are an offender here! What is the point of this pattern? Something to do with SSO validation or something?
So basically:

- Firefox is hard to package so they won't package it (on stable).

- OpenBSD-current users are not affected as firefox has already been committed.

- Firefox-ESR is still maintained.

> (thanks to cbindgen and rust dependencies) on the stable branch (as this would require testing all rust consumers)

Can someone explain what they mean with this? What have other non firefox rust consumers to do with firefox being packaged?

The best guess I have is that to package firefox they need to package cbindgen and rust. And if they package cbindgen and rust officially all packages using it would now need to be tested as now (potentially) all their dependencies have been packaged?? But this seems strange TBH.

EDIT: So I guess they still will package Firefox-ESR on stable? Which will have (or maybe already has) all that dependencies, too? So it's just about having to do that packaging less often?
On macOS WebGL in all browsers goes through OpenGL, same as on Linux and Android. On Windows, WebGL generally calls into ANGLE-on-D3D, though both Firefox and Chrome support using "native GL" experimentally as well.
I’m actually paid to say that too ;) . In fact, SIM swapping isn’t the only weakness of SMS, take a look into the SS7 network and how that allows for a rogue operator to redirect SMS messages too.

At Twilio, we have APIs for two factor authentication and we recommend implementing via push notification to the Authy app with “approve” and “deny” buttons. This is more secure and a better experience than SMS. The API also allows for regular app based 2FA, with a TOTP code, which is more secure than SMS. But it also allows you to fallback to SMS, which is still more secure than no 2FA.

You do have to consider the threat model for your own application when considering these sort of security measures. If the value of an account takeover is high then a targeted attack can, and will, break SMS 2FA. Which is why the Twilio 2FA API allows you to turn off SMS 2FA if you choose.

Ultimately I’d prefer SMS over nothing when it comes to 2FA, but I also encourage developers to use more secure options that can also have a better experience.
> tune it so it’s slow enough without impacting overall usability (e.g. takes 50ms on your server)

I want to insist that this is a very important part. If you are 99.9% of applications or websites out there, the only time you need to run that hash is at registration, login and password change. All of these case will be fine if it's a bit slow. Don't lowball it.

Also informationally I would like to add that as part of their "meant to be slow" job, algorithm like bcrypt are built in a way that makes it extremely hard if not impossible to run on cheap massively parallelized hardware (eg: CUDA on GPU).
Were we ever "too critical" of the banks? ISTM we just gave them a bunch of money so they could afford to foreclose on everyone in an orderly manner, and then forgot about the whole thing. They're all still "too big to fail", which is more a statement about political corruption than about the economy. I wouldn't be disappointed if FB would have to actually fix their problems in order to escape criticism...
And a rule for Java programmers as well: nobody is going to "extend" your program. If your interface has only one implementation, you do not need the interface at that time, and possibly ever. Nor do you need DI or whatever other masturbation "best practices" Java gurus prescribe. When it comes down to it, Java is a simple, pleasant language. So people invent all sorts of indirection to appear smart. Don't. Just do it simply and readably, with as little indirection and abstraction as possible.
Someone mentioned their surprised at the negativity in this essay. I agree, Paul’s frustration is coming through which is new to me as a long time reader of his. It got me thinking of the recent article [0] the other day about someone analyzing Facebook’s latest PR, with Sandberg, Boz, and Zuckerberg seemingly speaking out a little more “off the cuff” as usual, as if they’ve been letting their frustration get the best of them and speaking publicly about ongoing events when it’d be “better” to say nothing at all. Perhaps this is one of those cases, but seeing as how Paul likes writing about what can’t/shouldn’t be said, maybe I’m not so surprised. And actually I liked this essay anyway :)

But it reminded me that Paul usually thanks people who review his essay drafts at the end.

This one was no exception, but I noticed a couple new names:

Peter Thiel, and Christine Ford.

From the Kavanaugh drama[1]? It looks like yes.

[0]: https://themargins.substack.com/p/facebooks-pr-feels-broken

[1]: https://en.m.wikipedia.org/wiki/Christine_Blasey_Ford
The ILR (Interoperable Learning Record) Is Your New Permanent Record
A bit of a submission statement: I've been thinking about this in relation to the political fallout from the Australian bushfires. A lot of people are blaming the current prime minister for the fires that have devestated Australia to an extent we have never seen before. I don't think the prime minister is to blame, but much like the last Tsar of Russia he has played a truly terrible PR campaign which has allowed people to pin the blame on him.
This should rightfully be on the front-page of HN. I've gone through something almost the same as Dan Abramov here, and I feel it's difficult to impossible to explain this and you have to experience it yourself.

The tricky bit is where to draw the line, which I've learned only after pouring thousands of lines of code and I understand is a bit different for everybody. The rule of three[1] was a very useful rule of thumb in the beginning, but there are many secondary variables that I unconsciously use to decide when to remove repetition. e.g.:

- Single file tends to be split less often, since refactoring it is easier. Example: the single file routing in React being repetitive is okay, but if there's multiple files with routers and custom logic I'd consider a helper a lot stronger.

- Conceptually straightforward APIs tend to be split more often, since it's easy to package and reason about, as well as design. Examples: cookies, warnings, kv stores, etc.

- Early stage projects tend to be split less often, since few things are not yet clear and being able to put everything in your head is a lot more important.

It's also one of the lessons that you should learn going to senior. To the extreme, someone insisting in removing this kind of duplication for the sake of it is often a sign of a junior dev (as in, because it's wrong and not trying to understand the codebase/tradeoffs first).

[1] https://blog.codinghorror.com/rule-of-three/
That’s a dead butterfly.

https://emilydamstra.com/news/please-enough-dead-butterflies...
Is this a graph theory joke?
In the article they mention that:

> You definitely want to consider using these attributes if you are building a login form with the username and password on different pages.
I'm not sure what the official rule is for NYC's taxis when it comes to the name display; fwiw you can see the official list of medallion license numbers and associated names here:

https://data.cityofnewyork.us/Transportation/Medallion-Drive...

In any case, rules are different for different jurisdictions and entities. If NYC TLC did have that requirement, then it's possible that real name display is mandatory for Lyft drivers operating in NYC, given that TLC has some oversight over services like Lyft. However, TLC also has some say over livery cabs. It's been awhile since I've been in a livery cab, but I think they do operate under different requirements in terms of what's required for display.
For quick changes, you can simply submit your changes in a pull request and assign them as reviewers.

For non-quick changes (that are worth the cost), you can have a discussion about it and evaluate pros and cons.
It is to do with SSO. I will pass off to my Twilio colleague Kelley to answer this with a post she wrote last year: https://www.twilio.com/blog/why-username-and-password-on-two...

The nice thing about using autocomplete with username and current-password is that it can help your password manager auto fill these fields across pages if they are implemented like this.
So is maintaining the greenness of a fragmented repo. The only difference is when you find out about the breakages.
Sewage water tends to be high in salt. Especially in a desert where there is high evaporation and low rainfall, irrigating with this type of water increases soil salinity, eventually to the point where it is toxic to native plants and most crop plants. They will get greenery and good growth for a while, and then as salt accumulates over the years, the plants will start dying and they will have poisoned the soil to the point where almost nothing will grow on it anymore.

Great PR, but in the long term, it’s a lousy idea. We have many decades of knowledge on how salination plays out in desert agriculture.
Show HN: Algoviz, Interactive a* Pathfinding Visualization