skysight-inc/HackerNews huggingface dataset:
New permissions shouldn't be taken lightly. One day you'll install an extension that access only on a specific site, and the next day it's requesting access to all your bookmarks, location data, history etc. If you make it into a next next next dialogue box you're implementing an easily abused dark pattern.

A better approach would be to allow extension upgrades, irrespective of permissions. If a user chooses to deny permissions the extension should still work on the latest version.
That's because the place to make inroads was elsewhere... in mobile, embedded, etc., which we don't count as "desktop" (though at one point, desktop was basically anything with a GUI). You throw in Android phones, Chromebooks, browsers in embedded devices, etc., the picture looks quite different.
If I were to grant access like that I wouldn’t (well I wouldn’t have 5 years ago or so) necessarily think that individual developers could access individual emails, just that the software would pass the information through.
The place I see using it is in (quoting Python's "python.exe-gdb.py"):

m = re.match(r'\s*(\d+)\s*', args)
if m:
start = int(m.group(0))
end = start + 10

m = re.match(r'\s*(\d+)\s*,\s*(\d+)\s*', args)
if m:
start, end = map(int, m.groups())

With the new syntax this becomes:

if m := re.match(r'\s*(\d+)\s*', args):
start = int(m.group(0))
end = start + 10

if m := re.match(r'\s*(\d+)\s*,\s*(\d+)\s*', args)
start, end = map(int, m.groups())

This pattern occurs just often enough to be a nuisance. For another example drawn from the standard library, here's modified code from "platform.py"

# Parse the first line
if (m := _lsb_release_version.match(firstline)) is not None:
# LSB format: "distro release x.x (codename)"
return tuple(m.groups())

# Pre-LSB format: "distro x.x (codename)"
if (m := _release_version.match(firstline)) is not None:
return tuple(m.groups())

# Unknown format... take the first two words
if l := firstline.strip().split():
version = l[0]
if len(l) > 1:
id = l[1]
The error-catching method seemed too drastic to me before, but the article explains the LBYL vs. EAFP arugument quite well. Thanks!

I should find a way to get more code reviews, I really enjoy learning these small nuggets of info.
Why not go get a job at Google? If you’re good the received wisdom seems to be to inhale Cracking the Coding Interview and the Algorithm Design Manual. If they don’t have any open positions where you’d like to work that’s one thing but why not take the extra money if it’s there?
I routinely use a similar method, and the idea is not to reduce the amount of work, but rather to increase the degree of comprehension.

Roughly 30% of the text in your average book occludes understanding if you read through it linearly. This is a technique for getting at the essential thesis, which can then be supplemented with a thorough, cover-to-cover re-reading.
I'm concerned from the perspective of VPN usage that I've seen happen during social media blockades. People invariably turn to free VPN services. Suddenly people are walking around with known malware injectors, and the worst of the worst behaved VPN provider apps giving them "protected" browsing because they don't know any better.

An app developer without ethics could probably create some template for generating apps and sites for "free" VPN services, and liaise with the government to create a perfect cycle of people using apps that spy on them. And people would still probably fall for it.
Sounds like you often read books with 250+ pages :)
Thanks for the Edgerouter link, saved me doing some Googling - Off to got and apply this now and see what difference this makes to the Bufferbloat tests.

As Arie mentions, this is a little more involved on the EdgeOS stuff, but doesn't look too complex for those that are used to a CLI or two.

Edit: Entirely off-topic, but an equally interesting find – There is a WireGuard client for the EdgeRouter line: https://community.ubnt.com/t5/EdgeRouter/Release-WireGuard-f...
They’ve had the same amount of years we all have had to form advanced civilisations. If they haven’t it’s their fault.
I've added an edit to my comment to help you through the logical jump, and in the rest of this comment I write it out explicitly.

So, my reasoning is that I surely must end up liking it, if it ended up accepted despite breaking every rule in the book. They wouldn't accept it for something that wasn't incredibly useful. My first impression is that it's incredibly ugly, unpythonic, and unreadable (what does it even do?), and this is pretty "obvious".

