skysight-inc/HackerNews huggingface dataset:
> The last update of Firefox mobile really made wonder how it passed QA

They had it as a separate app, as it was (seemingly) a rewrite that uses GeckoView. So having less features and unstable features was somewhat expected for users that went out of their way to install it.

Naturally, a lot of the old features weren't supported, and some were likely feeling like unmaintainable legacy code in the old version (Fennec) to begin with. So a rewrite may have made sense, for where the products were at and where they wanted to go. At least, in my opinion.

But for whatever reason, they decided that they had reached an acceptable level of feature and usability parity as to replace the old version with the new one (Fenix) in the play store. Somewhat forcibly moving all of the current users onto the new browser, silently for auto-updaters and update-all-ers. The downgrade path for those who want or need the old version is... well, I didn't see any documentation when I googled, so presumably it's "install the old APK and hope things work".

It's a cynical and somewhat egotistical approach to software development, disappointing to see from Mozilla and yet another entry on the list.

At this point, I would not be surprised if they find the idea of the extension whitelist - rather than a more open platform as is the desktop and was Fennec - far too appealing to move away from in the future.

That's somewhat doom-and-glooming, but many months ago I had thought they wouldn't end up trying to shove Fennec users onto Fenix in this way, and yet... here we are.
Look, that web app in that tutorial is roughly 200-300 lines of code in regular js/css/html, maybe less.

The onus is on you guys to tell me why I’d add cognitive overhead for simple webapps, and if it’s coming from the Rust community, I’m expecting to hear ‘performance’, in which case I’m game.

I have the same opinion on overheard in the JS churn cycle, it’s up to you to make the case why the overhead makes sense for the cruddiest of apps.

We shouldn’t coronate things willy nilly. If Rust is the one true blood prince of the C era, I expect him to reign in similar domains, but please don’t flex that power in domains where you are a sub standard solution.

All hail Rust, but jesus, slow down. That’s a simple js app.
One day we'll get to the point where MUNI is replaced with private bus lines. Although the regulatory environment here might prevent that.
They still ask that. They will ask those questions whenever you need a visa issued or renewed.
I wondered if anyone has ever said yes to the genocide questions.
> "all or nothing" is ridiculous as the only option - let me revoke access or restrict it to specific sites.

Thank you. I've been waiting for Firefox to add this feature for almost 2 years. For a privacy focused browser, this should be a must have, top priority.
Just thinking out loud here —

1. I think it's a lot harder to rig something to look good vs. like a landslide.

2. Making it "close" could potentially open up risk if something the victorious/controlling party didn't account for it (eg. uncounted ballots are uncovered due to a legitimate accident)

3. Suspicions don't really matter when you can just jail your opponents for arbitrary crimes.
TikTok collected device identifiers for year in violation of Android policies
I actually had the opposite experience. Datadog sales team was a breath of fresh air after dealing with New Relic's team.

It was like pulling teeth trying to get pricing for New Relic APM but Datadog reps came with a ton of pricing info
A Darker View of the Renaissance
Possibly Scheme or Racket? S-expression, functional languages don't seem to accumulate language features at an incredible rate (but I don't use them frequently so someone might correctly contradict me).

I too like Go's restraint. It really doesn't want to give you a tool to make a one-liner that is easy to conceal a bug. For example, Go's increment (eg, i++) is a statement, not an expression. You can't do list[++i] or anything.

There are parts of Go that I'm less a fan of, but they keep a nice eye toward making sure that the code is understandable and reviewable.
Ironically, these days with front end development I'm finding it hard to accurately scope how long it will take to incorporate 3rd-party dependencies. The docs make it seem straightforward enough, but they don't cover how to use it correctly under TypeScript instead of ES, or how to use it with Angular instead of React, or how to build it with Rollup instead of webpack, and I often spend an entire day googling obscure blog posts on how to get a dependency working in my own ecosystem.
Yup. I mean we do have to make money, and deal with the administrative complexities of modern life, and we should find strategies to cope with that. At the same time though, our brains are not somehow defective or lazy for wanting to do more interesting stuff.
Did you just write that Mozilla, a company whose core product is making a browser, should just stop making their core product since it is losing market share?

