skysight-inc/HackerNews huggingface dataset:
If devs see their jobs as "plumbing" then that is a problem with their current culture & environment.

Most devs should be focused on delivering business/mission value. This means custom code, unique ip, algos, GUIs, etc.

However, the current state of devops has thrown all sorts of engineering challenges at devs that lose sight of the actual value that should be continuously delivered. It becomes plumbing when we get caught up in redundant tasks such as dependency management, tests, logging, containers, runtimes, integrations, cloud provider specifics for scaling/ha/sre, and connecting them all to create "the platform" that is supposed to enable true continuous delivery of value. We end up more focused on this internal platform development even though the tooling is pretty advanced. We still have to configure/orchestrate/manage that advanced tooling, and this, in turn, creates the plumping effect. We greatly underestimate the work involved with all of these things.

It is not plumbing when we are focused solely on the continuous delivery of value. We remain lean and agile, constantly testing a hypothesis and developing our "uniqueness".
> Python is considered a weakly-typed or dynamically-typed programming language.

This isn't right. Weak/strong typing is on a different axis than static/dynamic typing.

Python is strongly typed. There's no implicit conversion among types (which is one marker of weak-typedness). For proof, consider:

>>> 1 + '3'
[...]
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Strongly typed means that the types are protective, in a way. You put a value in a box labeled X and that's it — you can only treat it as an X from now on.

In a weakly-typed language, if your function expects an X and you give it a Y, well, it'll do its best to make due.

Many people think that because Python is dynamically typed (i.e. you can pass anything anywhere without compile-time restrictions), that it must also be weakly typed. This is simply not the case. If I write a function which expects an integer and I give it a string, I'm going to have a bad time despite the fact that the code "compiles" and only fails at runtime.

---

Edit: I've read further, and the author actually uses their lack of knowledge on this subject to portray the Python community as being willfully misleading in their promotion of the language:

> Python markets itself as a dynamically-typed programming language, similar to Perl, Ruby, or JavaScript. The word “dynamically typed” has a positive connotation, more so than “weakly typed.” Conversely, the word “strongly typed” sounds more positive than saying “statically typed.” Diction matters, because proponents of different camps will select a word-choice that reflects their bias of one programming language over another. Python is both weakly-typed and dynamically typed, which contrasts itself to languages like Java, Scala, C/C++, and Go which are strongly-, statically-typed.

C is statically typed, but it is also weakly typed. You can treat any value as any type if you so wish, either by explicitly casting or by removing checks for implicit casts during compilation.

I'm going to finish reading this article, but... I don't think I respect this author very much, based on what I've seen so far.

---

Edit 2: While the author's points would be valid by themselves (GIL, build toolchain, dynamic typing), the over-abundance of negative rhetoric shows that the author was merely interested in writing a smear article of Python, essentially. I think it's a pretty weak article overall, and would have been aided by a more fair comparison with notes about why some of these design decisions were made (or at least a less-slanted writing style).
Spooky Hits
I've had to send dozens of resumes in 2 years but I guess the resume is ded because SV says so yep
That xkcd is the perfect analogy. I hope that archeologists diligently "debunking earlier works" to more accurately place the quarries will lead to a clue about webs.
Teachers of Functional Programming: Stop Driving Me Crazy with Math Problems
I find they tend to look somewhat like what you'd expect to see from a file that's the combination of RC scripts for an OS and configuration files for all applications inside it...
same for buildings though... You don't go to a brutalist building to experience the building. The building has the "content" you came for inside. The building houses the content. The webpage isn't the content, it also houses the content.
To me, the core points seem like table stakes knowledge that one should have before jumping into development with ANY language, not just Python. Every language is a tool that is good at some things and not good at others. Cue the standard if all you have is a hammer, every problem looks like a nail.

A few core things:

