skysight-inc/HackerNews huggingface dataset:
Screenshots of major websites on Sept 11 2001, from Jeff Lawson
> Couple things: personal attacks are not cool, and "please respond to the strongest plausible interpretation of what someone says, not a weaker one that's easier to criticize. Assume good faith."

Couple things: asking somebody if they know anything about a subject is not a personal attack, and that GP doesn't know anything about Erlang and completely miunderstands the snippet is the strongest plausible interpretation of their comments which assumes good faith.

The alternative interpretations which do not are that they're actively lying, or that they can't be trusted with any device more complicated than a rock or a small stick.
We did look and learn; a lot of crates.io was informed by several of us having experience with CPAN, RubyGems, and npm. Both the good and the bad.

And also by the experience of going through GitHub hosting a RubyGems server and all the fallout that happened there.
If you are a small player but with a global audience you should not include heavy JS/CSS libs (really, nobody should).

That seems like a foolish thing to say, why should a small player with a global audience arbitrarily restrict themselves to not using "heavy" JavaScript or CSS?
That quote regarding Erlang is attributed to Robert Virding.
Don't get me wrong this is bad, but Java projects are littered with checks for logically but not technically unreachable code.

This is one of those things that should have never been done with exceptions, I'm looking at you Python, but with Maybe. Then you can either handle the None case or prove to the compiler that it's impossible.
Totally makes sense. No reason Rust shouldn't take over the financial space. I know F# and other functional langs made some in-roads, but haven't heard anything about how far Rust has gotten yet.
I like to live by:

"Why own it if you are afraid to take it apart?"

Tempered a bit by:

"Don't take it apart if you can't put it back together."
The U.S. May Soon Scan New Immigrants’ Faces, Irises, Voices, and DNA
We really need a colorful term for the practice of ‘splaining to people how a frustrating part of your code is not only not a bug but you are either doing it (to them) on purpose, or pretending to have done so in order to save face.

Bugsplaining?
Unless Debian has systematic discrimination for race or gender or whatever, I don't think there is a need to focus on "diversity" for its developers, NBA is a good example there and nobody complained. Improving certain area is fine, put it a priority for problems non-exist will do more harm than good. You do it because you like it or need it, not because of where you are from or who you are.

And yes $900K should be used to improve the situation, there might be some great developers actually need the money, or the money can get more young developer to start in debian.
Shhh not if you keep telling people about it!
There still hasn't been a study proving dvorak's superiority over qwerty since then so any claims to its efficiency should be met with serious skepticism.
> Online banking or smartphone public transit passes aren’t just luxuries, they are extreme luxuries.

True, you could just shoplift your food instead of paying for it with money earned by going to a job.

Not sure what your definition of "luxury" let alone "extreme luxury" is, but it clearly is a unique one.
The student paper is one of many examples of people inveighing against the passive while 1) providing incorrect examples, and usually 2) using it. It's amusing, but it's not the whole point:

"The passive is of course perfectly respectable, and there is no reason to try to avoid it. (To say that it shouldn't be over-used, or it shouldn't be used where it is inappropriate, doesn't distinguish it from any other construction or expression.)"

See the tremendous list of Language Log links at the bottom which deal with the issue from a host of angles. I recommend reading some of them - Geoff Pullum, in particular, is usually delightful.

"You should use active voice whenever possible" is bad advice - both active and passive are (nearly?) always possible but often one is clearer - and that can very much be the passive.

"You should use active except when passive is better" is arguably correct but fails to actually provide guidance about when the passive actually is better - which isn't rare.

That the passive is often overused may be useful to note, if that's actually the case.
Particularly in the case of Java, wouldn't a lot of people be tempted to try languages that can use Java libraries?

Like Scala or Kotlin for example?
CoinTracker (YC W18) Is Hiring a Senior Software Engineer (Remote)
It sounds to me like you need to have a real discussion with your manager - this is what they're there for. Maybe their perception isn't as bleak. Maybe this is a case of imposter syndrome. Or maybe you really do need some improvements and they can help you with a development plan.

Not having deep knowledge on particular subjects, not knowing OOP, being a generalist - these are not signs of being "terrible". Everyone has blind spots. Some people work on font rendering or audio codecs their whole careers and don't know how to build a decent web app to save their lives. That's ok.
> You still are doing that, just in a less clear way and a less debuggable way.

That’s debatable to a degree. If I put @Inject on a field it’s pretty clear what’s going on just from a quick glance of the source code. By contrast, I don’t know injection of some field happened _unless_ I take a gander at the XML config. And the debuggability of both approaches is the same, the injection manager is doing the same magic under the covers, only the configuration is different.
Man, it'll be hard to be a grocery store, or any other intermediary, under that regime.

Such a rule would slaughter credit-card processors, too. Anyone who makes a market or facilitates a transaction would have a problem.

