skysight-inc/HackerNews huggingface dataset:
Last I checked, approximately half of McDonald's stores were franchises and half were corporate-owned.
This comment is pretty much entirely wrong due to first sale considerations, as a neighbor comment points out. It’s also a good cautionary tale for understanding your legal obligations regarding software licensing from an Internet comment.

For the purposes of only this context, in which we are deliberating who is infringing on the GPL software blah blah, Vizio sells all of their televisions directly. The act happens when Vizio is paid for the product and never again. With very few exceptions, everyone with a stake in the software on that television loses their rights completely once the television is legally sold to a distributor. Nobody from then on is liable for the licensing structure of the software; in the eyes of the (American) law, the television is now a “thing” to dispose of as you wish and no more. That is impactful to both trademark and copyright law but doesn’t necessarily speak to, say, reverse engineering (i.e., DMCA).

The scenarios you’re describing aren’t hypothetical and routinely happen in commerce, and they are well-trodden ground legally. If they went the way you’re theorizing, too, you’d never be able to legally sell or loan a book to a friend. Your ability to do that is the exact subject you’re discussing.
Based on my limited experience in govt projects, there is a lot more to such implementations than what meets the eye. The number of backend systems this application would need to integrate with, the long list of compliance requirements that adds complexity to development process and setup, redundancies that need to be setup at different levels, odd technical requirements mentioned in the RFP to name a few are things that can bloat up the cost and implementation timeline. Now add dependency on any parallel development or upgrades to the mix and you have a very tough project to execute.
I filled in the beta signup form for Kagi search [0] the other day and one of the questions was along the lines of "What must-have feature do you need in a new search engine?", and my answer was the ability to blacklist these spam sites for the exact same reasons. The major search engines are becoming close to useless.

[0] https://kagi.com
I always wonder how fast the world forgets when this comes up..

TLDR; Swatch make a decimal based 'world time' and watches/programs to track it ('beat time'). Put a huge 'beat time' clock on their HQ. It was supposed to cure all the internet scheduling woes...and then it died.
Yeah I would love to hear someone from Mozilla or Google respond to this.
I think that nationality angle is interesting but I believe it's only incidental. For example I tend to sympathise with this idea that in some cases IT workers are overpaid compared to other professions, but I'm from a relatively wealthy country (Scotland). When you have lived somewhere that has lower wages overall, but you have worked in a highly paid profession in a wealthy country then you're going to be quite keenly aware of the gap in compensation. So if you've seen the wages a janitor, shopkeeper, cleaner or even schoolteacher in Estonia makes and reflect on the fact that Facebook, Google devs in London will likely be on over $100k/year then yeah it's not unreasonable to conclude that we are overpaid.

London and Estonia are much different places with different salary expectations and living costs so you can't really expect them to be identical (not least across different jobs) but I think it's unavoidable that anyone with experience of both will make the comparison.

Sorry for picking on London and Estonia here, it wasn't personal :) I the same would apply to San Francisco vs Budapest or Frankfurt vs Manila or Oslo vs Rosario etc etc
Code quality means different things to different people. For some means applying the most obscure design patterns known to mankind and several layers of abstraction, for others it means Uncle Bob's teachings + GoF patterns, for others it means having pure functions everywhere, for others it means sticking to a strict style guide, for others it means following a particular set of conventions, for others it means writing readable and code, for others it means writing composable code, for others it means writing modular code, for others it means a mix of some of the above.
There is now an updated shop tour video in higher quality.

https://www.youtube.com/watch?v=HWPYoE1SNnA
I never voiced my attitude towards legalization of prostitution. I addressed very specific weak argument.

Sorry, if you found my comment rude, i assure you that this was not my goal.

You used abortion there. I don't think we could get a consent from fetus, law just assumes that female parent have a power over it's life until some development point.

People consensually participate at gambling, dueling, pyramid schemes, become criplled drugs and alcohol addicts, selling themselves and they family to slavery, do suicide.

Nor consent, nor something being an old and persistent part of the human culture are good reasoning.
> Probably the same thing with the Pixel 6/6P this year.

This is a big bet, but based on history Pixel 2, 3 and 4. It was better to wait for either Black Friday or Xmas sales.

I didn't look at Pixel 5 (wasn't interested in it).

(This ignores US based promos from service providers)
> greater-than-average scarcity

Isn't scarcity infinite?

Every argument against increasing labor share of income boils down to "oooooooioooh, inflaaaaaaaaation, spoooooooky!"
This looks great. I wish Nextdns provided this.
>This road leads to poverty, not prosperity (and more inflation as more money chases fewer goods produced in fewer factories by fewer workers).

