programming.html (52010B)
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <!-- Sep 03, 2024 --> 5 <meta charset="utf-8" /> 6 <meta name="viewport" content="width=device-width, initial-scale=1" /> 7 <title>Programming</title> 8 <meta name="author" content="Vincent Demeester" /> 9 <meta name="keywords" content="post" /> 10 <meta name="generator" content="Org Mode" /> 11 <link rel="stylesheet" type="text/css" href="./css/2022.css" /> 12 <link rel="stylesheet" type="text/css" href="./css/syntax.css" /> 13 <link rel='icon' type='image/x-icon' href='./images/favicon.ico'/> 14 <meta name='viewport' content='width=device-width, initial-scale=1'> 15 </head> 16 <body> 17 <main id="content" class="content"> 18 <header> 19 <h1 class="title">Programming</h1> 20 </header><section id="outline-container-Languages" class="outline-2"> 21 <h2 id="Languages">Languages</h2> 22 <div class="outline-text-2" id="text-Languages"> 23 <ul class="org-ul"> 24 <li><a href="go.html">Go</a></li> 25 <li><a href="python.html">Python</a></li> 26 <li><a href="lisp.html">Lisp</a> 27 <ul class="org-ul"> 28 <li><a href="clojure.html">Clojure</a></li> 29 <li><a href="emacs_lisp.html">Emacs Lisp</a></li> 30 </ul></li> 31 <li><a href="rust.html">Rust</a></li> 32 </ul> 33 </div> 34 </section> 35 <section id="outline-container-Four%20principles%20of%20software%20engineering" class="outline-2"> 36 <h2 id="Four%20principles%20of%20software%20engineering">Four principles of software engineering</h2> 37 <div class="outline-text-2" id="text-Four%20principles%20of%20software%20engineering"> 38 <blockquote> 39 <p> 40 Software should be robust. It should be designed to accommodate all 41 known edge cases. In practice, this means predicting and handling all 42 known error cases, enumerating and addressing all classes of user 43 inputs, reasoning about and planning for the performance 44 characteristics of your program, and so on. 45 </p> 46 47 <p> 48 Software should be reliable. It should be expected to work for an 49 extended length of time under design conditions without failures. 50 Ideally, it should work outside of design conditions up to some 51 threshold. 52 </p> 53 54 <p> 55 Software should also be stable. It should not change in incompatible 56 or unexpected ways; if it works today it should also work tomorrow. If 57 it has to change, a plan shall be written. Stakeholders (including 58 users!) should be given advance notice and should be involved in the 59 planning stage. 60 </p> 61 62 <p> 63 Finally, software should be simple. Only as many moving parts should 64 be included as necessary to meet the other three goals. All software 65 has bugs, but complicated software (1) has more bugs and (2) is more 66 difficult to diagnose and fix. Note that designing a simple solution 67 is usually more difficult than designing a complex solution. 68 </p> 69 70 <p> 71 This (short) article is based on a Mastodon post I wrote a few weeks 72 ago. 73 </p> 74 75 <p> 76 From: <a href="https://drewdevault.com/2020/10/09/Four-principles-of-software-engineering.html">Four principles of software engineering</a> 77 </p> 78 </blockquote> 79 </div> 80 </section> 81 <section id="outline-container-Programming%20is%20terrible" class="outline-2"> 82 <h2 id="Programming%20is%20terrible">Programming is terrible</h2> 83 <div class="outline-text-2" id="text-Programming%20is%20terrible"> 84 <p> 85 <a href="https://programmingisterrible.com/">programming is terrible</a> — lessons learned from a life wasted — is a very interesting 86 website. I’ve tried to extract a few links from it with my comments in here. 87 </p> 88 89 <ul class="org-ul"> 90 <li><a href="https://programmingisterrible.com/post/110922879293/stop-blowhard-syndrome">Stop Blowhard Syndrome — programming is terrible</a> 91 Yes, Yes, Yes !</li> 92 <li><p> 93 <a href="https://programmingisterrible.com/post/102153932958/how-i-write-software">How I write software — programming is terrible</a> 94 Write boring code ! 95 </p> 96 97 <blockquote> 98 <p> 99 My favourite property of good code is boredom. Dull statements one after another, no 100 surprises, no tricks, no special cases, and absolutely no meta-programming. Boring code is 101 the easiest to debug, to verify, and to explain. 102 </p> 103 104 <p> 105 Boring code usually doesn’t use global state, has very precise effects, and isn’t strongly 106 tied to the project it lives in. Boring features like single assignment, where each 107 variable only holds one object, and not relying on changing the world around it. Boring 108 code will only do what its asked of it and does not rely on implicit behaviours. 109 </p> 110 </blockquote></li> 111 112 <li><a href="https://programmingisterrible.com/post/116698171738/nothing-is-more-indicative-of-a-bullshit-job-than">Nothing is more indicative of a bullshit job than… — programming is terrible</a></li> 113 <li><a href="https://programmingisterrible.com/post/39420736223/bisecting-programmers">What makes good and what makes bad programmers? — programming is terrible</a> 114 Some thoughs about good/bad programmers — and really, is there good/bad ?</li> 115 <li><a href="https://programmingisterrible.com/post/173883533613/code-to-debug">Write code that’s easy to delete, and easy to… — programming is terrible</a></li> 116 <li><a href="https://programmingisterrible.com/post/139222674273/write-code-that-is-easy-to-delete-not-easy-to">Write code that is easy to delete, not easy to… — programming is terrible</a></li> 117 <li><a href="https://programmingisterrible.com/post/173883533613/code-to-debug">Write code that’s easy to delete, and easy to… — programming is terrible</a></li> 118 <li><a href="https://programmingisterrible.com/post/110292532528/modules-network-microservices">modules + network = microservices — programming is terrible</a></li> 119 <li><a href="https://programmingisterrible.com/post/162346490883/how-do-you-cut-a-monolith-in-half">How do you cut a monolith in half? — programming is terrible</a> 120 Some thoughts one cutting monolith in several pieces</li> 121 <li><a href="https://programmingisterrible.com/post/188942142748/scaling-in-the-presence-of-errorsdont-ignore">Scaling in the presence of errors—don’t ignore… — programming is terrible</a></li> 122 </ul> 123 </div> 124 </section> 125 <section id="outline-container-Code%20reviews" class="outline-2"> 126 <h2 id="Code%20reviews">Code reviews</h2> 127 <div class="outline-text-2" id="text-Code%20reviews"> 128 <p> 129 Code review is one extremely powerful tool in a software developer team’s arsenal, yet 130 it’s often neglected or used in a way that leads to toxic behavior, causing more harm than 131 good. 132 </p> 133 134 <p> 135 The primary purpose of code review is to make sure that the overall code health of your 136 project code base is improving over time. All of the tools and processes of code review 137 are designed to this end. 138 </p> 139 140 <p> 141 An list of code-review article and tools aronud code revîew : <a href="https://github.com/joho/awesome-code-review">awesome-code-review</a>. 142 </p> 143 </div> 144 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fdev.to%2Frfornal%2Fbetter-code-review-practices-15nb%5D%5BBetter%20Code%20Review%20Practices%20-%20DEV%20Community%20%F0%9F%91%A9%E2%80%8D%F0%9F%92%BB%F0%9F%91%A8%E2%80%8D%F0%9F%92%BB%5D%5D" class="outline-3"> 145 <h3 id="%5B%5Bhttps%3A%2F%2Fdev.to%2Frfornal%2Fbetter-code-review-practices-15nb%5D%5BBetter%20Code%20Review%20Practices%20-%20DEV%20Community%20%F0%9F%91%A9%E2%80%8D%F0%9F%92%BB%F0%9F%91%A8%E2%80%8D%F0%9F%92%BB%5D%5D"><a href="https://dev.to/rfornal/better-code-review-practices-15nb">Better Code Review Practices - DEV Community 👩💻👨💻</a></h3> 146 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fdev.to%2Frfornal%2Fbetter-code-review-practices-15nb%5D%5BBetter%20Code%20Review%20Practices%20-%20DEV%20Community%20%F0%9F%91%A9%E2%80%8D%F0%9F%92%BB%F0%9F%91%A8%E2%80%8D%F0%9F%92%BB%5D%5D"> 147 <p> 148 <span class="timestamp-wrapper"><span class="timestamp">[2020-01-28 Tue 18:58]</span></span> 149 </p> 150 </div> 151 </div> 152 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fmedium.com%2Fpalantir%2Fcode-review-best-practices-19e02780015f%5D%5BCode%20Review%20Best%20Practices%20-%20Palantir%20Blog%20-%20Medium%5D%5D" class="outline-3"> 153 <h3 id="%5B%5Bhttps%3A%2F%2Fmedium.com%2Fpalantir%2Fcode-review-best-practices-19e02780015f%5D%5BCode%20Review%20Best%20Practices%20-%20Palantir%20Blog%20-%20Medium%5D%5D"><a href="https://medium.com/palantir/code-review-best-practices-19e02780015f">Code Review Best Practices - Palantir Blog - Medium</a></h3> 154 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fmedium.com%2Fpalantir%2Fcode-review-best-practices-19e02780015f%5D%5BCode%20Review%20Best%20Practices%20-%20Palantir%20Blog%20-%20Medium%5D%5D"> 155 <p> 156 <span class="timestamp-wrapper"><span class="timestamp">[2020-01-28 Tue 18:58]</span></span> 157 </p> 158 </div> 159 </div> 160 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fcodingsans.com%2Fblog%2Fcode-review%5D%5BCode%20Review%3A%20Create%20The%20Culture%2C%20Learn%20The%20Best%20Practices%20%7C%20Coding%20Sans%5D%5D" class="outline-3"> 161 <h3 id="%5B%5Bhttps%3A%2F%2Fcodingsans.com%2Fblog%2Fcode-review%5D%5BCode%20Review%3A%20Create%20The%20Culture%2C%20Learn%20The%20Best%20Practices%20%7C%20Coding%20Sans%5D%5D"><a href="https://codingsans.com/blog/code-review">Code Review: Create The Culture, Learn The Best Practices | Coding Sans</a></h3> 162 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fcodingsans.com%2Fblog%2Fcode-review%5D%5BCode%20Review%3A%20Create%20The%20Culture%2C%20Learn%20The%20Best%20Practices%20%7C%20Coding%20Sans%5D%5D"> 163 <p> 164 <span class="timestamp-wrapper"><span class="timestamp">[2020-01-28 Tue 18:58]</span></span> 165 </p> 166 </div> 167 </div> 168 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fgoogle.github.io%2Feng-practices%2Freview%2Fdeveloper%2F%5D%5BThe%20CL%20author%E2%80%99s%20guide%20to%20getting%20through%20code%20review%20%7C%20eng-practices%5D%5D" class="outline-3"> 169 <h3 id="%5B%5Bhttps%3A%2F%2Fgoogle.github.io%2Feng-practices%2Freview%2Fdeveloper%2F%5D%5BThe%20CL%20author%E2%80%99s%20guide%20to%20getting%20through%20code%20review%20%7C%20eng-practices%5D%5D"><a href="https://google.github.io/eng-practices/review/developer/">The CL author’s guide to getting through code review | eng-practices</a></h3> 170 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fgoogle.github.io%2Feng-practices%2Freview%2Fdeveloper%2F%5D%5BThe%20CL%20author%E2%80%99s%20guide%20to%20getting%20through%20code%20review%20%7C%20eng-practices%5D%5D"> 171 <p> 172 <span class="timestamp-wrapper"><span class="timestamp">[2019-10-07 Mon 10:43]</span></span> 173 </p> 174 </div> 175 </div> 176 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fgoogle.github.io%2Feng-practices%2Freview%2Freviewer%2F%5D%5BHow%20to%20do%20a%20code%20review%20%7C%20eng-practices%5D%5D" class="outline-3"> 177 <h3 id="%5B%5Bhttps%3A%2F%2Fgoogle.github.io%2Feng-practices%2Freview%2Freviewer%2F%5D%5BHow%20to%20do%20a%20code%20review%20%7C%20eng-practices%5D%5D"><a href="https://google.github.io/eng-practices/review/reviewer/">How to do a code review | eng-practices</a></h3> 178 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fgoogle.github.io%2Feng-practices%2Freview%2Freviewer%2F%5D%5BHow%20to%20do%20a%20code%20review%20%7C%20eng-practices%5D%5D"> 179 <p> 180 <span class="timestamp-wrapper"><span class="timestamp">[2019-10-07 Mon 10:44]</span></span> 181 </p> 182 </div> 183 </div> 184 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fblog.jez.io%2Fcli-code-review%2F%5D%5BCode%20Review%20from%20the%20Command%20Line%20-%20Bits%2C%20Bytes%2C%20and%20Words%5D%5D" class="outline-3"> 185 <h3 id="%5B%5Bhttps%3A%2F%2Fblog.jez.io%2Fcli-code-review%2F%5D%5BCode%20Review%20from%20the%20Command%20Line%20-%20Bits%2C%20Bytes%2C%20and%20Words%5D%5D"><a href="https://blog.jez.io/cli-code-review/">Code Review from the Command Line - Bits, Bytes, and Words</a></h3> 186 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fblog.jez.io%2Fcli-code-review%2F%5D%5BCode%20Review%20from%20the%20Command%20Line%20-%20Bits%2C%20Bytes%2C%20and%20Words%5D%5D"> 187 <p> 188 <span class="timestamp-wrapper"><span class="timestamp">[2020-09-23 Wed 13:02]</span></span> 189 </p> 190 </div> 191 </div> 192 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fbenjamincongdon.me%2Fblog%2F2021%2F10%2F17%2FFeatures-of-Excellent-Code-Review-Tools%2F%5D%5BFeatures%20of%20Excellent%20Code%20Review%20Tools%20%7C%20Ben%20Congdon%5D%5D" class="outline-3"> 193 <h3 id="%5B%5Bhttps%3A%2F%2Fbenjamincongdon.me%2Fblog%2F2021%2F10%2F17%2FFeatures-of-Excellent-Code-Review-Tools%2F%5D%5BFeatures%20of%20Excellent%20Code%20Review%20Tools%20%7C%20Ben%20Congdon%5D%5D"><a href="https://benjamincongdon.me/blog/2021/10/17/Features-of-Excellent-Code-Review-Tools/">Features of Excellent Code Review Tools | Ben Congdon</a></h3> 194 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fbenjamincongdon.me%2Fblog%2F2021%2F10%2F17%2FFeatures-of-Excellent-Code-Review-Tools%2F%5D%5BFeatures%20of%20Excellent%20Code%20Review%20Tools%20%7C%20Ben%20Congdon%5D%5D"> 195 <p> 196 <span class="timestamp-wrapper"><span class="timestamp">[2021-10-29 Fri 18:03]</span></span> 197 </p> 198 </div> 199 </div> 200 </section> 201 <section id="outline-container-Pair%20programming" class="outline-2"> 202 <h2 id="Pair%20programming">Pair programming   <span class="tag"><span class="pair">pair</span></span></h2> 203 <div class="outline-text-2" id="text-Pair%20programming"> 204 </div> 205 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fmartinfowler.com%2Farticles%2Fon-pair-programming.html%5D%5BOn%20Pair%20Programming%5D%5D" class="outline-3"> 206 <h3 id="%5B%5Bhttps%3A%2F%2Fmartinfowler.com%2Farticles%2Fon-pair-programming.html%5D%5BOn%20Pair%20Programming%5D%5D"><a href="https://martinfowler.com/articles/on-pair-programming.html">On Pair Programming</a></h3> 207 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fmartinfowler.com%2Farticles%2Fon-pair-programming.html%5D%5BOn%20Pair%20Programming%5D%5D"> 208 <p> 209 <span class="timestamp-wrapper"><span class="timestamp">[2020-02-12 Wed 09:21]</span></span> 210 </p> 211 </div> 212 </div> 213 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fchelseatroy.com%2F2017%2F04%2F01%2Fadvanced-pair-programming-pairing-remotely%2F%5D%5BAdvanced%20Pair%20Programming%3A%20Pairing%20Remotely%20%E2%80%93%20Chelsea%20Troy%5D%5D" class="outline-3"> 214 <h3 id="%5B%5Bhttps%3A%2F%2Fchelseatroy.com%2F2017%2F04%2F01%2Fadvanced-pair-programming-pairing-remotely%2F%5D%5BAdvanced%20Pair%20Programming%3A%20Pairing%20Remotely%20%E2%80%93%20Chelsea%20Troy%5D%5D"><a href="https://chelseatroy.com/2017/04/01/advanced-pair-programming-pairing-remotely/">Advanced Pair Programming: Pairing Remotely – Chelsea Troy</a></h3> 215 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fchelseatroy.com%2F2017%2F04%2F01%2Fadvanced-pair-programming-pairing-remotely%2F%5D%5BAdvanced%20Pair%20Programming%3A%20Pairing%20Remotely%20%E2%80%93%20Chelsea%20Troy%5D%5D"> 216 <p> 217 <span class="timestamp-wrapper"><span class="timestamp">[2020-04-21 Tue 18:26]</span></span> 218 </p> 219 </div> 220 </div> 221 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fchelseatroy.com%2F2017%2F04%2F04%2Fadvanced-pair-programming-enabling-your-pair%2F%5D%5BAdvanced%20Pair%20Programming%3A%20Enabling%20Your%20Pair%20%E2%80%93%20Chelsea%20Troy%5D%5D" class="outline-3"> 222 <h3 id="%5B%5Bhttps%3A%2F%2Fchelseatroy.com%2F2017%2F04%2F04%2Fadvanced-pair-programming-enabling-your-pair%2F%5D%5BAdvanced%20Pair%20Programming%3A%20Enabling%20Your%20Pair%20%E2%80%93%20Chelsea%20Troy%5D%5D"><a href="https://chelseatroy.com/2017/04/04/advanced-pair-programming-enabling-your-pair/">Advanced Pair Programming: Enabling Your Pair – Chelsea Troy</a></h3> 223 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fchelseatroy.com%2F2017%2F04%2F04%2Fadvanced-pair-programming-enabling-your-pair%2F%5D%5BAdvanced%20Pair%20Programming%3A%20Enabling%20Your%20Pair%20%E2%80%93%20Chelsea%20Troy%5D%5D"> 224 <p> 225 <span class="timestamp-wrapper"><span class="timestamp">[2020-04-21 Tue 18:26]</span></span> 226 </p> 227 </div> 228 </div> 229 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fchelseatroy.com%2F2017%2F04%2F06%2Fadvanced-pair-programming-learning-from-your-pair%2F%5D%5BAdvanced%20Pair%20Programming%3A%20Learning%20From%20Your%20Pair%20%E2%80%93%20Chelsea%20Troy%5D%5D" class="outline-3"> 230 <h3 id="%5B%5Bhttps%3A%2F%2Fchelseatroy.com%2F2017%2F04%2F06%2Fadvanced-pair-programming-learning-from-your-pair%2F%5D%5BAdvanced%20Pair%20Programming%3A%20Learning%20From%20Your%20Pair%20%E2%80%93%20Chelsea%20Troy%5D%5D"><a href="https://chelseatroy.com/2017/04/06/advanced-pair-programming-learning-from-your-pair/">Advanced Pair Programming: Learning From Your Pair – Chelsea Troy</a></h3> 231 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fchelseatroy.com%2F2017%2F04%2F06%2Fadvanced-pair-programming-learning-from-your-pair%2F%5D%5BAdvanced%20Pair%20Programming%3A%20Learning%20From%20Your%20Pair%20%E2%80%93%20Chelsea%20Troy%5D%5D"> 232 <p> 233 <span class="timestamp-wrapper"><span class="timestamp">[2020-04-21 Tue 18:26]</span></span> 234 </p> 235 </div> 236 </div> 237 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fchelseatroy.com%2F2016%2F01%2F30%2Fremote-pair-programming-best-practices%2F%5D%5BRemote%20Pair%20Programming%3A%20Best%20Practices%20%E2%80%93%20Chelsea%20Troy%5D%5D" class="outline-3"> 238 <h3 id="%5B%5Bhttps%3A%2F%2Fchelseatroy.com%2F2016%2F01%2F30%2Fremote-pair-programming-best-practices%2F%5D%5BRemote%20Pair%20Programming%3A%20Best%20Practices%20%E2%80%93%20Chelsea%20Troy%5D%5D"><a href="https://chelseatroy.com/2016/01/30/remote-pair-programming-best-practices/">Remote Pair Programming: Best Practices – Chelsea Troy</a></h3> 239 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fchelseatroy.com%2F2016%2F01%2F30%2Fremote-pair-programming-best-practices%2F%5D%5BRemote%20Pair%20Programming%3A%20Best%20Practices%20%E2%80%93%20Chelsea%20Troy%5D%5D"> 240 <p> 241 <span class="timestamp-wrapper"><span class="timestamp">[2020-04-21 Tue 18:27]</span></span> 242 </p> 243 </div> 244 </div> 245 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fgeshan.com.np%2Fblog%2F2020%2F06%2Fpair-programming-benefits-for-your-team%2F%5D%5B5%20pair%20programming%20benefits%20you%20should%20know%20about%5D%5D" class="outline-3"> 246 <h3 id="%5B%5Bhttps%3A%2F%2Fgeshan.com.np%2Fblog%2F2020%2F06%2Fpair-programming-benefits-for-your-team%2F%5D%5B5%20pair%20programming%20benefits%20you%20should%20know%20about%5D%5D"><a href="https://geshan.com.np/blog/2020/06/pair-programming-benefits-for-your-team/">5 pair programming benefits you should know about</a></h3> 247 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fgeshan.com.np%2Fblog%2F2020%2F06%2Fpair-programming-benefits-for-your-team%2F%5D%5B5%20pair%20programming%20benefits%20you%20should%20know%20about%5D%5D"> 248 <p> 249 <span class="timestamp-wrapper"><span class="timestamp">[2020-06-23 Tue 17:49]</span></span> 250 </p> 251 </div> 252 </div> 253 </section> 254 <section id="outline-container-Misc." class="outline-2"> 255 <h2 id="Misc.">Misc.</h2> 256 <div class="outline-text-2" id="text-Misc."> 257 </div> 258 <div id="outline-container-%5B%5Bhttp%3A%2F%2Fkarolis.koncevicius.lt%2Fposts%2Fporn_zen_and_vimrc%2F%5D%5BPorn%2C%20Zen%2C%20and%20.vimrc%5D%5D" class="outline-3"> 259 <h3 id="%5B%5Bhttp%3A%2F%2Fkarolis.koncevicius.lt%2Fposts%2Fporn_zen_and_vimrc%2F%5D%5BPorn%2C%20Zen%2C%20and%20.vimrc%5D%5D"><a href="http://karolis.koncevicius.lt/posts/porn_zen_and_vimrc/">Porn, Zen, and .vimrc</a></h3> 260 <div class="outline-text-3" id="text-%5B%5Bhttp%3A%2F%2Fkarolis.koncevicius.lt%2Fposts%2Fporn_zen_and_vimrc%2F%5D%5BPorn%2C%20Zen%2C%20and%20.vimrc%5D%5D"> 261 <p> 262 <span class="timestamp-wrapper"><span class="timestamp">[2020-09-17 Thu 08:36]</span></span> 263 </p> 264 265 <p> 266 Could be on it’s own entry on editors 267 </p> 268 </div> 269 </div> 270 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fsolovyov.net%2Fblog%2F2020%2Fhigher-order-functions%2F%5D%5BHigher-order%20functions%20are%20like%20inheritance%5D%5D" class="outline-3"> 271 <h3 id="%5B%5Bhttps%3A%2F%2Fsolovyov.net%2Fblog%2F2020%2Fhigher-order-functions%2F%5D%5BHigher-order%20functions%20are%20like%20inheritance%5D%5D"><a href="https://solovyov.net/blog/2020/higher-order-functions/">Higher-order functions are like inheritance</a></h3> 272 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fsolovyov.net%2Fblog%2F2020%2Fhigher-order-functions%2F%5D%5BHigher-order%20functions%20are%20like%20inheritance%5D%5D"> 273 <p> 274 <span class="timestamp-wrapper"><span class="timestamp">[2020-09-18 Fri 11:29]</span></span> 275 </p> 276 </div> 277 </div> 278 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fwww.arp242.net%2Fcomments.html%5D%5BGood%20comments%20are%20to%20the%20point%20and%20flow%20well%5D%5D" class="outline-3"> 279 <h3 id="%5B%5Bhttps%3A%2F%2Fwww.arp242.net%2Fcomments.html%5D%5BGood%20comments%20are%20to%20the%20point%20and%20flow%20well%5D%5D"><a href="https://www.arp242.net/comments.html">Good comments are to the point and flow well</a></h3> 280 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fwww.arp242.net%2Fcomments.html%5D%5BGood%20comments%20are%20to%20the%20point%20and%20flow%20well%5D%5D"> 281 <p> 282 <span class="timestamp-wrapper"><span class="timestamp">[2019-12-12 Thu 18:03]</span></span> 283 </p> 284 </div> 285 </div> 286 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fwww.sandimetz.com%2Fblog%2F2016%2F1%2F20%2Fthe-wrong-abstraction%5D%5BThe%20Wrong%20Abstraction%20%E2%80%94%20Sandi%20Metz%5D%5D" class="outline-3"> 287 <h3 id="%5B%5Bhttps%3A%2F%2Fwww.sandimetz.com%2Fblog%2F2016%2F1%2F20%2Fthe-wrong-abstraction%5D%5BThe%20Wrong%20Abstraction%20%E2%80%94%20Sandi%20Metz%5D%5D"><a href="https://www.sandimetz.com/blog/2016/1/20/the-wrong-abstraction">The Wrong Abstraction — Sandi Metz</a></h3> 288 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fwww.sandimetz.com%2Fblog%2F2016%2F1%2F20%2Fthe-wrong-abstraction%5D%5BThe%20Wrong%20Abstraction%20%E2%80%94%20Sandi%20Metz%5D%5D"> 289 <p> 290 A really interesting article about a really good point : sometimes duplication is better 291 than the wrong abstraction ! 292 </p> 293 </div> 294 </div> 295 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fblog.nelhage.com%2Fpost%2Freflections-on-performance%2F%5D%5BReflections%20on%20software%20performance%20-%20Made%20of%20Bugs%5D%5D" class="outline-3"> 296 <h3 id="%5B%5Bhttps%3A%2F%2Fblog.nelhage.com%2Fpost%2Freflections-on-performance%2F%5D%5BReflections%20on%20software%20performance%20-%20Made%20of%20Bugs%5D%5D"><a href="https://blog.nelhage.com/post/reflections-on-performance/">Reflections on software performance - Made of Bugs</a></h3> 297 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fblog.nelhage.com%2Fpost%2Freflections-on-performance%2F%5D%5BReflections%20on%20software%20performance%20-%20Made%20of%20Bugs%5D%5D"> 298 <p> 299 <span class="timestamp-wrapper"><span class="timestamp">[2020-06-06 Sat 12:36]</span></span> 300 </p> 301 </div> 302 </div> 303 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fmedium.com%2F%40johnclarke_82232%2Fmono-or-multi-repo-6c3674142dfc%5D%5BMono-%20or%20Multi-repo%3F.%20One%20big%20repo%2C%20or%20lots%20of%20smaller%20repos%E2%80%A6%20%7C%20by%20John%20Clarke%20%7C%20Medium%5D%5D" class="outline-3"> 304 <h3 id="%5B%5Bhttps%3A%2F%2Fmedium.com%2F%40johnclarke_82232%2Fmono-or-multi-repo-6c3674142dfc%5D%5BMono-%20or%20Multi-repo%3F.%20One%20big%20repo%2C%20or%20lots%20of%20smaller%20repos%E2%80%A6%20%7C%20by%20John%20Clarke%20%7C%20Medium%5D%5D"><a href="https://medium.com/@johnclarke_82232/mono-or-multi-repo-6c3674142dfc">Mono- or Multi-repo?. One big repo, or lots of smaller repos… | by John Clarke | Medium</a></h3> 305 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fmedium.com%2F%40johnclarke_82232%2Fmono-or-multi-repo-6c3674142dfc%5D%5BMono-%20or%20Multi-repo%3F.%20One%20big%20repo%2C%20or%20lots%20of%20smaller%20repos%E2%80%A6%20%7C%20by%20John%20Clarke%20%7C%20Medium%5D%5D"> 306 <p> 307 <span class="timestamp-wrapper"><span class="timestamp">[2020-08-17 Mon 16:33]</span></span> 308 </p> 309 </div> 310 </div> 311 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fmedium.com%2F%40mattklein123%2Fmonorepos-please-dont-e9a279be011b%5D%5BMonorepos%3A%20Please%20don%E2%80%99t%21.%20Here%20we%20are%20at%20the%20beginning%20of%202019%E2%80%A6%20%7C%20by%20Matt%20Klein%20%7C%20Medium%5D%5D" class="outline-3"> 312 <h3 id="%5B%5Bhttps%3A%2F%2Fmedium.com%2F%40mattklein123%2Fmonorepos-please-dont-e9a279be011b%5D%5BMonorepos%3A%20Please%20don%E2%80%99t%21.%20Here%20we%20are%20at%20the%20beginning%20of%202019%E2%80%A6%20%7C%20by%20Matt%20Klein%20%7C%20Medium%5D%5D"><a href="https://medium.com/@mattklein123/monorepos-please-dont-e9a279be011b">Monorepos: Please don’t!. Here we are at the beginning of 2019… | by Matt Klein | Medium</a></h3> 313 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fmedium.com%2F%40mattklein123%2Fmonorepos-please-dont-e9a279be011b%5D%5BMonorepos%3A%20Please%20don%E2%80%99t%21.%20Here%20we%20are%20at%20the%20beginning%20of%202019%E2%80%A6%20%7C%20by%20Matt%20Klein%20%7C%20Medium%5D%5D"> 314 <p> 315 <span class="timestamp-wrapper"><span class="timestamp">[2020-08-17 Mon 16:33]</span></span> 316 </p> 317 </div> 318 </div> 319 <div id="outline-container-%5B%5Bhttps%3A%2F%2Funderstandlegacycode.com%2Fblog%2Fkey-points-of-working-effectively-with-legacy-code%2F%5D%5BThe%20key%20points%20of%20Working%20Effectively%20with%20Legacy%20Code%20%E2%80%94%20Understand%20Legacy%20Code%5D%5D" class="outline-3"> 320 <h3 id="%5B%5Bhttps%3A%2F%2Funderstandlegacycode.com%2Fblog%2Fkey-points-of-working-effectively-with-legacy-code%2F%5D%5BThe%20key%20points%20of%20Working%20Effectively%20with%20Legacy%20Code%20%E2%80%94%20Understand%20Legacy%20Code%5D%5D"><a href="https://understandlegacycode.com/blog/key-points-of-working-effectively-with-legacy-code/">The key points of Working Effectively with Legacy Code — Understand Legacy Code</a></h3> 321 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Funderstandlegacycode.com%2Fblog%2Fkey-points-of-working-effectively-with-legacy-code%2F%5D%5BThe%20key%20points%20of%20Working%20Effectively%20with%20Legacy%20Code%20%E2%80%94%20Understand%20Legacy%20Code%5D%5D"> 322 <p> 323 <span class="timestamp-wrapper"><span class="timestamp">[2020-02-26 Wed 12:20]</span></span> 324 </p> 325 </div> 326 </div> 327 <div id="outline-container-%5B%5Bhttps%3A%2F%2Ftrineo.com%2Fblog%2F2020%2F01%2Fconstraint-driven-development%5D%5BConstraint%20Driven%20Development%20%7C%20Trineo%5D%5D" class="outline-3"> 328 <h3 id="%5B%5Bhttps%3A%2F%2Ftrineo.com%2Fblog%2F2020%2F01%2Fconstraint-driven-development%5D%5BConstraint%20Driven%20Development%20%7C%20Trineo%5D%5D"><a href="https://trineo.com/blog/2020/01/constraint-driven-development">Constraint Driven Development | Trineo</a></h3> 329 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Ftrineo.com%2Fblog%2F2020%2F01%2Fconstraint-driven-development%5D%5BConstraint%20Driven%20Development%20%7C%20Trineo%5D%5D"> 330 <p> 331 <span class="timestamp-wrapper"><span class="timestamp">[2020-03-29 Sun 06:15]</span></span> 332 </p> 333 </div> 334 </div> 335 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fjameshfisher.com%2F2014%2F05%2F11%2Fyour-syntax-highlighter-is-wrong%2F%5D%5BYour%20syntax%20highlighter%20is%20wrong%5D%5D" class="outline-3"> 336 <h3 id="%5B%5Bhttps%3A%2F%2Fjameshfisher.com%2F2014%2F05%2F11%2Fyour-syntax-highlighter-is-wrong%2F%5D%5BYour%20syntax%20highlighter%20is%20wrong%5D%5D"><a href="https://jameshfisher.com/2014/05/11/your-syntax-highlighter-is-wrong/">Your syntax highlighter is wrong</a></h3> 337 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fjameshfisher.com%2F2014%2F05%2F11%2Fyour-syntax-highlighter-is-wrong%2F%5D%5BYour%20syntax%20highlighter%20is%20wrong%5D%5D"> 338 <p> 339 <span class="timestamp-wrapper"><span class="timestamp">[2019-12-12 Thu 13:35]</span></span> 340 </p> 341 </div> 342 </div> 343 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fwww.benkuhn.net%2Fsyntax%5D%5BSyntax%20highlighting%20is%20backwards%20%7C%20benkuhn.net%5D%5D" class="outline-3"> 344 <h3 id="%5B%5Bhttps%3A%2F%2Fwww.benkuhn.net%2Fsyntax%5D%5BSyntax%20highlighting%20is%20backwards%20%7C%20benkuhn.net%5D%5D"><a href="https://www.benkuhn.net/syntax">Syntax highlighting is backwards | benkuhn.net</a></h3> 345 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fwww.benkuhn.net%2Fsyntax%5D%5BSyntax%20highlighting%20is%20backwards%20%7C%20benkuhn.net%5D%5D"> 346 <p> 347 <span class="timestamp-wrapper"><span class="timestamp">[2020-03-02 Mon 17:02]</span></span> 348 </p> 349 </div> 350 </div> 351 <div id="outline-container-%5B%5Bhttps%3A%2F%2Flukeplant.me.uk%2Fblog%2Fposts%2Fwhy-im-leaving-elm%2F%5D%5BWhy%20I%E2%80%99m%20leaving%C2%A0Elm%20-%20lukeplant.me.uk%5D%5D" class="outline-3"> 352 <h3 id="%5B%5Bhttps%3A%2F%2Flukeplant.me.uk%2Fblog%2Fposts%2Fwhy-im-leaving-elm%2F%5D%5BWhy%20I%E2%80%99m%20leaving%C2%A0Elm%20-%20lukeplant.me.uk%5D%5D"><a href="https://lukeplant.me.uk/blog/posts/why-im-leaving-elm/">Why I’m leaving Elm - lukeplant.me.uk</a></h3> 353 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Flukeplant.me.uk%2Fblog%2Fposts%2Fwhy-im-leaving-elm%2F%5D%5BWhy%20I%E2%80%99m%20leaving%C2%A0Elm%20-%20lukeplant.me.uk%5D%5D"> 354 <p> 355 <span class="timestamp-wrapper"><span class="timestamp">[2020-04-09 Thu 19:48]</span></span> 356 </p> 357 </div> 358 </div> 359 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fandreyorst.gitlab.io%2Fposts%2F2020-04-29-text-editors%2F%5D%5BText%20Editors%20%E2%80%93%20Andrey%C2%A0Orst%5D%5D" class="outline-3"> 360 <h3 id="%5B%5Bhttps%3A%2F%2Fandreyorst.gitlab.io%2Fposts%2F2020-04-29-text-editors%2F%5D%5BText%20Editors%20%E2%80%93%20Andrey%C2%A0Orst%5D%5D"><a href="https://andreyorst.gitlab.io/posts/2020-04-29-text-editors/">Text Editors – Andrey Orst</a></h3> 361 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fandreyorst.gitlab.io%2Fposts%2F2020-04-29-text-editors%2F%5D%5BText%20Editors%20%E2%80%93%20Andrey%C2%A0Orst%5D%5D"> 362 <p> 363 <span class="timestamp-wrapper"><span class="timestamp">[2020-05-14 Thu 12:31]</span></span> 364 </p> 365 </div> 366 </div> 367 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fcodewithoutrules.com%2F2020%2F04%2F20%2Fproductivity-skills%2F%5D%5BThe%20secret%20skills%20of%20productive%20programmers%5D%5D" class="outline-3"> 368 <h3 id="%5B%5Bhttps%3A%2F%2Fcodewithoutrules.com%2F2020%2F04%2F20%2Fproductivity-skills%2F%5D%5BThe%20secret%20skills%20of%20productive%20programmers%5D%5D"><a href="https://codewithoutrules.com/2020/04/20/productivity-skills/">The secret skills of productive programmers</a></h3> 369 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fcodewithoutrules.com%2F2020%2F04%2F20%2Fproductivity-skills%2F%5D%5BThe%20secret%20skills%20of%20productive%20programmers%5D%5D"> 370 <p> 371 <span class="timestamp-wrapper"><span class="timestamp">[2020-05-15 Fri 14:33]</span></span> 372 </p> 373 </div> 374 </div> 375 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fcodewithoutrules.com%2F2020%2F05%2F14%2Fprepare-losing-job%2F%5D%5BHow%20to%20prepare%20for%20losing%20your%20programming%20job%5D%5D" class="outline-3"> 376 <h3 id="%5B%5Bhttps%3A%2F%2Fcodewithoutrules.com%2F2020%2F05%2F14%2Fprepare-losing-job%2F%5D%5BHow%20to%20prepare%20for%20losing%20your%20programming%20job%5D%5D"><a href="https://codewithoutrules.com/2020/05/14/prepare-losing-job/">How to prepare for losing your programming job</a></h3> 377 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fcodewithoutrules.com%2F2020%2F05%2F14%2Fprepare-losing-job%2F%5D%5BHow%20to%20prepare%20for%20losing%20your%20programming%20job%5D%5D"> 378 <p> 379 <span class="timestamp-wrapper"><span class="timestamp">[2020-05-15 Fri 14:33]</span></span> 380 </p> 381 </div> 382 </div> 383 <div id="outline-container-%5B%5Bhttps%3A%2F%2Ficyphox.sh%2Fblog%2Fsimplicity-security%2F%5D%5BSimplicity%20%28mostly%29%20guarantees%20security%5D%5D" class="outline-3"> 384 <h3 id="%5B%5Bhttps%3A%2F%2Ficyphox.sh%2Fblog%2Fsimplicity-security%2F%5D%5BSimplicity%20%28mostly%29%20guarantees%20security%5D%5D"><a href="https://icyphox.sh/blog/simplicity-security/">Simplicity (mostly) guarantees security</a></h3> 385 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Ficyphox.sh%2Fblog%2Fsimplicity-security%2F%5D%5BSimplicity%20%28mostly%29%20guarantees%20security%5D%5D"> 386 <p> 387 <span class="timestamp-wrapper"><span class="timestamp">[2020-05-16 Sat 15:17]</span></span> 388 </p> 389 </div> 390 </div> 391 <div id="outline-container-%5B%5Bhttp%3A%2F%2Fthemediocreprogrammer.com%2Fbuild%2Fhtml%2Fthe_mediocre_programmer.html%5D%5BThe%20Mediocre%20Programmer%5D%5D" class="outline-3"> 392 <h3 id="%5B%5Bhttp%3A%2F%2Fthemediocreprogrammer.com%2Fbuild%2Fhtml%2Fthe_mediocre_programmer.html%5D%5BThe%20Mediocre%20Programmer%5D%5D"><a href="http://themediocreprogrammer.com/build/html/the_mediocre_programmer.html">The Mediocre Programmer</a>   <span class="tag"><span class="_read">#read</span></span></h3> 393 <div class="outline-text-3" id="text-%5B%5Bhttp%3A%2F%2Fthemediocreprogrammer.com%2Fbuild%2Fhtml%2Fthe_mediocre_programmer.html%5D%5BThe%20Mediocre%20Programmer%5D%5D"> 394 <p> 395 <span class="timestamp-wrapper"><span class="timestamp">[2020-05-25 Mon 11:10]</span></span> 396 </p> 397 </div> 398 </div> 399 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fmichaelfeathers.silvrback.com%2Ffunctional-code-is-honest-code%5D%5BMichael%20Feathers%20-%20Functional%20Code%20is%20Honest%20Code%5D%5D" class="outline-3"> 400 <h3 id="%5B%5Bhttps%3A%2F%2Fmichaelfeathers.silvrback.com%2Ffunctional-code-is-honest-code%5D%5BMichael%20Feathers%20-%20Functional%20Code%20is%20Honest%20Code%5D%5D"><a href="https://michaelfeathers.silvrback.com/functional-code-is-honest-code">Michael Feathers - Functional Code is Honest Code</a></h3> 401 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fmichaelfeathers.silvrback.com%2Ffunctional-code-is-honest-code%5D%5BMichael%20Feathers%20-%20Functional%20Code%20is%20Honest%20Code%5D%5D"> 402 <p> 403 <span class="timestamp-wrapper"><span class="timestamp">[2020-06-23 Tue 17:39]</span></span> 404 </p> 405 </div> 406 </div> 407 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fmichaelfeathers.silvrback.com%2Ftesting-warranties%5D%5BMichael%20Feathers%20-%20Testing%20Warranties%5D%5D" class="outline-3"> 408 <h3 id="%5B%5Bhttps%3A%2F%2Fmichaelfeathers.silvrback.com%2Ftesting-warranties%5D%5BMichael%20Feathers%20-%20Testing%20Warranties%5D%5D"><a href="https://michaelfeathers.silvrback.com/testing-warranties">Michael Feathers - Testing Warranties</a></h3> 409 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fmichaelfeathers.silvrback.com%2Ftesting-warranties%5D%5BMichael%20Feathers%20-%20Testing%20Warranties%5D%5D"> 410 <p> 411 <span class="timestamp-wrapper"><span class="timestamp">[2020-06-23 Tue 17:39]</span></span> 412 </p> 413 </div> 414 </div> 415 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fqntm.org%2Fclean%5D%5BIt%27s%20probably%20time%20to%20stop%20recommending%20Clean%20Code%20%40%20Things%20Of%20Interest%5D%5D" class="outline-3"> 416 <h3 id="%5B%5Bhttps%3A%2F%2Fqntm.org%2Fclean%5D%5BIt%27s%20probably%20time%20to%20stop%20recommending%20Clean%20Code%20%40%20Things%20Of%20Interest%5D%5D"><a href="https://qntm.org/clean">It’s probably time to stop recommending Clean Code @ Things Of Interest</a></h3> 417 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fqntm.org%2Fclean%5D%5BIt%27s%20probably%20time%20to%20stop%20recommending%20Clean%20Code%20%40%20Things%20Of%20Interest%5D%5D"> 418 <p> 419 <span class="timestamp-wrapper"><span class="timestamp">[2020-06-29 Mon 17:01]</span></span> 420 </p> 421 </div> 422 </div> 423 <div id="outline-container-%5B%5Bhttps%3A%2F%2Ftomgamon.com%2Fposts%2F2020-08-25-dont-marry-your-design%2F%5D%5BDon%27t%20marry%20your%20design%20after%20the%20first%20date%20-%20Tom%20Gamon%5D%5D" class="outline-3"> 424 <h3 id="%5B%5Bhttps%3A%2F%2Ftomgamon.com%2Fposts%2F2020-08-25-dont-marry-your-design%2F%5D%5BDon%27t%20marry%20your%20design%20after%20the%20first%20date%20-%20Tom%20Gamon%5D%5D"><a href="https://tomgamon.com/posts/2020-08-25-dont-marry-your-design/">Don’t marry your design after the first date - Tom Gamon</a></h3> 425 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Ftomgamon.com%2Fposts%2F2020-08-25-dont-marry-your-design%2F%5D%5BDon%27t%20marry%20your%20design%20after%20the%20first%20date%20-%20Tom%20Gamon%5D%5D"> 426 <p> 427 <span class="timestamp-wrapper"><span class="timestamp">[2020-08-26 Wed 16:14]</span></span> 428 </p> 429 </div> 430 </div> 431 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fphaazon.net%2Fblog%2Feditors-in-2020%5D%5BMy%20thoughts%20about%20editors%20in%202020%20%E2%80%93%20phaazon.net%5D%5D" class="outline-3"> 432 <h3 id="%5B%5Bhttps%3A%2F%2Fphaazon.net%2Fblog%2Feditors-in-2020%5D%5BMy%20thoughts%20about%20editors%20in%202020%20%E2%80%93%20phaazon.net%5D%5D"><a href="https://phaazon.net/blog/editors-in-2020">My thoughts about editors in 2020 – phaazon.net</a></h3> 433 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fphaazon.net%2Fblog%2Feditors-in-2020%5D%5BMy%20thoughts%20about%20editors%20in%202020%20%E2%80%93%20phaazon.net%5D%5D"> 434 <p> 435 <span class="timestamp-wrapper"><span class="timestamp">[2020-09-07 Mon 10:28]</span></span> 436 </p> 437 438 <p> 439 Because I think the speed doesn’t matter when programming, I think the most important part to remember here is the comfort: the wrists don’t move and my fingers fly around the keyboard, whatever the speed. 440 </p> 441 </div> 442 </div> 443 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fnoelwelsh.com%2Fposts%2F2020-07-05-what-and-why-fp.html%5D%5BNoel%20Welsh%3A%20What%20Functional%20Programming%20Is%2C%20What%20it%20Isn%27t%2C%20and%20Why%20it%20Matters%5D%5D" class="outline-3"> 444 <h3 id="%5B%5Bhttps%3A%2F%2Fnoelwelsh.com%2Fposts%2F2020-07-05-what-and-why-fp.html%5D%5BNoel%20Welsh%3A%20What%20Functional%20Programming%20Is%2C%20What%20it%20Isn%27t%2C%20and%20Why%20it%20Matters%5D%5D"><a href="https://noelwelsh.com/posts/2020-07-05-what-and-why-fp.html">Noel Welsh: What Functional Programming Is, What it Isn’t, and Why it Matters</a></h3> 445 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fnoelwelsh.com%2Fposts%2F2020-07-05-what-and-why-fp.html%5D%5BNoel%20Welsh%3A%20What%20Functional%20Programming%20Is%2C%20What%20it%20Isn%27t%2C%20and%20Why%20it%20Matters%5D%5D"> 446 <p> 447 <span class="timestamp-wrapper"><span class="timestamp">[2020-09-07 Mon 16:07]</span></span> 448 </p> 449 </div> 450 </div> 451 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fjosephg.com%2Fblog%2F3-tribes%2F%5D%5B3%20tribes%20of%20programming%5D%5D" class="outline-3"> 452 <h3 id="%5B%5Bhttps%3A%2F%2Fjosephg.com%2Fblog%2F3-tribes%2F%5D%5B3%20tribes%20of%20programming%5D%5D"><a href="https://josephg.com/blog/3-tribes/">3 tribes of programming</a></h3> 453 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fjosephg.com%2Fblog%2F3-tribes%2F%5D%5B3%20tribes%20of%20programming%5D%5D"> 454 <p> 455 <span class="timestamp-wrapper"><span class="timestamp">[2020-09-23 Wed 12:12]</span></span> 456 </p> 457 </div> 458 </div> 459 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fjfmengels.net%2Fsafe-dead-code-removal%2F%3Flobsters%5D%5BSafe%20dead%20code%20removal%20in%20a%20pure%20functional%20language%20%7C%20jfmengels%27%20blog%5D%5D" class="outline-3"> 460 <h3 id="%5B%5Bhttps%3A%2F%2Fjfmengels.net%2Fsafe-dead-code-removal%2F%3Flobsters%5D%5BSafe%20dead%20code%20removal%20in%20a%20pure%20functional%20language%20%7C%20jfmengels%27%20blog%5D%5D"><a href="https://jfmengels.net/safe-dead-code-removal/?lobsters">Safe dead code removal in a pure functional language | jfmengels’ blog</a></h3> 461 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fjfmengels.net%2Fsafe-dead-code-removal%2F%3Flobsters%5D%5BSafe%20dead%20code%20removal%20in%20a%20pure%20functional%20language%20%7C%20jfmengels%27%20blog%5D%5D"> 462 <p> 463 <span class="timestamp-wrapper"><span class="timestamp">[2021-01-29 Fri 10:28]</span></span> 464 </p> 465 </div> 466 </div> 467 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fwww.unixsheikh.com%2Farticles%2Fcode-navigation-design-patterns-and-too-many-functions.html%5D%5BCode%20Navigation%2C%20Design%20Patterns%2C%20and%20Too%20Many%20Functions%5D%5D" class="outline-3"> 468 <h3 id="%5B%5Bhttps%3A%2F%2Fwww.unixsheikh.com%2Farticles%2Fcode-navigation-design-patterns-and-too-many-functions.html%5D%5BCode%20Navigation%2C%20Design%20Patterns%2C%20and%20Too%20Many%20Functions%5D%5D"><a href="https://www.unixsheikh.com/articles/code-navigation-design-patterns-and-too-many-functions.html">Code Navigation, Design Patterns, and Too Many Functions</a></h3> 469 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fwww.unixsheikh.com%2Farticles%2Fcode-navigation-design-patterns-and-too-many-functions.html%5D%5BCode%20Navigation%2C%20Design%20Patterns%2C%20and%20Too%20Many%20Functions%5D%5D"> 470 <p> 471 <span class="timestamp-wrapper"><span class="timestamp">[2020-10-27 Tue 16:21]</span></span> 472 </p> 473 </div> 474 </div> 475 <div id="outline-container-%5B%5Bhttp%3A%2F%2Fbrooker.co.za%2Fblog%2F2020%2F06%2F23%2Fcode.html%5D%5BCode%20Only%20Says%20What%20it%20Does%20-%20Marc%27s%20Blog%5D%5D" class="outline-3"> 476 <h3 id="%5B%5Bhttp%3A%2F%2Fbrooker.co.za%2Fblog%2F2020%2F06%2F23%2Fcode.html%5D%5BCode%20Only%20Says%20What%20it%20Does%20-%20Marc%27s%20Blog%5D%5D"><a href="http://brooker.co.za/blog/2020/06/23/code.html">Code Only Says What it Does - Marc’s Blog</a></h3> 477 <div class="outline-text-3" id="text-%5B%5Bhttp%3A%2F%2Fbrooker.co.za%2Fblog%2F2020%2F06%2F23%2Fcode.html%5D%5BCode%20Only%20Says%20What%20it%20Does%20-%20Marc%27s%20Blog%5D%5D"> 478 <p> 479 <span class="timestamp-wrapper"><span class="timestamp">[2020-10-27 Tue 16:22]</span></span> 480 </p> 481 </div> 482 </div> 483 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fjoshwcomeau.com%2Faccessibility%2Fhands-free-coding%2F%5D%5BCoding%20with%20voice%20dictation%20using%20Talon%20Voice%20%C2%B7%20Josh%20W%20Comeau%5D%5D" class="outline-3"> 484 <h3 id="%5B%5Bhttps%3A%2F%2Fjoshwcomeau.com%2Faccessibility%2Fhands-free-coding%2F%5D%5BCoding%20with%20voice%20dictation%20using%20Talon%20Voice%20%C2%B7%20Josh%20W%20Comeau%5D%5D"><a href="https://joshwcomeau.com/accessibility/hands-free-coding/">Coding with voice dictation using Talon Voice · Josh W Comeau</a></h3> 485 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fjoshwcomeau.com%2Faccessibility%2Fhands-free-coding%2F%5D%5BCoding%20with%20voice%20dictation%20using%20Talon%20Voice%20%C2%B7%20Josh%20W%20Comeau%5D%5D"> 486 <p> 487 <span class="timestamp-wrapper"><span class="timestamp">[2020-10-22 Thu 10:50]</span></span> 488 </p> 489 </div> 490 </div> 491 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fthereader.mitpress.mit.edu%2Fhabits-of-expert-software-designers%2F%5D%5BEight%20Habits%20of%20Expert%20Software%20Designers%3A%20An%20Illustrated%20Guide%20%7C%20The%20MIT%20Press%20Reader%5D%5D" class="outline-3"> 492 <h3 id="%5B%5Bhttps%3A%2F%2Fthereader.mitpress.mit.edu%2Fhabits-of-expert-software-designers%2F%5D%5BEight%20Habits%20of%20Expert%20Software%20Designers%3A%20An%20Illustrated%20Guide%20%7C%20The%20MIT%20Press%20Reader%5D%5D"><a href="https://thereader.mitpress.mit.edu/habits-of-expert-software-designers/">Eight Habits of Expert Software Designers: An Illustrated Guide | The MIT Press Reader</a></h3> 493 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fthereader.mitpress.mit.edu%2Fhabits-of-expert-software-designers%2F%5D%5BEight%20Habits%20of%20Expert%20Software%20Designers%3A%20An%20Illustrated%20Guide%20%7C%20The%20MIT%20Press%20Reader%5D%5D"> 494 <p> 495 <span class="timestamp-wrapper"><span class="timestamp">[2019-10-10 Thu 14:38]</span></span> 496 </p> 497 </div> 498 </div> 499 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fwww.inkandswitch.com%2Fend-user-programming.html%5D%5BEnd-user%20programming%5D%5D" class="outline-3"> 500 <h3 id="%5B%5Bhttps%3A%2F%2Fwww.inkandswitch.com%2Fend-user-programming.html%5D%5BEnd-user%20programming%5D%5D"><a href="https://www.inkandswitch.com/end-user-programming.html">End-user programming</a>   <span class="tag"><span class="inkandswitch">inkandswitch</span></span></h3> 501 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fwww.inkandswitch.com%2Fend-user-programming.html%5D%5BEnd-user%20programming%5D%5D"> 502 <p> 503 <span class="timestamp-wrapper"><span class="timestamp">[2020-02-08 Sat 18:02]</span></span> 504 </p> 505 </div> 506 </div> 507 <div id="outline-container-%5B%5Bhttps%3A%2F%2F8thlight.com%2Fblog%2Fjavier-garc%2525C3%2525ADa%2F2019%2F10%2F29%2Ffunctional-lessons.html%5D%5BFunctional%20lessons%20learnt%20%7C%208th%20Light%5D%5D" class="outline-3"> 508 <h3 id="%5B%5Bhttps%3A%2F%2F8thlight.com%2Fblog%2Fjavier-garc%2525C3%2525ADa%2F2019%2F10%2F29%2Ffunctional-lessons.html%5D%5BFunctional%20lessons%20learnt%20%7C%208th%20Light%5D%5D"><a href="https://8thlight.com/blog/javier-garc%25C3%25ADa/2019/10/29/functional-lessons.html">Functional lessons learnt | 8th Light</a></h3> 509 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2F8thlight.com%2Fblog%2Fjavier-garc%2525C3%2525ADa%2F2019%2F10%2F29%2Ffunctional-lessons.html%5D%5BFunctional%20lessons%20learnt%20%7C%208th%20Light%5D%5D"> 510 <p> 511 <span class="timestamp-wrapper"><span class="timestamp">[2019-11-06 Wed 09:29]</span></span> 512 </p> 513 </div> 514 </div> 515 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fdanluu.com%2Fmonorepo%2F%5D%5BAdvantages%20of%20monorepos%5D%5D" class="outline-3"> 516 <h3 id="%5B%5Bhttps%3A%2F%2Fdanluu.com%2Fmonorepo%2F%5D%5BAdvantages%20of%20monorepos%5D%5D"><a href="https://danluu.com/monorepo/">Advantages of monorepos</a></h3> 517 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fdanluu.com%2Fmonorepo%2F%5D%5BAdvantages%20of%20monorepos%5D%5D"> 518 <p> 519 <span class="timestamp-wrapper"><span class="timestamp">[2022-06-27 Mon 18:01]</span></span> 520 </p> 521 </div> 522 </div> 523 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fdeterminate.systems%2Fposts%2Fintroducing-riff%5D%5BIntroducing%20Riff%20%E2%80%94%20Determinate%20Systems%5D%5D" class="outline-3"> 524 <h3 id="%5B%5Bhttps%3A%2F%2Fdeterminate.systems%2Fposts%2Fintroducing-riff%5D%5BIntroducing%20Riff%20%E2%80%94%20Determinate%20Systems%5D%5D"><a href="https://determinate.systems/posts/introducing-riff">Introducing Riff — Determinate Systems</a></h3> 525 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fdeterminate.systems%2Fposts%2Fintroducing-riff%5D%5BIntroducing%20Riff%20%E2%80%94%20Determinate%20Systems%5D%5D"> 526 <p> 527 <span class="timestamp-wrapper"><span class="timestamp">[2022-09-13 Tue 20:26]</span></span> 528 </p> 529 </div> 530 </div> 531 <div id="outline-container-Misc.--%5B%5Bhttps%3A%2F%2Fdanluu.com%2Fmonorepo%2F%5D%5BAdvantages%20of%20monorepos%5D%5D" class="outline-3"> 532 <h3 id="Misc.--%5B%5Bhttps%3A%2F%2Fdanluu.com%2Fmonorepo%2F%5D%5BAdvantages%20of%20monorepos%5D%5D"><a href="https://danluu.com/monorepo/">Advantages of monorepos</a></h3> 533 </div> 534 535 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fkevincox.ca%2F2022%2F06%2F14%2Fsmall-tools%2F%5D%5BMy%20favourite%20small%20tools%2C%20scripts%20and%20aliases%5D%5D" class="outline-3"> 536 <h3 id="%5B%5Bhttps%3A%2F%2Fkevincox.ca%2F2022%2F06%2F14%2Fsmall-tools%2F%5D%5BMy%20favourite%20small%20tools%2C%20scripts%20and%20aliases%5D%5D"><a href="https://kevincox.ca/2022/06/14/small-tools/">My favourite small tools, scripts and aliases</a></h3> 537 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fkevincox.ca%2F2022%2F06%2F14%2Fsmall-tools%2F%5D%5BMy%20favourite%20small%20tools%2C%20scripts%20and%20aliases%5D%5D"> 538 <p> 539 <span class="timestamp-wrapper"><span class="timestamp">[2022-07-29 Fri 14:51]</span></span> 540 </p> 541 </div> 542 </div> 543 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fbenjamincongdon.me%2Fblog%2F2022%2F07%2F17%2FIn-Praise-of-Stacked-PRs%2F%5D%5BIn%20Praise%20of%20Stacked%20PRs%20%7C%20Ben%20Congdon%5D%5D" class="outline-3"> 544 <h3 id="%5B%5Bhttps%3A%2F%2Fbenjamincongdon.me%2Fblog%2F2022%2F07%2F17%2FIn-Praise-of-Stacked-PRs%2F%5D%5BIn%20Praise%20of%20Stacked%20PRs%20%7C%20Ben%20Congdon%5D%5D"><a href="https://benjamincongdon.me/blog/2022/07/17/In-Praise-of-Stacked-PRs/">In Praise of Stacked PRs | Ben Congdon</a></h3> 545 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fbenjamincongdon.me%2Fblog%2F2022%2F07%2F17%2FIn-Praise-of-Stacked-PRs%2F%5D%5BIn%20Praise%20of%20Stacked%20PRs%20%7C%20Ben%20Congdon%5D%5D"> 546 <p> 547 <span class="timestamp-wrapper"><span class="timestamp">[2022-09-19 Mon 20:59]</span></span> 548 </p> 549 </div> 550 </div> 551 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fgithub.com%2Funtitaker%2Fquickenv%5D%5Buntitaker%2Fquickenv%3A%20An%20unintrusive%20environment%20manager%5D%5D" class="outline-3"> 552 <h3 id="%5B%5Bhttps%3A%2F%2Fgithub.com%2Funtitaker%2Fquickenv%5D%5Buntitaker%2Fquickenv%3A%20An%20unintrusive%20environment%20manager%5D%5D"><a href="https://github.com/untitaker/quickenv">untitaker/quickenv: An unintrusive environment manager</a></h3> 553 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fgithub.com%2Funtitaker%2Fquickenv%5D%5Buntitaker%2Fquickenv%3A%20An%20unintrusive%20environment%20manager%5D%5D"> 554 <p> 555 <span class="timestamp-wrapper"><span class="timestamp">[2022-09-19 Mon 21:02]</span></span> 556 </p> 557 558 <p> 559 To try 560 </p> 561 </div> 562 </div> 563 </section> 564 <section id="outline-container-Workspace" class="outline-2"> 565 <h2 id="Workspace">Workspace</h2> 566 <div class="outline-text-2" id="text-Workspace"> 567 <p> 568 Articles around workspaces remote or localhost and dev experience. 569 </p> 570 </div> 571 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fblog.palantir.com%2Fthe-benefits-of-remote-ephemeral-workspaces-1a1251ed6e53%5D%5BBenefits%20of%20Remote%20Ephemeral%20Workspaces%20%7C%20Palantir%20%7C%20Palantir%20Blog%5D%5D" class="outline-3"> 572 <h3 id="%5B%5Bhttps%3A%2F%2Fblog.palantir.com%2Fthe-benefits-of-remote-ephemeral-workspaces-1a1251ed6e53%5D%5BBenefits%20of%20Remote%20Ephemeral%20Workspaces%20%7C%20Palantir%20%7C%20Palantir%20Blog%5D%5D"><a href="https://blog.palantir.com/the-benefits-of-remote-ephemeral-workspaces-1a1251ed6e53">Benefits of Remote Ephemeral Workspaces | Palantir | Palantir Blog</a></h3> 573 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fblog.palantir.com%2Fthe-benefits-of-remote-ephemeral-workspaces-1a1251ed6e53%5D%5BBenefits%20of%20Remote%20Ephemeral%20Workspaces%20%7C%20Palantir%20%7C%20Palantir%20Blog%5D%5D"> 574 <p> 575 <span class="timestamp-wrapper"><span class="timestamp">[2022-07-13 Wed 18:12]</span></span> 576 </p> 577 </div> 578 </div> 579 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fdx.tips%2Fthe-end-of-localhost%5D%5BThe%20End%20of%20Localhost%5D%5D" class="outline-3"> 580 <h3 id="%5B%5Bhttps%3A%2F%2Fdx.tips%2Fthe-end-of-localhost%5D%5BThe%20End%20of%20Localhost%5D%5D"><a href="https://dx.tips/the-end-of-localhost">The End of Localhost</a></h3> 581 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fdx.tips%2Fthe-end-of-localhost%5D%5BThe%20End%20of%20Localhost%5D%5D"> 582 <p> 583 <span class="timestamp-wrapper"><span class="timestamp">[2022-07-13 Wed 18:14]</span></span> 584 </p> 585 </div> 586 </div> 587 <div id="outline-container-%5B%5Bhttps%3A%2F%2Fgithub.com%2Freadme%2Fguides%2Fdeveloper-onboarding%5D%5BOptimize%20local%20dev%20environments%20for%20better%20onboarding%5D%5D" class="outline-3"> 588 <h3 id="%5B%5Bhttps%3A%2F%2Fgithub.com%2Freadme%2Fguides%2Fdeveloper-onboarding%5D%5BOptimize%20local%20dev%20environments%20for%20better%20onboarding%5D%5D"><a href="https://github.com/readme/guides/developer-onboarding">Optimize local dev environments for better onboarding</a></h3> 589 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Fgithub.com%2Freadme%2Fguides%2Fdeveloper-onboarding%5D%5BOptimize%20local%20dev%20environments%20for%20better%20onboarding%5D%5D"> 590 <p> 591 <span class="timestamp-wrapper"><span class="timestamp">[2022-07-13 Wed 18:16]</span></span> 592 </p> 593 </div> 594 </div> 595 <div id="outline-container-%5B%5Bhttps%3A%2F%2Famberwilson.co.uk%2Fblog%2Fhow-to-approach-a-new-codebase%2F%5D%5BHow%20to%20Approach%20a%20New%20Codebase%20%7C%20Amber%20Wilson%5D%5D" class="outline-3"> 596 <h3 id="%5B%5Bhttps%3A%2F%2Famberwilson.co.uk%2Fblog%2Fhow-to-approach-a-new-codebase%2F%5D%5BHow%20to%20Approach%20a%20New%20Codebase%20%7C%20Amber%20Wilson%5D%5D"><a href="https://amberwilson.co.uk/blog/how-to-approach-a-new-codebase/">How to Approach a New Codebase | Amber Wilson</a></h3> 597 <div class="outline-text-3" id="text-%5B%5Bhttps%3A%2F%2Famberwilson.co.uk%2Fblog%2Fhow-to-approach-a-new-codebase%2F%5D%5BHow%20to%20Approach%20a%20New%20Codebase%20%7C%20Amber%20Wilson%5D%5D"> 598 <p> 599 <span class="timestamp-wrapper"><span class="timestamp">[2022-07-15 Fri 13:31]</span></span> 600 </p> 601 </div> 602 </div> 603 </section> 604 </main> 605 <footer id="postamble" class="status"> 606 <footer> 607 <small><a href="/" rel="history">Index</a> • <a href="/sitemap.html">Sitemap</a> • <a href="https://dl.sbr.pm/">Files</a></small><br/> 608 <small class='questions'>Questions, comments ? Please use my <a href="https://lists.sr.ht/~vdemeester/public-inbox">public inbox</a> by sending a plain-text email to <a href="mailto:~vdemeester/public-inbox@lists.sr.ht">~vdemeester/public-inbox@lists.sr.ht</a>.</small><br/> 609 <small class='copyright'> 610 Content and design by Vincent Demeester 611 (<a rel='licence' href='http://creativecommons.org/licenses/by-nc-sa/3.0/'>Some rights reserved</a>) 612 </small><br /> 613 </footer> 614 </footer> 615 </body> 616 </html>