To expand a bit -- an antidote to HFT front-running is the limit order. If you can buy the thing you want at a price you believe is acceptable, HFT front-runners simply get paid for providing you liquidity. Don't like the price? Set your limit lower.
So true, and this is how musical ages and styles change!

We could talk about Baroque vs Classical and that switch over into what the standards were. Or how hip-hop turned from a musical expression of life (and certainly not because of living up to some musical standard) into something that is right at the forefront of music today!

I feel like a corollary would be youtube vs movie studios. Sure, one is more expensive than the others, has standards, etc. But sometimes those things don't mean much, sometimes it's just about the story, the music, the authenticity of the feelings.
Why not anal probes too?
Agree, Go went a similar route as Java and I think that's good as well.

The new tools.deps in Clojure actually is moving to disallow collapsed names for similar reason and will force iglu/iglu.

Here's a rationale from them:

> The groupId exists to disambiguate library names so our ecosystem is not just a race to grab unqualified names. The naming convention in Maven for groupId is to follow Java’s package naming rules and start with a reversed domain name or a trademark, something you control. Maven itself does not enforce this but the Maven Central repository does all new projects.

> In cases where you have a lib with no domain name or trademark, you can use a third party source of identity (like github) in combination with an id you control on that site, so your lib id would be github-yourname/yourlib. Using a dashed name is preferred over a dotted name as that could imply a library owned by github.
I fucking hate SQLException. It's a giant pain in the ass to dissect it to figure out if it's an error because the database exploded, or because I made a syntax error, or because something real failed like a uniqueness or foreign key violation.
I’m picturing a bulk Pringles tube at the grocery store, soaring up to the ceiling. Then you place your reusable glass Pringles tube under it, pull a lever, and a fresh stack of Pringles drops into your container. I like it!
There's something to the idea of rehabilitating "obscurity", or at least recognizing that "cost" is part of threat models, and you can raise costs for particular attack vectors by degrees instead of "to infinity".

But SSH is a terrible example, because the cost to the defender of simply not having SSH vulnerabilities is the same, or even less, than the cost of obfuscating it with nonstandard ports, "port knocking", or fail2ban, which are all silly ideas.

Just use SSH keys, and disable passwords.

I think maybe it comes down to this: dialing attacker costs up incrementally can make sense if it's the most cost-effective way for a fully-informed defender to improve security. But incremental cost-increasing countermeasures aren't a substitute for sound engineering; you don't get to count "having to learn stuff" as a valid defender cost.
A lot of the releases I listen to are only sold as short runs of vinyl due to unlicensed samples.
I haven't done a cantenna, but I did a sardine can antenna: http://www.iw5edi.com/ham-radio/1687/sardine-can-antenna

My observation is that these instructions always use one or more parts that are difficult to obtain. Either the "pigtail" is impossible to obtain, or the USB wifi dongle is no longer made or something. I also think that the antenna length seems to be much more important, and harder to measure, than these DIY instructions ever make out.

A broader observation: clearly people want increased range Wifi, but there's not any consumer-grade antennas. Why?
Is this a consequence of FCC regs that deliberately make consumer mods harder?

An example of FCC regs making consumer mods much harder:
https://en.wikipedia.org/wiki/TNC_connector

See the "Reverse-polarity TNC" section for hints that the FCC deliberately makes monkeying with antennas hard.
Security by obscurity has a bad reputation because it should never be used in place of a proper secure solution whenever possible.

Most security experts will argue in adding layers of defence where the proper solution is not possible.

There are other considerations for obfuscation as well. A risks assessment might consider the skill of the attacker and the resources required (eg: computational power) in order to break in.
Introduction to Multi-Tenant Architecture
To me this seems like a bit of a strawman argument.

The claim was never that using obscurity is bad and should be avoided. As I first heard it, "Security through obscurity is not security" is saying that if you are relying on obscurity to keep your stuff secure then you aren't doing enough.

I think this is still true and the conclusion of the article agrees

Security by obscurity is not enough by itself. You should always enforce the best practices.
I think what the GP wanted to say was along the lines of "look at _better_ approaches", not just "look at approaches".
I had this happen as recently as probably 2007. I was in my 20s at the time, and it also happened in an online game (WoW). Albeit, my experience certainly wasn't deliberate.

For whatever reason, I've almost always preferred playing female characters, but it quickly became an eye-opener to me how creepy other dudes are online. One of the more abusive of these sorts (funny at the time until I realized it was a behavior he probably continued to actual woman) was when I'd gone in to help some RL friends who were stuck in a dungeon, and they had this random chap in the group. As soon as I joined up, he started hitting on me. I ignored it for a while until it started getting really strange, and I told him rather flatly:

"I'm a dude, dude."

