<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>ryanmr.com blog</title><description>the blog for ryan rampersad</description><link>http://www.ryanmr.com/</link><language>en-us</language><item><title>Put your meetings in the BAG</title><link>http://www.ryanmr.com/posts/bag/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/bag/</guid><description>Background, Agenda, Goals</description><pubDate>Sun, 18 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Books recommendations</title><link>http://www.ryanmr.com/posts/books-recommendations/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/books-recommendations/</guid><description>Read good books in a nice list, ideal for software engineers, architects, managers, hackers and more.</description><pubDate>Sun, 23 Apr 2023 00:00:00 GMT</pubDate></item><item><title>Cloudflare minfied spaces and broke Next hydration</title><link>http://www.ryanmr.com/posts/cloudflare-minified-next/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/cloudflare-minified-next/</guid><description>It&apos;s full of spaces...</description><pubDate>Fri, 20 Jan 2023 00:00:00 GMT</pubDate></item><item><title>Cloudflare: stop removing html comments</title><link>http://www.ryanmr.com/posts/cloudflare-noscript-html-comments/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/cloudflare-noscript-html-comments/</guid><description>Keep your ascii art banners where they belong</description><pubDate>Thu, 22 Jun 2023 00:00:00 GMT</pubDate></item><item><title>Avoid undefined state in React Context</title><link>http://www.ryanmr.com/posts/context-undefined-typescript/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/context-undefined-typescript/</guid><description>Improve quality of life with this context pattern</description><pubDate>Sun, 29 Jan 2023 00:00:00 GMT</pubDate></item><item><title>Convert WebM video to MP4 video with ffmpeg</title><link>http://www.ryanmr.com/posts/convert-webm-to-mp4-with-ffmpeg/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/convert-webm-to-mp4-with-ffmpeg/</guid><description>WebM has limited support</description><pubDate>Wed, 09 Nov 2022 00:00:00 GMT</pubDate></item><item><title>Creating test videos</title><link>http://www.ryanmr.com/posts/creating-test-videos/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/creating-test-videos/</guid><description>No time record, I just need a 499MB test video!</description><pubDate>Wed, 09 Nov 2022 00:00:00 GMT</pubDate></item><item><title>Cypress: replace env in config: ${TOKEN}</title><link>http://www.ryanmr.com/posts/cypress-replace-env-in-config-token/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/cypress-replace-env-in-config-token/</guid><description>What is this mysterious token?</description><pubDate>Sat, 05 Aug 2023 00:00:00 GMT</pubDate></item><item><title>TypeScript: Mutually Exclusive Properties</title><link>http://www.ryanmr.com/posts/exclusive-typescript/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/exclusive-typescript/</guid><description>Result, OK, Err; what a clever pattern</description><pubDate>Sat, 14 Jan 2023 00:00:00 GMT</pubDate></item><item><title>Exploring JavaScript Private Properties</title><link>http://www.ryanmr.com/posts/exploring-javascript-private-properties/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/exploring-javascript-private-properties/</guid><description>This post is #public</description><pubDate>Thu, 26 Jan 2023 00:00:00 GMT</pubDate></item><item><title>Wrap long text lines with fmt</title><link>http://www.ryanmr.com/posts/fmt-wrap-text/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/fmt-wrap-text/</guid><description>Prettier, why can&apos;t you do this?</description><pubDate>Tue, 03 Jan 2023 00:00:00 GMT</pubDate></item><item><title>Install Node</title><link>http://www.ryanmr.com/posts/install-node/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/install-node/</guid><description>NVM is OK but maybe Volta is better</description><pubDate>Sun, 13 Nov 2022 00:00:00 GMT</pubDate></item><item><title>intellij - idea.vmoptions</title><link>http://www.ryanmr.com/posts/intellij-vm-options/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/intellij-vm-options/</guid><description>Don&apos;t edit things you don&apos;t understand, or, do exactly that but fix them after</description><pubDate>Thu, 11 Aug 2022 00:00:00 GMT</pubDate></item><item><title>Astro as a blog?</title><link>http://www.ryanmr.com/posts/interactive-content/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/interactive-content/</guid><description>Yet another frontend scheme</description><pubDate>Thu, 28 Jul 2022 00:00:00 GMT</pubDate></item><item><title>Mastodon: tips and tricks</title><link>http://www.ryanmr.com/posts/mastodon-tips-and-tricks/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/mastodon-tips-and-tricks/</guid><description>Hopefully this lasts more than a month</description><pubDate>Mon, 02 Jan 2023 00:00:00 GMT</pubDate></item><item><title>mui: styled and sx just works</title><link>http://www.ryanmr.com/posts/mui-styled-sx/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/mui-styled-sx/</guid><description>mui is no fun, but sx makes it bearable</description><pubDate>Thu, 29 Dec 2022 00:00:00 GMT</pubDate></item><item><title>ncu: skip pinned versions</title><link>http://www.ryanmr.com/posts/ncu-skip-pinned-versions/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/ncu-skip-pinned-versions/</guid><description>they&apos;re pinned for a reason you know</description><pubDate>Fri, 23 Dec 2022 00:00:00 GMT</pubDate></item><item><title>next-i18next: Text content did not match</title><link>http://www.ryanmr.com/posts/next-i18next-text-content-did-not-match/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/next-i18next-text-content-did-not-match/</guid><description>Just upgraded, it used to match, why is everything so flimsy?</description><pubDate>Thu, 29 Dec 2022 00:00:00 GMT</pubDate></item><item><title>NextJS with Standalone Mode</title><link>http://www.ryanmr.com/posts/next-standalone-mode/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/next-standalone-mode/</guid><description>Docker image optimization with output file tracing</description><pubDate>Tue, 20 Dec 2022 00:00:00 GMT</pubDate></item><item><title>npm-check-updates</title><link>http://www.ryanmr.com/posts/npm-check-updates/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/npm-check-updates/</guid><description>ncu is wonderful, try it</description><pubDate>Sun, 13 Nov 2022 00:00:00 GMT</pubDate></item><item><title>React: polymorphic components with the as prop with TypeScript</title><link>http://www.ryanmr.com/posts/react-polymorphic-as-component-typescript/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/react-polymorphic-as-component-typescript/</guid><description>It&apos;s a button, it&apos;s an airplane, it&apos;s polymorphism</description><pubDate>Tue, 04 Jul 2023 00:00:00 GMT</pubDate></item><item><title>React Router NavLink with end prop</title><link>http://www.ryanmr.com/posts/react-router-nested-end/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/react-router-nested-end/</guid><description>Solving simultaneous index and subroutes being active</description><pubDate>Sun, 20 Aug 2023 00:00:00 GMT</pubDate></item><item><title>Resize with imagemagick and optimize with optipng</title><link>http://www.ryanmr.com/posts/resize-imagemagick-optimize-optipng/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/resize-imagemagick-optimize-optipng/</guid><description>Save space and bandwidth</description><pubDate>Tue, 08 Aug 2023 00:00:00 GMT</pubDate></item><item><title>JSON In Your Shell With Heredoc</title><link>http://www.ryanmr.com/posts/shell-heredoc-json/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/shell-heredoc-json/</guid><description>Double Quotes Be Silent</description><pubDate>Wed, 10 Jan 2024 00:00:00 GMT</pubDate></item><item><title>Astro editing</title><link>http://www.ryanmr.com/posts/static-content/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/static-content/</guid><description>Bring your markdown, we&apos;ll handle the rest</description><pubDate>Mon, 11 Jul 2022 00:00:00 GMT</pubDate></item><item><title>Using swc and esm with jest</title><link>http://www.ryanmr.com/posts/swc-esm-jest-config/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/swc-esm-jest-config/</guid><description>Do any of these tools work together? The answer may surprise you</description><pubDate>Fri, 09 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Synology RT6600ax</title><link>http://www.ryanmr.com/posts/synology-rt6600ax/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/synology-rt6600ax/</guid><description>It&apos;s not a NAS, it&apos;s a router, silly</description><pubDate>Wed, 09 Nov 2022 00:00:00 GMT</pubDate></item><item><title>Thoughts on CSP</title><link>http://www.ryanmr.com/posts/thoughts-on-csp/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/thoughts-on-csp/</guid><description>Great when you need it, annoyingly restrictive when you don&apos;t</description><pubDate>Sun, 07 Aug 2022 00:00:00 GMT</pubDate></item><item><title>Useful macOS utilities</title><link>http://www.ryanmr.com/posts/useful-macos-utilities/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/useful-macos-utilities/</guid><description>Small customizations to make macOS better</description><pubDate>Sun, 23 Apr 2023 00:00:00 GMT</pubDate></item><item><title>JavaScript Webtech</title><link>http://www.ryanmr.com/posts/webtech-tooling/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/webtech-tooling/</guid><description>The Good, Bad and the Maybe</description><pubDate>Fri, 02 Sep 2022 00:00:00 GMT</pubDate></item><item><title>Rename winston log level field</title><link>http://www.ryanmr.com/posts/winston-log-level-rename/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/winston-log-level-rename/</guid><description>What is the datadog doing?</description><pubDate>Fri, 21 Jul 2023 00:00:00 GMT</pubDate></item><item><title>Zod Optional Default</title><link>http://www.ryanmr.com/posts/zod-optional-default/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/zod-optional-default/</guid><description>z.infer vs z.input; the secret is in the types</description><pubDate>Mon, 19 Dec 2022 00:00:00 GMT</pubDate></item><item><title>Zustand: a middleground</title><link>http://www.ryanmr.com/posts/zustand-a-middleground/</link><guid isPermaLink="true">http://www.ryanmr.com/posts/zustand-a-middleground/</guid><description>Zustand, the middleground between context and redux</description><pubDate>Wed, 21 Dec 2022 00:00:00 GMT</pubDate></item></channel></rss>