skysight-inc/HackerNews huggingface dataset:
Anyone using TurboTax should switch to https://www.freetaxusa.com/

I don't work for either company. I'm just someone that used TurboTax for 5 years and switched this year. Intuit has a huge history of lobbying against simplification of tax code, and there was even a bill to create a government run self serve e-file platform that Intuit helped kill. Also, Free Tax USA is a better UX and it's "free". Federal is free you pay like $10 to file state. I live in WA (no state income tax) so it was totally free for me. I paid $6.99 for the premium support just 'cause I wanted to give them some money 'cause I appreciate the service.
Google Glass May Have an Afterlife as a Device to Teach Autistic Children
Sexual freedom between informed, consenting adults hurts no one.

Burning (or, worse, accidentally releasing) natural gas contributes to climate change, which may lead to the extinction of all human life.

It doesn't seem complicated to me. No one is harmed by the loss of using natural gas.
https://pyformat.info/
I think the main value is that function documentation becomes slightly less absurd.

If you run `help(pow)` as early as Python 3.5 it lists the signature as `pow(x, y, z=None, /)`. The first time I saw that `/` I was pretty confused, and it didn't help that trying to define a function that way gave a syntax error. It was this weird thing that only C functions could have. It's still not obvious what it does, but at least the signature parses, which is a small win.

Another thing it's good for is certain nasty patterns with keyword arguments.

Take `dict.update`. You can give it a mapping as its first argument, or you can give it keyword arguments to update string keys, or you can do both.

If you wanted to reimplement it, you might naively write:

def update(self, mapping=None, **kwargs):
...

But this is wrong. If you run `d.update(mapping=3)` you won't update the 'mapping' key, you'll try to use `3` as the mapping.

If you want to write it in pure Python < 3.8, you have to do something like this:

def update(*args, **kwargs):
if len(args) > 2:
raise TypeError
self = args[0]
mapping = None
if len(args) == 2:
mapping = args[1]
...

That's awful.

Arguably you shouldn't be using keyword arguments like this in the first place. But they're already used like this in the core language, so it's too late for that. Might as well let people write this:

def update(self, mapping=None, **kwargs, /):
...
Can you give an example of something like this happening to the language? IMO 3.6+ brought many positive additions to the language, which I also think are needed as its audience grows and its use cases expand accordingly.

The walrus operator makes while loops easier to read, write and reason about.

Type annotations were a necessary and IMO delightful addition to the language as people started writing bigger production code bases in Python.

Data classes solve a lot of problems, although with the existence of the attrs library I'm not sure we needed them in the standard library as well.

Async maybe was poorly designed, but I certainly wouldn't complain about its existence in the language.

F strings are %-based interpolation done right, and the sooner the latter are relegated to "backward compatibility only" status the better. They are also more visually consistent with format strings.

Positional-only arguments have always been in the language; now users can actually use this feature without writing C code.

All of the stuff feels very Pythonic to me. Maybe I would have preferred "do/while" instead of the walrus but I'm not going to obsess over one operator.

So what else is there to complain about? Dictionary comprehension? I don't see added complexity here, I see a few specific tools that make the language more expressive, and that you are free to ignore in your own projects if they aren't to your taste.
Was really hoping to see multi-core in 3.8, looks like we'll be waiting until 3.9

https://www.python.org/dev/peps/pep-0554/

https://github.com/ericsnowcurrently/multi-core-python/wiki
At yazz.com we have a similar goal to some of this. Keep at it!
I understand your reservations about this being done by a for-profit.

I don't understand your opposition to the idea of individuals contributing to carbon offset projects. It seems like the reservations you've expressed (it's not a whole solution, it's not feasible for people earning less than $2 per day, it might have too much of a "feel good" effect, etc) are equally true of many ideas you'd probably like, including the ideas you put forward yourself.

I liked this part of your comment: "RUN THE NUMBERS please". I did. Illuminating! My back-of-napkin:

Global CO2 emissions were 10b tons (10 Gigatonnes) in 2014 (https://www.co2.earth/global-co2-emissions)

$4.5B per month * 12mo = ~$50 billion per year

Carbon offset costs vary wildly. That's the big Q. You will have to do your own research on this, but to me, $100 per ton seems conservative, and $10 seems very generous.

If Wren collects $5B per month, and offsets cost $100 per ton, they would offset 5% of 2014-level annual emissions. (Probably less than our annual increase.)

If offsets cost $10 per ton, it's 50% -- more meaningful!
From what I've seen, Go is the closest we have for mainstream language resistant to change.
Henry Kissinger on why we must adapt to AI
Good read. There are a few things that I'd throw on top as important;

- Active monitoring

- Chaos testing

- Cold start testing
Both static checking and compilation can be implemented using third party libraries. I think projects like mypyc could be a real game-changer.
Native device platforms could do a system optimized AOT compile of WASM to Native as part of install. The distribution can be the same per platform, that doesn't stop a given platform from further optimization.

Also, the single biggest battery use for most people is the screen, the CPU time is minimal by comparison and that 50% is only for the narrow CPU time the app isn't just waiting for input, and for many apps, that's most of the time (idle).
You get a warning if you don’t check the error.

Yes, the default semantics is that it will stop when the first comparison fails and give you that error. You can write slightly different codebase if you want a list of all errors instead.
Yup for sure. My complaint is part ergonomics of boilerplate, part this really burned me bad and no stdlib documentation warns you upfront about it. So many hours of headscratching.
Completely unrelated to maps, but I really enjoyed your talk about the origins of the "else" keyword at !!Con West a few months back! Thanks for picking that topic. Really got me thinking.
I wonder, ES6 template strings allow any kind of string inside them which can be constructed based on existing values in the surrounding function. So I can give such a string as argument to a function which returns some non-string JavaScript value, perhaps a function.

Would this qualify as a "hygienic macro"?
This is worth a read. Amazing how a small idea can grow
The odroid xu3 had a fan. It was innoying i could here it at night.
MineRL Competition 2019
>Read it "if y" - that's what's being tested.

Once way to test if this works is to take the code, read it aloud, and then use the read-aloud version to rewrite the code. If you don't have a high degree of certainty that you end up with the same code, something has failed along the way.

In this case, if I take "if x:= y()" and read it aloud as "if y", I think the vast majority of people would translate that to code as "if y():", which isn't the same thing.
Ah yes, the home contracting industry is ripe for SEO due to so many long tail keywords. A project I'm not proud of managed to get 100M pages indexed (about 1% of Google at the time), all related to home contracting services. This was done with a combination of using mod_rewrite to manufacture unique URLs, creating a CMS platform, hiring students to write content, using natural linking algorithms, and some software to automate creating unique inbound links from wikis/blogs to deep URLs. Sad to see the same kind of thing can be done today. I regret not putting that effort towards something more productive, but when you're in advertising, the race to the bottom can be tempting.
One of the good things about not using the "=" operator is that you cannot accidentally turn a comparison into an assignment, a feature that is a common cause of errors in other languages that do support it. By adding a completely different character to the operator it is not very likely to cause bugs, compared to just forgetting to type that second =
Very much seems like perlification, and we all know what happened to Perl.

Although that being said I always really liked Perl
Wow. Never would I have guessed the amazing concept of assignment expression is so confusing for, what it seems, a lot of python programmers.
It really was time to introduce it to them.
> Retail stores buy the products they put on their shelves, at wholesale prices

Not necessary. And often you have clauses saying suppliers will buy back unsold inventory.
There are at least three ways to iterate over a list and create a new list as a result. That's not very pythonic, is it?
Oh undoubtedly the quality shows are worth more when siloed off like this. We know, in the US, cable pricing is $107 a month on average and the average advertised price of internet is $60. Assuming you use the internet only for streaming that's 47 bucks that a cable viewer should be willing to spend on equivalent streaming services (with some liberal whitewashing of smaller issues and wide assumptions on the fungibility(in both directions) of entertainment).

So there's obviously more money on the table there than netflix charges. It's just a pity that these businesses are going to, by necessity (or arguably short sightedness), re-fragment how consumers gain access to shows. For every increase in inconvenience they'll make piracy a more appealing option. Especially globally where broadcasting/streaming rights are an even more fragmented mess.
javascript, python, rust, etc. don't use printf style, but instead use the {} style.
At least you can admit that your hot take was wrong. That's better than most people.
Isn't it Byronic? Don Juan at 200
Your average pea-brain HN reader doesn't think at this level, sadly.
One thing never mentioned in these discussions, is how all those high end alarm systems, produce erronous errors en mass, denaturing the guards attention and action readyness. If you ran a thousand times, because somebody smoked beneath a window, or a grill in a park nearby made the alarm go off- you start to develop "minimal effort" missunderstandings.
Early Learnings in Podcast Distribution
>Debug support for f-strings.

F strings are pretty awesome. I’m coming from JavaScript and partially java background. JavaScript’s string concatenation can become too complex and I have difficulty with large strings.

>Python 3.8 programmers will be able to do:
print(f'{foo=} {bar=}')

Pretty cool way to help with debugging. There are so many times, including today, I need to print or log some debug string.

“Debug var1 ” + var1 + “ debug var2” + var2...and so on. Forgot a space again.
Yes. Buried, then concealed, then Sneferu's attempts via "mastabas" (Arabic for "bench"), building mastabas over mastabas for proof of concept of a pyramid. These projects were on the scale of lifetimes. These were incredible engineers.
So := is 'gets a truthy value from'? That seems to work.

> For what it's worth, "x = y()" is one of the harder things for new programmers to translate to English in the first place

Right... so why have we added more complexity to something known to be very complicated?
It seems like most or all of the benefits listed in this post could have been achieved just as easily by changing code in their monolith. Like the ElasticSearch optimizations and the decoupling from the relational database.

Similarly the benefits they do tie explicitly to microservices like scoped errors and tests can also be achieved in monoliths with simple filters on the errors and tests being run, without all the work of splitting out the service.
> It seems to me that the biggest issue with the fire system was the lack of a graphical display of the alarm

The man monitoring the alarm, even though he had just started the job, says he did understand the code and where the alarm was and communicated that information to the guard. He does not claim that the problem was he didn't understand the code or there was anything wrong with the design of the alarm system. The guard on the other hand says the man monitoring the alarm told him the wrong location to go to.

Neither of these issues though are related to the subsequent decision to call his supervisor as the number of alarms going off increased, and then sit around and do nothing while waiting for a call back. Nor does this have anything to do with the design of the alarm display.
Very hard ask for small embedded devices. Maybe you can get part of the way there mixing the low order bit(s) of a number of somewhat noisy floating ADC inputs? Against a half hearted nearby attacker I'm not sure I'd bank on it though.
The only reason I can imagine being opposed to it is fear that hordes of bad programmers will descend on the language and litter the ecosystem with unreadable golfed garbage.

I obviously don't want that. I don't think anybody wants that. But I also don't think that's going to happen as a result of the recent changes in the language. If anything, I feel like the average code quality in the wild has gone up.
So my question is this, then: are there ways of meeting demands and distributing goods that a) price in externalities b) are not centally-planned?