So arguing based on what I know about Python design philosophy, and the fact that this has been so deeply discussed, it must be absolutely fantastic.

I wouldn't think it's great (if you gave me the syntax), I'd recite all the Python Values it breaks -

https://en.m.wikipedia.org/wiki/Zen_of_Python :

- Beautiful is better than ugly.

Nope, this is very ugly.

- Simple is better than complex.

Nope, this isn't simple.

- Flat is better than nested.

Nope, this explicitly exists to let you nest something.

- Sparse is better than dense.

Nope, this explicitly exists to make code denser.

- Readability counts.

Nope: this is literally not readable. You don't know what the first code example I gave does. Normally with Python you just "write pseudocode and make sure you indent it properly."

- Special cases aren't special enough to break the rules.

This is a special case.

but here we get to the next rule, which trumps ALL of the above:

Although practicality beats purity.

- There should be one—and preferably only one—obvious way to do it.

This is broken, as now you can do it on two lines or one line.

- If the implementation is hard to explain, it's a bad idea.

It's kind of hard to explain, look at all our comments.

- If the implementation is easy to explain, it may be a good idea.

This isn't the case here.

I will grant that this is extremely explicit syntax. In this sense it is MUCH better than overloading = based on different contexts or something. As I mentioned above, anyone who sees := knows that it's a "known unknown" -- WTF is this?

So we are left with a single solitary Pythonic value:

- Practicality beats purity.

Based on this alone, I reason that it must be great to have been accepted. It must be extremely practical. It must save a lot of time.

I am quite disposed to thinking (honestly!) that it must be pretty darn great. It will save a lot of time.

There's no way that it made it into the language if it didn't, since it's so obviously ugly and unpythonic.

But practicality beats purity. I'm sure I'll love it!
And if, at the bottom of Page 50, all you're really interested in is who marries whom, or who the murderer is, then turn to the last page and find out.

Ironically, I simply wanted to know what the actual rule was. It takes some effort to find it hidden in the middle of the article.
was it worth not selling at that amount of profitability though?
Well, if you prefer blocks, you may as well use Ruby as that language is basically what happens when you have access to blocks.

Python chose a different design trajectory - personally I can't stand it but it certainly follow some sort of internally consistent reason.
The apps that require permission to read your email and ask for it. They generally provide services like

- Act as a desktop mail client

- Backup your SMS messages to Gmail

- Search your email for forgotten registrations and allow you to cancel

Ideally it should be clear from the context that the app requires this permission. But the problems that plague mobile app and browser extension permission systems exist here as well. The stakes may even be higher.
Best way to share public key
I would like to know the best practices for sharing public key
My mother taught Pitman shorthand (as well as related secretarial skills) for many years until probably the early nineties. My father still has many of her old textbooks, and some of them are novels translated into shorthand for reading and comprehension practice. They're kind of odd things to look at - page after page of squiggles that are somehow clearly artificial rather than natural orthography.

Also, it is interesting to encounter an encyclopedia article explaining something that was, until recently, common enough that its existence and usage was part of general knowledge. A useful reminder of how things change.
> Non technical people need a reason other than ideology to switch. The product needs to provide a new value that doesn't exist or be so much better that it's obvious to everybody who tries it.

It's not even that.. often it's just distribution. Often consumers don't really want to make a conscious choice, so taking it away from them in the distribution channel is the way to go. I remember doing studies on search engine switching rates. No matter how awful we made the default search engine, the vast majority of users would not even try using Google. It was AMAZING.

I would argue that the browser wars have, to a much larger degree than we're prepared to acknowledge, been driven by distribution. Users don't want to make a choice.

So that means you just need a strategy for winning the distribution channel game. Product design be damned.
From their Privacy Policy:

"Where provided under applicable law (such as within the European Union), you may have the right to ask us to delete Personal Information which you have provided to us [... ] contact our Data Protection Officer at: dpo@userstyles.org."