He went ballistic and called me all manner of names, inferring that I must clearly be homosexual because I was playing a woman (not sure how that works). After launching into his insults, he quickly left the group. I think he tried harassing me via private messages, but I blocked him by that point.

It occurred to me sometime later that the fact he realized he was hitting on another guy must have challenged his sexuality and made him incredibly uncomfortable doubtless leading to his anger and lashing out.

I noticed this behavior dropped off dramatically in the years following, either because more dudes (like me) were playing female characters and the creepy sorts realized it was a minefield to take the risk against random other players who may or may not troll them. Or perhaps harassment of the sort started to be taken seriously by the moderation team as the number of women playing increased.

I have reasons to doubt the latter and suspect it's a combination of the former. I also suspect most of the harassment was probably concentrated in guilds by that point where I wasn't as likely to see it firsthand as I played largely with people I personally knew. Leastwise, the weird random encounters dropped off precipitously within about a year.
Show HN: ProductHacker – The best of Product Hunt and Hacker News in your inbox
For JS, does it not make sense to use random variable names in production? Obviously you don't want to while developing, but it seems like an efficient method to help obfuscate.
My experience with https://github.com/wiringbits/cazadescuentos is totally different, I have had lots of headaches dealing with Chrome, while pushing updates on Firefox has been a smooth process.

On Firefox side of things, I prefer to upload my source code than to get blocked commonly with ambiguous or not clear reasons.

Honestly, if you think about it, all browser extension could be open sourced, it can certainly improve trust, and, they run on the client side anyway.

Just look on the hn posts this year, there has been lots of people complaining about the Chrome review process taking more than 3 weeks, and rejections without clear reasons.
RIP to a real one. Every now and then I think about how amazing what.cd was, a real digital Library of Alexandria for every kind of music. :(
This is a great idea. Recently my aunt visited me in NYC and Macy's offered to store her luggage for her. That sounded pretty old school to me, but it made a lot of sense, it gets people in the store at little cost to them.
Vinyl-Record Sales Top Compact Discs for First Time in 34 Years
Why did everyone leave digg? It wasn’t because they fucked up the news aggregation, it’s because they fucked up the community - the ambitious and passionate users couldn’t get their posts to the front page any more, it was reserved for people who were paying digg.

Reddit is awful at news aggregation, the front page is a hot mess of memes and clickbait. You have to weed all that crap out to find the people you actually want to listen to.
It's inconvenient because null could be considered a case

switch(s) {
case null: return false;
case "y": return true;
default: return false;
}

The broader issue is that Java handles null inconveniently.

1) Every object can be null, switch requires the argument to be non-null, and the type system doesn't warn you when NPE are possible. A type system which handles nullability could fail to compile if 's' is nullable. Kotlin does this, and it let's you opt-in to the NPE with some convenient syntax:

switch(s!!)

2) It's inconvenient to handle null as a value. To properly handle the null case without throwing, you need to do one the following:

if(s == null) { ... }
else switch(s) { ... }

switch(s == null ? "some-default" : s)

The first way can be made more convenient if you change switch to work on nullable values. The second way is inconvenient, so people generally skip it. If you want switch to only work on non-null values, there're more convenient syntaxes to handle null, such as the 'elvis operator':

switch(s ?: "some-default")
It's way too little data to get anything useful out of unless it was intentionally seeded. I am a bit sad it didn't decode as "Yea we know this is just hex but it looks fancy" since that would've been a pretty good get from whoever prepared images for the document.

Also yea - it's probably not going to text decode trivially since there are random null bits in the middle. My guess is that it's some random data from an image off the camera - but it could also be a snippet of environmental information.
> You guys are acting like the existence of the App Store has jacked up the app prices by 200%,

Yes, I really enjoy ads every seven and a half seconds for games I am not even allowed to buy to remove ads.
I was thinking maybe this goes back to people in security looking at things in a different way than others? Like ITSec folks spend all day everyday reading about every possible way a bad actor can make bad things happen. They look at something like changing the port SSH listens on and think about all the ways the best & brightest bad actors will get around that in no time at all. Everything ends up looking pretty useless at some point, because you end up seeing that it's possible to get around nearly everything.

Another example might be folks in the security community saying that SMS 2fa is no good because all it takes is someone taking over your phone account to get around. Sure, that happens, but not all that often, and usually happens to people with something that's worth time & focus by talented bad actors.

"Security by obscurity is not enough by itself. You should always enforce the best practices. However, if you can reduce the risk with zero cost, you should do that. Obscurity is a good layer of security."

I rather like the conclusion.
> This is a strike against any namespace system that allows namespace ownership to unexpectedly change. Discontinuous identity has a couple of issues.

Hard agree but this has nothing to do with namespaces. This is equally applicable to names in a flat registry. I don't see the point of bringing this up in this article.

