[{"slug":"leetcode/1071-greatest-common-divisor-of-strings","title":"1071. Greatest Common Divisor of Strings","date":"2025-09-12","tags":["cs","leetcode"],"backlinks":0},{"slug":"leetcode/11-container-with-most-water","title":"11. Container With Most Water","date":"2025-09-21","tags":["cs","leetcode"],"backlinks":0},{"slug":"leetcode/1456-maximum-number-of-vowels-in-a-substring-of-given-length","title":"1456. Maximum Number of Vowels in a Substring of Given Length","date":"2025-10-07","tags":["cs","leetcode"],"backlinks":0},{"slug":"leetcode/151-reverse-words-in-a-string","title":"151. Reverse Words in a String","date":"2025-09-13","tags":["cs","leetcode"],"backlinks":0},{"slug":"leetcode/1679-max-number-of-k-sum-pairs","title":"1679. Max Number of K-Sum Pairs","date":"2025-10-06","tags":["cs","leetcode"],"backlinks":0},{"slug":"leetcode/1768-merge-strings-alternately","title":"1768. Merge Strings Alternately","date":"2025-09-12","tags":["cs","leetcode"],"backlinks":0},{"slug":"leetcode/238-product-of-array-except-self","title":"238. Product of Array Except Self","date":"2025-09-13","tags":["cs","leetcode"],"backlinks":0},{"slug":"leetcode/283-move-zeroes","title":"283. Move Zeroes","date":"2025-09-18","tags":["cs","leetcode"],"backlinks":0},{"slug":"leetcode/334-increasing-triplet-subsequence","title":"334. Increasing Triplet Subsequence","date":"2025-09-16","tags":["cs","leetcode"],"backlinks":0},{"slug":"leetcode/1431-kids-with-the-greatest-number-of-candies","title":"1431. Kids With the Greatest Number of Candies","date":"2025-09-12","tags":["cs","leetcode"],"backlinks":0},{"slug":"leetcode/345-reverse-vowels-of-a-string","title":"345. Reverse Vowels of a String","date":"2025-09-13","tags":["cs","leetcode"],"backlinks":0},{"slug":"leetcode/392-is-subsequence","title":"392. Is Subsequence","date":"2025-09-18","tags":["cs","leetcode"],"backlinks":0},{"slug":"leetcode/443-string-compression","title":"443. String Compression","date":"2025-09-17","tags":["cs","leetcode"],"backlinks":0},{"slug":"leetcode/605-can-place-flowers","title":"605. Can Place Flowers","date":"2025-09-12","tags":["cs","leetcode"],"backlinks":0},{"slug":"leetcode/643-maximum-average-subarray-i","title":"643. Maximum Average Subarray I","date":"2025-10-07","tags":["cs","leetcode"],"backlinks":1},{"slug":"quotes/criticism-fosters-resentment-without-correcting-the-situation","title":"Criticism fosters resentment without correcting the situation","date":"2025-06-16","tags":["books","quote"],"backlinks":0},{"slug":"quotes/criticism-is-futile","title":"Criticism is futile","date":"2025-06-16","tags":["books","quote"],"backlinks":0},{"slug":"quotes/hearty-in-my-approbation-and-lavish-in-my-praise","title":"Hearty in my approbation and lavish in my praise","date":"2025-06-16","tags":["books","quote"],"backlinks":0},{"slug":"quotes/men-who-were-cleverer-than-himself","title":"Men who were cleverer than himself","date":"2025-06-16","tags":["books","quote"],"backlinks":0},{"slug":"quotes/its-a-tradeoff-as-is-with-everything","title":"It's a tradeoff. As is with everything.","date":"2025-09-12","tags":["quote"],"backlinks":1},{"slug":"quotes/on-the-future-definition-of-smart","title":"On the future definition of smart","date":"2026-02-06","tags":["quote"],"backlinks":0},{"slug":"quotes/on-the-value-of-intuition","title":"On the value of intuition","date":"2026-02-06","tags":["quote"],"backlinks":0},{"slug":"quotes/on-traditional-intelligence","title":"On traditional intelligence","date":"2026-02-06","tags":["quote"],"backlinks":0},{"slug":"quotes/other-persons-pov","title":"Other person's POV","date":"2025-06-16","tags":["books","quote"],"backlinks":0},{"slug":"general/actual-latency","title":"Actual Latency","date":"2025-08-21","tags":["cs","llm","question"],"backlinks":1},{"slug":"general/adding-group-id-to-user-token","title":"Adding group id to user token","date":"2026-01-13","tags":["cs","keycloak"],"backlinks":0},{"slug":"general/cloudflare-tunnel-browser-based-ssh-connection-refused-error","title":"Cloudflare Tunnel browser based ssh \"Connection Refused\" Error","date":"2025-10-20","tags":["cs","bugfix","kubernetes","cloudflare"],"backlinks":0},{"slug":"general/code-points","title":"Code Points","date":"2025-06-16","tags":["cs"],"backlinks":0},{"slug":"general/cold-start","title":"Cold Start","date":"2025-08-21","tags":["cs","llm","question"],"backlinks":1},{"slug":"general/compilers-vs-interpreters","title":"Compilers vs Interpreters","date":"2025-06-16","tags":["cs","crafting-interpreters"],"backlinks":1},{"slug":"general/context-free-grammars","title":"Context-Free Grammars","date":"2025-06-16","tags":["cs","crafting-interpreters"],"backlinks":0},{"slug":"general/crafting-interpreters","title":"Crafting Interpreters","date":"2025-06-16","tags":["crafting-interpreters","cs"],"backlinks":1},{"slug":"general/configuring-cloudflare-dns-records","title":"Configuring Cloudflare DNS Records","date":"2026-03-30","tags":["cs","llm"],"backlinks":1},{"slug":"general/duck-typing","title":"Duck Typing","date":"2026-01-21","tags":["cs"],"backlinks":1},{"slug":"general/endianness","title":"Endianness","date":"2025-06-16","tags":["cs"],"backlinks":1},{"slug":"general/fruits-vs-vegetables","title":"Fruits vs Vegetables","date":"2025-06-16","tags":[],"backlinks":1},{"slug":"general/git-does-not-track-contents-of-a-symlinked-directory","title":"Git does not track contents of a symlinked directory","date":"2026-01-21","tags":["cs","git"],"backlinks":1},{"slug":"general/expression-problem","title":"Expression problem","date":"2025-06-24","tags":["cs","crafting-interpreters"],"backlinks":0},{"slug":"general/images-in-cloudflare","title":"Images in Cloudflare","date":"2026-01-08","tags":["cs","cloudflare"],"backlinks":0},{"slug":"general/infinispan","title":"Infinispan","date":"2026-02-04","tags":["cs"],"backlinks":1},{"slug":"general/jwt","title":"JWT","date":"2026-02-04","tags":["api","auth"],"backlinks":1},{"slug":"general/javascripts-strlength-does-not-equal-number-of-characters-in-a-string","title":"Javascript's str.length does not equal number of characters in a string","date":"2025-06-16","tags":["cs","js"],"backlinks":0},{"slug":"general/how-our-new-email-routing-works","title":"How Our New Email Routing Works","date":"2026-03-30","tags":["cs","llm"],"backlinks":1},{"slug":"general/jenson-hwang-on-the-definition-of-intelligence","title":"Jenson Hwang on the definition of intelligence","date":"2026-02-06","tags":["video"],"backlinks":3},{"slug":"general/jhkndev-feature-list","title":"Jhkn.dev feature list","date":"2026-01-06","tags":["cs","blog","feature"],"backlinks":0},{"slug":"general/grammar-of--lox","title":"Grammar of  Lox","date":"2025-06-16","tags":["cs","crafting-interpreters"],"backlinks":0},{"slug":"general/grammar-for-breakfast-menus","title":"Grammar for breakfast menus","date":"2025-06-16","tags":["cs","crafting-interpreters"],"backlinks":0},{"slug":"general/keycloak-user-session","title":"Keycloak User session","date":"2026-02-04","tags":["cs","keycloak","api"],"backlinks":1},{"slug":"general/kickstartnvim-cheat-sheet","title":"Kickstart.nvim Cheat Sheet","date":"2026-01-02","tags":["cs","nvim","config","cheatsheet","llm"],"backlinks":0},{"slug":"general/keycloak-access-token","title":"Keycloak access token","date":"2026-02-04","tags":["cs","keycloak","api"],"backlinks":1},{"slug":"general/lox","title":"Lox","date":"2025-06-16","tags":["cs","crafting-interpreters"],"backlinks":2},{"slug":"general/migrating-google-workspace-to-synology-nas","title":"Migrating Google Workspace to Synology NAS","date":"2026-03-30","tags":["cs","llm"],"backlinks":0},{"slug":"general/karabiner-switch-input-with-right-command-button","title":"Karabiner Switch Input With Right Command Button","date":"2023-09-18","tags":["productivity"],"backlinks":0},{"slug":"general/parts-of-a-programming-language","title":"Parts of a (Programming) language","date":"2025-06-16","tags":["crafting-interpreters","cs"],"backlinks":0},{"slug":"general/opening-synology-mailplus-to-the-internet","title":"Opening Synology MailPlus to the Internet","date":"2026-03-30","tags":["cs","llm"],"backlinks":1},{"slug":"general/perceived-latency","title":"Perceived Latency","date":"2025-08-21","tags":["cs","llm","question"],"backlinks":0},{"slug":"general/pitfalls-of-nested-c-style-nested-block-comments","title":"Pitfalls of nested c-style nested block comments","date":"2025-06-16","tags":["cs","llm","question","crafting-interpreters","c"],"backlinks":0},{"slug":"general/protocol-in-python","title":"Protocol in Python","date":"2026-01-07","tags":["cs","python"],"backlinks":0},{"slug":"general/qna-log-email-migration","title":"QnA Log Email Migration","date":"2026-03-30","tags":["cs","llm"],"backlinks":1},{"slug":"general/make-logitech-great-again","title":"Make Logitech Great Again","date":"2024-02-20","tags":["productivity"],"backlinks":0},{"slug":"general/passing-a-list-as-a-query-parameter","title":"Passing a list as a query parameter","date":"2026-01-28","tags":["cs","api","fastapi","python"],"backlinks":1},{"slug":"general/reason-for-parsers-to-not-discard-comments-and-whitespaces","title":"Reason for parsers to not discard comments and whitespaces","date":"2024-01-01","tags":["cs","llm","question","crafting-interpreters"],"backlinks":0},{"slug":"general/returning-a-list-of-keys-of-a-dict-sorted-based-on-its-values-in-python","title":"Returning a list of keys of a dict sorted based on its values in Python","date":"2026-02-14","tags":["cs","python","tips"],"backlinks":0},{"slug":"general/setting-up-aws-ses-for-outbound-mail","title":"Setting up AWS SES for Outbound Mail","date":"2026-03-30","tags":["cs","llm"],"backlinks":1},{"slug":"general/stopping-our-emails-from-going-to-spam","title":"Stopping Our Emails from Going to Spam","date":"2026-03-30","tags":["cs","llm"],"backlinks":1},{"slug":"general/test-note","title":"Test Note","date":"2026-03-29","tags":[],"backlinks":0},{"slug":"general/the-effect-of-spaces-in-certain-languages","title":"The effect of spaces in certain languages","date":"2025-06-16","tags":["llm","cs","crafting-interpreters","question"],"backlinks":0},{"slug":"general/three-primary-layers-of-managing-user-access-in-keycloak","title":"Three primary layers of managing user access in keycloak","date":"2026-02-04","tags":["cs","keycloak","api"],"backlinks":0},{"slug":"general/traditional-nodejs-server-vs-firebase-functions","title":"Traditional Node.js Server vs. Firebase Functions","date":"2025-08-21","tags":["cs","llm","question"],"backlinks":0},{"slug":"general/utf-8","title":"UTF-8","date":"2025-06-16","tags":["cs"],"backlinks":0},{"slug":"general/using-a-python-model-for-query-parameters-in-fastapi","title":"Using a python model for query parameters in fastAPI","date":"2026-01-28","tags":["cs","python","fastapi"],"backlinks":0},{"slug":"general/using-ffmpeg-to-reduce-mp3-file-size","title":"Using ffmpeg to reduce mp3 file size","date":"2026-02-03","tags":["cs","tips","shell"],"backlinks":0},{"slug":"general/why-c-requires-forward-declarations","title":"Why C requires forward declarations","date":"2025-06-16","tags":["crafting-interpreters","cs","c"],"backlinks":1},{"slug":"general/bash-script-for-switching-network-order","title":"bash script for switching network order","date":"2025-06-24","tags":["cs","productivity"],"backlinks":0},{"slug":"general/the-lexical-grammars-of-python-and-haskell-are-not-regular-the-what-and-the-why","title":"The lexical grammars of Python and Haskell are not regular. The what and the why.","date":"2025-06-16","tags":["llm","question","cs","crafting-interpreters"],"backlinks":0},{"slug":"general/control-flow-constructs-in-the-guise-of-expressions","title":"control flow constructs in the guise of expressions","date":"2025-06-16","tags":["cs","crafting-interpreters"],"backlinks":1},{"slug":"general/encoding-migration-analysis","title":"encoding migration analysis","date":"2026-02-02","tags":["cs","js"],"backlinks":0},{"slug":"general/git-prune-local-branches-not-in-remote","title":"git prune local branches not in remote","date":"2026-01-21","tags":["cs","git"],"backlinks":0},{"slug":"general/keycloak-api-quirks","title":"keycloak api quirks","date":"2026-01-02","tags":["cs","keycloak","api"],"backlinks":0},{"slug":"general/lookahead","title":"lookahead","date":"2025-06-16","tags":["cs","crafting-interpreters"],"backlinks":0},{"slug":"general/macos-useful-config","title":"macos useful config","date":"2023-09-18","tags":["cs","config","macos"],"backlinks":0},{"slug":"general/maximal-munch","title":"maximal munch","date":"2025-06-16","tags":["crafting-interpreters","cs"],"backlinks":0},{"slug":"general/number-literals-in-lox","title":"number literals in lox","date":"2025-06-16","tags":["cs"],"backlinks":0},{"slug":"general/powershell-path-configuration","title":"powershell path configuration","date":"2023-09-18","tags":["cs","tips","powershell"],"backlinks":0},{"slug":"general/publish-obsidian-notes-to-notes-section","title":"publish obsidian notes to notes section","date":"2026-01-06","tags":["cs","blog","feature"],"backlinks":1},{"slug":"general/shell-list-all-systemctl","title":"shell list all systemctl","date":"2023-09-18","tags":["cs","tips","shell"],"backlinks":0},{"slug":"general/shell-ls-sort-by-type","title":"shell ls sort by type","date":"2023-09-18","tags":["cs","tips","shell"],"backlinks":0},{"slug":"general/statements-vs-expressions","title":"statements vs expressions","date":"2025-06-16","tags":["crafting-interpreters","cs"],"backlinks":0},{"slug":"general/understanding-async-await","title":"understanding async await","date":"2025-09-12","tags":["cs"],"backlinks":0},{"slug":"general/vim-config","title":"vim config","date":"2023-09-18","tags":["cs","config","vim"],"backlinks":0},{"slug":"general/javascript-classes","title":"javascript classes","date":"2025-09-12","tags":["cs","js"],"backlinks":1},{"slug":"general/swap-network-order","title":"swap network order","date":"2025-07-01","tags":["cs"],"backlinks":0},{"slug":"general/vim-moving-lines","title":"vim moving lines","date":"2023-09-18","tags":["cs","tips","vim"],"backlinks":0},{"slug":"general/vim-multiline-edit","title":"vim multiline edit","date":"2023-09-18","tags":["cs","tips","vim"],"backlinks":0},{"slug":"general/vim-search-and-replace","title":"vim search and replace","date":"2023-09-18","tags":["cs","tips","vim"],"backlinks":0},{"slug":"general/vim-using-macros","title":"vim using macros","date":"2023-09-18","tags":["cs","tips","vim"],"backlinks":0},{"slug":"general/미래에셋-홈화면-개선-피드백-개선-이벤트","title":"미래에셋 홈화면 개선 피드백 개선 이벤트","date":"2024-12-08","tags":["event"],"backlinks":0}]