When a basic dynamic library needs to be updated because, for instance, there is a big security issue, then all your statically linked binaries will have to be updated. Which means every one of those developer teams need to keep track of all the security fixes, release a new version of the binary and push it, and every user will have to download gigabytes and gigabytes of data.
While if you have dynamic libs you only have to download that one, and the fix will be pushed earlier and all the apps will benefit from it.
That route already exists today as “the web”, where the “latest” JavaScript source is downloaded and JIT-ed by browsers. That ecosystem is also not the greatest example of stable and secure software.
Oh, thank you! I am realizing I have not used Gentoo in ages. It was the only option on the Xbox at the time, and that didn’t have many cores. I should give it another go.
As someone using it as a daily driver, I wish you the best of luck. If you stick with it, I expect you’ll learn a lot about what goes on behind the scenes in other distros that have a lot pre-configured, like greeters, compositors (or DEs and WMs), etc.
I use all cores for updating and still have no problems. Doesn’t even make videos stutter. I think you’ll find things much less heinous than they were on Xbox.
Great idea. I’m sure Microsoft, Apple, Adobe, and almost every company that makes money with their software will be super happy to share their source code with me!
Also this change from 1:1 to 1:n entity was like one “minor” feature in a rather larger list of feature requests. It so far has caused more work then all the other features combined.
I eventually learned to never trust any restrictions on the user.
I quickly learned to make sure everyone had a copy of decisions made, so that I could charge by the hour for changes. I eventually learned to include examples of what would and would not be possible in any specification or change order.
Because programmers find a good way to do something then apply it to everything. It becomes the one true way, a dogma, a rule. Like how OOP was the best thing ever for everything, and just now 30 years later is proven to be actually bad. At least appimage is more like DOS-s “just unzip and run it” then “download another 500MB of useless stuff because the program depends on 1 20kB file in it”.
That said, well made libraries are good. As in those that have a stable API so versions don’t matter that much.
Like how OOP was the best thing ever for everything, and just now 30 years later is proven to be actually bad.
Alan Kay coined the term 57 years ago and we have to look at the landscape back then to see just how much OOP has actually influenced pretty much all languages, including ones that distance themselves from the term now. Avoiding shared global state. Check. Encapsulating data and providing interfaces instead of always direct access. Check. Sending signals to objects/services for returned info. Check check check.
Data oriented design is the new thing, much different from that.
OOP, other then smalltalk and maybe few other languages, is somewhat different in practice from the original idea. I can dig up a great talk from Alan Kay on OOP if you want. Actually i want to watch it again so i’l edit it in here when i find it.
That said, we often have to process seemingly unrelated data together which is slow with the model of passing data arround (even when by reference). When OOP was invented memory access was as fast as actual operations on it, while today memory is much slower then processing. With caches and simd and such, it is much faster if everything is an array. Peronally i’m not a fan of OOP because of the “everything has to be an object” mentality, but do whatever you like.
Windows shared libs could do with having an rpath equivalent for the host app. I tried to get their manifest doohickeys working for relative locations but gave up and still just splat install them in the exe directory.
Aside from that shared libraries are great. Can selectively load/reload functions from them at runtime which is a fundamental building block of a lot of applications that have things like plugin systems or wrappers for different hardware etc. Good for easier LGPL compliance as well.
Modern Windows does a lot of shenanigans with DLLs to avoid the “DLL hell” effect, like keeping multiple versions, hardlinking, and transparently redirecting the DLLs accessible to a program, even when they “seem” to be in the exe’s dir.
Additionally, I can’t really understand why are dynamically linked libraries so popular and how on earth anyone who ever had a “.dll / .so not found” error thinks this is a good idea.
You can load a DLL once and all programs can share it, saving memory. It also makes programs start faster since the DLL might be already loaded, so there’s less to load from disk. That mattered more back in the 90s
You can update one file and have the patch apply to all programs
On android when you go to the wifi settings you’re currently connected to there should be a setting for randomizing mac address per connection or per network. If you change it to per connection, once you disconnect and reconnect your mac address should change. On per network, it will randomly generate the mac address for the first connection and keep that address for that wifi forever.
Thanks for asking the question! I’ve never needed to know it, and I’ve done enough android tinkering that I’m fairly sure I could find it quite easily if needed, but I enjoy my social media being peppered with bits of learning wherever possible. I’m a big fan of ambient curiosity
Yeah, recently I was on school wifi and it kept bothering me to log in and figured I needed to switch to per network or it would bother me everytime to sign into the captive portal.
Yeah, on Android 12 I can only choose between “randomized MAC” and “phone MAC”. Doesn’t specify if it’s randomized per network or connection, but I’d guess it’s per network.
By default it’s per network, but if you enable Developer Options, there is a setting under Networking called “Wi-Fi non-persistent MAC randomization” that randomizes the MAC per connection for networks that have randomization enabled. I am on Android 13 though, so I’m not sure if 12 has this option.
On stock (Pixel) Android, if you enable Developer Options, there is a setting under Networking called “Wi-Fi non-persistent MAC randomization” that randomizes the MAC per connection for networks that have randomization enabled.
I have a Samsung and it’s per network, even if you forget and rejoin it keeps the same random Mac address. You need to enable a developer setting to have it randomize when you join.
Let’s say you want to set a static DHCP ip from your router. The only way to do so (from the router, I’m not talking from the phone), is by assigning an IP to a MAC address.
If the address is randomised per connection, affecting a static DHCP ip would be impossible.
Another thing a router often has is some sort of dhcp memory. It remembers the ip it gave to a certain MAC address for some time, then when the device connects back, it assigns the same IP it had before.
So if the ip changes each time either the MAC address changes each time (not sure it’s default), or the router has no memory.
for a device without inbound connectors and no ip based lan firewall rules, which applies to most phones, random per connection macs seem like a pretty good default for privacy.
some networks doing “unusual” things like hotel wifi limiting you to few devices (implemented by mac counting) may be thrown off though.
I didn’t say there were no use cases for this, but the average phone user will not need it. someone using samba on their phone would likely be capable of switching the network config to not randomize every time.
That’s the point though. The address is randomized per connection specifically so the device can’t be identified. It’s to prevent tracking, blocking, or assigning, anything based on mac address without the device owners knowledge. Every time your phone connects the network has to treat it like a new device. If it was randomized per network that would defeat the point.
I personally can’t think of any reason you would need a static IP on your phone but if you did then you should know enough to know how to turn off the randomized mac address. You can even change the setting per network so if you need a static ip at home then you just set your phone to use a static mac address on your home network and continue using a randomized one on every other network.
Most Android phones have an option to randomize MAC per WiFi, enabled by default. Maybe you can trigger a new MAC by forgetting the network and reconnecting?
If you enable Developer Options, there is a setting under Networking called “Wi-Fi non-persistent MAC randomization” that randomizes the MAC per connection for networks that have randomization enabled.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Redacted with PowerDeleteSuite. F*ck Spez.
All the replies: “OMG, thank you so much, this was exactly what I needed! You just saved me hours of work!”
I enjoy seeing these. I still have the HBO Max “Integration Test Email #1” from 6/17/2021. It’s one of the oldest emails in my inbox, and its presence there motivates me to clear my inbox just to have a giggle.
AT&T does this in my state with their emergency alert system on a regular basis, and I admit, I want to smack that crap out of whatever intern does it.
programmer_humor
Active
This magazine is from a federated server and may be incomplete. Browse more on the original instance.