activescott's Notes

Public notes from activescott

Saturday, February 21, 2026

Gorsuch, the first Supreme Court justice Trump appointed when he first took office, joined the principal opinion in full but, in a separate concurring opinion, urged Americans to put their faith back into the legislative system.  It was a message that seemed directed toward one person in particular: Trump.  The conservative justice acknowledged that the court’s decision would be “disappointing” for some. He said major decisions affecting Americans are “funneled through the legislative process for a reason.”  “Yes, legislating can be hard and take time. And, yes, it can be tempting to bypass Congress when some pressing problem arises,” Gorsuch wrote. “But the deliberative nature of the legislative process was the whole point of its design.”   “Through that process, the Nation can tap the combined wisdom of the people’s elected representatives, not just that of one faction or man,” he continued.  Since returning to the White House, Trump has sought to circumvent the legislative process and consolidate the executive branch’s power across the board.   “In all, the legislative process helps ensure each of us has a stake in the laws that govern us and in the Nation’s future,” Gorsuch said. “For some today, the weight of those virtues is apparent. For others, it may not seem so obvious.   “But if history is any guide, the tables will turn and the day will come when those disappointed by today’s result will appreciate the legislative process for the bulwark of liberty it is,” he added.

Thursday, February 19, 2026

AI is great. However, I also just read a report from Morgan Stanley wrote "Promises are big, but adoption is only 15-20%." And "Productivity gains not yet in evidence, concentrated among tech companies themselves."

Can this level of spending be justified?

In just over a decade, investment in AI has surpassed the cost of developing the first atomic bomb, landing humans on the moon and the decades-long effort to build the 75,440km (46,876-mile) US interstate highway network.

Unlike these landmark projects, AI funding has not been driven by a single government or wartime urgency. It has flowed through private markets, venture capital, corporate research and development, and global investors, making it one of the largest privately financed technological waves in history.

Global private investment in AI by country, 2013-24:

US: $471bn, supporting 6,956 newly funded AI companies
China: $119bn, 1,605 startups
UK: $28bn, 885 startups
Canada: $15bn, 481 startups
Israel: $15bn, 492 startups
Germany: $13bn, 394 startups
India: $11bn, 434 startups
France: $11bn, 468 startups
South Korea: $9bn, 270 startups
Singapore: $7bn, 239 startups
Others: $58bn
#

Introduction

LangExtract is a Python library that uses LLMs to extract structured information from unstructured text documents based on user-defined instructions. It processes materials such as clinical notes or reports, identifying and organizing key details while ensuring the extracted data corresponds to the source text. Why LangExtract?

Precise Source Grounding: Maps every extraction to its exact location in the source text, enabling visual highlighting for easy traceability and verification.
Reliable Structured Outputs: Enforces a consistent output schema based on your few-shot examples, leveraging controlled generation in supported models like Gemini to guarantee robust, structured results.
Optimized for Long Documents: Overcomes the "needle-in-a-haystack" challenge of large document extraction by using an optimized strategy of text chunking, parallel processing, and multiple passes for higher recall.
Interactive Visualization: Instantly generates a self-contained, interactive HTML file to visualize and review thousands of extracted entities in their original context.
Flexible LLM Support: Supports your preferred models, from cloud-based LLMs like the Google Gemini family to local open-source models via the built-in Ollama interface.
Adaptable to Any Domain: Define extraction tasks for any domain using just a few examples. LangExtract adapts to your needs without requiring any model fine-tuning.
Leverages LLM World Knowledge: Utilize precise prompt wording and few-shot examples to influence how the extraction task may utilize LLM knowledge. The accuracy of any inferred information and its adherence to the task specification are contingent upon the selected LLM, the complexity of the task, the clarity of the prompt instructions, and the nature of the prompt examples.

1. Define the prompt and extraction rules

prompt = textwrap.dedent("""
Extract characters, emotions, and relationships in order of appearance. Use exact text for extractions. Do not paraphrase or overlap entities. Provide meaningful attributes for each entity to add context.""")

2. Provide a high-quality example to guide the model