The GIL problem is frustrating. I generally just try to avoid writing threaded code and instead execute calls asynchronously or run parallel instances and work with Celery or something similar. For web applications, this tends to work well enough for me personally but this is definitely a valid issue.

Python2 vs Python3 is sort of a done deal at this point, in my opinion. I was a big holdout on moving to 3 for a while but, for the past couple of years, I haven't had more than 1 or 2 cases where I had serious issues. I don't have to deal with legacy codebases though.

On a larger note, I would say that this all points to the fact that it is easy to do things the "wrong way" in Python. The accessibility of the language is great, but it is not without its issues if you go in expecting it to be a fenced-in playground with batteries included (to mix metaphors).
Call it what you want, it's all annoying to the person that received it.
I enjoyed skipping the part of the article that explains how CVS worked, because I lived it. :)

CVS at the time felt like an amazing upgrade to RCS, just like Git feels like an amazing upgrade to CVS.

I wonder though, have we reached the end? If there anything beyond Git? When I used RCS, I would always lament "it would be nice if two of us could work on a file at the same time". When I was using CVS, I'd lament, "It would be nice if two of us could work on a group of files at the same time and merge our changes".

But using Git, my only lament is, "I wish this were easier for new developers" and "it would be great if there were a standard workflow". Problem one has been somewhat solved by GitHub/GitLab, and problem two has been solved by some pretty standard git-flow tools. Neither one really demands a new paradigm in VCS though.
If you know C, I think you should just go ahead and dive into Rust.
Four members of Thai soccer team rescued after two weeks in flooded cave
Inside the targeted ad t-shirt business
Do children tend to bully entities they perceive as threats?
How Truffles Got Attention in a Land with No Mammals to Smell Them
Indeed. You can also define several `imports` blocks, and the contents of each block will be concatenated during expansion. So your literate source can have the imports located near where they're used, but in the tangled code they'll be up top where most people expect them to be.
All clickbait is self-aware. People aren’t not doing it by accident.
An open source software suite for managing your software development projects
> Python is viewed as a ubiquitous programming language; however, its design limits its potential as a reliable and high performance systems language. Unfortunately, not every developer is aware of its limitations.

Hammer is viewed as a ubiquitous [sic] tool; however, its design limits its potential as a reliable and high performance drill. Unfortunately, not every carpenter is aware of its limitations.
Forgive my ignorance, but what is a brutalist web application?

Edit: I see - To me, brutalist means as close to the basic raw HTML/ JavaScript as possible.
It's also in the Wikipedia page about python that it is not a "weakly typed" language. It's literally in the resume box in the corner : "Typing discipline : Duck, dynamic, strong".

Edit: I was going to mention the author's confusion, but OP did it in their edit.

Edit 2: The author is "Staff Software Engineer at Tesla" ? And he doesn't know C pointers ?
I love Python, and use it often. It's huge in many industries due to the ease in which people from various backgrounds can learn it. However, I agree whole heartedly with the article. Python does not scale, performs poorly and is unreliable at run time.

I think this is true for many second generation languages, not just Python. Perl, Ruby and JavaScript are really no different. None of these languages were designed to scale, be cloud oriented and perform close to C. Thus, many developers complain of 'hitting the wall' and try other languages because their tools were not intended nor designed to do these things.

I also think Go (and languages like it) which were designed to scale, use the cloud, be safe and fast (performance close to C) are the solution and the future. Here's a quote from Ian Lance Taylor, "Go was deliberately built from the start to support large scale programs implemented by hundreds or thousands of different programmers. Those kinds of programs are written at Google, and Go was designed to be used to write programs at Google."

More from Ian on this topic here - https://www.quora.com/Will-the-Golang-code-become-unmaintain...
Typical Apple jerk move.

1. Apple didn't provide Vulkan support.

2. Developers of MoltenVK found "public" Metal API to be inadequate, and used something that Apple considers not public to implement Vulkan translation.

