56,966 blogs · [ { "id": "01a0876e-b31d-705e-a2b2-9f13ba638330", "title": "Thinking About Probabilistic Filters", "url": "https://donatstudios.com/probabilistic-filters", "published_at": "2026-03-05T23:30:18+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13ba92ff4e", "title": "Fully Implementing PSR-16 Simple Cache is Less Than Simple", "url": "https://donatstudios.com/psr16-iterable-issue", "published_at": "2025-10-13T09:42:59+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13bb18ebce", "title": "Best Way to Run Unsigned Binaries in Terminal on macOS", "url": "https://donatstudios.com/mac-terminal-run-unsigned-binaries", "published_at": "2025-05-29T00:00:17+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13bbfb4f33", "title": "Go’s New Iterators Smell a Little Funny, but They’re Still Good", "url": "https://donatstudios.com/Go-Iterators-Smell-Funny", "published_at": "2024-09-05T23:28:12+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13bc04eceb", "title": "Three-Step Debugging: A Methodical Approach", "url": "https://donatstudios.com/debugging", "published_at": "2024-03-20T23:07:18+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13bc8bce32", "title": "Ideas", "url": "https://donatstudios.com/ideas", "published_at": "2024-02-26T18:43:34+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13bd1c1b57", "title": "Releasing my tools under the MIT License was probably a mistake", "url": "https://donatstudios.com/License-Grumbles", "published_at": "2023-08-11T05:15:30+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13bda53d62", "title": "Trouble with TypeScript Timeouts: How to Fix It", "url": "https://donatstudios.com/TypeScriptTimeoutTrouble", "published_at": "2022-12-28T20:46:19+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13be35e59e", "title": "Read Browser File Inputs with Go WebAssembly", "url": "https://donatstudios.com/Read-User-Files-With-Go-WASM", "published_at": "2022-03-21T03:11:42+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13bef0dc44", "title": "git gc - You're not going to need it", "url": "https://donatstudios.com/yagni-git-gc", "published_at": "2021-11-13T10:43:37+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13bf598de8", "title": "Go Modules have a v2+ Problem", "url": "https://donatstudios.com/Go-v2-Modules", "published_at": "2020-09-10T06:11:12+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13bfffd6d4", "title": "Text to \"Go String\" Tool", "url": "https://donatstudios.com/gostring", "published_at": "2020-08-08T06:14:19+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c057010e", "title": "Use a GIF as a Zoom Virtual Background", "url": "https://donatstudios.com/GifAsZoomBackground", "published_at": "2020-05-12T21:23:38+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c09f7578", "title": "Go Binary Sizes Have Been Pretty Stable", "url": "https://donatstudios.com/Golang-Binary-Sizes-Part-2", "published_at": "2019-07-18T00:55:21+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c16b5476", "title": "Using mkcert to Set Up Local SSL on macOS's Built in Apache", "url": "https://donatstudios.com/Local-Certificate-On-macOS-Apache", "published_at": "2019-01-30T00:16:47+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c2043867", "title": "Fix Missing Headers Compiling on macOS Mojave", "url": "https://donatstudios.com/MojaveMissingHeaderFiles", "published_at": "2018-10-02T21:22:40+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c26d13de", "title": "Set up a Self Signed Certificate on macOS's Built in Apache", "url": "https://donatstudios.com/Self-Signed-Certificate-On-macOS-Apache", "published_at": "2018-05-16T02:42:51+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c27c8356", "title": "GitHub Shouldn't Allow Username Reuse", "url": "https://donatstudios.com/GithubsTotalSecurityFacepalm", "published_at": "2018-02-10T03:19:29+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c27feb5d", "title": "Static Analysis: It's Simply Critical", "url": "https://donatstudios.com/StaticAnalysis", "published_at": "2017-10-21T07:59:24+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c31edb2a", "title": "Falsehoods Programmers Believe About CSVs", "url": "https://donatstudios.com/Falsehoods-Programmers-Believe-About-CSVs", "published_at": "2016-12-28T01:41:04+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c3d76178", "title": "CSV: An Encoding Nightmare", "url": "https://donatstudios.com/CSV-An-Encoding-Nightmare", "published_at": "2016-06-21T00:17:57+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c4000cb3", "title": "I Am Done With the Mac App Store", "url": "https://donatstudios.com/IAmDoneWithTheAppStore", "published_at": "2016-03-04T05:44:46+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c4719cc9", "title": "Fix Played Tracks with Empty Playcount in iTunes", "url": "https://donatstudios.com/iTunesPlaycountZeroFix", "published_at": "2015-11-12T03:50:58+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c4ff8d30", "title": "Numberphilia", "url": "https://donatstudios.com/Numberphilia", "published_at": "2015-06-02T03:13:00+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c53161d1", "title": "Similar CSS Color Finder", "url": "https://donatstudios.com/CSS-Alike-Color-Finder", "published_at": "2015-01-06T09:41:33+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c60615e0", "title": "Install PHP's Built In Extensions in macOS", "url": "https://donatstudios.com/Install-PHP-Mcrypt-Extension-in-OS-X", "published_at": "2014-12-23T23:40:16+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c61df2bc", "title": "Configure Apache for PHP in OS X / macOS", "url": "https://donatstudios.com/PHP-in-OS-X-Yosemite", "published_at": "2014-10-17T07:27:59+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c6602f64", "title": "Require a Remote Zip File with Composer", "url": "https://donatstudios.com/Require-a-Remote-Zip-File-with-Composer", "published_at": "2014-10-11T01:31:15+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c6b2539b", "title": "CSV To Markdown Table Generator", "url": "https://donatstudios.com/CsvToMarkdownTable", "published_at": "2014-09-15T02:37:12+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c79573ae", "title": "Bookmarklets", "url": "https://donatstudios.com/Bookmarklets", "published_at": "2014-09-11T04:10:05+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c7cd0e0f", "title": "All Glory to __invoke", "url": "https://donatstudios.com/All-Glory-to-__invoke", "published_at": "2014-05-23T01:29:47+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c8adb9f0", "title": "PHP Has Grown Up, You Should Too", "url": "https://donatstudios.com/PHP-Has-Grown-Up", "published_at": "2014-04-15T01:35:01+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13c97f542d", "title": "Using Beyond Compare 4 Mac Beta with Git", "url": "https://donatstudios.com/Beyond-Compare-Mac-Beta-with-Git-in-OSX", "published_at": "2013-12-26T23:29:40+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13ca3275f6", "title": "Go Binary Sizes Are Growing out of Control", "url": "https://donatstudios.com/Golang-Binary-Sizes", "published_at": "2013-12-02T23:25:43+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13ca55101d", "title": "Load a Github Gist with Composer", "url": "https://donatstudios.com/Load-Gist-With-Composer", "published_at": "2013-11-07T02:36:45+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13ca8da3f5", "title": "Installing the PHP \"memcached\" Extension", "url": "https://donatstudios.com/OS-X-Mavericks-Memcached-PHP-Extension-Installation", "published_at": "2013-10-23T10:42:40+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13cb4c7f18", "title": "How to: Disable macOS System Integrity Protection", "url": "https://donatstudios.com/Disable-macOS-System-Integrity-Protection", "published_at": "2013-10-23T10:42:40+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13cc234626", "title": "CoffeeScript's Scoping is Madness", "url": "https://donatstudios.com/CoffeeScript-Madness", "published_at": "2013-07-25T22:19:44+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13cc3cdb7b", "title": "The Joys of UNIX Keyboards", "url": "https://donatstudios.com/UNIX-Keyboards", "published_at": "2013-06-18T23:10:51+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13ccae2585", "title": "Use Beyond Compare as a Git Diff/Merge Tool in OS X", "url": "https://donatstudios.com/Beyond-Compare-with-Git-in-OSX", "published_at": "2012-11-14T00:07:03+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13cd32cb64", "title": "Static::? More like Lies::", "url": "https://donatstudios.com/PHP-Static-Nonsense", "published_at": "2012-10-22T23:28:30+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13cd38e16e", "title": "Late Definition of PHP Class Members", "url": "https://donatstudios.com/Late-Definition-of-PHP-Class-Members", "published_at": "2012-08-21T04:29:13+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13cdf708fb", "title": "Web Developer Resumé/Interview Advice", "url": "https://donatstudios.com/Developer-Resum%C3%A9-Interview-Advice", "published_at": "2012-07-20T07:20:37+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13ce03f3f0", "title": "Pixel Circle / Oval Generator", "url": "https://donatstudios.com/PixelCircleGenerator", "published_at": "2012-05-18T09:09:59+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13cec7664d", "title": "Simple Single Pass Doubly Linked Flat Tree Building Algorithm", "url": "https://donatstudios.com/Simple-Single-Pass-Doubly-Linked-Flat-Tree-Building-Algorithm", "published_at": "2012-01-07T03:55:47+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13cfa93bc0", "title": "Simple PHP ASCII Art Generator", "url": "https://donatstudios.com/Damn-Simple-PHP-ASCII-Art-Generator", "published_at": "2011-11-10T19:18:43+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d00bc7ee", "title": "Photo Booth Plist Rebuild/Repair Script", "url": "https://donatstudios.com/Lion-Photobooth-Repair", "published_at": "2011-07-27T10:13:20+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d0187ade", "title": "Nusphere PhpED Dark Theme", "url": "https://donatstudios.com/PhpED-Dark-Theme", "published_at": "2011-07-08T03:34:57+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d0c6d207", "title": "Convert MPO to Anaglyph or Stereo Images", "url": "https://donatstudios.com/MPO-to-JPEG-Stereo", "published_at": "2011-04-14T04:41:33+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d105ac7f", "title": "Simple WPF VB.Net JumpList Example", "url": "https://donatstudios.com/WPF-VBNet-JumpList-Example", "published_at": "2011-04-07T10:00:31+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d18fe8a2", "title": "PHP User Agent Parser", "url": "https://donatstudios.com/PHP-Parser-HTTP_USER_AGENT", "published_at": "2011-03-30T03:51:09+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d21847fd", "title": "Batch RewriteRule Generator", "url": "https://donatstudios.com/RewriteRule_Generator", "published_at": "2011-03-01T07:58:44+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d22a66bb", "title": "Opinion: Google Killed the Internet", "url": "https://donatstudios.com/Google_Killed_The_Internet", "published_at": "2010-12-20T10:35:10+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d2f76b65", "title": "Grid Style Sheets vs. The Semantic Web", "url": "https://donatstudios.com/Grid_CSS_Versus_The_Web", "published_at": "2010-10-20T04:43:21+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d384aa18", "title": "Statistics Based Lorem Ipsum Generator", "url": "https://donatstudios.com/lorem_ipsum_generator", "published_at": "2010-09-23T02:02:25+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d3a9eeca", "title": "Fast Patches with Git", "url": "https://donatstudios.com/FastPatch", "published_at": "2010-08-28T02:59:26+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d3f615e2", "title": "A Balanced Look at GZIP and the User Experience", "url": "https://donatstudios.com/Balanced_Take_on_Gzip", "published_at": "2010-08-17T05:30:31+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d44b80b6", "title": "SimpleCalendar", "url": "https://donatstudios.com/SimpleCalendar", "published_at": "2010-07-01T06:17:11+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d50b7d04", "title": "JDZoom", "url": "https://donatstudios.com/JDZoom", "published_at": "2010-06-08T08:18:35+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d598dcc8", "title": "XML Excel Exporter", "url": "https://donatstudios.com/XML_Excel_Exporter", "published_at": "2010-06-08T03:54:58+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d5ab4a52", "title": "There Isn't an App for… - Part 1: PhpED", "url": "https://donatstudios.com/No_App_P1_PhpED", "published_at": "2010-01-08T02:53:36+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d5c09cd3", "title": "CorpusPHP", "url": "https://donatstudios.com/CorpusPHP", "published_at": "2009-12-03T03:21:04+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d637508d", "title": "Donat Studios Officially Launches", "url": "https://donatstudios.com/Donat_Studios_Launches", "published_at": "2009-10-27T07:45:28+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d6aa0ac1", "title": "Blog", "url": "https://donatstudios.com/Blog", "published_at": "2009-10-13T03:36:31+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d7084103", "title": "Code", "url": "https://donatstudios.com/Projects", "published_at": "2009-10-13T03:36:31+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d77f9a05", "title": "Contact", "url": "https://donatstudios.com/?id=5", "published_at": "2009-10-13T03:36:31+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d84f4757", "title": "JSONP: Take It With a Grain of Salt", "url": "https://donatstudios.com/JSONP", "published_at": "2009-10-13T03:36:31+00:00" }, { "id": "01a0876e-b31d-705e-a2b2-9f13d86d7106", "title": "Tools", "url": "https://donatstudios.com/Tools", "published_at": "2009-10-13T03:36:31+00:00" } ] posts Claim your blog
Back to donatj
Blog · corpus.blog/blogs/donatstudios.com/posts

donatj

donatstudios.com

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014

2013

2012

2011

2010

2009

13 Oct 2009
13 Oct 2009