Hacker News new | past | comments | ask | show | jobs | submit | mduggles's comments login

On Windows it isn't possible to remove or rename files and directories that are being used. In order to handle this, you typically have to run some sort of helper application outside of the installation directory. This renames the existing installation directory to a new directory with ".tmp" (often, not always, but this is my guess). If that rename operation fails in the middle of the operation because a file being opened, either by another process or sometimes by an add-on, then the background update fails.

On Mac and Linux it's less complicated which is why they never get the "download the new version" prompt, but Chrome and Firefox have evolved systems for managing how these silent updates work. On Chrome the update button you talk talking about means you haven't closed the browser in awhile. If you see green that means an update has been available for 2 days, orange – 4 days and red – 7 or more days.

My guess is that you are encountering a situation in which the Chrome background helper can't successfully run the update process and then asks you to download the whole thing again so they don't need to rely on the updater and can just move your user files over.


For Chrome, the behavior for me on Windows is exactly as you describe for Mac and Linux. The update happens in the background and button color is used to notify me that a restart is needed to move to the new version.

Firefox on Windows gives me a pop-up indicating a new version is available for download and providing a button to do that now. A restart is still required to get the new version, but AFAIK there's no default visible prompt to indicate the need to restart. If I go to Help -> About Firefox, that tells me I should restart to update...but that's not terribly obvious.

I turn on Linux and Windows machines after 3-6 months of inactivity somewhat often and never hit the issues OP describes, so I feel they are either misinterpreting what they / their relatives are seeing or they have performed other changes to these systems that block the standard behaviors.


> On Windows it isn't possible to remove or rename files and directories that are being used

Besides some access modes you can rename files in use. I did even bothered and tried on firefox.exe I'm typing this - it works fine.


My information might be old. I haven’t worked on a Windows application in 5+ years. At that point you couldn’t.


... it worked like that since Windows XP


You absolutely sure about that? https://www.biology-it.iastate.edu/solution-cannot-rename-fi...

https://answers.microsoft.com/en-us/windows/forum/all/renami...

https://superuser.com/questions/54193/how-can-i-rename-files...

From Mozilla: On Windows, it is not possible to remove or rename files and directories which are being used. In order to handle this, we need to add a little complexity.

The Firefox executable will launch a helper application copied to somewhere outside of the installation directory, most likely the system's temporary directory. The helper application renames the existing installation directory to a new directory with ".tmp" appended to its path name. If the rename operation fails in the middle of the operation because of a file being open by another application, it reverts the change.

Source: https://wiki.mozilla.org/Background_Updates


Yes, see https://imgur.com/a/8XdMVmF

FF tries to rename a directory with files opened under it. No sane OS should allow that.


I find this appeal to find something other than a “doom” view bizarre. It’s a catastrophe. Do people expect to find some version of this story that ends with “but we can solve this with a minimally impactful solution that doesn’t cost you or your community anything”?

Maybe you don’t care about trees and animals. Global economic degrowth is gonna happen anyway as ports flood and countries lack the resources to tackle the project of rebuilding the backbone of the current global economic system. Source: https://e360.yale.edu/features/how-climate-change-is-disrupt...

So look at this story as another alarm bell. You and your family are going to be directly impacted by global warming. Asking for a happier story doesn’t change anything. It’s time to grow up and accept we put off dealing with this and it blew up in our faces.

We can either willingly engage in economic degrowth with some say in how it happens or we have a global recession/depression and all the chaos and social upheaval that comes with it. It’s bad, lots of people are going to lose their jobs and communities are going to collapse. That’s gonna happen regardless. Pretending it’s not doesn’t do anything.

I’m probably going to lose my job in that scenario but that’s the price of humanity being selfish and putting the problem off. At least with some extreme action now we can tell future generations “we tried something after waiting too long”.


I mean my intention was to go pure, hence finding the Docker IPv6 registry and doing the IPv6 stuff with the bridge interface.

My hope is folks know of workarounds and I’ll do them and update the post.


Backporting packages is a time-consuming process that actually requires skill. It is insane to expect people to do that for free on a volunteer basis because it makes your situation easier, especially as backporting gets harder the longer you go. RHEL offers 10 years, it costs money, that's your option. Or you pay for the staff to monitor and backport to your particular distro and foot the bill.

