{"version":1,"pages":[{"id":"p2KkyCDsoLeUbog31pbc","title":"Intro","pathname":"/index","siteSpaceId":"sitesp_AMxTJ","description":""},{"id":"Uj74W2kpC4EWzINxMCbb","title":"2023","pathname":"/index/blog/2023","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Blog"}]},{"id":"Hc8blAkU8rQXxqTBzcBq","title":"2022","pathname":"/index/blog/2022","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Blog"}]},{"id":"-MQ5fxu0fUUyy_1v9f2F","title":"2021","pathname":"/index/blog/2021","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Blog"}]},{"id":"-LxYxIMs5B-K1pzJEfoa","title":"2020","pathname":"/index/blog/2020","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Blog"}]},{"id":"-LpW-yxBhfp5Vs1MFx3i","title":"2019","pathname":"/index/blog/2019","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Blog"}]},{"id":"-M2Aivr1FVOc8aYRVeD1","title":"Git","pathname":"/index/cli/git","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"CLI"}]},{"id":"-MOMXHeqLfvgbKI3TwmE","title":"Bulk resolve merge conflicts","pathname":"/index/cli/git/bulk-resolve-merge-conflicts","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"CLI"},{"label":"Git"}]},{"id":"-M2Aivr2SrcYP0Sb5oTx","title":"git rebase-onto","pathname":"/index/cli/git/git-rebase-onto","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"CLI"},{"label":"Git"}]},{"id":"-MR1mmwDW7k7pjQU37qV","title":"Patch from diff","pathname":"/index/cli/git/patch-from-diff","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"CLI"},{"label":"Git"}]},{"id":"-LpQ4lKwiMXCs1WooCHP","title":"Shell","pathname":"/index/cli/shell","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"CLI"}]},{"id":"-LqCeHmVOk2CRaAOt5uI","title":"Recipes","pathname":"/index/cli/shell/recipes","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"CLI"},{"label":"Shell"}]},{"id":"-LpPivyZEGYxT44KT0Ec","title":"Vim","pathname":"/index/cli/vim","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"CLI"}]},{"id":"-LpQ6hlVqPgNuAeXrh4L","title":"Batch editing","pathname":"/index/cli/vim/batch-editing","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"CLI"},{"label":"Vim"}]},{"id":"-MRXptLzdfq9noS1ja-W","title":"Buffers","pathname":"/index/cli/vim/buffers","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"CLI"},{"label":"Vim"}]},{"id":"-M1s5GtE_WsIBtk6xAdh","title":"<Ctrl-r>","pathname":"/index/cli/vim/ctrl-r","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"CLI"},{"label":"Vim"}]},{"id":"-LpQ6hlW7HXbRXQDGrIV","title":"External commands","pathname":"/index/cli/vim/external-commands","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"CLI"},{"label":"Vim"}]},{"id":"-M1wSEeCnj1I2JGhWQ4t","title":":global","pathname":"/index/cli/vim/global","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"CLI"},{"label":"Vim"}]},{"id":"-M1s5GtGkNaWVwrM6eGX","title":"Help","pathname":"/index/cli/vim/help","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"CLI"},{"label":"Vim"}]},{"id":"-LpQ6hlXrf-PpEAuf3jH","title":"Registers","pathname":"/index/cli/vim/registers","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"CLI"},{"label":"Vim"}]},{"id":"-MbxJ38dPC4RyaNbb45F","title":"Splits","pathname":"/index/cli/vim/splits","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"CLI"},{"label":"Vim"}]},{"id":"-LpQrpZl8X2xbxPyxoMB","title":"Tools","pathname":"/index/cli/tools","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"CLI"}]},{"id":"-LpPivyQQNZousTbe1kV","title":"React","pathname":"/index/programming/react","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Programming"}]},{"id":"-MAriZwTDBPqH5GUJflY","title":"Testing Styled Components","pathname":"/index/programming/react/testing-styled-components","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Programming"},{"label":"React"}]},{"id":"-LpPivySRrZdQ_5K9aYc","title":"Typescript","pathname":"/index/programming/typescript","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Programming"}]},{"id":"-LpQ6hlPVwdM3exNOTZ1","title":"curryRecord","pathname":"/index/programming/typescript/curry-record","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Typescript"}]},{"id":"-LpTzLzAiJGIs5rE4Bjd","title":"Exhaustive conditionals with ADTs","pathname":"/index/programming/typescript/exhaustive-conditionals-with-adts","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Typescript"}]},{"id":"-LpUs6iFmyDI_BdPipMF","title":"newtype","pathname":"/index/programming/typescript/newtype","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Typescript"}]},{"id":"-LtXJsrJBPbT4ZzUqbwk","title":"OmitTypes","pathname":"/index/programming/typescript/omit-types","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Typescript"}]},{"id":"-M5dgoKvg5xUfBV09WNN","title":"Safe JSON clone","pathname":"/index/programming/typescript/safe-json-clone","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Typescript"}]},{"id":"-M47FDM__nyZDJ9rReyV","title":"Type inferrers","pathname":"/index/programming/typescript/type-inferrers","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Typescript"}]},{"id":"-LpnzvADN-ZOYDv4b7jn","title":"XOR type","pathname":"/index/programming/typescript/xor-type","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Typescript"}]},{"id":"-M1s5Gt5-TX5HNKr2umk","title":"Ruby","pathname":"/index/programming/ruby","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Programming"}]},{"id":"-MB_fei22Eb6rByjGuMV","title":"Pry","pathname":"/index/programming/ruby/pry","siteSpaceId":"sitesp_AMxTJ","description":"Pry tricks","breadcrumbs":[{"label":"Programming"},{"label":"Ruby"}]},{"id":"-M1s5Gt6I5wIhUdDsJt8","title":"RSpec","pathname":"/index/programming/ruby/rspec","siteSpaceId":"sitesp_AMxTJ","description":"Certain RSpec patterns.","breadcrumbs":[{"label":"Programming"},{"label":"Ruby"}]},{"id":"-M8TmUg3F0N0Mw8WRSsx","title":"Rails","pathname":"/index/programming/rails","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Programming"}]},{"id":"-M8TmUg4yThxEPJ9-QfZ","title":"Attributes","pathname":"/index/programming/rails/attributes","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Rails"}]},{"id":"-MR1RKKTsfkfSOTKEouW","title":"Cheap many to many","pathname":"/index/programming/rails/cheap-many-to-many","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Rails"}]},{"id":"-MGJGrPqbTGhkKERmZ2N","title":"(Don't use) counter cache","pathname":"/index/programming/rails/counter-cache","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Rails"}]},{"id":"-M8TmUg5SoMDgdW92Uau","title":"Databases","pathname":"/index/programming/databases","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Programming"}]},{"id":"-M8TmUg67rVz-Co0kmLL","title":"Metrics","pathname":"/index/programming/databases/metrics","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Programming"},{"label":"Databases"}]},{"id":"-MD1GKDQzbGLARpo83J1","title":"Testing indexes","pathname":"/index/programming/databases/testing-indexes","siteSpaceId":"sitesp_AMxTJ","description":"How to test indexes in MySQL without permanently applying them.","breadcrumbs":[{"label":"Programming"},{"label":"Databases"}]},{"id":"-M3-KvwMKd782PKQGAc4","title":"Uses","pathname":"/index/personal/uses","siteSpaceId":"sitesp_AMxTJ","description":"","breadcrumbs":[{"label":"Personal"}]}]}