skysight-inc/HackerNews huggingface dataset:
The core idea of the article is valid, but the wording is off. It's not about frameworks.

There are two types of knowledge you can get in IT. Fundamental knowledge that transfers across domains and trivia.

Problems with trivia:
- Just like the article pointed out, it often gets outdated.
- If the system you work with is well-designed, you don't need to know much trivia about it.
- Fundamental knowledge allows you to derive more knowledge. Trivia is gained through rote learning and doesn't allow you to derive anything.
- Trivia hinders interoperability and innovation.

Unfortunately, most IT people love their trivia. They brag about knowing trivia. They separate in-group from the out-group by trivia and use that as hiring criteria. Finally, they proudly design systems that require you to learn new trivia.

It's a giant waste of society's resources, but it also creates job security and allows some people get much larger salaries that they would otherwise.

As far as I'm concerned, eliminating the need for knowing trivia about their systems is one of the primary responsibilities of a good software engineer, regardless of specifics of what they do.

"Stop designing frameworks" is my advice.

PS:
Design patterns are also trivia. Peter Norvig gad a great set of slides on that. http://www.norvig.com/design-patterns/
I've read The Pragmatic Programmer on a 10 hour flight and I fell asleep 2 or 3 times, because it was freaking boring.

Either you already knew that the things it recommended were good ideas and were doing them, or you haven't yet learned why the things it recommended were good ideas. I know "soft skills" is a euphemism for a bunch of stuff that I'd rather not unpack here, but personally I do think learning good practices around how to write maintainable, testable code are actually, y'know, important and useful, even if they get communicated with icky horrible soft words instead of burly awesome hard math symbols.

This means algorithms and math.

If you say so. But the niche for heroic god-tier 100000000000000000000x rockstar wizard ninja gurus who roll their eyes at tiny puny baby-child beginners while channeling the heartbeat of the universe to derive the Perfect Algorithm™ is... pretty small, and getting smaller ever year. Working programmers don't -- or maybe shouldn't, but oops, that's a "soft skill"! -- actually re-invent all of CS from first principles on a daily basis. And there's really no level of programming you can run to anymore to escape. It's frameworks and libraries and gluing stuff together all the way down, even into the "bare" metal (which isn't so bare anymore, and is a rich programming environment in its own right).

I mean, maybe you work someplace that routinely has to invent entire new fields of theoretical math just to describe the stuff you're building. But I've worked at a household-name place, and known plenty of other people who worked for other household-name places, and in my experience and their anecdotes that kind of stuff is vanishingly rare.

Also, I'd be willing to bet almost anything that you didn't start out as a programmer by reading Turing's "On Computable Numbers" and going from there. You probably started out with an already-built, friendly programming environment in which you could slap things together to see what happened, and only later -- possibly years later -- started to dive into all these "fundamentals" that you now insist everyone learn up-front instead.
> 1 (versions) and 2 (installation) have to do with the ecosystem, not the language.

This argument really summarizes a beautiful and dangerous thing we see in the tech community far too often; you have a strong technical and scientific understanding of the system, but lack product and design thinking.

You're right. Its a problem with the ecosystem, not the language. I'm still not going to use python because of the ecosystem. If the language cares about its users, it needs to care about the Product, which includes the ecosystem. Users interact with the Product, not just the Language.

That's something recent languages like Go, Typescript, Rust, and even old languages like Java, understood quite well. Its not just about the syntax and the compiler; getting users into your language means caring about the IDE, caring about the development experience, the package management, the libraries, basically everything that a developer will touch. That doesn't mean you have to touch all that stuff as the core development team, but it does mean you need a Strategy and a Message.
For those also unfamiliar, a nano Sievert is one billonth a regular Schedule, and a reading of 8500 nSv/h, or 8.5 µSv/h, would take 4860 days of constant 24 hour exposure, or a bit over 13 years, to reach a single Sv of radiation exposure. 8.5 µSv is also equivalent to 85 bananas, or 1/5th the exposure of flying from NY to LA.

Mind your units.
The weird thing to me is that I’m either checking a box and doing nothing or going through some annoying process. There isn’t much middle ground.
People seem to be comfortable sharing twitter with anti-semites like Louis Farrakhan. It doesn't mean everyone on twitter shares Farrakhan's views.
I'd be honestly be concerned about retaliation. The people that got hit with the glitter bomb can probably trace back where they found it, and have already demonstrated a lack of strict attention to the law.

> it's their own car (could be a beater picked up for a few hundred dollars)

At least one of them was a fairly nice looking Lexus.
Huh, they just took all the issues with inheritance and made them more confusing!