Anarcho-capitalists will tell you that by privatizing everything, you eliminate externalities. But taking their logic further, the only way to prevent pollution or climate change is essentially millions of people suing each other. I don't think I've heard many ideas that are quite as stupid.

The thing is, I'm not a fan of markets and I'm not a fan central planning. I like the Marxian ideas of building/distributing things for-use (aka, at-cost as opposed to at market value), but then that still doesn't account for externalities. Even in a system where banking is socialized and allocations are made democratically, you still can't easily price in externalities.

So what would a system look like that priced pollution, carbon output, and cost of disposal/recycling of each product into the product itself? The only thing I can think of is government regulation, but even that seems to work via disincentives vs incentives, so you're constantly having to police people to do the right thing. Is this the only way?
SystemD, not linux, had an opportunity to learn from OpenBSD and actively refused.
something that makes it easy to make anonymous transactions in Monero and get cash out with a debit card
If Google cared about this, they could fix it. They don't have an adequate system for checking business legitimacy. If they tried hard to filter out the domains that have no identifiable real-world business behind them, or which are way too publicized for their real world size, they could fix this.
Perhaps it's more Perl 6-ification?
The sad truth about sleep-tracking devices and apps
I expect the PEP authors want to avoid the "while chunk == read()" class of bugs

ninjaedit: indeed https://www.python.org/dev/peps/pep-0572/#why-not-just-turn-...
I suspect this is common in lots of areas. At best you have a dedicated data catalog that is used consistently but still has a different interface. At worst you get a dogs breakfast.
someone should be able to learn all of a language in a few days, including every corner case and oddity, and then understand any code.

Why should this be true for every language? Certainly we should have languages like this. But not every language needs to be like this.
Incorrect. Selecting what poor people do with resources as an answer just avoids the problem of rich people choosing what the poor eat, which is the fundamental problem. Let's keep the blame properly placed here.
You will end up with the same code under two conditions:

1. You read more than one line of code.

2. Executing the code in the conditional more than once doesn't matter.

If you meet those two assumptions, then the reading I suggested will transform this

if x := y():
act_on(x)

into this

if y():
act_on(y())

which is, in fact, the same thing.
Despite controversy, walrus operator is going to be like f-strings. Before: "Why do we need another way to..." After: "Hey this is great".

People are wtf-ing a bit about the positional-only parameters, but I view that as just a consistency change. It's a way to write in pure Python something that was previously only possible to say using the C api.
- plant a tree

It solar powered and even self-replicating!
There are definitely a lot of people finding moral justification for their lifestyles.

