site banner

Friday Fun Thread for July 4, 2025

Be advised: this thread is not for serious in-depth discussion of weighty topics (we have a link for that), this thread is not for anything Culture War related. This thread is for Fun. You got jokes? Share 'em. You got silly questions? Ask 'em.

1
Jump in the discussion.

No email address required.

Tooting my own horn. December 1, 2022 I predicted:

My honest bet is that any student currently in their first year of Law School will be unable to compete with AI legal services by the time they graduate. Certainly not on cost. The AI didn't incur 5-6 figure loans for it's legal training.

Put another way, the AI will be as competent/capable as a first-year associate at a law firm inside 3 years.

This was before GPT4 was on the scene. Reiterated it 3 months ago

And then today I read this nice little headline:

Artificial Intelligence is now an A+ law student, study finds

If they can stop the damn thing from hallucinating caselaw and statutes, it might already be there.

But, let me admit, that if we don't see downward pressure on first-year wages or staffing reductions this year, I missed the meatiest part of the prediction.

There's the counter-argument that AI lawyers will actually stimulate demand for attorneys by making contracts way more complex. I don't buy it, but I see it.

Paralleling @JarJarJedi's story, I tried to outsource some annoying research to Gemini and it just gave me the run around. [TW: Boring ops work] I was trying to find a way to copy a large-ish Cloud SQL MySQL DB from one GCP project to another. Solutions I was given:

  1. Just make a clone in another project (not allowed)
  2. Dump the data to a GCS bucket (I said I didn't want to do that in the original prompt)
  3. Use DMS to transfer the data to an empty Cloud SQL instance in another project (sounded promising, was my original thought... but you can't select a DMS instance in another project from the drop-down)
  4. Just use the public IP address of the other Cloud SQL instance as the target (and send my prod DB data over the internet? pretty sure the security team would kill me)
  5. Just use the private IP address of the other Cloud SQL instance (...what? it's in another VPC in another project)
  6. Just peer the VPCs (hmmm.... but no, Cloud SQL instance interfaces actually exist in a "private services subnet" which is part of a hidden Google-controlled VPC which gets automatically peered to the customer's VPC in the same project (A <-> B), and GCP does not support transitive VPC peering (A <-> B <-> C))
  7. Just peer the hidden VPCs in each project directly (they're Google-controlled so we can't create peerings)
  8. Peer the customer's VPC in the source project with the Cloud SQL VPC in the target project (that doesn't make sense)
  9. Just dump the database into a bucket (sigh)

In the end I probably could have just spent 30-45 minutes reading the docs and figured out what my real options were rather than spending severally hours trying half-baked solutions. I just use Gemini for short scripts, text editing operations, and boilerplate now.

[PS. I think we can use PSC to solve the problem above]

Why not set up a machine instance in one of the VPCs, ssh into it, run mysqldump against the source DB and pipe it to mysql connecting to the destination DB? The piping avoids storing it on a disk/bucket.

Why would the security team kill you for connecting to public IPs? Just make sure TLS is enabled and you're good to go. Also if both VPCs are in the same AZ/DC you're likely not going to go over the internet. You might not even go over the Internet between Google Cloud DCs.

Might need to ask an LLM for the right set of options to disable buffering and select the databases you want to clone.

Re. mysqldump, that's what we did last time we had to do this, but I was hoping there was a less manual way. You can do automate anything with enough scripts and DevOps duct tape, but I try to take zero maintenance options whenever I can because I have to scale my meager team and hiring is rough now (because our budget is shit).

Re. the security team, the tech details matter less than the perception. They're more of a compliance team than a security team. Such is life outside of Silicon Valley, sadly.

ha I'm more the opposite. The shell script is legible and easier to reason about. Using some GCP widget is going to not work for some mysterious reason and getting help is impossible if the docs don't cover your use case.

In an ideal world where I have enough guys, I far prefer the script or custom tooling because, as you point out, it's whitebox and easy to fix and customize. But that's not usually the case, plus as a manager I have to play departmental politics. It's much better to be able to blame GCP than to have fingers pointed at scripts that we wrote (sometimes unjustly!) when we have a huge backlog and no time to fix them. I'm looking forward to changing companies, if you can't tell.

I copied your post into o4-mini ChatGPT, without the last two paragraphs and the PSC idea, and this was spit out after a minute:

—————————

Here’s a proven, zero-Downtime–capable way to copy your Cloud SQL for MySQL database from Project A into Project B without dumping to GCS or exposing it publicly: use Database Migration Service (DMS) in the destination project, treating the source instance as a “self-managed” MySQL endpoint. This leverages private connectivity (VPC peering) so data never traverses the public Internet.

  1. Prepare your source Cloud SQL instance • Enable binary logging & GTID, and use row-based replication on your source: set log_bin, binlog_format=ROW, gtid_mode=ON, and retain logs (expire_logs_days or binlog_expire_logs_seconds) for at least a week. • Create a replication user with REPLICATION SLAVE, REPLICATION CLIENT, SELECT, SHOW VIEW, EXECUTE, TRIGGER, etc., per your migration type .

  2. Enable DMS in the destination project • In Project B, enable the Database Migration Service API and grant yourself the Database Migration Admin role.  • Ensure the DMS service account has compute.networkAdmin so it can set up peering. 

  3. Set up private connectivity (VPC peering) • In Project B, create a Private Connectivity Configuration under DMS → Private connectivity. Select the VPC from Project A that holds your source instance’s private IP; DMS will automatically peer its service-network VPC into that network. 

  4. Create your Source Connection Profile • Still in Project B’s DMS UI, go to Connection Profiles → Create Profile → Source. • Engine: MySQL • Classification: “Self-managed MySQL” (even though it’s Cloud SQL)—this bypasses the same-project restriction . • Host: the private IP (or public IP + authorized network) of your Cloud SQL source. • Credentials: use the replication user you created. 

  5. Create & run the Migration Job • Go to Migration Jobs → Create Migration Job in Project B.

    1. Name your job.
    2. Source: select the connection profile from step 4.
    3. Destination: choose an existing or let DMS create a new Cloud SQL instance in Project B.
    4. Connectivity: pick Private IP and select the private connectivity config you made in step 3.
    5. Type: choose One-time (initial load only) or Continuous (CDC + initial load).
    6. Test, then Start the job. 

DMS will do an initial data copy over the peered VPC, then (if you chose Continuous) apply changes in near real-time.

  1. Cut over to the new instance • Once the initial load is complete and lag is minimal, stop writes on the source, then in the DMS job click Promote. This switches your application to the target instance in Project B. 

Why this works • No GCS buckets or manual dumps needed.
• Data never leaves Google’s private network—no public IP exposure.
• Cross-project works seamlessly by treating the source as self-managed and running DMS in the target project.
• Scales to multi-TB databases with minimal downtime (CDC mode)

———————————-

Is it wrong?

In Project B, create a Private Connectivity Configuration under DMS → Private connectivity. Select the VPC from Project A that holds your source instance’s private IP

IIRC Gemini gave me this too. It's correct except this one line, where it hallucinates that it's possible to select a VPC from another project (you can't), and therefore the whole set of instructions are useless.

This btw is an extremely common failure mode in my opinion. You ask it to do something complex, and it builds a very nice way to do it, except there's one link in the chain that it completely invented out of the thin air. And it totally worked just like that if that link existed, except it does not. It could be an API method, a tool, a UI option, I've encountered a number of things - it all looks very neat, except for one detail that completely ruin the whole thing. And if you note about it, it cheerfully congratulates you on discovering it and even more cheerfully explains why it has always known this doesn't work and can't work. If a person kept doing this to me I'd be infuriated but you can't really blame a bunch of numbers.

I've pretty much given up on asking for troubleshooting help or other non-subjective feedback for this very reason. Even for scripting, it sometimes invents command switches that don't exist or that only work on certain OSes which means I need to correct it 5 times before I get a working script. And then, it often favors complex, messy, and difficult to maintain solutions over simple, elegant ones. Just about the only tech task LLMs are good for at this point is parsing stack traces or weird error messages. They're pretty handy for that.

Any task that can be described as "look up the thing which I describe, possibly in vague terms, among vast array of similar things, and bring it to me" is excellent for it. Using it as a search engine that understands natural language very frequently works. I use it multiple times a day this way and it helps a lot. Same for generating simple scripts that I know exactly what needs to be done, and maybe even have an example of doing similar thing but would have to spend 15-20 minutes tweaking it to do the other thing - it can give it to me in one minute. This is an awesome tool for such cases. But nowhere near "junior programmer" or "fresh law degree graduate" as some claim. At least if I had a junior like that on my team, I'd have a talk with the manager that hired him.

I am extremely skeptical at that claim. I mean, surely, if you examine LLM at what humans are usually examined at, things that are hard for humans - like perfectly recalling bits out of huge arrays of information - it would probably do pretty good. However, at things that human are never examined it - like common sense - because most humans that got through law school would have it, otherwise they'd fail out and probably be either institutionalized somehow or ejected from the society in some other way - LLMs are still terrible.

Just days ago I tried to use LLM advice to configure a scanner on my Mac. It managed to give me ton of advice that didn't work (because it kept hallucinating and confusing different Mac models) but then it managed to give an advice that seemed to work. I stupidly followed it. It broke my Mac completely. I decided to take hair of the dog approach and asked the same GPT for the fix advice. After another hour or so of hallucinating and meandering, it managed to make the problem worse. Then it had me to try a dozen or so non-working solution, each one ending with congratulating me on discovering yet another thing that doesn't work on my Mac - this despite me telling it upfront which Mac it is and it being aware to quote the exact source that says this wouldn't work - but only after suggesting to me repeatedly it would 100% work for sure. Eventually, it started suggesting to me deleting disk partitions and reinstalling the whole OS - while claiming this can't hurt my data in any way, everything would be OK - and I decided to call it quits. I tried to fix it using my wits alone and plain old internet search, and was able to do it in about 15 minutes.

This was a low risk activity - I actually had pretty recent backups and all important shit I have backed up in several places locally and online, so if it killed my Mac I maybe would lose some unimportant files and some time to re-configure the system, but it wouldn't be a catastrophe for me. Now imagine something like millions of dollars, or decades in jail, or the entire future of a person is on the line. Would I trust a machine that claims X exists and solves my problem only to cheerfully admit X never existed and even if it did, it couldn't solve my problem a minute later? Or would I trust a human that at least understands why such kind of behavior is unacceptable, in fact, that understands anything and isn't just a huge can of chopped up information fragments and a procedure of retrieving some of them that look like what I want to hear?

Sorry, I can't believe this "as good as a fresh graduate" thing. Maybe I can believe it's "as good as a fresh graduate on things that we check on fresh graduates because they are hard for fresh graduates so we want to make sure they are good" but that misses the obvious pitfall that things that are very easy for a fresh graduate - or any human - are very hard for it in turn.

I'm completely unsure and very skeptical of any Llms will take away x job headline given the poor track record and the obvious faking of benchmarks and media hype.

Not a lawyer, I do wonder how this plays out, can you hold a model accountable the way a lawyer is? What happens when you add your own data to it? Does the responsibility then land on the law firm. Not a rhetorical question.

If they can stop the damn thing from hallucinating caselaw and statutes, it might already be there.

Sure, but hasn't that always been the challenge? This feels like it boils down to "if they can fix the problems, it'll be great", which is true but applies to everything.

I mean, yes, but the hallucination problem of putting in wrong cases and statutes is utterly disqualifying in advanced legal writing. Citing to a nonexistent case or statute compromises the entire brief or argument. A decent first year associate might misinterpret a statute or case, or miss that the case was overturned, but they wouldn't make up cases from whole cloth and build their arguments off those.

For a lot of tasks, you just need to go through and proofread or fix up the places where it filled in basic info that it obviously didn't have.

But citing a case that doesn't exist to build an argument is like asking it to design a bridge and it get the tensile strength of steel completely wrong, or perhaps it makes up a type of material that doesn't exist and hallucinates its properties as part of the specifications.

And maybe it does that, I don't know. But there's literally no reason for it to be doing that, either, when there is definitive information, easily available for reference. Its information it should never get wrong, in practice.

And it really shouldn't be hard to fix, the caselaw and statutes are already simple to look up. Just teach the thing to use WestLaw.

So I do expect them to solve that particular class of hallucinations pretty handily, even if it will still completely fudge its outputs when it doesn't have an easy way to check.

But there's literally no reason for it to be doing that, either, when there is definitive information, easily available for reference. Its information it should never get wrong, in practice.

Yeah this is something that gets me about the frequent code-based hallucinations too. The things will make up non-existent APIs when the reference docs are right there. It does seem like it wouldn't be hard to hook up a function that checks "does this actually exist". I assume it must not actually be that simple, or they would've done it by now. But we'll see what they can do in the future.

There's some technical parts to how LLMs specifically work that make it a lot harder to police hallucination than to improve produce a compelling argument, for the same reason that they're bad at multiplication and great at symbolic reference work. A lot of LLMs can already use WestLaw and do a pretty good job of summarizing it... at the cost of it trying to cite a state law I specifically didn't ask about.

It's possible that hallucination will be absolutely impossible to completely solve, but either way I expect these machines to become better at presenting compelling arguments faster than I expect them to be good researchers, with all the good and ill that implies. Do lawyers value honesty more than persuasion?

I mean, yes, but the hallucination problem of putting in wrong cases and statutes is utterly disqualifying in advanced legal writing.

One would think! And yet.

This is my biggest problem with rlhf aside from my free speech bullshit - due to the way llms work, rlhf means hallucination is impossible to solve - it is baked in.

Well, they've gotten better and better over time. I've been using LLMs before they were cool, and we've probably seen between 1-2 OOM reduction in hallucination rates. The bigger they get, the lower the rate. It's not like humans are immune to mistakes, misremembering, or even plain making shit up.

In fact, some recent studies (on now outdated models like Claude 3.6) found zero hallucinations at all in tasks like medical transcription and summarization.

It's a solvable problem, be it through human oversight or the use of other parallel models to check results.

My point is not that the problems are unsolvable (jury's out on that), it's that "this will be good if we can fix the problems" isn't a very meaningful statement. Everything is good if you can fix the problems with it!

I expect that when people usually say that, they're implicitly stating strong belief that the problems are both solvable and being solved. Not that this necessarily means that such claims are true..

I discussed it with a judge doing more advanced judgey things (abstract legal analysis of a case judgement as if presenting a paper at a conference) and he thought Sonnet 3.6 was a pretty decent law student, so presumably Opus 4 or indeed o3 would be lots better.

Lawyers and judges and legal societies will just make it illegal for a layperson with a skilled AI(Or who hires an Indian paralegal with a good AI assistant for $35 an hour instead of 300) to appear in court, file, argue, represent and so on.

I'm sure. But thats barely 10% of the work lawyers do.

With enough lobbying they can pass laws that say things like “for each half hour spent in court, x lawyers based in local city who passed the state bar must have y billable hours attached to them”.

Lest that sound farfetched, Hollywood writers just got this kind of deal and the studios are far more equipped to play hardball than state congressmen.