100% agree, but fortunately I don't think it is the "default lens". If it were nobody would be adding new async mechanisms to languages, because "what color is your function" was a self-described rant against async, in favour of lightweight threads. It does seem to have established itself as an unusually persistent meme, though.
If by "we" you mean US popular culture, yes. It's not universal, and definitely varies by country.
In the UK we don't tend to idolise the rich so much. Not to say it doesn't happen, but in popular culture positive depictions tend to be limited to period portrayals of idealised aristocracy (and even then it's rarely shown as heroic), with contemporary wealth usually treated as a dubious virtue.
Yes. Good point. This is a pretty US specific cultural phenomenon.
Probably rooted in the 'self made man', 'rugged individualism'. Go West to make your fortune. We forget the US is pretty young, and still has a lot of culture based on colonizing the west, taming the wilderness to find your riches.
It's a collection of interesting assembly snippets ("gems and riddles" in the author's words) presented without commentary. People have posted annotated "solutions" online, but figuring out what the snippets do and why they are interesting is the fun of it.
It's also available as an inscrutable printed book on Amazon.
Visual Studio Code has absolutely nothing to do with Visual Studio. Both are used to edit code.
.NET Core is a ground up rewrite of .NET and was released alongside the original .NET, which was renamed .NET Framework to distinguish it. Both can be equally considered to be "frameworks" and "core" to things. They then renamed .NET Core to .NET.
And there's the name .NET itself, which has never made an iota of sense, and the obsession they had with sticking .NET on the end of every product name for a while.
I don't know how they named these things, but I like to imagine they have a department dedicated to it that is filled with wild eyed lunatics who want to see the world burn, or at least mill about in confusion.
> they have a department dedicated to it that is filled with wild eyed lunatics who want to see the world burn, or at least mill about in confusion.
That's the marketing department. All the .NET stuff showed up when the internet became a big deal around 2000 and Microsoft wanted to give the impression that they were "with it".
I'm not sure what point is being made here. AIUI, Musk comes from a wealthy family. Are you saying a biography would say otherwise?
I think the point people are making about the low wage jobs is that it's irrelevant. People from wealthy backgrounds take low paid jobs sometimes, so having done so doesn't imply he's a rags-to-riches story.
I'm saying Musk's company was not founded on family wealth. Even if it was, where are all the other trillion dollar companies given that lots of families have wealth?
> People from wealthy backgrounds take low paid jobs sometimes, so having done so doesn't imply he's a rags-to-riches story.
It does in Musk's case. Why not read a biography of him? It's more interesting than speculation.
Nobody said his company was "founded on family wealth". They said he had that wealth available as a cushion to fall back on should his ventures fail. They also never said "every person from a rich family can make a trillion dollar business". They claimed that those who found successful businesses are disproportionately from wealthy backgrounds, and provided a supposed mechanism: a greater ability or willingness to take financial risks knowing there is a limit
to how far they can fall if they don't pan out.
Personally, I don't have any view on whether that is correct or not but it's obviously the claim that was made. It seems plausible but I'd want to see some actual data to believe it, not just anecdotes about a few of the most famous founders. Your points about low wage jobs and other trillion dollar companies are simply not relevant to it, and if biographies of Elon Musk contain information that would refute it you haven't said what or how.
Knowing you are an extremely accomplished man and fully capable of parsing this, I have to wonder why you seem blind to it.
I've come to quite a specific definition of "bad code", at least the main form of bad code that infests corporate environments. It's overly complicated code, but people disagree on what that means too, and I have a concrete definition of that now.
Bad, over-complicated code is code that requires you to form an unnecessarily detailed mental model of it in order to answer a particular question you may have about it.
People rarely read code in its entirety, like a novel. There is almost always a specific question they want to answer. It might be "how will it behave in this use case?", "how will this change affect its behaviour?" or "what change should I make it to achieve this new behaviour?". Alternatively, it might be something more high level, but still specific, like "how does this fit together?" (i.e. there's a desire to understand the overall organisational principles of the code, rather than a specific detail).
Bad code typically:
* Requires you to read and understand large volumes of what should be irrelevant code in order to answer your question, often across multiple codebases.
* Requires you to do difficult detective work in order to identify what code needs to be read and understood to answer the question with confidence.
* Only provides an answer to your question with caveats/assumptions about human behaviour, such as "well unless someone has done X somewhere, but I doubt anyone would do that and would have to read the entire codebase to be sure".
Of course, this doesn't yield some number as to how "complicated the code is" and it depends on the question you're asking. A codebase might be quite good on some questions and bad on others. It can be a very useful exercise to think about what questions people are likely to seek answers for from a given codebase.
When you think about things this way, you come to realise a lot of supposedly good practices actually pessimise code in this sense, often for the sake of "reusability" of things that will never be reused. Dependency injection containers are a bête noire of mine for this reason. There's nothing wrong with dependency injection itself (giving things their dependencies rather than having them create them), but DI containers tend to end up being dependency obfuscators, and the worst ones import a huge amount of quirky, often poorly-documented behaviour into your system. They are probably the single biggest cause of having to spend an entire afternoon trawling through code, often including that of the blasted container itself (and runtime config!), to answer what should be a very simple and quick question about a corporate codebase.
>People rarely read code in its entirety, like a novel. There is almost always a specific question they want to answer. It might be "how will it behave in this use case?", "how will this change affect its behaviour?" or "what change should I make it to achieve this new behaviour?". Alternatively, it might be something more high level, but still specific, like "how does this fit together?" (i.e. there's a desire to understand the overall organisational principles of the code, rather than a specific detail).
+1. For me the most frustrating one is "where is the core logic for this one user-visible feature actually implemented?"
You look in all the obvious places and it's just nowhere to be found. Or it's shredded into tiny pieces and scattered across multiple files and seventeen layers of inheritance ...
The MSN link on the post doesn't have the charts the original WaPo article [0] contains, which provide just such a comparison, though over a longer period (from 2019), showing 132% vs 1057%. (No idea if that is right or more/less meaningful, just pointing out it's missed off this link.)
Neither Nvidia nor Tesla were top 7 by valuation in 2019 though - this seems like it heavily relies on cherry picking the most successful stocks over the past 6 years and comparing them against everything else.
> Second, even if I installed a VPN on my main machine, what about my phone? My laptop? My desktop? Every device would need the VPN running, and I’d have to remember to connect it before browsing. It’s messy.
This is what routers are for. My router (a cheap fanless box with several network ports running linux) is the only thing on my network that knows there's a VPN. I can selectively route whatever I want through it, including having a separate SSID/VLAN from which everything is routed through the VPN. It's wireguard based so there's no "installing a VPN", just an interface/network configured in systemd-networkd (once, on the router).
Edit: Routing by domain name could be tricky, though. I haven't had a need for that, and a proxy with local DNS override (as in the article) might needed if it came to that. I'd still do it on the router, though.
This is it. For years, I had a stable IPSec connection from Germany to the US, where packets would be routed selectively for the convenience of web browsing without geo-blocks. It was a bit excessive for what it did, but the technical challenge of trying it was worth it. [1]
Useless in modern days though. IP addresses with anything backed by any cloud/CDN can vanish whenever they want, you'll always need to keep track of the upstream DNS responses.
That's extra fun if you do site-to-site-VPNs with a major customer. Won't name names, but they do have a habit of going through IP renumbering sprees every year or two and it's a true pain to keep the routing table, Zerotrust provider config and firewall rulesets in sync.
I like protectli boxes. x86, low power, coreboot options, lots of network interfaces. The apus everyone recommends (myself included) are no longer available :(
+1, have had 10/10 experience with my Qotom - in fact I had to look up the brand to be sure that was what I had. Forgettability (due to reliability) is exactly what you want in router hardware.
Two devices I use - both running Debian, and both being open-source hardware to some degree or other:
PC Engines APU2, AMD x86_64, 4-core, 4GiB, 3x Gigabit Ethernet, 3 x mini PCIe, SIM slot, USB 3, Serial, SATA ports. Mine has dual band WiFi in one mPCIe, SSD in another.
Turris Mox, Marvel aarch64. This can expand via plug and go via a range of extension modules. I've got one with 25 Gigabit (3 x 8-port modules) Ethernet, 1 x SFP, 5 x USB3, Wifi, Serial.
> Far from it, there are separate registration and recycling schemes for each of the 28+ EU member jurisdictions (and even a few of their provinces). What part of COMMON MARKET was so hard to understand for EU lawmakers ?
Since there is no single registration available, and separate registration would involve mindboggling complexity, bureaucracy and costs, we do not sell to EU end users until the EU gets their act together. Please order from EU based distributors, or as a business customer.
> Business customers are expected to meet their obligations by registering in the EU countries they sell in.
> Wildly ironic that an EU company doesn't ship to the EU.
Switzerland is not part of the EU in this timeline... But their rant sounds very much like an excuse, the WEEE is in effect at least since 2021:
"All EU Member States are required to adopt the Waste Electrical and Electronic Equipment (WEEE) Directive 2012/19/EU, which sets rules for the collection, treatment, and recycling of electronic waste. However, some countries were granted an extension until August 2021 to meet the collection targets due to infrastructure limitations, including Bulgaria, Czechia, Latvia, Lithuania, Hungary, Malta, Poland, Romania, Slovenia, and Slovakia" - courtesy Google AI overview
And in the end, 90% of people will throw it in the trash with everything else. I'm actually in the other 10%, but I live in the middle of a big city where I have electronic waste container like 300m away.
Btw, that's an awful website. I like simple minimalistic websites, but some people confuse "simple" with "give literally 0 fucks about the reader" and then I have 50-word long lines to read on my 32" monitor. Just put something like {max-width: 1200px; margin: 0 auto;} on the body at least.
Yeah, that was my point, it's easy for me, but that's not the case for most people in the country. And I guess that most people living near me don't think about putting electronics in the dedicated container anyway, even if that container is near them.
I'm running OPNSense on a GMKtec G9 (a N150-based NUC with dual 2.5Gbps NICs), and a cheap managed switch. All-in, you can get it today for well under $300. Even that is rather overpowered for running my house.
The toughest component to pin down was a mesh wifi system that supports tagging VLAN segments. That's almost exclusively enterprise territory, so it's hard to find something affordable.
Is there a mesh wifi system that can run open source firmware? I imagine that might be the best bet for VLAN tagging too in the "affordable" sense too.
Not that I'm aware of, and I suspect that the whole idea of mesh radio is necessarily so closely tied to the specific hardware that for this to be practical, there's have to be some canonical physical implementation available for developers to program to.
For what it's worth, what I settled on is EnGenius's FitXpress products. But I'm not necessarily recommending that, I'm a bit ambivalent to it. Within its normal operational envelope it works well, but its range is far lesser than the TP-Link device I replaced, and rebooting one of the WAPs in the mesh takes seemingly forever (like, 10 minutes!).
Also not the OP, but I use a NanoPi M5 for my home router. I've got OpenWRT (technically FriendlyWRT, but it's the same) running on it with Docker for running NgINX and PiHole.
You can do it like this, or (easier IMO if your router doesn't support it) you can just setup a raspberry pi as a VPN router then set you dhcp server on your router to hand out the RPIs address. You can then switch on to the normal connection at any point you need by just changing your default gateway back to .1
my solution to this is to have centralised VPN splitter (x-ray/singbox) sitting on RPi, with tailscale attached to it. This makes it available from anywhere if the device is on TS network. With added benefit of rule based geo splitting to various zones.