You mean these people are so disgusted by the idea of taxation that they would abandon the business opportunity that has presented itself in front of them?
Apple just released a 13 mini, is that not in the same screen size segment?
Same boat, but after using brave search, it really is better (IME).
Does the article ever return to tell the reader what the timezone community was up in arms about? I gave up finding out, as the article just continued on tangent after tangent.
Well, there is the rub. The safe thing to do is more verbose, the unsafe way is in muscle memory. Rust did it the other way around deliberately. But that is easy if you do a new design and don't need to retrofit a safe solution. No snark intended.
I found it similar in style to the Foundation trilogy; trying to be very scientific but with very weak characters.
And do you need $200 Bose headphones?

Do you think it will be easy to sell them? Better get $200 off of the phone price then get freebies.
For browser biggest UI difference is tabs - they squeeze instead of scrolling. There are no plugins that can create a proper sidebar, but out of the box you can organise them into foldable groups.

Search results are noticeably better, especially for non-english and location-specific results. What's worse is image search - unlike with text you tend to get only 2-3 good, relevant results, everything else is only somewhat related. I suggest giving it a try even if you'll decide against browser switch.
>Encapsulation. High-quality code is most often made up of self-contained components: one cannot change the behavior of a self-contained component by modifying something outside of it, nor does the component modify things that are external to it (within reason—it makes sense for a component to read and update a database if that’s understood to be its job). This saves development time because when a component needs to be fixed, updated, or deleted, programmers spend less time searching for external causes and effects.

I am ok with it only if it doesn't mean "encapsulation in an OOP way" which means hiding state in many different places which leads to complexity.
> Related, I've often wondered whether people have categorized languages by how they change the way you think.

This probably has a lot to do with the society of speakers that you use your language with. For example, you use a very different register with very different thought patterns with your gangmates in your bad teenage years than with the client at your luxury sales job. There are concepts that will be simply be taboo to express to either speaker that would be natural conversation in the other.

I really disagree that there are expressions that are impossible to express in language, barring that limitation. Either a circumlocution will give an approximation (including where the original is ambiguous), or an expression can be coined to be introduced to that language, the society of speakers willing.
It's more analogous to an alternative history where the Ruby framework most people used was Rack [directly], not anything built on top of it (ie Rails).
Living in PHX, I personally love it...
so nice not to ever have to worry about changing time/clocks.
Hackad: Curl Use on TV
> You can't compile if the schema changes without you knowing about it

That's why you don't normally compile against the production database. You version control the database schema and use it to create a local database to compile against. This way you can also test potential future migrations using branches.

Compiling against the production database should be done separately, as a kind of free integration test (usually in CI).
The thing is, I don't think I have an option to use anything other than setup.py. For example, I read:

> and as part of the deprecation of distutils, having setuptools installed at all even when you don't import it can change the behavior of import distutils.

How am I supposed to replace the following (a modified version of https://stackoverflow.com/questions/724664/python-distutils-... ):

from setuptools import Extension, setup
from distutils.command.build_ext import build_ext

copt = {'msvc': ['/openmp', '/Ox', '/fp:fast','/favor:INTEL64','/Og'] ,
'mingw32' : ['-fopenmp','-O3','-ffast-math','-march=native'] }
lopt = {'mingw32' : ['-fopenmp'] }

class build_ext_subclass( build_ext ):
def build_extensions(self):
c = self.compiler.compiler_type
if copt.has_key(c):
for e in self.extensions:
e.extra_compile_args = copt[ c ]
if lopt.has_key(c):
for e in self.extensions:
e.extra_link_args = lopt[ c ]
build_ext.build_extensions(self)

If distutils is deprecated, and setuptools causes problems ... what should I do?

I know setuptools is a "hot mess". It took hours of puzzling to figure out how to compile things correctly, and includes input from other people who spent hours puzzling things out.

So I am ... sad isn't quite right. Depressed? Down? Feeling like and outsider? .. every time I am reminded that I am not one of the "most people" in "works for most people".

While I (and you) are here, is some way to distinguish between "developer" build environments and "deployment" build environments?

I was looking more at the general topic, trying to figure out how to migrate. I saw this example:

[build-system]
requires = ["setuptools >= 40.6.0", "wheel"]
build-backend = "setuptools.build_meta"

I have two build environments. A development build environment requires Cython (I have hand-written Python/C extensions and Cython extensions). On the other hand, source distributions include the "cythonized" C code from Cython, so people who install and deploy from source don't need Cython. [1]

In my setup.py I say:

try:
from Cython.Build import cythonize
except ImportError:
def cythonize(x):
return x
def rename(filename):
return filename.replace(".pyx", ".c")

else:
def rename(filename):
return filename
...
= cythonize([Extension("spam", sources = [rename("foo.pyx"), "bar.c"])])

Is there a way to distinguish these two environments in pyproject.toml?

[1] Other than 'setuptools' and the need for a C compiler, my package has no dependencies when building from a source distribution.

EDIT: P.S. A reason to stick with "python setup.py develop" instead of "pip install -e ." is to avoid that frequent nag to "consider upgrading" pip. ;)
Which is not actually surprising because the dominant change is the migration from non-poor to poor, not the change of the average score - 1980 has only 9% poor results, 2020 has 40% poor results.