Maybe they should start making cars, or washing machines. But you know what will happen? They will not conquer any new market and they will also lose the one they had.

Mozilla constantly ignores the user needs (extensions, customization) and adds new, "cool" stuff that nobody wants (Pocket, accounts, Mr. Robot adds).. Those "cool" things are only interesting for the managers who want to put it into their CV and some developers that enjoy working on greenfield projects that will never be completed.

At the same time, the core product dies: user needs are ignored, money is spend on everything else, not the browser.
> Getting diagnosed this year changed my life too.

This is awesome!

> following what works specifically for ADHD e.g externalize information, externalize decision making etc.

I bet everyone would love to hear a little more context around what this is, and how it impacted you, if you have the energy to share. (Me most of all!)
"If an OSS community like Debian can manage this, why shouldn't Mozilla be able to do it."

Debian receives hardware to test and develop on, infrastructure, and other non-monetary support from various corporations that view Debian as a project with strategic value to their businesses. Debian also benefits from only having to package software and forward bugs to the appropriate upstream maintainers -- including Mozilla. I mentioned the lawyers at Mozilla only as an example of something they actually do need money to pay for, and I strongly suspect that Mozilla's legal team has more work to do than Debian's but do not have any first-hand knowledge. Technical work is probably a larger expense for Mozilla than legal, just by the nature of developing and maintaining a web browser that has to support the modern web (which is more application runtime than document delivery).

"Mozilla can go public"

At which point they will be beholden to their shareholders and will have to be even more revenue-focused, which is what I was replying to in the first place.
Refactoring always requires a deeeep muscle-memory of the codebase, getting to that point at a job is a great feeling. Sometimes (always?) making things pretty pays off, too! :)
And how would those new users make Mozilla money?

Maybe DuckDuckGo could pay Mozilla to be Firefox's default search engine and get many more eyeballs on DDG… but if uBlock Origin blocks adverts on DDG, why would DDG pay Mozilla?
though tbf, i don't think there is any other way to do apm in nodejs
That's of course true. Which is another reason why I think that eg voting computers are an inherently bad idea (independently of who manufactures them). But my main point was that this sort of capability embedded in routers can only be used once and likely only in an end of the world scenario and therefore is of limited interest to "China".

Now I'm wondering whether I'm mistaken? If my connection to a website/device is properly encrypted (SSL/TLS), can a mitm attack (eg by an embedded hw bug) strip that encryption away? If so, that would be bad and would invalidate large parts of my argument above. If it doesn't however, then it wouldn't really matter that much I think. Unless... the device somehow saves a copy of the traffic for later decryption with better hardware down the line. That seems doable but not really feasible at scale. (Then again, maybe a few bugs in the routers installed at a few critical facilities or locations like downtown DC are enough to gobble up enough juicy traffic?)

I think on the whole it was a bad idea to offshore virtually all production capabilities for chips and computer hardware. (This is especially true for Europe which lost its hw production to Asia and its software production to the US.) Now we have to cope with this situation as it is though, and it seems to me that the best way to do that is to improve transparency by doing what I wrote above, radically reducing complexity of protocols and the tech stack (eg openssl vs wireguard) and forcing companies to clean up their act wrt IT practices. Not easy at all, I know.
That's what I get from roller skating (at crowded-ish rinks). I'm not that great at it, so I need to be concentrating to the exclusion of almost everything else in order to not crash into children like an irresponsible adult.