3. Apple found an excuse to ban usage of MoltenVK under pretense that their non public APIs shouldn't be used.

Surely, Apple could:

1. Provide Vulkan to begin with.

2. Provide public APIs in Metal that are adequate to implement Vulkan.

But doing that would reduce Apple's lock-in, so they are resorting to jerk moves. Apple being Apple.
I just wish the echo had an ethernet port. Its WiFi chip seems real flakey.
Surely if companies all dropped their marketing budgets to 0, they will increase the profits enormously and provide way more value to their customers! They dont understand anything!!
Cryptocurrency Reading List for Noobs
When I was in college, one summer I worked up in Vermont putting together and maintaining trailer park homes. Plumbing was one of the best parts of the jobs in my opinion. I'd wager the person who wrote this article has never had to put a plumbing system together from scratch.

There is an art and a science to it. The guy I worked with put a lot of thought into the best way to design these things, often because he'd be the one who would then have to maintain them. He'd also get very upset when we go out to a trailer with a poor plumbing system. The main giveaway would be a mess of pipes going every which way without rhyme or reason. These systems were the ones that broke the most and were also the hardest to fix.

It might just be "plumbing" to someone that doesn't have to do it, but there is a whole lot that goes into it and you don't want a plumber who approaches his/her work with the catch phrase: "Well, it's just plumbing."
No... Sounds like a commonly enforced policy which is being enforced normally. Why would they really care about which gfx api they use?
Marc Andreessen's 2018 reading list
Good question. I never gave it a fair shot, and it used to have some flaws, but maybe it's cleaned those up by now.
Even if the program was totally "free of human interaction", it shouldn't be marketed as "cognitive"—an exceptional word that requires exceptional evidence, when used in context of software.

Otherwise, it's all bovine manure.
If the title had been "Python [is] a very problematic programming language for building reliable, high-performance distributed systems.", we'd all have just gone "duh" and moved on.
Choosing to "euthanize" yourself is something that is so predominately chosen in fits of mental illness that society has probably made the right choice in banning it outright. Further, I think there's a strong argument that other people shouldn't be allowed to add any weight to the idea of killing you...

As someone else brought up, there can be disagreements between family and an individual about when the right time for them to die is in both directions. Even in America this can be observed with things like life support for the very elderly, an intervention that is sometimes necessary for continued life but not considered euthanasia to forego. You won't have to dig very deep to find a doctor that has seen families argue about this.

So, if you say "only I can make the decision," then mental illness becomes a lot more deadly than it has to be. If you say, "other people can weigh in," then what do you do when they want you to die more than you do (and start pressuring you, and you're old, and already depressed...)? This leaves us at our current state, which is "nobody gets to make the decision."
If this is your own project and it meets the guidelines, this might be better posted as a Show HN:

https://news.ycombinator.com/showhn.html
On containers and frameworks
For me comedy comes from good timing and the unexpected. I've tried to read the Onion but never found it funny because it's formula of satire is expected from the beginning. Sure, they have some witty observations and funny titles, but the articles read like an SNL skit that goes on too long.

The written word probably doesn't help too much either. Comedians frequently use pauses and pace to accentuate the humor and without it, in my mind reading the Onion sounds like poor comedic timing.

I think there was a reason political satire was traditionally effective in cartoon or stand up comedy format.
>A website is not an application or a video game. It is for content, and so its design must serve that purpose.

Apparently it could also be titled "Guidelines to make the web great again" or "Guidelines for blogs in 1995" for all the relevance to modern web design.
That was pretty high up on the HN start-page yesterday, probably inspired by that: https://brutalist-web.design
No you didn't, you don't like my opinions, I'm quite civil in expressing them.
The thing I hate about Python related article: A big snake. It scares me every single time. Please don't put a big snake in your articles
A deciding rule to tell whether some chemical or plant is an addictive opioid: if people are using it to "lessen their withdrawal symptoms from opioids".
The modern work week is a sort of (21st century version of) indentured servitude for some, and a fantastic opportunity for learning/advancement for others. Unfortunately, you don't really get to choose and must try to coax yourself into believing the latter if you really want to be an FTE. In nowhere is this more obvious in tech where over the course of 15+ years I've experienced:

"This is NOT a 9-5 role, we expect you to do what it takes to keep things running"

"You're a highly paid engineer, therefore you should expect overtime"

"This is a 24/7/365 shop, and everyone is expected to be available at all times"

"This is a startup, and everyone is expected to be available at all times"

"This is a financial company, and everyone is expected to be available at all times"

(fellow team members) "Yup, this is a tech role, what do you expect. That's just the way it is"

And so on and so forth.

My thoughts on this are:

1) Some people like working long hours, some people don't, but all must conform to the long-hours lowest common denominator. Without realizing it, we're conforming to an ideology that benefits senior management/founders/shareholders. Is that good or bad? It depends on your position in life, but let's call it what it is.

