The Curious Engineer

All blogs / Software / engineering practice

George Mandis

george.mand.is

Traveler, software engineer, consultant, mentor, writer and other hats as needed.

Software / engineering practiceAI / MLDev tools / editors / IDEsJavaScript / TypeScript

Posts
468 from 1 Apr 2009 to 28 Oct 2026
Posting
monthly (14 in the last year)
Kind
personal blog
Feed
https://george.mand.is/feed.xml

2026 13

  1. You Already Don't Understand Your Code
  2. View a more complete list →
  3. Processing Community Day NYC 2026 • MIDI Workshop Preview
  4. Feeds
  5. SolarPi Notes
  6. AI Enablement Theater™
  7. tezcatl: a 2MB alternative to Puppeteer for scraping on macOS
  8. Tracking Homebrew downloads with GitHub's API
  9. Who Reads My RSS Feed?
  10. My Favorite Bugs: Invalid Surrogate Pairs
  11. Migrating from Netlify to Cloudflare Pages
  12. Meet PaTUI: MS Paint for the Terminal, with Vim Controls
  13. Soft-launching Little Irons

2025 7

  1. More dynamic cronjobs
  2. Building a Go Link Toy with Deno
  3. OpenAI Charges by the Minute, So Make the Minutes Shorter
  4. What It Takes to Be a Good Engineering Manager
  5. Exploring phonics with OpenAI
  6. Future-proofing my blog for an AI audience
  7. AGI, elevators, and other thoughts I didn’t mean to publish

2024 7

  1. Kagi, Orion and Gopher
  2. TIL there are Apple-specific Samba server configuration settings
  3. Solar Pi
  4. Using Email and Val Town to Draft Blog Posts
  5. Leap Years, Lost Days, and Coding Calendars: A JavaScript Adventure
  6. ZimaBoards, VisiData and disk space
  7. The Doorway Effect

2023 8

  1. Obligatory blog refresh post, a twist and a tiny homage
  2. A cute little emoji as favicon trick
  3. Building a mute button toggler for Zoom with Espruino and Puck.js
  4. The GPT-Force Awakens: Better Star Wars Stories with AI
  5. Publishing to 11ty with iA Writer and Micropub
  6. Making AI Fart
  7. Playful aliases for your gitconfig
  8. Drawing pictures of animals with ChatGPT

2022 8

  1. Ask a computer! A toy powered by GPT-3 and reckless abandon
  2. Leaving Twitter, leaving Facebook and rediscovering my techno-optimism
  3. New Elmo fire memes with DALL-E 2
  4. Inflight GoGo + T-Mobile Wi-Fi hack still works!
  5. Svalbard: Land of reindeer, unique visa policies and, inexplicably, pineapples
  6. Svalbard, marathons and another reminder of how terrible Facebook is
  7. Adding NetlifyCMS to My Static Sites
  8. npm install turboencabulator

2021 4

  1. Idle JavaScript Observations, Vol. 2: When 2 + 2 = 2
  2. Archaeology and Software
  3. Facebook Recruiter Correspondence
  4. Idle JavaScript Observations

2020 8

  1. How They Made the TENET Film Website
  2. Fun with Translations; Beauty & Horror with Strava & Serbian
  3. OmniFocus Due Date Shuffle Plugin
  4. Caching Images without a Network Request with Chrome Dev Tools
  5. Making a Simple Chrome Extension in 2020 to Copy URLs from Open Tabs
  6. How to Send SMS & MMS Messages with Twilio + Netlify Functions
  7. Curious JavaScript Quirks Found Rewriting 'Hello, World'
  8. Publishing Bubos RSS to Netlify with GitHub Actions

2019 17

  1. Querying Random Blog Posts with Netlify Functions
  2. Introducing Bubo RSS: An Absurdly Minimalist RSS Feed Reader
  3. What's the difference between link preload, preconnect and prefetch?
  4. Kathmandu & Timezone Oddities
  5. Tweeter Totter
  6. Dinner Reservations at the Great Wall of China
  7. Slow. Slow-er
  8. Detecting invalid dates in JavaScript
  9. The Space Jam Standard
  10. Edge Canary Supports Shape Detection API
  11. Texans in Hong Kong
  12. I’m speaking at Microsoft Build | May 6–8, 2019
  13. Optimizing Screenshots on macOS Mojave
  14. Getting Started with CSS Dark Mode is Easy
  15. Huff Post, Konami Code and Pet Photos Makes the News More Palatable
  16. I'm Officially an Expert!
  17. New Years, New Websites

