<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<url><loc>https://gobyte.io/blog</loc><lastmod>2026-10-06T11:28:52.630876-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/topics</loc></url>
<url><loc>https://gobyte.io/blog/courses</loc></url>
<url><loc>https://gobyte.io/blog/topics/programming</loc></url>
<url><loc>https://gobyte.io/blog/topics/programming/go</loc></url>
<url><loc>https://gobyte.io/blog/topics/programming/java</loc></url>
<url><loc>https://gobyte.io/blog/topics/programming/python</loc></url>
<url><loc>https://gobyte.io/blog/topics/programming/rust</loc></url>
<url><loc>https://gobyte.io/blog/topics/programming/typescript-react</loc></url>
<url><loc>https://gobyte.io/blog/topics/programming/javascript</loc></url>
<url><loc>https://gobyte.io/blog/topics/programming/css</loc></url>
<url><loc>https://gobyte.io/blog/topics/programming/motion</loc></url>
<url><loc>https://gobyte.io/blog/topics/programming/shell</loc></url>
<url><loc>https://gobyte.io/blog/topics/programming/vim</loc></url>
<url><loc>https://gobyte.io/blog/series/gobyte-skills</loc></url>
<url><loc>https://gobyte.io/blog/courses/go</loc></url>
<url><loc>https://gobyte.io/blog/courses/java</loc></url>
<url><loc>https://gobyte.io/blog/courses/python</loc></url>
<url><loc>https://gobyte.io/blog/courses/rust</loc></url>
<url><loc>https://gobyte.io/blog/courses/typescript-react</loc></url>
<url><loc>https://gobyte.io/blog/courses/javascript</loc></url>
<url><loc>https://gobyte.io/blog/courses/css</loc></url>
<url><loc>https://gobyte.io/blog/courses/motion</loc></url>
<url><loc>https://gobyte.io/blog/courses/shell</loc></url>
<url><loc>https://gobyte.io/blog/courses/vim</loc></url>
<url><loc>https://gobyte.io/blog/authors/zoe</loc></url>
<url><loc>https://gobyte.io/blog/authors/arthur</loc></url>
<url><loc>https://gobyte.io/blog/authors/zara</loc></url>
<url><loc>https://gobyte.io/blog/authors/piere</loc></url>
<url><loc>https://gobyte.io/blog/authors/bianca</loc></url>
<url><loc>https://gobyte.io/blog/vim-from-zero-the-dot-command-repeats-the-change</loc><lastmod>2026-10-06T11:28:52.630876-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/vim-from-zero-an-operator-needs-a-motion</loc><lastmod>2026-10-06T11:28:52.004368-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/vim-from-zero-a-text-object-is-the-thing-you-act-on</loc><lastmod>2026-10-06T11:28:51.474245-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/vim-from-zero-the-text-is-the-data</loc><lastmod>2026-10-06T11:28:50.950765-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/typescript-from-zero-copy-before-you-change-a-field</loc><lastmod>2026-10-06T11:28:50.425785-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/typescript-from-zero-a-class-bundles-the-method</loc><lastmod>2026-10-06T11:28:49.912717-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/typescript-from-zero-an-object-has-fields</loc><lastmod>2026-10-06T11:28:49.382469-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/typescript-from-zero-a-name-has-a-type</loc><lastmod>2026-10-06T11:28:48.902693-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/shell-from-zero-a-function-is-the-reusable-piece</loc><lastmod>2026-10-06T11:28:48.37371-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/shell-from-zero-a-number-is-still-text-until-you-ask</loc><lastmod>2026-10-06T11:28:47.902751-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/shell-from-zero-quote-the-expansion</loc><lastmod>2026-10-06T11:28:47.28955-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/shell-from-zero-a-variable-holds-text</loc><lastmod>2026-10-06T11:28:46.743444-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/rust-from-zero-a-method-can-change-the-struct</loc><lastmod>2026-10-06T11:28:46.224965-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/rust-from-zero-clone-when-two-names-need-the-text</loc><lastmod>2026-10-06T11:28:45.695388-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/rust-from-zero-a-struct-is-the-object</loc><lastmod>2026-10-06T11:28:45.253622-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/rust-from-zero-a-name-has-a-type</loc><lastmod>2026-10-06T11:28:44.666705-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/python-from-zero-a-method-uses-self</loc><lastmod>2026-10-06T11:28:44.159471-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/python-from-zero-two-names-can-share-one-list</loc><lastmod>2026-10-06T11:28:43.627274-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/python-from-zero-a-class-is-the-object</loc><lastmod>2026-10-06T11:28:43.088571-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/python-from-zero-a-value-has-a-type</loc><lastmod>2026-10-06T11:28:42.604331-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/motion-from-zero-easing-is-a-function-of-time</loc><lastmod>2026-10-06T11:28:41.918613-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/motion-from-zero-move-the-transform-not-the-width</loc><lastmod>2026-10-06T11:28:41.386635-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/motion-from-zero-an-animation-is-an-object</loc><lastmod>2026-10-06T11:28:40.87072-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/motion-from-zero-time-and-distance-are-numbers</loc><lastmod>2026-10-06T11:28:40.235388-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/javascript-from-zero-const-does-not-freeze-the-fields</loc><lastmod>2026-10-06T11:28:39.664431-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/javascript-from-zero-a-class-holds-the-method</loc><lastmod>2026-10-06T11:28:39.013137-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/javascript-from-zero-an-object-has-fields</loc><lastmod>2026-10-06T11:28:38.457616-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/javascript-from-zero-a-value-has-a-type</loc><lastmod>2026-10-06T11:28:37.922581-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/java-from-zero-int-division-drops-the-fraction</loc><lastmod>2026-10-06T11:28:37.282336-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/java-from-zero-null-is-not-an-object</loc><lastmod>2026-10-06T11:28:36.671088-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/java-from-zero-a-class-holds-the-data-and-the-method</loc><lastmod>2026-10-06T11:28:36.054332-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/java-from-zero-a-variable-has-a-type</loc><lastmod>2026-10-06T11:28:35.501047-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/go-from-zero-make-the-map-before-you-write</loc><lastmod>2026-10-06T11:28:34.929967-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/go-from-zero-zero-is-a-real-value</loc><lastmod>2026-10-06T11:28:34.219392-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/go-from-zero-a-struct-is-the-object</loc><lastmod>2026-10-06T11:28:33.583774-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/go-from-zero-a-name-has-a-type</loc><lastmod>2026-10-06T11:28:32.903434-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/css-from-zero-the-later-rule-can-win</loc><lastmod>2026-10-06T11:28:32.313665-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/css-from-zero-the-unit-is-part-of-the-length</loc><lastmod>2026-10-06T11:28:31.797623-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/css-from-zero-a-class-groups-the-declarations</loc><lastmod>2026-10-06T11:28:31.051583-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/css-from-zero-a-value-has-a-type</loc><lastmod>2026-10-06T11:28:29.804097-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/vim-macros-a-register-full-of-keystrokes</loc><lastmod>2026-10-06T01:31:59.953374-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/4c71b7967d6aa3922ba88c0a80f72fc87d905209bbcf4dd09a3a1b692e0c4b30.jpg</video:thumbnail_loc><video:title>Vim macros: a register full of keystrokes</video:title><video:description>Animation for GoByte Skills #27: A recording is replayed down a list of lines.</video:description><video:content_loc>https://media.gobyte.io/blog/7ba18276cf712eb12914f11277fc1e9e68205a70a3baa90bd9c70668816da3ae.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/vims-dot-command-repeat-any-change</loc><lastmod>2026-10-06T01:31:59.655975-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/eac6df62fd693a14f840349f6b415d6ecf630de7967855f3c1fb6fe5cc99d058.jpg</video:thumbnail_loc><video:title>Vim&#39;s dot command: repeat any change</video:title><video:description>Animation for GoByte Skills #26: One change is replayed on three lines.</video:description><video:content_loc>https://media.gobyte.io/blog/28c96eacdd5a46189d8ebc8ed4cc482f16fb33a885a3b458389a720005e9ba0b.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/vim-operators-and-motions-a-grammar</loc><lastmod>2026-10-06T01:31:59.365148-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/7a5b769c7afbbf4b7be19cffb26223905ff44b962fe5454095dd4270eeeea928.jpg</video:thumbnail_loc><video:title>Vim operators and motions: a grammar</video:title><video:description>Animation for GoByte Skills #25: Operators and motions snap together into edits.</video:description><video:content_loc>https://media.gobyte.io/blog/6dc743b5e1c98d05391c7588846462d0b17e936023423e28c081084dd36e195f.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/jq-a-pipeline-for-json</loc><lastmod>2026-10-06T01:31:59.048343-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/0c91252bf7f303e0d7df5c716c204c5d5e79c3554ba93894738723cff3d3a564.jpg</video:thumbnail_loc><video:title>jq: a pipeline for JSON</video:title><video:description>Animation for GoByte Skills #24: A JSON document is reshaped one filter at a time.</video:description><video:content_loc>https://media.gobyte.io/blog/e26108a2cbd891be50702ba12d32b0a5b65f77a87cfa372dd5cb00987cb98a7f.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/xargs-p-parallelism-in-one-flag</loc><lastmod>2026-10-06T01:31:58.753688-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/3f254354fcda72b0eb6cb1b7dc77c9ab6a5a12a23b4611a7511ea6eb222938f5.jpg</video:thumbnail_loc><video:title>xargs -P: parallelism in one flag</video:title><video:description>Animation for GoByte Skills #23: Items are dealt to four workers as they free up.</video:description><video:content_loc>https://media.gobyte.io/blog/38218382c5c258004480747cf5ffea0290fd499de223bb62a9b0e0496b71abac.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/pipes-the-concurrency-model-you-already-use</loc><lastmod>2026-10-06T01:31:58.464556-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/d2529d15712d41b2dcc76cc001abec4c88ccb43d8128ed9d7684fafa4c846097.jpg</video:thumbnail_loc><video:title>Pipes: the concurrency model you already use</video:title><video:description>Animation for GoByte Skills #22: Lines flow through cat, grep, sort and uniq.</video:description><video:content_loc>https://media.gobyte.io/blog/a91dd59cd5d70eb403c801bbfe123080cd9cc75ea925ca84ea35341c1e276ff9.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/easing-a-function-from-progress-to-progress</loc><lastmod>2026-10-06T01:31:58.115635-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/a2077980cb1a9b3875f01c04110b644a018ce12c2457514ed22a942787d7fda1.jpg</video:thumbnail_loc><video:title>Easing: a function from progress to progress</video:title><video:description>Animation for GoByte Skills #21: One dot travels the same distance with four different curves.</video:description><video:content_loc>https://media.gobyte.io/blog/25d02adba755a46c415c94a567597c99b469868f8f0be55e841ed48f8406b00b.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/animate-transform-and-opacity-only</loc><lastmod>2026-10-06T01:31:57.832931-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/3ad49bd8d050eeaefd2c41347c6bfd5473d59495def8f71f0575c7300cb4275b.jpg</video:thumbnail_loc><video:title>Animate transform and opacity only</video:title><video:description>Animation for GoByte Skills #20: Two boxes move, one smoothly and one stuttering as layout reruns.</video:description><video:content_loc>https://media.gobyte.io/blog/abbaae936d896983cea66863e458b428898bd793619bf23edf6ef49e09fa8fb4.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/gsap-timelines-animation-as-data</loc><lastmod>2026-10-06T01:31:57.545313-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/2cd3d267369b99004ac2fa64bba5f1bcc6980210ec62bab719b5ffcf1feb2d3b.jpg</video:thumbnail_loc><video:title>GSAP timelines: animation as data</video:title><video:description>Animation for GoByte Skills #19: A playhead scrubs a timeline forward and back.</video:description><video:content_loc>https://media.gobyte.io/blog/5201faffc8287824490c5b2179b97ea9b086fc0f576cf31f0d5b9f0cda0c33d4.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/this-decided-at-the-call-site</loc><lastmod>2026-10-06T01:31:57.251443-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/5cd61331a3a88fca65d8c6a8a0040ff376816137a238fdee2ed9deb476d18746.jpg</video:thumbnail_loc><video:title>this: decided at the call site</video:title><video:description>Animation for GoByte Skills #18: The same function is called three ways and this points somewhere new each time.</video:description><video:content_loc>https://media.gobyte.io/blog/d48f270ea54aad04d231e7ccdd0a495a2eab20d73118c701aae5f95eb91b12c6.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/closures-functions-remember-where-they-were-born</loc><lastmod>2026-10-06T01:31:56.965483-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/b9925bb2f55c9c91333f963c355729b8df07788ee45136037f8b0ffa1d940b47.jpg</video:thumbnail_loc><video:title>Closures: functions remember where they were born</video:title><video:description>Animation for GoByte Skills #17: Three callbacks capture one shared variable, then three separate ones.</video:description><video:content_loc>https://media.gobyte.io/blog/74b1408037867c03554b1c5d358ae02687297b773ae2936efcabe211c149fd07.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/the-event-loop-await-does-not-block</loc><lastmod>2026-10-06T01:31:56.68535-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/022900765ab64ea502f2ef31ad84b7c72a596fa2d458c37d82056123a8527562.jpg</video:thumbnail_loc><video:title>The event loop: await does not block</video:title><video:description>Animation for GoByte Skills #16: Tasks and microtasks queue up and run in a fixed order.</video:description><video:content_loc>https://media.gobyte.io/blog/fc588e1926035c43d419af7776ec580963178475a94b55c20e9a4bc4bc13fc62.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/make-illegal-states-unrepresentable</loc><lastmod>2026-10-06T01:31:56.396877-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/41dc70f0aa0dd7a6b5b1cec527c81f97f653894cbf81cc0bb1afb738edca842c.jpg</video:thumbnail_loc><video:title>Make illegal states unrepresentable</video:title><video:description>Animation for GoByte Skills #15: Four booleans collapse into one tagged union with three cases.</video:description><video:content_loc>https://media.gobyte.io/blog/28740d0e299e3588599e32f48b05e5c5335f1325638417985d50189a3b098c06.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/state-is-a-snapshot</loc><lastmod>2026-10-06T01:31:56.107171-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/7c62a7d7be03e9c38fd2cb870b26f9dfd04548d766d657a2c9bc43e40a7a220a.jpg</video:thumbnail_loc><video:title>State is a snapshot</video:title><video:description>Animation for GoByte Skills #14: Renders appear as frames and a click handler holds one frame.</video:description><video:content_loc>https://media.gobyte.io/blog/5b4d7bc7eb5f0aa76dd6c7096f2b69070b8d5cc79dddd0742f2fcaf6cb2dde1b.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/typescript-narrowing-typeof-is-the-bouncer</loc><lastmod>2026-10-06T01:31:55.813925-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/b4cf353be9bbf3fdddc7c640b95536d400e9afc8165c096678fbcc21e475805b.jpg</video:thumbnail_loc><video:title>TypeScript narrowing: typeof is the bouncer</video:title><video:description>Animation for GoByte Skills #13: One union splits into two typed lanes.</video:description><video:content_loc>https://media.gobyte.io/blog/2dd74083934dbf9f661e85a76d63cc90f355e3c210c4fec3c659172ea26b95a1.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/the-borrow-checker-many-readers-or-one-writer</loc><lastmod>2026-10-06T01:31:55.509099-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/f4da93893991de2a85928623843d24bb771d6e0b6b153ed80ca2b04a85bcce0e.jpg</video:thumbnail_loc><video:title>The borrow checker: many readers or one writer</video:title><video:description>Animation for GoByte Skills #12: References are granted and a second writer is refused.</video:description><video:content_loc>https://media.gobyte.io/blog/fa4825db89e4731cb502a3b443121fa771449e9803797f4bafa4fa3b5e1f2e3d.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/ownership-one-owner-no-garbage-collector</loc><lastmod>2026-10-06T01:31:55.21196-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/42a7b5b2f3eb9174747d0d0186248d04fabf4ef83f83059dd0dba0548d85e6ef.jpg</video:thumbnail_loc><video:title>Ownership: one owner, no garbage collector</video:title><video:description>Animation for GoByte Skills #11: A value moves between owners and is dropped at the end of the last scope.</video:description><video:content_loc>https://media.gobyte.io/blog/74c450858f116503e733d0a6fba1977c1828e43caf85cf6bdaaf4335d7df94cd.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/the-operator-errors-are-values</loc><lastmod>2026-10-06T01:31:54.913095-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/40981f179f7b951fc5e8ccc0b316d688a92e603c21a5d54647e9811381a0efcf.jpg</video:thumbnail_loc><video:title>The ? operator: errors are values</video:title><video:description>Animation for GoByte Skills #10: An error value travels up the call stack and changes type on the way.</video:description><video:content_loc>https://media.gobyte.io/blog/c916fc30f35b606f1ea74c4dbe3955ccfccf022833764d09df6ecbd28e813f62.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/mutable-defaults-evaluated-once</loc><lastmod>2026-10-06T01:31:54.613426-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/b9dbb8c06339b8df81d12e0a4e51da5fe0b537685de044137ee5c839d38c8170.jpg</video:thumbnail_loc><video:title>Mutable defaults: evaluated once</video:title><video:description>Animation for GoByte Skills #9: One list is created at def time and every call appends to the same one.</video:description><video:content_loc>https://media.gobyte.io/blog/211ac5638403db9467e798d8a3b2e0d820cf4a684d021e7c921836ca80982f6e.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/the-gil-threads-for-waiting-processes-for-work</loc><lastmod>2026-10-06T01:31:54.290479-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/0bcd81da6cfc8f1f6f32ac05aed3527916a7f9cdc633958db94adc6186c8fb47.jpg</video:thumbnail_loc><video:title>The GIL: threads for waiting, processes for work</video:title><video:description>Animation for GoByte Skills #8: Threads take turns on the interpreter while processes run side by side.</video:description><video:content_loc>https://media.gobyte.io/blog/f27a5b8329df5aeebd3f31d3f27c86621f7c9ad14e2fc0a8119fbd976ea429d2.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/generators-a-function-you-can-pause</loc><lastmod>2026-10-06T01:31:53.90446-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/f991e7028a530c4bd4568e76d6f1e5ec0cafb739bcd6cedb5fb75ca3ef592f2a.jpg</video:thumbnail_loc><video:title>Generators: a function you can pause</video:title><video:description>Animation for GoByte Skills #7: A function runs to a yield, pauses, and resumes where it stopped.</video:description><video:content_loc>https://media.gobyte.io/blog/c62c6480999d37dd7edafcaa20093a762ffe5b30aa769eccd8231003d72b0e7e.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/streams-nothing-runs-until-the-end</loc><lastmod>2026-10-06T01:31:53.61185-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/487effd2e6a279788b4666c83d205bc1806b0c0ff7f71c2ceb0f334def7019c9.jpg</video:thumbnail_loc><video:title>Streams: nothing runs until the end</video:title><video:description>Animation for GoByte Skills #6: Elements flow through the pipeline one at a time, only once the terminal call arrives.</video:description><video:content_loc>https://media.gobyte.io/blog/34ff950251a95b61788b7dee223f0e990417a1d62b5e112b3e3e61dc1d9692cb.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/sealed-types-the-switch-that-cannot-forget</loc><lastmod>2026-10-06T01:31:53.256159-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/2adfda816833473eeac4e1a47f6c12b982e3ce0d363b12bd96569e36957b7877.jpg</video:thumbnail_loc><video:title>Sealed types: the switch that cannot forget</video:title><video:description>Animation for GoByte Skills #5: A new case appears and every switch that missed it lights up.</video:description><video:content_loc>https://media.gobyte.io/blog/eebe601b28f060efdf3f5113b01d0454450953466aacfc51e08925ce41608276.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/virtual-threads-blocking-is-cheap-again</loc><lastmod>2026-10-06T01:31:52.898482-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/7a1a8edea4e2946a5f91dfda63a2db510bb9b16a69b5752436f4e9acc490444f.jpg</video:thumbnail_loc><video:title>Virtual threads: blocking is cheap again</video:title><video:description>Animation for GoByte Skills #4: Many virtual threads share a few carrier threads.</video:description><video:content_loc>https://media.gobyte.io/blog/548d34348159fc839359e52fc5d4e25afaa3333c064afb4ae35c1daa286a3e6f.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/context-cancel-the-parent-the-children-hear-it</loc><lastmod>2026-10-06T01:31:52.579997-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/ea0d572cfee7e784b5eedb3f8cfff661546d319a75ae8113bc20ce7f4beb2b09.jpg</video:thumbnail_loc><video:title>Context: cancel the parent, the children hear it</video:title><video:description>Animation for GoByte Skills #3: A cancel signal travels down a tree of goroutines and each one stops.</video:description><video:content_loc>https://media.gobyte.io/blog/590b855a26a219cb02f1ebe2a1f750bb607df7919063ca38cb1b60f774855921.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/errors-is-wrap-it-keep-the-cause</loc><lastmod>2026-10-06T01:31:52.225379-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/073f99b4bd6c24f14b430b861fc47372079379cba220291a618e1e8c8bcf93b0.jpg</video:thumbnail_loc><video:title>errors.Is: wrap it, keep the cause</video:title><video:description>Animation for GoByte Skills #2: An error gains wrappers while the match still finds the original.</video:description><video:content_loc>https://media.gobyte.io/blog/084983b0a19baf386811de611c58c311a6d1af77cdbc80a01cfa6bd3c52fa3f7.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/go-channels-the-queue-that-says-no</loc><lastmod>2026-10-06T01:31:51.855807-04:00</lastmod><video:video><video:thumbnail_loc>https://media.gobyte.io/blog/f63615a33fc36eaaabe6514ca8d6688b61af9ef1c27c7a601d97e698472c6306.jpg</video:thumbnail_loc><video:title>Go channels: the queue that says no</video:title><video:description>Animation for GoByte Skills #1: Tokens fill a two slot pipe and the sender waits.</video:description><video:content_loc>https://media.gobyte.io/blog/d0b5a2e92c4e787d8b0d8ca44408b948f4438c17e0118d73ec52dfeedb489e6c.mp4</video:content_loc></video:video></url>
<url><loc>https://gobyte.io/blog/vim-from-zero-a-global-command-repeats-one-change</loc><lastmod>2026-09-03T22:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/vim-from-zero-a-register-holds-what-you-yanked</loc><lastmod>2026-09-03T21:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/shell-from-zero-read-the-exit-code</loc><lastmod>2026-09-03T16:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/shell-from-zero-local-keeps-the-name-inside</loc><lastmod>2026-09-03T15:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/motion-from-zero-the-second-step-starts-where-the-first-ended</loc><lastmod>2026-09-03T10:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/motion-from-zero-reduced-motion-sets-the-duration-to-zero</loc><lastmod>2026-09-03T09:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/css-from-zero-a-class-can-name-what-is-inside</loc><lastmod>2026-09-03T04:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/css-from-zero-a-custom-property-is-a-named-value</loc><lastmod>2026-09-03T03:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/javascript-from-zero-pass-the-object</loc><lastmod>2026-09-02T22:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/javascript-from-zero-a-method-needs-its-object</loc><lastmod>2026-09-02T21:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/typescript-from-zero-an-interface-is-a-method-list</loc><lastmod>2026-09-02T16:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/typescript-from-zero-a-union-names-the-cases</loc><lastmod>2026-09-02T15:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/rust-from-zero-a-trait-is-a-method-list</loc><lastmod>2026-09-02T10:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/rust-from-zero-an-enum-names-the-cases</loc><lastmod>2026-09-02T09:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/python-from-zero-a-method-is-enough</loc><lastmod>2026-09-02T04:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/python-from-zero-money-is-a-decimal</loc><lastmod>2026-09-02T03:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/java-from-zero-one-method-is-enough-to-call</loc><lastmod>2026-09-01T22:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/java-from-zero-a-record-keeps-the-cents</loc><lastmod>2026-09-01T21:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/go-from-zero-an-interface-is-a-method-list</loc><lastmod>2026-09-01T16:00:00-04:00</lastmod></url>
<url><loc>https://gobyte.io/blog/go-from-zero-a-method-can-change-the-struct</loc><lastmod>2026-09-01T15:00:00-04:00</lastmod></url>
</urlset>