2) Employment contracts don't contain hours, so sometimes you don't know you're going to have unpaid overtime in the form of on-call or crunch time until several weeks after you've started. This is indentured servitude because while you CAN quit the job (unlike the 17th century variant), you lose health care and ability to pay your mortgage/rent.

3) Salaries are high in tech, but if you take someone making, for example, $200,000 US, which is considered a lot, and you divide it by someone working 50 hours a week, they're only making $77 an hour.

4) I decided to become a consultant, which means I make significantly more than that, I get to keep myself physically fit because I have time to do so, and I'm a much happier person as a result. Want me to work overtime? With pleasure.

5) When you're a consultant, people think twice before putting you on-call or asking you to work 50-60 hours. When you're an employee, however...

[Edit:] My philosophy in life is: you can make more money later, but you can NEVER get your time back. Keep that in mind before signing dotted lines.

* Everything I've just said is US-specific. Europeans have slightly better laws to protect against certain abuses.
My question is still the same. Why are beats singled out so much? This comment (beats is crap that suckers buy, basically) is nearly guaranteed to sit at the top on any thread about beats on the internet.

"They are not the best performance per dollar you can get."

OK. This is true. It's also true about every electronics brand that exists. It's almost the definition of a brand, with a few exceptions where "best value for money" is the brand. There is always some under appreciated brand with great value that no one knows about.

Consumers (especially with portable & wearable gear) care about aesthetics, brands and other things that they might value even if you don't. This is a fashion item as well as electronics, after all.

Same question, why beats specifically? Why not Apple, Samsung, Boss?
> My experience talking to some Git people is that they often branch as a habit without considering what could be gained from branching.

There's just never a reason to not branch. It keeps ideas, efforts, tasks separated really nicely and has essentially no cost to doing so. It lets me have a completely different environment to try things out, wreck, and abandon things without ever touching the branches that are important. When I'm done, a simple merge brings it all in at once.
its a trend that has been slowly gaining popularity but now is becoming more mainstream.

http://brutalistwebsites.com/
Very few developers deliver direct business value or revenue.

For every rockstar dev who gets paid a lot of money to make unique solutions and use his brain, there’s dozens of unsung heroes who do the grunt work reading from docs and setting up plumbing so the rockstar can deliver his value effectively.

These developers are not working in cool languages or solving new problems, and many of them will never do so in their life. They are just expendable workers swinging hammers and writing JavaScript.
Artificial Intelligence: the theory and development of computer systems able to perform tasks that normally require human intelligence, such as visual perception, speech recognition, decision-making, and translation between languages. [Google]
The Beats meme is outdated and tired. Their newest models with the Apple wireless chips in them are actually quite good - they balance a lot of qualities consumers care about well. The sound is great (just check the reviews), and the wireless connectivity is the best in the market. They also integrate really well with the Apple ecosystem due to the A1 chip. They also look better than 99% of headphones out there and that matters to people.

