41554 blogs · [ { "id": "01a08767-aeab-73d9-aa4f-bea0e448fc54", "title": "Beat the Drum", "url": "https://www.dannyguo.com/blog/beat-the-drum", "published_at": "2025-01-31T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0e46b0d12", "title": "Prefer Numbered Lists to Bullets", "url": "https://www.dannyguo.com/blog/prefer-numbered-lists-to-bullets", "published_at": "2024-12-30T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0e49bf95e", "title": "Google Banned Me From Google Voice", "url": "https://www.dannyguo.com/blog/google-banned-me-from-google-voice", "published_at": "2024-11-07T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0e522026b", "title": "How to Get iCloud+ for Free", "url": "https://www.dannyguo.com/blog/how-to-get-icloud-plus-for-free", "published_at": "2024-04-17T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0e55ec010", "title": "My Cat Alerted Me to a DDoS Attack", "url": "https://www.dannyguo.com/blog/my-cat-alerted-me-to-a-ddos-attack", "published_at": "2024-04-14T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0e6145eb0", "title": "My Peloton Desk Setup", "url": "https://www.dannyguo.com/blog/my-peloton-desk-setup", "published_at": "2024-03-25T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0e681badc", "title": "How I Do Code Review", "url": "https://www.dannyguo.com/blog/how-i-do-code-review", "published_at": "2024-03-20T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0e6ea2b81", "title": "A Code Review of My Earliest Projects", "url": "https://www.dannyguo.com/blog/a-code-review-of-my-earliest-projects", "published_at": "2024-03-14T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0e7d8ce0b", "title": "Making Make a README", "url": "https://www.dannyguo.com/blog/making-make-a-readme", "published_at": "2024-03-06T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0e8c1a64d", "title": "Start With a Minimum Viable System", "url": "https://www.dannyguo.com/blog/start-with-a-minimum-viable-system", "published_at": "2023-08-09T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0e96d83c4", "title": "How to Convert Any JavaScript Value to a Boolean", "url": "https://www.dannyguo.com/blog/how-to-convert-any-javascript-value-to-a-boolean", "published_at": "2023-06-17T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0ea5a043c", "title": "My Credit and Debit Card Collection", "url": "https://www.dannyguo.com/blog/my-credit-and-debit-card-collection", "published_at": "2023-05-09T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0eaf03ccd", "title": "Forex Trading for Fun and Luckily Profit", "url": "https://www.dannyguo.com/blog/forex-trading-for-fun-and-luckily-profit", "published_at": "2023-04-17T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0eb5775cd", "title": "How to Enforce Exhaustive TypeScript Enum Mappings Using Records", "url": "https://www.dannyguo.com/blog/how-to-enforce-exhaustive-typescript-enum-mappings-using-records", "published_at": "2023-04-12T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0eb653f54", "title": "Why I Blog", "url": "https://www.dannyguo.com/blog/why-i-blog", "published_at": "2023-04-06T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0eb82b18a", "title": "Updating My Favicon, Courtesy of Randall Munroe", "url": "https://www.dannyguo.com/blog/updating-my-favicon-courtesy-of-randall-munroe", "published_at": "2022-06-22T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0ec50b33b", "title": "How to Use Tasker to Block Spam Phone Calls From a Certain Area Code on Android", "url": "https://www.dannyguo.com/blog/how-to-use-tasker-to-block-spam-phone-calls-from-a-certain-area-code-on-android", "published_at": "2022-06-04T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0ed4e47c7", "title": "How to Disable 5G for a Samsung Galaxy S21 FE Phone", "url": "https://www.dannyguo.com/blog/how-to-disable-5g-for-a-samsung-galaxy-s21-fe-phone", "published_at": "2022-05-23T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0edde9d61", "title": "How to Use Newlines in an Environment Variable File for Docker", "url": "https://www.dannyguo.com/blog/how-to-use-newlines-in-an-environment-variable-file-for-docker", "published_at": "2022-04-19T00:00:00+00:00" }, { "id": "01a08767-aeab-73d9-aa4f-bea0ee71d4bb", "title": "How to Break and Continue in Nested Loops in JavaScript", "url": "https://www.dannyguo.com/blog/how-to-break-and-continue-in-nested-loops-in-javascript", "published_at": "2022-04-17T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e324fa2ced", "title": "How to Check if a JavaScript String Begins or Ends With a String", "url": "https://www.dannyguo.com/blog/how-to-check-if-a-javascript-string-begins-or-ends-with-a-string", "published_at": "2022-04-07T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e325c486ca", "title": "My Seatbelt Rule for Judgment", "url": "https://www.dannyguo.com/blog/my-seatbelt-rule-for-judgment", "published_at": "2022-02-06T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e325f7f4a2", "title": "How to Use a Samsung Galaxy Watch4 as a Heart Rate Monitor for a Peloton Bike", "url": "https://www.dannyguo.com/blog/how-to-use-a-samsung-galaxy-watch4-as-a-heart-rate-monitor-for-a-peloton-bike", "published_at": "2022-01-26T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e3265c2cf0", "title": "How to Get a Free S/MIME Certificate", "url": "https://www.dannyguo.com/blog/how-to-get-a-free-s-mime-certificate", "published_at": "2022-01-20T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e326d325e8", "title": "Automating My Air Conditioner", "url": "https://www.dannyguo.com/blog/automating-my-air-conditioner", "published_at": "2021-10-09T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e3270b337c", "title": "How to Replace All Instances of a Substring in JavaScript", "url": "https://www.dannyguo.com/blog/how-to-replace-all-instances-of-a-substring-in-javascript", "published_at": "2021-07-12T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e327145154", "title": "How to Swap Column Values in SQL", "url": "https://www.dannyguo.com/blog/how-to-swap-column-values-in-sql", "published_at": "2021-06-25T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e3274d10ce", "title": "How to Use Git Bisect for Debugging", "url": "https://www.dannyguo.com/blog/how-to-use-git-bisect-for-debugging", "published_at": "2021-05-27T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e3278d6eab", "title": "How to Prevent a Website Page From Showing Up in Search Results", "url": "https://www.dannyguo.com/blog/how-to-prevent-a-website-page-from-showing-up-in-search-results", "published_at": "2021-05-11T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e327e9c866", "title": "What I Learned by Relearning HTML", "url": "https://www.dannyguo.com/blog/what-i-learned-by-relearning-html", "published_at": "2021-05-07T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e328473a9b", "title": "Using Fuse.js to Add Dynamic Search to a React App", "url": "https://www.dannyguo.com/blog/using-fuse.js-to-add-dynamic-search-to-a-react-app", "published_at": "2021-04-18T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e329054365", "title": "How to Fix instanceof Not Working For Custom Errors in TypeScript", "url": "https://www.dannyguo.com/blog/how-to-fix-instanceof-not-working-for-custom-errors-in-typescript", "published_at": "2021-04-17T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e329359469", "title": "Is Safari the Next Internet Explorer?", "url": "https://www.dannyguo.com/blog/is-safari-the-next-internet-explorer", "published_at": "2021-01-08T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e32a30094b", "title": "How to Concatenate Strings in Lua", "url": "https://www.dannyguo.com/blog/how-to-concatenate-strings-in-lua", "published_at": "2020-12-28T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e32a720ff7", "title": "How to Improve Interface Responsiveness With Web Workers", "url": "https://www.dannyguo.com/blog/how-to-improve-interface-responsiveness-with-web-workers", "published_at": "2020-10-21T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e32b35c227", "title": "BEBEN X8 Review", "url": "https://www.dannyguo.com/blog/beben-x8-review", "published_at": "2020-10-18T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e32c22ae88", "title": "Morning Joy", "url": "https://www.dannyguo.com/blog/morning-joy", "published_at": "2020-08-15T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e32cab4527", "title": "Fixing MacBook Pro Thermal Performance Issues", "url": "https://www.dannyguo.com/blog/fixing-macbook-pro-thermal-performance-issues", "published_at": "2020-08-02T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e32d7c0c2a", "title": "Clearing Mac Storage Space", "url": "https://www.dannyguo.com/blog/clearing-mac-storage-space", "published_at": "2020-07-15T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e32e383262", "title": "How to Keep Your JS Libraries Up to Date", "url": "https://www.dannyguo.com/blog/how-to-keep-your-js-libraries-up-to-date", "published_at": "2020-07-07T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e32e75b9ad", "title": "Serve Videos Instead of GIFs", "url": "https://www.dannyguo.com/blog/serve-videos-instead-of-gifs", "published_at": "2020-05-16T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e32f3e238d", "title": "Playwright vs. Puppeteer", "url": "https://www.dannyguo.com/blog/playwright-vs-puppeteer", "published_at": "2020-05-06T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e32ff34d9b", "title": "How to Handle PII in Websites", "url": "https://www.dannyguo.com/blog/how-to-handle-pii-in-websites", "published_at": "2020-03-28T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e3304e9d0e", "title": "Migrating From Authy to Bitwarden for 2FA Codes", "url": "https://www.dannyguo.com/blog/migrating-from-authy-to-bitwarden-for-2fa-codes", "published_at": "2020-03-25T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e330ee9dc6", "title": "Optional Chaining and Nullish Coalescing in JavaScript", "url": "https://www.dannyguo.com/blog/optional-chaining-and-nullish-coalescing-in-javascript", "published_at": "2020-01-03T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e331da121d", "title": "Rendering Sibling Elements in React Using Fragments", "url": "https://www.dannyguo.com/blog/rendering-sibling-elements-in-react-using-fragments", "published_at": "2019-12-09T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e332084c47", "title": "The Introductory Guide to AssemblyScript", "url": "https://www.dannyguo.com/blog/the-introductory-guide-to-assemblyscript", "published_at": "2019-11-22T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e332d0750a", "title": "The History and Legacy of jQuery", "url": "https://www.dannyguo.com/blog/the-history-and-legacy-of-jquery", "published_at": "2019-09-13T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e33370b238", "title": "Automating TurboTax Data Entry With Puppeteer", "url": "https://www.dannyguo.com/blog/automating-turbotax-data-entry-with-puppeteer", "published_at": "2019-05-12T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e3343d148d", "title": "How to Add Copy to Clipboard Buttons to Code Blocks in Hugo", "url": "https://www.dannyguo.com/blog/how-to-add-copy-to-clipboard-buttons-to-code-blocks-in-hugo", "published_at": "2019-03-22T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e33443c45c", "title": "Animated Multiline Link Underlines with CSS", "url": "https://www.dannyguo.com/blog/animated-multiline-link-underlines-with-css", "published_at": "2018-12-19T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e335305a97", "title": "Using Mailgun for a Free Custom Domain Email Address", "url": "https://www.dannyguo.com/blog/using-mailgun-for-a-free-custom-domain-email-address", "published_at": "2018-12-07T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e3353db430", "title": "I Published My AWS Secret Key to GitHub", "url": "https://www.dannyguo.com/blog/I-published-my-aws-secret-key-to-github", "published_at": "2018-08-15T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e33608d6b1", "title": "MoMath Hackathon 2018: Vortex Pool", "url": "https://www.dannyguo.com/blog/momath-hackathon-2018-vortex-pool", "published_at": "2018-07-23T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e336eaea60", "title": "Remap Caps Lock to Escape and Control", "url": "https://www.dannyguo.com/blog/remap-caps-lock-to-escape-and-control", "published_at": "2018-07-16T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e337ce4572", "title": "Migrating from Jekyll to Hugo", "url": "https://www.dannyguo.com/blog/migrating-from-jekyll-to-hugo", "published_at": "2018-06-24T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e337db8d4c", "title": "Custom Website Selection Colors", "url": "https://www.dannyguo.com/blog/custom-website-selection-colors", "published_at": "2018-06-13T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e338af5a60", "title": "The Decline of the MacBook Pro", "url": "https://www.dannyguo.com/blog/the-decline-of-the-macbook-pro", "published_at": "2018-06-07T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e33929d156", "title": "A Tribute to Kindle", "url": "https://www.dannyguo.com/blog/a-tribute-to-kindle", "published_at": "2018-05-08T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e339c29c9c", "title": "Splurge Stopper", "url": "https://www.dannyguo.com/blog/splurge-stopper", "published_at": "2018-05-04T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e33a6276a9", "title": "Building Dynamic Firefox Themes", "url": "https://www.dannyguo.com/blog/building-dynamic-firefox-themes", "published_at": "2018-04-12T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e33b1cd5e3", "title": "Philanthropy for All", "url": "https://www.dannyguo.com/blog/philanthropy-for-all", "published_at": "2018-01-24T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e33b6e7a54", "title": "Digital Security Coach", "url": "https://www.dannyguo.com/blog/digital-security-coach", "published_at": "2017-11-03T00:00:00+00:00" }, { "id": "01a08767-aeac-705f-829e-36e33c436f36", "title": "Great Writing", "url": "https://www.dannyguo.com/blog/great-writing", "published_at": "2017-06-13T00:00:00+00:00" } ] posts Claim your blog
Back to dguo
Blog · corpus.blog/blogs/dannyguo.com/posts

dguo

dannyguo.com

2025

2024

2023

2022

2021

2020

2019

2018

2017