The pulsing flow of the other skaters; the groups, like schools of fish, expanding and contracting, creating gaps to squeeze through on only one foot which then immediately close hard behind you, blocking anyone who may have been following, meaning that any path through congestion is necessarily unique to the individual. The requirement of an almost full 360-degree awareness of a varying number of parts all moving at different speeds. And yet family-friendly at the same time in the same space.
(Apologies for the very slow response.) W Richard Stevens died in 1999. HN started in 2007. Is it possible that you're thinking of someone else?
> When the flag package sees -h or -help, and those flags are not defined, it now prints a usage message. If the FlagSet was created with ExitOnError, FlagSet.Parse would then exit with a status of 2. In this release, the exit status for -h or -help has been changed to 0.

This is nice. I basically only write small CLIs with Go and don't explicitly define help flags. I always wondered why it returned an exit code of 2.
I don't think that is the case for many people, myself included. There are two sides to this not being the best way to think of it for some:

- slipping on deadlines becomes cumulative and does affect your career or business; the more work that is delayed, the most difficult it seems to be to ever catch up

- there is a fast-approaching deadline for all of us, and I don't want to look back on what may be my last decade of high productivity and realize I spent most of it on Netflix and Steam

As said by others, procrastination is often a symptom of negative visualization of a task; if you can train yourself to drop the fixation of a task being unpleasant, you can overcome most procrastination.

That has worked for me; now, when I miss deadlines, it's more due to overestimating my energy than falling victim to my own procrastination.
This x1000. They get hundreds of millions a year to maintain a few foundational web technologies. Instead of doing that well, they are constantly on quixotic adventures with stuff like the Mr. Robot crossover and still fail to maintain core functionality. They lost the ability to fully remap browser controls in 2016 and haven't restored it since.

How do you have that much money for such a limited scoped mission and still get in over your head? And if so, what hope is there for anyone else?
The Broken Economics of Organ Transplants [video]
Unboxing Apple’s $129 luxury cable
Emotional relief like "I'm not a shitty selfish person after all and it isn't my fault".

But if you employ a tonne of ADHD coping mechanisms and they work for you it'll improve things a decent amount.

I haven't tried CBT but it's a recommend approach. I'm trying (painfully slowly because it's not super interesting) to teach myself DBT to help with it too.

Dx is only strictly required to get Rx but an additional benefit is they do a differential diagnosis so they make sure it isn't down to depression, anxiety, sleep problems, trauma etc. All of which can cause some of the same symptoms.

There are a tonne of people who get diagnosed with depression and anxiety and the recommended treatments just don't work that well for them. Then they get diagnosed with ADHD, everything falls into place and they can get their life together so they're not anxious they're going to constantly screw things up nor depressed from shit life syndrome and the depression and anxiety go away.
If you've only a handful of users doing this, the load's manageable. At scale, or for the ones who never learn, it eventually becomes a burden. Either you've got real costs to support or you need to incentivise learning on the part of clients. For a large cohort improved comms are net net a liability and risk with no upside.
On Wednesday Portland will pass the best low-density zoning reform in US history
I can only guess they mean if they pivot to be less privacy focused.
Yes, yes, yes, and yes, but the crucial difference is that vulnerabilities in the library are more likely to have the benefit of disclosure.
How does Firefox's telemetry have any value?

Disabling telemetry is one of the first things that nearly all advanced users do when using Firefox, or when using other products known to include telemetry that can be disabled.

So now any telemetry data that are collected are distorted, given that some of the wisest and most valuable users just aren't included at all because they've disabled telemetry.

Analysis done on the distorted data comes to distorted conclusions.

Product decisions made based on such distorted conclusions end up distorting the usability of the software.

Firefox has collected telemetry for quite a while now, yet I've yet to see that translate into any identifiable improvement.

Worse, a lot of very common Firefox user requests like "make it faster" and "make it use less memory" seem to get minimal attention.

I think Firefox would be a better product, and thus a more widely used product, if the telemetry were to be completely ditched, and the common user complaints that are voiced again and again in all sorts of discussion venues were listened to instead.
To me this is a non issue here, I find Rusts strings far easier than many other languages. (and also safer)

