[{"data":1,"prerenderedAt":554},["ShallowReactive",2],{"navigation":3,"\u002Fblog\u002Fnear-the-end-of-the-exponential":204,"\u002Fblog\u002Fnear-the-end-of-the-exponential-surround":549},[4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200],{"title":5,"path":6,"stem":7},"You do not have time to not have tests","\u002Fblog\u002Fyou-do-not-have-time-to-not-have-tests","2.blog\u002F20211217.you-do-not-have-time-to-not-have-tests",{"title":9,"path":10,"stem":11},"Migrate Vue 2 with Vuetify and Jest to Vite and Vitest","\u002Fblog\u002Fmigrate-vue-2-with-vuetify-and-jest-to-vite-and-vitest","2.blog\u002F20220109.migrate-vue-2-with-vuetify-and-jest-to-vite-and-vitest",{"title":13,"path":14,"stem":15},"I am a Dark Matter Developer","\u002Fblog\u002Fi-am-a-dark-matter-developer","2.blog\u002F20220626.i-am-a-dark-matter-developer",{"title":17,"path":18,"stem":19},"Why using Conventional commits is useful","\u002Fblog\u002Fusing-conventional-commits","2.blog\u002F20240623.using-conventional-commits",{"title":21,"path":22,"stem":23},"Why you should make a toolbox repository","\u002Fblog\u002Fwhy-you-should-make-a-toolbox-repository","2.blog\u002F20240630.Why-you-should-make-a-toolbox-repository",{"title":25,"path":26,"stem":27},"Apache Airflow Part 1 - Why and Goals for a near Serverless ELT","\u002Fblog\u002Fapache-airflow-part-1-why-and-goals","2.blog\u002F20240710.apache-airflow-part-1-why-and-goals",{"title":29,"path":30,"stem":31},"Oh My Zsh on your server","\u002Fblog\u002Foh-my-zsh-on-your-server","2.blog\u002F20240711.oh-my-zsh-on-your-server",{"title":33,"path":34,"stem":35},"Fire tablet and YouTube Kids","\u002Fblog\u002Ffire-tablet-and-youtube-kids","2.blog\u002F20240714.fire-tablet-and-youtube-kids",{"title":37,"path":38,"stem":39},"Using Ollama and Continue as a GitHub Copilot Alternative","\u002Fblog\u002Fusing-ollama-and-continue-as-github-copilot-alternative","2.blog\u002F20240723.using-ollama-and-continue-as-github-copilot-alternative",{"title":41,"path":42,"stem":43},"Debugging Local Packages Made Easy with pnpm","\u002Fblog\u002Fdebugging-local-packages-with-pnpm-link","2.blog\u002F20250422.debugging local-packages-with-pnpm-link",{"title":45,"path":46,"stem":47},"Two Weeks with Cloudflare AI and Tools","\u002Fblog\u002Ftwo-weeks-with-cloudflare-ai-and-tools","2.blog\u002F20250509.two-weeks-with-cloudflare-aI-and-tools",{"title":49,"path":50,"stem":51},"Adding Prompts to VS Code - How I Learned to Stop Worrying and Love AI Context","\u002Fblog\u002Fadding-prompts-to-vscode","2.blog\u002F20250528.adding-prompts-to-vscode",{"title":53,"path":54,"stem":55},"My Best Practices","\u002Fblog\u002Fmy-best-practicies","2.blog\u002F20250607.my-best-practicies",{"title":57,"path":58,"stem":59},"Creating my own CLI Tool - Towles Tool","\u002Fblog\u002Ftowles-tool","2.blog\u002F20250607.towles-tool",{"title":61,"path":62,"stem":63},"Software Development Best Practices & ITIL","\u002Fblog\u002Fsoftware-engineering-and-itil-best-practices","2.blog\u002F20250612.software-engineering-and-itil-best-practices",{"title":65,"path":66,"stem":67},"Voice to Text","\u002Fblog\u002Fvoice-to-text","2.blog\u002F20250622.voice-to-text",{"title":69,"path":70,"stem":71},"Setting Up ComfyUI - A Better Alternative to Fooocus","\u002Fblog\u002Fcomfy-ui-setup","2.blog\u002F20250628.comfy-ui-setup",{"title":73,"path":74,"stem":75},"Voice to System","\u002Fblog\u002Fvoice-to-system","2.blog\u002F20250705.voice-to-system",{"title":77,"path":78,"stem":79},"Tips for Claude Code","\u002Fblog\u002Ftips-for-claude-code","2.blog\u002F20250713.tips-for-claude-code",{"title":81,"path":82,"stem":83},"Review That AI Code: Why I Read Every Line Generated Code","\u002Fblog\u002Freview-that-ai-code","2.blog\u002F20250720.review-that-ai-code",{"title":85,"path":86,"stem":87},"My Context Engineering Journey: From Dev Scripts to AI Collaboration","\u002Fblog\u002F20250803-1.my-context-engineering-journey","2.blog\u002F20250803-1.my-context-engineering-journey",{"title":89,"path":90,"stem":91},"Context Engineering at Scale: Enterprise Lessons and the Future of Development","\u002Fblog\u002F20250803-2.context-engineering-at-scale","2.blog\u002F20250803-2.context-engineering-at-scale",{"title":93,"path":94,"stem":95},"Check That Your Tools and Linters Do Not Burn Tokens","\u002Fblog\u002Fcheck-that-your-tools-and-linters-do-not-burn-tokens","2.blog\u002F20250806.check-that-your-tools-and-linters-do-not-burn-tokens",{"title":97,"path":98,"stem":99},"Markdown + AI: The Communication Protocol That Changes Everything","\u002Fblog\u002Fmarkdown-plus-ai-the-communication-protocol-that-changes-everything","2.blog\u002F20250814.markdown-plus-ai-the-communication-protocol-that-changes-everything",{"title":101,"path":102,"stem":103},"Finally: Type-Safe AI in Production (And Why I'm Here For It)","\u002Fblog\u002Ffinally-type-safe-ai-in-production-and-why-im-here-for-it","2.blog\u002F20250819.finally-type-safe-ai-in-production-and-why-im-here-for-it",{"title":105,"path":106,"stem":107},"Dotfiles: Masterpiece or Late Stage Picasso?","\u002Fblog\u002Fdotfiles-masterpiece-or-late-stage-picasso","2.blog\u002F20250822.dotfiles-masterpiece-or-late-stage-picasso",{"title":109,"path":110,"stem":111},"Beyond API Wrappers: Building State-Driven MCP Servers for Long-Horizon Agent Orchestration","\u002Fblog\u002Fbeyond-api-wrappers-mcp-servers","2.blog\u002F20250907.beyond-api-wrappers-mcp-servers",{"title":113,"path":114,"stem":115},"Why Vertical Integration Wins: A Software Engineer's Case for Owning Your Stack","\u002Fblog\u002Fwhy-i-bought-tesla-model-3-vertical-integration","2.blog\u002F20250928.why-i-bought-tesla-model-3-vertical-integration",{"title":117,"path":118,"stem":119},"The Min-Maxer's Trifecta: Building Tools for the Game You Actually Play","\u002Fblog\u002Fmin-maxer-trifecta","2.blog\u002F20251004.min-maxer-trifecta",{"title":121,"path":122,"stem":123},"Read The Source: Learning by Cutting Out The Middleman and RTFM","\u002Fblog\u002Fread-the-source","2.blog\u002F20251010.read-the-source",{"title":125,"path":126,"stem":127},"The Exponential Shift: Why AI Progress Feels Different Now","\u002Fblog\u002Fthe-exponential-shift","2.blog\u002F20251015.the-exponential-shift",{"title":129,"path":130,"stem":131},"Plan Mode for Your Problems, Edit Mode for Claude's","\u002Fblog\u002Fplan-mode-problems-edit-mode-solutions","2.blog\u002F20251019.plan-mode-problems-edit-mode-solutions",{"title":133,"path":134,"stem":135},"AWS Aurora DSQL Looked Perfect Until I Needed the Connection String","\u002Fblog\u002Faws-aurora-dsql-postgres-serverless-authentication","2.blog\u002F20251028.aws-aurora-dsql-postgres-serverless-authentication",{"title":137,"path":138,"stem":139},"Switchback: Browser History for Your Thoughts","\u002Fblog\u002Fswitchback-second-order-reasoning","2.blog\u002F20251205.switchback-second-order-reasoning",{"title":141,"path":142,"stem":143},"AI Pairing: Notes to Self","\u002Fblog\u002Fai-pairing-notes-to-self","2.blog\u002F20251216.ai-pairing-notes-to-self",{"title":145,"path":146,"stem":147},"I've Been Sleeping on Zellij","\u002Fblog\u002Fsleeping-on-zellij","2.blog\u002F20251229.sleeping-on-zellij",{"title":149,"path":150,"stem":151},"Implementing a Ralph Wiggum Loop: The Secret is Session Markers","\u002Fblog\u002Fimplementing-ralph-wiggum-loop-for-autonomous-ai-coding","2.blog\u002F20260114.implementing-ralph-wiggum-loop-for-autonomous-ai-coding",{"title":153,"path":154,"stem":155},"Goodhart's Law Ate My Context Window","\u002Fblog\u002Fgoodharts-law-ate-my-context-window","2.blog\u002F20260119.goodharts-law-ate-my-context-window",{"title":157,"path":158,"stem":159},"Claude Code's Hidden Multi-Agent System Is Real","\u002Fblog\u002Fclaude-code-hidden-multi-agent-system","2.blog\u002F20260124.claude-code-hidden-multi-agent-system",{"title":161,"path":162,"stem":163},"Free Printable Math Sheets for Kids — Number Chart, Skip Counting, Multiplication, and More","\u002Fblog\u002Ffree-printable-number-chart-and-coin-sheets","2.blog\u002F20260214.free-printable-number-chart-and-coin-sheets",{"title":165,"path":166,"stem":167},"We Are Near the End of the Exponential","\u002Fblog\u002Fnear-the-end-of-the-exponential","2.blog\u002F20260214.near-the-end-of-the-exponential",{"title":169,"path":170,"stem":171},"Free Printable Language Arts Sheets for Kids — Sight Words, Parts of Speech, Homophones, and More","\u002Fblog\u002Ffree-printable-sight-words-and-grammar-sheets","2.blog\u002F20260215.free-printable-sight-words-and-grammar-sheets",{"title":173,"path":174,"stem":175},"Interactive Code Execution with Artifacts","\u002Fblog\u002Finteractive-code-execution-with-artifacts","2.blog\u002F20260215.interactive-code-execution-with-artifacts",{"title":177,"path":178,"stem":179},"Free Printable Telling Time Worksheet for Kids — Clock Reference & Practice Sheet","\u002Fblog\u002Ffree-printable-telling-time-worksheet","2.blog\u002F20260216.free-printable-telling-time-worksheet",{"title":181,"path":182,"stem":183},"Claude Code Skills: Teaching AI Your Playbook","\u002Fblog\u002Fclaude-code-skills-guide","2.blog\u002F20260221.claude-code-skills-guide",{"title":185,"path":186,"stem":187},"Building a Multi-Agent Loan Approval System with Human-in-the-Loop","\u002Fblog\u002Fmulti-agent-loan-approval-human-in-the-loop","2.blog\u002F20260225.multi-agent-loan-approval-human-in-the-loop",{"title":189,"path":190,"stem":191},"The Inception of AI Infrastructure: Bottlenecks All the Way Down","\u002Fblog\u002Fbiggest-bottleneck-scaling-ai-compute","2.blog\u002F20260313.biggest-bottleneck-scaling-ai-compute",{"title":193,"path":194,"stem":195},"What I Tell Teams About Claude Code","\u002Fblog\u002Fwhat-i-tell-teams-about-claude-code","2.blog\u002F20260314.what-i-tell-teams-about-claude-code",{"title":197,"path":198,"stem":199},"The Hardest Part of AI Isn't the AI","\u002Fblog\u002Fthe-hardest-part-of-ai-isnt-the-ai","2.blog\u002F20260327.the-hardest-part-of-ai-isnt-the-ai",{"title":201,"path":202,"stem":203},"Claude Code Hooks: The Capability I Left on the Table","\u002Fblog\u002Fclaude-code-hooks-capability-left-on-the-table","2.blog\u002F20260401.claude-code-hooks-capability-left-on-the-table",{"id":205,"title":165,"authors":206,"badge":212,"body":214,"date":539,"description":540,"extension":541,"image":542,"meta":545,"navigation":248,"path":166,"seo":546,"status":547,"stem":167,"__hash__":548},"posts\u002F2.blog\u002F20260214.near-the-end-of-the-exponential.md",[207],{"name":208,"to":209,"avatar":210},"Chris Towles","https:\u002F\u002Ftwitter.com\u002FChris_Towles",{"src":211},"\u002Fimages\u002Fctowles-profile-512x512.png",{"label":213},"AI",{"type":215,"value":216,"toc":528},"minimark",[217,221,238,249,254,257,263,266,270,279,296,299,304,309,312,355,358,362,365,370,373,406,409,414,419,422,426,429,455,458,462,469,474,477,481,484,489,492,495,499,506,509,512],[218,219,220],"p",{},"I'm sharing this with everyone at work, and now I'm sharing it with you.",[218,222,223,224,231,232,237],{},"Dwarkesh Patel just dropped a ",[225,226,230],"a",{"href":227,"rel":228},"https:\u002F\u002Fyoutu.be\u002Fn1E9IZfvGMA?si=YM7r36NbRWQPhF1y",[229],"nofollow","new interview with Dario Amodei",", CEO of Anthropic. I also ",[225,233,236],{"href":234,"rel":235},"https:\u002F\u002Fx.com\u002FChris_Towles\u002Fstatus\u002F2022490437559128216",[229],"posted about it on X",".",[239,240],"iframe",{"width":241,"height":242,"src":243,"title":244,"frameBorder":245,"allow":246,"referrerPolicy":247,"allowFullScreen":248},560,315,"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Fn1E9IZfvGMA?si=W1jo_MMqj3PQJO21&start=1159","YouTube video player","0","accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share","strict-origin-when-cross-origin",true,[250,251,253],"h2",{"id":252},"we-are-near-the-end-of-the-exponential","\"We Are Near the End of the Exponential\"",[218,255,256],{},"This stopped me in my tracks:",[258,259,260],"blockquote",{},[218,261,262],{},"\"What has been the most surprising thing is the lack of public recognition of how close we are to the end of the exponential. To me, it is absolutely wild that you have people — within the bubble and outside the bubble — talking about the same tired, old hot-button political issues, when we are near the end of the exponential.\"",[218,264,265],{},"He's not talking about hype. He's talking about the actual capability curve — smart high school student → smart college student → beginning PhD-level work → and in coding, already beyond that. He's frustrated that almost nobody seems to notice.",[250,267,269],{"id":268},"the-big-blob-came-before-the-bitter-lesson","The Big Blob Came Before The Bitter Lesson",[218,271,272,273,278],{},"Most people in AI know Rich Sutton's ",[225,274,277],{"href":275,"rel":276},"http:\u002F\u002Fwww.incompleteideas.net\u002FIncIdeas\u002FBitterLesson.html",[229],"\"The Bitter Lesson\""," (2019). It's practically required reading. The core argument: general methods that leverage computation are ultimately the most effective. Stop trying to be clever. Scale wins.",[218,280,281,282,286,287,290,291,295],{},"What blew my mind is that Dario wrote a private document in ",[283,284,285],"strong",{},"2017"," called ",[283,288,289],{},"\"The Big Blob of Compute Hypothesis\""," that arrived at essentially the same conclusion — ",[292,293,294],"em",{},"two years earlier",". Before GPT-1 had even come out. Before transformers had taken over.",[218,297,298],{},"In his own words:",[258,300,301],{},[218,302,303],{},"\"It wasn't about the scaling of language models in particular. When I wrote it, GPT-1 had just come out. That was one among many things. Back in those days there was robotics. People tried to work on reasoning as a separate thing from language models, and there was scaling of the kind of RL that happened in AlphaGo and in Dota at OpenAI.\"",[258,305,306],{},[218,307,308],{},"\"Rich Sutton put out 'The Bitter Lesson' a couple years later. The hypothesis is basically the same. What it says is that all the cleverness, all the techniques, all the 'we need a new method to do something', that doesn't matter very much.\"",[218,310,311],{},"The field was fragmented across robotics, game-playing RL, reasoning systems, and early language models. Dario looked at all of it and said: none of the specifics matter. Just the blob. He listed seven things that actually matter:",[313,314,315,322,327,333,338,344,350],"ol",{},[316,317,318,321],"li",{},[283,319,320],{},"Raw compute"," — how much you have",[316,323,324],{},[283,325,326],{},"Quantity of data",[316,328,329,332],{},[283,330,331],{},"Quality and distribution of data"," — it needs to be broad",[316,334,335],{},[283,336,337],{},"Training duration",[316,339,340,343],{},[283,341,342],{},"A scalable objective function"," — pre-training's next-token prediction is one; RL rewards are another",[316,345,346,349],{},[283,347,348],{},"Normalization and conditioning"," — keeping the numerical stability so the blob flows in a \"laminar\" way",[316,351,352],{},[292,353,354],{},"(Related stability\u002Fengineering concerns)",[218,356,357],{},"Everything else — the clever architectures, the novel techniques — gets eaten by the blob.",[250,359,361],{"id":360},"were-already-almost-there-for-software-engineering","\"We're Already Almost There for Software Engineering\"",[218,363,364],{},"This is the part that hit me hardest as someone who works in Cloud AI and talks to engineers every day. Dario lays out a spectrum that most people conflate:",[258,366,367],{},[218,368,369],{},"\"About eight or nine months ago, I said the AI model will be writing 90% of the lines of code in three to six months. That happened... But that's actually a very weak criterion. People thought I was saying that we won't need 90% of the software engineers. Those things are worlds apart.\"",[218,371,372],{},"He breaks down the actual progression:",[374,375,376,382,388,394,400],"ul",{},[316,377,378,381],{},[283,379,380],{},"90% of code written by models"," → Already happened",[316,383,384,387],{},[283,385,386],{},"100% of code written by models"," → Big difference from 90%",[316,389,390,393],{},[283,391,392],{},"90% of end-to-end SWE tasks"," (compiling, environments, testing, memos) → Coming fast",[316,395,396,399],{},[283,397,398],{},"100% of today's SWE tasks done by models"," → Doesn't mean engineers are out of a job",[316,401,402,405],{},[283,403,404],{},"90% less demand for SWEs"," → Will happen, but further down the spectrum",[218,407,408],{},"And Anthropic is living this internally. When Dwarkesh pushed back on whether productivity gains are real or just vibes, Dario didn't mince words:",[258,410,411],{},[218,412,413],{},"\"We're under an incredible amount of commercial pressure... There is zero time for bullshit. There is zero time for feeling like we're productive when we're not. These tools make us a lot more productive.\"",[258,415,416],{},[218,417,418],{},"\"We have engineers at Anthropic who don't write any code.\"",[218,420,421],{},"That's not a prediction. That's a present-tense statement from the CEO of the company that makes Claude.",[250,423,425],{"id":424},"the-revenue-curve-tells-the-story","The Revenue Curve Tells the Story",[218,427,428],{},"If you need numbers instead of words:",[374,430,431,437,443,449],{},[316,432,433,436],{},[283,434,435],{},"2023:"," $0 → $100 million",[316,438,439,442],{},[283,440,441],{},"2024:"," $100 million → $1 billion",[316,444,445,448],{},[283,446,447],{},"2025:"," $1 billion → $9-10 billion",[316,450,451,454],{},[283,452,453],{},"January 2026 alone:"," Added another few billion",[218,456,457],{},"10x per year. And Dario says the curve hasn't bent yet.",[250,459,461],{"id":460},"country-of-geniuses-in-a-data-center","Country of Geniuses in a Data Center",[218,463,464,465,468],{},"When Dwarkesh asked for a concrete timeline on reaching what Dario calls \"a country of geniuses in a data center\" — AI systems that match or exceed Nobel Prize winners across domains — Dario put it at ",[283,466,467],{},"one to three years",":",[258,470,471],{},[218,472,473],{},"\"I have a strong view — 99%, 95% — that all this will happen in 10 years. I think that's just a super safe bet. I have a hunch — this is more like a 50\u002F50 thing — that it's going to be more like one to two, maybe one to three.\"",[218,475,476],{},"Not ten years. Not five. One to three. And on coding specifically, he thinks we'll be at end-to-end automation in one to two years. \"There's no way we will not be there in ten years.\"",[250,478,480],{"id":479},"two-exponentials-not-one","Two Exponentials, Not One",[218,482,483],{},"This might be the most useful mental model in the entire interview. Dario describes two curves happening simultaneously:",[258,485,486],{},[218,487,488],{},"\"I think everything we've seen so far is compatible with the idea that there's one fast exponential that's the capability of the model. Then there's another fast exponential that's downstream of that, which is the diffusion of the model into the economy. Not instant, not slow, much faster than any previous technology, but it has its limits. When I look inside Anthropic, when I look at our customers: fast adoption, but not infinitely fast.\"",[218,490,491],{},"This is the framing I've been missing. It's not \"AI will change everything overnight\" and it's not \"AI is overhyped.\" It's two fast exponentials — capability and adoption — running at different speeds. The capability curve is screaming ahead. The adoption curve is chasing it, faster than any technology before it, but still bound by reality: legal reviews, security compliance, change management, explaining to the person two levels below you why this matters.",[218,493,494],{},"If you're in enterprise, you're living on that second curve right now. And if you're not actively working to close the gap between those two exponentials, you're falling behind whether you feel it or not.",[250,496,498],{"id":497},"why-im-sharing-this-with-everyone-at-work","Why I'm Sharing This With Everyone at Work",[218,500,501,502,505],{},"I'm a Principal Architect for Cloud AI at GE Aerospace. I talk to engineers and architects every day about what these models can and can't do. The gap between what's actually happening inside companies like Anthropic and what most people in enterprise tech ",[292,503,504],{},"think"," is happening is enormous.",[218,507,508],{},"We're not preparing for a future disruption. We're in the middle of it. The exponential is ending, and most people haven't looked up from their desks to notice.",[218,510,511],{},"If you're in tech and you haven't watched this interview, block out two hours this weekend. It's the most important conversation happening right now about where all of this is going.",[218,513,514,518,519,518,524],{},[225,515,517],{"href":227,"rel":516},[229],"Full interview on YouTube"," | ",[225,520,523],{"href":521,"rel":522},"https:\u002F\u002Fwww.dwarkesh.com\u002Fp\u002Fdario-amodei-2",[229],"Dwarkesh Podcast transcript",[225,525,527],{"href":234,"rel":526},[229],"My X post",{"title":529,"searchDepth":530,"depth":530,"links":531},"",2,[532,533,534,535,536,537,538],{"id":252,"depth":530,"text":253},{"id":268,"depth":530,"text":269},{"id":360,"depth":530,"text":361},{"id":424,"depth":530,"text":425},{"id":460,"depth":530,"text":461},{"id":479,"depth":530,"text":480},{"id":497,"depth":530,"text":498},"2026-02-14","Dario Amodei's new Dwarkesh Patel interview stopped me in my tracks. His private 2017 'Big Blob of Compute' doc predated The Bitter Lesson by two years — and his prediction about coding? We're already there.","md",{"src":543,"alt":544},"\u002Fimages\u002Fblog\u002F20260214.near-the-end-of-the-exponential.jpeg","A dramatic visualization of two intertwining exponential curves rendered as luminous energy streams against a dark void. One curve blazes bright white-gold representing raw AI capability, the other a cooler blue-silver representing economic diffusion, both spiraling upward but at different rates. The curves emerge from a glowing origin point that resembles a data center constellation. Mathematical grid lines fade into the background. The composition conveys immense velocity and inevitability. Cinematic lighting with deep contrast, volumetric light rays, photorealistic 8k quality, shallow depth of field. Sci-fi atmosphere, teal and amber color grading, 16:9 composition with negative space on the left for text overlay.",{},{"title":165,"description":540},"published","snvXq5MFBsz39YZWFKk0KBrusNYBH4QIUmMTvxTyGvw",[550,552],{"title":161,"path":162,"stem":163,"description":551,"status":547,"children":-1},"Free printable PDF worksheets for kids — a 1-120 number chart, skip counting, multiplication table, number bonds, and a US coin reference sheet. Download, print, and learn.",{"title":169,"path":170,"stem":171,"description":553,"status":547,"children":-1},"Free printable PDF worksheets for kids — Dolch sight words, parts of speech, punctuation, homophones, contractions, alphabet chart, and handwriting practice. Download, print, and learn.",1776221196452]