• 0 Posts
  • 222 Comments
Joined 1 year ago
cake
Cake day: July 23rd, 2023

help-circle




  • I feel like it’s wrong to idolize anything in the same way that it’s wrong to throw out many things (there are some clear exceptions usually in the realm of intolerance but that’s unrelated to this). Clean Code, like every other pattern in software development, has some good things and some bad things. As introduction to the uninitiated, it has many good things that can be built on later. But, like Gang of Four, it is not the only pattern we apply in our craft and, like Agile, blind devotion, turning a pattern into a prescription, to Clean Code is going to lead to a lot of shit code.

    Cognitive load helps us understand this problem a lot better. As a junior with no clue how to write production code, is Clean Code going to provide with a decent framework I can quickly learn to start learning my craft, should I throw it out completely because parts are bad, or should I read both Clean Code and all its criticism before I write a single line? The latter two options increase a junior’s extraneous cognitive load, further reducing the already slim amount of power they can devote to germane cognitive load because their levels of intrinsic are very high by the definition of being a junior.

    Put a little bit differently, perfection (alternatively scalable, maintainable, shipped code) comes from learning a lot of flawed things and adapting those patterns to meet the needs. I am going to give my juniors flawed resources to learn from to then pick and choose when I improve those flaws. A junior has to understand the limitations of Clean Code and its failures to really understand why the author is correct here. That’s more cognitive science; we learn best when we are forming new connections with information we already know (eg failing regularly). We learn worse when someone just shows us something and we follow it blindly (having someone solve your problem instead of failing the problem a few times before getting help).

    I’m gonna be super hand-wavy with citations here because this a soapbox for me. The Programmer’s Brain by Felienne Hermans does a good job of pulling together lots of relevant work (part 2 IIRC). I was first introduced to cognitive load with Team Topologies and have since gone off reading of bunch of different things in pedagogy and learning theory.




  • You highlighted the wrong portion of this article.

    The complaint cites statements including from a March 5 conference call where Kurtz characterized CrowdStrike’s software as “validated, tested and certified.”

    If the CEO is making claims that the software is tested and certified, then the CEO should be able to prove that claim, no matter where the software lives. It is very reasonable to say, at face value, the CrowdStrike testing pipeline was inadequate. There is a remote possibility that there were mitigating factors, eg some other common software update released right before from another vendor that contributed; given CrowdStrike’s assurances and understanding of where it falls in most supply chains I consider that to be bullshit. I personally haven’t seen anything convincing that shows a strong and robust CI pipeline magically releasing this issue.

    Now shareholder lawsuits are bullshit in general and, as someone constantly pushed to release without fucking any confidence, I think it’s really fucking dumb to ever believe any software passes any inspection until you have actually looked at the CI/CD process in-depth.




  • The problems you’re facing aren’t very clear. Can you expand a bit?

    Lots of things in VS Code just work if you use the non-FOSS version and don’t need to install any system dependencies. For example, there are a ton of code formatters that you can install and run without tuning (eg I installed a SQL formatted last week with nothing else to do). There are also some that you need underlying dependencies for (eg if you want Rust extensions to work, you need the Rust toolchain; same for LaTeX); however this is true in any editor based on my experience (although some editors eg JetBrains might mask that through their GUI). Across both options, you often need to tune your extensions based on your use case or even hardware in some cases (eg setting up nonstandard PATH items).

    YMMV for VSCodium, the FOSS version, primarily because it relies on a different extension registry per the terms of use. You can get around this as a user; as a vendor they cannot. Outside of tweaking the registry I’m not aware of anything else you need to do for parity.

    Edit: forgot to tie all this back to my opener. What do you mean when you say it requires all sorts of work? Are you experiencing other issues than something I called out?


  • You realize that Bitcoin is traceable, right? You kinda picked the wrong crypto to use as an example. Unless you’re completely in the Bitcoin system and never connect to any outside system or interact with anyone who interacts with an outside system or interact with anyone who interacts with someone who interacts with an outside system or so on (it’s not quite ad infinitum), you are most likely traceable. Tools like Chainalysis have been used by governments for almost a decade.

    Your other points aren’t really valid if you ever want to convert Bitcoin to something that isn’t Bitcoin. I’m not aware of complete supply chains and grids that exist solely on Bitcoin (or any combination of crypto for that matter) so things like having control of your money, needing ID, and trusting centralized entities (sure, exchanges plural) are a huge part of Bitcoin.





  • If you are able to find a US govt job and can make it through the whatever period you need to be a contractor until you get hired on as a federal employee, this should cover you. I have a contact in a similar situation except cluster headaches. It’s going to pay less than private sector and you might have to learn some new skills for the right role. IIRC Softrams just landed a huge federal contract and hires warm bodies; might be a great place to start.

    I’ve got a lot of contacts on the market right now struggling to land a gig that wouldn’t have struggled a few years ago. Do you have DevOps skills? Any security qualifications? Get both. Are you working on certs? Do some. Have you hired a resume service? Do so. The last two are things I normally think are kinda bullshit but they are edges that seem to matter right now.

    As for a recruiting firm, I feel like all the good recruiters I’ve worked with would have advocated for me. That’s a total fucking crapshoot tho. I’ve worked with plenty that have shafted me. I don’t think there’s a specific firm for this problem.