Overtime this knowledge becomes second nature to get used to and less of a pain point to grok.
It also applies to magicians and mentalists, but in a slightly different way.

A magician hopeful might watch a magic show and be completely overwhelmed. Eventually they learn their first secrets, and there is a sudden case of "Oh, really? That's it?" and something they were previously enthralled with is now a bit of a bummer. Magic shows become more of a technical puzzle to work out, instead of the spectator amusement they were before learning the secrets. For a while, they forget what it actually was about magic or mentalism that got them so excited. And it is so easy to forget that YOU know the secret, but your audience doesn't.

The methods may very well be not so dazzling when you know them, but it's the performance that makes it magical in the first place. And that's where the fun is for the magician or mentalist, and why it's important to not give away their secrets (unless you're like Penn and Teller, where sometimes the secret IS the dazzling part!). Knowledge, to an audience, can immediately make the show very uninteresting. But as the performer, you have to remember they don't have the knowledge you have.
There's also greasemonkey [0] and violentmonkey [1].

[0] https://www.greasespot.net/

[1] https://github.com/violentmonkey/violentmonkey
> There's no portion of the code that does warmups.

This isn't true - Benchmark.js will repeatedly rerun benchmarks until it gathers statistically meaningful results.

> There's no portion of code that "blackholes" the results to keep the JIT from optimizing away the code under benchmark.

True, and there's actually nothing benchmark.js can do to ensure that doesn't happen in the general case but when this does happen the results are usually pretty obvious - we'd see billions of ops/sec. Incidentally the left-pad benchmarks do not suffer from this issue.
That story is not about aliens at all. It's about the subconscious.
Yeah, I completely agree equity is no replacement for proper salary.

Just saying it's a really effective tool when combined with ideological motivation to fend off the unlimited pockets of FAANG-scale companies.
Just yesterday I ran into an invisible layer right here on HN when replying with a comment that opened a new page when I tried to click on something.

I disabled all extensions that I don't commonly use and am watching for now, but I have no idea how to actually tell which one did it (many of them were recently updated due to a Chrome change on August 6th or something).
> Kotlin does this right.

Typescript as well :-)
OP already looked at Bitcoin but as that is moving slowly, I pointed them in another direction where more stuff is happening.

"Finance" is much more than just payments or store of value. Bitcoin is way behind Ethereum in that regard.

Of course, that doesn't matter if you don't think that decentralized finance makes sense to have.
The Go 1.x compatibility promise is one of Go's best features.
What is your point? Your experience is not universal.
You want to kill someone but you can’t because that’s like totally illegal so you just hire a hitman and now it’s just a business expense.
Also, let's not forget, the Ukrainian government was just over thrown by a western-backed coup. Of course, you won't know that from the Wikipedia cliff notes, but that's what happened.
That's how you hear about a free browser with tabs, not how you finally satisfy that deep, nagging yearn for an open web.
Not trying to be critical or anything but the design really reminds me of those domain-name parking pages - like this: https://bit.ly/2DRc04H
I find that comments are the most entertaining parts of pretty much everything online, especially YouTube.
Second. It's the single biggest reason I'm still on firefox.
> MS's chromium fork powering Edge

Microsoft will simply follow Google's lead.
a big question is how does one find a therapist/psychiatrist?

a seemingly simple yelp/google search yields a sea of anonymous faces and trusting these strangers with your brain already feels daunting.

i'm in san francisco and am on a PPO if anyone has any recs. email in bio, thank you!
I can't vouch for these since I haven't tried them yet, but it can apparently also be complemented by configuring your local DNS server to return NXDOMAIN for use-application-dns.net [1] and using a DoH proxy to protect upstream requests from snooping [2].

[1] https://support.mozilla.org/en-US/kb/canary-domain-use-appli...

[2] https://github.com/aarond10/https_dns_proxy
> here's why Google should be a public utility

