skysight-inc/HackerNews huggingface dataset:
There are a variety of uses that a website operator might make of a User-Agent header.

Today, many of those uses are associated with identifying computer users, usually for tracking and/or advertising purposes, sometimes for access control, e.g., limiting access to only "acceptable" clients that run Javascript.

In this case, lite.duckduckgo.com, which can be used to make DDG search requests via POST instead of GET, has returned search results without requiring a User-Agent header since 2021. This is common. Fun fact: The majority of websites on the internet will return requested pages absent a User-Agent header.^1

Given that DDG is in the business of marketing itself as a privacy solution, it is curious to me why DDG is choosing now to collect more data from its users, expecially an item of data that is frequently (mis)used for purposes that contravene "privacy".

DDG was allegedly founded to "respect users' privacy" and to offer an alternative to "filter bubble" search results. The web search providers that DDG is supposedly competing against make heavy use of the User-Agent header for so-called fingerprinting. Fingerprinting can be used for a variety of purposes, but "respecting user privacy" and avoiding "filter bubbles" are not among them.^2

1. I have been using the web this way for many years now, sending only the minimal HTTP headers. I use non-browser clients and a text-only browser, so I have little need for graphical design, "responsive" or otherwise. As such, I send comparitively less data to web servers than if I was using a popular graphical browser. I avoid graphical browsers not for "privacy" reasons, but due to personal preference, although I welcome any "privacy" benefits that come as a result of this choice.

For folks who are concerned about graphics (cf. text), sending a UA header might be useful. YMMV.

Some amount of "fingerprinting" is inevitable if using the internet. Every remote access, regardless of the software used, has a fingerprint. However not all fingerprints are created equal. Some might be composed of less or more data, and thereby less or detail. Arguably, a more detailed fingerprint is generally higher fidelity. Therefore the more details the fingerprinter can collect, the more useful the fingerprint, e.g., for commercial purposes, and consequently, the larger the loss of "internet privacy".

IMHO, it would be a mistake to conclude that the inability to avoid any amount of fingerprinting (something that has never been possible) means all software is sending the same amount of "fingerpint" data to remote servers and thereby all TCP/HTTP clients, including but not limited to web browsers, are the same with respect to their "fingerprintability". They are not. See, e.g., https://arxiv.org/pdf/1703.05066.pdf

2. The UA header can of course be used for "browser sniffing", but keep in mind that in this case lite.duckduckgo.com is very basic HTML. IMHO, it is not a highly stylised web page. Consider also that UA "spoofing" has been common since the early days of the www and today Google is actvely trying to "deprecate" use of this header in favour of "Client Hints". See RFC 8942.
That book described total energy expenditure for an individual per distance traveled. It does not improves much even after years of training. It is interesting that for running the efficiency does not depend on speed as wind drag does not contribute much below 20 km/h. This is different from walking. Walking at relaxed pace is the most efficient and uses 2 times less energy per distance than running. At about 7 km/h walking becomes less efficient than running.
The US was never a 100% free market. But it was pretty close, and the beauty of a free market is the closer it is, the better it works.

> anyone who thinks a system that observes slavery qualifies as a free market should be embarrassed.

I usually say "excluding the slave south". Nevertheless, let's compare the slave south with the free north. The free north economically buried the slave south, which was a major cause of the southern rebellion. They wanted to protect their economy from the depredations of free labor.

The south lost the war because the north buried them with arms and supplies and trains and everything needed in plentiful supply to destroy the southern barefoot armies.

A similar thing happened in both WW1 and WW2. The American free market decided the fate of Germany and Japan the day the US entered the war, because Germany and Japan simply were overwhelmed. The US supplied not only themselves, but supplied Britain, France, and Russia, and still buried Japan with overwhelming endless supplies of everything the military wanted.

The Japanese understood this (Hitler didn't), and tried to win WW2 with one stroke (Pearl Harbor). When that failed, they put everything on the line at Midway. The carriers were sunk, their best pilots were killed, the planes were lost, and Japan could not replace them, and everything went downhill for them from there. The US lost carriers and airplanes and just built lots more.

Hitler lost WW2 the day he declared war on the US, in probably the stupidest military move in history. You can't win against a free market country unless yours is free market, too.
I've been thinking about more or less the same idea, but the computational edge inference costs probably makes it impractical for most of today's client devices. I see a lot of potential in this direction in the near future though.
People have agency but one anecdote of a co-worker with bad judgment does not suddenly make everyone stuck in a miserable situation through no fault of their own, suddenly better.
I learned (many years ago) that I won't be fired on spot, for some reason.

This made me appreciate how desperate is the industry for software engineers. :)
This sums up nicely exactly what I was going to say. A solid editor helps me transition if I've been thinking in a different language.
LOL of course it's in the UK
This is why I stopped listening to Serial as well. The prospect of listening to details of someone's death as entertainment felt morally problematic to me.
> Deep Learning for Coders by Jeremy Howard