There is nothing addressed here that can't be solved with composition. This seems like an odd step for an aspiring functional language to take...
That still doesn’t explain very much. Your answer to “This has been done before.” is ‘SUPER. COOL.’, so what was invented? Could you provide some other things that are on your super cool list or some synonyms?
The parent poster said that you’d spend maybe two weeks in jail over the course of the year. It’s not a balance of $200 vs. 2wks jail, it’s a balance of ($200 per package x many packages per day * 365 days per year) vs. 2wks jail.
Pretty fit for a dead guy.
I'm sick of just knowing what "kind" of data people have about. I (expletive) want to know what people know about me.
I really shouldn't engage with this, but if you are suggesting that we will eventually have a "decentralized" version of Facebook that's built on something like Ethereum's smart contracts then I think you are placing too much weight on the probability that people care about decentralization.
7 Isn't Python actually pass-by-value / pass-pointer-to-object-by-value like Java is? Many confuse pass-pointer-to-object-by-value with pass-by-reference, but they are different things. Pass-by-reference allows to write a procedure that swaps two external values.
Don't Use iPG to Practice for YC Interview
Hey guys,
If you happen to land a YC interview don't use iPG (https://jamescun.github.io/iPG/), instead, have a YC alum or a seasoned founder grill you. We used both methods but practiced with the iPG tool at least 5 times a day before our interview. We were expecting rapid fire questions (Kevin Hale and Michael Seibel interviewed us) and that was the furthest thing from the truth. We weren't successful. When practicing try to go deep and not wide. We're going to re-apply and hopefully this time we will get an interview date again and ace it!
Teach Kids Code
Do you use a VPN OP?

I assumed that was my issue.
Leave it on your enemies porch while they're away on vacation, then any revenge will be had on your enemy. Or your enemy opens the box.
Nah, He meant a 30.5 Billion checkup at the doctor's office ... I wonder who his insurance company is?
That thread is my favorite thread each year. I look forward to it! I always find a few gems I wasn’t aware of and I love the way people share - warms my heart. So thanks for putting this together!
I am not suggesting eye for an eye. My question is regarding: What is legally required to obtain consent to record in this case?
I'd argue that the bias is a natural consequence of two interacting effects, neither of which necessarily represents a "tinted worldview": a skew in quality distribution and a minimum threshold for information value.

It's hard for a product or service to exceed its expected value by more than a fraction or small multiple, while it's easy to cause misery well in excess of a dozen or even a hundred times the expected value. I believe that's more a reflection of it being easier to destroy vs create rather than a reflection of psychology. Combine this distribution with a heuristic to only report deviations from expectation in excess of a minimum threshold and the "average review score" will reliably undershoot the actual quality.

That's only a problem if you want to interpret the average review score as an absolute measure of quality, though, and I don't think anyone really does. Most of us are more interested in communicating and informing our decision processes than in passing moral judgement, and if our goal is to optimize communication then we should expect negative reviews to dominate the discussion because they're inherently capable of more meaningful excursions from the mean.

I agree with your overall point: it would be fantastically useful to be able to contextualize reviews against reviewer psychology. That way I could ignore both shouting from negative-nellys and forced positivity from those who feel compelled to balance the universe :-)
Username confounds me in this context
Direct link: https://azure.microsoft.com/en-us/blog/microsoft-open-source...
IANAL... but banks use dye packs. This seems very close to that.
> You are dealing with people who have no qualms stealing, it's not too crazy to expect other rash and illegal acts from them.

In more then one instance the thief opened the package at their house. So its fair to say he knows where they live too. Also, very clear HD video of their faces and vehicles. And there is no way all the glitter is going to get cleaned up - so more evidence of who they are. And home security cameras with more images of them. Not to say these idiots are smart enough to let things be at this point - but if they do retaliate, there is a very high chance they would be caught.

As for your comments about liability. Yeah, that sounds entirely plausible.
Why did a search engine for movies need the actual movie files, and not just the metadata?

Someone's got to build that metadata. Especially back in 2009, you couldn't just download it from some public database. Databases have to be built.
Seeing your invitation for critique..

I didn't downvote you, but you present complaints without support or putting forward alternatives other than everyone should ditch Python in favor of Perl. 2 of your 3 complaints come across as shallow syntactic bikeshedding presented without support.

It would be interesting to read your take on the engineering problems involved, the design tradeoffs involved, and why you think Perl's decisions are more appropriate than Python's decisions, even for Python's main use cases.

Python rubbed me the wrong way when I first encountered it, then I really loved it for a few years. Now, I feel it's pretty good at what it does, but I find other languages more interesting.

Maybe you have some good reasoning behind your gripes, but you don't provide any evidence that you've thought much about them or put any effort into understanding the design decisions.

For your first complaint, I do agree that the explicit self parameter vs just making it a keyword is hard to justify in retrospect, but is it really raising your blood pressure, causing you to lose sleep, etc? Your use of hyperbole doesn't help your case.

