It’s a good thing I’m a hobbyist so that I can avoi- hmm, now that I think about it this feature could be really cool and shouldn’t take too long to implement…
Spouse at 7:00 AM: “Why do only some of the house lights work and there’s no hot water?”
Me: “You know that quick fix I was working on last night. Well, umm, one thing led to another aaaand… Umm… Just so you know, your phone is using mobile data because the wifi is out.”
Did you,… hrm,… did you even take classes about this stuff. Ffs, this is why this career pays well: you have to understand complicated things.
Maybe your issue is with Windows. I suggest moving away from that platform.
Dynamic libraries are essential to computing, and allow us to partition out pieces of the code. One giant library would have to be recompiled with every change.
I mean yeah, dynamic libraries are great if used correctly (via something like Nix), but the unfortunate truth is, that they are not used correctly most of the time (the majority of the Unix and Windows landscape is just a mess with dynamic libraries).
With modern systems programming (Rust) the disadvantages of static compilation slowly fade away though via e.g. incremental compilation.
That said dynamic libraries are still a lot faster to link and can e.g. be hot-swapped.
I had them most sophisticated hotel/resort wifi capture page I’ve ever seen them other week. It had you register on the wifi using your room number and booking email, then it gave you 10 slots that you put Mac addresses into. I couldn’t imagine how many people I bet never figured out how to use it lol
My favorite thing was having to rewrite an enormous amount of code to support a new feature because the original architect originally wrote an enormous amount of code in anticipation of supporting a new feature like it.
Haha they’re just different ways of estimating the difficulty of a work task. Story points are a kind of estimate that are represented by a number. The larger the number the more difficult the task.
My company uses WAG (wild ass guess) time estimates where we have to actually say how long we think a task is going to take in a matter of days or weeks. It sounds fine but programming tasks are notoriously hard to estimate since you have to consider so many different factors. I’m especially bad at it so I’d much prefer just saying “this task is an 8 because it seems hard”
It’ll take 20 hours. Unless it’s harder than I thought. Or it’s easier than I thought. Or it’s exactly as hard as I thought except there’s one little thing that I get stuck on for 5 hours.
I recently estimated a task to take a couple hours but it ended up taking a week. Hadn’t considered having to update a bunch of other teams services with new proto schemas and making sure they were deployed before our own service 🙃
My team has being trying an approach where instead of story pointing, we break everything down into the smallest incremental tasks we reasonably can and use number of tasks overall as the metric instead of story points.
In theory it’s meant to be just as accurate on larger projects because the larger than normal and smaller than normal tasks all average out, and it save the whole headache of sitting around and arbitrarily setting points on everything based mostly on gut feeling.
Huh. That’s such a simple and obvious approach, I’m kinda mad I’ve never thought of it lmao. It seems like you’re essentially breaking everything down to a 1 (or as close as you can get it), which is probably a more accurate measurement anyways. Neat.
I remember reading a study done across some large organizations that showed this approach was more accurate than other estimation techniques. Makes sense to me.
When I teach story points (not in an official Agile Scrum capacity, just as part of a larger course) I emphasize that the points are for conversation and consensus more than actual estimates.
Saying this story is bigger than that one, and why, and seeing people in something like planning poker give drastically differing estimates is a great way to signal that people don’t really get the story or some major area wasn’t considered. It’s a great discussion tool. Then it also gives a really rough ballpark to help the PO reprioritize the next two sprints before planning, but I don’t think they should ever be taken too seriously (or else you probably wasted a ton of time trying to be accurate on something you’re not going to be accurate on).
Students usually start by using task-hours as their metric, and naturally get pretty granular with tasks. This is for smaller projects - in larger ones, amortizing to just number of tasks is effectively the same as long as it’s not chewing away way more time in planning.
It’s been a few years since my networking course, but I believe it refers to DNS it refers to stuff like IP addresses. DNS is related to the Internet layer, but it’s not correct to call it the Internet layer
DNS is an application layer on top of the Internet layer that lets you have host names (i.e. “www.google.com”) towards the user side instead of IP addresses (i.e. 127.0.0.1).
However the internet layer only understands IP addresses so any application that is using hostnames internally and for displaying to the user has to translate them into IP addresses (using DNS) as it has to use those for the internet layer to know which hosts it wants to talk to.
URLs are yet something else: they’re a text format for encoding protocol, host if applicable (in name or in IP address), IP port if applicable and protocol specific stuff (i.e. the page address on a website) to form an application level “address”, which is more than just the host address (as that’s only a machine on the network, not a service hanging from an IP port on that machine waiting for requests).
People are so used to web URLs that they often don’t know URLs can encode more than just pages in what they think as “normal” web addresses (such as www.google.com and www.google.com) and can actually support the same protocol in a different port (www.google.com:8080 - note that this one probably doesn’t work because google just uses the default port for HTTP which is 80 and doesn’t have an HTTP server running in 8080), host identification by IP address instead of hostname (i.e. 127.0.0.1) and even different protocols (i.e. ftp://127.0.0.1).
This meme is kind of wrong though, because it’s mixing the OSI model with the TCP/IP model, which are different representations of the same thing, but in either model the “link layer”, ie layer 2 switching would never hand over to the “internet” layer without going through network first. So if you’re confused, it’s because it’s wrong.
The internet layer of the TCP/IP network stack is where the packets are routed between hosts. It operates between devices that have their own logical (IP) addresses, such as computers, routers, modems, or network bridges. It is the layer where the packet finds its way from the sender to the destination. Its most common protocols are IPv4, IPv6, and ICMP.
You likely have it enabled by default, it’s located in the view more or advanced settings on each specific wifi network, once enabled just forget network and reconnect, if that doesn’t work, you can try enabling “WiFi non-persistent MAC randomisation”. I’m not techie but that’s what I did whilst on a camp site with a 30 minute trial, worked a beaut.
Most consumer-grade NICs have a default MAC address which is retrievable with device drivers, but delegate (Ethernet) packet assembly to the OS. If the OS asks the NIC to emit a packet, then the NIC often receives the packet as a blob, DMA’d from main memory, and emits the bytes as octets. Other NICs do manage packet assembly, but allow overwriting the default MAC address. By the time I was learning Linux, we had GNU MAC Changer available in userland with the macchanger command, and many distros have configuration for randomizing or hardcoding MAC addresses upon boot.
I want to say that this is all because olden corporate network management policies could require a technician to replace a NIC without changing the MAC address, but more likely it is because framing and packet assembly was not traditionally handed to a second controller, and was instead bit-banged or MMIO’d by the CPU.
Well, I mean, there’s the whole “Metaverse” thing, and it’s been more than a decade since I read Snow Crash but I recall it being, pretty clearly, a cautionary tale…
I don’t think the metaverse was the part they were warning about… I think it was the hypercapitalism and corporations taking over control from the government’s
The last sentence of the article however, shows why that’s not much of a consolation:
In other words, it is activist hedge funds and modern executive compensation practices — not corporate law — that drive so many of today’s public companies to myopically focus on short-term earnings; cut back on investment and innovation; mistreat their employees, customers and communities; and indulge in reckless, irresponsible and environmentally destructive behaviors.
programmer_humor
Active
This magazine is from a federated server and may be incomplete. Browse more on the original instance.