56,966 blogs · [ { "id": "01a0821c-eedf-73c3-abe9-cbf89544c1a3", "title": "TIL: Typed do in Swift", "url": "https://juripakaste.fi/swift-do-typed/", "published_at": "2026-08-15T11:30:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf895e62060", "title": "Updating multiple rows with SQL and avoiding collisions", "url": "https://juripakaste.fi/sql-update-multiple-rows/", "published_at": "2025-04-30T14:50:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf89656726a", "title": "New Swift Package: tui-fuzzy-finder", "url": "https://juripakaste.fi/fuzzy-tui/", "published_at": "2024-12-23T15:25:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf896ad68c0", "title": "New Swift Package: provision-info", "url": "https://juripakaste.fi/provision-info/", "published_at": "2024-12-23T15:20:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf896e5a88d", "title": "DotEnvy", "url": "https://juripakaste.fi/dotenvy/", "published_at": "2024-05-18T17:00:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8970c7c84", "title": "Git history search with fzf", "url": "https://juripakaste.fi/git-history-search-fzf/", "published_at": "2024-05-18T16:00:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf897cc0b52", "title": "Splitting a Xcode project with SPM", "url": "https://juripakaste.fi/split-swift-project-with-spm/", "published_at": "2023-08-12T05:30:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf898141658", "title": "A fast timestamp parser in Swift", "url": "https://juripakaste.fi/parse3339/", "published_at": "2023-07-10T06:40:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8981b4e74", "title": "Git worktrees helper", "url": "https://juripakaste.fi/worktrees/", "published_at": "2022-11-01T17:00:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf898dd14a7", "title": "Better diff hunk headers with Swift", "url": "https://juripakaste.fi/swift-git-attributes/", "published_at": "2022-10-18T19:00:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf898f48fcb", "title": "Creating icons in Xcode playgrounds", "url": "https://juripakaste.fi/xcode-playground-drawing/", "published_at": "2022-05-15T15:00:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf899399b50", "title": "Date component ranges in Swift", "url": "https://juripakaste.fi/swift-date-ranges/", "published_at": "2022-01-16T17:12:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf899de45e2", "title": "Async Swift and ArgumentParser", "url": "https://juripakaste.fi/async-argumentparser/", "published_at": "2022-01-09T10:00:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf89a1d3d66", "title": "Converting between NSBezierPath and CGPath", "url": "https://juripakaste.fi/nzbezierpath-cgpath/", "published_at": "2021-07-14T12:00:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf89a7ff01b", "title": "Swift networking with AsyncHTTPClient", "url": "https://juripakaste.fi/swift-asynchttpclient/", "published_at": "2021-03-30T18:12:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf89b27de8b", "title": "Database connections in Vapor 4", "url": "https://juripakaste.fi/db-in-vapor4/", "published_at": "2021-02-07T12:00:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf89b95f0ab", "title": "Alfred Script Filter with find and jq", "url": "https://juripakaste.fi/jq-alfred-script-filter/", "published_at": "2021-01-30T12:00:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf89ba08f44", "title": "Diff two modified JSON files in fish", "url": "https://juripakaste.fi/diff-two-modified-jsons-in-fish/", "published_at": "2020-08-24T09:00:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf89be7e29a", "title": "Copy value with jq", "url": "https://juripakaste.fi/jq-copy-value/", "published_at": "2020-08-23T12:00:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf89c6cd934", "title": "Parsing and evaluating mathematical expressions in Swift / Part 3: Interpreter", "url": "https://juripakaste.fi/expressions-3/", "published_at": "2020-04-06T15:20:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf89c9816ec", "title": "Parsing and evaluating mathematical expressions in Swift / Part 2: Building a syntax tree", "url": "https://juripakaste.fi/expressions-2/", "published_at": "2020-04-06T15:19:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf89d2fe4a8", "title": "Parsing and evaluating mathematical expressions in Swift / Part 1: Tokenization", "url": "https://juripakaste.fi/expressions-1/", "published_at": "2020-04-06T15:18:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf89dbf9dfb", "title": "Looser dependencies with Swift", "url": "https://juripakaste.fi/dependency-protocols-structs/", "published_at": "2019-07-24T09:51:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf89e3a4799", "title": "GraphQL with Swift", "url": "https://juripakaste.fi/graphqler/", "published_at": "2019-06-02T18:44:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf89e89a923", "title": "annotate-git-commit", "url": "https://juripakaste.fi/annotate-git-commit/", "published_at": "2018-11-16T18:29:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf89f0597cd", "title": "TODO.swift", "url": "https://juripakaste.fi/todo-swift/", "published_at": "2018-09-01T10:35:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf89f647952", "title": "Converting UNIX dates to a readable format on Mac", "url": "https://juripakaste.fi/convert-unix-date/", "published_at": "2018-02-15T19:03:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf89f9d3e34", "title": "Netstrings for Swift", "url": "https://juripakaste.fi/swift-netstring/", "published_at": "2017-05-25T08:30:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8a0539ea1", "title": "Flue: Fluent API for value extraction and conversion for Swift", "url": "https://juripakaste.fi/flue/", "published_at": "2016-10-02T17:35:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8a1336a01", "title": "Talking to servers: WebSockets", "url": "https://juripakaste.fi/ios-websockets-clojure/", "published_at": "2013-06-06T18:37:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8a224fade", "title": "NSStringinfying enums from AppCode", "url": "https://juripakaste.fi/nsstringfromenum-appcode/", "published_at": "2013-04-27T19:03:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8a2409769", "title": "NSStringinfying enums", "url": "https://juripakaste.fi/nsstringify/", "published_at": "2012-12-29T10:18:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8a3014fda", "title": "ZeroMQ, iOS and Python", "url": "https://juripakaste.fi/zeromq-ios-python/", "published_at": "2012-05-01T14:35:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8a3817e84", "title": "Unit testing Cocoa code with MacRuby", "url": "https://juripakaste.fi/rcrunner/", "published_at": "2010-11-30T20:45:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8a3953a48", "title": "Using Firefox as Flash playing Safari fallback", "url": "https://juripakaste.fi/safari-flash-firefox-fallback/", "published_at": "2010-11-10T18:11:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8a413eaaf", "title": "xibgraph: Interface Builder overviews", "url": "https://juripakaste.fi/xibgraph/", "published_at": "2010-06-19T19:17:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8a4d53010", "title": "hg-status-sections", "url": "https://juripakaste.fi/hg-status-sections/", "published_at": "2010-06-04T20:14:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8a5a52ec3", "title": "A better @synthesize", "url": "https://juripakaste.fi/better-synthesize/", "published_at": "2010-05-22T14:03:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8a5cb1b9c", "title": "Block indentation in Emacs", "url": "https://juripakaste.fi/emacs-block-indent/", "published_at": "2010-03-08T19:28:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8a682bed1", "title": "Exporting geolocation data from iPhoto with AppleScript", "url": "https://juripakaste.fi/iphoto-geodata-applescript/", "published_at": "2009-07-29T22:04:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8a68faba7", "title": "Announcing Chipmunk Backup", "url": "https://juripakaste.fi/chipmunk-backup/", "published_at": "2009-02-27T18:31:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8a75af5fc", "title": "Emacs tips: Navigate CamelCase words", "url": "https://juripakaste.fi/emacs-tip/", "published_at": "2009-01-06T16:26:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8a8221460", "title": "Inline admin forms with admin site links in Django", "url": "https://juripakaste.fi/django-admin-inline-link/", "published_at": "2008-12-23T16:52:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8a91abe77", "title": "iPhone shuffle", "url": "https://juripakaste.fi/iphone-shuffle/", "published_at": "2008-11-21T20:31:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8a99a9bb3", "title": "Crashes with NSURLConnection", "url": "https://juripakaste.fi/nsurlconnection-start-crash/", "published_at": "2008-10-04T17:30:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8a9fd48c3", "title": "Various Python related things", "url": "https://juripakaste.fi/di-python-stuff/", "published_at": "2008-09-18T18:14:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8aa83951b", "title": "Flow 08: Saturday and Sunday", "url": "https://juripakaste.fi/flow08-saturday-sunday/", "published_at": "2008-08-18T23:04:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8ab7f8b36", "title": "Flow08, Day 1", "url": "https://juripakaste.fi/flow08-friday/", "published_at": "2008-08-16T11:45:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8ab8543b2", "title": "Using custom widgets with Django's newforms-admin", "url": "https://juripakaste.fi/custom-django-newforms-admin-widgets/", "published_at": "2008-07-27T17:22:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8ac4540bf", "title": "A moment of C++ hate", "url": "https://juripakaste.fi/a-moment-of-cplusplus-hate/", "published_at": "2008-07-25T17:17:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8ac5bb916", "title": "JUGC 0.2 with Python support", "url": "https://juripakaste.fi/jugc-0-2/", "published_at": "2008-07-18T18:34:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8acda9910", "title": "pgrok", "url": "https://juripakaste.fi/pgrok/", "published_at": "2008-05-04T14:40:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8ad8a716d", "title": "Software Engineering Radio", "url": "https://juripakaste.fi/seradio/", "published_at": "2008-04-17T09:33:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8adeb5e71", "title": "AudioFormat 0.6", "url": "https://juripakaste.fi/audioformat-0-6/", "published_at": "2008-01-13T14:36:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8ae91e1c4", "title": "Dependency injection: I'm not going back", "url": "https://juripakaste.fi/dependency-injection/", "published_at": "2007-12-11T19:38:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8af442bdd", "title": "Using SSH from the Gnome menus", "url": "https://juripakaste.fi/ssh-gnome-menu/", "published_at": "2007-12-08T09:55:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8afe9f120", "title": "Shuffling the stack: first faltering steps on Factor", "url": "https://juripakaste.fi/first-factor/", "published_at": "2007-12-03T18:33:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8afefcd0a", "title": "This is how all software should be", "url": "https://juripakaste.fi/couchdb-relax/", "published_at": "2007-11-08T18:09:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b04f3dee", "title": "Resin: Javascript in JSPs?", "url": "https://juripakaste.fi/javascript-jsp/", "published_at": "2007-10-07T13:05:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b0fe0fa9", "title": "Cirque du Soleil's Delirium: meh", "url": "https://juripakaste.fi/cds-delirium-meh/", "published_at": "2007-09-23T10:12:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b16f82f4", "title": "Glade-3 toolbars", "url": "https://juripakaste.fi/glade3-toolbars/", "published_at": "2007-08-27T19:21:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b19ef6c0", "title": "Python-style enumerate for Nemerle", "url": "https://juripakaste.fi/nemerle-enumerate/", "published_at": "2007-08-25T12:50:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b209c2c7", "title": "Flow 07: Sunday and Regina & Husky Rescue at the Huvila Festival Tent", "url": "https://juripakaste.fi/flow07-sunday-regina-husky/", "published_at": "2007-08-21T18:45:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b2bd9d67", "title": "Flow 07: Friday done", "url": "https://juripakaste.fi/flow07-friday/", "published_at": "2007-08-18T12:28:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b36f10aa", "title": "Slightly disappointed in Nemerle", "url": "https://juripakaste.fi/disappointed-in-nemerle/", "published_at": "2007-08-12T16:16:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b454059d", "title": "Making Emacs understand ncc errors", "url": "https://juripakaste.fi/ncc-emacs-errors/", "published_at": "2007-05-17T14:27:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b52297fd", "title": "C# export for Gaphor", "url": "https://juripakaste.fi/gaphor-csharp/", "published_at": "2007-04-28T10:47:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b55b4c7d", "title": "Python, Queue, Pygame and the GLib mainloop", "url": "https://juripakaste.fi/python-queue-mainloop/", "published_at": "2007-04-27T19:26:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b57fbf9e", "title": "One of Those Things You Don't Know If You Should Post in Your Blog Or on TheDailyWTF", "url": "https://juripakaste.fi/rails-json-wtf/", "published_at": "2007-04-14T13:43:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b5e89d2c", "title": "AudioFormat 0.4 released", "url": "https://juripakaste.fi/audioformat-0-4/", "published_at": "2007-03-09T23:44:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b60e4367", "title": "Unit conversion in Java", "url": "https://juripakaste.fi/jugc/", "published_at": "2006-12-26T12:49:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b62efb6d", "title": "Stamp out the ants", "url": "https://juripakaste.fi/stamp-out-the-ants/", "published_at": "2006-12-23T14:22:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b634fd9f", "title": "Bad excuses overheard while waiting for a burger in the night while it was raining", "url": "https://juripakaste.fi/bad-excuses/", "published_at": "2006-12-02T10:18:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b6bd7884", "title": "Writing to envy", "url": "https://juripakaste.fi/writing-to-envy/", "published_at": "2006-11-17T20:12:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b72415f3", "title": "Die, Ur-Quan scum", "url": "https://juripakaste.fi/star-control-2/", "published_at": "2006-11-05T02:01:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b7256cdb", "title": "Caboodle 0.5", "url": "https://juripakaste.fi/caboodle-05/", "published_at": "2006-11-04T23:00:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b78b95c2", "title": "Edgy's install a bit too edgy", "url": "https://juripakaste.fi/edgy-install/", "published_at": "2006-10-28T18:23:00+00:00" }, { "id": "01a0821c-eedf-73c3-abe9-cbf8b8838966", "title": "Noise", "url": "https://juripakaste.fi/noise/", "published_at": "2006-10-13T19:48:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d105873ef", "title": "Audio format conversion", "url": "https://juripakaste.fi/audioformat/", "published_at": "2006-09-27T22:18:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d109248ba", "title": "When everything else fails, try Emacs", "url": "https://juripakaste.fi/when-everything-else-fails-try-emacs/", "published_at": "2006-08-18T18:21:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d11727a0b", "title": "New job", "url": "https://juripakaste.fi/new-job-profium/", "published_at": "2006-05-26T17:53:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d11cd77a1", "title": "Outcry: streaming again", "url": "https://juripakaste.fi/outcry/", "published_at": "2006-04-24T22:35:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d12bd844c", "title": "Tag, Milou, Tag", "url": "https://juripakaste.fi/tomboy-leaftag/", "published_at": "2006-03-15T17:23:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d134caaed", "title": "Thank you", "url": "https://juripakaste.fi/new-copyright-law-passed/", "published_at": "2005-10-06T21:15:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d142b40d3", "title": "Caboodle 0.3 and 0.4", "url": "https://juripakaste.fi/caboodle-04/", "published_at": "2005-08-12T13:08:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d14431825", "title": "Caboodle 0.2", "url": "https://juripakaste.fi/caboodle-02/", "published_at": "2005-08-08T13:45:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d14aad10b", "title": "Caboodle", "url": "https://juripakaste.fi/caboodle/", "published_at": "2005-08-06T19:30:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d1549f91e", "title": "My First Gtk+ Patch", "url": "https://juripakaste.fi/my-first-gtk-patch/", "published_at": "2005-07-07T22:12:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d1599eefe", "title": "River of Gods, The Family Trade", "url": "https://juripakaste.fi/river-of-gods-and-family-trade/", "published_at": "2005-06-18T11:41:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d16617ef2", "title": "Notes from a honeymoon to Florence and Milan.", "url": "https://juripakaste.fi/notes-from-the-honeymoon/", "published_at": "2005-06-04T12:33:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d17019a82", "title": "This language thing", "url": "https://juripakaste.fi/gnome-languages/", "published_at": "2005-05-12T19:20:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d176f7e9e", "title": "Introducing Lukutoukka", "url": "https://juripakaste.fi/introducing-lukutoukka/", "published_at": "2005-05-07T17:18:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d177e6438", "title": "Two literary links", "url": "https://juripakaste.fi/two-literary-links/", "published_at": "2005-04-30T14:48:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d17f08bbc", "title": "Ctrl-Alt-Backspace aargh", "url": "https://juripakaste.fi/ctrl-alt-backspace/", "published_at": "2005-04-29T22:28:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d18a5637a", "title": "Married and stuff", "url": "https://juripakaste.fi/married/", "published_at": "2005-03-05T11:28:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d19921499", "title": "Python is not Java", "url": "https://juripakaste.fi/python-is-not-java/", "published_at": "2005-01-30T12:50:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d1a17a170", "title": "Sweet screenshots and various other things", "url": "https://juripakaste.fi/launch-screenshots-and-stuff/", "published_at": "2005-01-11T22:38:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d1af2ae84", "title": "Moving, part two", "url": "https://juripakaste.fi/moving2/", "published_at": "2004-10-30T12:06:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d1bde9bde", "title": "Geeks and cameras", "url": "https://juripakaste.fi/geeks-and-cameras/", "published_at": "2004-09-18T11:52:00+00:00" }, { "id": "01a0821c-eee0-71cb-85df-a76d1bf1ce2a", "title": "Prague", "url": "https://juripakaste.fi/prague/", "published_at": "2004-09-06T21:00:00+00:00" } ] posts Claim your blog
Back to Juri Pakaste
Blog · corpus.blog/blogs/juripakaste.fi/posts

Juri Pakaste

juripakaste.fi

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2013

2012

2010

2009

2008

2007

2006

2005

2004