7,194 karma · joined August 17, 2016
[ my public key: https://keybase.io/efitz; my proof: https://keybase.io/efitz/sigs/hazfgppUsyRbFXxDYXd8v6fzMdb7IsC2BmEHVftCiBw ]
I don’t think he’s playing 4D chess; I think he truly believes all the “AI is going to eliminate all the jobs” crap. I think his “Claude Constitution” is wishful thinking and his attempts to exert control over what his customers lawfully do with the product he sells them have made his company untrustworthy; certainly so by the US Dept of War.
I think lately his advisors have made him tone down the doomerism noting that it might tank his IPO, and I am uncertain whether his recent pushes towards more regulation are regulatory capture attempts or ideology or both.
The man is smart but IMO shouldn’t be running the company- he should be a CTO and let a business person make the decisions.
As for the government, bureaucracies gonna do what they always do. If you scare them they regulate you. ITAR is a real thing and the government throws it at technology all the time, from the minds that brought you 40-bit SSL in the 90s.
For better or worse, they “understand” and have seen a lot of message queuing code and read lots of message queue support discussions.
Pretty sure this statement is 100% wrong. You’re describing a gambling site. Is that how governments are treating them?
I think that the person misused Google internal information and deserves termination or other discipline, but I’m struggling to otherwise see the harm in what they did. Is insider trading a crime on prediction markets? Doesn’t it contribute to the accuracy of the pricing of prediction contracts, and therefore is good for the prediction market?
I know in some markets crime pays more than legitimate work, but it never ceases to amaze me how much thought, effort, planning, and engineering goes into providing infrastructure IT services for cybercriminals. The people involved definitely have the skills to be profitable at legitimate work; it just puzzles me that they choose to support criminals.
For any nontrivial task I spend 2-8 hours in specification (I spent 3-4 hours on a stateless rust CLI tool design this weekend) and detailed task breakdown in implementation planning.
I use TDD to start with red tests that turn green when acceptance criteria are met.
I write agents to use to check work and they are my enforcers of constraints, as well as fresh eyes. I use these agents for spec review, plan review and code review.
I am actually pretty proud of the projects I create with generative AI. I just apply a lot of discipline so I don’t end up with slop.
I agree with the poster that if you are doing anything that is not a defined happy path for Unifi, it is a freaking nightmare and will likely involve rebuilding, resetting and readopting several times.
Any hierarchical taxonomy classifies on one dimension at each taxonomic level. Invariably someone wants to classify on one criteria when someone else wants to classify on another. Taxonomies that humans use aren’t multi-dimensional. So if there is a disagreement, someone wins and someone(s) has to lose.
No one is wrong; they just have different priorities or preferences or goals.
So now as an architect I never argue (and seldom discuss) taxonomies. I make two points and then bow out:
1. Whatever your taxonomy is, you need a rubric for each level. You need a procedure or set of questions that unambiguously map any $THING you encounter into exactly one bucket. Validate that competent people with no specific domain knowledge can properly classify things with your rubric; it must be repeatable by amateurs, not just experts (software is dumb).
2. Existence trumps theory. If there exists a taxonomy and rubric for what you’re classifying, you need to provide a $DARN_GOOD_REASON why this wheel needs reinventing. Personal preference and your 1% edge case probably don’t justify all the work to reinvent everything.
Then, I go back to the implementers and tell them to design in a tagging system, which is a DIY taxonomy, and except in ridiculous use cases, I can make indexes make it fast enough to let everyone overlay their own classification system.
I once worked for $COMPANY and we had a network scanning application. Always generated a lot of tickets from angry people wanting to scream about bots.
So we put a web page page on each worker that would inherit some details from whatever job was running, and say “I’m a $TYPE_OF_SCANNER FROM $COMPANY doing $THING_THAT_BENEFITS_YOU.
This behavior is covered by our terms of service page at $LINK.
If you believe that we should not be doing this, please contact $SUPPORT and provide this code:
$SCAN_JOB_IDENTIFIER”
Call volume and unhappy customers went way down.
You need to start using SI points that are defined using wavelengths of ground state emissions of a decaying Americium atom.
It’s a straightforward technical problem to wrap an API or MCP or something around the “create an account” function.
But what will a court do when the agent creates a million accounts, mines bitcoin for a month, and then cannot or will not pay?
For things that are appropriate to build with agents, I have come to hold the strong opinion that you need to go all-in. If you built it with an agent, then you fix it with an agent, you debug it with an agent, and you change it with an agent.
In that case you should not consider yourself the steward of the source code and worry about “cognitive debt”- it’s literally not your job anymore. Your job is the keeper of the specification and care and feeding of the agents.
If you adopt the mindset that “I’m not going to build the documentation for me, I’m going to build it for the agent”, and “I’m not going to try to use my development skills to debug something I didn’t write, I’m going to make specific interfaces for the agent to understand the state and activity of the running code”, etc.- you’ll be a lot happier and more successful.
If you are using agents for autocomplete in your editor, or you open a separate chat window to ask a question about your code- that’s a very low level of agent usage and all your existing dev skills and responsibilities still apply.
If you’re using a planning framework like superpowers (the skill) and just laying out the spec for the program, then keep your fingers out of the source code, and don’t waste your time reading it. Have the agent explain it, showing you in the IDE, and make the agent make any changes you want.
I want people who break the law to go to jail. I don’t care if they’re cops or c-suite execs.
But what I really want is laws (preferably federal) that make it illegal to build systems that can be used for mass surveillance, and I want law enforcement to HAVE to get a warrant to receive data from surveillance companies, even if they offer it without a warrant, because I want oversight.
The history of technology is the replacement of manual processes with automated ones.
Consider a very basic process: checkout of a restaurant.
Writing the price of each item on a sheet of paper, manually adding them and writing the total was replaced with typing in the prices and eventually with just pushing the button for the item. Paper still exists for jotting down your order but within seconds of leaving the table it’s transitioned to computer.
This has enabled lots of desirable advances- speed, accuracy, new payment rails, and increasingly, elimination of the server in checkout- you tap a credit card on a tabletop device.
Did we “forget” how to do checkout? No. We purposely changed it.
But if the internet connection goes down or the backend server powering the cash register app goes down, there is an atrophied and not-regularly exercised skill set (maybe not even trained, IDK) that has to be implemented on-the-fly and it’s slow and frustrating for everyone.
Businesses don’t exercise (or perhaps even train) this process because it’s just not needed enough to warrant the cost.
Military procurement of weapons systems is hardly the place to point to as a technological tradition. There are lots of cases where no one pays the money to keep a production process in place; the reasons are all related to shortsighted “cost savings” or failing to anticipate changing needs.
With coding today, we are seeing the same kind of shift in priorities as my restaurant example. Having humans write code in the 2020 (pre-GPT) tradition was extremely inefficient in terms of time-from-idea-to-implementation.
We’ve found a new way to do the mundane part of that task (the mechanics of translating spec to implementation).
We are figuring out how to do that while preserving quality (and a lot of it is learning how to specify appropriately).
Will we “forget” how to “build” code?
No, but the skills to generate source code by hand will atrophy just as the skills to draw blueprints by hand atrophied with the advent of CAD.
Will we find examples where someone prematurely optimized away knowledge of a skill or process, incorrectly thinking it was no longer needed? Of course.
But the productivity gains we get will be so great on average that no one will go back to doing things the old way.
There will be old-timers and hobbyists who will preserve some of that knowledge; for most it will just be a curiosity.
If everyone is going to increase productivity by some factor k per employee, then kx is the new norm of overall productivity of x employees.
If you lay off some percentage Y of your work force, then your expected gains will only be k(x(100-y)/100). In other words, you will not recognize the same productivity gains as your competitors that chose not to lay off.
Yes I realize it is more complex than that, because of reduced opex, but there are diminishing returns very quickly.