Actually one of the more interesting ideas I heard is that this is how deist religions came about: early farmers had a tough time domesticating animals with animist religions (where each animal has a spirit and can be talked to) and so needed to remove the guilt that came with owning and slaughtering animals. By moving the spirit away from the animal directly and towards an animal god, they were able to absolve themselves of the guilt.
> What does it mean to "Carry modern slavery risks"? Do you mean "they employ slaves, e.g. the owner took their passports and controls them like slaves?"

Human trafficking is a real thing. Coffeedoughnuts provided a link with a news story about an app that has been used to report businesses suspected of engaging in that industry.
Absolutely agree. How many times have you heard "that was true until Python 3.4 but now is no longer an issue" or "that expression is illegal for all Pythons below 3.3", and so on. Not to mention the (ongoing) Python 2->3 debacle.
There was a 3.5 magnitude quake in the South Bay Area Monday.
Seriously. I recently came from PHP, and this is one feature I've been missing quite often and a lot.
One of my previous providers was literally looking at the browser user-agent header. If I just connected as normal via my phone, I was blocked very quickly. If I used developer tools in Chrome to pretend to be an iPhone or Android, it worked without complaint.

I'm not sure there is much else with which the network can tell is there?
Certainly Common Lisp.
Absolutely this. Or I'll get a CAD export in "Wyoming State Plane" but no indication that the designer decided to work in inches, not (US survey) feet. I spend more time than I ever would have guessed playing datum detective.
Exactly this... I use all three as well, and tend to favor apps that run everywhere. Even if that means browser/electron apps. It's just less hassle for me. My single biggest issue is windows-isms for bash on windows.

In the end, as long as it works, I'm very happy. Also, it doesn't preclude a given platform from AOT optimization/compile for WASM code to platform native code. I think getting common runtime interfaces is currently the paramount point... being able to use sqlite, and SDL/OpenGL adapters to canvas or webgl are also big. Not to mention audio, and various input devices (gamepads etc).

There is a lot of existing code that could be readily ported/shimmed out if we can get some common interfaces working.
They pay 0% taxes because they move all their profits to Ireland.
How do you know if someone using a font in their github repo paid for it or not?
>Nothing makes a huge group of us cringe more, than people saying it's just around the corner.

I thought you referencing the media here. Build it up, tear it down. They quoted and amplified so many people who suggested it was possible only to print articles later that point out the it just ain't possible.
Oh gotcha - the lack of visibility into the verification codes could be an issue, but IMO it's like signal or any other encrypted chat app - the complexity is hidden from the user, but the identities are still verified. All of the client code is open source and so you could dive in to see how verification is handled, but why should you need to? And what code could the app show you that a malicious app running a MITM attack couldn't?
Freedom to Roam
'If x, which is y' maybe?
Thank you for responding!

I'm not super familiar with Strong Towns, but I really appreciate the work that's gone into it and I'm definitely going to read more.

As for the hidden costs, it reminds me of assessments in HOAs and condo associations. Once infrastructure starts to age, it can become unbelievably expensive to perform even basic maintenance, as you mention. In instances where the people who live in a place are responsible for way more of the costs themselves, the picture starts to look a lot less rosy!

I guess my issue with the free market vs not free market framing is that, while I agree completely with you that the system in not a functioning free market at all, the title of the series implies that we need to move away from a free market? But then, as you say, the system is already not that. I don't have much of an opinion one way or another, besides believing that this sort of financial analysis is very important.

Thank you for taking the time to respond!
It would offer good throughput but there is no way to hide the latency.
Sorry, I don’t know of a free alternative.
Not sure why another reply here got downvoted into oblivion. I did at one point have an adblocker that was making browsing twice as slow as it is now; had to switch to using the hosts file. I also did do a factory reset at one point, which helped somewhat but not a ton.
Is there somewhere I can read about the punishments in more detail? E.g. how often the quizzes are, what the penalty is for getting it wrong / not being available for the answer?
There is an ioctl to write with an ascribed entropy from Linux.
Tell HN: Pluralsight and the dark-pattern of auto-renewals
For anyone considering subscribing to Pluralsight, be aware that they will not inform you of their auto-renewal policy, and will charge you once your subscription is up for annual renewal without warning. In my case, this auto-renewal has cost me $300.

This is a serious dark-pattern and I'm surprised companies still employ it. It's so short-sighted. I emailed their support and they offer a "promotional" $50 refund as a token.

Are there any other companies that do this? In contrast, Egghead.io (which in a similar space) sends an email in advance warning you of the renewal as well as how to cancel it.
Python 2.7 is not far from that language.
Sure, bring up the 2008 crash to any pro-capitalist and they'll quickly explain to you how "oh that wasn't real capitalism" even though it happened in the confines of a system that self-describes as capitalist.
I will worry about this when they come out with the fixed USB-C port.
Study shows female brain responds to porn the same as male brain