I presume that making all method calls explicit is to keep scoping sane in the case where a subclass defines a method that happens to accidentally conflict with the name of a function called in some superclass's method. An alternative would be to use static name resolution to resolve the ambiguity, but then you'd have to be statically invoking metaclasses to figure out which methods were in scope, or you'd have to get rid of metaclasses and generally get rid of a bunch of the effort Python goes through to be very late-binding and generally dynamic in behavior.

For your second complaint, if you don't want the dict to throw, use the get method instead of the brackets operator.

For your third complaint, I'm not sure exactly what you're complaining about. Clearly not every line literally ends with a colon, and you're again making poor use of hyperbole. Guido has commented in at least one interview that most of the colon's aren't necessary to disambiguate the grammar, but they really do help beginners in particular read the code.

Showing more effort toward educating and/or convincing people would help avoid the downvotes.
Nice map. How about the water or the fish?
Step Certificates: issue, renew and manage certs for internal use of TLS (OSS)
Lol and he touts his safety record like the shit he was directly working on didn’t kill somebody a few months after he left. This whole blog reads like somebody still in denial.
Frameworks can save you a lot of time. Especially drop-in frameworks like Vuejs that have very little learning curve yet they can cut the development time by a huge factor (I'd say if I were to write a small app in Vuejs vs vanilla Js, I'd be saving over 80% effort and lot of headaches though ymmv).

IMO frameworks are not that bad and there is a reason why so many people use it and learn it. Not using it for the reasons listed in the article isn't very good advice.
There’s really two ways to go, if software really is eating the world.

Either we accept that most companies are writing the same software and further agree that this is a stupid waste of resources. If that were to happen then we have too many programmers so everybody has enough.

Or, we bifurcate into tool users and tool makers. The users need to understand ergonomics and glue and appreciate complexity. But the tool writers have to really know this stuff, and algorithms analysis too. This is probably okay, many industries work this way.
The main take-away I got from the article was:

"Invest 80% of your learning time in fundamentals. Leave 20% for frameworks, libraries and tools."

The article's title sounds like it's an all-or-nothing choice, but the actual advice is reasonable and based on experience. A better title might have been, "Learn the fundamentals, not only frameworks".

Frameworks offer benefits: save time and effort, hide complexity, and provide a consistent/canonical way of doing things (in teams, large organizations or across the ecosystem). There can be downsides: they churn, they bloat, sometimes force you to use anti-patterns like work-arounds or "bad" choices (wrong tool for the job) inherent in the framework. One of the biggest risks I see is that using a framework creates a tight dependency, often critical to everything built on top of it.

I don't agree so much with grouping frameworks along with libraries and tools. The latter are modular by nature, and ideally replaceable.
Ask HN: Where did you donate money in 2018?
The year is reaching its end and many people feel its the best time to donate money. If you donated money, which organization received it in 2018?
These Are the Neighborhoods Attracting America’s Richest
A piece of technology that requires me to learn so much about it that I understand intimately what's going on under the hood such that I could re-implement it myself?

That sounds lovely, but honestly when that happens I regard it as a failure. That means its abstraction is so porous that I'm constantly having to think about what it's actually doing.

I think about the frameworks and libs where I know every iota of them... and it's not the good ones. It's the crappy ones where I'm constantly having to debug the sharp edges. "Why the heck does it do this? Ohhhhh, that's why."
I really like this: "(if you don’t have time to trace something back to its source, then you don’t have the right to share it to other people & use up their time)" from the last paragraph.
As a European, I'm surprised that the postal services in the US just leave the packages outside, rather than ringing the doorbell and/or delivering it to a neighbor.

Over here in The Netherlands, pickup points are common (my local groceries store is one), you can choose your delivery time (also in the evening) and they will deliver it to a neighbor when I'm not home.

Why not avoid this whole problem with any of these options?
givewell.org
Doing it casually or not doesn’t matter when your on camera. The cops won’t do anything with that evidence, so how does it matter?
Apple Squid Emoji Fail
I don't know what you're trying to say here. I think Twitter should probably ban Farrakhan. Lots of people have in fact left Twitter because they believe it's too lax about toxic users. But nobody really believes Twitter is an anti-censorship platform; the whole premise of anti-censorship platforms is that Twitter does censor people.

But it's obvious to any user what the difference is between Twitter and a site like Gab. You have to dig to find white supremacists and holocaust denial on Twitter, through a mountain of celebrity gossip and banal conversations. Meanwhile, that stuff is showcased --- is the dominant conversation! --- on the alternative site.

And it's obvious why that's bound to happen: the users that get the most value from supposed non-censoring platforms are exactly the ones that want to broadcast hateful and alienating messages.