2018 13

  1. Better Letter Distributions for Word Games
  2. How to Get Tickets to the Anne Frank House
  3. How to Create Trusted SSL Certificates for Localhost on MacOS with SSLoca
  4. Announcing Circuit Playground MIDI Controller Multi-Tool v1.0.0 for WebMIDI Workshops
  5. On Croissants and Conductivity
  6. Does a Google Scholar page help SEO?
  7. A More Politically-Correct Version of Hangman?
  8. Trouble-shooting Shopify Webhooks and SSL Certificates
  9. Programming in Other Languages
  10. Big Leaky Data, Strava and Me
  11. Why I Think Digital “Assistant” is the Wrong Metaphor
  12. Thoughts on HQ Trivia
  13. Passive protesting through Ukranian peanuts

2017 90

  1. Compress your favicon with gzip
  2. Fixing SSH after upgrading to macOS 10.13.2
  3. A framework-agnostic explanation of web components
  4. Kickstarter to save Movie Madness
  5. My interview at Before After (in Serbian)
  6. Tyke is like a scratchpad for your computer
  7. Playing with cellular automata, JavaScript & MIDI
  8. Resources and strategies for remote workers and freelancers
  9. Speaking at Donut.js this coming week
  10. Tiny computers that run JavaScript natively
  11. Serve GitHub Pages over HTTPS with Netlify
  12. Where to donate for recent disasters 2017
  13. Glitch reminds me of GitHub, but fun
  14. Free inflight internet on your laptop via GoGo, Alaska Airlines and T-Mobile
  15. Talking About MIDI and IoT at FullStack 2017
  16. How ngrok saved my talk at OdessaJS
  17. Why designers might care that Google is blocked in China
  18. A quick review of my AirPods over coffee
  19. How does a Soundwave Tattoo work?
  20. MIDI, JavaScript and more at OdessaJS 2017
  21. My interview at habrahabr.ru
  22. Reflections from a first-time speaker at Holy JS
  23. Speaking on JavaScript, MIDI and more at Holy JS 2017
  24. JSON Feed Templates for Jekyll
  25. Added a JSON Feed to my website
  26. The Line in the Sand
  27. By Any Other Name in the Balkans: My World Nomads Submission
  28. Interface Experiments with Focus Mode
  29. Finding Time for Human Rights Pen Pals
  30. A Belated Birthday to the Raspberry Pi!
  31. How to Separate Session Data from Other Data in Redis
  32. Tax Advice from Sharon Jones
  33. That Time I Broke Marvel.com
  34. A Better Commenting System
  35. Why I Like Folding Text
  36. An Initial Reaction to React.js
  37. My First Guitar
  38. An Ode to QuickBasic 4.5
  39. Milkmen: The Life and Times of Dairy Farmers
  40. Finding Public Domain Artwork at The Met
  41. Decide Where to Be a Nomad with Earth Awaits
  42. The Nonlinear Progress of Things, Drones and Hawks
  43. A Belated Prince Tribute
  44. Formatting Dates in Jekyll Liquid
  45. How to Preview Printed Websites with Chrome
  46. Using System Fonts in Web Pages in 2017
  47. Thundercat is Dope
  48. Using Google Chrome to Split PDFs
  49. Why Do Kids Say "Search It Up?"
  50. An Advantage to Physical Bus Tickets
  51. An Inadvertent Participant in Sneaky Cards
  52. Big Joy from Tiny Robots
  53. Progress Is...
  54. Quick Client WordPress Staging with Digital Ocean and Amazon Route53
  55. Randy's Crematorium & Pizza Parlor — How I Deleted My Yelp Business Listing
  56. GTD with OmniFocus and Emoji
  57. The Greatest Socks in the World
  58. A Noticeable Difference 20 Years Later
  59. Spotify and the History of Muzak
  60. Lesser-Known Mad Scientists: Leon Termen
  61. Fighting Lies is Exhausting
  62. What is a Snap Tortoise?
  63. snow days
  64. We're All in the Entertainment Business
  65. Using Mozilla's Thimble for Teaching Web Design
  66. Giving Talks as a Means to Travel
  67. The Danger in Being Brilliant at One Thing
  68. Taking Real Action — Make 5 Calls
  69. Practicing Foreign Pronunciation with Speech-to-Text
  70. Let's Talk About Trump's Words
  71. Uncommon UX insight
  72. Backpfeifengesicht
  73. Woody Guthrie and Old Man Trump; History Does Repeat Itself
  74. Fun with Battery-Powered C.H.I.P. Computers
  75. Why 'America First' and Trump Reminds Me of My Time in North Korea 🇺🇸🇰🇵
  76. Truly Helpful Tech
  77. How to Make Ginger Turmeric Tea
  78. Video From the 2016 Pyongyang Marathon
  79. The Guide to Dismantling a Dictator
  80. Stradivarius Made More Than Violins
  81. The Time I Won Tim Ferriss' Pants in a Haiku Contest
  82. How to Catch Typos on Your Blog
  83. Uncommon Souvenirs: My Red Ostrich Cigarettes from North Korea
  84. January 10th, 2017 — A Day of Memorable Headlines
  85. Just Jik It!
  86. An Offline Text Editor for Chrome in One-Line of Code
  87. The Joys of Not Being Overworked
  88. Obligation Chocolate, the Saddest of Chocolates
  89. Learning to Count by Hand in Beijing
  90. Managing Bookmarks with Pinboard and Jekyll