https://addons.mozilla.org/en-US/firefox/addon/stylish/priva...
This looks more like a contender to rclone, doesn't it?
It's working now for me too, I suppose they fixed something, or it was just overloaded.
> What do you get then? Exactly what you have in Europe: ethnic division and people living in a country with distaste for it, but benefiting economically from it.

That's such a tired cliche. It is put out all the time, but there's no proof, just more anecdotes and whatever.
match = re.match(r1, s)
if match:
o = match.group(1)
else:
match = re.match(r2, s)
if match:
o = match.group(1)

or a bit shorter:

match = re.match(r1, s)
if not match:
match = re.match(r2, s)
if match:
o = match.group(1)

You could also just loop:

for pattern in (r1, r2, ...):
match = re.match(pattern, s)
if match:
o = match.group(1)
break
else:
do_failure_handling()

But this goes a bit beyond the original question.
>You can get away with good data structures/good sql queries and a little big O analysis almost everywhere.

So design databases and algorithms for performance from day 1 & understand how the data needs to be structured? You'd have to verify the assumptions you made about the data were correct and profile often if you didn't want to worry about performance regressions. Bad enough regressions are a failed product and you can't ship something that could never get fast enough without a rewrite.

I don't think everyone in this thread has the same concept of what optimisation means. It doesn't all have to be obfuscating bit-fiddling. Even identifying the important paths is optimisation.
It gets sold to private investigators and insurers, and you shouldn't have ever Googled for "alzheimer disease symptoms" and you lose your child custody rights after a judge decides what you're looking at on YouPorn isn't sufficiently healthy.
| Tritium can be bred in any sort of fission reactor.

Tritium deliberately made in fission reactors would cost maybe $200M/kg.

A DT fusion reactor consumes 55kg of T per GW(th)-year. That would cost $11B/GW(th)-year if the T came from deliberate production in fission reactors, which is far too expensive.

Even producing the startup tritium for a fusion reactor using fission reactors is problematic.

There's a serious loop in the development schedule for DT reactors. They absolutely need good tritium breeding to make enough tritium, but such blankets cannot be developed without access to the large amounts of T that they themselves are needed to produce. Running around this loop is going to be laborious and painful, even after all the plasma physics issues are solved.
I don’t understand what you are trying to write.

First of all you have indented 1 and False equally. Is that a typo? Or is it your opinion that the if should always consist of the if and the else branch without using the else keyword?

Secondly, if you want to return a value you need to use the return statement.

Also you wrote bar(foo) but foo was the name of the function, not the name of your parameter.

Perhaps what you are looking for is this:

def foo(x):
return 1 if bar(x) else False
It's partly about the drama.

Long hours, millions or billions in cash, high risk, high reward - it's so much more exciting than building a steady business that pays its way and keeps some number of people gainfully employed while providing a genuinely useful product/service.
It's not just repetitive; this particular example actually creates a list before starting the external loop -- imagine it with range(100000000) or something. It is better if you replace [] with (), which creates a generator.
That's nice for them. I also have the right to refer them to my local data commissioner though, about the absolutely lack of meaningful consent they gathered from me here. I hope their investors get taken to the cleaners by the resulting fines.
Why would there be feces? They aren't in sewers.

And even if there was a chance of diarrhoea, what would be your alternative?
I've always sworn by wired headsets, because I thought wireless would have terrible quality etc. despite what advertisements etc. said.

However I got my first wireless pair a couple months ago and they have been so much better than any wired I've ever had. Not only that I tend to ruin mine once the wires get tangled etc. I have never had a pair longer than 2 months, right now I've had my wireless for like 4 months and they're nowhere near a breaking point and I expect I'll only ever switch them out for a better pair with longer battery life since I travel a lot of hours every day and mine usually only lasts 75% of my daily travel (Which is roughly 6+ hours.)
New Evidence in iOS 12 of Apple's Upcoming iPad with Face ID
Upcoming ICOs
If you study coaching, or organizational development techniques, you'll find that most practices are consultative -- defining goals, as well as how the coach/consultant will work with an individual or organization. You then evaluate where the person/org is at, where they want to go, and develop various plans and interventions to get there.