It's also maddening to present the issue as "our time is expensive and your time is free". If your field is unable to commit any work at all to updates, fine. UBI Micro is as small as its gonna get and moves everything difficult to the host. That could conceivably run for 15 years if you are careful with how you build it.


Glad they laid off all those employees to get ready for the lean economic times.


Looking at it from the other direction, these numbers make it seem that they were in fact overstaffed.


I think it is kind of silly to try to evaulate the business impact of layoffs by looking at revenue for the quarter immediately after.


Indeed. Revenue should be flat or go down after layoffs, not up.


I don’t get this line of thought. These employees were well paid, and earned good money for many years. They’ve had their fill, it’s time to move on to some new job.

A company should be praised for trimming the fat and reducing headcount: Making leaner more efficient operations. People complain why it takes thousands of engineers to run an app, but then they still complain when you try to reduce amount.


Any serious thinking person understands it's healthy. You just can't win with keyboard warriors who have no perspective and complain about everything.


Companies like Boeing, General Motors, Starbucks, Home Depot, and Nordstrom would be glad to hire those laid off software engineers.


How are those companies insulated from the same economic pressures that caused the big tech layoffs?

Maybe rising borrowing costs will be slower to affect consumer discretionary companies, but they will, arguably more than monopolistic big tech. Boeing is an exception because of government contracts.


Alpine’s use of musl means only the truly insane would be leaping to its defense. The inability to support DNS over TCP was a problem for years. Outside of that, so many things presuppose glibc. It’s an endless source of weird.

It doesn’t make the news cause it’s a hobby os that was made important when we decided the size of the container mattered most.


Glibc is a nasty piece of software full of nonstandard GNUisms that basically implements a separate standard. I've fought for years against the fact they've got functions that are not found in any other libc and have different behaviours depending on macros, often conflicting with POSIX or BSD variants. The fact the project was run for almost 20 years by a guy that managed it in a dictatorial style was a huge reason why so many alternative libc existed (that, and the licensing). Few people here remember about EGLIBC I guess.

Glibc is also such a mess that it still does not compile with Clang, after _decades_, due to all the crazy GCC extensions they rely on. An attempt is cyclically started and then promptly aborted when some new crazy nonsense is found. For instance, last time I checked they not only used the completely insane folly that GCC nested functions are, but they also relied on GCC attributes so nasty that LLVM never bothered implemented them (like renaming functions at code generation). Using these extensions are not really necessary, and I've a strong suspicious it was more of an attempt by the GNU authors to prevent distributions to ever consider not using GCC as their main compiler.

Also how name resolution is implemented in Glibc means you can't really statically link with it. If you've ever noticed, most "statically linked executables" are not in fact statically linked, but require ld.so just for libc. There are good reasons to disallow statically linking libc, but this is not one of them. Especially since the only stable API on Linux is the kernel interface, so the only way to not have to worry about future Glibc breakage is to either link with Musl or live with the risk.


My experience with musl has been that while it’ll most probably work, you’re severely at risk of a 30%+ perf degradation, and that means the juice is really not worth the squeeze.

glibc shouldn’t be statically compiled in because it’s lgpl and so immediately infects your code if you do.

The zig linker is quite nice here because it lets you pick what glibc you want to be compatible with.


> you’re severely at risk of a 30%+ perf degradation

Do you know if that's mainly due to the inefficient malloc, or if there are other important performance bottlenecks?


I get where you’re coming from but it’s impractical for many use cases to switch.

I work in Python; pretty much no extension packages have a pre-compiled Musl version so you end up spending a ton of time compiling things!


https://pythonspeed.com/articles/alpine-docker-python/

>Using Alpine can make Python Docker builds 50× slower

Musl is a dire mistake.


Better GNUisms than muslisms

glibc has been more wildly tested, and fixed what was not working, while musl choices were mostly ideological


The `[[gnu::optimize()]]` attribute is a fantastic feature that clang really should have some day.


> The inability to support DNS over TCP was a problem for years.

I'm no subject matter expert, [but support seems to be coming soon?](https://gitlab.alpinelinux.org/alpine/tsc/-/issues/43#note_2...)


Yes, but people have been complaining for -years-, because it was broken. And rather than listen to reason, the author ignored it because of his own misunderstanding of an RFC...