2016 17

  1. The best time to have jury duty
  2. Things happen for a reason
  3. Good advice 60 years in the making
  4. My ignite portland talk
  5. A tool for practicing ignite conference talks
  6. Ill be speaking at ignite 13 in pdx
  7. Worldwide wifi at the airports at least
  8. Kiku my submission for 10k apart 2016
  9. Blink and youll miss me in north korea
  10. Article on 52tld
  11. Nitti grotesk and a new color scheme
  12. Amazon versus walmart can someone tell me the difference
  13. Visiting dprk and a nutty idea
  14. Serbian hospitality is measured in calories
  15. Theres a salad bar in the newark international airport
  16. The future vs the faa no hoverboards
  17. New year new fonts new colors

2015 8

  1. Picnic eve 2427 my duo finally releases a proper recording
  2. The mystery of gates 1 through 4 at portlands union station
  3. A story a friend of mine wrote
  4. Ai machine learning and the 9 billion names of god
  5. Beard role models
  6. Using fracture for travel photos
  7. Adieu pdx carpet
  8. Five minutes

2014 205

  1. Musical reunions video proof
  2. Kim kardashian christmas cookies
  3. Music muscle memory and reunion
  4. When in doubt do yoga
  5. How to emulate liquids offset and limit filters in twig
  6. Little reasons i like jekyll
  7. Another switch from coffee to tea
  8. Ive switched my blog to jekyll
  9. Hedgehogs in serbia
  10. Dos goykos
  11. Sunday nights in serbia this is mr putins favorite song
  12. Smokva means fig
  13. Tavaszi szel vizet araszt subotica and a universe devoid of randomness
  14. The great market hall in budapest
  15. Arriving in budapest and staples of ottoman influence
  16. Swiss francs are not hot dogs
  17. Running the friends of mt tabor 10k maze torture chamber
  18. A reminder that we are all renters in the cloud
  19. Thoughts on using html5 app manifest to speed up stuff
  20. A cup of ☕️ with your urls
  21. I got two tickets to budapest
  22. Not so slow as i feel the laurelhurst dollar5 5k
  23. Building better websites 4 u with prince
  24. Weird jazz sounds better in 1000 humidity
  25. Things ive enjoyed the past couple weeks
  26. My etsy shop for curiosities
  27. Some definition of growing older
  28. Taking a break from blogging and state of the union
  29. Things i enjoyed last week july 13th ish
  30. A recipe for food
  31. The stark street viaduct
  32. Better than a to do list
  33. How i use digitalocean for work play
  34. Two simple things to encourage anonymity on the web
  35. I feel like an unlikely yogi
  36. The acropolis from uncommon angles
  37. Sunsets and super moons
  38. Things i enjoyed this week july 6th
  39. Serbian trumpet festivals
  40. Basketball games
  41. My carbon footprint after a year of travel and 25 flights
  42. Yoga practice fake buddha quotes emotional accuracy
  43. The kindness of strangers and their umbrellas
  44. My briggs myers type infp
  45. Things i enjoyed this week june 29th
  46. Casting your net far wide and shallow
  47. Flying out to detroit
  48. Blurry sunrises in brazil
  49. Adventures in making hummus
  50. Clever problem solver for hire
  51. Things i enjoyed this week june 22nd
  52. Measuring a moment
  53. The lengthy time involved and unsatisfying pay off with twitter performance art
  54. Making custom wedding cufflinks
  55. The most useful item any traveler can bring on an extended trip
  56. Writing everyday
  57. Dinners in nairobi
  58. Goes together like ice cream and asparagus
  59. Things i enjoyed this week june 15th
  60. Friday night 5ks glow sticks and 2nd place finishes
  61. Doing the opposite
  62. One month and a half
  63. Joan jett covers and other music in penang
  64. Lazy reading the world cup and buckminster fuller
  65. Things i enjoyed this week june 8th
  66. Observations on a moderately successful garage sale
  67. How to ruin a puzzle in chinese
  68. Figured out where all the bears were
  69. A healthy smoothie recipe
  70. My half baked kickstarter idea
  71. 32nd
  72. Things i enjoyed this week june 1st
  73. Challenging yourself an addendum of sorts
  74. How to make simple things hard and hard things harder still
  75. Meeting of the spirits is the greatest song ever
  76. Pizza frisbees the secret of life
  77. Every breath you take in thailand
  78. Serbian hoop dreams
  79. Running to welcome june
  80. Things i enjoyed this week may 24th
  81. The loprinzi special
  82. Dollar3252 for your thoughts; updates on my penny project
  83. My favorite green tea
  84. Music i enjoy marc ribot and ceramic dog
  85. Penny pitches; literal pennies for thoughts
  86. Breakfast in bulgaria
  87. Things i enjoyed this week may 17th
  88. The madness of the movie rental biz
  89. Moving at different paces
  90. Elks bears and strippers oh my
  91. Backpacking in olympic national park
  92. How to automate blog posts with ifttt
  93. My super simple email system
  94. Things i enjoyed this week may 10th
  95. On trains
  96. How to register an icelandic domain outside of iceland
  97. How to make zanzibar soup
  98. Left long enough
  99. My favorite oatmeal recipe
  100. Things i enjoyed this week may 3rd
  101. A silly kitchen hack for making spices
  102. A short but meaningful life
  103. Twig wordpress = timber
  104. A year ago today; iceland agates and other things on the shore
  105. Two new pages added the book of unsustainable ventures
  106. How many rings do shower curtains have
  107. On running resolutions buddhism and other things best done in groups
  108. Things i enjoyed this week april 26th
  109. Damian lillard clutchest blazer ever
  110. Bicycle oriented projects and my fridays
  111. Random travels the mercury house in zanzibar
  112. Crushing the ever loving shit out of an image with webp
  113. Removing the social sharing links from my blog
  114. Picture of a pig roast
  115. Things enjoyed week april 19th
  116. Go blazers
  117. Podcasts i enjoy
  118. Digital spring cleaning open sourcing my sweeties web app
  119. My grandfathers youtube video circa 1954
  120. Neanderthal quotients and my dna song
  121. A year measured in sounds part 1 noodles
  122. Things i enjoyed this week april 12th
  123. Soundtrack to the hong kong science museum
  124. Afro pop makes my heart sing
  125. Louvre context
  126. Life lessons from yoga
  127. Happy birthday to my mom
  128. Band photos for a pretend jazz duo
  129. Things i enjoyed this week april 5th
  130. Continuing to say yes
  131. When michael hurley sings i hear truth there
  132. International graffiti; a year measured in street art and messages
  133. Heartbleed openssl and upgrading apache and ubuntu all at once
  134. Georgi glouchkov bulgarian basketball sensation
  135. Monthly running slowly but surely
  136. Things i enjoyed this week march 30
  137. Natto beans and green tea
  138. Sento silence vending machines retro future promises tokyo
  139. How to make a 5 ton golden buddha
  140. Rite of spring in time for spring
  141. A rickety bridge and less ancient ruins in bulgaria
  142. The secret of life james taylor and landlords
  143. Things i enjoyed this week march 23
  144. Squirrel food running istanbul
  145. Green pants means its spring circa paris 2013
  146. Nearly full screen web pages for mobile safari
  147. Alas no nyc marathon for me this year unless
  148. One year ago today; pitaya e caqui giombo
  149. Belated birthday the beginning of spring my secret coffee place
  150. The surprising history behind the lion sleeps tonight
  151. Secret dinner gigs
  152. Found sounds from zanzibar
  153. So your country has blocked twitter
  154. My year condensed into 11 minutes
  155. Itunes style color schemes for wordpress
  156. International standards for rating bathroom cleanliness
  157. Saying yes
  158. Saturday rambling shamrock run tomorrow; my musical weekend continues
  159. Music i enjoy here in portland oregon
  160. Casapueblo uruguay carlos paez vilaro
  161. The sandboxed filesystem on ios drives me nuts; enjoy an analogy involving a weird ass butler
  162. Year exercise
  163. Carl sagan is my spirit animal
  164. Irrational choice go back school
  165. Thoughts on apartment hunting
  166. Metropolis and music
  167. A half ass primer to coffee roasting at home
  168. Sports talk
  169. Improving on well known word games
  170. Faster nodejs development with nodemon
  171. A month of blogging
  172. Retro travel journal cuzco peru; avalanches ruins and unexpected friendships
  173. I want a cork globe
  174. Ive got blisters on my fingers
  175. A year in haircuts and the worst haircut ever
  176. Why icelandic naming conventions make cemeteries confusing
  177. Retro travel journal skagastrond and sundays
  178. The wacky world of amazon product suggestions
  179. Chose swig jade templates nodeexpress project
  180. Arts letters numbers ethnomusicology liberal arts education
  181. Autocorrection vs typos
  182. Homemade cufflinks
  183. Another startup falls with editorially
  184. Retro travel journal blowing out the candles for agios ilias in athens
  185. My square business cards
  186. Love songs for valentines day
  187. Topical christmas cookies; a tradition
  188. Turning obstacles into opportunities
  189. Anatomy fixing hacked wordpress website
  190. A year measured in kitchen destruction
  191. To wordpress or not to wordpress
  192. Chromecast initial thoughts on my new toy
  193. Meaningful runs broken things and fanconi anemia this valentines day
  194. How to make a bicycle briefcase
  195. Advancements in hirsute basketball analysis
  196. Everpix and the ephemeral nature of startups
  197. On buying a suit
  198. Snowshoeing near snoqualmie pass
  199. Face to face to face
  200. Retro travel journal on empathy and language
  201. A year measured in buses
  202. How to make a web developer
  203. The joy and benefit of micro travel
  204. An app idea for grammar enthusiasts
  205. A belated new years resolution