I point this out because this document skips all that. It says so in the first page - this is written by someone who targets young founders in SV. Quite a narrow niche. This document is one specific playbook, for that specific niche.

Sure, young founders in SV may want this. And if you do, too, the info is good for you. But there is more than one way to run a company, more than one desired outcome, and more than one set of answers in what you should be doing.
Right. I'm one of those always-grumpy guys. I totally dislike (um... hate actually) the idea of open workspace.
Smartly.io | Helsinki, Finland | Onsite, relocation assistance | https://www.smartly.io

Smartly.io is looking for skilled Full Stack Software Developers to build software for the largest online marketers in the world.

Check the job descriotion and apply here: https://jobs.lever.co/smartly.io/e07f4bf2-1571-4974-b8ad-f41...

Check out our tech blog: https://www.smartly.io/blog/tag/engineering

Smartly.io is a fast-growing team of 220+, building a SaaS power tool to automate and optimize online marketing for the largest online businesses globally, like eBay, Uber, and Skyscanner.
Content Negotiation with Asp.net Core
There is not a person here whom I would consider as a moral guide. Not with these wild imaginations and levels of income.
Why is everyone disliking this statement about 8-10 hours a day? Excluding weekends, this is 40-50 hours a week, nothing outrageous.

You're not that special folks, you have to work to get paid like everyone else.
A visual introduction to the dot product
Happy user at mailbox.org

They are hosted in Germany, have a strong stance re data protection, and have a very cheap basic plan. Plus multiple payment options, I think you can even send them money by post for complete anonymity.

Edit: You can use a custom domain
> Another example: Try to get apt to download a package you already have installed, and all its dependencies, onto a USB drive so you can install them on a computer that doesn't have the internet. The developers never considered the possibility that someone would want to download software for a different computer.

This is not true of all package managers. DNF (for Fedora, Mageia, and soon OpenMandriva) and YUM (for RHEL and CentOS) have a download subcommand that lets you resolve the full chain of dependencies without considering what's on the computer to be able to have everything for installing it offline somewhere else.
Make a full time income trading crypto using an automatic trading software?
This is true and also helps keep you fresh. Personally I got involved in containers and container security 4 years ago and so even at my advanced age (44) I'm involved in what is a pretty hot topic at the moment.

I also recognize that I need to keep investing in my technical development as I go along.
Ain't going to happen. Python used to have lambdas, but removed all but the one-line variety.

The problem is that if you add blocks, then half of the added syntactic features the last decade is redundant as a block version would simply solve the problem a better. Which would create a lot of dead design, and that makes it a bad solution.
In flood waters? Because there is a little bit of everything in flood waters.

Apparently there is water seeping into the space they are in. I'd drink that before I'd drink the inundation water.
Personally I think the coach should be commended for keeping all those boys safe and alive in such conditions. He couldn't have known the cave was going to flood, the signs say don't go in in between July and September - they entered in June. Without a strong leader this probably would have been a very different outcome already and they'd be dealing with retrieving corpses.

I actually find comments like yours really grating. Blaming people for situations largely beyond their control is not productive or helpful, especially when ended with inflammatory questioning designed to provoke.
How is that ambiguity currently handled in comprehensions?

My point is that it would be nice to have a consistent syntax for all for-loops, either being a part of a comprehension or standing on their own.

EDIT:

> You proposal also leads to a more ambiguous grammar because the following is currently allowed:

for n in range(100) if n%2 else range(n):

Not really, I gives me "NameError: name 'n' is not defined". Unless it is an 'n' defined in the outer scope, of course.
Not really. It's 100% untrue that everyone in business is like this.