Can you discuss a bit more on this choice?
what's the alternative? invent and validate everything yourself?
Infrastructure platforms shouldn't be the deciders of what gets hosted online. Sure, those sites aren't nice places. But I'd much rather have governments take action on them if they are illegal than have CEOs in mega corps decide in combination with the court of twitter.

Services like domain name providers and ddos protection are so essential for putting content online that they should be regulated as utilities. It would be absurd for a power or water company to cut service because they decided something legal but undesirable was happening at a building just because enough people tweeted at them.

There are some services that should be allowed to pick and choose what to provide. A forum like HN or reddit for example is perfectly justified removing whatever they want. If you don't like it, go somewhere else. But once you get to the point where your domain name and phone number are getting canceled, its no longer possible.
> Apple does repair programs or recalls when something like that happens

Usually those repair programs are limited to a few years after purchase. I still have a 2015 MBP where the reflective coating is damaged (screen looks really bad) but it only got bad after the repair program has expired.

I also had a 2016 MBP (gave it to a relative) but I'm scared that the flex cable or the keyboard are going to fail and repair is going to be too expensive and Apple won't fix it because it is too old.
Ha, that's so needlessly inefficient! Now let me get back to work with my Electron code editor while I communicate with my team in four different Electron chat apps and code a web page which requires 2.5MB of assets to load (not counting the massive autoplaying background video).
The early Canaanite Yahweh had a wife and equal, Asherah, goddess of cakes, etc. The misogynist Hebrews demoted her to a stick, which they could not eliminate because she was still essential to important rituals, for centuries after. (Evidently a stick sufficed.) They finally managed, but there are still traces in the Torah, hard to scrub out.

After the Temple was razed c.70 CE, none of the rituals could be worked anymore, anyhow.
Whenever I hear this I chuckle.

Say you book a wedding with your fiance and on the week prior ask her if there's any reason behind the wedding date being when it is. And if you dig deeper you'll see no "real life consequences" will happen to either one if you miss it, either, but I'm guessing she walks over missing this "arbitrary date".

The fact that nobody dies or a regulatory body doesn't fine you straight away, or as you put it, if it's "arbitrary" doesn't mean much. The industry your whole company is in, at some point was also an arbitrary choice by whoever started it. We're humans, pretty much everything we decide to do is arbitrary.
I had mine done by Apple at an Apple Store and then got it wet two days later. It was destroyed instantly. They gave me a new phone at no cost.

As a result, I now recommend AppleCare replacement over any repair, if the water resistance is important to you.
No it’s not included.
Of course I did. It convinced me to move beyond java.
Cost-disease is probably a factor, however as cost also goes up very quickly with distance it is probably not the major one. n vs. n²
Thanks, Zeal looks interesting until one tries to use it.

I've installed Zeal and installed the Python documentation. I can see the Python tree (among others that I've installed) in the sidebar. But searching for "python append to list" or "append to list" return 0 results. In the preferences I enabled fuzzy search, still no results.

So I turned to the tree to see how easy it would be able to find the answer. I opened the Python leaf, and from the 15 subleaves I opened Structures. In there I see "PyCompilerFlags", "_frozen", and "_inittab".

I'll be sticking to Google, unfortunately.
It seems similar to me to non-compete agreements, which are unenforceable in California, but enforceable in many other states.

>At the end of the day, there was an agreement and I gave my word on something.

Sure, but the anti-TRAPers would say the ideal situation isn't that you can break the agreement, the ideal situation is that the company doesn't require the agreement in the first place.
He has a vested interest in renting hardware, so resource efficiency is opposite to his goals.

It would not surprise me he praises Python =)
Why is Rust supposed to be good?
you seem to have ignored that I searched in Taipei and Singapore, not just America. Your argument might work if I choose Thailand and it returns anything European for "French Restaurant" since that is "other". But it doesn't. It returns exactly and only "French restaurants"

Searching Chiang Mai for "French Restaurant" from google.co.th with my timezone set to thailand and my ip address as a thai IP address still has the same results. Searching for "French Restaurant" gets just french restaurants. Searching for "Malaysian Restaurant" get stuff all over the board including Indian, Japanese. Searching for "Chinese Restaurant" even gave a result that was "Thai"

> If I was in the mood for something a little different from Asia and couldn't find a Malaysian place, I'd think that Burmese food would be a great substitute to try if there's one in the area

That IMO is exactly the bias I'm talking about. Only a non-asian would think if someone asks for "Malaysian" they really mean "anything other than European". Fremont is 60% Asian. Catering to "Americans" want shouldn't even be a thing. What's an "American". AFAIK, All the Asians born in America are American and most if not all of them want what they're searching for, not some non-Asian's interpretation of what they're looking for
Cyclical data structures are difficult to reason about, full stop - not only for the borrow checker.