If aesthetics, wireless performance, portability or integration aren’t import to you and the only thing you care about is raw sound quality, that’s fine. Beats probably won’t fit your requirements. But the vast majority of people want something that balances a lot of different qualities well and Beats does that today (maybe not so well in the past).

As for the price, what good active noise canceling headphone on the market isn’t at least $350?

FYI: I have the Sony WH1000XM2. I paid $400 for them. I tested all ANC headphones on the entire market before settling on the Sonys. Beats were not the worst by any means. They gripped my big head too tight and hurt so I couldn’t consider them. Other than that, the A1 chip was amazing for connectivity and the sound curve was great for hip hop. They were also much more pleasing aesthetically and more portable than the competition. Ultimately comfort was the #1 thing I was looking for and they didn’t check that box.
I'm not sure that makes as much sense. At that point, why not just use regular comments? Then add outshine-mode if you want a tree of headlines.
Whatever happens, you started it. Not us. I don't care what the doctor says.
Really? Sh*t flows down hill seems to be about the crux of it!
It's a shame this was downvoted. It certainly adds an interesting perspective to the discussion even if not everyone agrees with the conclusion.
Love the idea, one of the few extensions I would install and I did. Unfortunately first the shortcut didn't work because I'm on a mac and I had to use the command not control key. Then the animations on keypress just we're too cute much for me. I want a text editor and I realized I always have one open anyways and that's where I will continue to do so.

I suggest adding options for any flare like animations and perhaps some basic themes like this one[1]. Utilizing the new tab screen is a great idea.

1. https://github.com/sindresorhus/github-markdown-css
Primarily that they'd embarrass me by ganging up and picking on robots.

But besides that that they'd do something stupid, or wander off, or something else along those lines.

I don't think this is just a US attitude, either - when we lived in Italy, we wouldn't have let our kids wander around the mall there, either, nor would other parents.
This starts off with a misunderstanding of what "strongly typed" means. Python is strongly, but dynamically typed.

Static typing means you know the type of something at compile time. Dynamic typing means you don't. The upside to dynamic typing is that the compiler doesn't have to prove much about your program; the downside is that it can't really prove much of interest either. Strong vs weak typing is about how much your language is willing to fudge types in order to make an operation succeed without errors -- be it the intended result or not. Both static and strong typing tend to make errors be more obvious sooner. Both dynamic and weak typing tend to require less boilerplate to make your program do things.

Python doesn't know the types of things in advance (dynamically typed), but it is very picky about which types are allowed to interact (strongly typed). Even in cases where the answer is obvious, like str.join, you still have to make everything strings: "".join([1, 2, 3]) will fail.

To demonstrate why these are orthogonal, consider the other cases.

Haskell is strongly and statically typed. A program that adds a string and a number together will be rejected at compile time because the compiler can prove it's invalid.

C is weakly and statically typed. A program that combines a string and a number may be accepted by the compiler, who interprets the number as, I dunno, a wchar_t or something. Another example of weak typing is how C allows (heck, encourages) pointer arithmetic and untagged unions/structs.

JavaScript is weakly and dynamically typed. A program that adds a string and a number together will, at runtime, convert the number to a string and then concatenate the two.
Stephen Lavelle/Increpare is the most impressive indie game developer out there by an absolutely landslide imo.

Beyond things like Puzzlescript he's just madly inventive when it comes to making games and interactive experiences of his own. Stephen's Sausage Roll and Slave of God (https://www.increpare.com/2012/12/slave-of-god/) stand out in particular to me but on the whole he strikes me as a guy who has tons of great idea and the talent to implement them. Only issue is he hasn't the time to devote to take most of them beyond being extremely impressive proofs of concept.
"Ubiquitous" is spelled correctly. Why the "[sic]"?
Literate programming sounds nice... but then I read all those people outlining the horrors of too many comments. I have trouble reconciling these approaches.