Heh Heh Heh

Looks like the patch isn't very long either, so hopefully it'll be fairly solid:

https://git.musl-libc.org/cgit/musl/commit/?id=51d4669fb9778...


NAND is like pennies/GB. I seriously don't understand the musl thing. It has caused me endless headaches and drives me up a wall.


Memory is not cheap in the cloud nor is bandwidth, so optimizing for image/container size is quite cost effective.

Also every headache I've had with musl libc is because glibc is insane, not because there is a problem with musl. It should be trivial to swap out your standard library, as that is the entire point of dynamic loading. Yet you cannot actually swap out the dynamic library that nearly every program on your system will need, because it's not actually a library.


People often forget that bandwidth is time. A significant fraction of redeploy time for me is docker images, and that's using alpine base images. It would be (was) far worse with something else.


If you are optimizing for image size, Alpine is not the best choice. For example, Distroless (https://github.com/GoogleContainerTools/distroless) has options 50% smaller than Alpine.


My other options seem to be to use more Google software or more RedHat software and both of those have been in the doghouse for some time.

I’d be more likely to use CoreOS as at least I can claim peer pressure, and potential layer savings.


That's why the best option is scratch containers, they have pretty much nothing outside of the stuff you add in manually (like your binaries).


I’m not fucking around with a container that doesn’t have a package manager in it. apk does a pretty good job of not being populated with hot garbage.


Generally with scratch images you build in a less weird environment, then copy your application's files into a scratch image.

https://docs.docker.com/build/guide/multi-stage/


You don't need a package manager in your production container, you need one for the dependencies to build your artifact (in previous stages) which gets passed on, on it's own, statically compiled, to the empty container.


And I need a tool chain for inspecting a sick container trying to figure out why CPU jumped 25% for no apparent reason.

Also some programming languages, you can’t really populate the app’s dependencies without a bunch of its dependencies. And the only way to split the difference means you have to memorize every file that gets created during the build/install process to be sure you don’t miss anything airlifting them from one container to another.

All of which amounts to me becoming the package manager. Which gets much less fun the more containers you have running in prod.

I generally respect the curation that alpine does. Not too old, not too bleeding edge.


> And I need a tool chain for inspecting a sick container trying to figure out why CPU jumped 25% for no apparent reason.

You can attach a debugging container with your tools temporarily: https://kubernetes.io/docs/concepts/workloads/pods/ephemeral...


As a non-user, I think such variety is a good thing.

Not using the same thing everyone uses forces developers to care about standards rather than to assume compatibility just because it is how the favorite implementation works. Same reason why it is a good thing that a popular browser that is not Chromium-based exists.


Alpine and musl were originally crated for embedded devices, hence the small size. It is interesting how it has become so popular in docker. https://musl.libc.org/about.html


Before other OS offered slim and smaller variants and optimized for size, Alpine was the best bet. At some point the difference was huge and that meant huge savings and a increase in productivity.


There are other things to consider, specially data transfer and build times (apk is much faster than apt in my experience). If these and other benefits are worth the trouble of musl is up to each individual.


Yeah, and the devices with embedded linux firmware also are pennies apiece. Not every linux installation is a banking mainframe, and not every ARM soc even gets those NANDs.


There are FOSS projects that sound nice and desirable but are too impractical to use in the real world. I call them "libmagicponies".

On a related topic, I don't use Ubuntu, Debian, Alpine, Arch, Gentoo, Rocky, Alma, Fedora, or {Free,Open,Net}BSD. I use CentOS 9 stream for most things: it's basically RHEL's kernel and it powers 100M's-1 B machines.


Instead of saying "too impractical to use in the real world", which is obviously false, since many other people have been using at least a part of those in the real world for decades with excellent results, you should say that there are such projects that you have never felt the need to learn about, because you happened to find one that covered well your needs, so you never had any reason to explore alternatives, which is perfectly fine.


That's a really funny comment, but it seems unnecessarily perjorative when there's an entire Linux distro built on this specific example of your magic pony.

Your position might be sufficiently extreme that it warrants reconsidering.


This is patently false. Tons of Enterprise orgs use Alpine for security concerns, ease of administration, and size. I guess all those prod microservices existence is "insane".


Who is leaping?

Only the truly insane would be lashing out at Alpine just because of its use of musl.


The size of the container matters most when we decided every executable needed to come wrapped in it's own OS.


It has actually been around since 2008. I’m not sure how it became so popular for docker. https://wiki.alpinelinux.org/wiki/Alpine_Linux:Trivia


Bandwidth costs and download/upload speed


Debian at home, Debian at work.


I’ve never read an author who liked his own writing as much as this fellow. I had a couple of issues with it.

- You have to accept that the concept of “the left” is in deep trouble and the root of this trouble is that it has a strict definition of itself that doesn’t include well-meaning folks like conservative religious folks.

- That a figure like Hitchens registers on the scale of “moving political systems”. I personally don’t care if a philosopher who writes mostly about religion believes in the invasion of Iraq.

It read like a lot of words to get to “secular liberal governments are actually bad and we need to embrace conservative values because rust belt”. If I missed some crucial point let me know.


One of the things that happened in the meantime is the rise of the social networks, which shifted public perception towards the most visible people on those networks.

As a result, the Right is seen as a bunch of bleach-injecting, QAnon-infested Russophiles with Confederate flags, while the Left is seen as a murder of nonbinary crow-identifying blue-haired individuals with rainbow flags; with both absolutely happy to trample the current societal order (and the national flag) into dust to achieve their Nirvana.

Doing anything constructive in such condition becomes a lot harder, because these stereotypes engender a lot of division, hate and distrust.


Typically chatbots that I interact with are just attempting to steer me back towards FAQs. I don’t need a different interface to search your documentation in an attempt to keep me on the cheap customer service path and away from the expensive customer service path.

Which isn’t to say they can’t be helpful. I’d much rather chat with a bot than call a person, if the bot is capable of doing the things I need. The thing is nobody seems willing to let the system actually do anything except escalate to a person, so why bother?


Yeah this is my take too. Chat bots are usually transparently obviously something the CTO bought, then Support dumped some basic configuration into it, and now it's a glorified redirect-provider to poorly map english questions to help articles. There's 0 vertical integration and it's purely to try to shunt traffic down cheaper support channels.

I've literally had 1 good experience with bot-based support. Exactly one. It was when I forgot I had used my Lowes' store card that month and they charged me a late fee for missing a payment. I went through the chatbot UI because I couldn't figure out how to even begin to contact human support.

And can you imagine my utter shock and disbelief when the bot offered to waive the late fee if I set up autopay? Holy shit! I'm still in awe. The chatbot waived my fee. It actually DID something. It genuinely saved them and me a support call that day instead of just feeling like they were trying to persuade me to give up by throwing friction into the process of getting to someone who could actually waive my fee.


I agree. In my head I group chatbots into: 1. bot that can regurgitate the faqs 2. bot that can perform actions

I've had good experiences with type 2 bots with Amazon, Uber, and Doordash, refunding orders that weren't delivered, etc. I assume they have a budget for refunds based on your purchase and refund volume, very similar to the agency a normal customer service agent would have.


> very similar to the agency a normal customer service agent would have.

Exactly this is the differentiating factor. Even if you have a human on the other side, if they don't have the agency accorded to them to perform a particular action within given bounds, they are no good compared to a Chatbot. A chatbot will help such companies cut costs, but they'll also reduce the CX - but I doubt those companies give a damn about that.


> And can you imagine my utter shock and disbelief when the bot offered to waive the late fee if I set up autopay? Holy shit! I'm still in awe. The chatbot waived my fee. It actually DID something. It genuinely saved them and me a support call that day instead of just feeling like they were trying to persuade me to give up by throwing friction into the process of getting to someone who could actually waive my fee.

I think I had a similar experience with the Amazon customer support bot just yesterday. It authorized a refund on a $20 item that I said arrived damaged.


That is incredibly impressive. To people who are not technical, I wonder if this is impressive to them.


> The thing is nobody seems willing to let the system actually do anything except escalate to a person, so why bother?

Because you are not the target user for the bot. For every user that proactively reads the FAQs, there's 10 more that don't and would happily open a support ticket to have someone copy/paste the FAQ answer to them. The bot is to there deflect those cases.


I don't think this is true, because if it were true, people would want chatbots. The last thing most people want to do is to call or open a chat with customer service, and they've usually looked through everything they can find to avoid it.

One of the reasons some chatbots, like at Amazon, could be useful is because their FAQs are impossible to find.


"People" aren't the ones deploying chatbots, companies are, because they successfully deflect cases.

If you think most people have done everything to avoid reaching out to support, I can only imagine you haven't worked in a "Tier 1" support role.


Support Chat: "Thank you for asking about [question], here is a [link to FAQ Page!"

The FAQ Page: "Was this article helpful? If not, contact our support chat!"

Endlessly. It's so stupid.


That the key point for me. If the chatbot can’t act on the system for me beside « get me human », it’s useless.

I like them when : - it can schedule a call back with a human - it can open ticket, ask for document on my side and make it faster for my query to process overall.


I had a savings account where the interface was basically a chat bot.

It was basically guess the verb. And also not obvious when you're talking to a human through the exact same interface.

It's a menu system but harder to use.


Wow! “Guess the verb.” That is exactly how text based adventure games worked in 80s. The interface of the future is Zork.


Omg the number of times I went into a mental meltdown with text adventures over that.

I finally have the thing I need

I am in the right place to use the thing such that it will fix whatever problem so I can move onwards

How hard can it be to figure out how to ask the game to use the thing to fulfil its purpose?

Quite fucking hard, it turns out. Quite fucking hard.


Infocom had a 80s text adventure game called Bureaucracy[1] that captures this modern scenario exactly.

[1] https://en.wikipedia.org/wiki/Bureaucracy_(video_game)


In those years my English was quite basic. I abandoned an adventure in a mine in front of an elevator door because open and every other verb I could think about didn't work. Very frustrating but I lived on and forgot about it. A few years ago I found a walkthrough on some retrogames site. I checked that location and... slide!


EverQuest did the same thing, except it was "guess the noun".

> What broach?

> What sword?

The keywords could be so obscure that allegedly, 25 years after release, some quests remain uncompleted by even a single player.


I recently had a chat with the Amazon bot for a refund of something that had not been delivered. That went very well!


I had the same, it refunded me, then 3 weeks later I got a notification from Amazon that they would be taking the money off me.

I complained and was ignored. It was only $10 but it teaches a lesson.


I'm very surprised. My experience with Amazon refunds and in general customer support is that they care more about upsetting a customer than fighting for pesky 10 bucks.

Could it be that their behaviour is different depending on who is the customer, i.e. what is the customers yearly spend?

I shop frequently on Amazon. Last year I sent a gift to my nephew how was living in a dorm at the University. The gift was a comouter monitor about $500 worth. The package disappeared soon after it got signed by someone that was at the front desk and never made it to my nephew.

I was already getting ready for a long discussion but Amazon said they will handle it and my nephew got another monitor two days after.

I also routinely return stuff I buy by mistake and I honestly report I just bought it by mistake


So was I, the first few times this happened.

My experience is that Amazon customer service did a complete 180 in 2020. Prior to that, every issue was resolved to my satisfaction, and they felt too generous, if anything.

Today, every Amazon rep I speak to isn't even empowered to resolve the most basic issues, and sounds like they hold their employer in complete contempt. Which is to say, they follow the scripts and /try/ to sound friendly, but it's clear they hate their employer, and want to satisfice their KPIs to keep their job, but all else being equal, would prefer for Amazon to die.

This also corresponds to a huge increase in problem rates. Prior to 2020, problems with Amazon were rare. Today, it seems like screwups happen all the time. I don't think they show up on any KPIs, though, as from Amazon's perspective, if a customer service rep e.g. satisficied and pretended to issue a refund without actually issuing one, or a customer gave up on resolving an issue, they have no visibility into the issue.

A basic, obvious issue like a missing package or a return will get handled, but anything more complex is now a black hole.


I can't say I had a bad experience with my Amazon interactions.

I have 3 free UPS's, that were wrong and Amazon just refunded me without requesting a return.

And I even had a hard drive go back, because of degraded performance - but it did require some extra troubleshooting on the phone.

Granted, I live in a rural area and I spend a lot on Amazon with Prime - from cleaning supplies and food to furniture and tech.


> UPS's, that were wrong and Amazon just refunded me without requesting a return.

That's because they contain batteries that Amazon will not accept.


Magnets are the same. I ended up with an extra subwoofer that way once.


In 2018 I ordered something from Amazon and it got marked as delivered but didn't make its way to me. Amazon sent a replacement AND refunded me for the item.

In 2022 I ordered an item of similar size and cost and it was marked as delivered along with a photo of a house I could not recognize at all. When I asked Amazon to look into it I got the corporate flow-chart equivalent of "Oh haha, that sucks". I asked for it to be escalated and they more or less said that the order already has the "oh haha, that sucks" flag on it and can't be changed.


Yeah, their delivery accuracy has dropped. Since the great yuck I have had at least one delivery a year next door (easily retrieved) and one I completely didn't recognize.


> I'm very surprised. My experience with Amazon refunds and in general customer support is that they care more about upsetting a customer than fighting for pesky 10 bucks.

I'm not surprised at all. There have only been two times when I needed to return an item I got from Amazon, and both times Amazon stiffed me. One of those items was for around $10.

Amazon seems to care about petty dollar amounts more than avoiding upset customers.


Two weeks before leaving home for six months, I bought two suitcases. They were delayed/lost and Amazon suggested I reorder.

I reordered and they still were going to be delayed until the day after we left.

I went to a local store and bought one.

I started a chat and told them that even if the suitcases did arrive that evening, I wouldn’t be able to send them back for a refund.

They said keep all of the suitcases and I would still get my refund.

They did come later that evening.


The stuff Amazon gets away with is incredible. Imagine if you returned a product to WalMart and they decided to charge you for it anyways 3 weeks later.


It’s always been possible to get refunds from Amazon without contacting a human, through a very simple form. I haven’t used their chatbot, but I’m curious how it’s better than the old form.


Some forms were replaced with bots. For me is the "Request invoice from vendor". I used to have a canned email I would copy paste into their contact form but now I have to answer a few questions the bot does so it is three or four copy/pastes instead of one. Just an annoyance but still, not progress.


This is my experience as well. Almost anything that the chatbots do competently shouldn't require more than a form on their site with a few questions and often did in the past.


I like the vision our chatbot team at work has there. They want their bot to have 2, maybe three tasks. First, it's supposed to be a neater way of presenting that initial phone choice of "Press 1 if you have an internet issue. Press 2 if you have a telephone issue". It's easier for some people to say "My phone is dead and has no free tone when picked up" and have the system recognize this as a phone issue. And second, it's supposed to make the collection of necessary data about the call smoother - since when does the issue occur, which phone number is affected, what's your account number. Once it has those (or it gives up after 1-2 tries without progress) it hands over to an actual agent.

The value proposition there is that you save a few human employee minutes per support case.


Unfortunately, the majority of times I call customer service, none of this collected information gets transferred or they make me confirm everything again. It's extremely aggravating. For every company who gets this right, there are ten who don't.

Even if you do everything perfectly for every customer, I lump you in with the other ten because I think I got lucky rather than thinking you having a working system. :(


> Once it has those (or it gives up after 1-2 tries without progress) it hands over to an actual agent.

And that human will immediately ask you to repeat all of the information you just gave to the screening bot.


Save a few minutes of paying someone, piss off your paying customers


It's actually more than a few minutes. I can't speak for other places, but generally there will be an agent that is monitoring many inbound chats, and in a lot of cases the resolution can likewise be automated.

In the past this was managed by a fairly deep call queue, and has saved fairly significant amount of $ vs receiving and resolving everything manually.

Indeed we have internal clients (vs paying customers) but overall this has been quite successful for us.


Its not a bad idea, but its like phone trees: abused by so many places the only thing I can do is try to get a human.


Yup. The chatbots are basically a friendly version of search, useful for the non-tech but anyone here will almost certainly not benefit.

You want to cut down your customer service costs, actually provide answers online! I would say at least 80% of what I call companies about are things that perfectly well could have been done online if their website actually allowed it.


I don't think they're meant to make end user lives easier, but to frustrate them into giving up.


Exactly, yes. I never use the chat support (whether robotic or manned) because if I'm at the point where that's necessary, I'm at the point where I need to talk to a human being personally.


Let me walk you through the steps of restarting your modem....


https://matduggan.com/

I love to write this stuff. Sometimes people like it, sometimes they don’t. It’s still a lot of fun to do.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: