Nah, the maximally sarcastic advice for tax avoidance is "become president" then you can just refuse to prosecute yourself for tax evasion and sue yourself for a ridiculous sum of money when someone leaks your tax avoidance.
RRSP first time home buyer credits can get a bit complicated though. Also, a fun fact - dual US-Canadian citizens can't (effectively) use TFSAs because the US considers appreciation in a TFSA to be taxable income.
A GPL license helps but if support for a dependency is pulled you'll likely end up needing to divert more resources to maintain it anyways. There really isn't any guarantee against this cost - you either pay someone else to maintain it and hope they do a good job, build it in house and become an "also that thing" company, or follow a popular project without financially supporting it and just hope other people pick up your slack.
Preferring GPL licensed software means that you're immune to a sudden cut off of access so it's always advisable - but it's really important to stay on top of dependencies and be willing to pay the cost if support is withdrawn. So GPL helps but it isn't a full salve.
I think the good news here is that since OpenAI is a zombie company at this point this particular acquisition shouldn't be too concerning - and from what I've seen Anthropic has been building out in a direction of increased specialization. That said vertical integration is as much of a problem as it always was and it'd be excellent to see some sane merger oversight from the government.
I had access to it on a long-haul AirFrance flight. While I avoid doom-scrolling in my daily life because there's better stuff to do... on a long haul flight it's a surprisingly good way to pass time intermittently. I still just watched pre-downloaded dropout for 80% of the flight but when I was too tired to appreciate it I'd turn my brain off and watch a bit of that wonderful doom-scroll slop.
The fact that it's powered by starlink is disappointing due purely to Elon Musk's involvement - but this is one of the better use cases for satellite internet technology. I'm not going to go out of my way to book with airlines that use the service though.
Most people who are knitting do it purely for the experience of knitting. If you need clothes it's far more affordable to buy the cheap manufactured stuff. Some people certainly enjoy the creativity of expression and wish they could get to that easier - but most of those people have moved away from manual tasks like knitting and instead just draw or render their imagination. There's genuine value in making things by hand as the process allows us time to study our goal and shape our technique mid-approach. GP may legitimately like knitting more than making clothes.
I think you misunderstood my post. Now many people do knitting for the joy of knitting, but people used to knit to create clothing to wear or to sell. Of course, automated knitting machines have largely replaced hand knitting, and people now still do it. If you are very good at hand knitting, you might see if you can sell some work. However, if you want to make knitted clothing at scale, you would be better served taking a high-level approach to the actual design of the clothing and learning how to prompt the automated knitting machine to do so instead of optimizing for how you yourself would hand knit it.
That would be a maximally economically efficient approach to producing knit clothes - but hand knit clothing still does have a significant market. This year I sought out a cobbler to get a new pair of shoes because my feet are a bit weird and the machine templates for what a foot should look like doesn't produce something I can comfortably wear. If you personally derive value from putting in the manual labor to produce "artisanal" goods in most fields you can find a market willing to pay the premium for your labor. This market is much smaller than the machine-driven equivalent so it can't support nearly the same quantity of producers as the market supported before automation came along but it is a niche you can operate within.
I don't disagree with your main thesis that an automated knitting machine can out produce hand-knit goods but I do think you're under appreciating that there still is a market for the non-automated goods. Even if they can't compete for the majority of the market markets are weird and non-uniform so those skills do still feed into a market.
> Well for one, programming actually sucks. Punching cards sucks. Copywriting sucks.
There's a significant difference between past software advancements and this one. When we previously reduced the manual work when developing software it was empowering the language we were defining our logic within so that each statement from a developer covered more conceptual ground and fewer statements were required to solve our problems. This meant that software was composed of fewer and more significant statements that individually carried more weight.
The LLM revolution has actually increased code bloat at the level humans are (probably, get to that in a moment) meant to interact with it. It is harder to comprehend code written today than code written in 2019 and that's an extremely dangerous direction to move in. To that earlier marker - it may be that we're thinking about code wrong now and that software, as we're meant to read it, exists at the prompt level. Maybe we shouldn't read or test the actual output but instead read and test the prompts used to generate that output - that'd be more in line with previous software advancements and it would present an astounding leap forward in clarity. My concern with that line of thinking is that LLMs (at least the ones we're using right now for software dev) are intentionally non-deterministic so a prompt evaluated multiple times won't resolve to the same output. If we pushed in this direction for deterministic prompt evaluation then I think we could really achieve a new safe level of programming - but that doesn't seem to be anyone's goal - and if we don't push in that direction then prompts are a way to efficiently generate large amounts of unmaintained, mysterious and untested software that won't cause problems immediately... but absolutely does cause problems in a year or two when we need to revise the logic.
As someone who believes strongly in type based programming and the importance of good data structure choice I'm not seeing how Rule 5 follows Rule 1. I think it's important to reinforce how impactful good data structure choice is compared to trying to solve everything through procedural logic since a well structured coordination of data interactions can end up greatly simplifying the amount of standalone logic.
Data cache issues is one case of something being surprising slow because of how data is organized. That said, Structure of Arrays vs Array of structures is an example where rule 4 and 5 somewhat contradict each other, if one confuses "simple" and "easy" - Structure of Array style is "harder" because we don't see it often; but then if it's harder, it is is likely more bug-prone.
But good data structure is not always evident from the get go. And if your types are too specific it would make future development hard if the specs change. This is what I struggle with
Professionally I'm a data architect. Modeling data in a way that is functional, performant and forward facing is not an easy problem so it's perfectly fine to struggle with it. We do our best job with what we've got within reasonable constraints - we can't do anything more than that.
I found that over time my senses have been honed to more quickly identify things that are important to deeply study and plan right now and areas where I can skimp more and fix it later if problems develop. I don't know if there was a short cut to honing those senses that didn't involve a lot of pain as I needed to pick apart and rework oversights.
Good strong (read specific) types encourage easier redactors.
Changing the function signature or the type then generated cascade of compiler errors that tells you exactly what you touched.
Weak non specific types does not have that property and even with tests you cannot be sure about the change and cannot even be sure you are upholding invariants
reply