It's true that a certain kind of business culture encourages this thinking and disparages slow growth or - worse - static but healthy profits.

But that's propaganda, not reality, and the economy is the worse for it. Steady businesses contribute far more in jobs, personal freedom, and social opportunity than unicorns do.
I have a weird phobia where I'm afraid of caves - the very idea of caving in small caves where people wriggle through has always terrified me and as for cave diving....

I could not do what they have done - not if my life depended on it....

Personally, I think they deserve the very highest honours we can give them as a country.
'Monetize' is the stage where they make money, and in normal companies it happens early and doesn't imply that customer service suffers. It's the 'Exploit' phase where the customer gets screwed if you let short-sighted people call the shots.
I wonder why not investment goes into tapping the geotermal potential. Is like having a free reactor ( since both work on transferring heat to water -> steam )
Pretty much anyone using a functional language or immutable data structures.
What about interconnects inside a computer?
This sound eerily similar to a recent instance when Amazon's Alexa recorded and transmitted a private conversation of a Portland family to a random contact, just a couple months ago. [0]

This is some bad publicity for the tech industry at large. Hope the team at Samsung figures this out soon.

[0] https://www.kiro7.com/news/local/woman-says-her-amazon-devic...
If you spent 4 weeks drilling basic CS problems do you think you will pass the interview? When I look into them I feel like I can pick it back up quickly.

On a tangent: which city are you looking in?
How America got its name
Ted Nelson had great ideas but he totally screwed up the delivery.

He insisted total control over ZigZag. He wanted it to exist as proprietary software not open protocol or anything like that. Decades passed noting came for his ideas and software.

Then came the web, html, RDFs etc. and Ted Nelson became desperate. He received patent for zzstructure in 2001. When group of talented individuals approached him he first approved their work in GZZ (Gnu ZigZag) then he screwed them totally over when they started to get work done.

Ted Nelson's genius is voided by his insecurities, greed or something. Maybe when his patent expires 2021 something will come of it.

http://www.nongnu.org/gzz/
I once wrote a (simple) compiler for a language exactly like that, i.e. LISP-type with indentation replacing parentheses. However, I found that this style becomes too complicated, because for long functions you can't easily see which parts have the same indentation. Perhaps special editor-support would help.
Competition doesn't equal lower prices.
How Much Does It Cost to Build an Educational Mobile App
NASA prepares to go public with quiet supersonic tech
Is there a definitive list anywhere of what Chrome collects and where it goes?

There have been rumours forever, but I'm interested in verifiable facts.
The relativistic discriminator: a key element missing from standard GAN
Ask HN: Long term impacts of automation
Background: My work falls somewhere under the general umbrella of mass-automation. I fell into the field over time from a more general engineering training. I was recently on a project that was by all accounts a success story and delivered a capability for a client that allowed them to reduce a large team headcount by 30-40% without losing much output.

I'm really feeling quite divided after this and have been making and effort to think and learn more about long term economic implications of my work, and I'm really starting to wonder what the future I'm working towards looks like. I've come here because I'm interested in how others in the field think and how you deal with this as I'm not yet comfortable discussing with colleagues.

As we gain the ability to automate ever-increasing varieties of labour, I feel like we are steadily reducing the type and amount of value a future human can provide through their mental and physical labour - a key driver of social mobility in past and present years.

While not universally true, it seems to be a recurring theme that people who apply their dedication and ingenuity to the progression of society may receive future reward for themselves and their lineage. I think this is generally accepted as good and is a cornerstone of capitalist world view.

If we extrapolate out the current drive towards artificial intelligence and automation, are we sliding headfirst into a future where the value of a person equates to the sum of capital they already possess; the quantity of machinery they can afford to own? What drives social mobility in a world where labour is the domain of machines that self-maintain and self-learn? Is there a path that leads to a more utopian landscape than what I'm picturing?

I realise this is a very open ended post with a lot of branches of discussion, but even responses as simple as links to quality authors who write in this domain would be appreciated.