> there are also real benefits. [...] discourages forks

What. How? Why?

I guess there's possibly some valid argument for disliking forks (though it's certainly not put forward in this article), but discouraging them via package registry structure is... delusional.

Forks are a reality of software and they neither happen as a result of registry structures, nor can the be discouraged by their designs. They happen for entirely external, human reasons, and a well-designed registry structure (i.e. a non-flat one) will be set up to be resilient to forking.
You're completely missing the point. Many phones don't have a white balance setting in their default photo apps. They do so much post-processing to correct for various sensor issues it doesn't occur to them to give the user appropriate controls to correct for cases when the correction algorithm fails.
Sure, I'm not arguing that we shouldn't recycle things when it makes economic sense. I just don't think it should be a goal in of itself. Or at least we should not be spending truly scare resources (mostly carbon capacity of the atmosphere) to conserve resources that aren't.
I feel you, for those reasons I ended up creating a [template](https://github.com/AlexITC/chrome-scalajs-template) for building browser extensions with scalajs, if typed languages are your way, I suggest you to give a try.
Oh wow ... that guy ... is also doing this?

That certainly puts his participation in the namespacing debates into a new light.
And more that those of course. So its not all ego; its a different outlook. We're not all born teachers.
> the team that owns crates.io almost never weighs in on the discussion

There's two big things here:

1. "The discussion" has often happened outside of the contexts that the teams are supposed to evaluate; that is, RFCs are the way in which policies are changed, and the vast majority of the discussions here haven't been on RFCs, but on forum threads. Team members cannot be everywhere, and comments outside of the decision making process are kinda inherently non-normative.

2. Team members used to comment more in these threads but they've gone back and forth and around and around for years, and people are frustrated by it, so they've just stopped commenting in these threads. See #1. When it's optional, and it isn't pleasant, it shouldn't be a surprise that people don't participate.

(I am not on the relevant team anymore, to be clear.)
Use Serverless Functions to Send an SMS with React, Vercel, and Twilio
One major thing would probably be OTP, which would be very difficult to implement as-is on top of Go. A recent comment thread [1] over at Lobste.rs explored this in more depth.

Saša Jurić made an absolutely wonderful hands-on presentation [2] of what (oftentimes rather unique) value propositions Erlang/Elixir/BEAM bring to the table. It's a very tightly-packed presentation, but I strongly recommend having a look if you're curious.

1. https://lobste.rs/s/ntati1/even_go_concurrency_is_still_not_...

2. https://www.youtube.com/watch?v=JvBT4XBdoUE
The war on Southern California smog is a $14B problem (2019)
>none of it's really a good starting place without initial musical knowledge, which does not come from fooling with recording gear or DAWs.

For modern genres, music knowledge can be built by listening and DJing. It's also the classic path to become a producer.

If you learn how to mix, you and can then transport this knowledge to production. Not only do you know what to produce as a beginner (fill holes in your own mixes), but you also know how it should sound because knowing to mix implies that you know how to mix in key, also important when you transpose samples or patch synths.

Serato/Serato Studio or Ableton combine both, so you could learn how to make DJ mixes in those DAWs before you move on into beat production.
This came up in the stackoverflow podcast where Reddit founders were the guest. They mentioned that they stored plain text passwords initially which is fundamentally a bad design but at the same time it helps to block spam. If a user starts to create a lot of accounts programmatically they generally use the same password thus much easier to filter. Security via Obscurity, if you can do it, can be very very effective.
Apple lays out its messy vision for how xCloud and Stadia
There are no racing simulators or even games that have reasonable AI opponents that don't cheat.

I, mid-tier sim racer, have no chance against good AI in hotlapping on track in some popular sims, but all of them either yield or cause a crash that would take them to the stewards (or grave) when racing for position on the same piece of track.

Pro racing team have excellent sims these days but they don't have AI opponents.
I don't remember where I got this, but this has been my working philosophy for the past couple years:

> Make it work, then make it better.
So the "developer" who created an "educational" ransomware project that was abused for half a decade by criminal groups now has a controversial and low-level view of security practices and is broadcasting it to the world. I'm shocked, I tell you. Shocked!
This appears to be specifically not blockchain related.

https://documentation.tardigrade.io/concepts/decentralizatio...
This article is poorly titled; it's about the lack of namespaces on crates.io. Rust does have namespaces. Cargo is capable of supporting registries that use namespaces. Using Rust doesn't even require one to use Cargo, and using Cargo doesn't require one to use crates.io.

(For the record, I do think that namespaces on crates.io would be a marginal improvement, but the benefits are often overstated and it would add organizational costs that the crates.io maintainers can't currently bear. The amount of ire over this topic is disproportionate to its impact.)
I agree. Obscurity is a weak strategy. If you can make obscurity not necessary you will gain far better results.