2011 59

  1. Hawaii bound
  2. Where are all the interesting startups
  3. Nanowrimo 2011; my nemesis
  4. Searching by scent
  5. Github projects for july 2011
  6. Hirsute hijinks
  7. My handmade guitar picks
  8. Business advice from my pirate uncles
  9. More control over wp nav menu
  10. Cowboy up and pay the man
  11. Quasirandomness in nature
  12. Another pro air developer
  13. Fixing youtube video overlays in wordpress 32
  14. Github projects for june 2011
  15. Liquid templates for rss feeds in jekyll
  16. What is a sharpsichord
  17. Googles swiffy converts flash to html5
  18. Aliased fonts and programming
  19. Curious interview questions
  20. Performance is a feature
  21. A list apart web developer survey 2010
  22. Im james f bond
  23. Baking weblogs
  24. An unusual service glitch for pinboard
  25. Ny post blocking ipads part 1 million
  26. Name my band
  27. The best qandamp;a website ever
  28. The cost of this american life
  29. The only problem with hoverbikes is
  30. Steve jobs presents a new campus concept
  31. Neat trick with quickcursor ssh vim and textmate
  32. New web features in ios 5
  33. Base64 encoding images for css in textmate
  34. Nook touch compared to kindle 3
  35. Easter egg in the cr 48 chromebook
  36. Weird web schemas
  37. George plimptons video falconry is surprisingly real
  38. Rainbow panorama by olafur eliasson
  39. Guy retrieves stolen macbook thanks to dollar15 app and tumblr
  40. Google offers in my backyard
  41. The logic of punctuation
  42. Library letters
  43. Metronomics a metronome app for real musicians
  44. Gorgeous icelandic volcano photographs
  45. Borrowing elements of daring fireball
  46. Github projects for may 2011
  47. Fluid versioning chrome and the internet
  48. Annoying web design techniques
  49. Switched my blog over to jekyll
  50. Amusing measurements
  51. How to install the sqlite3 pdo driver on ubuntu
  52. Bhut jolokia is no jokeia
  53. Roasting coffee at home
  54. Mounting an ec2 instance in transmit
  55. How to use wi fi and geolocation services in the android simulator on a mac
  56. Macbook air review
  57. The history of muzak is actually interesting
  58. Running makes me whole
  59. My dusty old blog gets a facelift

2010 2

  1. Newsweek zombies
  2. Why you cant put a dry erase board in your shower

2009 2

  1. Vibram five fingers sprint review
  2. Konami js harness the power of the konami code