Unsafe is there if you need it. It gives you C pointers for everyone and their debugger to blow up on. The difference is Rust makes you painfully aware that CS 101 is actually hardcore engineering.
They really should, but only in America since Americans love paying huge tips. Make sure the buttons offered are: 15%, 25%, 50%, and 100%.
1. I did not use the word "normal" or "advanced" once in any comment, nor did I ever imply it. You are, in fact, continuing to make assumptions about me.

2. "Pretty much every culture worldwide that is prominent economically today has mostly moved away from entomophagy" is carefully stated so as to be a measurable claim. Sort by GDP per capita and consider the percentage of insect protein in diets. The cultures at the top of the list are not merely Western or colonial remnants.

3. My point is about energy efficiency, which is value neutral. It seems obvious that human cultures have an incentive to use resources efficiently, or else be outcompeted by cultures which do (ala historical materialism). Given that (a) most every culture has passed through entomophagic periods, (b) most cultures have known how to farm insects for millenia, and (c) recent studies show this practice is incredibly energy efficient, this should imply that every economically prominent culture today should already be getting the majority of its protein from insects. We should predict millenia of insect-based cuisine as the global mainstream default, and entire supermarket aisles of produce. The fact that we do not see this is surprising, and therefore invokes caution via Chesterton's Fence.

4. It is known that some percentage of people enjoy foods which trigger the evolutionary disgust response, such as extremely bitter foods, or snakes. Perhaps this is because said response is not uniform across the population, or perhaps it can be overcome via other means. But the fact that some people do so does not preclude that the response exists for some good reason.

5. What you are calling "weasel words" are what I call being careful with the level of confidence with which one makes assertions in conversation. I am not an expert, and will not make assertions with the certainty this would permit. You too are certainly not an expert.

6. I am not interested in continuing this conversation further; I'm writing this to clarify my thinking on #3 and #4, and for the benefit of future readers. If you selectively choose to disbelieve science when it doesn't support your beliefs, without examining the underlying facts, this implies that your beliefs are not rooted in fact. I also find your insults and personal attacks distasteful.
This is an essay by a nerdy college kid about making friends with other nerdy college kids who are also desperately looking for friends.

You don't need a guide, it's like shooting fish in a barrel. Everyone you meet is working on something they think is awesome, and they all think that what their peers are doing is awesome, and everyone and everything is awesome all the time, because they have no mundane responsibilities and spend their days dreaming about an awesome future.

It's different when you're an adult and you do a lot of what you because you have to and not because it's awesome, and you're surrounded by people who also mostly do things because they have to, and talking about those things with them is sordid and kind of unpleasant for both of you, and the crazy dreams of awesome you used to have are kind of a childish phase that many people leave behind.
Yeah, syllabaries are absolutely the norm, and usual end state for a script, from Japan to Ireland. The Greek innovation of splitting syllables into diphthongs was revolutionary.

Still, one syllabary had to be first.

Logograms evaporate when you want to write foreign names and words.
Have you tried VisiData for this?
On another note, you can also downscale an image, save it as a JPEG or whatever, then Upscale it back using AI upscaling.
Thanks to having too many jobs/responsibilities, I currently am switching multiple times daily between Rust, Typescript, Dart, Python, and sometimes, god forbid, C/C++. Usually at a moments notice, because a lot of times I'm writing FFI between those languages so it's multiple at the same time.

I just fuck up in small ways, a lot, and accept that I'm gonna do so thanks to context switching. func/function/fn, var/let/auto/wait I don't even have inference in this language, etc. It just happens, and there's some idiom bleed too.

Luckily IDEs are usually real fast to squiggly red line things now and boot me back into whatever the current context is going to be, and for the code I get reviews on, idiom bleed can be called out.
I think you DO have to know about those, or close analogs, in writing Rust. I like both C++ and Rust but I will rise to defend C++.

1. Exception safety becomes "catch_unwind." You might object that nobody cares about that, but major C++ codebases (Google, LLVM, Mozilla) don't care about exceptions; they are built with -fno-exceptions.

2. Move semantics in C++ are annoying, and so is the borrow checker. In Rust you get hit by things like "this code is fine here, but you aren't allowed to refactor it into a function" because there's no interprocedrural visibility into struct fields.

3. Meta-template higgery-jiggery is real and bad in C++, but has a mirror in Rust. With C++ duck-typed generics you write dumb code that does the thing, and then you can refine it with hilariously awful techniques like SFINAE. In Rust you're googling higher-ranked trait bounds before you can even write the thing. What does `for` do again? I think "strongly-typed language, duck-typed generics" is a bit of a sweet spot and C++ has lucked its way into it.