Unless you're comfortable talking about recipes or your new book or an upcoming lecture sandwiched between lectures about Jews controlling the media and sending all the black people back to Africa, you're not going to stick around on that platform. Peterson won't be able to do it; it'll destroy his brand.

So again my question is: how is this supposed to work? Maybe it's not really a Patreon competitor but something more like the old Deck blog advertising network, where you'll have to be yea cool to join.
On the one hand, I suspect this type of crime is more the realm of opportunists rather than hard-core criminals who would exact revenge.

On the other, glitter is actually quite polluting, so my preference would be some means of spraying the thief with brightly coloured dye.
Functional Programming provides a great solution to this problem. You learn what a Functor, Applicative Functor, and Monad are, and then the concepts remain useful for the rest of your life.

Below is an amazing blog entry on how to apply functional programming abstractions to build a UI without regard to the underlying implementation underneath (react, vue, dom, etc).
https://medium.com/fuzzy-sharp/building-a-type-safe-embedded...

For those interested, I've begun implementing these ideas in a more developed sense in typescript and purescript in this repo: https://github.com/dwhitney/intro-to-fp/tree/master/demo
In addition to the other points made, when errors get through even the error correction that CDs have, for the same reason FLAC can compress audio by about 2:1 and MP3s can do even better, waveforms can be repaired or even outright made up for significant fractions of second without being noticed by a human. (Half a second would be noticed, but you can forge, say, 1/16th of a second fairly successfully with some simple algorithms. If you get really unlucky and you miss one of the really important voice transients like the letter T versus V or B versus D, it might be noticed, but otherwise it's really easy to fill in a gap like that.)

DVDs do not have that characteristic. While the streams will be recoverable, they will also be very visibly broken if the visible data gets corrupted, and that's much harder to repair. We are much more sensitive to visual corruption in general, and the way the compression works can make even small errors loom large on the screen. (As the compression gets more sophisticated, this gets more true, which is why DVDs generally just have fairly confined block errors, but modern codec errors can cause significant corruption on the screen, followed by the corruption on the screen "moving" like the video was supposed to.)
It's not a delusion, it's the association that kills new startups.

You can rail against suppression of speech all you want, a company whose loudest and most active users are white supremacists either has to lean-in to that culture, remove it from the site entirely, or hide it. The first option is moral bankruptcy, the second option is an uncomfortable practicality on the limits of free speech, and the third option makes your new site look dead from the outside.

You act like this is a simple problem to solve, but it's far from simple, and getting it even slightly wrong means startup death, period.
What is this, exactly?

The "Take Control of your Data" call to action takes me to list of 'how to opt out from company X' which exists in plenty of other places, and I'd have to submit them myself. Nothing that goes into data usage, etc. Then there's the privacy policy as others have pointed out, and the analytics/facebook scripts.

There's no functionality or service provided that I can find. The blog seems to be retweets and noise.

Not sure how this got voted onto on the front page, it doesn't seem to be a legitimate thing.
Yeah, the idea that "shopping around" is something that
people want to do, or is even possible to do, with health coverage is utterly absurd propaganda designed to discredit single payer policy.
If I was poor and did not see a light at the end of the tunnel, I would go to jail for free. Your tax dollars would pay for my lodging, food, exercise and hanging out with my friends. Jail is also a great place to network and improve your knowledge of the system and criminal techniques.
First time I've seen HN-friendly keyword stuffing as an attempted defense against downvotes.

Though I suspect you'll still be downvoted for complaining about downvotes (which is against the guidelines here).
Federal judge strikes down ban on nunchucks as violation of Second Amendment
If with ”sniggering at the time” you refer to Donald Rumsfield’s use of the terms, it was his use of ”unknown known” that was bemusing
List of one-hit wonders in the United States
If a Javascript developer isn't learning frameworks, what are they actually doing?

It seems like being a Javascript developer is learning a new framework every time it's Tuesday.

You know, that and installing packages to handle IsOdd and IsEven....
This is iOS specific but putting my phone in airplane mode + do not disturb (to block pop ups from Signal) then putting on some instrumental music works wonders. I'm a fan of Tycho and Emancipator.
Ask HN: What does success for a technical book look like?
In September I released a small book about programming and security. Like most technical authors, I did it for the experience and professional credential more than the money.

Now I've sold around 300 copies in the first few months, nearly paying off my $2K advance.

I'd like to write more - a lot more - so I'm trying to judge how successful the book is in terms of securing myself more writing opportunities. I've been offered the chance to pitch / write more by the publisher, and the publisher overall seems really happy with my output, but it would be an enormous help to understand what people in the industry / acquisitions editors / etc, use as their criteria for success in technical publishing.