I don’t think it’s too important. What’s important is enforceable regulations. There’re many industries that aren’t public utilities but are heavily regulated for safety reasons, e.g. food production and air transportation.

> This is personal preference (and possibly subject to experiments)

http://const.me/tmp/web-search/g1.png Just two “Ad” letters with no other visual cues.

http://const.me/tmp/web-search/g2.png The first fair search result, note the scroll bar position on the right, there’re 2 pages of garbage above. No URLs anywhere. Right click / copy link is broken as well, copies “google.com/url?” something.

http://const.me/tmp/web-search/ddg.png “AD” is uppercase, outlined, also note the “Report Ad” text. The combination of these 3 things makes ads clearly marked as such, unlike google’s result page.
Note the initial portion of the result URL is visible, not just the domain. Right click / copy link works.
The fair search results start at the top of the page, immediately after a paid one.

There’s no motivation for google to be friendlier towards users or web site owners. Quite the opposite, they have strong financial incentive to mix ads into fair results. The only way to fix that is legal pressure with laws and/or antimonopoly prosecution.

It worked with Microsoft in 1998-2001. In 2000 a court ordered breakup of MS. They won the appeal so it didn’t happen, but they were really scared apparently. They were also forced to change a lot of things in their products, which benefit both end users, and third-party developers. I don’t see how de-facto monopoly in web search is different from de-facto monopoly in PC OSes.
Linux still can: https://sourceforge.net/projects/ibcs-us/

That's my project. I also did the port of iBCS to amd64, which is what ibcs-us is based on.

I moved the support out of the kernel because the rate of change of the internet kernel API's makes maintaining invasive kernel modules like this is just far too much work. Every time I looked at the kernel the way syscalls worked internally changed in some way, and broke ibcs64 as a consequence.

Decades ago Linux had full on support for other syscall interfaces via it's personality mechanism. See personality(2). Most of the functionality has been ripped out as kernel internal API evolved. I'm guessing maintainers noticed the personality stuff wasn't used and so it was easier to delete it than port it to their new shiny API.

At the time I thought that would be a disaster for iBCS. Now after porting ibcs64 to user space, I think personality(2) was the wrong way to do it. Turns out iBCS is mostly glue that emulates foreign syscalls using Linux equivalents, and as ibcs-us demonstrates that kernel space glue runs equally well in user space. It should not be in the kernel, where it bloats things and could introduce security holes.

Once you realise the glue code can run anywhere, there is only one problematic area remaining: directing the foreign syscalls to your user space glue code. Here ibcs-us could really use some kernel could really help to make it both fast and safe, but it's a use case that apparently hasn't crossed the Linux kernel dev's minds.

This is exactly the same problem the Wine developers are having, and are trying to solve in these LWN articles. To me their solution looks like a horrible kludge. That isn't a criticism. I don't see how anything that tries to make minimal changes to the kernel is going to be anything other than a kludge.

If you want to do it properly, you need to add some mechanism to the kernel that lets user space redirect whatever syscall method is in use to a user space trampoline page. There are any number of syscall methods out there: int's, sysenter's, lcalls. The kernel has to provide a way of trapping each and redirecting them to the trampoline, but once they are there they are the emulator's problem. Mostly. The emulator then needs a second mechanism to make the real Linux kernel syscall that isn't redirected. One way to do that is to say "syscalls from within this address range aren't to be emulated". I’m guessing that’s what OpenBSD does now, but replace “aren’t to be emulated” with “are allowed”.

This could be thought of as a way of the kernel providing a way to virtualise it’s own syscall interface. There is no need to stop at one level either, as there there is no good reason one virtualised interface shouldn't end in another trampoline, unbeknownst to it. So a Xenix 286 emulator could be running inside of a Xenix 386 emulator running on Linux. It would be lovely for ibcs-us of course, but LD_PRELOAD's, virtual machines and yes even Wine all want to do the same thing, so it is a broadly applicable use case.