4. "30 years of cruft" means things like "I speak C preprocessor" which is practical. C compat is why C++ is both so awkward and so successful. There's no smooth ramp from C++ to Rust, the way there was from C to C++; that's a choice and maybe the right choice but it has a price.
I would say about 85% of deadlines are just pointless and 15% do actually matter and it is very crucial to recognise which deadlines do matter.
One non-obvious factor is family immigration. US is often more generous wrt relatives that you may sponsor once you're a citizen yourself, and especially on how many visas are issued in the family category (indeed, there are no caps or quotas on immediate relatives!), while other places tend to strongly favor the skilled worker and investor categories. For example, in Canada, family-based applications account for ~25% of all permanent residence permits issued yearly, while ~50% is economic; in US, family accounts for over 60% of all green cards.
The Azure CTO knows as much about C++ as to easily confuse it with C. Anybody who say C/C++ is not aware that C++ is vastly different from C and it can't be combined into a single "language" like this. Mark Russinovich puts his ignorance on full display here.
Rust exists in a way to point out that C++ is waaaaaaaayyyyyy harder than it looks.
I like memory safety as much as the next guy but an unelaborated opinion tweet is not hacker news.
Two things I forgot to add. Most programming languages have ‘linters’. Linters analyze syntactically valid code for mistakes of different types. Mistakes can be something like you forgot to use a variable you created, to you’re performing some operation incorrectly.

Linters are useful in general, but in your case they can help you write better code when you aren’t as familiar with the language. Go has a project called golangci-lint, while TypeScript has eslint.

The second thing is code formatters. Every language has its own formatting style, so it can be nice to have a program that does the formatting for you. Go has gofmt, and TS has Prettier (among others).

These tools add some complexity, but if you set these up you’ll have some extra guard rails as long as you remember to run them, or even better run them as a GitHub Action.
In the real world, programmers and engineers are only a relatively small cohort of the people involved in making something that can be sold. There are 10x more people handling procurement, manufacturing, testing, and a host of other activities. They can't all make 350k and it doesn't stand to reason that the design side should get a disproportionate share.
Missing a deadline doesn't mean that deadlines are pointless. And yes, Airbus and Boeing missed those. Guess what, they had to pay contractual penalties.

You want to do creative work without deadlines and real world consequences for missing those? Become an artist, a rich one preferably because sponsors and exhibitions are a thing in the art world, too.
I refer to my own cheat sheets from time to time.

For example, iteration is so different in TypeScript and Python and I sometimes must remind me about brackets in TS/JS. So I finally resort to a cheat sheet.

Highly recommended!
He wishes he was a little bit taller

He wishes he was a baller
It is really interesting to talk about semantic lossy compression, which is probably what we get.

Where recreating with traditional codices introduce syntactic noise, then this will introduce semantic noise.

Imagine seeing a high res perfect picture, just until you see the source image and discover that it was reinterpreted..

It is also going to be interesting, to see if this method will be chosen for specific pictures, eg. pictures of celebrity objects (or people, when/if issues around that resolve), but for novel things, we need to use "syntactical" compression.
Run continuously for 24 hours to cover a 309km distance
If you are two parties to some project (e.g. a software product pr feature that should launch time with an investment or business change) that agree to a date, it starts off arbitrary. Everyone wants it as soon as possible, but exactly when is arbitrary.

However once you agreed to it it's no longer arbitrary. It's the agreement. That other part of the business that changes their accounting software or replaces the machine on the factory floor has agreed with you to ship by that date.

Arbitrary but committed to in a sense that would be detrimental to some other part of the business if you miss it. That's not quite completely arbitrary.
> a disturbing lack of people requesting a seattle meetup

Not going to lie, as someone currently living in Seattle, the lack of people from here requesting a meetup is the most unsurprising thing in this thread.
Despite the recipes, culture war forays, and lesbian dance theoretical discourse, you will note that the Grauniad regularly breaks top stories, such as the Snowden revelations. Their international news is unrivaled in the consistency and quality of coverage. Where even an American staple like NPR regularly mixes cute dog stories with headline news, you can count on daily updates to major world storylines in the Guardian.
Witness their coverage of the Russian invasion of Ukraine, for example, to see: “day 265” or whatever it is by now, with clear threading and updates to those threads.

Al Jazeera is OK, but tends to be inconsistent in coverage and carry a relentless Gulf perspective, which is great for the region, but not anywhere close to the level of serious journalism the G brings to the table. Even the Washington Post, with its paywalled exclusive appeal to mainstream centrist Democrat-leaning upper-middle class folks fails to achieve the consistency and egalitarianism of the Guardian. It’s simply the pinnacle of modern journalism, in my opinion, and as such, belongs to its own category.

Serious journalism indeed