When scores change, at first the average scores within groups will change, but if the scores change enough they will eventually cross group boundaries at which point the group averages become more or less irrelevant and the changes are mostly reflected by changes in group sizes. The group averages are bounded by the range of each group and can only indicate if the group is moving towards one of the boundaries, but as scores cross boundaries they start contributing to different group averages and at opposite ends, e.g. decreasing scores will at first contribute at the lower boundary of one group and then at the upper boundary of the next lower group which may increase the average score of both groups, in one case by loosing a low score relative to the group range, in the other case by gaining a high score within the group range.
Same here, I’m in Shenzhen using Shadowsocks VPNs and many of my faster exit IPs were being blocked in recent months. Other times there are 5xx errors and when it does work, it’s significantly slower than Google and even DDG, especially on lossy / jittery links.

I really hope they improve the service, I was enjoying it as my default for a while.
As the compiler assumes you wont produce such values, wouldnt it also optimise those range checks away?
It's part of the Discourse forum software, it can show you how many people have clicked on a link.
Weird virtual creatures mutate their bodies to solve problems
Hi Fredrik, if you're based in Europe or America I would suggest joining one of the online UK Smalltalk User Group meetings and have a chat with us. You can check out our website or drop us an email - details are in our profile.
Why wouldn’t many of them care? The alternative investment for many people with means is the stock market. If I can make my money back on solar in 8 years, that’s roughly comparable to the long-run stock market returns, so it costs me little to sell $30K in stocks, buy a PV system, and feel like I’m doing something concrete to get cleaner energy.

Cut that return to a third of its previous value and I’ll leave my money in stocks and just buy electricity made from natural gas.
Yeah.

But I was lucky during Pixel 3 preorders, after 3 weeks the phone was off 100 Euro, I wrote to customer service and magically they gave me back 100 Euro price difference.

