I think there is a big problem with antibiotic overuse in food animals, certainly. Although they can be useful for growth, large livestock farms are environments where drug-resistant infections can spread easily. I try to buy antibiotic-free meats as a rule but that doesn't really stop the damage caused by the meat companies that don't care about it.
As far as human antibiotic use, the flip side are the colleagues who will tell me that they did a thorough workup on a patient, found no indication for antibiotics, told the patient so to the best of their ability, and got dinged on the insurer's survey or castigated on doctor rating sites. I'm of course only hearing the provider's side of the story, but nobody likes to be told no, even when it's the right answer. (Also insert opioids, stimulants and benzodiazepines into this conversation.)
Counterexample: what about antibiotics? There are negative externalities to their inappropriate use (yes, there are plenty of stories about the infections that were missed, but that has a lot of selection bias). There are countries that allow their use over the counter. Is that a good thing?
But antibiotics in the US are still over prescribed by doctors. There really are few cases for them for the mostly healthy adult; and they wreak havoc on your microbiome for what we're finding out is years. I know many people who will get antibiotics prescribed when they have a common cold (mostly a virus).
They're also under prescribed for things like appendicitis.
Yes.
You can order a significant variety of antibiotics over the counter / web in the US. I have 2 Z-Paks, a bottle of Amoxicillin and a bottle of Doxycycline sitting in my medical drawer. You can order them legally via US based online pharmacies. If you are an adult you should have the freedom to treat yourself. Freedom does not absolve you of responsibility though. If I mess myself up I have no one to blame but myself.
I can't agree with you there, because if you're treating with the wrong dose or for the wrong length of time, you run the risk of making that infection resistant. For communicable illnesses, that can be a risk for others. But I appreciate your honesty.
I should also add that those pharmacies, if they are based on the United States, invariably have a licensed provider in there signing off (they would be illegal otherwise).
I don't think either of us is wrong and I appreciate your viewpoint. Often ones opinion on these sorts of things depends on where on the sliding scale you stand with regard to the individuals duty to society and vice versa. What I always find interesting in these conversations is that often the position on the the scale differs by topic but such is human nature, we all have our personal pet areas of importance. I am sure there are topics where you and I would switch sides as to individual vs personal responsibility. Its what keeps life interesting :)
Regarding the licensed provider, you are absolutely correct, I always get an email signed by whatever doctor works with the site. Its a rubber stamp but its does provide legality.
In the United States, at least, veterinary preparations are broadly manufactured to the same standard (some veterinary drugs are relabeled stock originally manufactured for human use, even). Dosing and concentrations may differ, however.
Could you share some of those sites? I have chronic sinus infections and I'm so tired of having to go to the doctor to get the same antibiotic rx I've gotten 20 times before.
Lots of fears are visceral, but even if we were to allow only verbalizable fears, one could imagine the arachnophobes thinking "what if this tiny spider burrows through my eyes or ears and lays eggs inside my brain, and then all the baby spiders stream out of my mouth and nostrils"
47MB for the UI & boilerplate around the business logic.
I get that this may be the easiest way to develop and publish an application today, but it's sad that this is the direction we have taken in recent years.
Business logic size: ~20 bytes
Total app size: ~47 MB = 47,000,000 bytes
Bloat factor: 47,000,000 / 20 = 2,350,000
Let’s scale this up and say the business logic is 1 pound.
Then the whole app would weigh:
1 lb × 2,350,000 = 2,350,000 pounds
What weighs ~2.35 million pounds?
- A fully loaded Boeing 747-8: ~987,000 lbs
- Another fully loaded 747-8: ~987,000 lbs
- A blue whale: ~330,000 lbs
TOTAL: ~2,304,000 lbs
The business logic is like shipping a 1 lb object (a book, a flash drive, whatever) by loading it into two fully loaded 747s and strapping a blue whale on top.
On a related note: Transporting a human in a car is (in relation to weight and size) like using a standard shopping cart to transport two 1L bottles of water. So the next time you walk through a pedestrian area, imagine everyone carrying a bag would use a shopping cart instead. That would be a huge traffic jam -- exactly like what you see on the road!
I've been pretty aware of this ever since I became a cyclist. I will ride down to the corner store to pick up a six pack and some chips, throw them in a backpack and ride back. It's easy. I see people driving their cars to do the same thing. All that weight and space for a 6 bottles of beer. There is massive waste all around us.
A long time ago in San Antonio TX I was pulled over by the cops while biking back to my little apartment with a bunch of groceries. They were unwilling to believe that an adult would leave the car home to get groceries by bicycle.
My wife and I left a meeting in a business park in Phoenix and decided to walk the 5 mins to the local shopping mall, have a look around and then get a taxi back to the apartment in which we were staying (We'd taken a taxi to the meeting).
We were about 2 minutes into our walk when a car pulled up and it was one of the people from the meeting. People in the office had spotted us walking and assumed there was some kind of emergency or our car had broken down.
We had to be very politely insistent that we didn't need a lift to the mall and were perfectly fine.
We experienced the same when we walked down the hill to go shopping in Laguna Niguel, CA. Stopped by cops for walking to the store. Nothing more happened.
There is also the time component. Off peak and with a decent sized backpack (change of clothes, laptop, food etc) it takes me the same time to go 6km as it does to drive it.
The time component has to factor in both the traffic while driving, and the extra time required to find available parking. I bought an electric scooter a few weeks ago, and I have come to realize that my travel time is pretty much purely a function of distance. I just roll up past traffic if there is any, lock up on any bolted down object, do my business, unlock, and roll out.
If anything, I feel like traveling at rush hour is actually strictly better for me. Cars being slow doesn't slow me down, but with the average speed being so much lower during rush hour, it seems like it makes it so if a driver hits me, it would be at a lower speed.
Getting a trailer (burley cargo in this case, but applies more generally) has been a game changer. I can even bike to ikea and bring back flat packed furniture with it. Or do the weekly groceries. The trailer can carry up to 100lbs iirc (I have an e-bike)
Short errands are much nicer with a bike: less effort than walking, much faster than walking, no parking headache at destination, cool breeze in your hair, and free (no gas, insurance, parking, tickets…)
Those people could be driving from 20 minutes away or on their way home from work, or running other errands or picking kids up from school or any number of things. Good for you though.
Okay, but for the 80+% of people living in cities[1] in one of the countries not particularly known for it's density nor public transportation, buses and trains exist.
1 year ago, I lived in San Rafael (Marin county, Bay Area). I occasionally needed to go to Palo Alto for work meetings. The fastest public transit option was to take a 40 minute bus to Larkspur Landing, then a 30 minute ferry to the SF Ferry building, walk for 20 minutes, and then take Caltrain for 45 minutes or more and then walk from there. With transfers, at minimum it was a 2.5h journey, but typically 3+h
Edit: Also Google Maps says San Rafael to Palo Alto will take 2 hours give or take a few minutes on public transit, with 3 buses, but the middle one you could easily cut out with a bike or a 4 block walk. That doesn't really seem absurd at all for an occasional trip. People do 2 hour drives for an occasional trip and no one bats an eye.
Well, if you COULD ship something across the world on a private 747 with extra features to protect your cargo, and it has nearly no environmental downside and has no meaningful downside vs a smaller airplane… you’d probably do it! There’s no incentive in software to get a smaller, more efficient plane, and plenty of incentive to use the big thing for free that has all the extra features
> it has nearly no environmental downside and has no meaningful downside
I think this is not the case. E.g., we replace our computers every few years, but not because the new ones can do things that you can't do with your current computer. It's because the software you use to do the same things keeps getting more resource-hungry.
So the cost is there, it's just not paid (directly) by the developer. But we all end up paying someone else's externalized cost, included said developer that is paying some other developers' externalized costs.
Yeah. I’ve been thinking of writing a blog post doing the math on that. If I spend $2000 on a computer, and that gets me a certain amount of ram and cpu and so on, we can figure out a dollar figure on that bloat.
Then multiply by the number of people who use a piece of software (eg slack) and we’d get a figure for the externalised cost of a piece of software.
Consider also the missed market opportunity: my personal devices are 13yo laptop and 9yo phone. If an app isn’t compatible or makes it lag, I delete it and download a competing one. I’m not alone, and yes: I have money to spend on your app. I just don’t want/need to upgrade hardware that often.
Kudos for keeping your devices for so long, I also try to have mine last as long as it's practical, but so far i didn't manage to have them last so long. Unfortunately, you're in a minority. Most people would change their phone once the apps they're using aren't compatible with it anymore. So devs don't consider this aspect much.
Worst offender being Google, who toggled on VP8 / VP9 decoding on YouTube despite the vast majority of devices only having h264 hardware decode.
The aggregate waste in battery wear and watts spent is pretty staggering when you think about it, all so google could spend a few cents less per 100 streams.
Or they could just send the video uncompressed and then it would take even less hardware resources to decode on the client side. Why, in a sense it would be a lot more like decoding analog television signals at that point. (Not least of which since few clients would have the network bandwidth to handle more than 360-480p of that ;)
It wouldn't have taken less hardware resources, because would you look at that.. we find h264 hardware decode even in bottom-of-the-barrel mobile CPUs. Pure CPU and even GPU decoding of video codecs is enormously expensive powerbudget-wise.
Not to mention the fact that a mobile radio would have to be kept on high power constantly to pull in that 1Gbit/s stream.
You can be snarky all you want, it was a terrible move by Google.
And since we do have app stores as gate keepers, this could easily be remedied by the app stores. They wouldn’t even have to penalize you. Just put a score on there for app size (and app responsiveness) compared to the median in that category. Put this near the star rating from the reviews. Executives don’t generally care that you as an engineer want to reduce an app size by 10% but they really really care about how the app looks on the app stores because that’s what they show to people and what they are judged on.
It doesn't "take up a ton of memory" and if you think 47MB is "a lot of disk space" then maybe you need a bigger disk. Most laptops have at least 250GB, so this program would take up about 0.0188% of disk space, which is frankly not a lot. I had PDF files way larger than that. And you only need to run it once, you do not need to keep it loaded and running all the time, so it doesn't "take up a ton of memory".
This is how we have ended up with huge cars and huge houses etc. Storing huge volumes of unneeded junk isn’t solved by have more space. Store less junk.
47MB is about 3x the space once required by a widely used commercial graphical operating system. It was even enough to also include Microsoft Word with plenty of space left.
This is such a weird rationalization. You’d sell a kidney to be a 10x developer but making an app 1000000x smaller isn’t worth a thought? Maybe that’s why the former hasn’t happened.
While it is true that hard drives have large amount of storage, it is unlikely that are any Mac with a 36TB hard drive attached that needs to overcome WiFi time limit.
Doesn't matter what size hard drive is in the mac. If you can't spare 47MB to solve a problem you're having with wifi access then you are doing it wrong.
Even Rube Goldberg sometimes included a simple alternative at the end of his machines. If the opossum or woodpecker get sick, there is a knife handy to sharpen the pencil.
This has to be Soviet Shoe Factory Principle in action, not just ignored negative externalities. Everyone relies on shipping more code for their employment, rather than more values, which incentivizes that behavior.
Human time is money in software, more analogous to mass in physical goods. So you should calculate the time savings for all the people using the app vs entering the code themselves.
Mass is a nonsense analogy that doesn't reveal anything useful.
The proposition that Electron apps are somehow "saving time" is preposterous!
Of course, the real cost-saving is in labour—web development presents a radically lower barrier to entry compared to even non-native, cross-platform UI/UX platforms such as Qt, or Flutter, or what-have-you, let alone simply managing multiple native applications.
So this is not a bill-of-materials kind of analogy, it's a statement about talent.
Web leaders have grown complacent; at times, it seems they don't take things seriously. I mean, just take a look at something like SvelteKit. I'm not a web developer, however I happen to like Svelte a lot, but also despise SvelteKit equally as much.
Yes, the savings in labour translates to savings in time. This should be obvious.
Using Electron to package your application often saves time over writing a native app.
Giving a regular user a ready-to-use app saves them time, because they aren't googling "how to use terminal" for five minutes or trying to copy-paste the magic command out of their notepad app.
> Yes, the savings in labour translates to savings in time. This should be obvious.
Under some circumstances; arguably, in only a handful of circumstances. The colloquial 10xer may as well as get the job done at a fraction of the labour cost associated with a 10-man senior (but really, comparatively junior) team, whereas the latter would spend months rewriting, refactoring, troubleshooting, triaging, bug-hunting, what-have-you...
Much can be said about inefficiencies of engineering teams.
While I appreciate criticizing bloat (why are we packing Chromium in every app again?), I would like to warn against watching every "pound". Images, for example, "weigh" a lot more than code but that doesn't mean they don't serve a purpose and add value.
That being said, the fact that quick maths can give you a 6 orders of magnitude difference between functional code and the package is probably reason for concern.
This is an absurd way to think of this. Following this same train of thoughts for humans:
The business logic for humans is a single reproductive cell.
A single sperm weighs 2.3 x 10^-11 grams. If the average male weighs 75kg the. The bloat ratio for a human male is 3.2x10^15
Getting back to the app there is huge value in not needing to run the command yourself. Sure it’s wrapped in a UI that comes with “bloat” but honestly who cares. When was the last time someone needed to worry about hard drive space, when it comes to a 40mb file.
Well, the apps often come bundled with a bunch of other stuff. Automatic updates, background workers, telemetry …
All of which sucks up your compute resources and battery. Repeat for every such little utility app you have on your Mac. Some may implement that random stuff inefficiently (eg very frequent telemetry), which sucks even more. Some of it may even be wrong, vibe coded, or copy pasted.
Personally, puts me off installing random utility apps, even if the single utility would be useful.
In the human analogy, the human has to be the entire computer too. It's all functional, not much bloat. For the app, the computer is external. It really is bloat.
To be fair, the author didn't make this to impress people with byte optimizations, they probably just wanted to publish an app quickly that is useful, and was familiar enough with Electron or JS to do so.
It’s not the easiest way just the most evangelized. A Qt app even would be a few lines of code, but we’ve done a good job scaring people that learning other languages is bad because we can’t ship features fast enough with non-evangelized frameworks.
Every framework under the sun gives you a `main()` func to call your program code. But if all you’ve ever used is blogs telling you how to hack together an electron app, you’d probably assume electron was the gold standard for simplicity sake but in reality is the gold standard for Google’s sake (and whatever marketing company’s).
Yuck! Funny though I wrote a program for making red-cyan anaglyph stereograms using TkInter/Python. Stereograms work best when you can put important objects at the plane of the paper/screen and this is done by sliding the left and right images relative to each other.
Tk has no color management, unlike newer frameworks, which was good in this case because I asked for (255,0,0) and got (255,0,0). When I exported to JPEG and views on a web browser though I got something like (186, 16, 16) because on my wide gamut monitor the native primaries are more saturated than sRGB primaries so some white gets blended in to make them less saturated. Turns out in Windows, screenshots are in the color space of your monitor! It’s something you’d never notice unless you made stereograms because that little bit of green and blue goes to the wrong eye.
There is a deeper problem in this: The DX for native applications is too annoying, undocumented or hard for most people.
I tried to build some of my tools without Electron, it's always a battle of multiple documentations for multiple systems and creating a bespoke system or having to deal with UI documentations that are glorified API references without examples.
The last few tools I built used PhotinoNET, which gave me an electron-esque framework but not bundling it's own chromium, instead using the browser already on the system. And even that required a complicated build script so I can just export a simple flatpak, exe and dmg...
Microsoft seems to have given up on guidance for how to write desktop apps, Windows 8 had that Metro thing that got rejected by the world. I guess you could use Win32, WinForms, WPF or something else. The incoherence is second only to the Linux world, I remember how developers were crazy about theming in Win32 in the ‘95 age so something like Back Orifice or the app for your scanner looks atrocious. WPF added really great support for theming but at the point everybody was burned out in theming so it hardly ever got used.
Metro goes back to Windows XP Media Center, and frankly was one of the best UIs ever. Also used by the very underappreciated Zune (which was not helped by its drab hardware design or MS's PlayForSureWeMeanItThisTime DRM)
I had a $99 Windows tablet that I thought was a great value and totally easy to use, but, like every other tablet I've had, I mostly used it to browse the web. Zune was pretty good but the only program that deserves the name "It plays for sure" is VLC.
I keep thinking that this could be solved by just building Electron into the OS as a shared framework so we don't have to have a separate copy for every app, but the more I dig into it, the more I realize I'm just reinventing the web browser.
There is something called the "WebView" in all the major platforms. The idea is that it allows you to use the browser engine only for creating the UI. But people complain its not "enough" because it is not the same on all the platform (it is if you use it just for UI), restricts access to some browser APIs (ignoring the fact that the OS often offers the same, even and more APIs) and Javascript (a crappy language for creating software applications).
Yeah, and I think it’s worth asking why there. Why do we not just have a standard for PWAs with privileged OS access?
There are two obvious answers. The first is portability. And sure, but Electron provides an answer here, so why can’t we provide one with PWAs? We could even have OSes define this interface for different browsers to target in a standardized way. Yes, you need platform specific code, but that’s often the situation with Electron too.
The other answer is security. But how is Electron / any other installed app any better? Because we require more explicit consent before installing a “real” app than for installing a PWA? OK so, just let’s just do that for PWAs too.
A few years back I did an eval of ways to make cross platform apps, specifically to escape Electron, and came to the conclusion that ‘they all suck’ except maybe JavaFX.
Thing is, most x-platform frameworks still require a big download. Java and Python runtimes are in the same ballpark as Electron.
They likely mean that you already have in there all what is needed to change your laptop WiFi card's MAC address, without needing an additional application.
Your point is that an operating system, and its shell, all running on a machine, and a collection of apps, are somehow smaller than a wrapper application.
I'm curious the amount of bytes the entire stack, minus the chrome which is the complaint I believe, how many bytes that is. I would say probably a gig.
The solution to this problem requires you to interact with the OS, so a solution that requires tools found in the OS itself isn't a bad one. Its so simple you can have a script triggered by a desktop shortcut and be done with it.
That all said, a simple GUI API provided by the OS for simple programs like this would be nice, just to give the user better feedback on the process. Is it done? Is it doing anything? Did it run correctly? Etc.. Zenity on linux kinda does that but is not guaranteed to be installed...
1) the dev only had a hammer and he nailed the screw in
2) the dev has 64gigs of ram and a newest CPU and doesn't care about performance issues for people on older computers... that's why you need gigs of ram just to read a weather report online.
It's NOT intelectually challenging. Software engineers love to learn new things, but they do not love 10 different syntaxes for displaying stuff. Figure it out.
If you want a frontend for you app, you probably just use Electron and get it over with in a few minutes instead of digging through the docs for Qt or some other framework.
Is it worth it? Probably not, since this is a single-platform app to start with, but JS+HTML are easy to theme and customize, and Qt is... not quite as simple.
Where did you get Qt from? This is, again, a Mac-only app that doesn’t even have any windows. It’s just a menu bar icon and a notification. That’s incredibly simple to build with plain old Cocoa and Swift.
No one has to dig through electron docs though right? There is nothing simple about an electron app regardless how little logic you personally programmed on top of it.
Now that you can build such an app with AI in under 20 minutes with a manageable codebase you can properly understand and control, I don't think that's a good excuse anymore
Or Alfred script, Raycast plugin, Shortcuts shortcut, shell alias, and the list goes on. There are a lot of decent options; "50+ MB Electron app" is, in my opinion, not one.
Is ActionScript still a thing on Macs? I feel like that tech was almost criminally overlooked while being the backbone for a lot of processing pipelines back in the day.
> with a criminally underdocumented Objective-C bridge
The documentation is the Objective-C docs, I use those all the time. You do need to understand the basics of how to translate from the Objective-C APIs to what JXA (or AppleScript) expects, but once it clicks you can do it for essentially anything with the same logic.
I was preparing for the death of AppleScript and was shocked when I stumbled around their addition of JS a few years back. I thought that would have been big enough news to hit my radar when it happened, or that Apple would have made a big deal about it at WWDC. Of course, that would require them to fully support AppleScript in their newer apps, while instead they seem to really only care about Shortcuts, since that’s easier to sell on mobile, I assume.
This will generate a multicast MAC 50% of the time, which will usually work, but can theoretically cause problems if there's a multicast-aware Ethernet bridge in your path. Ideally, the LSB of the first octet should be fixed to 0 to indicate a unicast address.
So I tried this out on macOS 26 and the `airport` command is no longer there.
There is a `airportd.sb` file, which appears to be some permissions based thing in s-expression/LISP. Weird.
Edit: Spun up a macOS 15 VM and I got this:
WARNING: The airport command line tool is deprecated and will be removed in a future release.For diagnosing Wi-Fi related issues, use the Wireless Diagnostics app or wdutil command line tool.
Looking around briefly, you can replace it with this:
`networksetup -setairportpower en0 on && [... set MAC ...] && networksetup -setairportpower en0 off`
I think it's pretty safe to assume that modern Macs will always have en0 as the WiFi adapter, but if you wanted, you could use `networksetup -listnetworkserviceorder` to find the associated device.
Duh, also true on my Mac Mini. But yeah, “modern Mac laptops” probably makes the statement correct enough and still describes the entire set of targets.
I feel like using Electron for such a little thing is way overkill. The newer laptops are very powerful so I don't think anyone would have any performance issues, but on older macbooks, having too many little Electron apps running in the background makes the fan go brrrrrrrr
I was doing some work in a small-ish county jail/sheriff's office in the States. As part of that work, I needed some Internet access.
Because jail (thick, reinforced walls and lots of steel) the cell phone coverage was basically shit -- otherwise I'd have just used my phone like I would normally have done approximately anywhere else.
It was a fun dance: Requesting access via wifi, getting sent a code via SMS, and then going outside, turning off wifi to establish an actually-working network connection, retrieving the code (yay Google Voice), and then going back inside, turning on wifi, entering the code, and actually using it.
There was some other detail (perhaps relating to very short timeouts or re-registration issues or MAC randomization) at some stage of the operation that seemed extra-insulting, but my mind has forgotten whatever it was.
I have no idea what this song and dance was intended to provide, prevent, or enforce.
It's required by law in some countries, and it leads to some very funny chicken-and-egg situations with airport WiFi.
Istanbul Airport added a workaround: a physical passport scanner that stores your info and generates a code as an alternative to SMS verification. The whole thing just feels like a VPN ad.
I’ve seen it at a few places in the US, typically somewhere they have a paid unlimited/fast plan but a free tier for a limited time to be able to say they offer “free wifi”. So places it costs money to offer wifi. Maybe a flight, cruise, etc
What would you use instead to build a macOS GUI program with comparable ease? SwiftUI? Python + Tk (using the ancient system Python)? Something like Red?
Not for Mac. MacOS is an open garden: there is an app store; or you can install signed apps (requires Apple cooperation); or you can install unsigned applications. MacOS gives you a nudge to the app store (which has genuine advantages) and a much stronger nudge away from unsigned non-app-store apps, but it is still an open garden. iOS is closed garden, which makes some sense for the security guarantees it can give for financial applications.
The best part is right after the money line: 'Please check ' + issues_url + ' for help.' where issues_url is a github.com link. How are you going to check GitHub if you can't connect to WiFi in the first place?
reply