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.
aeonik 1 days ago [-]
Modern app bloat in one analogy:
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.
Just to run 20 bytes of logic.
WD-42 1 days ago [-]
This is a cool visualization, thanks.
aquafox 1 days ago [-]
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!
WD-42 1 days ago [-]
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.
spiritplumber 13 hours ago [-]
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.
(I'm from Italy originally).
linker3000 2 hours ago [-]
Context: We're from the UK.
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.
bjelkeman-again 9 hours ago [-]
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.
lostlogin 1 days ago [-]
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.
At peak it’s 1/4 to 1/3rd the time.
Cars are slow around town.
Zambyte 9 hours ago [-]
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.
tengwar2 1 days ago [-]
It's a reasonable solution, but let's not forget that simply walking is often at least as good a solution in many countries.
ornornor 16 hours ago [-]
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…)
bongodongobob 1 days ago [-]
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.
And to top it off, the dual flights and whale would need complex orchestration too!
We just call it Kubernetes…
m3047 6 hours ago [-]
Very nice. Maybe that should be submitted to The Register for their units of measurement menagerie.
anon7000 1 days ago [-]
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
GTP 1 days ago [-]
> 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.
iknowstuff 1 days ago [-]
Its called externalized cost and its as real in software as it is IRL
GTP 1 days ago [-]
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.
aziaziazi 12 hours ago [-]
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.
josephg 22 hours ago [-]
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.
jorvi 15 hours ago [-]
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.
HappMacDonald 6 hours ago [-]
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 ;)
antonkochubey 18 minutes ago [-]
VP9 is not more bandwidth efficient than H.264. You’re thinking of AV1 here, which is only encoded by YouTube for VERY popular videos.
dented42 1 days ago [-]
That analogy doesn’t really work here. Because there is a downside. It’s slow, takes up a ton of memory, lots of disk space…
When you have so many processes on a modern machine competing for resources, when every app chooses to be bloated and slow it really adds up.
leptons 1 days ago [-]
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".
lostlogin 1 days ago [-]
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.
leptons 1 days ago [-]
You can live however you want to live. I will live however I want to. 47MB is not worth worrying about, at all.
BobbyTables2 1 days ago [-]
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.
How far we’ve fallen.
leptons 1 days ago [-]
You're living in the past. Hard drives are now up to 36TB. Hard drives are always getting bigger. 47MB isn't worth worrying about, at all.
mlhpdx 17 hours ago [-]
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.
leptons 4 hours ago [-]
Where the hell do you get me saying I would sell a kidney? What are you smoking?? Weird? Your comment is the only weird thing here.
superb_dev 18 hours ago [-]
Yup and those 36TB are cheap and common! Right?
wolpoli 14 hours ago [-]
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.
leptons 4 hours ago [-]
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.
charcircuit 21 hours ago [-]
47 MiB only costs $0.0002. What has fallen is storage price.
anonymars 1 days ago [-]
These crappy WiFi portals are known for having ample download speeds too, right?
dtech 1 days ago [-]
That is more a tragedy of the commons thing. For each individual app the comparison holds true
IgorPartola 1 days ago [-]
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.
kulahan 1 days ago [-]
Tragedy of the commons or just a really bad industry?
BobbyTables2 1 days ago [-]
People usually think that but when it comes to attack surface, change management, upgrade issues, etc —- the extra stuff isn’t entirely free…
Upgrades shouldn’t ever break things, bugs and vulnerabilities never exist, and Rube-Goldberg machines should work 100% reliably day in and day out.
Unfortunately reality doesn’t work that way…
al_borland 13 hours ago [-]
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.
> Well, if you COULD ship something across the world on a private 747 with extra features to protect your cargo
Qatar might even give you a plane!
numpad0 17 hours ago [-]
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.
I think you're conflating "no incentive" (which might be true) with "no downsides" (which is not).
Eric_WVGG 6 hours ago [-]
bravo, Douglas Adams would have been proud
shepherdjerred 1 days ago [-]
How many 747's can the average person fit on the 128GB+ smartphone in their pocket?
jofla_net 1 days ago [-]
says more about sociology, really.
foxglacier 1 days ago [-]
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.
tucnak 2 hours ago [-]
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.
Every major release is like "fuck you."
_gruntled 48 minutes ago [-]
“every major release” lol you mean the single major release that has ever happened since GA?
fwip 1 hours ago [-]
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.
paxcoder 1 days ago [-]
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.
BestHackerOnHN 17 hours ago [-]
OMG you win HackerNews today with this comment! Super HackerNews!!!
bognition 1 days ago [-]
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.
m11a 1 days ago [-]
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.
Dylan16807 16 hours ago [-]
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.
dbalatero 1 days ago [-]
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.
righthand 1 days ago [-]
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.
anthk 1 days ago [-]
Even TCL/TK would be smaller.
PaulHoule 9 hours ago [-]
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.
righthand 1 days ago [-]
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).
ryandrake 1 days ago [-]
I so strongly wish more developers gave even a single shit about this. The current state of desktop app development is truly an embarrassment.
LauraMedia 10 hours ago [-]
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...
malnourish 15 hours ago [-]
Who is embarrassed? What are the realized harms?
PaulHoule 9 hours ago [-]
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.
chuckadams 41 minutes ago [-]
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)
PaulHoule 25 minutes ago [-]
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.
mistercow 1 days ago [-]
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.
thisislife2 1 days ago [-]
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).
paxys 1 days ago [-]
You are describing PWAs, but they'll never have the same API access & permissions as a native app.
mistercow 11 hours ago [-]
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.
Wow, they optimized the minimal Electron app down to 47 MB?
runlaszlorun 7 hours ago [-]
Sadly this was also my reaction.
PaulHoule 9 hours ago [-]
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.
kzrdude 23 hours ago [-]
And notice the other abstraction too.
This is not 'an app to change MAC address' but an app to 'overcome WiFi time limits'.
sli 4 hours ago [-]
It just seems to me like far less work to just write a real binary that execs this static command than it does to setup a whole Electron project.
runlaszlorun 7 hours ago [-]
And sadly my reaction to 47MB these days is "hey not bad" given that I see 6 or 700 MB apps not doing much .
thwarted 1 days ago [-]
Those who don't learn /usr/bin are destined to reinvent it, poorly.
tomrod 1 days ago [-]
What does this mean? I've always understood /usr/bin to be the storage dump for system binaries. Do you see or use it another way?
GTP 1 days ago [-]
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.
1 days ago [-]
ncr100 21 hours ago [-]
Cough, AI Training Models, Cough
There's great power in abstraction. Disagree?
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.
unixhero 1 days ago [-]
Yes but you need a space station OS (Unix) to enjoy the terseness of 47-200 bytes of business logic.
ps: I love both space stations and Unix
amlib 22 hours ago [-]
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...
kjkjadksj 6 hours ago [-]
Why do you need that in gui when you already have it in cli through pid?
yjftsjthsd-h 23 hours ago [-]
I guess, but the OS is a fixed cost that you already have
CommenterPerson 1 days ago [-]
Are they doing something additional with the 47MB - 200 bytes? Like selling you to the brokers?
WJW 1 days ago [-]
Not even. It's just overhead.
rafram 1 days ago [-]
Why does a Mac-only app that shows a menu bar icon and a notification popup need to be Electron…? That’s 30 lines of Swift, max.
k4rli 12 hours ago [-]
Looks like ai-generated bloat. It even has deps for deb+rpm builds yet is mac only.
Honestly would not expect anything more from js devs who use macs/windows. I see this so often.
eddd-ddde 8 hours ago [-]
Those deps are just electron's boilerplate. If you create any new electron app from a starter that's likely what you get.
JimDabell 9 hours ago [-]
I’ve asked AI to build macOS menu bar apps and it’s generated perfectly reasonable Swift, nothing like this.
jeroenhd 1 days ago [-]
If you don't know Swift, but do know Electron, it's easier to do it in 30 lines of Javascript.
People who don't like the developers work can always write and publish their own application, of course.
steviedotboston 25 minutes ago [-]
I just asked ChatGPT to write a Swift program to renew MAC addresses with a menu bar icon and it had no problem with it. Just over 50 lines.
whatevaa 1 days ago [-]
It's hard work writing free stuff for others, much easier to criticise stuff instead of getting your hands dirty.
pwdisswordfishz 14 hours ago [-]
It's hard work learning programming tools and optimizing, much easier to use a one-size-fits all framework that wastes the end-user's resources.
chipsrafferty 15 minutes ago [-]
What's the incentive to spend a lot of time to optimize for something you're giving away for free?
SR2Z 1 days ago [-]
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.
rafram 1 days ago [-]
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.
anthk 1 days ago [-]
Or AppleScript maybe.
righthand 1 days ago [-]
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.
juancroldan 1 days ago [-]
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
whatevaa 1 days ago [-]
If you don't know the language, how can you properly understand and control it?
therein 1 days ago [-]
In 2025 you unfortunately just vibe with the code nowadays.
paxys 1 days ago [-]
> with a manageable codebase you can properly understand and control
Yeah, that definitely describes every AI codebase I have seen..
outofpaper 1 days ago [-]
People forget to think about Swift let alone tools like Platypus.
thisislife2 1 days ago [-]
It doesn't need to be - on macOS, it could even just as well have been a simple Xbar Plug-In! ( https://xbarapp.com/ ).
rafram 1 days ago [-]
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.
palata 1 days ago [-]
Electron is an overkill way to not have to learn how to do stuff properly, if you ask me. And people love not to learn.
WJW 1 days ago [-]
Send in a PR then?
ipaddr 1 days ago [-]
A pr that deletes the repo and bans the person from github?
WJW 1 days ago [-]
No a PR that actually makes the world a better place. Be the change you want to see and all that.
pwdisswordfishz 14 hours ago [-]
By deleting the repo and banning the person from GitHub?
gopher_space 1 days ago [-]
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.
rafram 1 days ago [-]
It (AppleScript) is, and you can actually write JS instead these days, with a criminally underdocumented Objective-C bridge (JXA).
al_borland 12 hours ago [-]
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.
latexr 21 hours ago [-]
> 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.
gopher_space 1 days ago [-]
Ahh thanks! Went down a brief rabbit hole with JXA and had forgotten how opaque Apple is when you're developing for them.
mattl 1 days ago [-]
You mean AppleScript?
ajsnigrutin 1 days ago [-]
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.
9 hours ago [-]
encom 1 days ago [-]
Because that's all anyone knows, and PC development is dead.
>content-length: 47262814
Sigh...
WJW 1 days ago [-]
[flagged]
CamperBob2 1 days ago [-]
I mean, these days, you ask an LLM and it spits out code that will, for something this simple, probably work the first time.
WJW 1 days ago [-]
Should take you no more than 5 minutes then.
CamperBob2 1 days ago [-]
Whatever. I'm not the one who used 47 MB to distribute a single line of code.
24 hours ago [-]
zymhan 23 hours ago [-]
[flagged]
CamperBob2 22 hours ago [-]
This isn't about me. Let's not make it about me.
greyface- 18 hours ago [-]
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.
alias randommac='sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 -z && sudo ifconfig en0 ether $(openssl rand -hex 6 | sed "s/../&:/g; s/:$//")'
commandersaki 1 days ago [-]
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.
I guess they weren't kidding.
bc569a80a344f9c 1 days ago [-]
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.
JonathonW 1 days ago [-]
Modern Macs do not always have en0 as the WiFi adapter (it's en1 on current iMacs and on the Mac Studio; en0 is the ethernet jack).
But you're unlikely to be taking one of the machines that has built-in ethernet to the airport or coffeeshop.
bc569a80a344f9c 1 days ago [-]
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.
commandersaki 15 hours ago [-]
So this doesn't work if your wifi nic is associated with an SSID. `airport -z` disassociates the SSID.
Can't seem to find a CLI command to do the same in macOS 26, but I haven't looked too hard either.
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
nine_k 4 hours ago [-]
Fine, Electron is a complete overkill for that.
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?
virtualritz 1 days ago [-]
And you could ask an LLM to whip up the Swift code or whatever to wrap this line into a Dock app etc., if you want that convenience.
hk1337 1 days ago [-]
What exactly is that doing? Is there some backend limitation for WiFi interfaces that making it think it’s Ethernet is faster?
sodality2 1 days ago [-]
It just resets the MAC address, making the router believe it's a new device, thus not subject to the "x minute" free WiFi.
chipsrafferty 12 minutes ago [-]
I've never seen "x minute free wifi". What countries is that common in?
dizhn 1 days ago [-]
That won't circumvent the sms code requirement most free wifi services use.
catlifeonmars 1 days ago [-]
I have never seen this before
ssl-3 23 hours ago [-]
I've only seen it once.
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.
fc417fc802 21 hours ago [-]
> I have no idea what this song and dance was intended to provide, prevent, or enforce.
Describes far more corporate IT policy than it ought to.
rafram 1 days ago [-]
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.
dizhn 1 days ago [-]
There's at least one country with laws that say you have to keep track of national ID numbers (and times) if you want to provide wifi service.
popularonion 1 days ago [-]
Never seen it in the US, but it was fairly common when I was on vacation in Europe
lavezzi 6 hours ago [-]
Maybe you haven't flown recently then, even T-Mobile has introduced message based verification for trying to use their free in-flight WiFi now.
rs186 1 days ago [-]
I think they are extremely rare, and I would rather just use my mobile data instead of giving them my phone number.
Definitely does not happen on "free trials" on in-flight Wi-Fi for obvious reasons.
dizhn 1 days ago [-]
A now deleted comment reminded me that this is mostly for in-flight wifi where it makes much more sense. Mostly no SMS there either.
rixed 17 hours ago [-]
Or the voucher obtained by scanning your boarding pass in some airports.
1 days ago [-]
cozzyd 1 days ago [-]
the hilarious thing is it shells out for the random mac...
MattSayar 19 hours ago [-]
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?
101008 1 days ago [-]
Wow. Don't you need to pay a Apple license as well to distribute apps in Macs?
tengwar2 1 days ago [-]
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.
preciousoo 22 hours ago [-]
Is this possible on mobile (read iPhone) devices without root?
scarface_74 9 hours ago [-]
Settings -> WiFi -> choose your WiFi network -> private WiFi address -> set to “rotating”
It will change every time you disconnect/connect
ammar2 1 days ago [-]
Glad this feature is built into most modern operating systems these days.
For MacOS (Sequoia+) you can just forget the network and reconnect to get a new MAC address [1].
Android's documentation for if it decides to generate a new address per connection is a little vague [2], but I'm guessing forgetting and reconnecting works as well, you may also need to flip the "Wi-Fi non-persistent MAC randomization" bit in developer settings.
On Windows, flipping the "Random hardware address" switch seems to cause it to generate a new seed/address for me.
Per [1], this only works once per 24 hours on new iOS/macOS versions, and only once per two weeks on older ones though.
km3r 1 days ago [-]
Yeah I had to flip the developer setting toggle, but worked flawlessly for my flight (American Airlines has a watch an ad for 20 minutes of free internet that only works once per MAC)
fendale 1 days ago [-]
Are you saying that on IOS 18 if you enable developer mode then each time you forgot the network it gets a new Mac? But without developer mode it does not get a new Mac each time you forget it? The Apple docs linked elsewhere in this thread suggest it only gets a new Mac once per 24 hours when you forget the network normally. I’m going on a long boat trip in the next week where this trick might work for me if so!
userbinator 19 hours ago [-]
I have a generic Android phone from many years ago where the manufacturer didn't even bother to program the WiFi NVRAM, so every time you load and unload the driver, you get a new randomly generated MAC address. Interesting that that has become a feature these days.
bapak 1 days ago [-]
I think the rotating address is limited to 3, right? The script here generates one at random.
purplehat_ 1 days ago [-]
Here's an equivalent little script for Debian Linux (but should work on most distros), based on classhasclass's comment:
NEW_MAC=$(printf '02:%02x:%02x:%02x:%02x:%02x\n' $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)))
sudo ip link set wlan0 down
sudo ip link set wlan0 address "$NEW_MAC"
sudo ip link set wlan0 up
You should replace `wlan0` with whatever you see in `ip link show` for your wireless interface, for me it is `wlp0s20f3`. I replaced the `openssl rand` command because it was generating some invalid MACs; this is hopefully only valid ones.
righthand 1 days ago [-]
KDE Plasma has a “Random” button next to the MAC address field in the Network Manager UI. I’m on Debian Testing so not sure when it was added.
vachina 1 days ago [-]
I used to strap 20 virtual eths to my Linux box because my dorm gave only like 512kbps per account, and then aggregated the 20 interfaces.
xrisk 1 days ago [-]
How was the auth done? And for that matter what logic did the traffic shaping use?
vachina 17 hours ago [-]
Auth is username/password over captive portal. You could pay for more bandwidth. The system was so pwned I ended up giving myself unlimited bandwidth.
^ seems like the way to go. open source and more features.
mannyv 1 days ago [-]
If you really want to screw with these set your MAC address to 00:00:00:00:00:00
It’s an illegal address, but most equipment will take it because test devices occasionally come from the factory with that MAC. But higher level stuff might barf on it because it’s technically illegal.
totetsu 22 hours ago [-]
I tired this once and it bypassed the captive portal and time limits entirely
edit: but this worked on my external NIC! Network wasn't happy though and DHCP didn't work. Ubiquiti had a funny note about this MAC: "Officially Xerox, but 0:0:0:0:0:0 is more common"
mannyv 5 hours ago [-]
If you stash the IP/netmask/router IP you might be able to get it to work by setting a static IP on the connection with a 0 MAC address.
As always, ymmv.
On some equipment this may cause a broadcast storm, depending on how they implement things. Cisco equipment with some configs will send a packet to all the ports if it receives a packet and can't figure out where it's supposed to go.
kazinator 1 days ago [-]
This has been an option in Android network settings forever: randomize your MAC. I think it's enabled by default now?
It's a basic privacy feature; you can be fingerprinted by your device's MAC.
jck 1 days ago [-]
Yep. Android does this by default, but each ssid gets a randomized MAC which persists. It is still straightforward to trigger a MAC change manually tho. It is useful for privacy but imo useless for the public wifi limits use case since they almost always require an OTP via SMS to log in.
rahimnathwani 1 days ago [-]
For devices running Android 11 or higher, users can enable non-persistent MAC randomization globally for all Wi-Fi networks (that have MAC randomization enabled) through the developer options screen. The option to enable non-persistent MAC randomization for all profiles is found at Settings > Developer Options > Wi-Fi non-persistent MAC randomization.
matsemann 1 days ago [-]
Could you describe how? Quick searching doesn't show it to be "straightforward" as far as I can find.
tengwar2 1 days ago [-]
OTP via SMS: depends on the country. These days it's not very common in the UK. They often ask for an email address, but my experience is that most of the time they don't check it for validity.
hhh 1 days ago [-]
you have both options in ios/macos, fixed random mac per ssid, and rotating
NoahZuniga 1 days ago [-]
No, this setting randomizes your MAC address between networks, but you keep the same MAC for a specific network. So if you want the network to think you're a new user, you'll need to change this specific network MAC address, and this isn't a setting enabled by default (and oftentimes is not even a setting)
khimaros 1 days ago [-]
GrapheneOS has per-connection (as an alternative to per-network) randomization which is enabled by default
rahimnathwani 1 days ago [-]
Android 11 or later allows the choice in Developer Options.
netsharc 1 days ago [-]
It's also in the Apple devices, you just have to "forget network" and reconnect for the device to tell the network of its new fake MAC address.
alt227 1 days ago [-]
How does that work with MAC address conflicts and clashes? I naively thought every MAC address had to be unique.
BobbyTables2 1 days ago [-]
They must be unique in a LAN segment. And only the lower 3 bytes in a MAC are “unique” as the upper 3 are the vendor ID and relatively fixed.
In practice people put fewer than 256 devices on networks (class C), so they have less than 1/65536 possibility of complete failure. And far less because they have a mix of OUIs.
But yeah, if you put a few hundred or thousand security cameras or other device from a single vendor, all on the same network, conflicts are certainly possible.
MAC conflicts are also a bit nasty to troubleshoot, and less obvious than IP conflicts.
kazinator 5 hours ago [-]
If your configuration doesn't randomize the MAC, that doesn't guarantee you won't be involved in a conflict. It only guarantees that it will go more badly for you, since you will be waiting on the other device to change their MAC before you get working networking. Whereas if yours is randomized, you will probably be okay after one reconnect.
MAC randomization does not have to constrain itself to the lower three bytes; you can randomize the OUI too.
What does Android MAC randomization do with the OUI?
According to this possible hallucination from Google Gemini 2.5 Flash, the OUI is partially randomized too:
- Locally Administered Bit (U/L bit): This bit (the 2nd LSB of the first octet) is forced to '1'.
- Unicast/Multicast Bit (I/G bit): The least significant bit (LSB) of the first octet is usually set to '0' to indicate a unicast address.
- Remaining OUI bits (and the entire lower three bytes): All the other bits in the MAC address, including the remaining bits of the first octet, the entire second and third octets (which are part of the OUI), and the entire last three octets, are randomized.
Me again:
So if two bits are fixed, everyone in the randomized space is randomizing 46 bits, which contains 7.03E+13 addresses.
Practically speaking, it seems that the only way you will ever see a clash arising from the above randomization strategy is if two devices are using the same very poorly seeded PRNG.
diggan 1 days ago [-]
There are like 50 trillion possible addresses, unlikely to clash in one network :)
josh_carterPDX 17 hours ago [-]
This reminded me of an old app that would scan the MAC addresses of devices already connected to a paid WiFi network. You would then just change your MAC to one that already paid for the WiFi, and then reset it once you were done.
WJW 12 hours ago [-]
Wouldn't that lead to interference with the original device using that MAC address? Ie both of you getting packets meant for the other etc?
rafram 9 hours ago [-]
Yes. It’s a bad (maybe even illegal?) thing to do. The victim device will start losing packets, and it’ll look to them like the network is just unreliable. Eventually they give up and disconnect, and you take full control.
bongodongobob 5 hours ago [-]
Yeah. I think any network with STP/anti-flapping enabled will shut that down pretty quickly though.
bibelo 13 hours ago [-]
tried that in a hotel in Paris and it worked
glerk 1 days ago [-]
Alternatively, disconnect from the wifi, use this command and reconnect:
sudo ifconfig en0 ether 02:11:22:33:44:55
Just ran into this on icelandair.
pcl 1 days ago [-]
That’ll buy you one new turn of the crank; you’ll need to change numbers once every expiration period.
glerk 1 days ago [-]
Pretty sure the electron app has the same limitation (popover notification says “join the network again for free wifi”, besides you wouldn’t be able to change the mac address if the network interface were actively in use)
netik 1 days ago [-]
The trivial defense against this is time limited passwords for Wifi access. Deny all access until a valid password is entered, only permit that password and MAC address pair for n minutes.
Buy a coffee, get a new password, etc.
pimlottc 1 days ago [-]
On a technical level it’s trivial, but you’re taking about having a shop replace their wifi router and/or update firmware, create some way for staff to see the current password and/or integrate with POS systems to print it on the receipt, update signage, etc. Hardly trivial for the average non-techie business owner.
reaperducer 1 days ago [-]
So "trivial" that this is how it was done years ago, but then coffee shops gave up on it because it turned it not to be so trivial after all.
Their employees' time is more effectively spent making coffee than repeatedly providing low-level tech support for random password problems.
23 hours ago [-]
avidiax 1 days ago [-]
I feel this would be more useful as a utility to manage your MAC addresses.
That would let you, for example, clone a MAC address or IP address between your computer and a phone, and maybe automatically resolve contention.
That way, you can split purchased WiFi (such as on a plane) between multiple devices.
userbinator 19 hours ago [-]
That way, you can split purchased WiFi (such as on a plane) between multiple devices.
You need a router for that, which fortunately is built in to most phones and computers these days.
jagged-chisel 1 days ago [-]
That’s only going to work on one device at a time. Don’t think that your phone and laptop with identically MAC addresses are going to magically share the connection.
balls187 1 days ago [-]
Haven’t ever encountered any place that had a wifi time limit. In the late 2000’s internet cafes had time limits but that was enforced on their own devices.
Is there a specific scenario where time limited wifi is common place?
mr_mitm 8 hours ago [-]
Besides airplanes mentioned in the other comments, this is also common in airports. Zürich Airport gives you four hours for free.
Stuttgart Airport has 60 minutes.
scarface_74 9 hours ago [-]
Virgin Atlantic lets you have 20 minutes of WiFi free and then you can pay for the flight or for an hour.
mcshicks 1 days ago [-]
I think the name refers to the limits some airlines have. JAL for instance offers one hour free on some flights.
andy99 1 days ago [-]
I was trying to understand how this could be used for flights. I've seen either having to enter your last name and seat, or loyalty plan number to get in-flight wifi. Are there really airline wifis that give every mac address a free amount of time?
A lot of airlines now offer free "messaging" - usually just text on common messaging apps like WhatsApp. I've been meaning for years to write some kind of server that could give me useful functionality over chat messages.
userbinator 18 hours ago [-]
I've been meaning for years to write some kind of server that could give me useful functionality over chat messages.
Pretty sure it will work on JAL at least right now. They just asked for an email. But it was also a new service so maybe to wanted people to try it. It occurred to me at the time that two devices with two emails should work for twice as long. For what I wanted to do on that flight, i.e. check and send a few messages the one free hour was fine. But yeah of course they could change it so that would not work.
josu 1 days ago [-]
Airplanes. Some airlines offer 30 minutes of free wifi or something.
seemaze 7 hours ago [-]
I can't remember the last time I encountered this as an obstacle while flying. Don't you usually have to pay then log in from any device you choose?
The bigger problem is how utterly useless and unstable the connection is to begin with..
scarface_74 1 hours ago [-]
In the US, Delta and JetBlue offers everyone free WiFi.
tptacek 1 days ago [-]
Or you could just comply with the terms you tacitly agree to when using these services. Use this stuff or don't, but if you do, you don't get to complain about GPL infringement anymore.
neilv 18 hours ago [-]
This kind of thing can be a useful tool, including for privacy&security use cases that the page doesn't mention.
But be conscious and thoughtful when using it. Some terms to consider whether they apply to a particular use include "unauthorized access", "circumvention", and "theft of service".
nixpulvis 1 days ago [-]
I used to use this little macOS script at coffee shops.
This is exactly how I managed to get my dorm room’s internet turned off in college. My roommate was unimpressed with my cleverness.
shlomo_z 19 hours ago [-]
Can you tell us more about it? I am so curious!
(Edit: punctuation)
delfugal 9 hours ago [-]
AirPass? I had that wrong. Maybe because I just had lunch.
ClawsOnPaws 1 days ago [-]
Since this is only available for mac, couldn't this fairly easily be solved with shortcuts?
Beijinger 1 days ago [-]
Like macchanger under Linux since 20 years? Must be cool to have an Apple I guess.
boston_clone 1 days ago [-]
Can you not manually set your MAC address in the network configuration portion of macOS settings anymore? Does this not accomplish that same task, just with an abstracted layer of “randomness” for address generation? Another commenter already de-bloated the entire application into a bash one-liner
jagged-chisel 1 days ago [-]
“Randomness” and “one less thing for me to think about”
johnebgd 1 days ago [-]
Reminds me of Perfigo Smart Access before Cisco bought them. Network security with a MAC address whitelist. If you knew a whitelisted computer you’d have the same access it permitted. This was back before captive portal took off…
On Linux you can use `macchanger` to change your MAC address from the terminal.
deanc 1 days ago [-]
A few years ago I saw a tip somewhere here on how to scan which MAC addresses are connected to nearby wifi and hijack their mac address and steal their internet connection.
crustycoder 1 days ago [-]
On android it can be toggled on If Developer Options are enabled.
cactusplant7374 1 days ago [-]
Doesn't Mac already have this with rotating MAC addresses? I also ran into an access point that detected this and required me to turn it off to continue.
myself248 1 days ago [-]
I wonder how it detected it. Perhaps the randomly-generated ones are mostly in invalid/unassigned MAC space?
jasongill 1 days ago [-]
There is a "local bit" in MAC addresses per RFC 7042, so MAC addresses that have their second character as E, A, 2 or 6 are "local" which effectively means "randomly selected by software". So my current macOS selected MAC address of 16:6a:d2:20:e6:eb is "local" due to the second digit in the address being 6
bapak 1 days ago [-]
Oof, I wonder if this is the reason why I constantly have issues with my M1 Mac connecting to cafe hotspots. Regularly I find places that let me connect and then kick me off less than a minute later.
boston_clone 1 days ago [-]
I had no idea about this; generally i thought it was done by OUI like the GP suggested - they have a small cached table of valid OUIs and warn on prefixes not in that subset. Thanks for sharing!
gsibble 22 hours ago [-]
WOAH. MAC address spoofing is some old school stuff. I got in trouble for it in college.
I didn't realize you could spoof MAC addresses on....well....a Mac but it's not something I'd do lightly.
ndgold 1 days ago [-]
Nice little helper friend
curtisszmania 5 hours ago [-]
[dead]
alpenbazi 1 days ago [-]
[flagged]
satellite2 1 days ago [-]
Fantastic. Now we're promoting script kiddies scamming airlines. That's a new low for hn
phyzome 15 hours ago [-]
Those poor airlines!
gsibble 22 hours ago [-]
If this site was really hackers, this wouldn't be considered news.
deadbabe 1 days ago [-]
This is so unethical and no one gives a fuck, society crumbles when people just feel entitled to take more than their fair share.
chrisfosterelli 1 days ago [-]
This is hacker news. Hacker ethos is rooted in the intellectual challenge of overcoming software systems and electronic hardware. It's the same ethos that stole long distance phone minutes, traded warez, and got free satellite channels. You don't have to do those things but you probably won't convince those who do that their 20 extra minutes of wifi will be the downfall of society.
bigfatkitten 20 hours ago [-]
In reality it’s mostly VC/Big Tech news. Hacker ethos isn’t something we see much of around here.
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?
TOTAL: ~2,304,000 lbsThe 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.
Just to run 20 bytes of logic.
(I'm from Italy originally).
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.
At peak it’s 1/4 to 1/3rd the time.
Cars are slow around town.
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.
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…)
And to top it off, the dual flights and whale would need complex orchestration too!
We just call it Kubernetes…
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.
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.
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.
When you have so many processes on a modern machine competing for resources, when every app chooses to be bloated and slow it really adds up.
How far we’ve fallen.
Upgrades shouldn’t ever break things, bugs and vulnerabilities never exist, and Rube-Goldberg machines should work 100% reliably day in and day out.
Unfortunately reality doesn’t work that way…
https://msl.cs.uiuc.edu/~lavalle/cs397/goldberg.html
Qatar might even give you a plane!
1: https://wiki.c2.com/?SovietShoeFactoryPrinciple
Mass is a nonsense analogy that doesn't reveal anything useful.
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.
Every major release is like "fuck you."
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.
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.
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.
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.
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.
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...
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.
Thing is, most x-platform frameworks still require a big download. Java and Python runtimes are in the same ballpark as Electron.
This is not 'an app to change MAC address' but an app to 'overcome WiFi time limits'.
There's great power in abstraction. Disagree?
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.
ps: I love both space stations and Unix
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...
Honestly would not expect anything more from js devs who use macs/windows. I see this so often.
People who don't like the developers work can always write and publish their own application, of course.
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.
Yeah, that definitely describes every AI codebase I have seen..
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.
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.
>content-length: 47262814
Sigh...
https://en.wikipedia.org/wiki/MAC_address#Unicast_vs._multic...
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.
I guess they weren't kidding.
`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.
But you're unlikely to be taking one of the machines that has built-in ethernet to the airport or coffeeshop.
Can't seem to find a CLI command to do the same in macOS 26, but I haven't looked too hard either.
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?
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.
Describes far more corporate IT policy than it ought to.
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.
Definitely does not happen on "free trials" on in-flight Wi-Fi for obvious reasons.
It will change every time you disconnect/connect
For MacOS (Sequoia+) you can just forget the network and reconnect to get a new MAC address [1].
Android's documentation for if it decides to generate a new address per connection is a little vague [2], but I'm guessing forgetting and reconnecting works as well, you may also need to flip the "Wi-Fi non-persistent MAC randomization" bit in developer settings.
On Windows, flipping the "Random hardware address" switch seems to cause it to generate a new seed/address for me.
[1] https://support.apple.com/en-euro/102509
[2] https://source.android.com/docs/core/connect/wifi-mac-random...
https://github.com/halo/LinkLiar
It’s an illegal address, but most equipment will take it because test devices occasionally come from the factory with that MAC. But higher level stuff might barf on it because it’s technically illegal.
As always, ymmv.
On some equipment this may cause a broadcast storm, depending on how they implement things. Cisco equipment with some configs will send a packet to all the ports if it receives a packet and can't figure out where it's supposed to go.
In practice people put fewer than 256 devices on networks (class C), so they have less than 1/65536 possibility of complete failure. And far less because they have a mix of OUIs.
But yeah, if you put a few hundred or thousand security cameras or other device from a single vendor, all on the same network, conflicts are certainly possible.
MAC conflicts are also a bit nasty to troubleshoot, and less obvious than IP conflicts.
MAC randomization does not have to constrain itself to the lower three bytes; you can randomize the OUI too.
What does Android MAC randomization do with the OUI?
According to this possible hallucination from Google Gemini 2.5 Flash, the OUI is partially randomized too:
- Locally Administered Bit (U/L bit): This bit (the 2nd LSB of the first octet) is forced to '1'.
- Unicast/Multicast Bit (I/G bit): The least significant bit (LSB) of the first octet is usually set to '0' to indicate a unicast address.
- Remaining OUI bits (and the entire lower three bytes): All the other bits in the MAC address, including the remaining bits of the first octet, the entire second and third octets (which are part of the OUI), and the entire last three octets, are randomized.
Me again:
So if two bits are fixed, everyone in the randomized space is randomizing 46 bits, which contains 7.03E+13 addresses.
Practically speaking, it seems that the only way you will ever see a clash arising from the above randomization strategy is if two devices are using the same very poorly seeded PRNG.
sudo ifconfig en0 ether 02:11:22:33:44:55
Just ran into this on icelandair.
Buy a coffee, get a new password, etc.
Their employees' time is more effectively spent making coffee than repeatedly providing low-level tech support for random password problems.
That would let you, for example, clone a MAC address or IP address between your computer and a phone, and maybe automatically resolve contention.
That way, you can split purchased WiFi (such as on a plane) between multiple devices.
You need a router for that, which fortunately is built in to most phones and computers these days.
Is there a specific scenario where time limited wifi is common place?
Stuttgart Airport has 60 minutes.
A lot of airlines now offer free "messaging" - usually just text on common messaging apps like WhatsApp. I've been meaning for years to write some kind of server that could give me useful functionality over chat messages.
Already done:
WhatsApp: https://news.ycombinator.com/item?id=33568994
Facebook Messenger: https://news.ycombinator.com/item?id=9203946
SMS(!): https://news.ycombinator.com/item?id=8304409
The bigger problem is how utterly useless and unstable the connection is to begin with..
But be conscious and thoughtful when using it. Some terms to consider whether they apply to a particular use include "unauthorized access", "circumvention", and "theft of service".
https://gist.github.com/nixpulvis/d83c0ae70a4c3a06797b
(Edit: punctuation)
https://gothub.dev.projectsegfau.lt/alobbs/macchanger
I didn't realize you could spoof MAC addresses on....well....a Mac but it's not something I'd do lightly.