For Pixel 4 I waited till January when it was finally available in German Amazon, after a year NFC stopped working, and Amazon returned me the whole amount after I returned the phone (they didn't have Pixel 4 in store for replacement).
What does it mean for a novel to be of high quality? It's not easy to define and it's somewhat subjective, but equally there are definitely things that are not acceptable.

Some things that can help move towards higher quality code:
- avoid duplicated code - especially when it's similar but subtly different
- variable names that mean something useful
- lower code nesting
- shorter functions
- fewer parameters

Many of these things are focused on improving how understandable / maintainable the code is.

But, as for novels, there aren't just rules you can follow blindly.

Perhaps this helps: https://garywoodfine.com/what-is-clean-code/
There are indeed large ranges of highly valid reasons why having phone/ Internet connectivity is highly critical.

But sure, "post duck photos". I understand it was perhaps meant as a paraphrase, yet it is indicative of an almost callous level of arrogance at the author's company.
It really is strange and I don't understand what's driving all these bad decisions.
And worse, the marriage of capital and politics is wrecking havoc. People are represented less and less vs special interest who never had it this good. Making a u-turn becomes harder and harder as time goes by.
The genre was really defined by Young Frankenstein a few years earlier, but arguably Airplane! is funnier (faster and even more absurd in gags). The decade 1974-1984 was a fantastic period for comedy.
https://m.gsmarena.com/sony_xperia_5_iii-10851.php

They still have them. They grow a little bit, but the real issue for me is price...
A Library of the Best Product Management Books for Product Managers
Far Eastern Group
Thanks for this explanation. But yeah, I meant : are there applications where use of denormals vs. flush-to-zero is actually useful... ? If your variable will be nearing zero, and e.g. you use it as a divider, don't you need to handle a special case anyway ?
Just like you should handle your integer overflows.

I'm seeing denormals as an extension of the floating point range, but with a tradeoff that's not worth it. Maybe I got it wrong ?
Nowadays it's mostly just goths, at least in the UK. Although Edinburgh has managed to turn its cemeteries into tourist attractions. Partly serious historical (Hume), partly morbid-fantastic (ghost tours), part Harry Potter. Plus the only US Civil War memorial outside the US, an incongruous statue of Lincoln overlooking the city from Calton Hill. https://en.wikipedia.org/wiki/Old_Calton_Burial_Ground#/medi...

Look out for the distinctive pink porphyry monuments; as a hard and acid-resistant stone, many of these are in perfect condition despite being a century or more old.
Individual investors’ ability to “write off” capital losses is limited to offsetting any gains plus $3K/ year (in the US).
the map design of the user modified computer-game Team Fortress (quake fortress, team fortress classic, TF2 from half-life series) has navigation: mirroring one side of the map to the other side, applying 2 colours (on either side); at first the map confuses then "the brain" grows accustomed
> The majority of people who want a smaller phone do so because phones aren't so important to them.

Like the other person, I say this is a ridiculous claim. I'd go as far as say most techies I know want a smaller device than what's available in the Android land, and would be willing to pay a premium. Small size has been the second most important feature of the Pixel line, right after the great camera.
Ask HN: How to design a back in stock notification system?
I want to design a back in stock notification email service, where the users can sign up on the out-of-stock page and get notified when the item is back in stock.
If I have the list of users subscribed to back in stock alert and another table that has latest stock availability, what would be the best appraoch to build an efficient system that looks at these data and trigger back in stock email ?
- Do I poll the stock table for change in stock and then compare with user table and trigger email ?
- Is there any other better ways of doing it ? Is there any design patterns/ specific tools/ constructs to solve such problems ? I am gravitating towards as event driven model - but not sure what to look out for this problem statement.
I am not looking for a complete solution, but opinions/ pointers to any resource would be greatly appreciated.
> By the way, if someone dies because of it, the only person whose conscience it is on is the person who bought a phone they couldn't afford and then didn't pay for it. Just like if someone died because the car got repo'd and they couldn't drive to a hospital.

Sure. What they were thinking trying to buy something without having money, right? And even worse, what they were thinking being poor. They should have bought a very shit phone, closer to what they can afford. And if they lost their job and then couldn't pay for the phone, it's their own fault. /s
Oh, I meant to imply that you would procure and assemble your tools once on-site. What you don’t pack-in, you may not need to pack-out, etc.
My guess is that they're unhappy of being a fringe browser with a "small" (a few millions) crowd of loyal users, but instead want to be "great again".
I can’t reasonably do dev on windows, I’ve tried.

So, I have to use linux.

And I have to use something which supports my 27" 4K monitor at 1.5x scale today, not at some point in the future.

I can’t just not work until this is fixed, I have to deal with what broken tech exists today. Sadly.
Back in time I was working on an online trading card game, the integration test was running in the live server. (Don't ask me why. All I can say is that the server had to be hastily built for some reason and it was known to be suboptimal in several aspects.) In order to avoid inference the test created tons of placeholder accounts and corresponding environments and it actually ran mostly well given the circumstances.

One day I received a report that several accounts were simply disappearing and had to be re-registered every few days or so. I had to go through lots of recorded logs to determine what was happening: one of these accounts was named "Card" and some test was using it as a placeholder account, so it got removed when the test finished. How apt it is, that someone would use "Card" or similarly rare handles in a TCG. The testing infrastructure was updated to ensure that placeholder accounts can't coincide with actual accounts and affected users were compensated.
Quite the opposite, in fact.

I am listening and disagreeing. I don't want you to agree with me, you do. I listen and form my opinion.

It is exactly what I was talking about. To you, listening means the listener agreeing with you. To me, it is the listener understanding your point, which I do.
And I believe you are very wrong. If you come into a conversation expecting other people to "listen" the way that you intend (i.e., agreeing with you), you'll often be unsatisfied.

Now (I am empathetic here, wearing my manager's hat), it may very well be that I am wrong here (I am not), and surely I believe you have great potential (who knows) and the company needs people like you (whatever that means). We'll continue this conversation at the our next 1:1.
Dropping more food and waiting for a better conditions for rescue is risky. The volcano is always changing and could suddenly obliterate that part with lava, or poisonous gas, or ashes. They could maybe use a trained dog in a cage as bait, but could be seen as animal cruelty.

And, well... The new Spanish law of animal cruelty is an incredible mess bordering religious stuff. The government want to force every owner of a dog or cat to castrate it by law. (Yes, trying to save tree dogs on film, wile planning forced sterilisation for all dogs and cats in Spain).

I could be wrong, but this is that they were saying on TV the last month.

If you are a dog owner and want to have your dog entire would be illegal because... think on the sad pups that could suffer if they would born (but, what is never alive can't suffer, phew!).

Sometimes I wonder if those people are real of robotic IA running wild doing laws without any real people at charge.

Vets of course would be drooling with that idea.
Viruses are both the villains and heroes of life as we know it
He means simple stuff like ensuring a function like

float
unit_price (float volume, int count) {
return volume / count;
}

is only called where count > 0
At least GCC is I believe fairly buggy in that regard since isnan is optimised out, thus you cannot check if say an incoming value read from the network is a NaN. There's some lengthy discussion about it on the big tracker iirc..
No kidding. If I was giddy to buy out a company and their CEO told me there's another company that is much better than them and also looking to get acquired and insist their people are better when I push back on it, I'd be extremely cautious about going forward as planned.

It may not be that the other company really is that good, but if the CEO is so comfortable underselling their own team, that suggests the company is not as attractive as initially thought. Especially in a space where hype is the norm.