examples = [ lx.data.ExampleData( text="ROMEO. But soft! What light through yonder window breaks? It is the east, and Juliet is the sun.", extractions=[ lx.data.Extraction( extraction_class="character", extraction_text="ROMEO", attributes={"emotional_state": "wonder"} ), lx.data.Extraction( extraction_class="emotion", extraction_text="But soft!", attributes={"feeling": "gentle awe"} ), lx.data.Extraction( extraction_class="relationship", extraction_text="Juliet is the sun", attributes={"type": "metaphor"} ), ] ) ]

#

Wednesday, February 18, 2026

Neat. I spent a night with it and here are my impressions:

  • Similar to Claude Code in all the good ways. Very pleasent experience overall.
  • It seemed to search through and understand it rapidly maybe even faster than CC.
  • It was very aggressive at deciding what to do. I spend a lot of time planning with CC and I often interrupt CC when it explains what it is about to do and guide it. I had no time at all to do that with Amp it was done making changes before I can figure out what it was trying to do. It's efforts were at least as good as CC, but still in some cases there are multiple ways to solve or troubleshoot a problem and I would like to give it more direction. I couldn't figure out how to interject and have it work with me more. CC seems to give me more info or more opportunity to interact.
  • EXPENSIVE. It cost me ~~>$20~~ >$30 to work with it for maybe 2hrs with plenty of my own testing and debugging in between usage. It seems like it was a few bucks just to turn it on and ask it to start investigating.

Overall very interesting and credible alternative to CC, but my biggest show stopper is I can't afford to keep playing with it right now. I'll check back in a month or two.

Amp is the frontier coding agent for your terminal and editor.

Multi-Model: Opus 4.6, GPT-5.2 Codex, fast models—Amp uses them all, for what each model is best at.
Opinionated: You’re always using the good parts of Amp. If we don’t use and love a feature, we kill it.
On the Frontier: Amp goes where the models take it. No backcompat, no legacy features.
Threads: You can save and share your interactions with Amp. You wouldn’t code without version control, would you?
#

Fix A Broken AGENTS.md With This Prompt

If you're starting to get nervous about the AGENTS.md file in your repo, and you want to refactor it to use progressive disclosure, try copy-pasting this prompt into your coding agent:

I want you to refactor my AGENTS.md file to follow progressive disclosure principles.

Follow these steps:

  1. Find contradictions: Identify any instructions that conflict with each other. For each contradiction, ask me which version I want to keep.

  2. Identify the essentials: Extract only what belongs in the root AGENTS.md:

    • One-sentence project description
    • Package manager (if not npm)
    • Non-standard build/typecheck commands
    • Anything truly relevant to every single task
  3. Group the rest: Organize remaining instructions into logical categories (e.g., TypeScript conventions, testing patterns, API design, Git workflow). For each group, create a separate markdown file.

  4. Create the file structure: Output:

    • A minimal root AGENTS.md with markdown links to the separate files
    • Each separate file with its relevant instructions
    • A suggested docs/ folder structure
  5. Flag for deletion: Identify any instructions that are:

    • Redundant (the agent already knows this)
    • Too vague to be actionable
    • Overly obvious (like "write clean code")

Tuesday, February 17, 2026

Monday, February 16, 2026

Sunday, February 15, 2026

Goal (north star): provide a machine-checked argument that OpenClaw enforces its intended security policy (authorization, session isolation, tool gating, and misconfiguration safety), under explicit assumptions. What this is (today): an executable, attacker-driven security regression suite:

Each claim has a runnable model-check over a finite state space.
Many claims have a paired negative model that produces a counterexample trace for a realistic bug class.

What this is not (yet): a proof that “OpenClaw is secure in all respects” or that the full TypeScript implementation is correct.

OpenClaw can run tools inside Docker containers to reduce blast radius. This is optional and controlled by configuration (agents.defaults.sandbox or agents.list[].sandbox). If sandboxing is off, tools run on the host. The Gateway stays on the host; tool execution runs in an isolated sandbox when enabled. This is not a perfect security boundary, but it materially limits filesystem and process access when the model does something dumb.