CINXE.COM

Software - Ciro Santilli

<!doctype html> <html lang=en> <head> <meta charset=utf-8> <title>Software - Ciro Santilli</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.10.1/css/all.min.css" integrity="sha512-9my9Mb2+0YO+I4PUCSwUYO7sEK21Y0STBAiFEYoWtd2VzLEZZ4QARDrZ30hdM1GlioHJ8o8cWQiy8IAb1hy/Hg==" crossorigin="anonymous" referrerpolicy="no-referrer"> <style>@import "_obb/dist/ourbigbook.css"; </style> <link rel="stylesheet" type="text/css" href="_raw/main.css"> <link rel="shortcut icon" type="image/x-icon" href="https://raw.githubusercontent.com/cirosantilli/media/master/ID_photo_of_Ciro_Santilli_taken_in_2013_square_398.jpg"> </head> <body> <header> <div class="brand-group"> <a href="." class="brand"><img src="https://raw.githubusercontent.com/cirosantilli/media/master/ID_photo_of_Ciro_Santilli_taken_in_2013_right_eye_200_100.jpg" loading="lazy" alt="ID photo of Ciro Santilli taken in 2013 right eye">Ciro Santilli</a> <a href="https://ourbigbook.com/cirosantilli"><img src="https://raw.githubusercontent.com/cirosantilli/media/master/ourbigbook-logo-v1.svg" loading="lazy" alt="OurBigBook logo">OurBigBook.com</a> <a class="font-awesome-container" href="https://stackoverflow.com/users/895245"><i class="fab fa-stack-overflow fa-fw icon"></i></a> <a class="font-awesome-container" href="https://github.com/cirosantilli"><i class="fab fa-github fa-fw icon"></i></a> <a class="font-awesome-container" href="https://www.linkedin.com/in/cirosantilli"><i class="fab fa-linkedin fa-fw icon"></i></a> <a class="font-awesome-container" href="https://www.youtube.com/c/CiroSantilli"><i class="fab fa-youtube fa-fw icon"></i></a> <a class="font-awesome-container" href="https://twitter.com/cirosantilli"><i class="fab fa-twitter fa-fw icon"></i></a> <a class="font-awesome-container" href="https://www.zhihu.com/people/cirosantilli/activities"><i class="fab fa-zhihu fa-fw icon"></i></a> <a class="font-awesome-container" href="https://www.weibo.com/p/1005055601627311"><i class="fab fa-weibo fa-fw icon"></i></a> <a href="sponsor"><span class="icon">$£</span>&nbsp;Sponsor</a> <a href="https://github.com/cirosantilli/china-dictatorship"><span class="icon">中国</span>独裁统治&nbsp;China Dictatorship 新疆改造中心、六四事件、法轮功、郝海东、709大抓捕、2015巴拿马文件 邓家贵、低端人口、西藏骚乱</a> </div> </header> <main class="ourbigbook"> <div class="h top" id="software"><div class="notnav"><h1><a href="software-split">Software</a></h1></div><nav class="h-nav h-nav-toplevel"><div class="nav ancestors"><a href="."><span title="Home" class="fa-solid-900 icon"></span> Home</a><a href="technology"> Technology</a><a href="technology#area-of-technology"> Area of technology</a><a href="technology#information-technology"> Information technology</a><a href="computer"> Computer</a></div><div class="nav"><a href="#_toc" class="toc"></a><a href="https://en.wikipedia.org/wiki/Software" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><a class="split" href="software-split"></a><span class="metrics"><span class="wcntr"> Words: 43k</span><span class="dcnt"> Articles: 1k</span></span></div></nav></div><div class="toc-container" id="_toc"><ul><li class="has-child toplevel"><div class="title-div"><div class="arrow"><div></div></div><span class="not-arrow"><a class="title toc" href="#_toc"> Table of contents</a><input class="search" placeholder="🔍 Search. Shortcut: / (slash)"></input><span class="hover-metadata"><span class="metrics"><span class="wcntr"> 43k</span><span class="dcnt"> 1k</span></span></span></span></div><ul><li><div id="_toc/the-art-of-programming"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#the-art-of-programming">The art of programming</a><span class="hover-metadata"><a class="split" href="the-art-of-programming"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 34</span></span></span></span></div></li><li class="has-child"><div id="_toc/build-automation"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#build-automation">Build automation</a><span class="hover-metadata"><a class="split" href="build-automation"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 25</span><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/cmake"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#cmake">CMake</a><span class="hover-metadata"><a class="split" href="cmake"></a><a href="#_toc/build-automation" class="u"> Build automation</a><span class="metrics"><span class="wcntr"> 25</span></span></span></span></div></li><li class="has-child"><div id="_toc/make-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#make-software">make <span class="meta">(software)</span></a><span class="hover-metadata"><a class="split" href="make-software"></a><a href="#_toc/build-automation" class="u"> Build automation</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/gnu-make"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gnu-make">GNU make</a><span class="hover-metadata"><a class="split" href="gnu-make"></a><a href="#_toc/make-software" class="u"> make</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/compiler"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#compiler">Compiler</a><span class="hover-metadata"><a class="split" href="compiler"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 638</span><span class="dcnt"> 28</span></span></span></span></div><ul><li class="has-child"><div id="_toc/compiler-toolchain"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#compiler-toolchain">Compiler toolchain</a><span class="hover-metadata"><a class="split" href="compiler-toolchain"></a><a href="#_toc/compiler" class="u"> Compiler</a><span class="metrics"><span class="wcntr"> 51</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/linker-computing"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#linker-computing">Linker <span class="meta">(computing)</span></a><span class="hover-metadata"><a class="split" href="linker-computing"></a><a href="#_toc/compiler-toolchain" class="u"> Compiler toolchain</a><span class="metrics"><span class="wcntr"> 44</span></span></span></span></div></li></ul><li class="has-child"><div id="_toc/binutils"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#binutils">Binutils</a><span class="hover-metadata"><a class="split" href="binutils"></a><a href="#_toc/compiler" class="u"> Compiler</a><span class="metrics"><span class="wcntr"> 4</span><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/binutils-utility"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#binutils-utility">Binutils utility</a><span class="hover-metadata"><a class="split" href="binutils-utility"></a><a href="#_toc/binutils" class="u"> Binutils</a><span class="metrics"><span class="wcntr"> 4</span><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/strings-binutils"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#strings-binutils">strings <span class="meta">(Binutils)</span></a><span class="hover-metadata"><a class="split" href="strings-binutils"></a><a href="#_toc/binutils-utility" class="u"> Binutils utility</a></span></span></div></li><li><div id="_toc/find-utf-8-strings-with-binutils-strings-binutils"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#find-utf-8-strings-with-binutils-strings-binutils">Find UTF-8 strings with Binutils <code>strings</code> <span class="meta">(Binutils)</span></a><span class="hover-metadata"><a class="split" href="find-utf-8-strings-with-binutils-strings-binutils"></a><a href="#_toc/binutils-utility" class="u"> Binutils utility</a><span class="metrics"><span class="wcntr"> 4</span></span></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/automatic-programming"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#automatic-programming">Automatic programming</a><span class="hover-metadata"><a class="split" href="automatic-programming"></a><a href="#_toc/compiler" class="u"> Compiler</a><span class="metrics"><span class="wcntr"> 398</span><span class="dcnt"> 7</span></span></span></span></div><ul><li><div id="_toc/ai-code-generation-framework-that-tries-to-run-code"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ai-code-generation-framework-that-tries-to-run-code">AI code generation framework that tries to run code</a><span class="hover-metadata"><a class="split" href="ai-code-generation-framework-that-tries-to-run-code"></a><a href="#_toc/automatic-programming" class="u"> Automatic programming</a><span class="metrics"><span class="wcntr"> 21</span></span></span></span></div></li><li class="has-child"><div id="_toc/ai-code-generation-benchmark"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ai-code-generation-benchmark">AI code generation benchmark</a><span class="hover-metadata"><a class="split" href="ai-code-generation-benchmark"></a><a href="#_toc/automatic-programming" class="u"> Automatic programming</a><span class="metrics"><span class="wcntr"> 288</span><span class="dcnt"> 5</span></span></span></span></div><ul><li><div id="_toc/can-ai-code"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#can-ai-code">Can AI code</a><span class="hover-metadata"><a class="split" href="can-ai-code"></a><a href="#_toc/ai-code-generation-benchmark" class="u"> AI code generation benchmark</a><span class="metrics"><span class="wcntr"> 11</span></span></span></span></div></li><li><div id="_toc/humaneval"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#humaneval">HumanEval <span class="meta">(2021)</span></a><span class="hover-metadata"><a class="split" href="humaneval"></a><a href="#_toc/ai-code-generation-benchmark" class="u"> AI code generation benchmark</a><span class="metrics"><span class="wcntr"> 200</span></span></span></span></div></li><li><div id="_toc/bigcodebench"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#bigcodebench">BigCodeBench <span class="meta">(2024)</span></a><span class="hover-metadata"><a class="split" href="bigcodebench"></a><a href="#_toc/ai-code-generation-benchmark" class="u"> AI code generation benchmark</a><span class="metrics"><span class="wcntr"> 44</span></span></span></span></div></li><li><div id="_toc/swe-bench"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#swe-bench">SWE-bench <span class="meta">(2024)</span></a><span class="hover-metadata"><a class="split" href="swe-bench"></a><a href="#_toc/ai-code-generation-benchmark" class="u"> AI code generation benchmark</a><span class="metrics"><span class="wcntr"> 29</span></span></span></span></div></li><li><div id="_toc/swe-lancer"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#swe-lancer">SWE-Lancer <span class="meta">(2025)</span></a><span class="hover-metadata"><a class="split" href="swe-lancer"></a><a href="#_toc/ai-code-generation-benchmark" class="u"> AI code generation benchmark</a><span class="metrics"><span class="wcntr"> 3</span></span></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/lowering-and-raising"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#lowering-and-raising">Lowering and raising</a><span class="hover-metadata"><a class="split" href="lowering-and-raising"></a><a href="#_toc/compiler" class="u"> Compiler</a><span class="metrics"><span class="wcntr"> 24</span><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/lower-compilation"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#lower-compilation">Lower <span class="meta">(compilation)</span></a><span class="hover-metadata"><a class="split" href="lower-compilation"></a><a href="#_toc/lowering-and-raising" class="u"> Lowering and raising</a></span></span></div></li><li><div id="_toc/decompiler"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#decompiler">Decompiler</a><span class="hover-metadata"><a class="split" href="decompiler"></a><a href="#_toc/lowering-and-raising" class="u"> Lowering and raising</a></span></span></div></li></ul><li class="has-child"><div id="_toc/list-of-compilers"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#list-of-compilers">List of compilers</a><span class="hover-metadata"><a class="split" href="list-of-compilers"></a><a href="#_toc/compiler" class="u"> Compiler</a><span class="metrics"><span class="wcntr"> 146</span><span class="dcnt"> 8</span></span></span></span></div><ul><li class="has-child"><div id="_toc/gnu-compiler-collection"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gnu-compiler-collection">GNU Compiler Collection <span class="meta">(gcc)</span></a><span class="hover-metadata"><a class="split" href="gnu-compiler-collection"></a><a href="#_toc/list-of-compilers" class="u"> List of compilers</a><span class="metrics"><span class="wcntr"> 11</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/gcc-cli-option"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gcc-cli-option">gcc CLI option</a><span class="hover-metadata"><a class="split" href="gcc-cli-option"></a><a href="#_toc/gnu-compiler-collection" class="u"> GNU Compiler Collection</a><span class="metrics"><span class="wcntr"> 11</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/gcc-save-temps"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gcc-save-temps">gcc <code>-save-temps</code></a><span class="hover-metadata"><a class="split" href="gcc-save-temps"></a><a href="#_toc/gcc-cli-option" class="u"> gcc CLI option</a><span class="metrics"><span class="wcntr"> 11</span></span></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/llvm"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#llvm">LLVM</a><span class="hover-metadata"><a class="split" href="llvm"></a><a href="#_toc/list-of-compilers" class="u"> List of compilers</a><span class="metrics"><span class="wcntr"> 135</span><span class="dcnt"> 4</span></span></span></span></div><ul><li class="has-child"><div id="_toc/llvm-intermediate-representation"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#llvm-intermediate-representation">LLVM Intermediate Representation <span class="meta">(LLVM IR)</span></a><span class="hover-metadata"><a class="split" href="llvm-intermediate-representation"></a><a href="#_toc/llvm" class="u"> LLVM</a><span class="metrics"><span class="wcntr"> 128</span><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/llvm-ir-vs-c"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#llvm-ir-vs-c">LLVM IR vs C</a><span class="hover-metadata"><a class="split" href="llvm-ir-vs-c"></a><a href="#_toc/llvm-intermediate-representation" class="u"> LLVM Intermediate Representation</a></span></span></div></li><li><div id="_toc/llvm-ir-hello-world"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#llvm-ir-hello-world">LLVM IR hello world</a><span class="hover-metadata"><a class="split" href="llvm-ir-hello-world"></a><a href="#_toc/llvm-intermediate-representation" class="u"> LLVM Intermediate Representation</a><span class="metrics"><span class="wcntr"> 96</span></span></span></span></div></li></ul><li><div id="_toc/clang"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#clang">clang</a><span class="hover-metadata"><a class="split" href="clang"></a><a href="#_toc/llvm" class="u"> LLVM</a><span class="metrics"><span class="wcntr"> 7</span></span></span></span></div></li></ul></li></ul><li><div id="_toc/reproducible-builds"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#reproducible-builds">Reproducible builds</a><span class="hover-metadata"><a class="split" href="reproducible-builds"></a><a href="#_toc/compiler" class="u"> Compiler</a><span class="metrics"><span class="wcntr"> 15</span></span></span></span></div></li><li><div id="_toc/source-to-source-compiler"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#source-to-source-compiler">Source-to-source compiler</a><span class="hover-metadata"><a class="split" href="source-to-source-compiler"></a><a href="#_toc/compiler" class="u"> Compiler</a></span></span></div></li></ul><li class="has-child"><div id="_toc/computer-aided-design"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#computer-aided-design">Computer-aided design <span class="meta">(CAD)</span></a><span class="hover-metadata"><a class="split" href="computer-aided-design"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/open-source-cad-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#open-source-cad-software">Open source CAD software</a><span class="hover-metadata"><a class="split" href="open-source-cad-software"></a><a href="#_toc/computer-aided-design" class="u"> Computer-aided design</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/freecad"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#freecad">FreeCAD</a><span class="hover-metadata"><a class="split" href="freecad"></a><a href="#_toc/open-source-cad-software" class="u"> Open source CAD software</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/graphics-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#graphics-software">Graphics software</a><span class="hover-metadata"><a class="split" href="graphics-software"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 137</span><span class="dcnt"> 12</span></span></span></span></div><ul><li><div id="_toc/mathematics-illustration-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#mathematics-illustration-software">Mathematics illustration software <span class="meta">(Software for drawing geometry diagrams)</span></a><span class="hover-metadata"><a class="split" href="mathematics-illustration-software"></a><a href="#_toc/graphics-software" class="u"> Graphics software</a><span class="metrics"><span class="wcntr"> 21</span></span></span></span></div></li><li class="has-child"><div id="_toc/graphics-library"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#graphics-library">Graphics library</a><span class="hover-metadata"><a class="split" href="graphics-library"></a><a href="#_toc/graphics-software" class="u"> Graphics software</a><span class="metrics"><span class="wcntr"> 116</span><span class="dcnt"> 10</span></span></span></span></div><ul><li class="has-child"><div id="_toc/opengl"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#opengl">OpenGL</a><span class="hover-metadata"><a class="split" href="opengl"></a><a href="#_toc/graphics-library" class="u"> Graphics library</a><span class="metrics"><span class="wcntr"> 51</span><span class="dcnt"> 4</span></span></span></span></div><ul><li><div id="_toc/freetype-gl"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#freetype-gl">Freetype GL</a><span class="hover-metadata"><a class="split" href="freetype-gl"></a><a href="#_toc/opengl" class="u"> OpenGL</a><span class="metrics"><span class="wcntr"> 9</span></span></span></span></div></li><li class="has-child"><div id="_toc/khronos-group"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#khronos-group">Khronos Group</a><span class="hover-metadata"><a class="split" href="khronos-group"></a><a href="#_toc/opengl" class="u"> OpenGL</a><span class="metrics"><span class="wcntr"> 24</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/khronos-standard"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#khronos-standard">Khronos standard</a><span class="hover-metadata"><a class="split" href="khronos-standard"></a><a href="#_toc/khronos-group" class="u"> Khronos Group</a></span></span></div></li></ul><li><div id="_toc/opengl-tutorial-org"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#opengl-tutorial-org">opengl-tutorial.org</a><span class="hover-metadata"><a class="split" href="opengl-tutorial-org"></a><a href="#_toc/opengl" class="u"> OpenGL</a><span class="metrics"><span class="wcntr"> 10</span></span></span></span></div></li></ul><li><div id="_toc/direct3d"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#direct3d">Direct3D</a><span class="hover-metadata"><a class="split" href="direct3d"></a><a href="#_toc/graphics-library" class="u"> Graphics library</a></span></span></div></li><li class="has-child"><div id="_toc/javascript-graphics-library"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#javascript-graphics-library">JavaScript graphics library</a><span class="hover-metadata"><a class="split" href="javascript-graphics-library"></a><a href="#_toc/graphics-library" class="u"> Graphics library</a><span class="metrics"><span class="wcntr"> 65</span><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/paper-js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#paper-js">Paper.js</a><span class="hover-metadata"><a class="split" href="paper-js"></a><a href="#_toc/javascript-graphics-library" class="u"> JavaScript graphics library</a></span></span></div></li><li><div id="_toc/pixi-js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#pixi-js">Pixi.js</a><span class="hover-metadata"><a class="split" href="pixi-js"></a><a href="#_toc/javascript-graphics-library" class="u"> JavaScript graphics library</a></span></span></div></li><li><div id="_toc/two-js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#two-js">Two.js</a><span class="hover-metadata"><a class="split" href="two-js"></a><a href="#_toc/javascript-graphics-library" class="u"> JavaScript graphics library</a><span class="metrics"><span class="wcntr"> 65</span></span></span></span></div></li></ul></li></ul></li></ul><li><div id="_toc/computer-program"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#computer-program">Computer program</a><span class="hover-metadata"><a class="split" href="computer-program"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 9</span></span></span></span></div></li><li class="has-child"><div id="_toc/computer-security"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#computer-security">Computer security</a><span class="hover-metadata"><a class="split" href="computer-security"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 405</span><span class="dcnt"> 31</span></span></span></span></div><ul><li class="has-child"><div id="_toc/exploit-computer-security"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#exploit-computer-security">Exploit <span class="meta">(computer security)</span></a><span class="hover-metadata"><a class="split" href="exploit-computer-security"></a><a href="#_toc/computer-security" class="u"> Computer security</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/arbitrary-code-execution"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#arbitrary-code-execution">Arbitrary code execution</a><span class="hover-metadata"><a class="split" href="arbitrary-code-execution"></a><a href="#_toc/exploit-computer-security" class="u"> Exploit</a></span></span></div></li><li><div id="_toc/phising"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#phising">Phising</a><span class="hover-metadata"><a class="split" href="phising"></a><a href="#_toc/exploit-computer-security" class="u"> Exploit</a></span></span></div></li><li><div id="_toc/cross-site-scripting"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#cross-site-scripting">Cross-site scripting <span class="meta">(XSS)</span></a><span class="hover-metadata"><a class="split" href="cross-site-scripting"></a><a href="#_toc/exploit-computer-security" class="u"> Exploit</a></span></span></div></li></ul><li class="has-child"><div id="_toc/computer-security-conference"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#computer-security-conference">Computer security conference</a><span class="hover-metadata"><a class="split" href="computer-security-conference"></a><a href="#_toc/computer-security" class="u"> Computer security</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/def-con"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#def-con">DEF CON <span class="meta">(1993-)</span></a><span class="hover-metadata"><a class="split" href="def-con"></a><a href="#_toc/computer-security-conference" class="u"> Computer security conference</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/black-hat-briefings"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#black-hat-briefings">Black Hat Briefings <span class="meta">(1997-)</span></a><span class="hover-metadata"><a class="split" href="black-hat-briefings"></a><a href="#_toc/def-con" class="u"> DEF CON</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/computer-security-researcher"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#computer-security-researcher">Computer security researcher</a><span class="hover-metadata"><a class="split" href="computer-security-researcher"></a><a href="#_toc/computer-security" class="u"> Computer security</a><span class="metrics"><span class="wcntr"> 114</span><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/dan-kaminsky"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#dan-kaminsky">Dan Kaminsky <span class="meta">(1979-2021)</span></a><span class="hover-metadata"><a class="split" href="dan-kaminsky"></a><a href="#_toc/computer-security-researcher" class="u"> Computer security researcher</a><span class="metrics"><span class="wcntr"> 23</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/dan-kaminsky-approves-linux-kernel-module-cheat"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#dan-kaminsky-approves-linux-kernel-module-cheat">Dan Kaminsky approves Linux Kernel Module Cheat</a><span class="hover-metadata"><a class="split" href="dan-kaminsky-approves-linux-kernel-module-cheat"></a><a href="#_toc/dan-kaminsky" class="u"> Dan Kaminsky</a><span class="metrics"><span class="wcntr"> 11</span></span></span></span></div></li></ul><li><div id="_toc/len-sassaman"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#len-sassaman">Len Sassaman</a><span class="hover-metadata"><a class="split" href="len-sassaman"></a><a href="#_toc/computer-security-researcher" class="u"> Computer security researcher</a></span></span></div></li></ul><li><div id="_toc/data-erasure"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#data-erasure">Data erasure</a><span class="hover-metadata"><a class="split" href="data-erasure"></a><a href="#_toc/computer-security" class="u"> Computer security</a></span></span></div></li><li><div id="_toc/denial-of-service-attack"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#denial-of-service-attack">Denial-of-service attack <span class="meta">(DoS, DoS attack)</span></a><span class="hover-metadata"><a class="split" href="denial-of-service-attack"></a><a href="#_toc/computer-security" class="u"> Computer security</a></span></span></div></li><li class="has-child"><div id="_toc/multi-factor-authentication"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#multi-factor-authentication">Multi-factor authentication <span class="meta">(2FA)</span></a><span class="hover-metadata"><a class="split" href="multi-factor-authentication"></a><a href="#_toc/computer-security" class="u"> Computer security</a><span class="metrics"><span class="wcntr"> 66</span><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/2fa-app"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#2fa-app">2FA app</a><span class="hover-metadata"><a class="split" href="2fa-app"></a><a href="#_toc/multi-factor-authentication" class="u"> Multi-factor authentication</a><span class="metrics"><span class="wcntr"> 66</span><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/google-2fa-app-token-can-be-updated-without-checking-the-old-2fa"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#google-2fa-app-token-can-be-updated-without-checking-the-old-2fa">Google 2FA app token can be updated without checking the old 2FA</a><span class="hover-metadata"><a class="split" href="google-2fa-app-token-can-be-updated-without-checking-the-old-2fa"></a><a href="#_toc/2fa-app" class="u"> 2FA app</a><span class="metrics"><span class="wcntr"> 66</span></span></span></span></div></li><li><div id="_toc/authy"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#authy">Authy</a><span class="hover-metadata"><a class="split" href="authy"></a><a href="#_toc/2fa-app" class="u"> 2FA app</a></span></span></div></li></ul></li></ul><li><div id="_toc/oauth"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#oauth">OAuth</a><span class="hover-metadata"><a class="split" href="oauth"></a><a href="#_toc/computer-security" class="u"> Computer security</a><span class="metrics"><span class="wcntr"> 68</span></span></span></span></div></li><li class="has-child"><div id="_toc/password"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#password">Password</a><span class="hover-metadata"><a class="split" href="password"></a><a href="#_toc/computer-security" class="u"> Computer security</a><span class="metrics"><span class="wcntr"> 34</span><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/password-cracking"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#password-cracking">Password cracking</a><span class="hover-metadata"><a class="split" href="password-cracking"></a><a href="#_toc/password" class="u"> Password</a></span></span></div></li><li><div id="_toc/password-manager"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#password-manager">Password manager</a><span class="hover-metadata"><a class="split" href="password-manager"></a><a href="#_toc/password" class="u"> Password</a><span class="metrics"><span class="wcntr"> 34</span></span></span></span></div></li></ul><li><div id="_toc/plausible-deniability"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#plausible-deniability">Plausible deniability</a><span class="hover-metadata"><a class="split" href="plausible-deniability"></a><a href="#_toc/computer-security" class="u"> Computer security</a></span></span></div></li><li><div id="_toc/privacy"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#privacy">Privacy</a><span class="hover-metadata"><a class="split" href="privacy"></a><a href="#_toc/computer-security" class="u"> Computer security</a></span></span></div></li><li class="has-child"><div id="_toc/security-through-obscurity"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#security-through-obscurity">Security through obscurity</a><span class="hover-metadata"><a class="split" href="security-through-obscurity"></a><a href="#_toc/computer-security" class="u"> Computer security</a><span class="metrics"><span class="wcntr"> 56</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/kerckhoffs-s-principle"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#kerckhoffs-s-principle">Kerckhoffs's principle</a><span class="hover-metadata"><a class="split" href="kerckhoffs-s-principle"></a><a href="#_toc/security-through-obscurity" class="u"> Security through obscurity</a><span class="metrics"><span class="wcntr"> 11</span></span></span></span></div></li></ul><li><div id="_toc/malware"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#malware">Malware</a><span class="hover-metadata"><a class="split" href="malware"></a><a href="#_toc/computer-security" class="u"> Computer security</a></span></span></div></li><li><div id="_toc/ransomware"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ransomware">Ransomware</a><span class="hover-metadata"><a class="split" href="ransomware"></a><a href="#_toc/computer-security" class="u"> Computer security</a></span></span></div></li><li class="has-child"><div id="_toc/data-breach"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#data-breach">Data breach</a><span class="hover-metadata"><a class="split" href="data-breach"></a><a href="#_toc/computer-security" class="u"> Computer security</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/wikileaks"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#wikileaks">WikiLeaks</a><span class="hover-metadata"><a class="split" href="wikileaks"></a><a href="#_toc/data-breach" class="u"> Data breach</a></span></span></div></li><li class="has-child"><div id="_toc/list-of-data-breaches"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#list-of-data-breaches">List of data breaches</a><span class="hover-metadata"><a class="split" href="list-of-data-breaches"></a><a href="#_toc/data-breach" class="u"> Data breach</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/united-states-diplomatic-cables-leak"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#united-states-diplomatic-cables-leak">United States diplomatic cables leak <span class="meta">(2010)</span></a><span class="hover-metadata"><a class="split" href="united-states-diplomatic-cables-leak"></a><a href="#_toc/list-of-data-breaches" class="u"> List of data breaches</a></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/computer-user-interface"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#computer-user-interface">Computer user-interface</a><span class="hover-metadata"><a class="split" href="computer-user-interface"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 395</span><span class="dcnt"> 31</span></span></span></span></div><ul><li class="has-child"><div id="_toc/application-programming-interface"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#application-programming-interface">Application programming interface <span class="meta">(API)</span></a><span class="hover-metadata"><a class="split" href="application-programming-interface"></a><a href="#_toc/computer-user-interface" class="u"> Computer user-interface</a><span class="metrics"><span class="wcntr"> 54</span><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/rest-api"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#rest-api">REST API</a><span class="hover-metadata"><a class="split" href="rest-api"></a><a href="#_toc/application-programming-interface" class="u"> Application programming interface</a></span></span></div></li><li><div id="_toc/graphql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#graphql">GraphQL</a><span class="hover-metadata"><a class="split" href="graphql"></a><a href="#_toc/application-programming-interface" class="u"> Application programming interface</a><span class="metrics"><span class="wcntr"> 54</span></span></span></span></div></li></ul><li class="has-child"><div id="_toc/command-line-interface"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#command-line-interface">Command-line interface <span class="meta">(CLI)</span></a><span class="hover-metadata"><a class="split" href="command-line-interface"></a><a href="#_toc/computer-user-interface" class="u"> Computer user-interface</a><span class="metrics"><span class="wcntr"> 279</span><span class="dcnt"> 16</span></span></span></span></div><ul><li class="has-child"><div id="_toc/linux-cli-howto"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#linux-cli-howto">Linux CLI HOWTO</a><span class="hover-metadata"><a class="split" href="linux-cli-howto"></a><a href="#_toc/command-line-interface" class="u"> Command-line interface</a><span class="metrics"><span class="wcntr"> 2</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/convert-bytes-to-hex-from-linux-cli"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#convert-bytes-to-hex-from-linux-cli">Convert bytes to hex from Linux CLI</a><span class="hover-metadata"><a class="split" href="convert-bytes-to-hex-from-linux-cli"></a><a href="#_toc/linux-cli-howto" class="u"> Linux CLI HOWTO</a><span class="metrics"><span class="wcntr"> 2</span></span></span></span></div></li></ul><li class="has-child"><div id="_toc/command-line-utility"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#command-line-utility">Command line utility <span class="meta">(CLI tool)</span></a><span class="hover-metadata"><a class="split" href="command-line-utility"></a><a href="#_toc/command-line-interface" class="u"> Command-line interface</a><span class="metrics"><span class="wcntr"> 267</span><span class="dcnt"> 10</span></span></span></span></div><ul><li class="has-child"><div id="_toc/list-of-command-line-utilities"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#list-of-command-line-utilities">List of command line utilities</a><span class="hover-metadata"><a class="split" href="list-of-command-line-utilities"></a><a href="#_toc/command-line-utility" class="u"> Command line utility</a><span class="metrics"><span class="wcntr"> 267</span><span class="dcnt"> 9</span></span></span></span></div><ul><li class="has-child"><div id="_toc/expect"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#expect">Expect</a><span class="hover-metadata"><a class="split" href="expect"></a><a href="#_toc/list-of-command-line-utilities" class="u"> List of command line utilities</a><span class="metrics"><span class="wcntr"> 59</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/expect-howto"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#expect-howto">Expect HOWTO</a><span class="hover-metadata"><a class="split" href="expect-howto"></a><a href="#_toc/expect" class="u"> Expect</a><span class="metrics"><span class="wcntr"> 59</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/get-output-of-send-command-on-expect"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#get-output-of-send-command-on-expect">Get output of <code>send</code> command on expect</a><span class="hover-metadata"><a class="split" href="get-output-of-send-command-on-expect"></a><a href="#_toc/expect-howto" class="u"> Expect HOWTO</a><span class="metrics"><span class="wcntr"> 59</span></span></span></span></div></li></ul></li></ul><li><div id="_toc/gnu-parallel"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gnu-parallel">GNU parallel</a><span class="hover-metadata"><a class="split" href="gnu-parallel"></a><a href="#_toc/list-of-command-line-utilities" class="u"> List of command line utilities</a><span class="metrics"><span class="wcntr"> 197</span></span></span></span></div></li><li><div id="_toc/htop"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#htop">htop</a><span class="hover-metadata"><a class="split" href="htop"></a><a href="#_toc/list-of-command-line-utilities" class="u"> List of command line utilities</a></span></span></div></li><li><div id="_toc/less-unix"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#less-unix">less <span class="meta">(Unix)</span></a><span class="hover-metadata"><a class="split" href="less-unix"></a><a href="#_toc/list-of-command-line-utilities" class="u"> List of command line utilities</a></span></span></div></li><li><div id="_toc/ncdu"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ncdu">ncdu</a><span class="hover-metadata"><a class="split" href="ncdu"></a><a href="#_toc/list-of-command-line-utilities" class="u"> List of command line utilities</a><span class="metrics"><span class="wcntr"> 10</span></span></span></span></div></li><li><div id="_toc/rsync"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#rsync">rsync</a><span class="hover-metadata"><a class="split" href="rsync"></a><a href="#_toc/list-of-command-line-utilities" class="u"> List of command line utilities</a></span></span></div></li><li><div id="_toc/sudo"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#sudo">sudo</a><span class="hover-metadata"><a class="split" href="sudo"></a><a href="#_toc/list-of-command-line-utilities" class="u"> List of command line utilities</a><span class="metrics"><span class="wcntr"> 1</span></span></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/text-based-user-interface"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#text-based-user-interface">Text-based user interface <span class="meta">(TUI)</span></a><span class="hover-metadata"><a class="split" href="text-based-user-interface"></a><a href="#_toc/command-line-interface" class="u"> Command-line interface</a><span class="metrics"><span class="wcntr"> 10</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/ncurses"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ncurses">ncurses</a><span class="hover-metadata"><a class="split" href="ncurses"></a><a href="#_toc/text-based-user-interface" class="u"> Text-based user interface</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/ncurses-program"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ncurses-program">ncurses program</a><span class="hover-metadata"><a class="split" href="ncurses-program"></a><a href="#_toc/ncurses" class="u"> ncurses</a></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/graphical-user-interface"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#graphical-user-interface">Graphical user interface <span class="meta">(GUI)</span></a><span class="hover-metadata"><a class="split" href="graphical-user-interface"></a><a href="#_toc/computer-user-interface" class="u"> Computer user-interface</a><span class="metrics"><span class="wcntr"> 62</span><span class="dcnt"> 10</span></span></span></span></div><ul><li class="has-child"><div id="_toc/display-manager"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#display-manager">Display manager</a><span class="hover-metadata"><a class="split" href="display-manager"></a><a href="#_toc/graphical-user-interface" class="u"> Graphical user interface</a><span class="metrics"><span class="wcntr"> 59</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/gnome-display-manager"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gnome-display-manager">GNOME Display Manager <span class="meta">(GDM)</span></a><span class="hover-metadata"><a class="split" href="gnome-display-manager"></a><a href="#_toc/display-manager" class="u"> Display manager</a></span></span></div></li></ul><li class="has-child"><div id="_toc/desktop-environment"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#desktop-environment">Desktop environment</a><span class="hover-metadata"><a class="split" href="desktop-environment"></a><a href="#_toc/graphical-user-interface" class="u"> Graphical user interface</a><span class="metrics"><span class="wcntr"> 3</span><span class="dcnt"> 4</span></span></span></span></div><ul><li class="has-child"><div id="_toc/gnome-project"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gnome-project">GNOME Project <span class="meta">(1997)</span></a><span class="hover-metadata"><a class="split" href="gnome-project"></a><a href="#_toc/desktop-environment" class="u"> Desktop environment</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/gnome-desktop"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gnome-desktop">GNOME desktop</a><span class="hover-metadata"><a class="split" href="gnome-desktop"></a><a href="#_toc/gnome-project" class="u"> GNOME Project</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/gtk"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gtk">GTK</a><span class="hover-metadata"><a class="split" href="gtk"></a><a href="#_toc/gnome-desktop" class="u"> GNOME desktop</a></span></span></div></li></ul></li></ul><li><div id="_toc/kde"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#kde">KDE <span class="meta">(1996)</span></a><span class="hover-metadata"><a class="split" href="kde"></a><a href="#_toc/desktop-environment" class="u"> Desktop environment</a></span></span></div></li></ul><li><div id="_toc/splash-screen"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#splash-screen">Splash screen</a><span class="hover-metadata"><a class="split" href="splash-screen"></a><a href="#_toc/graphical-user-interface" class="u"> Graphical user interface</a></span></span></div></li><li><div id="_toc/qt-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#qt-software">Qt <span class="meta">(software)</span></a><span class="hover-metadata"><a class="split" href="qt-software"></a><a href="#_toc/graphical-user-interface" class="u"> Graphical user interface</a></span></span></div></li><li><div id="_toc/wysiwyg"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#wysiwyg">WYSIWYG</a><span class="hover-metadata"><a class="split" href="wysiwyg"></a><a href="#_toc/graphical-user-interface" class="u"> Graphical user interface</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/data-compression"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#data-compression">Data compression</a><span class="hover-metadata"><a class="split" href="data-compression"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/lossless-and-lossy-compression"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#lossless-and-lossy-compression">Lossless and lossy compression</a><span class="hover-metadata"><a class="split" href="lossless-and-lossy-compression"></a><a href="#_toc/data-compression" class="u"> Data compression</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/lossy-compression"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#lossy-compression">Lossy compression</a><span class="hover-metadata"><a class="split" href="lossy-compression"></a><a href="#_toc/lossless-and-lossy-compression" class="u"> Lossless and lossy compression</a></span></span></div></li><li><div id="_toc/lossless-compression"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#lossless-compression">Lossless compression</a><span class="hover-metadata"><a class="split" href="lossless-compression"></a><a href="#_toc/lossless-and-lossy-compression" class="u"> Lossless and lossy compression</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/database"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#database">Database</a><span class="hover-metadata"><a class="split" href="database"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 7k</span><span class="dcnt"> 125</span></span></span></span></div><ul><li><div id="_toc/database-management-system"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#database-management-system">Database management system</a><span class="hover-metadata"><a class="split" href="database-management-system"></a><a href="#_toc/database" class="u"> Database</a><span class="metrics"><span class="wcntr"> 13</span></span></span></span></div></li><li class="has-child"><div id="_toc/object-relational-mapping"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#object-relational-mapping">Object-relational mapping <span class="meta">(ORM)</span></a><span class="hover-metadata"><a class="split" href="object-relational-mapping"></a><a href="#_toc/database" class="u"> Database</a><span class="metrics"><span class="wcntr"> 137</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/how-to-decide-if-an-orm-is-good"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#how-to-decide-if-an-orm-is-good">How to decide if an ORM is good?</a><span class="hover-metadata"><a class="split" href="how-to-decide-if-an-orm-is-good"></a><a href="#_toc/object-relational-mapping" class="u"> Object-relational mapping</a><span class="metrics"><span class="wcntr"> 135</span></span></span></span></div></li></ul><li class="has-child"><div id="_toc/type-of-database"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#type-of-database">Type of database</a><span class="hover-metadata"><a class="split" href="type-of-database"></a><a href="#_toc/database" class="u"> Database</a><span class="metrics"><span class="wcntr"> 7k</span><span class="dcnt"> 110</span></span></span></span></div><ul><li class="has-child"><div id="_toc/nosql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#nosql">NoSQL</a><span class="hover-metadata"><a class="split" href="nosql"></a><a href="#_toc/type-of-database" class="u"> Type of database</a><span class="metrics"><span class="wcntr"> 104</span><span class="dcnt"> 5</span></span></span></span></div><ul><li class="has-child"><div id="_toc/leveldb"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#leveldb">LevelDB</a><span class="hover-metadata"><a class="split" href="leveldb"></a><a href="#_toc/nosql" class="u"> NoSQL</a><span class="metrics"><span class="wcntr"> 30</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/dump-leveldb"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#dump-leveldb">Dump LevelDB</a><span class="hover-metadata"><a class="split" href="dump-leveldb"></a><a href="#_toc/leveldb" class="u"> LevelDB</a><span class="metrics"><span class="wcntr"> 9</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/leveldbdumper"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#leveldbdumper">LevelDBDumper</a><span class="hover-metadata"><a class="split" href="leveldbdumper"></a><a href="#_toc/dump-leveldb" class="u"> Dump LevelDB</a><span class="metrics"><span class="wcntr"> 9</span></span></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/mongodb"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#mongodb">MongoDB</a><span class="hover-metadata"><a class="split" href="mongodb"></a><a href="#_toc/nosql" class="u"> NoSQL</a><span class="metrics"><span class="wcntr"> 74</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/install-mongodb-on-ubuntu"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#install-mongodb-on-ubuntu">Install MongoDB on Ubuntu</a><span class="hover-metadata"><a class="split" href="install-mongodb-on-ubuntu"></a><a href="#_toc/mongodb" class="u"> MongoDB</a><span class="metrics"><span class="wcntr"> 33</span></span></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/relational-database"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#relational-database">Relational database</a><span class="hover-metadata"><a class="split" href="relational-database"></a><a href="#_toc/type-of-database" class="u"> Type of database</a><span class="metrics"><span class="wcntr"> 7k</span><span class="dcnt"> 103</span></span></span></span></div><ul><li class="has-child"><div id="_toc/relational-database-management-system"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#relational-database-management-system">Relational database management system <span class="meta">(RDBMS)</span></a><span class="hover-metadata"><a class="split" href="relational-database-management-system"></a><a href="#_toc/relational-database" class="u"> Relational database</a><span class="metrics"><span class="wcntr"> 7k</span><span class="dcnt"> 102</span></span></span></span></div><ul><li class="has-child"><div id="_toc/sql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql">SQL</a><span class="hover-metadata"><a class="split" href="sql-split"></a><a href="#_toc/relational-database-management-system" class="u"> Relational database management system</a><span class="metrics"><span class="wcntr"> 6k</span><span class="dcnt"> 101</span></span></span></span></div><ul><li><div id="_toc/sql-example"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-example">SQL example</a><span class="hover-metadata"><a class="split" href="sql-example"></a><a href="#_toc/sql" class="u"> SQL</a></span></span></div></li><li class="has-child"><div id="_toc/sql-implementation"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-implementation">SQL implementation</a><span class="hover-metadata"><a class="split" href="sql-implementation"></a><a href="#_toc/sql" class="u"> SQL</a><span class="metrics"><span class="wcntr"> 3k</span><span class="dcnt"> 30</span></span></span></span></div><ul><li><div id="_toc/ibm-db2"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#ibm-db2">IBM Db2</a><span class="hover-metadata"><a class="split" href="ibm-db2"></a><a href="#_toc/sql-implementation" class="u"> SQL implementation</a></span></span></div></li><li class="has-child"><div id="_toc/mysql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#mysql">MySQL</a><span class="hover-metadata"><a class="split" href="mysql"></a><a href="#_toc/sql-implementation" class="u"> SQL implementation</a><span class="metrics"><span class="wcntr"> 1</span><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/mysqldump"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#mysqldump">mysqldump</a><span class="hover-metadata"><a class="split" href="mysqldump"></a><a href="#_toc/mysql" class="u"> MySQL</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/mysqldump-to-csv"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#mysqldump-to-csv">mysqldump to CSV</a><span class="hover-metadata"><a class="split" href="mysqldump-to-csv"></a><a href="#_toc/mysqldump" class="u"> mysqldump</a></span></span></div></li></ul><li><div id="_toc/mariadb"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#mariadb">MariaDB</a><span class="hover-metadata"><a class="split" href="mariadb"></a><a href="#_toc/mysql" class="u"> MySQL</a></span></span></div></li></ul><li class="has-child"><div id="_toc/postgresql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#postgresql">PostgreSQL</a><span class="hover-metadata"><a class="split" href="postgresql"></a><a href="#_toc/sql-implementation" class="u"> SQL implementation</a><span class="metrics"><span class="wcntr"> 2k</span><span class="dcnt"> 12</span></span></span></span></div><ul><li class="has-child"><div id="_toc/postgresql-getting-started"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#postgresql-getting-started">PostgreSQL getting started</a><span class="hover-metadata"><a class="split" href="postgresql-getting-started"></a><a href="#_toc/postgresql" class="u"> PostgreSQL</a><span class="metrics"><span class="wcntr"> 2k</span><span class="dcnt"> 4</span></span></span></span></div><ul><li class="has-child"><div id="_toc/postgresql-howto"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#postgresql-howto">PostgreSQL HOWTO</a><span class="hover-metadata"><a class="split" href="postgresql-howto"></a><a href="#_toc/postgresql-getting-started" class="u"> PostgreSQL getting started</a><span class="metrics"><span class="wcntr"> 186</span><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/postgresql-create-test-data"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#postgresql-create-test-data">PostgreSQL create test data</a><span class="hover-metadata"><a class="split" href="postgresql-create-test-data"></a><a href="#_toc/postgresql-howto" class="u"> PostgreSQL HOWTO</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/generate-random-text-in-postgresql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#generate-random-text-in-postgresql">Generate random text in PostgreSQL</a><span class="hover-metadata"><a class="split" href="generate-random-text-in-postgresql"></a><a href="#_toc/postgresql-create-test-data" class="u"> PostgreSQL create test data</a></span></span></div></li></ul><li><div id="_toc/postgresql-full-text-search"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#postgresql-full-text-search">PostgreSQL full-text search</a><span class="hover-metadata"><a class="split" href="postgresql-full-text-search"></a><a href="#_toc/postgresql-howto" class="u"> PostgreSQL HOWTO</a></span></span></div></li></ul></li></ul><li><div id="_toc/create-a-test-user-in-postgresql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#create-a-test-user-in-postgresql">Create a test user in PostgreSQL</a><span class="hover-metadata"><a class="split" href="create-a-test-user-in-postgresql"></a><a href="#_toc/postgresql" class="u"> PostgreSQL</a></span></span></div></li><li><div id="_toc/peer-authentication"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#peer-authentication">Peer authentication</a><span class="hover-metadata"><a class="split" href="peer-authentication"></a><a href="#_toc/postgresql" class="u"> PostgreSQL</a></span></span></div></li><li><div id="_toc/postgresql-logging"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#postgresql-logging">PostgreSQL logging</a><span class="hover-metadata"><a class="split" href="postgresql-logging"></a><a href="#_toc/postgresql" class="u"> PostgreSQL</a></span></span></div></li><li><div id="_toc/postgresql-serialization-failure"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#postgresql-serialization-failure">PostgreSQL serialization failure</a><span class="hover-metadata"><a class="split" href="postgresql-serialization-failure"></a><a href="#_toc/postgresql" class="u"> PostgreSQL</a></span></span></div></li><li class="has-child"><div id="_toc/postgresql-function"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#postgresql-function">PostgreSQL function</a><span class="hover-metadata"><a class="split" href="postgresql-function"></a><a href="#_toc/postgresql" class="u"> PostgreSQL</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/postgresql-generate-series"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#postgresql-generate-series">PostgreSQL <code>generate_series</code></a><span class="hover-metadata"><a class="split" href="postgresql-generate-series"></a><a href="#_toc/postgresql-function" class="u"> PostgreSQL function</a></span></span></div></li><li><div id="_toc/to-tsvector"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#to-tsvector"><code>to_tsvector</code></a><span class="hover-metadata"><a class="split" href="to-tsvector"></a><a href="#_toc/postgresql-function" class="u"> PostgreSQL function</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/microsoft-sql-server"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#microsoft-sql-server">Microsoft SQL Server</a><span class="hover-metadata"><a class="split" href="microsoft-sql-server"></a><a href="#_toc/sql-implementation" class="u"> SQL implementation</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/transact-sql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#transact-sql">Transact-SQL</a><span class="hover-metadata"><a class="split" href="transact-sql"></a><a href="#_toc/microsoft-sql-server" class="u"> Microsoft SQL Server</a></span></span></div></li></ul><li><div id="_toc/oracle-database"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#oracle-database">Oracle Database</a><span class="hover-metadata"><a class="split" href="oracle-database"></a><a href="#_toc/sql-implementation" class="u"> SQL implementation</a></span></span></div></li><li class="has-child"><div id="_toc/sqlite"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sqlite">SQLite</a><span class="hover-metadata"><a class="split" href="sqlite"></a><a href="#_toc/sql-implementation" class="u"> SQL implementation</a><span class="metrics"><span class="wcntr"> 160</span><span class="dcnt"> 8</span></span></span></span></div><ul><li class="has-child"><div id="_toc/sqlite-import-csv"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sqlite-import-csv">SQLite import CSV</a><span class="hover-metadata"><a class="split" href="sqlite-import-csv"></a><a href="#_toc/sqlite" class="u"> SQLite</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/sqlite-import-csv-from-stdin"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sqlite-import-csv-from-stdin">SQLite import CSV from stdin</a><span class="hover-metadata"><a class="split" href="sqlite-import-csv-from-stdin"></a><a href="#_toc/sqlite-import-csv" class="u"> SQLite import CSV</a></span></span></div></li></ul><li><div id="_toc/sqlite-benchmark"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sqlite-benchmark">SQLite benchmark</a><span class="hover-metadata"><a class="split" href="sqlite-benchmark"></a><a href="#_toc/sqlite" class="u"> SQLite</a></span></span></div></li><li><div id="_toc/sqlite-c-extension"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sqlite-c-extension">SQLite C extension</a><span class="hover-metadata"><a class="split" href="sqlite-c-extension"></a><a href="#_toc/sqlite" class="u"> SQLite</a></span></span></div></li><li><div id="_toc/sqlite-isolation-levels"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sqlite-isolation-levels">SQLite isolation levels</a><span class="hover-metadata"><a class="split" href="sqlite-isolation-levels"></a><a href="#_toc/sqlite" class="u"> SQLite</a></span></span></div></li><li class="has-child"><div id="_toc/node-js-sqlite-bindings"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#node-js-sqlite-bindings">Node.js SQLite bindings</a><span class="hover-metadata"><a class="split" href="node-js-sqlite-bindings"></a><a href="#_toc/sqlite" class="u"> SQLite</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/sqlite3-node-js-package"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sqlite3-node-js-package"><code>sqlite3</code> Node.js package</a><span class="hover-metadata"><a class="split" href="sqlite3-node-js-package"></a><a href="#_toc/node-js-sqlite-bindings" class="u"> Node.js SQLite bindings</a></span></span></div></li><li><div id="_toc/better-sqlite3-node-js-package"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#better-sqlite3-node-js-package"><code>better-sqlite3</code> Node.js package</a><span class="hover-metadata"><a class="split" href="better-sqlite3-node-js-package"></a><a href="#_toc/node-js-sqlite-bindings" class="u"> Node.js SQLite bindings</a></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/sql-function"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-function">SQL function</a><span class="hover-metadata"><a class="split" href="sql-function"></a><a href="#_toc/sql" class="u"> SQL</a><span class="metrics"><span class="wcntr"> 9</span><span class="dcnt"> 4</span></span></span></span></div><ul><li class="has-child"><div id="_toc/sql-set-returning-function"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-set-returning-function">SQL set returning function</a><span class="hover-metadata"><a class="split" href="sql-set-returning-function"></a><a href="#_toc/sql-function" class="u"> SQL function</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/sql-genenerate-series"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-genenerate-series">SQL <code>genenerate_series</code></a><span class="hover-metadata"><a class="split" href="sql-genenerate-series"></a><a href="#_toc/sql-set-returning-function" class="u"> SQL set returning function</a></span></span></div></li></ul><li class="has-child"><div id="_toc/sql-aggregate-function"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-aggregate-function">SQL aggregate function</a><span class="hover-metadata"><a class="split" href="sql-aggregate-function"></a><a href="#_toc/sql-function" class="u"> SQL function</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/sql-count-function"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-count-function">SQL <code>COUNT</code> function</a><span class="hover-metadata"><a class="split" href="sql-count-function"></a><a href="#_toc/sql-aggregate-function" class="u"> SQL aggregate function</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/sql-keyword"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-keyword">SQL keyword</a><span class="hover-metadata"><a class="split" href="sql-keyword"></a><a href="#_toc/sql" class="u"> SQL</a><span class="metrics"><span class="wcntr"> 270</span><span class="dcnt"> 27</span></span></span></span></div><ul><li><div id="_toc/sql-cascade"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-cascade">SQL CASCADE</a><span class="hover-metadata"><a class="split" href="sql-cascade"></a><a href="#_toc/sql-keyword" class="u"> SQL keyword</a></span></span></div></li><li class="has-child"><div id="_toc/delete-sql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#delete-sql">DELETE <span class="meta">(SQL)</span></a><span class="hover-metadata"><a class="split" href="delete-sql"></a><a href="#_toc/sql-keyword" class="u"> SQL keyword</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/delete-all-duplicate-rows-in-sql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#delete-all-duplicate-rows-in-sql">Delete all duplicate rows in SQL</a><span class="hover-metadata"><a class="split" href="delete-all-duplicate-rows-in-sql"></a><a href="#_toc/delete-sql" class="u"> DELETE</a></span></span></div></li></ul><li class="has-child"><div id="_toc/group-by-sql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#group-by-sql">GROUP BY <span class="meta">(SQL)</span></a><span class="hover-metadata"><a class="split" href="group-by-sql"></a><a href="#_toc/sql-keyword" class="u"> SQL keyword</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/having-sql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#having-sql">HAVING <span class="meta">(SQL)</span></a><span class="hover-metadata"><a class="split" href="having-sql"></a><a href="#_toc/group-by-sql" class="u"> GROUP BY</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/having-vs-where"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#having-vs-where">HAVING vs WHERE</a><span class="hover-metadata"><a class="split" href="having-vs-where"></a><a href="#_toc/having-sql" class="u"> HAVING</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/insert-sql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#insert-sql">INSERT <span class="meta">(SQL)</span></a><span class="hover-metadata"><a class="split" href="insert-sql"></a><a href="#_toc/sql-keyword" class="u"> SQL keyword</a><span class="metrics"><span class="wcntr"> 21</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/upsert"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#upsert">Upsert</a><span class="hover-metadata"><a class="split" href="upsert"></a><a href="#_toc/insert-sql" class="u"> INSERT</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/upsert-with-not-null-column"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#upsert-with-not-null-column">Upsert with <code>NOT NULL</code> column</a><span class="hover-metadata"><a class="split" href="upsert-with-not-null-column"></a><a href="#_toc/upsert" class="u"> Upsert</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/join-sql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#join-sql">JOIN <span class="meta">(SQL)</span></a><span class="hover-metadata"><a class="split" href="join-sql"></a><a href="#_toc/sql-keyword" class="u"> SQL keyword</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/sql-prefix-column-names-with-the-table-they-came-from"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-prefix-column-names-with-the-table-they-came-from">SQL prefix column names with the table they came from</a><span class="hover-metadata"><a class="split" href="sql-prefix-column-names-with-the-table-they-came-from"></a><a href="#_toc/join-sql" class="u"> JOIN</a></span></span></div></li><li><div id="_toc/inner-join"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#inner-join">INNER JOIN</a><span class="hover-metadata"><a class="split" href="inner-join"></a><a href="#_toc/join-sql" class="u"> JOIN</a></span></span></div></li><li><div id="_toc/outer-join"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#outer-join">OUTER JOIN</a><span class="hover-metadata"><a class="split" href="outer-join"></a><a href="#_toc/join-sql" class="u"> JOIN</a></span></span></div></li></ul><li><div id="_toc/like-sql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#like-sql">LIKE <span class="meta">(SQL)</span></a><span class="hover-metadata"><a class="split" href="like-sql"></a><a href="#_toc/sql-keyword" class="u"> SQL keyword</a></span></span></div></li><li class="has-child"><div id="_toc/select-sql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#select-sql">SELECT <span class="meta">(SQL)</span></a><span class="hover-metadata"><a class="split" href="select-sql"></a><a href="#_toc/sql-keyword" class="u"> SQL keyword</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/select-for-update"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#select-for-update">SELECT FOR UPDATE</a><span class="hover-metadata"><a class="split" href="select-for-update"></a><a href="#_toc/select-sql" class="u"> SELECT</a></span></span></div></li></ul><li class="has-child"><div id="_toc/sql-stored-procedure"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-stored-procedure">SQL stored procedure</a><span class="hover-metadata"><a class="split" href="sql-stored-procedure"></a><a href="#_toc/sql-keyword" class="u"> SQL keyword</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/sql-function-keyword"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-function-keyword">SQL FUNCTION keyword</a><span class="hover-metadata"><a class="split" href="sql-function-keyword"></a><a href="#_toc/sql-stored-procedure" class="u"> SQL stored procedure</a></span></span></div></li><li><div id="_toc/sql-procedure"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-procedure">SQL PROCEDURE</a><span class="hover-metadata"><a class="split" href="sql-procedure"></a><a href="#_toc/sql-stored-procedure" class="u"> SQL stored procedure</a></span></span></div></li></ul><li><div id="_toc/sql-trigger"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-trigger">SQL TRIGGER</a><span class="hover-metadata"><a class="split" href="sql-trigger"></a><a href="#_toc/sql-keyword" class="u"> SQL keyword</a></span></span></div></li><li class="has-child"><div id="_toc/iso-sql-trigger-syntax"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#iso-sql-trigger-syntax">ISO SQL TRIGGER syntax</a><span class="hover-metadata"><a class="split" href="iso-sql-trigger-syntax"></a><a href="#_toc/sql-keyword" class="u"> SQL keyword</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/_file/nodejs/sequelize/raw/trigger_count.js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#_file/nodejs/sequelize/raw/trigger_count.js">nodejs/sequelize/raw/trigger_count.js</a><span class="hover-metadata"><a class="split" href="_file/nodejs/sequelize/raw/trigger_count.js"></a><a href="#_toc/iso-sql-trigger-syntax" class="u"> ISO SQL TRIGGER syntax</a></span></span></div></li></ul><li><div id="_toc/union-sql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#union-sql">UNION <span class="meta">(SQL)</span></a><span class="hover-metadata"><a class="split" href="union-sql"></a><a href="#_toc/sql-keyword" class="u"> SQL keyword</a></span></span></div></li><li class="has-child"><div id="_toc/update-sql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#update-sql">UPDATE <span class="meta">(SQL)</span></a><span class="hover-metadata"><a class="split" href="update-sql"></a><a href="#_toc/sql-keyword" class="u"> SQL keyword</a><span class="metrics"><span class="wcntr"> 53</span><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/update-multiple-rows-with-different-values-in-a-single-sql-query"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#update-multiple-rows-with-different-values-in-a-single-sql-query">Update multiple rows with different values in a single SQL query</a><span class="hover-metadata"><a class="split" href="update-multiple-rows-with-different-values-in-a-single-sql-query"></a><a href="#_toc/update-sql" class="u"> UPDATE</a></span></span></div></li><li class="has-child"><div id="_toc/update-with-join-sql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#update-with-join-sql">UPDATE with JOIN <span class="meta">(SQL)</span></a><span class="hover-metadata"><a class="split" href="update-with-join-sql"></a><a href="#_toc/update-sql" class="u"> UPDATE</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/delete-with-join-sql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#delete-with-join-sql">DELETE with JOIN <span class="meta">(SQL)</span></a><span class="hover-metadata"><a class="split" href="delete-with-join-sql"></a><a href="#_toc/update-with-join-sql" class="u"> UPDATE with JOIN</a></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/sql-standard"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-standard">SQL standard</a><span class="hover-metadata"><a class="split" href="sql-standard"></a><a href="#_toc/sql" class="u"> SQL</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/sql-standard-version"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-standard-version">SQL standard version</a><span class="hover-metadata"><a class="split" href="sql-standard-version"></a><a href="#_toc/sql-standard" class="u"> SQL standard</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/sql-1999"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-1999">SQL:1999</a><span class="hover-metadata"><a class="split" href="sql-1999"></a><a href="#_toc/sql-standard-version" class="u"> SQL standard version</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/sql-application"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-application">SQL application</a><span class="hover-metadata"><a class="split" href="sql-application"></a><a href="#_toc/sql" class="u"> SQL</a><span class="metrics"><span class="wcntr"> 258</span><span class="dcnt"> 5</span></span></span></span></div><ul><li class="has-child"><div id="_toc/sql-histogram"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-histogram">SQL histogram</a><span class="hover-metadata"><a class="split" href="sql-histogram"></a><a href="#_toc/sql-application" class="u"> SQL application</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/sql-2d-histogram"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-2d-histogram">SQL 2D histogram</a><span class="hover-metadata"><a class="split" href="sql-2d-histogram"></a><a href="#_toc/sql-histogram" class="u"> SQL histogram</a></span></span></div></li></ul><li class="has-child"><div id="_toc/sql-tree-traversal"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-tree-traversal">SQL tree traversal</a><span class="hover-metadata"><a class="split" href="sql-tree-traversal"></a><a href="#_toc/sql-application" class="u"> SQL application</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/closure-table"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#closure-table">Closure table</a><span class="hover-metadata"><a class="split" href="closure-table"></a><a href="#_toc/sql-tree-traversal" class="u"> SQL tree traversal</a></span></span></div></li><li><div id="_toc/nested-set-model-in-sql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#nested-set-model-in-sql">Nested set model in SQL</a><span class="hover-metadata"><a class="split" href="nested-set-model-in-sql"></a><a href="#_toc/sql-tree-traversal" class="u"> SQL tree traversal</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/sql-feature"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-feature">SQL feature</a><span class="hover-metadata"><a class="split" href="sql-feature"></a><a href="#_toc/sql" class="u"> SQL</a><span class="metrics"><span class="wcntr"> 2k</span><span class="dcnt"> 26</span></span></span></span></div><ul><li><div id="_toc/generated-column"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#generated-column">Generated column</a><span class="hover-metadata"><a class="split" href="generated-column"></a><a href="#_toc/sql-feature" class="u"> SQL feature</a></span></span></div></li><li class="has-child"><div id="_toc/sql-recursive-query"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-recursive-query">SQL RECURSIVE query</a><span class="hover-metadata"><a class="split" href="sql-recursive-query"></a><a href="#_toc/sql-feature" class="u"> SQL feature</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/sql-recursive-prevent-infinite-recursion"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-recursive-prevent-infinite-recursion">SQL RECURSIVE prevent infinite recursion</a><span class="hover-metadata"><a class="split" href="sql-recursive-prevent-infinite-recursion"></a><a href="#_toc/sql-recursive-query" class="u"> SQL RECURSIVE query</a></span></span></div></li></ul><li class="has-child"><div id="_toc/sql-spatial-index"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-spatial-index">SQL spatial index</a><span class="hover-metadata"><a class="split" href="sql-spatial-index"></a><a href="#_toc/sql-feature" class="u"> SQL feature</a><span class="metrics"><span class="wcntr"> 151</span><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/postgresql-spatial-index"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#postgresql-spatial-index">PostgreSQL spatial index</a><span class="hover-metadata"><a class="split" href="postgresql-spatial-index"></a><a href="#_toc/sql-spatial-index" class="u"> SQL spatial index</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/postgresql-gist"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#postgresql-gist">PostgreSQL GIST</a><span class="hover-metadata"><a class="split" href="postgresql-gist"></a><a href="#_toc/postgresql-spatial-index" class="u"> PostgreSQL spatial index</a></span></span></div></li><li><div id="_toc/postgis"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#postgis">PostGIS</a><span class="hover-metadata"><a class="split" href="postgis"></a><a href="#_toc/postgresql-spatial-index" class="u"> PostgreSQL spatial index</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/sql-subquery"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-subquery">SQL subquery <span class="meta">(CTE)</span></a><span class="hover-metadata"><a class="split" href="sql-subquery"></a><a href="#_toc/sql-feature" class="u"> SQL feature</a><span class="metrics"><span class="wcntr"> 19</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/common-table-expression"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#common-table-expression">Common Table Expression <span class="meta">(CTE)</span></a><span class="hover-metadata"><a class="split" href="common-table-expression"></a><a href="#_toc/sql-subquery" class="u"> SQL subquery</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/cte-insert-values"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#cte-insert-values">CTE insert values</a><span class="hover-metadata"><a class="split" href="cte-insert-values"></a><a href="#_toc/common-table-expression" class="u"> Common Table Expression</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/sql-transaction"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-transaction">SQL transaction</a><span class="hover-metadata"><a class="split" href="sql-transaction"></a><a href="#_toc/sql-feature" class="u"> SQL feature</a><span class="metrics"><span class="wcntr"> 1k</span><span class="dcnt"> 11</span></span></span></span></div><ul><li class="has-child"><div id="_toc/sql-transaction-isolation-level"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-transaction-isolation-level">SQL transaction isolation level</a><span class="hover-metadata"><a class="split" href="sql-transaction-isolation-level"></a><a href="#_toc/sql-transaction" class="u"> SQL transaction</a><span class="metrics"><span class="wcntr"> 1k</span><span class="dcnt"> 10</span></span></span></span></div><ul><li><div id="_toc/sql-read-uncommitted-isolation-level"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-read-uncommitted-isolation-level">SQL READ UNCOMMITTED isolation level</a><span class="hover-metadata"><a class="split" href="sql-read-uncommitted-isolation-level"></a><a href="#_toc/sql-transaction-isolation-level" class="u"> SQL transaction isolation level</a></span></span></div></li><li><div id="_toc/sql-read-committed-isolation-level"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-read-committed-isolation-level">SQL READ COMMITTED isolation level</a><span class="hover-metadata"><a class="split" href="sql-read-committed-isolation-level"></a><a href="#_toc/sql-transaction-isolation-level" class="u"> SQL transaction isolation level</a></span></span></div></li><li><div id="_toc/sql-repeatable-read-isolation-level"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-repeatable-read-isolation-level">SQL REPEATABLE READ isolation level</a><span class="hover-metadata"><a class="split" href="sql-repeatable-read-isolation-level"></a><a href="#_toc/sql-transaction-isolation-level" class="u"> SQL transaction isolation level</a></span></span></div></li><li><div id="_toc/sql-serializable-isolation-level"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-serializable-isolation-level">SQL SERIALIZABLE isolation level</a><span class="hover-metadata"><a class="split" href="sql-serializable-isolation-level"></a><a href="#_toc/sql-transaction-isolation-level" class="u"> SQL transaction isolation level</a></span></span></div></li><li class="has-child"><div id="_toc/sql-isolation-level-example"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-isolation-level-example">SQL isolation level example</a><span class="hover-metadata"><a class="split" href="sql-isolation-level-example"></a><a href="#_toc/sql-transaction-isolation-level" class="u"> SQL transaction isolation level</a><span class="metrics"><span class="wcntr"> 1k</span><span class="dcnt"> 5</span></span></span></span></div><ul><li class="has-child"><div id="_toc/sql-parallel-update-example"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-parallel-update-example">SQL parallel update example</a><span class="hover-metadata"><a class="split" href="sql-parallel-update-example"></a><a href="#_toc/sql-isolation-level-example" class="u"> SQL isolation level example</a><span class="metrics"><span class="dcnt"> 4</span></span></span></span></div><ul><li><div id="_toc/_file/nodejs/sequelize/raw/parallel_update_async.js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#_file/nodejs/sequelize/raw/parallel_update_async.js">nodejs/sequelize/raw/parallel_update_async.js</a><span class="hover-metadata"><a class="split" href="_file/nodejs/sequelize/raw/parallel_update_async.js"></a><a href="#_toc/sql-parallel-update-example" class="u"> SQL parallel update example</a></span></span></div></li><li><div id="_toc/_file/nodejs/sequelize/raw/parallel_select_and_update.js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#_file/nodejs/sequelize/raw/parallel_select_and_update.js">nodejs/sequelize/raw/parallel_select_and_update.js</a><span class="hover-metadata"><a class="split" href="_file/nodejs/sequelize/raw/parallel_select_and_update.js"></a><a href="#_toc/sql-parallel-update-example" class="u"> SQL parallel update example</a></span></span></div></li><li><div id="_toc/_file/nodejs/sequelize/raw/parallel_select_and_update_deterministic.js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#_file/nodejs/sequelize/raw/parallel_select_and_update_deterministic.js">nodejs/sequelize/raw/parallel_select_and_update_deterministic.js</a><span class="hover-metadata"><a class="split" href="_file/nodejs/sequelize/raw/parallel_select_and_update_deterministic.js"></a><a href="#_toc/sql-parallel-update-example" class="u"> SQL parallel update example</a></span></span></div></li><li><div id="_toc/_file/nodejs/sequelize/raw/parallel_create_delete_empty_tag.js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#_file/nodejs/sequelize/raw/parallel_create_delete_empty_tag.js">nodejs/sequelize/raw/parallel_create_delete_empty_tag.js</a><span class="hover-metadata"><a class="split" href="_file/nodejs/sequelize/raw/parallel_create_delete_empty_tag.js"></a><a href="#_toc/sql-parallel-update-example" class="u"> SQL parallel update example</a></span></span></div></li></ul></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/window-function-sql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#window-function-sql">Window function <span class="meta">(SQL)</span></a><span class="hover-metadata"><a class="split" href="window-function-sql"></a><a href="#_toc/sql-feature" class="u"> SQL feature</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/row-number"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#row-number"><code>ROW_NUMBER</code></a><span class="hover-metadata"><a class="split" href="row-number"></a><a href="#_toc/window-function-sql" class="u"> Window function</a></span></span></div></li><li><div id="_toc/sql-window-range"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-window-range">SQL window <code>RANGE</code></a><span class="hover-metadata"><a class="split" href="sql-window-range"></a><a href="#_toc/window-function-sql" class="u"> Window function</a></span></span></div></li><li><div id="_toc/sql-contiguous-ranges"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sql#sql-contiguous-ranges">SQL contiguous ranges</a><span class="hover-metadata"><a class="split" href="sql-contiguous-ranges"></a><a href="#_toc/window-function-sql" class="u"> Window function</a></span></span></div></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/database-feature"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#database-feature">Database feature</a><span class="hover-metadata"><a class="split" href="database-feature"></a><a href="#_toc/database" class="u"> Database</a><span class="metrics"><span class="wcntr"> 70</span><span class="dcnt"> 10</span></span></span></span></div><ul><li class="has-child"><div id="_toc/acid-database"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#acid-database">ACID <span class="meta">(database)</span></a><span class="hover-metadata"><a class="split" href="acid-database"></a><a href="#_toc/database-feature" class="u"> Database feature</a><span class="metrics"><span class="wcntr"> 70</span><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/atomicity-database-systems"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#atomicity-database-systems">Atomicity <span class="meta">(database systems)</span></a><span class="hover-metadata"><a class="split" href="atomicity-database-systems"></a><a href="#_toc/acid-database" class="u"> ACID</a><span class="metrics"><span class="wcntr"> 45</span></span></span></span></div></li><li><div id="_toc/isolation-database-systems"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#isolation-database-systems">Isolation <span class="meta">(database systems)</span></a><span class="hover-metadata"><a class="split" href="isolation-database-systems"></a><a href="#_toc/acid-database" class="u"> ACID</a><span class="metrics"><span class="wcntr"> 25</span></span></span></span></div></li></ul><li><div id="_toc/database-trigger"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#database-trigger">Database trigger</a><span class="hover-metadata"><a class="split" href="database-trigger"></a><a href="#_toc/database-feature" class="u"> Database feature</a></span></span></div></li><li><div id="_toc/full-text-search"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#full-text-search">Full-text search</a><span class="hover-metadata"><a class="split" href="full-text-search"></a><a href="#_toc/database-feature" class="u"> Database feature</a></span></span></div></li><li><div id="_toc/stored-procedure"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#stored-procedure">Stored procedure</a><span class="hover-metadata"><a class="split" href="stored-procedure"></a><a href="#_toc/database-feature" class="u"> Database feature</a></span></span></div></li><li class="has-child"><div id="_toc/table-relationship"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#table-relationship">Table relationship</a><span class="hover-metadata"><a class="split" href="table-relationship"></a><a href="#_toc/database-feature" class="u"> Database feature</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/one-to-one-data-model"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#one-to-one-data-model">One-to-one <span class="meta">(data-model)</span></a><span class="hover-metadata"><a class="split" href="one-to-one-data-model"></a><a href="#_toc/table-relationship" class="u"> Table relationship</a></span></span></div></li><li><div id="_toc/one-to-many"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#one-to-many">One-to-many <span class="meta">(Many-to-one)</span></a><span class="hover-metadata"><a class="split" href="one-to-many"></a><a href="#_toc/table-relationship" class="u"> Table relationship</a></span></span></div></li><li><div id="_toc/many-to-many"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#many-to-many">Many-to-many</a><span class="hover-metadata"><a class="split" href="many-to-many"></a><a href="#_toc/table-relationship" class="u"> Table relationship</a></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/file-manager"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#file-manager">File manager</a><span class="hover-metadata"><a class="split" href="file-manager"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 62</span><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/krusader"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#krusader">Krusader</a><span class="hover-metadata"><a class="split" href="krusader"></a><a href="#_toc/file-manager" class="u"> File manager</a><span class="metrics"><span class="wcntr"> 28</span></span></span></span></div></li><li><div id="_toc/ranger-file-manager"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ranger-file-manager">Ranger <span class="meta">(file manager)</span></a><span class="hover-metadata"><a class="split" href="ranger-file-manager"></a><a href="#_toc/file-manager" class="u"> File manager</a><span class="metrics"><span class="wcntr"> 13</span></span></span></span></div></li></ul><li class="has-child"><div id="_toc/file-sharing"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#file-sharing">File sharing</a><span class="hover-metadata"><a class="split" href="file-sharing"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/bittorrent"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#bittorrent">BitTorrent</a><span class="hover-metadata"><a class="split" href="bittorrent"></a><a href="#_toc/file-sharing" class="u"> File sharing</a></span></span></div></li></ul><li class="has-child"><div id="_toc/game-engine"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#game-engine">Game engine</a><span class="hover-metadata"><a class="split" href="game-engine"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 47</span><span class="dcnt"> 5</span></span></span></span></div><ul><li><div id="_toc/cocos2d"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#cocos2d">Cocos2d</a><span class="hover-metadata"><a class="split" href="cocos2d"></a><a href="#_toc/game-engine" class="u"> Game engine</a><span class="metrics"><span class="wcntr"> 19</span></span></span></span></div></li><li><div id="_toc/rpg-maker"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#rpg-maker">RPG Maker</a><span class="hover-metadata"><a class="split" href="rpg-maker"></a><a href="#_toc/game-engine" class="u"> Game engine</a><span class="metrics"><span class="wcntr"> 15</span></span></span></span></div></li><li class="has-child"><div id="_toc/unity-game-engine"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#unity-game-engine">Unity <span class="meta">(game engine)</span></a><span class="hover-metadata"><a class="split" href="unity-game-engine"></a><a href="#_toc/game-engine" class="u"> Game engine</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/unity-based-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#unity-based-software">Unity-based software</a><span class="hover-metadata"><a class="split" href="unity-based-software"></a><a href="#_toc/unity-game-engine" class="u"> Unity</a></span></span></div></li></ul><li><div id="_toc/urho3d"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#urho3d">Urho3D</a><span class="hover-metadata"><a class="split" href="urho3d"></a><a href="#_toc/game-engine" class="u"> Game engine</a><span class="metrics"><span class="wcntr"> 8</span></span></span></span></div></li></ul><li class="has-child"><div id="_toc/geographic-information-system"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#geographic-information-system">Geographic information system <span class="meta">(GIS)</span></a><span class="hover-metadata"><a class="split" href="geographic-information-system"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 389</span><span class="dcnt"> 10</span></span></span></span></div><ul><li class="has-child"><div id="_toc/geographic-information-system-file-format"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#geographic-information-system-file-format">Geographic information system file format</a><span class="hover-metadata"><a class="split" href="geographic-information-system-file-format"></a><a href="#_toc/geographic-information-system" class="u"> Geographic information system</a><span class="metrics"><span class="wcntr"> 20</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/keyhole-markup-language"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#keyhole-markup-language">Keyhole Markup Language <span class="meta">(KML)</span></a><span class="hover-metadata"><a class="split" href="keyhole-markup-language"></a><a href="#_toc/geographic-information-system-file-format" class="u"> Geographic information system file format</a><span class="metrics"><span class="wcntr"> 20</span></span></span></span></div></li></ul><li class="has-child"><div id="_toc/list-of-geographic-information-systems"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#list-of-geographic-information-systems">List of geographic information systems</a><span class="hover-metadata"><a class="split" href="list-of-geographic-information-systems"></a><a href="#_toc/geographic-information-system" class="u"> Geographic information system</a><span class="metrics"><span class="wcntr"> 369</span><span class="dcnt"> 7</span></span></span></span></div><ul><li class="has-child"><div id="_toc/google-maps"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#google-maps">Google Maps</a><span class="hover-metadata"><a class="split" href="google-maps"></a><a href="#_toc/list-of-geographic-information-systems" class="u"> List of geographic information systems</a><span class="metrics"><span class="wcntr"> 84</span><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/keyhole-inc"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#keyhole-inc">Keyhole Inc.</a><span class="hover-metadata"><a class="split" href="keyhole-inc"></a><a href="#_toc/google-maps" class="u"> Google Maps</a></span></span></div></li><li><div id="_toc/where-2-technologies"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#where-2-technologies">Where 2 Technologies</a><span class="hover-metadata"><a class="split" href="where-2-technologies"></a><a href="#_toc/google-maps" class="u"> Google Maps</a></span></span></div></li><li><div id="_toc/google-street-view"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#google-street-view">Google Street View</a><span class="hover-metadata"><a class="split" href="google-street-view"></a><a href="#_toc/google-maps" class="u"> Google Maps</a><span class="metrics"><span class="wcntr"> 70</span></span></span></span></div></li></ul><li class="has-child"><div id="_toc/openstreetmap"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#openstreetmap">OpenStreetMap <span class="meta">(OSM)</span></a><span class="hover-metadata"><a class="split" href="openstreetmap"></a><a href="#_toc/list-of-geographic-information-systems" class="u"> List of geographic information systems</a><span class="metrics"><span class="wcntr"> 267</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/osmand"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#osmand">OsmAnd</a><span class="hover-metadata"><a class="split" href="osmand"></a><a href="#_toc/openstreetmap" class="u"> OpenStreetMap</a><span class="metrics"><span class="wcntr"> 32</span></span></span></span></div></li></ul><li><div id="_toc/ordnance-survey"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ordnance-survey">Ordnance Survey</a><span class="hover-metadata"><a class="split" href="ordnance-survey"></a><a href="#_toc/list-of-geographic-information-systems" class="u"> List of geographic information systems</a><span class="metrics"><span class="wcntr"> 18</span></span></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/integrated-development-environment"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#integrated-development-environment">Integrated development environment <span class="meta">(IDE)</span></a><span class="hover-metadata"><a class="split" href="integrated-development-environment"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 808</span><span class="dcnt"> 21</span></span></span></span></div><ul><li class="has-child"><div id="_toc/text-editor"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#text-editor">Text editor</a><span class="hover-metadata"><a class="split" href="text-editor"></a><a href="#_toc/integrated-development-environment" class="u"> Integrated development environment</a><span class="metrics"><span class="wcntr"> 35</span><span class="dcnt"> 6</span></span></span></span></div><ul><li class="has-child"><div id="_toc/javascript-text-editor"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#javascript-text-editor">JavaScript text editor</a><span class="hover-metadata"><a class="split" href="javascript-text-editor"></a><a href="#_toc/text-editor" class="u"> Text editor</a><span class="metrics"><span class="wcntr"> 35</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/monaco-editor"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#monaco-editor">Monaco <span class="meta">(editor)</span></a><span class="hover-metadata"><a class="split" href="monaco-editor"></a><a href="#_toc/javascript-text-editor" class="u"> JavaScript text editor</a><span class="metrics"><span class="wcntr"> 35</span></span></span></span></div></li></ul><li class="has-child"><div id="_toc/wysiwyg-text-editor"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#wysiwyg-text-editor">WYSIWYG text editor</a><span class="hover-metadata"><a class="split" href="wysiwyg-text-editor"></a><a href="#_toc/text-editor" class="u"> Text editor</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/javascript-wysiwyg-text-editor"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#javascript-wysiwyg-text-editor">JavaScript WYSIWYG text editor</a><span class="hover-metadata"><a class="split" href="javascript-wysiwyg-text-editor"></a><a href="#_toc/wysiwyg-text-editor" class="u"> WYSIWYG text editor</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/ckeditor"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ckeditor">CKEditor</a><span class="hover-metadata"><a class="split" href="ckeditor"></a><a href="#_toc/javascript-wysiwyg-text-editor" class="u"> JavaScript WYSIWYG text editor</a></span></span></div></li><li><div id="_toc/tinymce"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#tinymce">TinyMCE</a><span class="hover-metadata"><a class="split" href="tinymce"></a><a href="#_toc/javascript-wysiwyg-text-editor" class="u"> JavaScript WYSIWYG text editor</a></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/vim"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#vim">Vim</a><span class="hover-metadata"><a class="split" href="vim"></a><a href="#_toc/integrated-development-environment" class="u"> Integrated development environment</a><span class="metrics"><span class="wcntr"> 121</span><span class="dcnt"> 5</span></span></span></span></div><ul><li><div id="_toc/gvim"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gvim">Gvim</a><span class="hover-metadata"><a class="split" href="gvim"></a><a href="#_toc/vim" class="u"> Vim</a></span></span></div></li><li class="has-child"><div id="_toc/vader-vim"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#vader-vim">vader.vim</a><span class="hover-metadata"><a class="split" href="vader-vim"></a><a href="#_toc/vim" class="u"> Vim</a><span class="metrics"><span class="wcntr"> 67</span><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/plasticboy-vim-markdown"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#plasticboy-vim-markdown">plasticboy/vim-markdown</a><span class="hover-metadata"><a class="split" href="plasticboy-vim-markdown"></a><a href="#_toc/vader-vim" class="u"> vader.vim</a><span class="metrics"><span class="wcntr"> 16</span></span></span></span></div></li><li><div id="_toc/honza-vim-snippets"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#honza-vim-snippets">honza/vim-snippets</a><span class="hover-metadata"><a class="split" href="honza-vim-snippets"></a><a href="#_toc/vader-vim" class="u"> vader.vim</a></span></span></div></li><li><div id="_toc/vimium"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#vimium">Vimium</a><span class="hover-metadata"><a class="split" href="vimium"></a><a href="#_toc/vader-vim" class="u"> vader.vim</a><span class="metrics"><span class="wcntr"> 49</span></span></span></span></div></li></ul></li></ul><li><div id="_toc/eclipse-ide"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#eclipse-ide">Eclipse <span class="meta">(IDE)</span></a><span class="hover-metadata"><a class="split" href="eclipse-ide"></a><a href="#_toc/integrated-development-environment" class="u"> Integrated development environment</a><span class="metrics"><span class="wcntr"> 335</span></span></span></span></div></li><li><div id="_toc/jetbrains"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#jetbrains">JetBrains</a><span class="hover-metadata"><a class="split" href="jetbrains"></a><a href="#_toc/integrated-development-environment" class="u"> Integrated development environment</a></span></span></div></li><li class="has-child"><div id="_toc/visual-studio-code"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#visual-studio-code">Visual Studio Code <span class="meta">(VS Code, vscode)</span></a><span class="hover-metadata"><a class="split" href="visual-studio-code"></a><a href="#_toc/integrated-development-environment" class="u"> Integrated development environment</a><span class="metrics"><span class="wcntr"> 79</span><span class="dcnt"> 5</span></span></span></span></div><ul><li><div id="_toc/vscode-bug"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#vscode-bug">vscode bug</a><span class="hover-metadata"><a class="split" href="vscode-bug"></a><a href="#_toc/visual-studio-code" class="u"> Visual Studio Code</a><span class="metrics"><span class="wcntr"> 3</span></span></span></span></div></li><li><div id="_toc/vscode-vim"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#vscode-vim">vscode Vim</a><span class="hover-metadata"><a class="split" href="vscode-vim"></a><a href="#_toc/visual-studio-code" class="u"> Visual Studio Code</a><span class="metrics"><span class="wcntr"> 5</span></span></span></span></div></li><li class="has-child"><div id="_toc/vscode-howto"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#vscode-howto">vscode HOWTO</a><span class="hover-metadata"><a class="split" href="vscode-howto"></a><a href="#_toc/visual-studio-code" class="u"> Visual Studio Code</a><span class="metrics"><span class="wcntr"> 71</span><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/vscode-jump-to-definition-broken"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#vscode-jump-to-definition-broken">vscode jump to definition broken</a><span class="hover-metadata"><a class="split" href="vscode-jump-to-definition-broken"></a><a href="#_toc/vscode-howto" class="u"> vscode HOWTO</a><span class="metrics"><span class="wcntr"> 16</span></span></span></span></div></li><li><div id="_toc/vscode-restore-windows-after-restart"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#vscode-restore-windows-after-restart">vscode restore windows after restart</a><span class="hover-metadata"><a class="split" href="vscode-restore-windows-after-restart"></a><a href="#_toc/vscode-howto" class="u"> vscode HOWTO</a><span class="metrics"><span class="wcntr"> 55</span></span></span></span></div></li></ul></li></ul></li></ul><li><div id="_toc/killer-application"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#killer-application">Killer application</a><span class="hover-metadata"><a class="split" href="killer-application"></a><a href="#_toc" class="u"> Software</a></span></span></div></li><li><div id="_toc/memory-management"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#memory-management">Memory management</a><span class="hover-metadata"><a class="split" href="memory-management"></a><a href="#_toc" class="u"> Software</a></span></span></div></li><li><div id="_toc/garbage-collection-computer-science"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#garbage-collection-computer-science">Garbage collection <span class="meta">(computer science)</span></a><span class="hover-metadata"><a class="split" href="garbage-collection-computer-science"></a><a href="#_toc" class="u"> Software</a></span></span></div></li><li class="has-child"><div id="_toc/messaging-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software">Messaging software</a><span class="hover-metadata"><a class="split" href="messaging-software-split"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 1k</span><span class="dcnt"> 41</span></span></span></span></div><ul><li class="has-child"><div id="_toc/messaging-software-that-force-you-to-have-a-mobile-phone"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#messaging-software-that-force-you-to-have-a-mobile-phone">Messaging software that force you to have a mobile phone</a><span class="hover-metadata"><a class="split" href="messaging-software-that-force-you-to-have-a-mobile-phone"></a><a href="#_toc/messaging-software" class="u"> Messaging software</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/messaging-software-that-force-you-to-share-your-mobile-phone-with-contacts"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#messaging-software-that-force-you-to-share-your-mobile-phone-with-contacts">Messaging software that force you to share your mobile phone with contacts</a><span class="hover-metadata"><a class="split" href="messaging-software-that-force-you-to-share-your-mobile-phone-with-contacts"></a><a href="#_toc/messaging-software-that-force-you-to-have-a-mobile-phone" class="u"> Messaging software that force you to have a mobile phone</a></span></span></div></li></ul><li><div id="_toc/serverless-browser-p2p-chat"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#serverless-browser-p2p-chat">Serverless browser P2P chat</a><span class="hover-metadata"><a class="split" href="serverless-browser-p2p-chat"></a><a href="#_toc/messaging-software" class="u"> Messaging software</a></span></span></div></li><li class="has-child"><div id="_toc/email"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#email">Email</a><span class="hover-metadata"><a class="split" href="email"></a><a href="#_toc/messaging-software" class="u"> Messaging software</a><span class="metrics"><span class="wcntr"> 266</span><span class="dcnt"> 14</span></span></span></span></div><ul><li class="has-child"><div id="_toc/transactional-emai-provider"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#transactional-emai-provider">Transactional emai provider</a><span class="hover-metadata"><a class="split" href="transactional-emai-provider"></a><a href="#_toc/email" class="u"> Email</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/sendgrid"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#sendgrid">SendGrid</a><span class="hover-metadata"><a class="split" href="sendgrid"></a><a href="#_toc/transactional-emai-provider" class="u"> Transactional emai provider</a></span></span></div></li></ul><li><div id="_toc/plausible-deniability-of-email-password-handover"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#plausible-deniability-of-email-password-handover">Plausible deniability of email password handover</a><span class="hover-metadata"><a class="split" href="plausible-deniability-of-email-password-handover"></a><a href="#_toc/email" class="u"> Email</a></span></span></div></li><li class="has-child"><div id="_toc/privacy-focused-email-provider"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#privacy-focused-email-provider">Privacy focused email provider</a><span class="hover-metadata"><a class="split" href="privacy-focused-email-provider"></a><a href="#_toc/email" class="u"> Email</a><span class="metrics"><span class="wcntr"> 61</span><span class="dcnt"> 4</span></span></span></span></div><ul><li class="has-child"><div id="_toc/protonmail"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#protonmail">ProtonMail</a><span class="hover-metadata"><a class="split" href="protonmail"></a><a href="#_toc/privacy-focused-email-provider" class="u"> Privacy focused email provider</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/protonmail-asks-for-login-every-time-in-the-browser"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#protonmail-asks-for-login-every-time-in-the-browser">ProtonMail asks for login every time in the browser</a><span class="hover-metadata"><a class="split" href="protonmail-asks-for-login-every-time-in-the-browser"></a><a href="#_toc/protonmail" class="u"> ProtonMail</a></span></span></div></li><li><div id="_toc/proton-pass"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#proton-pass">Proton Pass</a><span class="hover-metadata"><a class="split" href="proton-pass"></a><a href="#_toc/protonmail" class="u"> ProtonMail</a></span></span></div></li><li><div id="_toc/proton-vpn"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#proton-vpn">Proton VPN</a><span class="hover-metadata"><a class="split" href="proton-vpn"></a><a href="#_toc/protonmail" class="u"> ProtonMail</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/list-of-email-providers"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#list-of-email-providers">List of email providers</a><span class="hover-metadata"><a class="split" href="list-of-email-providers"></a><a href="#_toc/email" class="u"> Email</a><span class="metrics"><span class="wcntr"> 27</span><span class="dcnt"> 5</span></span></span></span></div><ul><li class="has-child"><div id="_toc/gmail"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#gmail">Gmail</a><span class="hover-metadata"><a class="split" href="gmail"></a><a href="#_toc/list-of-email-providers" class="u"> List of email providers</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/google-chat"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#google-chat">Google Chat</a><span class="hover-metadata"><a class="split" href="google-chat"></a><a href="#_toc/gmail" class="u"> Gmail</a></span></span></div></li><li><div id="_toc/dots-in-gmail-address"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#dots-in-gmail-address">Dots in Gmail address</a><span class="hover-metadata"><a class="split" href="dots-in-gmail-address"></a><a href="#_toc/gmail" class="u"> Gmail</a></span></span></div></li></ul><li><div id="_toc/guerrilla-mail"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#guerrilla-mail">Guerrilla Mail</a><span class="hover-metadata"><a class="split" href="guerrilla-mail"></a><a href="#_toc/list-of-email-providers" class="u"> List of email providers</a></span></span></div></li><li><div id="_toc/microsoft-outlook"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#microsoft-outlook">Microsoft Outlook</a><span class="hover-metadata"><a class="split" href="microsoft-outlook"></a><a href="#_toc/list-of-email-providers" class="u"> List of email providers</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/instant-messaging"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#instant-messaging">Instant messaging</a><span class="hover-metadata"><a class="split" href="instant-messaging"></a><a href="#_toc/messaging-software" class="u"> Messaging software</a><span class="metrics"><span class="wcntr"> 791</span><span class="dcnt"> 22</span></span></span></span></div><ul><li><div id="_toc/instant-messaging-vs-email"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#instant-messaging-vs-email">Instant messaging vs email</a><span class="hover-metadata"><a class="split" href="instant-messaging-vs-email"></a><a href="#_toc/instant-messaging" class="u"> Instant messaging</a></span></span></div></li><li><div id="_toc/the-perfect-privacy-messaging-software-features"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#the-perfect-privacy-messaging-software-features">The perfect privacy messaging software features</a><span class="hover-metadata"><a class="split" href="the-perfect-privacy-messaging-software-features"></a><a href="#_toc/instant-messaging" class="u"> Instant messaging</a></span></span></div></li><li class="has-child"><div id="_toc/open-instant-messaging-protocols"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#open-instant-messaging-protocols">Open instant messaging protocols</a><span class="hover-metadata"><a class="split" href="open-instant-messaging-protocols"></a><a href="#_toc/instant-messaging" class="u"> Instant messaging</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/internet-relay-chat"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#internet-relay-chat">Internet Relay Chat</a><span class="hover-metadata"><a class="split" href="internet-relay-chat"></a><a href="#_toc/open-instant-messaging-protocols" class="u"> Open instant messaging protocols</a></span></span></div></li><li><div id="_toc/signal-protocol"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#signal-protocol">Signal protocol</a><span class="hover-metadata"><a class="split" href="signal-protocol"></a><a href="#_toc/open-instant-messaging-protocols" class="u"> Open instant messaging protocols</a></span></span></div></li><li><div id="_toc/xmpp"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#xmpp">XMPP</a><span class="hover-metadata"><a class="split" href="xmpp"></a><a href="#_toc/open-instant-messaging-protocols" class="u"> Open instant messaging protocols</a></span></span></div></li></ul><li class="has-child"><div id="_toc/list-of-instant-messaging-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#list-of-instant-messaging-software">List of instant messaging software</a><span class="hover-metadata"><a class="split" href="list-of-instant-messaging-software"></a><a href="#_toc/instant-messaging" class="u"> Instant messaging</a><span class="metrics"><span class="wcntr"> 208</span><span class="dcnt"> 15</span></span></span></span></div><ul><li><div id="_toc/bitmessage"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#bitmessage">Bitmessage</a><span class="hover-metadata"><a class="split" href="bitmessage"></a><a href="#_toc/list-of-instant-messaging-software" class="u"> List of instant messaging software</a></span></span></div></li><li class="has-child"><div id="_toc/discord-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#discord-software">Discord <span class="meta">(software)</span></a><span class="hover-metadata"><a class="split" href="discord-software"></a><a href="#_toc/list-of-instant-messaging-software" class="u"> List of instant messaging software</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/discord-email-notifications"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#discord-email-notifications">Discord email notifications</a><span class="hover-metadata"><a class="split" href="discord-email-notifications"></a><a href="#_toc/discord-software" class="u"> Discord</a></span></span></div></li></ul><li><div id="_toc/jami-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#jami-software">Jami <span class="meta">(software, Ring)</span></a><span class="hover-metadata"><a class="split" href="jami-software"></a><a href="#_toc/list-of-instant-messaging-software" class="u"> List of instant messaging software</a></span></span></div></li><li><div id="_toc/jitsi"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#jitsi">Jitsi</a><span class="hover-metadata"><a class="split" href="jitsi"></a><a href="#_toc/list-of-instant-messaging-software" class="u"> List of instant messaging software</a></span></span></div></li><li><div id="_toc/pidgin-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#pidgin-software">Pidgin <span class="meta">(software)</span></a><span class="hover-metadata"><a class="split" href="pidgin-software"></a><a href="#_toc/list-of-instant-messaging-software" class="u"> List of instant messaging software</a></span></span></div></li><li class="has-child"><div id="_toc/signal-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#signal-software">Signal <span class="meta">(software)</span></a><span class="hover-metadata"><a class="split" href="signal-software"></a><a href="#_toc/list-of-instant-messaging-software" class="u"> List of instant messaging software</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/signal-feature-request"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#signal-feature-request">Signal feature request</a><span class="hover-metadata"><a class="split" href="signal-feature-request"></a><a href="#_toc/signal-software" class="u"> Signal</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/peer-to-peer-file-transfer-of-arbitrary-size"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#peer-to-peer-file-transfer-of-arbitrary-size">Peer to peer file transfer of arbitrary size</a><span class="hover-metadata"><a class="split" href="peer-to-peer-file-transfer-of-arbitrary-size"></a><a href="#_toc/signal-feature-request" class="u"> Signal feature request</a></span></span></div></li></ul></li></ul><li><div id="_toc/slack-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#slack-software">Slack <span class="meta">(software)</span></a><span class="hover-metadata"><a class="split" href="slack-software"></a><a href="#_toc/list-of-instant-messaging-software" class="u"> List of instant messaging software</a></span></span></div></li><li><div id="_toc/skype"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#skype">Skype</a><span class="hover-metadata"><a class="split" href="skype"></a><a href="#_toc/list-of-instant-messaging-software" class="u"> List of instant messaging software</a></span></span></div></li><li><div id="_toc/telegram-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#telegram-software">Telegram <span class="meta">(software)</span></a><span class="hover-metadata"><a class="split" href="telegram-software"></a><a href="#_toc/list-of-instant-messaging-software" class="u"> List of instant messaging software</a></span></span></div></li><li class="has-child"><div id="_toc/whatsapp"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#whatsapp">WhatsApp</a><span class="hover-metadata"><a class="split" href="whatsapp"></a><a href="#_toc/list-of-instant-messaging-software" class="u"> List of instant messaging software</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/why-did-facebook-buy-whatsapp"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#why-did-facebook-buy-whatsapp">Why did Facebook buy WhatsApp?</a><span class="hover-metadata"><a class="split" href="why-did-facebook-buy-whatsapp"></a><a href="#_toc/whatsapp" class="u"> WhatsApp</a></span></span></div></li><li><div id="_toc/whatsapp-profile-information-is-public-by-default"><div class="arrow"><div></div></div><span class="not-arrow"><a href="messaging-software#whatsapp-profile-information-is-public-by-default">WhatsApp profile information is public by default</a><span class="hover-metadata"><a class="split" href="whatsapp-profile-information-is-public-by-default"></a><a href="#_toc/whatsapp" class="u"> WhatsApp</a></span></span></div></li></ul></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/multimedia-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#multimedia-software">Multimedia software</a><span class="hover-metadata"><a class="split" href="multimedia-software"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 648</span><span class="dcnt"> 18</span></span></span></span></div><ul><li class="has-child"><div id="_toc/ffmpeg"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ffmpeg">FFmpeg</a><span class="hover-metadata"><a class="split" href="ffmpeg"></a><a href="#_toc/multimedia-software" class="u"> Multimedia software</a><span class="metrics"><span class="wcntr"> 524</span><span class="dcnt"> 7</span></span></span></span></div><ul><li><div id="_toc/ffmpeg-filter-graph"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ffmpeg-filter-graph">FFmpeg filter graph</a><span class="hover-metadata"><a class="split" href="ffmpeg-filter-graph"></a><a href="#_toc/ffmpeg" class="u"> FFmpeg</a><span class="metrics"><span class="wcntr"> 198</span></span></span></span></div></li><li class="has-child"><div id="_toc/ffplay"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ffplay">ffplay</a><span class="hover-metadata"><a class="split" href="ffplay"></a><a href="#_toc/ffmpeg" class="u"> FFmpeg</a><span class="metrics"><span class="wcntr"> 100</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/ffplay-multiple-input-files"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ffplay-multiple-input-files">ffplay multiple input files</a><span class="hover-metadata"><a class="split" href="ffplay-multiple-input-files"></a><a href="#_toc/ffplay" class="u"> ffplay</a><span class="metrics"><span class="wcntr"> 73</span></span></span></span></div></li></ul><li><div id="_toc/ffmpeg-sound-synthesis"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ffmpeg-sound-synthesis">FFmpeg sound synthesis</a><span class="hover-metadata"><a class="split" href="ffmpeg-sound-synthesis"></a><a href="#_toc/ffmpeg" class="u"> FFmpeg</a><span class="metrics"><span class="wcntr"> 13</span></span></span></span></div></li><li><div id="_toc/ffmpeg-video-synthesis"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ffmpeg-video-synthesis">FFmpeg video synthesis</a><span class="hover-metadata"><a class="split" href="ffmpeg-video-synthesis"></a><a href="#_toc/ffmpeg" class="u"> FFmpeg</a><span class="metrics"><span class="wcntr"> 95</span></span></span></span></div></li><li><div id="_toc/ffmpeg-is-the-backend-of-youtube"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ffmpeg-is-the-backend-of-youtube">FFmpeg is the backend of YouTube</a><span class="hover-metadata"><a class="split" href="ffmpeg-is-the-backend-of-youtube"></a><a href="#_toc/ffmpeg" class="u"> FFmpeg</a><span class="metrics"><span class="wcntr"> 13</span></span></span></span></div></li><li><div id="_toc/concatenate-two-videos-with-ffmpeg"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#concatenate-two-videos-with-ffmpeg">Concatenate two videos with ffmpeg</a><span class="hover-metadata"><a class="split" href="concatenate-two-videos-with-ffmpeg"></a><a href="#_toc/ffmpeg" class="u"> FFmpeg</a></span></span></div></li></ul><li class="has-child"><div id="_toc/image-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#image-software">Image software</a><span class="hover-metadata"><a class="split" href="image-software"></a><a href="#_toc/multimedia-software" class="u"> Multimedia software</a><span class="metrics"><span class="wcntr"> 124</span><span class="dcnt"> 9</span></span></span></span></div><ul><li class="has-child"><div id="_toc/image-viewer"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#image-viewer">Image viewer</a><span class="hover-metadata"><a class="split" href="image-viewer"></a><a href="#_toc/image-software" class="u"> Image software</a><span class="metrics"><span class="wcntr"> 45</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/nomacs"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#nomacs">Nomacs</a><span class="hover-metadata"><a class="split" href="nomacs"></a><a href="#_toc/image-viewer" class="u"> Image viewer</a><span class="metrics"><span class="wcntr"> 45</span></span></span></span></div></li></ul><li class="has-child"><div id="_toc/image-manipulation-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#image-manipulation-software">Image manipulation software</a><span class="hover-metadata"><a class="split" href="image-manipulation-software"></a><a href="#_toc/image-software" class="u"> Image software</a><span class="metrics"><span class="wcntr"> 79</span><span class="dcnt"> 6</span></span></span></span></div><ul><li class="has-child"><div id="_toc/imagemagick"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#imagemagick">ImageMagick</a><span class="hover-metadata"><a class="split" href="imagemagick"></a><a href="#_toc/image-manipulation-software" class="u"> Image manipulation software</a><span class="metrics"><span class="wcntr"> 79</span><span class="dcnt"> 5</span></span></span></span></div><ul><li class="has-child"><div id="_toc/imagemagick-howto"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#imagemagick-howto">ImageMagick HOWTO</a><span class="hover-metadata"><a class="split" href="imagemagick-howto"></a><a href="#_toc/imagemagick" class="u"> ImageMagick</a><span class="metrics"><span class="wcntr"> 63</span><span class="dcnt"> 4</span></span></span></span></div><ul><li><div id="_toc/join-two-images-side-by-side"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#join-two-images-side-by-side">Join two images side-by-side</a><span class="hover-metadata"><a class="split" href="join-two-images-side-by-side"></a><a href="#_toc/imagemagick-howto" class="u"> ImageMagick HOWTO</a></span></span></div></li><li class="has-child"><div id="_toc/crate-solid-color-image-in-imagemagick"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#crate-solid-color-image-in-imagemagick">Crate solid color image in ImageMagick</a><span class="hover-metadata"><a class="split" href="crate-solid-color-image-in-imagemagick"></a><a href="#_toc/imagemagick-howto" class="u"> ImageMagick HOWTO</a><span class="metrics"><span class="wcntr"> 31</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/create-gradient-image-with-imagemagick"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#create-gradient-image-with-imagemagick">Create gradient image with ImageMagick</a><span class="hover-metadata"><a class="split" href="create-gradient-image-with-imagemagick"></a><a href="#_toc/crate-solid-color-image-in-imagemagick" class="u"> Crate solid color image in ImageMagick</a><span class="metrics"><span class="wcntr"> 25</span></span></span></span></div></li></ul><li><div id="_toc/crate-image-with-given-text-in-imagemagick"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#crate-image-with-given-text-in-imagemagick">Crate image with given text in ImageMagick</a><span class="hover-metadata"><a class="split" href="crate-image-with-given-text-in-imagemagick"></a><a href="#_toc/imagemagick-howto" class="u"> ImageMagick HOWTO</a><span class="metrics"><span class="wcntr"> 32</span></span></span></span></div></li></ul></li></ul></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/open-source-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#open-source-software">Open source software</a><span class="hover-metadata"><a class="split" href="open-source-software"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 1k</span><span class="dcnt"> 21</span></span></span></span></div><ul><li class="has-child"><div id="_toc/open-source-advocacy-entity"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#open-source-advocacy-entity">Open source advocacy entity</a><span class="hover-metadata"><a class="split" href="open-source-advocacy-entity"></a><a href="#_toc/open-source-software" class="u"> Open source software</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/gnu-project"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gnu-project">GNU Project</a><span class="hover-metadata"><a class="split" href="gnu-project"></a><a href="#_toc/open-source-advocacy-entity" class="u"> Open source advocacy entity</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/gnu-package"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gnu-package">GNU package</a><span class="hover-metadata"><a class="split" href="gnu-package"></a><a href="#_toc/gnu-project" class="u"> GNU Project</a></span></span></div></li></ul></li></ul><li><div id="_toc/open-source-hardware"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#open-source-hardware">Open source hardware</a><span class="hover-metadata"><a class="split" href="open-source-hardware"></a><a href="#_toc/open-source-software" class="u"> Open source software</a></span></span></div></li><li class="has-child"><div id="_toc/free-and-open-source-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#free-and-open-source-software">Free and open-source software <span class="meta">(FOSS)</span></a><span class="hover-metadata"><a class="split" href="free-and-open-source-software"></a><a href="#_toc/open-source-software" class="u"> Open source software</a><span class="metrics"><span class="wcntr"> 134</span><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/model-for-financing-open-source-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#model-for-financing-open-source-software">Model for financing open source software</a><span class="hover-metadata"><a class="split" href="model-for-financing-open-source-software"></a><a href="#_toc/free-and-open-source-software" class="u"> Free and open-source software</a><span class="metrics"><span class="wcntr"> 64</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/software-developer-collective"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#software-developer-collective">Software developer collective</a><span class="hover-metadata"><a class="split" href="software-developer-collective"></a><a href="#_toc/model-for-financing-open-source-software" class="u"> Model for financing open source software</a><span class="metrics"><span class="wcntr"> 64</span></span></span></span></div></li></ul><li><div id="_toc/open-source-software-that-is-not-foss"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#open-source-software-that-is-not-foss">Open source software that is not-FOSS</a><span class="hover-metadata"><a class="split" href="open-source-software-that-is-not-foss"></a><a href="#_toc/free-and-open-source-software" class="u"> Free and open-source software</a></span></span></div></li></ul><li><div id="_toc/source-code-leaks"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#source-code-leaks">Source code leaks</a><span class="hover-metadata"><a class="split" href="source-code-leaks"></a><a href="#_toc/open-source-software" class="u"> Open source software</a><span class="metrics"><span class="wcntr"> 30</span></span></span></span></div></li><li class="has-child"><div id="_toc/open-knowledge"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#open-knowledge">Open knowledge</a><span class="hover-metadata"><a class="split" href="open-knowledge"></a><a href="#_toc/open-source-software" class="u"> Open source software</a><span class="metrics"><span class="wcntr"> 19</span><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/open-educational-resources"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#open-educational-resources">Open educational resources <span class="meta">(OER)</span></a><span class="hover-metadata"><a class="split" href="open-educational-resources"></a><a href="#_toc/open-knowledge" class="u"> Open knowledge</a><span class="metrics"><span class="wcntr"> 4</span><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/open-textbook-library"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#open-textbook-library">Open Textbook Library</a><span class="hover-metadata"><a class="split" href="open-textbook-library"></a><a href="#_toc/open-educational-resources" class="u"> Open educational resources</a></span></span></div></li><li><div id="_toc/opencourseware"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#opencourseware">OpenCourseWare</a><span class="hover-metadata"><a class="split" href="opencourseware"></a><a href="#_toc/open-educational-resources" class="u"> Open educational resources</a></span></span></div></li></ul></li></ul><li><div id="_toc/horrors-of-open-source"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#horrors-of-open-source">Horrors of open source</a><span class="hover-metadata"><a class="split" href="horrors-of-open-source"></a><a href="#_toc/open-source-software" class="u"> Open source software</a><span class="metrics"><span class="wcntr"> 422</span></span></span></span></div></li><li><div id="_toc/code-drop"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#code-drop">Code drop</a><span class="hover-metadata"><a class="split" href="code-drop"></a><a href="#_toc/open-source-software" class="u"> Open source software</a><span class="metrics"><span class="wcntr"> 52</span></span></span></span></div></li><li class="has-child"><div id="_toc/closed-source-is-less-bad-on-online-services"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#closed-source-is-less-bad-on-online-services">Closed source is less bad on online services</a><span class="hover-metadata"><a class="split" href="closed-source-is-less-bad-on-online-services"></a><a href="#_toc/open-source-software" class="u"> Open source software</a><span class="metrics"><span class="wcntr"> 56</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/closed-source-offline-software-used-by-millions"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#closed-source-offline-software-used-by-millions">Closed source offline software used by millions</a><span class="hover-metadata"><a class="split" href="closed-source-offline-software-used-by-millions"></a><a href="#_toc/closed-source-is-less-bad-on-online-services" class="u"> Closed source is less bad on online services</a><span class="metrics"><span class="wcntr"> 32</span></span></span></span></div></li></ul><li class="has-child"><div id="_toc/closed-source-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#closed-source-software">Closed source software</a><span class="hover-metadata"><a class="split" href="closed-source-software"></a><a href="#_toc/open-source-software" class="u"> Open source software</a><span class="metrics"><span class="wcntr"> 108</span><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/closed-standard"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#closed-standard">Closed standard</a><span class="hover-metadata"><a class="split" href="closed-standard"></a><a href="#_toc/closed-source-software" class="u"> Closed source software</a><span class="metrics"><span class="wcntr"> 85</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/international-organization-for-standardization"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#international-organization-for-standardization">International Organization for Standardization</a><span class="hover-metadata"><a class="split" href="international-organization-for-standardization"></a><a href="#_toc/closed-standard" class="u"> Closed standard</a></span></span></div></li></ul><li><div id="_toc/inner-source"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#inner-source">Inner source</a><span class="hover-metadata"><a class="split" href="inner-source"></a><a href="#_toc/closed-source-software" class="u"> Closed source software</a><span class="metrics"><span class="wcntr"> 19</span></span></span></span></div></li></ul></li></ul><li><div id="_toc/personal-information-management"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#personal-information-management">Personal information management</a><span class="hover-metadata"><a class="split" href="personal-information-management"></a><a href="#_toc" class="u"> Software</a></span></span></div></li><li class="has-child"><div id="_toc/productivity-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#productivity-software">Productivity software</a><span class="hover-metadata"><a class="split" href="productivity-software"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 9</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/libreoffice"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#libreoffice">LibreOffice</a><span class="hover-metadata"><a class="split" href="libreoffice"></a><a href="#_toc/productivity-software" class="u"> Productivity software</a><span class="metrics"><span class="wcntr"> 9</span></span></span></span></div></li></ul><li class="has-child"><div id="_toc/program-optimization"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#program-optimization">Program optimization</a><span class="hover-metadata"><a class="split" href="program-optimization"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="dcnt"> 5</span></span></span></span></div><ul><li class="has-child"><div id="_toc/benchmark"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#benchmark">Benchmark</a><span class="hover-metadata"><a class="split" href="benchmark"></a><a href="#_toc/program-optimization" class="u"> Program optimization</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/open-and-closed-source-benchmarks"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#open-and-closed-source-benchmarks">Open and closed source benchmarks</a><span class="hover-metadata"><a class="split" href="open-and-closed-source-benchmarks"></a><a href="#_toc/benchmark" class="u"> Benchmark</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/open-source-benchmark"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#open-source-benchmark">Open source benchmark</a><span class="hover-metadata"><a class="split" href="open-source-benchmark"></a><a href="#_toc/open-and-closed-source-benchmarks" class="u"> Open and closed source benchmarks</a></span></span></div></li><li><div id="_toc/closed-source-benchmark"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#closed-source-benchmark">Closed source benchmark</a><span class="hover-metadata"><a class="split" href="closed-source-benchmark"></a><a href="#_toc/open-and-closed-source-benchmarks" class="u"> Open and closed source benchmarks</a></span></span></div></li></ul></li></ul><li><div id="_toc/profiling-computer-programming"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#profiling-computer-programming">Profiling <span class="meta">(computer programming)</span></a><span class="hover-metadata"><a class="split" href="profiling-computer-programming"></a><a href="#_toc/program-optimization" class="u"> Program optimization</a></span></span></div></li></ul><li class="has-child"><div id="_toc/programming-language"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language">Programming language</a><span class="hover-metadata"><a class="split" href="programming-language-split"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 6k</span><span class="dcnt"> 178</span></span></span></span></div><ul><li class="has-child"><div id="_toc/type-of-programming-language"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#type-of-programming-language">Type of programming language</a><span class="hover-metadata"><a class="split" href="type-of-programming-language"></a><a href="#_toc/programming-language" class="u"> Programming language</a><span class="metrics"><span class="wcntr"> 116</span><span class="dcnt"> 10</span></span></span></span></div><ul><li><div id="_toc/type-system"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#type-system">Type system</a><span class="hover-metadata"><a class="split" href="type-system"></a><a href="#_toc/type-of-programming-language" class="u"> Type of programming language</a></span></span></div></li><li class="has-child"><div id="_toc/programming-paradigm"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#programming-paradigm">Programming paradigm</a><span class="hover-metadata"><a class="split" href="programming-paradigm"></a><a href="#_toc/type-of-programming-language" class="u"> Type of programming language</a><span class="metrics"><span class="wcntr"> 53</span><span class="dcnt"> 4</span></span></span></span></div><ul><li><div id="_toc/imperative-programming"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#imperative-programming">Imperative programming</a><span class="hover-metadata"><a class="split" href="imperative-programming"></a><a href="#_toc/programming-paradigm" class="u"> Programming paradigm</a></span></span></div></li><li class="has-child"><div id="_toc/functional-programming"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#functional-programming">Functional programming</a><span class="hover-metadata"><a class="split" href="functional-programming"></a><a href="#_toc/programming-paradigm" class="u"> Programming paradigm</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/unnecessary-state-is-the-source-of-much-evil"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#unnecessary-state-is-the-source-of-much-evil">Unnecessary state is the source of much evil</a><span class="hover-metadata"><a class="split" href="unnecessary-state-is-the-source-of-much-evil"></a><a href="#_toc/functional-programming" class="u"> Functional programming</a></span></span></div></li><li><div id="_toc/functional-programming-is-a-subset-of-imperative-programming"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#functional-programming-is-a-subset-of-imperative-programming">Functional programming is a subset of imperative programming</a><span class="hover-metadata"><a class="split" href="functional-programming-is-a-subset-of-imperative-programming"></a><a href="#_toc/functional-programming" class="u"> Functional programming</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/compiled-and-interpreted-programming-language"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#compiled-and-interpreted-programming-language">Compiled and interpreted programming language</a><span class="hover-metadata"><a class="split" href="compiled-and-interpreted-programming-language"></a><a href="#_toc/type-of-programming-language" class="u"> Type of programming language</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/compiled-programming-language"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#compiled-programming-language">Compiled programming language</a><span class="hover-metadata"><a class="split" href="compiled-programming-language"></a><a href="#_toc/compiled-and-interpreted-programming-language" class="u"> Compiled and interpreted programming language</a></span></span></div></li><li><div id="_toc/interpreted-programming-language"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#interpreted-programming-language">Interpreted programming language</a><span class="hover-metadata"><a class="split" href="interpreted-programming-language"></a><a href="#_toc/compiled-and-interpreted-programming-language" class="u"> Compiled and interpreted programming language</a></span></span></div></li></ul><li><div id="_toc/programming-languages-without-a-decent-dominating-package-system"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#programming-languages-without-a-decent-dominating-package-system">Programming languages without a decent dominating package system</a><span class="hover-metadata"><a class="split" href="programming-languages-without-a-decent-dominating-package-system"></a><a href="#_toc/type-of-programming-language" class="u"> Type of programming language</a></span></span></div></li></ul><li class="has-child"><div id="_toc/programming-language-construct"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#programming-language-construct">Programming language construct</a><span class="hover-metadata"><a class="split" href="programming-language-construct"></a><a href="#_toc/programming-language" class="u"> Programming language</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/for-loop"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#for-loop">for loop</a><span class="hover-metadata"><a class="split" href="for-loop"></a><a href="#_toc/programming-language-construct" class="u"> Programming language construct</a></span></span></div></li><li><div id="_toc/while-loop"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#while-loop">while loop</a><span class="hover-metadata"><a class="split" href="while-loop"></a><a href="#_toc/programming-language-construct" class="u"> Programming language construct</a></span></span></div></li></ul><li class="has-child"><div id="_toc/list-of-programming-languages"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#list-of-programming-languages">List of programming languages</a><span class="hover-metadata"><a class="split" href="list-of-programming-languages"></a><a href="#_toc/programming-language" class="u"> Programming language</a><span class="metrics"><span class="wcntr"> 5k</span><span class="dcnt"> 163</span></span></span></span></div><ul><li><div id="_toc/adobe-flash"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#adobe-flash">Adobe Flash</a><span class="hover-metadata"><a class="split" href="adobe-flash"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a></span></span></div></li><li><div id="_toc/awk"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#awk">awk <span class="meta">(1977)</span></a><span class="hover-metadata"><a class="split" href="awk"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a></span></span></div></li><li class="has-child"><div id="_toc/bash-unix-shell"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#bash-unix-shell">Bash <span class="meta">(Unix shell)</span></a><span class="hover-metadata"><a class="split" href="bash-unix-shell"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/bash-howto"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#bash-howto">Bash HOWTO</a><span class="hover-metadata"><a class="split" href="bash-howto"></a><a href="#_toc/bash-unix-shell" class="u"> Bash</a></span></span></div></li></ul><li class="has-child"><div id="_toc/c-programming-language"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#c-programming-language">C <span class="meta">(programming language, 1972)</span></a><span class="hover-metadata"><a class="split" href="c-programming-language"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a><span class="metrics"><span class="wcntr"> 62</span><span class="dcnt"> 4</span></span></span></span></div><ul><li><div id="_toc/ansi-c"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#ansi-c">ANSI C</a><span class="hover-metadata"><a class="split" href="ansi-c"></a><a href="#_toc/c-programming-language" class="u"> C</a></span></span></div></li><li class="has-child"><div id="_toc/c-library"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#c-library">C library</a><span class="hover-metadata"><a class="split" href="c-library"></a><a href="#_toc/c-programming-language" class="u"> C</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/c-standard-library"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#c-standard-library">C standard library</a><span class="hover-metadata"><a class="split" href="c-standard-library"></a><a href="#_toc/c-library" class="u"> C library</a></span></span></div></li><li><div id="_toc/c-posix-library"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#c-posix-library">C POSIX library</a><span class="hover-metadata"><a class="split" href="c-posix-library"></a><a href="#_toc/c-library" class="u"> C library</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/c-plus-plus"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#c-plus-plus">C++</a><span class="hover-metadata"><a class="split" href="c-plus-plus"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/c-plus-plus-library"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#c-plus-plus-library">C++ library</a><span class="hover-metadata"><a class="split" href="c-plus-plus-library"></a><a href="#_toc/c-plus-plus" class="u"> C++</a></span></span></div></li></ul><li><div id="_toc/c-sharp"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#c-sharp">C#</a><span class="hover-metadata"><a class="split" href="c-sharp"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a></span></span></div></li><li><div id="_toc/fortran"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#fortran">Fortran <span class="meta">(1957)</span></a><span class="hover-metadata"><a class="split" href="fortran"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a></span></span></div></li><li><div id="_toc/go-programming-language"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#go-programming-language">Go <span class="meta">(programming language)</span></a><span class="hover-metadata"><a class="split" href="go-programming-language"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a></span></span></div></li><li><div id="_toc/haskell"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#haskell">Haskell</a><span class="hover-metadata"><a class="split" href="haskell"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a></span></span></div></li><li class="has-child"><div id="_toc/java-programming-language"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#java-programming-language">Java <span class="meta">(programming language)</span></a><span class="hover-metadata"><a class="split" href="java-programming-language"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a><span class="metrics"><span class="dcnt"> 5</span></span></span></span></div><ul><li><div id="_toc/java-home"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#java-home"><code>JAVA_HOME</code></a><span class="hover-metadata"><a class="split" href="java-home"></a><a href="#_toc/java-programming-language" class="u"> Java</a></span></span></div></li><li><div id="_toc/java-library"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#java-library">Java library</a><span class="hover-metadata"><a class="split" href="java-library"></a><a href="#_toc/java-programming-language" class="u"> Java</a></span></span></div></li><li><div id="_toc/jar-file-format"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#jar-file-format">JAR <span class="meta">(file format)</span></a><span class="hover-metadata"><a class="split" href="jar-file-format"></a><a href="#_toc/java-programming-language" class="u"> Java</a></span></span></div></li><li><div id="_toc/google-llc-v-oracle-america-inc"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#google-llc-v-oracle-america-inc">Google LLC v. Oracle America, Inc. <span class="meta">(2021)</span></a><span class="hover-metadata"><a class="split" href="google-llc-v-oracle-america-inc"></a><a href="#_toc/java-programming-language" class="u"> Java</a></span></span></div></li><li><div id="_toc/java-program"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#java-program">Java program</a><span class="hover-metadata"><a class="split" href="java-program"></a><a href="#_toc/java-programming-language" class="u"> Java</a></span></span></div></li></ul><li class="has-child"><div id="_toc/javascript"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#javascript">JavaScript</a><span class="hover-metadata"><a class="split" href="javascript"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a><span class="metrics"><span class="wcntr"> 4k</span><span class="dcnt"> 67</span></span></span></span></div><ul><li class="has-child"><div id="_toc/client-side-storage"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#client-side-storage">Client-side storage</a><span class="hover-metadata"><a class="split" href="client-side-storage"></a><a href="#_toc/javascript" class="u"> JavaScript</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/clear-client-side-storage"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#clear-client-side-storage">Clear client-side storage</a><span class="hover-metadata"><a class="split" href="clear-client-side-storage"></a><a href="#_toc/client-side-storage" class="u"> Client-side storage</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/clear-client-side-storage-on-chromium"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#clear-client-side-storage-on-chromium">Clear client-side storage on Chromium</a><span class="hover-metadata"><a class="split" href="clear-client-side-storage-on-chromium"></a><a href="#_toc/clear-client-side-storage" class="u"> Clear client-side storage</a></span></span></div></li></ul></li></ul><li><div id="_toc/emscripten"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#emscripten">Emscripten</a><span class="hover-metadata"><a class="split" href="emscripten"></a><a href="#_toc/javascript" class="u"> JavaScript</a></span></span></div></li><li class="has-child"><div id="_toc/javascript-library"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#javascript-library">JavaScript library</a><span class="hover-metadata"><a class="split" href="javascript-library"></a><a href="#_toc/javascript" class="u"> JavaScript</a><span class="metrics"><span class="wcntr"> 235</span><span class="dcnt"> 11</span></span></span></span></div><ul><li><div id="_toc/babel-transcompiler"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#babel-transcompiler">Babel <span class="meta">(transcompiler)</span></a><span class="hover-metadata"><a class="split" href="babel-transcompiler"></a><a href="#_toc/javascript-library" class="u"> JavaScript library</a></span></span></div></li><li class="has-child"><div id="_toc/javascript-game-engine"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#javascript-game-engine">JavaScript game engine</a><span class="hover-metadata"><a class="split" href="javascript-game-engine"></a><a href="#_toc/javascript-library" class="u"> JavaScript library</a><span class="metrics"><span class="wcntr"> 86</span><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/phaser-js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#phaser-js">Phaser.js</a><span class="hover-metadata"><a class="split" href="phaser-js"></a><a href="#_toc/javascript-game-engine" class="u"> JavaScript game engine</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/phaser-hello-world"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#phaser-hello-world">Phaser hello world</a><span class="hover-metadata"><a class="split" href="phaser-hello-world"></a><a href="#_toc/phaser-js" class="u"> Phaser.js</a></span></span></div></li><li><div id="_toc/bundle-assets-into-a-single-file-in-phaser"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#bundle-assets-into-a-single-file-in-phaser">Bundle assets into a single file in Phaser</a><span class="hover-metadata"><a class="split" href="bundle-assets-into-a-single-file-in-phaser"></a><a href="#_toc/phaser-js" class="u"> Phaser.js</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/javascript-physics-engine"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#javascript-physics-engine">JavaScript physics engine</a><span class="hover-metadata"><a class="split" href="javascript-physics-engine"></a><a href="#_toc/javascript-library" class="u"> JavaScript library</a><span class="metrics"><span class="wcntr"> 18</span><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/matter-js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#matter-js">Matter.js</a><span class="hover-metadata"><a class="split" href="matter-js"></a><a href="#_toc/javascript-physics-engine" class="u"> JavaScript physics engine</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/_file/js/matterjs/hello.html"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/js/matterjs/hello.html">js/matterjs/hello.html</a><span class="hover-metadata"><a class="split" href="_file/js/matterjs/hello.html"></a><a href="#_toc/matter-js" class="u"> Matter.js</a></span></span></div></li><li><div id="_toc/_file/js/matterjs/examples.html"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/js/matterjs/examples.html">js/matterjs/examples.html</a><span class="hover-metadata"><a class="split" href="_file/js/matterjs/examples.html"></a><a href="#_toc/matter-js" class="u"> Matter.js</a></span></span></div></li></ul></li></ul><li><div id="_toc/javascript-bi-directional-communication-library"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#javascript-bi-directional-communication-library">JavaScript bi-directional communication library</a><span class="hover-metadata"><a class="split" href="javascript-bi-directional-communication-library"></a><a href="#_toc/javascript-library" class="u"> JavaScript library</a></span></span></div></li><li><div id="_toc/socket-io"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#socket-io">Socket.IO</a><span class="hover-metadata"><a class="split" href="socket-io"></a><a href="#_toc/javascript-library" class="u"> JavaScript library</a></span></span></div></li></ul><li class="has-child"><div id="_toc/javascript-tooling"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#javascript-tooling">JavaScript tooling</a><span class="hover-metadata"><a class="split" href="javascript-tooling"></a><a href="#_toc/javascript" class="u"> JavaScript</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/javascript-linter"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#javascript-linter">JavaScript linter</a><span class="hover-metadata"><a class="split" href="javascript-linter"></a><a href="#_toc/javascript-tooling" class="u"> JavaScript tooling</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/eslint"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#eslint">ESLint</a><span class="hover-metadata"><a class="split" href="eslint"></a><a href="#_toc/javascript-linter" class="u"> JavaScript linter</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/javascript-language"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#javascript-language">JavaScript language</a><span class="hover-metadata"><a class="split" href="javascript-language"></a><a href="#_toc/javascript" class="u"> JavaScript</a><span class="metrics"><span class="wcntr"> 224</span><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/javascript-is-single-threaded"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#javascript-is-single-threaded">JavaScript is single threaded</a><span class="hover-metadata"><a class="split" href="javascript-is-single-threaded"></a><a href="#_toc/javascript-language" class="u"> JavaScript language</a></span></span></div></li><li class="has-child"><div id="_toc/async-javascript"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#async-javascript"><code>async</code> <span class="meta">(JavaScript)</span></a><span class="hover-metadata"><a class="split" href="async-javascript"></a><a href="#_toc/javascript-language" class="u"> JavaScript language</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/how-to-convert-async-to-sync-in-javascript"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#how-to-convert-async-to-sync-in-javascript">How to convert <code>async</code> to sync in JavaScript</a><span class="hover-metadata"><a class="split" href="how-to-convert-async-to-sync-in-javascript"></a><a href="#_toc/async-javascript" class="u"> <code>async</code></a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/node-js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js">Node.js</a><span class="hover-metadata"><a class="split" href="node-js-split"></a><a href="#_toc/javascript" class="u"> JavaScript</a><span class="metrics"><span class="wcntr"> 3k</span><span class="dcnt"> 41</span></span></span></span></div><ul><li class="has-child"><div id="_toc/node-js-example"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#node-js-example">Node.js example</a><span class="hover-metadata"><a class="split" href="node-js-example"></a><a href="#_toc/node-js" class="u"> Node.js</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/_file/nodejs/count.js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#_file/nodejs/count.js">nodejs/count.js</a><span class="hover-metadata"><a class="split" href="_file/nodejs/count.js"></a><a href="#_toc/node-js-example" class="u"> Node.js example</a></span></span></div></li><li><div id="_toc/_file/nodejs/read_child_process_lines.js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#_file/nodejs/read_child_process_lines.js">nodejs/read_child_process_lines.js</a><span class="hover-metadata"><a class="split" href="_file/nodejs/read_child_process_lines.js"></a><a href="#_toc/node-js-example" class="u"> Node.js example</a></span></span></div></li><li><div id="_toc/javascript-memory-usage-benchmark"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#javascript-memory-usage-benchmark">JavaScript memory usage benchmark</a><span class="hover-metadata"><a class="split" href="javascript-memory-usage-benchmark"></a><a href="#_toc/node-js-example" class="u"> Node.js example</a></span></span></div></li></ul><li class="has-child"><div id="_toc/npm"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#npm">npm</a><span class="hover-metadata"><a class="split" href="npm"></a><a href="#_toc/node-js" class="u"> Node.js</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/package-json"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#package-json">package.json</a><span class="hover-metadata"><a class="split" href="package-json"></a><a href="#_toc/npm" class="u"> npm</a></span></span></div></li></ul><li class="has-child"><div id="_toc/node-js-library"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#node-js-library">Node.js library</a><span class="hover-metadata"><a class="split" href="node-js-library"></a><a href="#_toc/node-js" class="u"> Node.js</a><span class="metrics"><span class="wcntr"> 1k</span><span class="dcnt"> 13</span></span></span></span></div><ul><li class="has-child"><div id="_toc/node-js-standard-library"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#node-js-standard-library">Node.js standard library</a><span class="hover-metadata"><a class="split" href="node-js-standard-library"></a><a href="#_toc/node-js-library" class="u"> Node.js library</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/node-js-worker-threads"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#node-js-worker-threads">Node.js <code>worker_threads</code></a><span class="hover-metadata"><a class="split" href="node-js-worker-threads"></a><a href="#_toc/node-js-standard-library" class="u"> Node.js standard library</a></span></span></div></li></ul><li><div id="_toc/node-js-database-bindings"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#node-js-database-bindings">Node.js database bindings</a><span class="hover-metadata"><a class="split" href="node-js-database-bindings"></a><a href="#_toc/node-js-library" class="u"> Node.js library</a></span></span></div></li><li class="has-child"><div id="_toc/node-js-orm-library"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#node-js-orm-library">Node.js ORM library</a><span class="hover-metadata"><a class="split" href="node-js-orm-library"></a><a href="#_toc/node-js-library" class="u"> Node.js library</a><span class="metrics"><span class="wcntr"> 1k</span><span class="dcnt"> 9</span></span></span></span></div><ul><li class="has-child"><div id="_toc/sequelize"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sequelize">Sequelize</a><span class="hover-metadata"><a class="split" href="sequelize-split"></a><a href="#_toc/node-js-orm-library" class="u"> Node.js ORM library</a><span class="metrics"><span class="wcntr"> 194</span><span class="dcnt"> 8</span></span></span></span></div><ul><li><div id="_toc/the-horrors-of-sequelize"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sequelize#the-horrors-of-sequelize">The horrors of Sequelize</a><span class="hover-metadata"><a class="split" href="the-horrors-of-sequelize"></a><a href="#_toc/sequelize" class="u"> Sequelize</a></span></span></div></li><li class="has-child"><div id="_toc/sequelize-example"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sequelize#sequelize-example">Sequelize example</a><span class="hover-metadata"><a class="split" href="sequelize-example"></a><a href="#_toc/sequelize" class="u"> Sequelize</a><span class="metrics"><span class="wcntr"> 149</span><span class="dcnt"> 4</span></span></span></span></div><ul><li><div id="_toc/sequelize-raw-query"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sequelize#sequelize-raw-query">Sequelize raw query</a><span class="hover-metadata"><a class="split" href="sequelize-raw-query"></a><a href="#_toc/sequelize-example" class="u"> Sequelize example</a></span></span></div></li><li><div id="_toc/update-with-join-in-sequelize"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sequelize#update-with-join-in-sequelize">UPDATE with JOIN in Sequelize</a><span class="hover-metadata"><a class="split" href="update-with-join-in-sequelize"></a><a href="#_toc/sequelize-example" class="u"> Sequelize example</a></span></span></div></li><li class="has-child"><div id="_toc/sequelize-parallel-example"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sequelize#sequelize-parallel-example">Sequelize parallel example</a><span class="hover-metadata"><a class="split" href="sequelize-parallel-example"></a><a href="#_toc/sequelize-example" class="u"> Sequelize example</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/_file/nodejs/sequelize/parallel_select_and_update.js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sequelize#_file/nodejs/sequelize/parallel_select_and_update.js">nodejs/sequelize/parallel_select_and_update.js</a><span class="hover-metadata"><a class="split" href="_file/nodejs/sequelize/parallel_select_and_update.js"></a><a href="#_toc/sequelize-parallel-example" class="u"> Sequelize parallel example</a></span></span></div></li></ul></li></ul><li><div id="_toc/sequelize-transaction-retry"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sequelize#sequelize-transaction-retry">Sequelize transaction retry</a><span class="hover-metadata"><a class="split" href="sequelize-transaction-retry"></a><a href="#_toc/sequelize" class="u"> Sequelize</a></span></span></div></li><li><div id="_toc/sql-trigger-in-sequelize"><div class="arrow"><div></div></div><span class="not-arrow"><a href="sequelize#sql-trigger-in-sequelize">SQL TRIGGER in Sequelize</a><span class="hover-metadata"><a class="split" href="sql-trigger-in-sequelize"></a><a href="#_toc/sequelize" class="u"> Sequelize</a></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/node-js-web-framework"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#node-js-web-framework">Node.js web framework</a><span class="hover-metadata"><a class="split" href="node-js-web-framework"></a><a href="#_toc/node-js" class="u"> Node.js</a><span class="metrics"><span class="wcntr"> 734</span><span class="dcnt"> 19</span></span></span></span></div><ul><li class="has-child"><div id="_toc/express-js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#express-js">Express.js</a><span class="hover-metadata"><a class="split" href="express-js"></a><a href="#_toc/node-js-web-framework" class="u"> Node.js web framework</a><span class="metrics"><span class="wcntr"> 91</span><span class="dcnt"> 4</span></span></span></span></div><ul><li class="has-child"><div id="_toc/realworld-app-written-in-express"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#realworld-app-written-in-express">Realworld app written in Express</a><span class="hover-metadata"><a class="split" href="realworld-app-written-in-express"></a><a href="#_toc/express-js" class="u"> Express.js</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/gothinkster-node-express-realworld-example-app"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#gothinkster-node-express-realworld-example-app">gothinkster/node-express-realworld-example-app</a><span class="hover-metadata"><a class="split" href="gothinkster-node-express-realworld-example-app"></a><a href="#_toc/realworld-app-written-in-express" class="u"> Realworld app written in Express</a></span></span></div></li><li><div id="_toc/sigoden-node-express-realworld-example-app"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#sigoden-node-express-realworld-example-app">sigoden/node-express-realworld-example-app</a><span class="hover-metadata"><a class="split" href="sigoden-node-express-realworld-example-app"></a><a href="#_toc/realworld-app-written-in-express" class="u"> Realworld app written in Express</a></span></span></div></li><li><div id="_toc/varun-hegde-conduit-nodejs"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#varun-hegde-conduit-nodejs">Varun-Hegde/Conduit_NodeJS</a><span class="hover-metadata"><a class="split" href="varun-hegde-conduit-nodejs"></a><a href="#_toc/realworld-app-written-in-express" class="u"> Realworld app written in Express</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/feathersjs"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#feathersjs">FeathersJS</a><span class="hover-metadata"><a class="split" href="feathersjs"></a><a href="#_toc/node-js-web-framework" class="u"> Node.js web framework</a><span class="metrics"><span class="wcntr"> 444</span><span class="dcnt"> 8</span></span></span></span></div><ul><li class="has-child"><div id="_toc/featherjs-demo-apps"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#featherjs-demo-apps">FeatherJS demo apps</a><span class="hover-metadata"><a class="split" href="featherjs-demo-apps"></a><a href="#_toc/feathersjs" class="u"> FeathersJS</a><span class="metrics"><span class="wcntr"> 130</span><span class="dcnt"> 5</span></span></span></span></div><ul><li class="has-child"><div id="_toc/feathersjs-feathers-chat"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#feathersjs-feathers-chat">feathersjs/feathers-chat</a><span class="hover-metadata"><a class="split" href="feathersjs-feathers-chat"></a><a href="#_toc/featherjs-demo-apps" class="u"> FeatherJS demo apps</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/feathers-chat-postgresql"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#feathers-chat-postgresql">feathers-chat PostgreSQL</a><span class="hover-metadata"><a class="split" href="feathers-chat-postgresql"></a><a href="#_toc/feathersjs-feathers-chat" class="u"> feathersjs/feathers-chat</a></span></span></div></li><li><div id="_toc/feathers-chat-react"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#feathers-chat-react">feathers-chat-react</a><span class="hover-metadata"><a class="split" href="feathers-chat-react"></a><a href="#_toc/feathersjs-feathers-chat" class="u"> feathersjs/feathers-chat</a></span></span></div></li></ul><li><div id="_toc/codaisseur-feathersjs-react-redux-ssr"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#codaisseur-feathersjs-react-redux-ssr">Codaisseur/feathersjs-react-redux-ssr</a><span class="hover-metadata"><a class="split" href="codaisseur-feathersjs-react-redux-ssr"></a><a href="#_toc/featherjs-demo-apps" class="u"> FeatherJS demo apps</a></span></span></div></li><li><div id="_toc/randyscotsmithey-feathers-realworld-example-app"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#randyscotsmithey-feathers-realworld-example-app">randyscotsmithey/feathers-realworld-example-app</a><span class="hover-metadata"><a class="split" href="randyscotsmithey-feathers-realworld-example-app"></a><a href="#_toc/featherjs-demo-apps" class="u"> FeatherJS demo apps</a></span></span></div></li></ul><li><div id="_toc/feathersjs-heroku-deployment"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#feathersjs-heroku-deployment">FeathersJS Heroku deployment</a><span class="hover-metadata"><a class="split" href="feathersjs-heroku-deployment"></a><a href="#_toc/feathersjs" class="u"> FeathersJS</a></span></span></div></li><li><div id="_toc/feathersjs-signup-email-verification"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#feathersjs-signup-email-verification">FeathersJS signup email verification</a><span class="hover-metadata"><a class="split" href="feathersjs-signup-email-verification"></a><a href="#_toc/feathersjs" class="u"> FeathersJS</a></span></span></div></li></ul><li><div id="_toc/meteor-web-framework"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#meteor-web-framework">Meteor <span class="meta">(web framework)</span></a><span class="hover-metadata"><a class="split" href="meteor-web-framework"></a><a href="#_toc/node-js-web-framework" class="u"> Node.js web framework</a></span></span></div></li><li class="has-child"><div id="_toc/nest-js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#nest-js">Nest.js</a><span class="hover-metadata"><a class="split" href="nest-js"></a><a href="#_toc/node-js-web-framework" class="u"> Node.js web framework</a><span class="metrics"><span class="wcntr"> 140</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/lujakob-nestjs-realworld-example-app"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#lujakob-nestjs-realworld-example-app">lujakob/nestjs-realworld-example-app</a><span class="hover-metadata"><a class="split" href="lujakob-nestjs-realworld-example-app"></a><a href="#_toc/nest-js" class="u"> Nest.js</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/lujakob-nestjs-realworld-example-app-sqlite-port"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#lujakob-nestjs-realworld-example-app-sqlite-port">lujakob/nestjs-realworld-example-app SQLite port</a><span class="hover-metadata"><a class="split" href="lujakob-nestjs-realworld-example-app-sqlite-port"></a><a href="#_toc/lujakob-nestjs-realworld-example-app" class="u"> lujakob/nestjs-realworld-example-app</a></span></span></div></li></ul></li></ul><li><div id="_toc/sails-js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#sails-js">Sails.js</a><span class="hover-metadata"><a class="split" href="sails-js"></a><a href="#_toc/node-js-web-framework" class="u"> Node.js web framework</a></span></span></div></li></ul><li><div id="_toc/nvm"><div class="arrow"><div></div></div><span class="not-arrow"><a href="node-js#nvm">NVM</a><span class="hover-metadata"><a class="split" href="nvm"></a><a href="#_toc/node-js" class="u"> Node.js</a></span></span></div></li></ul><li><div id="_toc/typescript"><div class="arrow"><div></div></div><span class="not-arrow"><a href="typescript">TypeScript</a><span class="hover-metadata"><a class="split" href="typescript-split"></a><a href="#_toc/javascript" class="u"> JavaScript</a></span></span></div></li><li><div id="_toc/universal-module-definition"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#universal-module-definition">Universal Module Definition <span class="meta">(UMD)</span></a><span class="hover-metadata"><a class="split" href="universal-module-definition"></a><a href="#_toc/javascript" class="u"> JavaScript</a></span></span></div></li></ul><li class="has-child"><div id="_toc/perl-programming-language"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#perl-programming-language">Perl <span class="meta">(programming language)</span></a><span class="hover-metadata"><a class="split" href="perl-programming-language"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a><span class="metrics"><span class="wcntr"> 5</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/perl-howto"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#perl-howto">Perl HOWTO</a><span class="hover-metadata"><a class="split" href="perl-howto"></a><a href="#_toc/perl-programming-language" class="u"> Perl</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/print-only-the-matching-group-in-perl"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#print-only-the-matching-group-in-perl">Print only the matching group in Perl</a><span class="hover-metadata"><a class="split" href="print-only-the-matching-group-in-perl"></a><a href="#_toc/perl-howto" class="u"> Perl HOWTO</a></span></span></div></li></ul></li></ul><li><div id="_toc/php"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#php">PHP</a><span class="hover-metadata"><a class="split" href="php"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a></span></span></div></li><li><div id="_toc/pseudocode"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#pseudocode">Pseudocode</a><span class="hover-metadata"><a class="split" href="pseudocode"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a></span></span></div></li><li class="has-child"><div id="_toc/python-programming-language"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-programming-language">Python <span class="meta">(programming language)</span></a><span class="hover-metadata"><a class="split" href="python-programming-language"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a><span class="metrics"><span class="wcntr"> 802</span><span class="dcnt"> 59</span></span></span></span></div><ul><li class="has-child"><div id="_toc/python-language-feature"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-language-feature">Python language feature</a><span class="hover-metadata"><a class="split" href="python-language-feature"></a><a href="#_toc/python-programming-language" class="u"> Python</a><span class="metrics"><span class="dcnt"> 5</span></span></span></span></div><ul><li class="has-child"><div id="_toc/python-classes"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-classes">Python classes</a><span class="hover-metadata"><a class="split" href="python-classes"></a><a href="#_toc/python-language-feature" class="u"> Python language feature</a><span class="metrics"><span class="dcnt"> 4</span></span></span></span></div><ul><li class="has-child"><div id="_toc/python-special-method"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-special-method">Python special method</a><span class="hover-metadata"><a class="split" href="python-special-method"></a><a href="#_toc/python-classes" class="u"> Python classes</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/python-getitem"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-getitem">Python <code>__getitem__</code></a><span class="hover-metadata"><a class="split" href="python-getitem"></a><a href="#_toc/python-special-method" class="u"> Python special method</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/_file/python/getitem.py"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/python/getitem.py">python/getitem.py</a><span class="hover-metadata"><a class="split" href="_file/python/getitem.py"></a><a href="#_toc/python-getitem" class="u"> Python <code>__getitem__</code></a></span></span></div></li><li><div id="_toc/_file/python/getitem_complex.py"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/python/getitem_complex.py">python/getitem_complex.py</a><span class="hover-metadata"><a class="split" href="_file/python/getitem_complex.py"></a><a href="#_toc/python-getitem" class="u"> Python <code>__getitem__</code></a></span></span></div></li></ul></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/python-standard-library"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-standard-library">Python standard library</a><span class="hover-metadata"><a class="split" href="python-standard-library"></a><a href="#_toc/python-programming-language" class="u"> Python</a><span class="metrics"><span class="wcntr"> 7</span><span class="dcnt"> 18</span></span></span></span></div><ul><li class="has-child"><div id="_toc/python-abc"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-abc">Python <code>abc</code></a><span class="hover-metadata"><a class="split" href="python-abc"></a><a href="#_toc/python-standard-library" class="u"> Python standard library</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/_file/python/abc_cheat.py"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/python/abc_cheat.py">python/abc_cheat.py</a><span class="hover-metadata"><a class="split" href="_file/python/abc_cheat.py"></a><a href="#_toc/python-abc" class="u"> Python <code>abc</code></a></span></span></div></li></ul><li class="has-child"><div id="_toc/python-ast"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-ast">Python <code>ast</code></a><span class="hover-metadata"><a class="split" href="python-ast"></a><a href="#_toc/python-standard-library" class="u"> Python standard library</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/_file/python/ast_cheat.py"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/python/ast_cheat.py">python/ast_cheat.py</a><span class="hover-metadata"><a class="split" href="_file/python/ast_cheat.py"></a><a href="#_toc/python-ast" class="u"> Python <code>ast</code></a></span></span></div></li></ul><li class="has-child"><div id="_toc/python-dataclass"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-dataclass">Python <code>dataclass</code></a><span class="hover-metadata"><a class="split" href="python-dataclass"></a><a href="#_toc/python-standard-library" class="u"> Python standard library</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/python-infer-py"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-infer-py">python/infer.py</a><span class="hover-metadata"><a class="split" href="python-infer-py"></a><a href="#_toc/python-dataclass" class="u"> Python <code>dataclass</code></a></span></span></div></li><li><div id="_toc/python-dataclass-cheat-py"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-dataclass-cheat-py">python/dataclass_cheat.py</a><span class="hover-metadata"><a class="split" href="python-dataclass-cheat-py"></a><a href="#_toc/python-dataclass" class="u"> Python <code>dataclass</code></a></span></span></div></li><li><div id="_toc/python-dataclass-hash-py"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-dataclass-hash-py">python/dataclass_hash.py</a><span class="hover-metadata"><a class="split" href="python-dataclass-hash-py"></a><a href="#_toc/python-dataclass" class="u"> Python <code>dataclass</code></a></span></span></div></li></ul><li class="has-child"><div id="_toc/python-tkinter"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-tkinter">Python <code>tkinter</code></a><span class="hover-metadata"><a class="split" href="python-tkinter"></a><a href="#_toc/python-standard-library" class="u"> Python standard library</a><span class="metrics"><span class="wcntr"> 4</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/python-tkinter-image-editor"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-tkinter-image-editor">Python <code>tkinter</code> image editor</a><span class="hover-metadata"><a class="split" href="python-tkinter-image-editor"></a><a href="#_toc/python-tkinter" class="u"> Python <code>tkinter</code></a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/python-tkinter-image-editor-with-image-recognition"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-tkinter-image-editor-with-image-recognition">Python <code>tkinter</code> image editor with image recognition</a><span class="hover-metadata"><a class="split" href="python-tkinter-image-editor-with-image-recognition"></a><a href="#_toc/python-tkinter-image-editor" class="u"> Python <code>tkinter</code> image editor</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/python-typing"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-typing">Python <code>typing</code></a><span class="hover-metadata"><a class="split" href="python-typing"></a><a href="#_toc/python-standard-library" class="u"> Python standard library</a><span class="metrics"><span class="dcnt"> 6</span></span></span></span></div><ul><li><div id="_toc/_file/python/typing_cheat/hello.py"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/python/typing_cheat/hello.py">python/typing_cheat/hello.py</a><span class="hover-metadata"><a class="split" href="_file/python/typing_cheat/hello.py"></a><a href="#_toc/python-typing" class="u"> Python <code>typing</code></a></span></span></div></li><li><div id="_toc/_file/python/typing_cheat/infer.py"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/python/typing_cheat/infer.py">python/typing_cheat/infer.py</a><span class="hover-metadata"><a class="split" href="_file/python/typing_cheat/infer.py"></a><a href="#_toc/python-typing" class="u"> Python <code>typing</code></a></span></span></div></li><li><div id="_toc/_file/python/typing_cheat/union.py"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/python/typing_cheat/union.py">python/typing_cheat/union.py</a><span class="hover-metadata"><a class="split" href="_file/python/typing_cheat/union.py"></a><a href="#_toc/python-typing" class="u"> Python <code>typing</code></a></span></span></div></li><li class="has-child"><div id="_toc/python-protocol"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-protocol">Python <code>Protocol</code></a><span class="hover-metadata"><a class="split" href="python-protocol"></a><a href="#_toc/python-typing" class="u"> Python <code>typing</code></a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/_file/python/typing_cheat/protocol.py"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/python/typing_cheat/protocol.py">python/typing_cheat/protocol.py</a><span class="hover-metadata"><a class="split" href="_file/python/typing_cheat/protocol.py"></a><a href="#_toc/python-protocol" class="u"> Python <code>Protocol</code></a></span></span></div></li><li><div id="_toc/_file/python/typing_cheat/protocol_empty.py"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/python/typing_cheat/protocol_empty.py">python/typing_cheat/protocol_empty.py</a><span class="hover-metadata"><a class="split" href="_file/python/typing_cheat/protocol_empty.py"></a><a href="#_toc/python-protocol" class="u"> Python <code>Protocol</code></a></span></span></div></li></ul></li></ul></li></ul><li><div id="_toc/zen-of-python"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#zen-of-python">Zen of Python</a><span class="hover-metadata"><a class="split" href="zen-of-python"></a><a href="#_toc/python-programming-language" class="u"> Python</a></span></span></div></li><li class="has-child"><div id="_toc/python-implementation"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-implementation">Python implementation</a><span class="hover-metadata"><a class="split" href="python-implementation"></a><a href="#_toc/python-programming-language" class="u"> Python</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/cpython"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#cpython">CPython</a><span class="hover-metadata"><a class="split" href="cpython"></a><a href="#_toc/python-implementation" class="u"> Python implementation</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/global-interpreter-lock"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#global-interpreter-lock">Global Interpreter Lock</a><span class="hover-metadata"><a class="split" href="global-interpreter-lock"></a><a href="#_toc/cpython" class="u"> CPython</a></span></span></div></li></ul><li><div id="_toc/cython"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#cython">Cython</a><span class="hover-metadata"><a class="split" href="cython"></a><a href="#_toc/python-implementation" class="u"> Python implementation</a></span></span></div></li></ul><li class="has-child"><div id="_toc/python-package-manager"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-package-manager">Python package manager</a><span class="hover-metadata"><a class="split" href="python-package-manager"></a><a href="#_toc/python-programming-language" class="u"> Python</a><span class="metrics"><span class="wcntr"> 87</span><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/pip-package-manager"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#pip-package-manager">pip <span class="meta">(package manager)</span></a><span class="hover-metadata"><a class="split" href="pip-package-manager"></a><a href="#_toc/python-package-manager" class="u"> Python package manager</a></span></span></div></li><li class="has-child"><div id="_toc/conda"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#conda">Conda</a><span class="hover-metadata"><a class="split" href="conda"></a><a href="#_toc/python-package-manager" class="u"> Python package manager</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/install-conda-on-ubuntu"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#install-conda-on-ubuntu">Install Conda on Ubuntu</a><span class="hover-metadata"><a class="split" href="install-conda-on-ubuntu"></a><a href="#_toc/conda" class="u"> Conda</a></span></span></div></li></ul></li></ul><li><div id="_toc/python-package-index"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-package-index">Python Package Index</a><span class="hover-metadata"><a class="split" href="python-package-index"></a><a href="#_toc/python-programming-language" class="u"> Python</a></span></span></div></li><li class="has-child"><div id="_toc/python-virtualization"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-virtualization">Python virtualization</a><span class="hover-metadata"><a class="split" href="python-virtualization"></a><a href="#_toc/python-programming-language" class="u"> Python</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/python-version-virtualization"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-version-virtualization">Python version virtualization</a><span class="hover-metadata"><a class="split" href="python-version-virtualization"></a><a href="#_toc/python-virtualization" class="u"> Python virtualization</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/pyenv"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#pyenv">pyenv</a><span class="hover-metadata"><a class="split" href="pyenv"></a><a href="#_toc/python-version-virtualization" class="u"> Python version virtualization</a></span></span></div></li></ul><li><div id="_toc/virtualenv"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#virtualenv">virtualenv</a><span class="hover-metadata"><a class="split" href="virtualenv"></a><a href="#_toc/python-virtualization" class="u"> Python virtualization</a></span></span></div></li></ul><li class="has-child"><div id="_toc/python-documentation-generator"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-documentation-generator">Python documentation generator</a><span class="hover-metadata"><a class="split" href="python-documentation-generator"></a><a href="#_toc/python-programming-language" class="u"> Python</a><span class="metrics"><span class="wcntr"> 28</span><span class="dcnt"> 6</span></span></span></span></div><ul><li class="has-child"><div id="_toc/sphinx-documentation-generator"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#sphinx-documentation-generator">Sphinx <span class="meta">(documentation generator)</span></a><span class="hover-metadata"><a class="split" href="sphinx-documentation-generator"></a><a href="#_toc/python-documentation-generator" class="u"> Python documentation generator</a><span class="metrics"><span class="dcnt"> 5</span></span></span></span></div><ul><li><div id="_toc/_file/python/sphinx"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/python/sphinx">python/sphinx</a><span class="hover-metadata"><a class="split" href="_file/python/sphinx"></a><a href="#_toc/sphinx-documentation-generator" class="u"> Sphinx</a></span></span></div></li><li><div id="_toc/_file/python/sphinx/hello"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/python/sphinx/hello">python/sphinx/hello</a><span class="hover-metadata"><a class="split" href="_file/python/sphinx/hello"></a><a href="#_toc/sphinx-documentation-generator" class="u"> Sphinx</a></span></span></div></li><li><div id="_toc/_file/python/sphinx/union"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/python/sphinx/union">python/sphinx/union</a><span class="hover-metadata"><a class="split" href="_file/python/sphinx/union"></a><a href="#_toc/sphinx-documentation-generator" class="u"> Sphinx</a></span></span></div></li><li><div id="_toc/_file/python/sphinx/class"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/python/sphinx/class">python/sphinx/class</a><span class="hover-metadata"><a class="split" href="_file/python/sphinx/class"></a><a href="#_toc/sphinx-documentation-generator" class="u"> Sphinx</a></span></span></div></li><li><div id="_toc/_file/python/sphinx/virtual_method"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/python/sphinx/virtual_method">python/sphinx/virtual_method</a><span class="hover-metadata"><a class="split" href="_file/python/sphinx/virtual_method"></a><a href="#_toc/sphinx-documentation-generator" class="u"> Sphinx</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/python-library"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-library">Python library</a><span class="hover-metadata"><a class="split" href="python-library"></a><a href="#_toc/python-programming-language" class="u"> Python</a><span class="metrics"><span class="wcntr"> 484</span><span class="dcnt"> 12</span></span></span></span></div><ul><li class="has-child"><div id="_toc/python-scientific-library"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-scientific-library">Python scientific library</a><span class="hover-metadata"><a class="split" href="python-scientific-library"></a><a href="#_toc/python-library" class="u"> Python library</a><span class="metrics"><span class="wcntr"> 236</span><span class="dcnt"> 8</span></span></span></span></div><ul><li class="has-child"><div id="_toc/jupyter-notebook"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#jupyter-notebook">Jupyter Notebook</a><span class="hover-metadata"><a class="split" href="jupyter-notebook"></a><a href="#_toc/python-scientific-library" class="u"> Python scientific library</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/_file/python/jupyter/hello.ipynb"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/python/jupyter/hello.ipynb">python/jupyter/hello.ipynb</a><span class="hover-metadata"><a class="split" href="_file/python/jupyter/hello.ipynb"></a><a href="#_toc/jupyter-notebook" class="u"> Jupyter Notebook</a></span></span></div></li></ul><li class="has-child"><div id="_toc/numpy"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#numpy">NumPy</a><span class="hover-metadata"><a class="split" href="numpy"></a><a href="#_toc/python-scientific-library" class="u"> Python scientific library</a><span class="metrics"><span class="wcntr"> 236</span><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/numpy-fft"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#numpy-fft">numpy.fft</a><span class="hover-metadata"><a class="split" href="numpy-fft"></a><a href="#_toc/numpy" class="u"> NumPy</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/_file/numpy/fft_plot.py"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/numpy/fft_plot.py">numpy/fft_plot.py</a><span class="hover-metadata"><a class="split" href="_file/numpy/fft_plot.py"></a><a href="#_toc/numpy-fft" class="u"> numpy.fft</a></span></span></div></li><li><div id="_toc/_file/numpy/fft.py"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#_file/numpy/fft.py">numpy/fft.py</a><span class="hover-metadata"><a class="split" href="_file/numpy/fft.py"></a><a href="#_toc/numpy-fft" class="u"> numpy.fft</a></span></span></div></li></ul></li></ul><li><div id="_toc/sagemath"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#sagemath">SageMath</a><span class="hover-metadata"><a class="split" href="sagemath"></a><a href="#_toc/python-scientific-library" class="u"> Python scientific library</a></span></span></div></li><li><div id="_toc/scikit-learn"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#scikit-learn">Scikit-learn</a><span class="hover-metadata"><a class="split" href="scikit-learn"></a><a href="#_toc/python-scientific-library" class="u"> Python scientific library</a></span></span></div></li></ul><li class="has-child"><div id="_toc/python-web-framework"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#python-web-framework">Python web framework</a><span class="hover-metadata"><a class="split" href="python-web-framework"></a><a href="#_toc/python-library" class="u"> Python library</a><span class="metrics"><span class="wcntr"> 86</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/django-web-framework"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#django-web-framework">Django <span class="meta">(web-framework)</span></a><span class="hover-metadata"><a class="split" href="django-web-framework"></a><a href="#_toc/python-web-framework" class="u"> Python web framework</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/gothinkster-django-realworld-example-app"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#gothinkster-django-realworld-example-app">gothinkster/django-realworld-example-app</a><span class="hover-metadata"><a class="split" href="gothinkster-django-realworld-example-app"></a><a href="#_toc/django-web-framework" class="u"> Django</a></span></span></div></li></ul></li></ul></li></ul></li></ul><li><div id="_toc/r-programming-language"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#r-programming-language">R <span class="meta">(programming language)</span></a><span class="hover-metadata"><a class="split" href="r-programming-language"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a></span></span></div></li><li class="has-child"><div id="_toc/ruby-programming-language"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#ruby-programming-language">Ruby <span class="meta">(programming language)</span></a><span class="hover-metadata"><a class="split" href="ruby-programming-language"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a><span class="metrics"><span class="wcntr"> 120</span><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/ruby-on-rails"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#ruby-on-rails">Ruby on Rails</a><span class="hover-metadata"><a class="split" href="ruby-on-rails"></a><a href="#_toc/ruby-programming-language" class="u"> Ruby</a><span class="metrics"><span class="wcntr"> 81</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/ruby-on-rails-react-integration"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#ruby-on-rails-react-integration">Ruby on Rails React integration</a><span class="hover-metadata"><a class="split" href="ruby-on-rails-react-integration"></a><a href="#_toc/ruby-on-rails" class="u"> Ruby on Rails</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/shakacode-react-on-rails"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#shakacode-react-on-rails">shakacode/react_on_rails</a><span class="hover-metadata"><a class="split" href="shakacode-react-on-rails"></a><a href="#_toc/ruby-on-rails-react-integration" class="u"> Ruby on Rails React integration</a></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/rust-programming-language"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#rust-programming-language">Rust <span class="meta">(programming language)</span></a><span class="hover-metadata"><a class="split" href="rust-programming-language"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/rust-library"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#rust-library">Rust library</a><span class="hover-metadata"><a class="split" href="rust-library"></a><a href="#_toc/rust-programming-language" class="u"> Rust</a></span></span></div></li></ul><li><div id="_toc/short-code-programming-language"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#short-code-programming-language">Short Code <span class="meta">(programming-language, 1950)</span></a><span class="hover-metadata"><a class="split" href="short-code-programming-language"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a></span></span></div></li><li><div id="_toc/tcl"><div class="arrow"><div></div></div><span class="not-arrow"><a href="programming-language#tcl">Tcl</a><span class="hover-metadata"><a class="split" href="tcl"></a><a href="#_toc/list-of-programming-languages" class="u"> List of programming languages</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/recreational-programming"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#recreational-programming">Recreational programming</a><span class="hover-metadata"><a class="split" href="recreational-programming"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/code-golf"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#code-golf">Code golf</a><span class="hover-metadata"><a class="split" href="code-golf"></a><a href="#_toc/recreational-programming" class="u"> Recreational programming</a></span></span></div></li></ul><li class="has-child"><div id="_toc/search-engine"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#search-engine">Search engine</a><span class="hover-metadata"><a class="split" href="search-engine"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 630</span><span class="dcnt"> 11</span></span></span></span></div><ul><li><div id="_toc/search-engine-optimization"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#search-engine-optimization">Search engine optimization <span class="meta">(SEO)</span></a><span class="hover-metadata"><a class="split" href="search-engine-optimization"></a><a href="#_toc/search-engine" class="u"> Search engine</a></span></span></div></li><li class="has-child"><div id="_toc/list-of-search-engines"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#list-of-search-engines">List of search engines</a><span class="hover-metadata"><a class="split" href="list-of-search-engines"></a><a href="#_toc/search-engine" class="u"> Search engine</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/yandex"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#yandex">Yandex</a><span class="hover-metadata"><a class="split" href="yandex"></a><a href="#_toc/list-of-search-engines" class="u"> List of search engines</a></span></span></div></li></ul><li class="has-child"><div id="_toc/web-crawling"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#web-crawling">Web crawling</a><span class="hover-metadata"><a class="split" href="web-crawling"></a><a href="#_toc/search-engine" class="u"> Search engine</a><span class="metrics"><span class="wcntr"> 579</span><span class="dcnt"> 4</span></span></span></span></div><ul><li class="has-child"><div id="_toc/open-web-crawling"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#open-web-crawling">Open web crawling</a><span class="hover-metadata"><a class="split" href="open-web-crawling"></a><a href="#_toc/web-crawling" class="u"> Web crawling</a><span class="metrics"><span class="wcntr"> 579</span><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/common-crawl"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#common-crawl">Common Crawl</a><span class="hover-metadata"><a class="split" href="common-crawl"></a><a href="#_toc/open-web-crawling" class="u"> Open web crawling</a><span class="metrics"><span class="wcntr"> 579</span><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/common-crawl-athena"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#common-crawl-athena">Common Crawl Athena</a><span class="hover-metadata"><a class="split" href="common-crawl-athena"></a><a href="#_toc/common-crawl" class="u"> Common Crawl</a><span class="metrics"><span class="wcntr"> 4</span></span></span></span></div></li><li><div id="_toc/common-crawl-web-graph"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#common-crawl-web-graph">Common Crawl web graph</a><span class="hover-metadata"><a class="split" href="common-crawl-web-graph"></a><a href="#_toc/common-crawl" class="u"> Common Crawl</a><span class="metrics"><span class="wcntr"> 68</span></span></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/reverse-image-search"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#reverse-image-search">Reverse image search</a><span class="hover-metadata"><a class="split" href="reverse-image-search"></a><a href="#_toc/search-engine" class="u"> Search engine</a><span class="metrics"><span class="wcntr"> 51</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/reverse-face-image-search"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#reverse-face-image-search">Reverse face image search</a><span class="hover-metadata"><a class="split" href="reverse-face-image-search"></a><a href="#_toc/reverse-image-search" class="u"> Reverse image search</a><span class="metrics"><span class="wcntr"> 51</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/facecheck-id"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#facecheck-id">facecheck.id</a><span class="hover-metadata"><a class="split" href="facecheck-id"></a><a href="#_toc/reverse-face-image-search" class="u"> Reverse face image search</a><span class="metrics"><span class="wcntr"> 49</span></span></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/scientific-computing"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#scientific-computing">Scientific computing</a><span class="hover-metadata"><a class="split" href="scientific-computing"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 677</span><span class="dcnt"> 30</span></span></span></span></div><ul><li><div id="_toc/computer-simulation"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#computer-simulation">Computer simulation</a><span class="hover-metadata"><a class="split" href="computer-simulation"></a><a href="#_toc/scientific-computing" class="u"> Scientific computing</a></span></span></div></li><li class="has-child"><div id="_toc/scientific-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#scientific-software">Scientific software</a><span class="hover-metadata"><a class="split" href="scientific-software"></a><a href="#_toc/scientific-computing" class="u"> Scientific computing</a><span class="metrics"><span class="wcntr"> 677</span><span class="dcnt"> 28</span></span></span></span></div><ul><li class="has-child"><div id="_toc/numerical-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#numerical-software">Numerical software</a><span class="hover-metadata"><a class="split" href="numerical-software"></a><a href="#_toc/scientific-software" class="u"> Scientific software</a><span class="metrics"><span class="wcntr"> 533</span><span class="dcnt"> 13</span></span></span></span></div><ul><li class="has-child"><div id="_toc/arbitrary-precision-arithmetic"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#arbitrary-precision-arithmetic">Arbitrary-precision arithmetic</a><span class="hover-metadata"><a class="split" href="arbitrary-precision-arithmetic"></a><a href="#_toc/numerical-software" class="u"> Numerical software</a><span class="metrics"><span class="wcntr"> 2</span><span class="dcnt"> 4</span></span></span></span></div><ul><li class="has-child"><div id="_toc/list-of-arbitrary-precision-arithmetic-sofware"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#list-of-arbitrary-precision-arithmetic-sofware">List of arbitrary-precision arithmetic sofware</a><span class="hover-metadata"><a class="split" href="list-of-arbitrary-precision-arithmetic-sofware"></a><a href="#_toc/arbitrary-precision-arithmetic" class="u"> Arbitrary-precision arithmetic</a><span class="metrics"><span class="wcntr"> 2</span><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/gnu-multiple-precision-arithmetic-library"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gnu-multiple-precision-arithmetic-library">GNU Multiple Precision Arithmetic Library <span class="meta">(GMP)</span></a><span class="hover-metadata"><a class="split" href="gnu-multiple-precision-arithmetic-library"></a><a href="#_toc/list-of-arbitrary-precision-arithmetic-sofware" class="u"> List of arbitrary-precision arithmetic sofware</a><span class="metrics"><span class="wcntr"> 2</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/gmp-example"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gmp-example">GMP example</a><span class="hover-metadata"><a class="split" href="gmp-example"></a><a href="#_toc/gnu-multiple-precision-arithmetic-library" class="u"> GNU Multiple Precision Arithmetic Library</a><span class="metrics"><span class="wcntr"> 2</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/_file/gmp/hello.c"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#_file/gmp/hello.c">gmp/hello.c</a><span class="hover-metadata"><a class="split" href="_file/gmp/hello.c"></a><a href="#_toc/gmp-example" class="u"> GMP example</a></span></span></div></li></ul></li></ul></li></ul></li></ul><li><div id="_toc/basic-linear-algebra-subprograms"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#basic-linear-algebra-subprograms">Basic Linear Algebra Subprograms <span class="meta">(BLAS)</span></a><span class="hover-metadata"><a class="split" href="basic-linear-algebra-subprograms"></a><a href="#_toc/numerical-software" class="u"> Numerical software</a><span class="metrics"><span class="wcntr"> 2</span></span></span></span></div></li><li class="has-child"><div id="_toc/computer-algebra"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#computer-algebra">Computer algebra <span class="meta">(Symbolic computation)</span></a><span class="hover-metadata"><a class="split" href="computer-algebra"></a><a href="#_toc/numerical-software" class="u"> Numerical software</a><span class="metrics"><span class="wcntr"> 529</span><span class="dcnt"> 6</span></span></span></span></div><ul><li class="has-child"><div id="_toc/symbolic-integration"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#symbolic-integration">Symbolic integration</a><span class="hover-metadata"><a class="split" href="symbolic-integration"></a><a href="#_toc/computer-algebra" class="u"> Computer algebra</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/integration-bee"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#integration-bee">Integration Bee</a><span class="hover-metadata"><a class="split" href="integration-bee"></a><a href="#_toc/symbolic-integration" class="u"> Symbolic integration</a></span></span></div></li></ul><li class="has-child"><div id="_toc/computer-algebra-system"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#computer-algebra-system">Computer algebra system</a><span class="hover-metadata"><a class="split" href="computer-algebra-system"></a><a href="#_toc/computer-algebra" class="u"> Computer algebra</a><span class="metrics"><span class="wcntr"> 529</span><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/sympy"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#sympy">SymPy</a><span class="hover-metadata"><a class="split" href="sympy"></a><a href="#_toc/computer-algebra-system" class="u"> Computer algebra system</a><span class="metrics"><span class="wcntr"> 529</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/sympy-special-function"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#sympy-special-function">SymPy special function</a><span class="hover-metadata"><a class="split" href="sympy-special-function"></a><a href="#_toc/sympy" class="u"> SymPy</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/_file/python/sympy_cheat/logarithm_integral.py"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#_file/python/sympy_cheat/logarithm_integral.py">python/sympy_cheat/logarithm_integral.py <span class="meta">(<code>li</code>)</span></a><span class="hover-metadata"><a class="split" href="_file/python/sympy_cheat/logarithm_integral.py"></a><a href="#_toc/sympy-special-function" class="u"> SymPy special function</a></span></span></div></li></ul></li></ul></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/scientific-visualization"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#scientific-visualization">Scientific visualization</a><span class="hover-metadata"><a class="split" href="scientific-visualization"></a><a href="#_toc/scientific-software" class="u"> Scientific software</a><span class="metrics"><span class="wcntr"> 144</span><span class="dcnt"> 13</span></span></span></span></div><ul><li class="has-child"><div id="_toc/chart"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#chart">Chart</a><span class="hover-metadata"><a class="split" href="chart"></a><a href="#_toc/scientific-visualization" class="u"> Scientific visualization</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/chart-type"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#chart-type">Chart type</a><span class="hover-metadata"><a class="split" href="chart-type"></a><a href="#_toc/chart" class="u"> Chart</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/histogram"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#histogram">Histogram</a><span class="hover-metadata"><a class="split" href="histogram"></a><a href="#_toc/chart-type" class="u"> Chart type</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/scientific-visualization-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#scientific-visualization-software">Scientific visualization software</a><span class="hover-metadata"><a class="split" href="scientific-visualization-software"></a><a href="#_toc/scientific-visualization" class="u"> Scientific visualization</a><span class="metrics"><span class="wcntr"> 144</span><span class="dcnt"> 9</span></span></span></span></div><ul><li class="has-child"><div id="_toc/open-source-scientific-computing-consultancies"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#open-source-scientific-computing-consultancies">Open source scientific computing consultancies</a><span class="hover-metadata"><a class="split" href="open-source-scientific-computing-consultancies"></a><a href="#_toc/scientific-visualization-software" class="u"> Scientific visualization software</a><span class="metrics"><span class="wcntr"> 5</span><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/enthought"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#enthought">Enthought</a><span class="hover-metadata"><a class="split" href="enthought"></a><a href="#_toc/open-source-scientific-computing-consultancies" class="u"> Open source scientific computing consultancies</a></span></span></div></li><li><div id="_toc/kitware"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#kitware">Kitware</a><span class="hover-metadata"><a class="split" href="kitware"></a><a href="#_toc/open-source-scientific-computing-consultancies" class="u"> Open source scientific computing consultancies</a></span></span></div></li></ul><li class="has-child"><div id="_toc/plotting-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#plotting-software">Plotting software</a><span class="hover-metadata"><a class="split" href="plotting-software"></a><a href="#_toc/scientific-visualization-software" class="u"> Scientific visualization software</a><span class="metrics"><span class="wcntr"> 134</span><span class="dcnt"> 5</span></span></span></span></div><ul><li><div id="_toc/real-time-live-plot-from-streaming-data"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#real-time-live-plot-from-streaming-data">Real time live plot from streaming data</a><span class="hover-metadata"><a class="split" href="real-time-live-plot-from-streaming-data"></a><a href="#_toc/plotting-software" class="u"> Plotting software</a><span class="metrics"><span class="wcntr"> 9</span></span></span></span></div></li><li><div id="_toc/survey-of-open-source-interactive-plotting-software-with-a-10-million-point-scatter-plot-benchmark-by-ciro-santilli"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#survey-of-open-source-interactive-plotting-software-with-a-10-million-point-scatter-plot-benchmark-by-ciro-santilli">Survey of open source interactive plotting software with a 10 million point scatter plot benchmark by Ciro Santilli</a><span class="hover-metadata"><a class="split" href="survey-of-open-source-interactive-plotting-software-with-a-10-million-point-scatter-plot-benchmark-by-ciro-santilli"></a><a href="#_toc/plotting-software" class="u"> Plotting software</a><span class="metrics"><span class="wcntr"> 2</span></span></span></span></div></li><li><div id="_toc/matplotlib"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#matplotlib">Matplotlib</a><span class="hover-metadata"><a class="split" href="matplotlib"></a><a href="#_toc/plotting-software" class="u"> Plotting software</a><span class="metrics"><span class="wcntr"> 60</span></span></span></span></div></li><li class="has-child"><div id="_toc/gnuplot"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gnuplot">gnuplot</a><span class="hover-metadata"><a class="split" href="gnuplot"></a><a href="#_toc/plotting-software" class="u"> Plotting software</a><span class="metrics"><span class="wcntr"> 63</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/gnuplot-command-line-hello-world"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gnuplot-command-line-hello-world">gnuplot command line hello world</a><span class="hover-metadata"><a class="split" href="gnuplot-command-line-hello-world"></a><a href="#_toc/gnuplot" class="u"> gnuplot</a><span class="metrics"><span class="wcntr"> 8</span></span></span></span></div></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/software-reverse-engineering"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#software-reverse-engineering">Software reverse engineering</a><span class="hover-metadata"><a class="split" href="software-reverse-engineering"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/software-reverse-engineering-tool"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#software-reverse-engineering-tool">Software reverse engineering tool</a><span class="hover-metadata"><a class="split" href="software-reverse-engineering-tool"></a><a href="#_toc/software-reverse-engineering" class="u"> Software reverse engineering</a></span></span></div></li><li><div id="_toc/binwalk"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#binwalk">binwalk</a><span class="hover-metadata"><a class="split" href="binwalk"></a><a href="#_toc/software-reverse-engineering" class="u"> Software reverse engineering</a></span></span></div></li></ul><li class="has-child"><div id="_toc/software-bug"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#software-bug">Software bug</a><span class="hover-metadata"><a class="split" href="software-bug"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 496</span><span class="dcnt"> 15</span></span></span></span></div><ul><li><div id="_toc/formal-verification"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#formal-verification">Formal verification</a><span class="hover-metadata"><a class="split" href="formal-verification"></a><a href="#_toc/software-bug" class="u"> Software bug</a></span></span></div></li><li><div id="_toc/glitch"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#glitch">Glitch</a><span class="hover-metadata"><a class="split" href="glitch"></a><a href="#_toc/software-bug" class="u"> Software bug</a><span class="metrics"><span class="wcntr"> 27</span></span></span></span></div></li><li class="has-child"><div id="_toc/debugging"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#debugging">Debugging</a><span class="hover-metadata"><a class="split" href="debugging"></a><a href="#_toc/software-bug" class="u"> Software bug</a><span class="metrics"><span class="wcntr"> 440</span><span class="dcnt"> 10</span></span></span></span></div><ul><li><div id="_toc/ciro-s-call-hierarchy-notation"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ciro-s-call-hierarchy-notation">Ciro's call hierarchy notation</a><span class="hover-metadata"><a class="split" href="ciro-s-call-hierarchy-notation"></a><a href="#_toc/debugging" class="u"> Debugging</a><span class="metrics"><span class="wcntr"> 193</span></span></span></span></div></li><li><div id="_toc/bisection-software-engineering"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#bisection-software-engineering">Bisection <span class="meta">(software engineering)</span></a><span class="hover-metadata"><a class="split" href="bisection-software-engineering"></a><a href="#_toc/debugging" class="u"> Debugging</a><span class="metrics"><span class="wcntr"> 78</span></span></span></span></div></li><li class="has-child"><div id="_toc/debugger"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#debugger">Debugger</a><span class="hover-metadata"><a class="split" href="debugger"></a><a href="#_toc/debugging" class="u"> Debugging</a><span class="metrics"><span class="wcntr"> 112</span><span class="dcnt"> 7</span></span></span></span></div><ul><li class="has-child"><div id="_toc/reverse-debugging"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#reverse-debugging">Reverse debugging</a><span class="hover-metadata"><a class="split" href="reverse-debugging"></a><a href="#_toc/debugger" class="u"> Debugger</a><span class="metrics"><span class="wcntr"> 51</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/omniscient-debugging"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#omniscient-debugging">Omniscient debugging</a><span class="hover-metadata"><a class="split" href="omniscient-debugging"></a><a href="#_toc/reverse-debugging" class="u"> Reverse debugging</a><span class="metrics"><span class="wcntr"> 44</span></span></span></span></div></li></ul><li class="has-child"><div id="_toc/gnu-debugger"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gnu-debugger">GNU Debugger <span class="meta">(GDB)</span></a><span class="hover-metadata"><a class="split" href="gnu-debugger"></a><a href="#_toc/debugger" class="u"> Debugger</a><span class="metrics"><span class="wcntr"> 61</span><span class="dcnt"> 4</span></span></span></span></div><ul><li class="has-child"><div id="_toc/gdb-reverse-debugging"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gdb-reverse-debugging">GDB reverse debugging</a><span class="hover-metadata"><a class="split" href="gdb-reverse-debugging"></a><a href="#_toc/gnu-debugger" class="u"> GNU Debugger</a><span class="metrics"><span class="wcntr"> 46</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/mozilla-rr"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#mozilla-rr">Mozilla rr</a><span class="hover-metadata"><a class="split" href="mozilla-rr"></a><a href="#_toc/gdb-reverse-debugging" class="u"> GDB reverse debugging</a><span class="metrics"><span class="wcntr"> 34</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/pernosco"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#pernosco">Pernosco</a><span class="hover-metadata"><a class="split" href="pernosco"></a><a href="#_toc/mozilla-rr" class="u"> Mozilla rr</a><span class="metrics"><span class="wcntr"> 24</span></span></span></span></div></li></ul></li></ul><li><div id="_toc/gdb-dashboard"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gdb-dashboard">GDB Dashboard</a><span class="hover-metadata"><a class="split" href="gdb-dashboard"></a><a href="#_toc/gnu-debugger" class="u"> GNU Debugger</a><span class="metrics"><span class="wcntr"> 7</span></span></span></span></div></li></ul></li></ul></li></ul><li><div id="_toc/minimal-working-example"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#minimal-working-example">Minimal working example</a><span class="hover-metadata"><a class="split" href="minimal-working-example"></a><a href="#_toc/software-bug" class="u"> Software bug</a><span class="metrics"><span class="wcntr"> 29</span></span></span></span></div></li><li><div id="_toc/zero-based-numbering"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#zero-based-numbering">Zero-based numbering</a><span class="hover-metadata"><a class="split" href="zero-based-numbering"></a><a href="#_toc/software-bug" class="u"> Software bug</a></span></span></div></li></ul><li class="has-child"><div id="_toc/software-company"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#software-company">Software company</a><span class="hover-metadata"><a class="split" href="software-company"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 850</span><span class="dcnt"> 18</span></span></span></span></div><ul><li class="has-child"><div id="_toc/microsoft"><div class="arrow"><div></div></div><span class="not-arrow"><a href="microsoft">Microsoft</a><span class="hover-metadata"><a class="split" href="microsoft-split"></a><a href="#_toc/software-company" class="u"> Software company</a><span class="metrics"><span class="wcntr"> 386</span><span class="dcnt"> 12</span></span></span></span></div><ul><li><div id="_toc/united-states-v-microsoft-corp"><div class="arrow"><div></div></div><span class="not-arrow"><a href="microsoft#united-states-v-microsoft-corp">United States v. Microsoft Corp</a><span class="hover-metadata"><a class="split" href="united-states-v-microsoft-corp"></a><a href="#_toc/microsoft" class="u"> Microsoft</a></span></span></div></li><li><div id="_toc/microsoft-research"><div class="arrow"><div></div></div><span class="not-arrow"><a href="microsoft#microsoft-research">Microsoft Research</a><span class="hover-metadata"><a class="split" href="microsoft-research"></a><a href="#_toc/microsoft" class="u"> Microsoft</a></span></span></div></li><li class="has-child"><div id="_toc/microsoft-product"><div class="arrow"><div></div></div><span class="not-arrow"><a href="microsoft#microsoft-product">Microsoft product</a><span class="hover-metadata"><a class="split" href="microsoft-product"></a><a href="#_toc/microsoft" class="u"> Microsoft</a><span class="metrics"><span class="wcntr"> 10</span><span class="dcnt"> 4</span></span></span></span></div><ul><li><div id="_toc/microsoft-powerpoint"><div class="arrow"><div></div></div><span class="not-arrow"><a href="microsoft#microsoft-powerpoint">Microsoft PowerPoint</a><span class="hover-metadata"><a class="split" href="microsoft-powerpoint"></a><a href="#_toc/microsoft-product" class="u"> Microsoft product</a></span></span></div></li><li class="has-child"><div id="_toc/microsoft-windows"><div class="arrow"><div></div></div><span class="not-arrow"><a href="microsoft#microsoft-windows">Microsoft Windows</a><span class="hover-metadata"><a class="split" href="microsoft-windows"></a><a href="#_toc/microsoft-product" class="u"> Microsoft product</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/windows-subsystem-for-linux"><div class="arrow"><div></div></div><span class="not-arrow"><a href="microsoft#windows-subsystem-for-linux">Windows Subsystem for Linux</a><span class="hover-metadata"><a class="split" href="windows-subsystem-for-linux"></a><a href="#_toc/microsoft-windows" class="u"> Microsoft Windows</a></span></span></div></li><li><div id="_toc/dos"><div class="arrow"><div></div></div><span class="not-arrow"><a href="microsoft#dos">DOS</a><span class="hover-metadata"><a class="split" href="dos"></a><a href="#_toc/microsoft-windows" class="u"> Microsoft Windows</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/microsoft-employee"><div class="arrow"><div></div></div><span class="not-arrow"><a href="microsoft#microsoft-employee">Microsoft employee</a><span class="hover-metadata"><a class="split" href="microsoft-employee"></a><a href="#_toc/microsoft" class="u"> Microsoft</a><span class="metrics"><span class="wcntr"> 30</span><span class="dcnt"> 4</span></span></span></span></div><ul><li class="has-child"><div id="_toc/bill-gates"><div class="arrow"><div></div></div><span class="not-arrow"><a href="microsoft#bill-gates">Bill Gates</a><span class="hover-metadata"><a class="split" href="bill-gates"></a><a href="#_toc/microsoft-employee" class="u"> Microsoft employee</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/quote-by-bill-gates"><div class="arrow"><div></div></div><span class="not-arrow"><a href="microsoft#quote-by-bill-gates">Quote by Bill Gates</a><span class="hover-metadata"><a class="split" href="quote-by-bill-gates"></a><a href="#_toc/bill-gates" class="u"> Bill Gates</a></span></span></div></li><li><div id="_toc/assign-the-hard-task-to-the-lazy-person"><div class="arrow"><div></div></div><span class="not-arrow"><a href="microsoft#assign-the-hard-task-to-the-lazy-person">Assign the hard task to the lazy person</a><span class="hover-metadata"><a class="split" href="assign-the-hard-task-to-the-lazy-person"></a><a href="#_toc/bill-gates" class="u"> Bill Gates</a></span></span></div></li></ul><li><div id="_toc/paul-allen"><div class="arrow"><div></div></div><span class="not-arrow"><a href="microsoft#paul-allen">Paul Allen <span class="meta">(1953-2018)</span></a><span class="hover-metadata"><a class="split" href="paul-allen"></a><a href="#_toc/microsoft-employee" class="u"> Microsoft employee</a></span></span></div></li></ul></li></ul><li><div id="_toc/adobe"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#adobe">Adobe</a><span class="hover-metadata"><a class="split" href="adobe"></a><a href="#_toc/software-company" class="u"> Software company</a></span></span></div></li><li class="has-child"><div id="_toc/oracle-corporation"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#oracle-corporation">Oracle Corporation</a><span class="hover-metadata"><a class="split" href="oracle-corporation"></a><a href="#_toc/software-company" class="u"> Software company</a><span class="metrics"><span class="wcntr"> 141</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/sun-microsystems"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#sun-microsystems">Sun Microsystems</a><span class="hover-metadata"><a class="split" href="sun-microsystems"></a><a href="#_toc/oracle-corporation" class="u"> Oracle Corporation</a><span class="metrics"><span class="wcntr"> 60</span></span></span></span></div></li></ul><li class="has-child"><div id="_toc/red-hat"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#red-hat">Red Hat</a><span class="hover-metadata"><a class="split" href="red-hat"></a><a href="#_toc/software-company" class="u"> Software company</a><span class="metrics"><span class="wcntr"> 248</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/truth-happens-advertisement-by-red-hat"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#truth-happens-advertisement-by-red-hat">Truth Happens advertisement by Red Hat</a><span class="hover-metadata"><a class="split" href="truth-happens-advertisement-by-red-hat"></a><a href="#_toc/red-hat" class="u"> Red Hat</a><span class="metrics"><span class="wcntr"> 248</span></span></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/software-documentation"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#software-documentation">Software documentation</a><span class="hover-metadata"><a class="split" href="software-documentation"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 4</span><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/documentation-generator"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#documentation-generator">Documentation generator</a><span class="hover-metadata"><a class="split" href="documentation-generator"></a><a href="#_toc/software-documentation" class="u"> Software documentation</a></span></span></div></li><li><div id="_toc/readme"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#readme">README</a><span class="hover-metadata"><a class="split" href="readme"></a><a href="#_toc/software-documentation" class="u"> Software documentation</a><span class="metrics"><span class="wcntr"> 4</span></span></span></span></div></li></ul><li class="has-child"><div id="_toc/software-engineering"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#software-engineering">Software engineering</a><span class="hover-metadata"><a class="split" href="software-engineering"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 2k</span><span class="dcnt"> 48</span></span></span></span></div><ul><li class="has-child"><div id="_toc/software-development"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#software-development">Software development</a><span class="hover-metadata"><a class="split" href="software-development"></a><a href="#_toc/software-engineering" class="u"> Software engineering</a><span class="metrics"><span class="wcntr"> 4</span><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/software-development-principle"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#software-development-principle">Software development principle</a><span class="hover-metadata"><a class="split" href="software-development-principle"></a><a href="#_toc/software-development" class="u"> Software development</a><span class="metrics"><span class="wcntr"> 4</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/don-t-repeat-yourself"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#don-t-repeat-yourself">Don't repeat yourself</a><span class="hover-metadata"><a class="split" href="don-t-repeat-yourself"></a><a href="#_toc/software-development-principle" class="u"> Software development principle</a><span class="metrics"><span class="wcntr"> 4</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/yet-another"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#yet-another">Yet another</a><span class="hover-metadata"><a class="split" href="yet-another"></a><a href="#_toc/don-t-repeat-yourself" class="u"> Don't repeat yourself</a><span class="metrics"><span class="wcntr"> 4</span></span></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/software-design-pattern"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#software-design-pattern">Software design pattern</a><span class="hover-metadata"><a class="split" href="software-design-pattern"></a><a href="#_toc/software-engineering" class="u"> Software engineering</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/polymorphism-computer-science"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#polymorphism-computer-science">Polymorphism <span class="meta">(computer science)</span></a><span class="hover-metadata"><a class="split" href="polymorphism-computer-science"></a><a href="#_toc/software-design-pattern" class="u"> Software design pattern</a></span></span></div></li></ul><li class="has-child"><div id="_toc/software-development-method"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#software-development-method">Software development method</a><span class="hover-metadata"><a class="split" href="software-development-method"></a><a href="#_toc/software-engineering" class="u"> Software engineering</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/pair-programming"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#pair-programming">Pair programming</a><span class="hover-metadata"><a class="split" href="pair-programming"></a><a href="#_toc/software-development-method" class="u"> Software development method</a></span></span></div></li></ul><li class="has-child"><div id="_toc/ciro-santilli-s-software-engineering-wisdom"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ciro-santilli-s-software-engineering-wisdom">Ciro Santilli's software engineering wisdom</a><span class="hover-metadata"><a class="split" href="ciro-santilli-s-software-engineering-wisdom"></a><a href="#_toc/software-engineering" class="u"> Software engineering</a><span class="metrics"><span class="wcntr"> 991</span><span class="dcnt"> 12</span></span></span></span></div><ul><li><div id="_toc/excessive-encapsulation-is-the-root-of-much-evil"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#excessive-encapsulation-is-the-root-of-much-evil">Excessive encapsulation is the root of much evil</a><span class="hover-metadata"><a class="split" href="excessive-encapsulation-is-the-root-of-much-evil"></a><a href="#_toc/ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><span class="metrics"><span class="wcntr"> 154</span></span></span></span></div></li><li><div id="_toc/the-development-cycle-time-is-your-god"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#the-development-cycle-time-is-your-god">The development cycle time is your God</a><span class="hover-metadata"><a class="split" href="the-development-cycle-time-is-your-god"></a><a href="#_toc/ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><span class="metrics"><span class="wcntr"> 224</span></span></span></span></div></li><li><div id="_toc/everything-that-is-not-tested-breaks"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#everything-that-is-not-tested-breaks">Everything that is not tested breaks</a><span class="hover-metadata"><a class="split" href="everything-that-is-not-tested-breaks"></a><a href="#_toc/ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a></span></span></div></li><li><div id="_toc/everything-can-break-everything"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#everything-can-break-everything">Everything can break everything</a><span class="hover-metadata"><a class="split" href="everything-can-break-everything"></a><a href="#_toc/ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><span class="metrics"><span class="wcntr"> 41</span></span></span></span></div></li><li><div id="_toc/fix-it-twice"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#fix-it-twice">Fix it twice</a><span class="hover-metadata"><a class="split" href="fix-it-twice"></a><a href="#_toc/ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a></span></span></div></li><li><div id="_toc/you-aren-t-gonna-need-it"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#you-aren-t-gonna-need-it">You aren't gonna need it <span class="meta">(YAGNI)</span></a><span class="hover-metadata"><a class="split" href="you-aren-t-gonna-need-it"></a><a href="#_toc/ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><span class="metrics"><span class="wcntr"> 73</span></span></span></span></div></li><li><div id="_toc/kiss-principle"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#kiss-principle">KISS principle <span class="meta">(Keep it simple, stupid)</span></a><span class="hover-metadata"><a class="split" href="kiss-principle"></a><a href="#_toc/ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><span class="metrics"><span class="wcntr"> 51</span></span></span></span></div></li><li><div id="_toc/hofstadter-s-law"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#hofstadter-s-law">Hofstadter's law</a><span class="hover-metadata"><a class="split" href="hofstadter-s-law"></a><a href="#_toc/ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><span class="metrics"><span class="wcntr"> 126</span></span></span></span></div></li><li><div id="_toc/brooks-s-law"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#brooks-s-law">Brooks's law <span class="meta">(Adding manpower to a late software project makes it later)</span></a><span class="hover-metadata"><a class="split" href="brooks-s-law"></a><a href="#_toc/ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><span class="metrics"><span class="wcntr"> 48</span></span></span></span></div></li><li><div id="_toc/sometimes-you-can-debug-software-by-staring-at-the-code-for-long-enough"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#sometimes-you-can-debug-software-by-staring-at-the-code-for-long-enough">Sometimes you can debug software by staring at the code for long enough</a><span class="hover-metadata"><a class="split" href="sometimes-you-can-debug-software-by-staring-at-the-code-for-long-enough"></a><a href="#_toc/ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><span class="metrics"><span class="wcntr"> 112</span></span></span></span></div></li><li><div id="_toc/office-space-design-and-remote-work"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#office-space-design-and-remote-work">Office space design and remote work</a><span class="hover-metadata"><a class="split" href="office-space-design-and-remote-work"></a><a href="#_toc/ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><span class="metrics"><span class="wcntr"> 93</span></span></span></span></div></li><li><div id="_toc/keep-debug-notes"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#keep-debug-notes">Keep debug notes</a><span class="hover-metadata"><a class="split" href="keep-debug-notes"></a><a href="#_toc/ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><span class="metrics"><span class="wcntr"> 46</span></span></span></span></div></li></ul><li class="has-child"><div id="_toc/hello-world-program"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#hello-world-program">"Hello, World!" program</a><span class="hover-metadata"><a class="split" href="hello-world-program"></a><a href="#_toc/software-engineering" class="u"> Software engineering</a><span class="metrics"><span class="wcntr"> 21</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/time-to-hello-world"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#time-to-hello-world">Time to Hello World</a><span class="hover-metadata"><a class="split" href="time-to-hello-world"></a><a href="#_toc/hello-world-program" class="u"> "Hello, World!" program</a></span></span></div></li></ul><li class="has-child"><div id="_toc/software-engineer"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#software-engineer">Software engineer</a><span class="hover-metadata"><a class="split" href="software-engineer"></a><a href="#_toc/software-engineering" class="u"> Software engineering</a><span class="metrics"><span class="wcntr"> 1k</span><span class="dcnt"> 23</span></span></span></span></div><ul><li class="has-child"><div id="_toc/software-engineer-stereotype"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#software-engineer-stereotype">Software engineer stereotype</a><span class="hover-metadata"><a class="split" href="software-engineer-stereotype"></a><a href="#_toc/software-engineer" class="u"> Software engineer</a><span class="metrics"><span class="wcntr"> 300</span><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/correlation-between-sofware-engineers-and-asian-fetish"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#correlation-between-sofware-engineers-and-asian-fetish">Correlation between sofware engineers and Asian fetish</a><span class="hover-metadata"><a class="split" href="correlation-between-sofware-engineers-and-asian-fetish"></a><a href="#_toc/software-engineer-stereotype" class="u"> Software engineer stereotype</a><span class="metrics"><span class="wcntr"> 7</span></span></span></span></div></li><li class="has-child"><div id="_toc/the-correlation-between-software-engineers-and-buddhism"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#the-correlation-between-software-engineers-and-buddhism">The correlation between software engineers and Buddhism</a><span class="hover-metadata"><a class="split" href="the-correlation-between-software-engineers-and-buddhism"></a><a href="#_toc/software-engineer-stereotype" class="u"> Software engineer stereotype</a><span class="metrics"><span class="wcntr"> 293</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/the-three-treasures-of-the-programmer"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#the-three-treasures-of-the-programmer">The Three Treasures of the Programmer <span class="meta">(编程三宝)</span></a><span class="hover-metadata"><a class="split" href="the-three-treasures-of-the-programmer"></a><a href="#_toc/the-correlation-between-software-engineers-and-buddhism" class="u"> The correlation between software engineers and Buddhism</a><span class="metrics"><span class="wcntr"> 171</span></span></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/list-of-software-engineers"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#list-of-software-engineers">List of software engineers</a><span class="hover-metadata"><a class="split" href="list-of-software-engineers"></a><a href="#_toc/software-engineer" class="u"> Software engineer</a><span class="metrics"><span class="wcntr"> 482</span><span class="dcnt"> 11</span></span></span></span></div><ul><li class="has-child"><div id="_toc/aaron-swartz"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#aaron-swartz">Aaron Swartz</a><span class="hover-metadata"><a class="split" href="aaron-swartz"></a><a href="#_toc/list-of-software-engineers" class="u"> List of software engineers</a><span class="metrics"><span class="wcntr"> 150</span><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/guerilla-open-access-manifesto-by-aaron-swartz-2008"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#guerilla-open-access-manifesto-by-aaron-swartz-2008">Guerilla Open Access Manifesto by Aaron Swartz (2008)</a><span class="hover-metadata"><a class="split" href="guerilla-open-access-manifesto-by-aaron-swartz-2008"></a><a href="#_toc/aaron-swartz" class="u"> Aaron Swartz</a><span class="metrics"><span class="wcntr"> 83</span></span></span></span></div></li><li><div id="_toc/the-internet-s-own-boy-2014"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#the-internet-s-own-boy-2014">The Internet's Own Boy (2014)</a><span class="hover-metadata"><a class="split" href="the-internet-s-own-boy-2014"></a><a href="#_toc/aaron-swartz" class="u"> Aaron Swartz</a></span></span></div></li></ul><li class="has-child"><div id="_toc/james-somers"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#james-somers">James Somers</a><span class="hover-metadata"><a class="split" href="james-somers"></a><a href="#_toc/list-of-software-engineers" class="u"> List of software engineers</a><span class="metrics"><span class="wcntr"> 40</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/article-by-james-somers"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#article-by-james-somers">Article by James Somers</a><span class="hover-metadata"><a class="split" href="article-by-james-somers"></a><a href="#_toc/james-somers" class="u"> James Somers</a><span class="metrics"><span class="wcntr"> 26</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/i-should-have-loved-biology-by-james-somers"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#i-should-have-loved-biology-by-james-somers">I should have loved biology by James Somers</a><span class="hover-metadata"><a class="split" href="i-should-have-loved-biology-by-james-somers"></a><a href="#_toc/article-by-james-somers" class="u"> Article by James Somers</a><span class="metrics"><span class="wcntr"> 26</span></span></span></span></div></li></ul></li></ul><li><div id="_toc/sandy-maguire"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#sandy-maguire">Sandy Maguire</a><span class="hover-metadata"><a class="split" href="sandy-maguire"></a><a href="#_toc/list-of-software-engineers" class="u"> List of software engineers</a><span class="metrics"><span class="wcntr"> 264</span></span></span></span></div></li><li class="has-child"><div id="_toc/dan-dascalescu"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#dan-dascalescu">Dan Dascalescu</a><span class="hover-metadata"><a class="split" href="dan-dascalescu"></a><a href="#_toc/list-of-software-engineers" class="u"> List of software engineers</a><span class="metrics"><span class="wcntr"> 28</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/english-as-a-universal-language-by-dan-dascalescu-2008"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#english-as-a-universal-language-by-dan-dascalescu-2008">English as a universal language by Dan Dascalescu (2008)</a><span class="hover-metadata"><a class="split" href="english-as-a-universal-language-by-dan-dascalescu-2008"></a><a href="#_toc/dan-dascalescu" class="u"> Dan Dascalescu</a><span class="metrics"><span class="wcntr"> 4</span></span></span></span></div></li></ul><li class="has-child"><div id="_toc/donald-knuth"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#donald-knuth">Donald Knuth</a><span class="hover-metadata"><a class="split" href="donald-knuth"></a><a href="#_toc/list-of-software-engineers" class="u"> List of software engineers</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/knuth-reward-check"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#knuth-reward-check">Knuth reward check</a><span class="hover-metadata"><a class="split" href="knuth-reward-check"></a><a href="#_toc/donald-knuth" class="u"> Donald Knuth</a></span></span></div></li></ul></li></ul><li><div id="_toc/embii"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#embii">EMBII</a><span class="hover-metadata"><a class="split" href="embii"></a><a href="#_toc/software-engineer" class="u"> Software engineer</a><span class="metrics"><span class="wcntr"> 68</span></span></span></span></div></li><li class="has-child"><div id="_toc/gwern-branwen"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gwern-branwen">Gwern Branwen</a><span class="hover-metadata"><a class="split" href="gwern-branwen"></a><a href="#_toc/software-engineer" class="u"> Software engineer</a><span class="metrics"><span class="wcntr"> 265</span><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/work-by-gwern-branwen"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#work-by-gwern-branwen">Work by Gwern Branwen</a><span class="hover-metadata"><a class="split" href="work-by-gwern-branwen"></a><a href="#_toc/gwern-branwen" class="u"> Gwern Branwen</a></span></span></div></li><li><div id="_toc/gwern-net"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gwern-net">gwern.net</a><span class="hover-metadata"><a class="split" href="gwern-net"></a><a href="#_toc/gwern-branwen" class="u"> Gwern Branwen</a><span class="metrics"><span class="wcntr"> 17</span></span></span></span></div></li></ul><li><div id="_toc/richard-stallman"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#richard-stallman">Richard Stallman</a><span class="hover-metadata"><a class="split" href="richard-stallman"></a><a href="#_toc/software-engineer" class="u"> Software engineer</a><span class="metrics"><span class="wcntr"> 19</span></span></span></span></div></li><li><div id="_toc/rob-pike"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#rob-pike">Rob Pike <span class="meta">(1956)</span></a><span class="hover-metadata"><a class="split" href="rob-pike"></a><a href="#_toc/software-engineer" class="u"> Software engineer</a></span></span></div></li><li><div id="_toc/tim-o-reilly"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#tim-o-reilly">Tim O'Reilly</a><span class="hover-metadata"><a class="split" href="tim-o-reilly"></a><a href="#_toc/software-engineer" class="u"> Software engineer</a></span></span></div></li></ul><li><div id="_toc/computer-programming"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#computer-programming">Computer programming</a><span class="hover-metadata"><a class="split" href="computer-programming"></a><a href="#_toc/software-engineering" class="u"> Software engineering</a><span class="metrics"><span class="wcntr"> 154</span></span></span></span></div></li></ul><li class="has-child"><div id="_toc/software-portability"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#software-portability">Software portability</a><span class="hover-metadata"><a class="split" href="software-portability"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/porting"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#porting">Porting</a><span class="hover-metadata"><a class="split" href="porting"></a><a href="#_toc/software-portability" class="u"> Software portability</a></span></span></div></li></ul><li class="has-child"><div id="_toc/software-quality-assurance"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#software-quality-assurance">Software quality assurance</a><span class="hover-metadata"><a class="split" href="software-quality-assurance"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 203</span><span class="dcnt"> 13</span></span></span></span></div><ul><li class="has-child"><div id="_toc/static-program-analysis"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#static-program-analysis">Static program analysis</a><span class="hover-metadata"><a class="split" href="static-program-analysis"></a><a href="#_toc/software-quality-assurance" class="u"> Software quality assurance</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/linting"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#linting">Linting</a><span class="hover-metadata"><a class="split" href="linting"></a><a href="#_toc/static-program-analysis" class="u"> Static program analysis</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/linter-by-language"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#linter-by-language">Linter by language</a><span class="hover-metadata"><a class="split" href="linter-by-language"></a><a href="#_toc/linting" class="u"> Linting</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/software-testing"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#software-testing">Software testing</a><span class="hover-metadata"><a class="split" href="software-testing"></a><a href="#_toc/software-quality-assurance" class="u"> Software quality assurance</a><span class="metrics"><span class="wcntr"> 203</span><span class="dcnt"> 9</span></span></span></span></div><ul><li><div id="_toc/_file/test_executables.js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#_file/test_executables.js">test_executables.js</a><span class="hover-metadata"><a class="split" href="_file/test_executables.js"></a><a href="#_toc/software-testing" class="u"> Software testing</a><span class="metrics"><span class="wcntr"> 86</span></span></span></span></div></li><li><div id="_toc/assertion-software-development"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#assertion-software-development">Assertion <span class="meta">(software development)</span></a><span class="hover-metadata"><a class="split" href="assertion-software-development"></a><a href="#_toc/software-testing" class="u"> Software testing</a></span></span></div></li><li><div id="_toc/continuous-integration"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#continuous-integration">Continuous integration <span class="meta">(CI)</span></a><span class="hover-metadata"><a class="split" href="continuous-integration"></a><a href="#_toc/software-testing" class="u"> Software testing</a></span></span></div></li><li class="has-child"><div id="_toc/test-driven-development"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#test-driven-development">Test driven development</a><span class="hover-metadata"><a class="split" href="test-driven-development"></a><a href="#_toc/software-testing" class="u"> Software testing</a><span class="metrics"><span class="wcntr"> 117</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/laziness-driven-development"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#laziness-driven-development">Laziness Driven Development</a><span class="hover-metadata"><a class="split" href="laziness-driven-development"></a><a href="#_toc/test-driven-development" class="u"> Test driven development</a></span></span></div></li></ul><li><div id="_toc/shift-left-testing"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#shift-left-testing">Shift-left testing</a><span class="hover-metadata"><a class="split" href="shift-left-testing"></a><a href="#_toc/software-testing" class="u"> Software testing</a></span></span></div></li><li class="has-child"><div id="_toc/unit-and-system-tests"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#unit-and-system-tests">Unit and system tests</a><span class="hover-metadata"><a class="split" href="unit-and-system-tests"></a><a href="#_toc/software-testing" class="u"> Software testing</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/unit-test"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#unit-test">Unit test</a><span class="hover-metadata"><a class="split" href="unit-test"></a><a href="#_toc/unit-and-system-tests" class="u"> Unit and system tests</a></span></span></div></li><li><div id="_toc/system-test"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#system-test">System test</a><span class="hover-metadata"><a class="split" href="system-test"></a><a href="#_toc/unit-and-system-tests" class="u"> Unit and system tests</a></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/source-code"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#source-code">Source code</a><span class="hover-metadata"><a class="split" href="source-code"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 20</span><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/the-best-code-is-no-code-at-all"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#the-best-code-is-no-code-at-all">The best code is no code at all</a><span class="hover-metadata"><a class="split" href="the-best-code-is-no-code-at-all"></a><a href="#_toc/source-code" class="u"> Source code</a><span class="metrics"><span class="wcntr"> 20</span></span></span></span></div></li><li><div id="_toc/use-the-source-luke"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#use-the-source-luke">Use The Source Luke</a><span class="hover-metadata"><a class="split" href="use-the-source-luke"></a><a href="#_toc/source-code" class="u"> Source code</a></span></span></div></li></ul><li class="has-child"><div id="_toc/systems-programming"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming">Systems programming</a><span class="hover-metadata"><a class="split" href="systems-programming-split"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 11k</span><span class="dcnt"> 150</span></span></span></span></div><ul><li><div id="_toc/being-proud-of-low-level-programming-is-stupid"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#being-proud-of-low-level-programming-is-stupid">Being proud of low level programming is stupid</a><span class="hover-metadata"><a class="split" href="being-proud-of-low-level-programming-is-stupid"></a><a href="#_toc/systems-programming" class="u"> Systems programming</a></span></span></div></li><li><div id="_toc/bootloader"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#bootloader">Bootloader</a><span class="hover-metadata"><a class="split" href="bootloader"></a><a href="#_toc/systems-programming" class="u"> Systems programming</a></span></span></div></li><li class="has-child"><div id="_toc/operating-system"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#operating-system">Operating system <span class="meta">(OS)</span></a><span class="hover-metadata"><a class="split" href="operating-system"></a><a href="#_toc/systems-programming" class="u"> Systems programming</a><span class="metrics"><span class="wcntr"> 2k</span><span class="dcnt"> 89</span></span></span></span></div><ul><li class="has-child"><div id="_toc/operating-system-concept"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#operating-system-concept">Operating system concept</a><span class="hover-metadata"><a class="split" href="operating-system-concept"></a><a href="#_toc/operating-system" class="u"> Operating system</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/user-and-kernel-space"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#user-and-kernel-space">User and kernel space</a><span class="hover-metadata"><a class="split" href="user-and-kernel-space"></a><a href="#_toc/operating-system-concept" class="u"> Operating system concept</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/user-space"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#user-space">User space</a><span class="hover-metadata"><a class="split" href="user-space"></a><a href="#_toc/user-and-kernel-space" class="u"> User and kernel space</a></span></span></div></li><li><div id="_toc/kernel-space"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#kernel-space">Kernel space</a><span class="hover-metadata"><a class="split" href="kernel-space"></a><a href="#_toc/user-and-kernel-space" class="u"> User and kernel space</a></span></span></div></li></ul></li></ul><li><div id="_toc/bare-metal"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#bare-metal">Bare metal</a><span class="hover-metadata"><a class="split" href="bare-metal"></a><a href="#_toc/operating-system" class="u"> Operating system</a></span></span></div></li><li><div id="_toc/driver-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#driver-software">Driver <span class="meta">(software)</span></a><span class="hover-metadata"><a class="split" href="driver-software"></a><a href="#_toc/operating-system" class="u"> Operating system</a></span></span></div></li><li class="has-child"><div id="_toc/embedded-operating-system"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#embedded-operating-system">Embedded operating system</a><span class="hover-metadata"><a class="split" href="embedded-operating-system"></a><a href="#_toc/operating-system" class="u"> Operating system</a><span class="metrics"><span class="wcntr"> 343</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/zephyr-operating-system"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#zephyr-operating-system">Zephyr <span class="meta">(operating system)</span></a><span class="hover-metadata"><a class="split" href="zephyr-operating-system"></a><a href="#_toc/embedded-operating-system" class="u"> Embedded operating system</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/run-zephyr-on-qemu"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#run-zephyr-on-qemu">Run Zephyr on QEMU</a><span class="hover-metadata"><a class="split" href="run-zephyr-on-qemu"></a><a href="#_toc/zephyr-operating-system" class="u"> Zephyr</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/firmware"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#firmware">Firmware</a><span class="hover-metadata"><a class="split" href="firmware"></a><a href="#_toc/operating-system" class="u"> Operating system</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/bios"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#bios">BIOS</a><span class="hover-metadata"><a class="split" href="bios"></a><a href="#_toc/firmware" class="u"> Firmware</a></span></span></div></li></ul><li><div id="_toc/system-call"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#system-call">System call</a><span class="hover-metadata"><a class="split" href="system-call"></a><a href="#_toc/operating-system" class="u"> Operating system</a></span></span></div></li><li><div id="_toc/unix"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#unix">UNIX</a><span class="hover-metadata"><a class="split" href="unix"></a><a href="#_toc/operating-system" class="u"> Operating system</a></span></span></div></li><li class="has-child"><div id="_toc/linux"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#linux">Linux</a><span class="hover-metadata"><a class="split" href="linux"></a><a href="#_toc/operating-system" class="u"> Operating system</a><span class="metrics"><span class="wcntr"> 2k</span><span class="dcnt"> 53</span></span></span></span></div><ul><li><div id="_toc/tux-mascot"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#tux-mascot">Tux <span class="meta">(mascot)</span></a><span class="hover-metadata"><a class="split" href="tux-mascot"></a><a href="#_toc/linux" class="u"> Linux</a></span></span></div></li><li class="has-child"><div id="_toc/linux-kernel"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#linux-kernel">Linux kernel</a><span class="hover-metadata"><a class="split" href="linux-kernel"></a><a href="#_toc/linux" class="u"> Linux</a><span class="metrics"><span class="dcnt"> 5</span></span></span></span></div><ul><li><div id="_toc/linux-foundation"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#linux-foundation">Linux Foundation</a><span class="hover-metadata"><a class="split" href="linux-foundation"></a><a href="#_toc/linux-kernel" class="u"> Linux kernel</a></span></span></div></li><li><div id="_toc/linux-insides"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#linux-insides">Linux insides</a><span class="hover-metadata"><a class="split" href="linux-insides"></a><a href="#_toc/linux-kernel" class="u"> Linux kernel</a></span></span></div></li><li class="has-child"><div id="_toc/step-debug-the-linux-kernel"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#step-debug-the-linux-kernel">Step debug the Linux kernel</a><span class="hover-metadata"><a class="split" href="step-debug-the-linux-kernel"></a><a href="#_toc/linux-kernel" class="u"> Linux kernel</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/jtag"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#jtag">JTAG</a><span class="hover-metadata"><a class="split" href="jtag"></a><a href="#_toc/step-debug-the-linux-kernel" class="u"> Step debug the Linux kernel</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/serial-wire-debug"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#serial-wire-debug">Serial wire debug <span class="meta">(SWD)</span></a><span class="hover-metadata"><a class="split" href="serial-wire-debug"></a><a href="#_toc/jtag" class="u"> JTAG</a></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/linux-distribution"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#linux-distribution">Linux distribution</a><span class="hover-metadata"><a class="split" href="linux-distribution"></a><a href="#_toc/linux" class="u"> Linux</a><span class="metrics"><span class="wcntr"> 37</span><span class="dcnt"> 6</span></span></span></span></div><ul><li><div id="_toc/linux-distribution-buildable-from-source"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#linux-distribution-buildable-from-source">Linux distribution buildable from source</a><span class="hover-metadata"><a class="split" href="linux-distribution-buildable-from-source"></a><a href="#_toc/linux-distribution" class="u"> Linux distribution</a></span></span></div></li><li><div id="_toc/package-manager"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#package-manager">Package manager</a><span class="hover-metadata"><a class="split" href="package-manager"></a><a href="#_toc/linux-distribution" class="u"> Linux distribution</a></span></span></div></li><li class="has-child"><div id="_toc/cross-distro-package-manager"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#cross-distro-package-manager">Cross distro package manager</a><span class="hover-metadata"><a class="split" href="cross-distro-package-manager"></a><a href="#_toc/linux-distribution" class="u"> Linux distribution</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/appimage"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#appimage">AppImage</a><span class="hover-metadata"><a class="split" href="appimage"></a><a href="#_toc/cross-distro-package-manager" class="u"> Cross distro package manager</a></span></span></div></li><li><div id="_toc/flatpak"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#flatpak">Flatpak</a><span class="hover-metadata"><a class="split" href="flatpak"></a><a href="#_toc/cross-distro-package-manager" class="u"> Cross distro package manager</a></span></span></div></li><li><div id="_toc/snap-package-manager"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#snap-package-manager">Snap <span class="meta">(package manager)</span></a><span class="hover-metadata"><a class="split" href="snap-package-manager"></a><a href="#_toc/cross-distro-package-manager" class="u"> Cross distro package manager</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/list-of-linux-distributions"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#list-of-linux-distributions">List of Linux distributions</a><span class="hover-metadata"><a class="split" href="list-of-linux-distributions"></a><a href="#_toc/linux" class="u"> Linux</a><span class="metrics"><span class="wcntr"> 1k</span><span class="dcnt"> 38</span></span></span></span></div><ul><li class="has-child"><div id="_toc/android-operating-system"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#android-operating-system">Android <span class="meta">(operating system)</span></a><span class="hover-metadata"><a class="split" href="android-operating-system"></a><a href="#_toc/list-of-linux-distributions" class="u"> List of Linux distributions</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/android-open-source-project"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#android-open-source-project">Android Open Source Project <span class="meta">(AOSP)</span></a><span class="hover-metadata"><a class="split" href="android-open-source-project"></a><a href="#_toc/android-operating-system" class="u"> Android</a></span></span></div></li><li><div id="_toc/transfer-android-11-camera-videos-to-ubuntu-20-10"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#transfer-android-11-camera-videos-to-ubuntu-20-10">Transfer Android 11 camera videos to Ubuntu 20.10</a><span class="hover-metadata"><a class="split" href="transfer-android-11-camera-videos-to-ubuntu-20-10"></a><a href="#_toc/android-operating-system" class="u"> Android</a></span></span></div></li><li><div id="_toc/f-droid"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#f-droid">F-Droid</a><span class="hover-metadata"><a class="split" href="f-droid"></a><a href="#_toc/android-operating-system" class="u"> Android</a></span></span></div></li></ul><li><div id="_toc/arch-linux"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#arch-linux">Arch Linux</a><span class="hover-metadata"><a class="split" href="arch-linux"></a><a href="#_toc/list-of-linux-distributions" class="u"> List of Linux distributions</a></span></span></div></li><li class="has-child"><div id="_toc/buildroot"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#buildroot">Buildroot</a><span class="hover-metadata"><a class="split" href="buildroot"></a><a href="#_toc/list-of-linux-distributions" class="u"> List of Linux distributions</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/busybox"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#busybox">BusyBox</a><span class="hover-metadata"><a class="split" href="busybox"></a><a href="#_toc/buildroot" class="u"> Buildroot</a></span></span></div></li></ul><li><div id="_toc/nixos"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#nixos">NixOS</a><span class="hover-metadata"><a class="split" href="nixos"></a><a href="#_toc/list-of-linux-distributions" class="u"> List of Linux distributions</a></span></span></div></li><li class="has-child"><div id="_toc/ubuntu"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu">Ubuntu</a><span class="hover-metadata"><a class="split" href="ubuntu"></a><a href="#_toc/list-of-linux-distributions" class="u"> List of Linux distributions</a><span class="metrics"><span class="wcntr"> 1k</span><span class="dcnt"> 29</span></span></span></span></div><ul><li class="has-child"><div id="_toc/apport-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#apport-software">apport <span class="meta">(software)</span></a><span class="hover-metadata"><a class="split" href="apport-software"></a><a href="#_toc/ubuntu" class="u"> Ubuntu</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/apport-cli"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#apport-cli">apport-cli</a><span class="hover-metadata"><a class="split" href="apport-cli"></a><a href="#_toc/apport-software" class="u"> apport</a></span></span></div></li></ul><li class="has-child"><div id="_toc/ubuntu-howto"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu-howto">Ubuntu HOWTO</a><span class="hover-metadata"><a class="split" href="ubuntu-howto"></a><a href="#_toc/ubuntu" class="u"> Ubuntu</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/make-a-bug-report-for-a-crash-on-ubuntu"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#make-a-bug-report-for-a-crash-on-ubuntu">Make a bug report for a crash on Ubuntu</a><span class="hover-metadata"><a class="split" href="make-a-bug-report-for-a-crash-on-ubuntu"></a><a href="#_toc/ubuntu-howto" class="u"> Ubuntu HOWTO</a></span></span></div></li><li><div id="_toc/find-gpu-information-in-ubuntu"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#find-gpu-information-in-ubuntu">Find GPU information in Ubuntu</a><span class="hover-metadata"><a class="split" href="find-gpu-information-in-ubuntu"></a><a href="#_toc/ubuntu-howto" class="u"> Ubuntu HOWTO</a></span></span></div></li><li><div id="_toc/how-to-report-ubuntu-crashes"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#how-to-report-ubuntu-crashes">How to report Ubuntu crashes</a><span class="hover-metadata"><a class="split" href="how-to-report-ubuntu-crashes"></a><a href="#_toc/ubuntu-howto" class="u"> Ubuntu HOWTO</a></span></span></div></li></ul><li class="has-child"><div id="_toc/ubuntu-release"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu-release">Ubuntu release</a><span class="hover-metadata"><a class="split" href="ubuntu-release"></a><a href="#_toc/ubuntu" class="u"> Ubuntu</a><span class="metrics"><span class="wcntr"> 922</span><span class="dcnt"> 18</span></span></span></span></div><ul><li><div id="_toc/ubuntu-24-10"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu-24-10">Ubuntu 24.10</a><span class="hover-metadata"><a class="split" href="ubuntu-24-10"></a><a href="#_toc/ubuntu-release" class="u"> Ubuntu release</a></span></span></div></li><li class="has-child"><div id="_toc/ubuntu-24-04"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu-24-04">Ubuntu 24.04</a><span class="hover-metadata"><a class="split" href="ubuntu-24-04"></a><a href="#_toc/ubuntu-release" class="u"> Ubuntu release</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/ubuntu-24-04-installer-erase-disk-and-install-ubuntu-doesn-t-work-when-bitlocker-enabled"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu-24-04-installer-erase-disk-and-install-ubuntu-doesn-t-work-when-bitlocker-enabled">Ubuntu 24.04 installer "Erase disk and install Ubuntu" doesn't work when BitLocker enabled</a><span class="hover-metadata"><a class="split" href="ubuntu-24-04-installer-erase-disk-and-install-ubuntu-doesn-t-work-when-bitlocker-enabled"></a><a href="#_toc/ubuntu-24-04" class="u"> Ubuntu 24.04</a></span></span></div></li><li><div id="_toc/ubuntu-24-04-the-application-files-has-closed-unexpectedly"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu-24-04-the-application-files-has-closed-unexpectedly">Ubuntu 24.04 "The application files has closed unexpectedly"</a><span class="hover-metadata"><a class="split" href="ubuntu-24-04-the-application-files-has-closed-unexpectedly"></a><a href="#_toc/ubuntu-24-04" class="u"> Ubuntu 24.04</a></span></span></div></li></ul><li class="has-child"><div id="_toc/ubuntu-23-10"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu-23-10">Ubuntu 23.10</a><span class="hover-metadata"><a class="split" href="ubuntu-23-10"></a><a href="#_toc/ubuntu-release" class="u"> Ubuntu release</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/gfx-v11-0-priv-reg-irq-register-access-in-command-stream"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#gfx-v11-0-priv-reg-irq-register-access-in-command-stream">gfx_v11_0_priv_reg_irq: register access in command stream</a><span class="hover-metadata"><a class="split" href="gfx-v11-0-priv-reg-irq-register-access-in-command-stream"></a><a href="#_toc/ubuntu-23-10" class="u"> Ubuntu 23.10</a></span></span></div></li><li><div id="_toc/unable-to-lock-screen-on-ubuntu"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#unable-to-lock-screen-on-ubuntu">Unable to lock screen on Ubuntu</a><span class="hover-metadata"><a class="split" href="unable-to-lock-screen-on-ubuntu"></a><a href="#_toc/ubuntu-23-10" class="u"> Ubuntu 23.10</a></span></span></div></li></ul><li class="has-child"><div id="_toc/ubuntu-23-04"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu-23-04">Ubuntu 23.04</a><span class="hover-metadata"><a class="split" href="ubuntu-23-04"></a><a href="#_toc/ubuntu-release" class="u"> Ubuntu release</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/ubuntu-23-04-boot-broken-on-kernel-6-2"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu-23-04-boot-broken-on-kernel-6-2">Ubuntu 23.04 boot broken on kernel 6.2</a><span class="hover-metadata"><a class="split" href="ubuntu-23-04-boot-broken-on-kernel-6-2"></a><a href="#_toc/ubuntu-23-04" class="u"> Ubuntu 23.04</a></span></span></div></li></ul><li><div id="_toc/ubuntu-22-10"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu-22-10">Ubuntu 22.10</a><span class="hover-metadata"><a class="split" href="ubuntu-22-10"></a><a href="#_toc/ubuntu-release" class="u"> Ubuntu release</a></span></span></div></li><li class="has-child"><div id="_toc/ubuntu-22-04"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu-22-04">Ubuntu 22.04</a><span class="hover-metadata"><a class="split" href="ubuntu-22-04"></a><a href="#_toc/ubuntu-release" class="u"> Ubuntu release</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/snap-pending-update-of-notifications"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#snap-pending-update-of-notifications">snap "Pending Update of" notifications</a><span class="hover-metadata"><a class="split" href="snap-pending-update-of-notifications"></a><a href="#_toc/ubuntu-22-04" class="u"> Ubuntu 22.04</a></span></span></div></li></ul><li class="has-child"><div id="_toc/ubuntu-21-10"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu-21-10">Ubuntu 21.10</a><span class="hover-metadata"><a class="split" href="ubuntu-21-10"></a><a href="#_toc/ubuntu-release" class="u"> Ubuntu release</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/ubuntu-21-10-does-not-wake-up-from-suspend"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu-21-10-does-not-wake-up-from-suspend">Ubuntu 21.10 does not wake up from suspend <span class="meta">(<code>nv_set_system_power_state</code>)</span></a><span class="hover-metadata"><a class="split" href="ubuntu-21-10-does-not-wake-up-from-suspend"></a><a href="#_toc/ubuntu-21-10" class="u"> Ubuntu 21.10</a></span></span></div></li></ul><li><div id="_toc/ubuntu-21-04"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu-21-04">Ubuntu 21.04</a><span class="hover-metadata"><a class="split" href="ubuntu-21-04"></a><a href="#_toc/ubuntu-release" class="u"> Ubuntu release</a></span></span></div></li><li><div id="_toc/ubuntu-20-04"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu-20-04">Ubuntu 20.04</a><span class="hover-metadata"><a class="split" href="ubuntu-20-04"></a><a href="#_toc/ubuntu-release" class="u"> Ubuntu release</a></span></span></div></li><li><div id="_toc/ubuntu-18-04"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu-18-04">Ubuntu 18.04</a><span class="hover-metadata"><a class="split" href="ubuntu-18-04"></a><a href="#_toc/ubuntu-release" class="u"> Ubuntu release</a></span></span></div></li><li><div id="_toc/ubuntu-16-04"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu-16-04">Ubuntu 16.04</a><span class="hover-metadata"><a class="split" href="ubuntu-16-04"></a><a href="#_toc/ubuntu-release" class="u"> Ubuntu release</a></span></span></div></li></ul><li class="has-child"><div id="_toc/ubuntu-feature-request"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#ubuntu-feature-request">Ubuntu feature request</a><span class="hover-metadata"><a class="split" href="ubuntu-feature-request"></a><a href="#_toc/ubuntu" class="u"> Ubuntu</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/couldn-t-save-system-state-minimum-free-space-to-take-a-snapshot-and-preserve-zfs-performance-is"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#couldn-t-save-system-state-minimum-free-space-to-take-a-snapshot-and-preserve-zfs-performance-is">couldn't save system state: Minimum free space to take a snapshot and preserve ZFS performance is</a><span class="hover-metadata"><a class="split" href="couldn-t-save-system-state-minimum-free-space-to-take-a-snapshot-and-preserve-zfs-performance-is"></a><a href="#_toc/ubuntu-feature-request" class="u"> Ubuntu feature request</a></span></span></div></li><li><div id="_toc/hide-top-bar-on-ubuntu"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#hide-top-bar-on-ubuntu">Hide top bar on Ubuntu</a><span class="hover-metadata"><a class="split" href="hide-top-bar-on-ubuntu"></a><a href="#_toc/ubuntu-feature-request" class="u"> Ubuntu feature request</a></span></span></div></li></ul><li><div id="_toc/launchpad-website"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#launchpad-website">Launchpad <span class="meta">(website)</span></a><span class="hover-metadata"><a class="split" href="launchpad-website"></a><a href="#_toc/ubuntu" class="u"> Ubuntu</a></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/berkeley-software-distribution"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#berkeley-software-distribution">Berkeley Software Distribution</a><span class="hover-metadata"><a class="split" href="berkeley-software-distribution"></a><a href="#_toc/operating-system" class="u"> Operating system</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/freebsd"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#freebsd">FreeBSD</a><span class="hover-metadata"><a class="split" href="freebsd"></a><a href="#_toc/berkeley-software-distribution" class="u"> Berkeley Software Distribution</a></span></span></div></li></ul><li class="has-child"><div id="_toc/posix"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#posix">POSIX</a><span class="hover-metadata"><a class="split" href="posix"></a><a href="#_toc/operating-system" class="u"> Operating system</a><span class="metrics"><span class="wcntr"> 69</span><span class="dcnt"> 17</span></span></span></span></div><ul><li class="has-child"><div id="_toc/environment-variable"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#environment-variable">Environment variable</a><span class="hover-metadata"><a class="split" href="environment-variable"></a><a href="#_toc/posix" class="u"> POSIX</a><span class="metrics"><span class="wcntr"> 4</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/posix-environment-variable"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#posix-environment-variable">POSIX environment variable</a><span class="hover-metadata"><a class="split" href="posix-environment-variable"></a><a href="#_toc/environment-variable" class="u"> Environment variable</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/path-environment-variable"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#path-environment-variable"><code>PATH</code> environment variable</a><span class="hover-metadata"><a class="split" href="path-environment-variable"></a><a href="#_toc/posix-environment-variable" class="u"> POSIX environment variable</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/gnu-core-utils"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#gnu-core-utils">GNU Core Utils</a><span class="hover-metadata"><a class="split" href="gnu-core-utils"></a><a href="#_toc/posix" class="u"> POSIX</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li class="has-child"><div id="_toc/gnu-core-utils-command-line-utility"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#gnu-core-utils-command-line-utility">GNU Core Utils command line utility</a><span class="hover-metadata"><a class="split" href="gnu-core-utils-command-line-utility"></a><a href="#_toc/gnu-core-utils" class="u"> GNU Core Utils</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/sha1sum"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#sha1sum">sha1sum</a><span class="hover-metadata"><a class="split" href="sha1sum"></a><a href="#_toc/gnu-core-utils-command-line-utility" class="u"> GNU Core Utils command line utility</a></span></span></div></li><li><div id="_toc/shred-unix"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#shred-unix">shred <span class="meta">(UNIX)</span></a><span class="hover-metadata"><a class="split" href="shred-unix"></a><a href="#_toc/gnu-core-utils-command-line-utility" class="u"> GNU Core Utils command line utility</a></span></span></div></li></ul></li></ul><li><div id="_toc/non-posix-command-line-utility"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#non-posix-command-line-utility">Non-POSIX command line utility</a><span class="hover-metadata"><a class="split" href="non-posix-command-line-utility"></a><a href="#_toc/posix" class="u"> POSIX</a></span></span></div></li><li><div id="_toc/posix-command-line-utility"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#posix-command-line-utility">POSIX command line utility</a><span class="hover-metadata"><a class="split" href="posix-command-line-utility"></a><a href="#_toc/posix" class="u"> POSIX</a></span></span></div></li><li><div id="_toc/diff"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#diff"><code>diff</code></a><span class="hover-metadata"><a class="split" href="diff"></a><a href="#_toc/posix" class="u"> POSIX</a></span></span></div></li><li class="has-child"><div id="_toc/grep"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#grep"><code>grep</code></a><span class="hover-metadata"><a class="split" href="grep"></a><a href="#_toc/posix" class="u"> POSIX</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/grep-large-binary-files"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#grep-large-binary-files">grep large binary files</a><span class="hover-metadata"><a class="split" href="grep-large-binary-files"></a><a href="#_toc/grep" class="u"> <code>grep</code></a></span></span></div></li><li><div id="_toc/bgrep"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#bgrep"><code>bgrep</code></a><span class="hover-metadata"><a class="split" href="bgrep"></a><a href="#_toc/grep" class="u"> <code>grep</code></a></span></span></div></li></ul><li><div id="_toc/sed"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#sed"><code>sed</code></a><span class="hover-metadata"><a class="split" href="sed"></a><a href="#_toc/posix" class="u"> POSIX</a></span></span></div></li><li><div id="_toc/wc-unix"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#wc-unix"><code>wc</code> <span class="meta">(unix)</span></a><span class="hover-metadata"><a class="split" href="wc-unix"></a><a href="#_toc/posix" class="u"> POSIX</a></span></span></div></li><li class="has-child"><div id="_toc/standard-streams"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#standard-streams">Standard streams</a><span class="hover-metadata"><a class="split" href="standard-streams"></a><a href="#_toc/posix" class="u"> POSIX</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/standard-output"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#standard-output">Standard output</a><span class="hover-metadata"><a class="split" href="standard-output"></a><a href="#_toc/standard-streams" class="u"> Standard streams</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/templeos"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#templeos">TempleOS</a><span class="hover-metadata"><a class="split" href="templeos"></a><a href="#_toc/operating-system" class="u"> Operating system</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/terry-a-davis"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#terry-a-davis">Terry A. Davis <span class="meta">(Creator of TempleOS)</span></a><span class="hover-metadata"><a class="split" href="terry-a-davis"></a><a href="#_toc/templeos" class="u"> TempleOS</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/executable-file-format"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#executable-file-format">Executable file format</a><span class="hover-metadata"><a class="split" href="executable-file-format"></a><a href="#_toc/systems-programming" class="u"> Systems programming</a><span class="metrics"><span class="wcntr"> 7k</span><span class="dcnt"> 38</span></span></span></span></div><ul><li class="has-child"><div id="_toc/executable-and-linkable-format"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#executable-and-linkable-format">Executable and Linkable Format</a><span class="hover-metadata"><a class="split" href="executable-and-linkable-format"></a><a href="#_toc/executable-file-format" class="u"> Executable file format</a><span class="metrics"><span class="wcntr"> 7k</span><span class="dcnt"> 37</span></span></span></span></div><ul><li class="has-child"><div id="_toc/elf-hello-world"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world">ELF Hello World Tutorial</a><span class="hover-metadata"><a class="split" href="elf-hello-world-split"></a><a href="#_toc/executable-and-linkable-format" class="u"> Executable and Linkable Format</a><span class="metrics"><span class="wcntr"> 3k</span><span class="dcnt"> 36</span></span></span></span></div><ul><li class="has-child"><div id="_toc/elf-hello-world/introduction"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#introduction"><i class="n">1. </i>Introduction</a><span class="hover-metadata"><a class="split" href="elf-hello-world/introduction"></a><a href="#_toc/elf-hello-world" class="u"> ELF Hello World Tutorial</a><span class="metrics"><span class="dcnt"> 4</span></span></span></span></div><ul><li><div id="_toc/elf-hello-world/standards"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#standards"><i class="n">1.1. </i>Standards</a><span class="hover-metadata"><a class="split" href="elf-hello-world/standards"></a><a href="#_toc/elf-hello-world/introduction" class="u"> Introduction</a></span></span></div></li><li><div id="_toc/elf-hello-world/how-to-learn"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#how-to-learn"><i class="n">1.2. </i>How to learn</a><span class="hover-metadata"><a class="split" href="elf-hello-world/how-to-learn"></a><a href="#_toc/elf-hello-world/introduction" class="u"> Introduction</a></span></span></div></li><li><div id="_toc/elf-hello-world/specified-file-formats"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#specified-file-formats"><i class="n">1.3. </i>Specified file formats</a><span class="hover-metadata"><a class="split" href="elf-hello-world/specified-file-formats"></a><a href="#_toc/elf-hello-world/introduction" class="u"> Introduction</a></span></span></div></li><li><div id="_toc/elf-hello-world/implementations"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#implementations"><i class="n">1.4. </i>Implementations</a><span class="hover-metadata"><a class="split" href="elf-hello-world/implementations"></a><a href="#_toc/elf-hello-world/introduction" class="u"> Introduction</a></span></span></div></li></ul><li><div id="_toc/elf-hello-world/minimal-elf-file"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#minimal-elf-file"><i class="n">2. </i>Minimal ELF file</a><span class="hover-metadata"><a class="split" href="elf-hello-world/minimal-elf-file"></a><a href="#_toc/elf-hello-world" class="u"> ELF Hello World Tutorial</a></span></span></div></li><li><div id="_toc/elf-hello-world/generate-the-example"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#generate-the-example"><i class="n">3. </i>Generate the example</a><span class="hover-metadata"><a class="split" href="elf-hello-world/generate-the-example"></a><a href="#_toc/elf-hello-world" class="u"> ELF Hello World Tutorial</a></span></span></div></li><li><div id="_toc/elf-hello-world/object-hd"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#object-hd"><i class="n">4. </i>Object hd</a><span class="hover-metadata"><a class="split" href="elf-hello-world/object-hd"></a><a href="#_toc/elf-hello-world" class="u"> ELF Hello World Tutorial</a></span></span></div></li><li><div id="_toc/elf-hello-world/executable-hd"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#executable-hd"><i class="n">5. </i>Executable hd</a><span class="hover-metadata"><a class="split" href="elf-hello-world/executable-hd"></a><a href="#_toc/elf-hello-world" class="u"> ELF Hello World Tutorial</a></span></span></div></li><li><div id="_toc/elf-hello-world/global-file-structure"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#global-file-structure"><i class="n">6. </i>Global file structure</a><span class="hover-metadata"><a class="split" href="elf-hello-world/global-file-structure"></a><a href="#_toc/elf-hello-world" class="u"> ELF Hello World Tutorial</a></span></span></div></li><li><div id="_toc/elf-hello-world/section-vs-segment"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#section-vs-segment"><i class="n">7. </i>Section vs segment</a><span class="hover-metadata"><a class="split" href="elf-hello-world/section-vs-segment"></a><a href="#_toc/elf-hello-world" class="u"> ELF Hello World Tutorial</a></span></span></div></li><li><div id="_toc/elf-hello-world/elf-header"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#elf-header"><i class="n">8. </i>ELF header</a><span class="hover-metadata"><a class="split" href="elf-hello-world/elf-header"></a><a href="#_toc/elf-hello-world" class="u"> ELF Hello World Tutorial</a></span></span></div></li><li><div id="_toc/elf-hello-world/section-header-table"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#section-header-table"><i class="n">9. </i>Section header table</a><span class="hover-metadata"><a class="split" href="elf-hello-world/section-header-table"></a><a href="#_toc/elf-hello-world" class="u"> ELF Hello World Tutorial</a></span></span></div></li><li class="has-child"><div id="_toc/elf-hello-world/sections"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#sections"><i class="n">10. </i>Sections</a><span class="hover-metadata"><a class="split" href="elf-hello-world/sections"></a><a href="#_toc/elf-hello-world" class="u"> ELF Hello World Tutorial</a><span class="metrics"><span class="wcntr"> 638</span><span class="dcnt"> 20</span></span></span></span></div><ul><li class="has-child"><div id="_toc/elf-hello-world/index-0-section"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#index-0-section"><i class="n">10.1. </i>Index 0 section</a><span class="hover-metadata"><a class="split" href="elf-hello-world/index-0-section"></a><a href="#_toc/elf-hello-world/sections" class="u"> Sections</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/elf-hello-world/sht-null"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#sht-null"><i class="n">10.1.1. </i><code>SHT_NULL</code></a><span class="hover-metadata"><a class="split" href="elf-hello-world/sht-null"></a><a href="#_toc/elf-hello-world/index-0-section" class="u"> Index 0 section</a></span></span></div></li></ul><li><div id="_toc/elf-hello-world/data-section"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#data-section"><i class="n">10.2. </i><code>.data</code> section</a><span class="hover-metadata"><a class="split" href="elf-hello-world/data-section"></a><a href="#_toc/elf-hello-world/sections" class="u"> Sections</a></span></span></div></li><li><div id="_toc/elf-hello-world/text-section"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#text-section"><i class="n">10.3. </i><code>.text</code> section</a><span class="hover-metadata"><a class="split" href="elf-hello-world/text-section"></a><a href="#_toc/elf-hello-world/sections" class="u"> Sections</a></span></span></div></li><li><div id="_toc/elf-hello-world/sht-strtab"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#sht-strtab"><i class="n">10.4. </i><code>SHT_STRTAB</code></a><span class="hover-metadata"><a class="split" href="elf-hello-world/sht-strtab"></a><a href="#_toc/elf-hello-world/sections" class="u"> Sections</a></span></span></div></li><li><div id="_toc/elf-hello-world/shstrtab"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#shstrtab"><i class="n">10.5. </i><code>.shstrtab</code></a><span class="hover-metadata"><a class="split" href="elf-hello-world/shstrtab"></a><a href="#_toc/elf-hello-world/sections" class="u"> Sections</a></span></span></div></li><li class="has-child"><div id="_toc/elf-hello-world/symtab"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#symtab"><i class="n">10.6. </i><code>.symtab</code></a><span class="hover-metadata"><a class="split" href="elf-hello-world/symtab"></a><a href="#_toc/elf-hello-world/sections" class="u"> Sections</a><span class="metrics"><span class="wcntr"> 107</span><span class="dcnt"> 5</span></span></span></span></div><ul><li><div id="_toc/elf-hello-world/stt-file"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#stt-file"><i class="n">10.6.1. </i><code>STT_FILE</code></a><span class="hover-metadata"><a class="split" href="elf-hello-world/stt-file"></a><a href="#_toc/elf-hello-world/symtab" class="u"> <code>.symtab</code></a></span></span></div></li><li><div id="_toc/elf-hello-world/stt-section"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#stt-section"><i class="n">10.6.2. </i><code>STT_SECTION</code></a><span class="hover-metadata"><a class="split" href="elf-hello-world/stt-section"></a><a href="#_toc/elf-hello-world/symtab" class="u"> <code>.symtab</code></a></span></span></div></li><li class="has-child"><div id="_toc/elf-hello-world/stt-notype"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#stt-notype"><i class="n">10.6.3. </i><code>STT_NOTYPE</code></a><span class="hover-metadata"><a class="split" href="elf-hello-world/stt-notype"></a><a href="#_toc/elf-hello-world/symtab" class="u"> <code>.symtab</code></a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/elf-hello-world/shn-abs"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#shn-abs"><i class="n">10.6.3.1. </i><code>SHN_ABS</code></a><span class="hover-metadata"><a class="split" href="elf-hello-world/shn-abs"></a><a href="#_toc/elf-hello-world/stt-notype" class="u"> <code>STT_NOTYPE</code></a></span></span></div></li></ul><li><div id="_toc/elf-hello-world/sht-symtab-on-the-executable"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#sht-symtab-on-the-executable"><i class="n">10.6.4. </i><code>SHT_SYMTAB</code> on the executable</a><span class="hover-metadata"><a class="split" href="elf-hello-world/sht-symtab-on-the-executable"></a><a href="#_toc/elf-hello-world/symtab" class="u"> <code>.symtab</code></a></span></span></div></li></ul><li><div id="_toc/elf-hello-world/strtab"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#strtab"><i class="n">10.7. </i><code>.strtab</code></a><span class="hover-metadata"><a class="split" href="elf-hello-world/strtab"></a><a href="#_toc/elf-hello-world/sections" class="u"> Sections</a></span></span></div></li><li class="has-child"><div id="_toc/elf-hello-world/rela-text"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#rela-text"><i class="n">10.8. </i><code>.rela.text</code></a><span class="hover-metadata"><a class="split" href="elf-hello-world/rela-text"></a><a href="#_toc/elf-hello-world/sections" class="u"> Sections</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/elf-hello-world/rel-text"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#rel-text"><i class="n">10.8.1. </i><code>.rel.text</code></a><span class="hover-metadata"><a class="split" href="elf-hello-world/rel-text"></a><a href="#_toc/elf-hello-world/rela-text" class="u"> <code>.rela.text</code></a></span></span></div></li></ul><li class="has-child"><div id="_toc/elf-hello-world/dynamic-linking-sections"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#dynamic-linking-sections"><i class="n">10.9. </i>Dynamic linking sections</a><span class="hover-metadata"><a class="split" href="elf-hello-world/dynamic-linking-sections"></a><a href="#_toc/elf-hello-world/sections" class="u"> Sections</a><span class="metrics"><span class="wcntr"> 45</span><span class="dcnt"> 4</span></span></span></span></div><ul><li><div id="_toc/elf-hello-world/pt-interp"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#pt-interp"><i class="n">10.9.1. </i><code>PT_INTERP</code></a><span class="hover-metadata"><a class="split" href="elf-hello-world/pt-interp"></a><a href="#_toc/elf-hello-world/dynamic-linking-sections" class="u"> Dynamic linking sections</a></span></span></div></li><li class="has-child"><div id="_toc/elf-hello-world/dynamic-section"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#dynamic-section"><i class="n">10.9.2. </i>Dynamic section</a><span class="hover-metadata"><a class="split" href="elf-hello-world/dynamic-section"></a><a href="#_toc/elf-hello-world/dynamic-linking-sections" class="u"> Dynamic linking sections</a><span class="metrics"><span class="wcntr"> 38</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/elf-hello-world/dt-flags-1"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#dt-flags-1"><i class="n">10.9.2.1. </i><code>DT_FLAGS_1</code></a><span class="hover-metadata"><a class="split" href="elf-hello-world/dt-flags-1"></a><a href="#_toc/elf-hello-world/dynamic-section" class="u"> Dynamic section</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/elf-hello-world/df-1-pie"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#df-1-pie"><i class="n">10.9.2.1.1. </i><code>DF_1_PIE</code></a><span class="hover-metadata"><a class="split" href="elf-hello-world/df-1-pie"></a><a href="#_toc/elf-hello-world/dt-flags-1" class="u"> <code>DT_FLAGS_1</code></a></span></span></div></li></ul></li></ul></li></ul></li></ul><li><div id="_toc/elf-hello-world/program-header-table"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#program-header-table"><i class="n">11. </i>Program header table</a><span class="hover-metadata"><a class="split" href="elf-hello-world/program-header-table"></a><a href="#_toc/elf-hello-world" class="u"> ELF Hello World Tutorial</a></span></span></div></li><li><div id="_toc/elf-hello-world/backlinks"><div class="arrow"><div></div></div><span class="not-arrow"><a href="elf-hello-world#backlinks"><i class="n">12. </i>Backlinks</a><span class="hover-metadata"><a class="split" href="elf-hello-world/backlinks"></a><a href="#_toc/elf-hello-world" class="u"> ELF Hello World Tutorial</a></span></span></div></li></ul></li></ul></li></ul><li><div id="_toc/molecular-biology-feels-like-systems-programming"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#molecular-biology-feels-like-systems-programming">Molecular biology feels like systems programming</a><span class="hover-metadata"><a class="split" href="molecular-biology-feels-like-systems-programming"></a><a href="#_toc/systems-programming" class="u"> Systems programming</a></span></span></div></li><li class="has-child"><div id="_toc/virtualization"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#virtualization">Virtualization</a><span class="hover-metadata"><a class="split" href="virtualization"></a><a href="#_toc/systems-programming" class="u"> Systems programming</a><span class="metrics"><span class="wcntr"> 166</span><span class="dcnt"> 8</span></span></span></span></div><ul><li><div id="_toc/docker-software"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#docker-software">Docker <span class="meta">(software)</span></a><span class="hover-metadata"><a class="split" href="docker-software"></a><a href="#_toc/virtualization" class="u"> Virtualization</a></span></span></div></li><li class="has-child"><div id="_toc/emulator"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#emulator">Emulator</a><span class="hover-metadata"><a class="split" href="emulator"></a><a href="#_toc/virtualization" class="u"> Virtualization</a><span class="metrics"><span class="wcntr"> 132</span><span class="dcnt"> 6</span></span></span></span></div><ul><li><div id="_toc/gem5"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#gem5">gem5</a><span class="hover-metadata"><a class="split" href="gem5"></a><a href="#_toc/emulator" class="u"> Emulator</a></span></span></div></li><li class="has-child"><div id="_toc/qemu"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#qemu">QEMU</a><span class="hover-metadata"><a class="split" href="qemu"></a><a href="#_toc/emulator" class="u"> Emulator</a><span class="metrics"><span class="wcntr"> 16</span><span class="dcnt"> 4</span></span></span></span></div><ul><li><div id="_toc/user-mode-emulation"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#user-mode-emulation">User mode emulation</a><span class="hover-metadata"><a class="split" href="user-mode-emulation"></a><a href="#_toc/qemu" class="u"> QEMU</a></span></span></div></li><li class="has-child"><div id="_toc/qemu-javascript-port"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#qemu-javascript-port">QEMU JavaScript port</a><span class="hover-metadata"><a class="split" href="qemu-javascript-port"></a><a href="#_toc/qemu" class="u"> QEMU</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/qemu-js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#qemu-js">QEMU.js</a><span class="hover-metadata"><a class="split" href="qemu-js"></a><a href="#_toc/qemu-javascript-port" class="u"> QEMU JavaScript port</a></span></span></div></li></ul><li><div id="_toc/binary-translation"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#binary-translation">Binary translation</a><span class="hover-metadata"><a class="split" href="binary-translation"></a><a href="#_toc/qemu" class="u"> QEMU</a></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/systems-programmer"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#systems-programmer">Systems programmer</a><span class="hover-metadata"><a class="split" href="systems-programmer"></a><a href="#_toc/systems-programming" class="u"> Systems programming</a><span class="metrics"><span class="wcntr"> 559</span><span class="dcnt"> 8</span></span></span></span></div><ul><li><div id="_toc/the-most-awesome-systems-programmers"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#the-most-awesome-systems-programmers">The most awesome systems programmers</a><span class="hover-metadata"><a class="split" href="the-most-awesome-systems-programmers"></a><a href="#_toc/systems-programmer" class="u"> Systems programmer</a></span></span></div></li><li class="has-child"><div id="_toc/list-of-systems-programmers"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#list-of-systems-programmers">List of systems programmers</a><span class="hover-metadata"><a class="split" href="list-of-systems-programmers"></a><a href="#_toc/systems-programmer" class="u"> Systems programmer</a><span class="metrics"><span class="dcnt"> 6</span></span></span></span></div><ul><li><div id="_toc/bert-hubert"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#bert-hubert">Bert Hubert</a><span class="hover-metadata"><a class="split" href="bert-hubert"></a><a href="#_toc/list-of-systems-programmers" class="u"> List of systems programmers</a></span></span></div></li><li><div id="_toc/d-richard-hipp"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#d-richard-hipp">D. Richard Hipp <span class="meta">(Creator of SQLite)</span></a><span class="hover-metadata"><a class="split" href="d-richard-hipp"></a><a href="#_toc/list-of-systems-programmers" class="u"> List of systems programmers</a></span></span></div></li><li><div id="_toc/eli-benderski"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#eli-benderski">Eli Benderski</a><span class="hover-metadata"><a class="split" href="eli-benderski"></a><a href="#_toc/list-of-systems-programmers" class="u"> List of systems programmers</a></span></span></div></li><li><div id="_toc/fabrice-bellard"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#fabrice-bellard">Fabrice Bellard <span class="meta">(creator of QEMU and FFmpeg)</span></a><span class="hover-metadata"><a class="split" href="fabrice-bellard"></a><a href="#_toc/list-of-systems-programmers" class="u"> List of systems programmers</a></span></span></div></li><li><div id="_toc/linus-torvalds"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#linus-torvalds">Linus Torvalds</a><span class="hover-metadata"><a class="split" href="linus-torvalds"></a><a href="#_toc/list-of-systems-programmers" class="u"> List of systems programmers</a></span></span></div></li><li><div id="_toc/robert-o-callahan"><div class="arrow"><div></div></div><span class="not-arrow"><a href="systems-programming#robert-o-callahan">Robert O'Callahan</a><span class="hover-metadata"><a class="split" href="robert-o-callahan"></a><a href="#_toc/list-of-systems-programmers" class="u"> List of systems programmers</a></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/terminal-emulator"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#terminal-emulator">Terminal emulator</a><span class="hover-metadata"><a class="split" href="terminal-emulator"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 101</span><span class="dcnt"> 5</span></span></span></span></div><ul><li><div id="_toc/yakuake"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#yakuake">Yakuake</a><span class="hover-metadata"><a class="split" href="yakuake"></a><a href="#_toc/terminal-emulator" class="u"> Terminal emulator</a></span></span></div></li><li class="has-child"><div id="_toc/terminal-multiplexer"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#terminal-multiplexer">Terminal multiplexer</a><span class="hover-metadata"><a class="split" href="terminal-multiplexer"></a><a href="#_toc/terminal-emulator" class="u"> Terminal emulator</a><span class="metrics"><span class="wcntr"> 59</span><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/terminal-multiplexers-are-cli-desktop-environments"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#terminal-multiplexers-are-cli-desktop-environments">Terminal multiplexers are CLI desktop environments</a><span class="hover-metadata"><a class="split" href="terminal-multiplexers-are-cli-desktop-environments"></a><a href="#_toc/terminal-multiplexer" class="u"> Terminal multiplexer</a><span class="metrics"><span class="wcntr"> 38</span></span></span></span></div></li><li><div id="_toc/gnu-screen"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gnu-screen">GNU screen</a><span class="hover-metadata"><a class="split" href="gnu-screen"></a><a href="#_toc/terminal-multiplexer" class="u"> Terminal multiplexer</a><span class="metrics"><span class="wcntr"> 11</span></span></span></span></div></li><li><div id="_toc/tmux"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#tmux">tmux</a><span class="hover-metadata"><a class="split" href="tmux"></a><a href="#_toc/terminal-multiplexer" class="u"> Terminal multiplexer</a><span class="metrics"><span class="wcntr"> 10</span></span></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/version-control"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#version-control">Version control</a><span class="hover-metadata"><a class="split" href="version-control"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 2k</span><span class="dcnt"> 60</span></span></span></span></div><ul><li><div id="_toc/monorepo"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#monorepo">Monorepo</a><span class="hover-metadata"><a class="split" href="monorepo"></a><a href="#_toc/version-control" class="u"> Version control</a></span></span></div></li><li class="has-child"><div id="_toc/list-of-version-control-systems"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#list-of-version-control-systems">List of version control systems</a><span class="hover-metadata"><a class="split" href="list-of-version-control-systems"></a><a href="#_toc/version-control" class="u"> Version control</a><span class="metrics"><span class="wcntr"> 2k</span><span class="dcnt"> 58</span></span></span></span></div><ul><li><div id="_toc/concurrent-versions-system"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#concurrent-versions-system">Concurrent Versions System <span class="meta">(CSV)</span></a><span class="hover-metadata"><a class="split" href="concurrent-versions-system"></a><a href="#_toc/list-of-version-control-systems" class="u"> List of version control systems</a><span class="metrics"><span class="wcntr"> 63</span></span></span></span></div></li><li class="has-child"><div id="_toc/git"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#git">Git</a><span class="hover-metadata"><a class="split" href="git"></a><a href="#_toc/list-of-version-control-systems" class="u"> List of version control systems</a><span class="metrics"><span class="wcntr"> 2k</span><span class="dcnt"> 55</span></span></span></span></div><ul><li><div id="_toc/git-design-rationale"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#git-design-rationale">Git design rationale</a><span class="hover-metadata"><a class="split" href="git-design-rationale"></a><a href="#_toc/git" class="u"> Git</a><span class="metrics"><span class="wcntr"> 182</span></span></span></span></div></li><li class="has-child"><div id="_toc/git-command"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#git-command">Git command</a><span class="hover-metadata"><a class="split" href="git-command"></a><a href="#_toc/git" class="u"> Git</a><span class="metrics"><span class="wcntr"> 9</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/git-clone"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#git-clone">git clone</a><span class="hover-metadata"><a class="split" href="git-clone"></a><a href="#_toc/git-command" class="u"> Git command</a><span class="metrics"><span class="wcntr"> 9</span><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/download-a-single-directory-with-git"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#download-a-single-directory-with-git">Download a single directory with git</a><span class="hover-metadata"><a class="split" href="download-a-single-directory-with-git"></a><a href="#_toc/git-clone" class="u"> git clone</a><span class="metrics"><span class="wcntr"> 9</span></span></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/git-internals"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#git-internals">Git internals</a><span class="hover-metadata"><a class="split" href="git-internals"></a><a href="#_toc/git" class="u"> Git</a><span class="metrics"><span class="dcnt"> 4</span></span></span></span></div><ul><li class="has-child"><div id="_toc/git-remote-communcation"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#git-remote-communcation">Git remote communcation</a><span class="hover-metadata"><a class="split" href="git-remote-communcation"></a><a href="#_toc/git-internals" class="u"> Git internals</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/serve-git-over-http-static-website"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#serve-git-over-http-static-website">Serve Git over HTTP static website</a><span class="hover-metadata"><a class="split" href="serve-git-over-http-static-website"></a><a href="#_toc/git-remote-communcation" class="u"> Git remote communcation</a></span></span></div></li></ul><li class="has-child"><div id="_toc/git-object"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#git-object">Git object</a><span class="hover-metadata"><a class="split" href="git-object"></a><a href="#_toc/git-internals" class="u"> Git internals</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/git-commit-object"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#git-commit-object">Git commit object</a><span class="hover-metadata"><a class="split" href="git-commit-object"></a><a href="#_toc/git-object" class="u"> Git object</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/git-ui"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#git-ui">Git UI</a><span class="hover-metadata"><a class="split" href="git-ui"></a><a href="#_toc/git" class="u"> Git</a><span class="metrics"><span class="wcntr"> 146</span><span class="dcnt"> 19</span></span></span></span></div><ul><li><div id="_toc/gitk"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gitk">gitk</a><span class="hover-metadata"><a class="split" href="gitk"></a><a href="#_toc/git-ui" class="u"> Git UI</a><span class="metrics"><span class="wcntr"> 7</span></span></span></span></div></li><li><div id="_toc/tig-git-ui"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#tig-git-ui">tig <span class="meta">(git UI)</span></a><span class="hover-metadata"><a class="split" href="tig-git-ui"></a><a href="#_toc/git-ui" class="u"> Git UI</a><span class="metrics"><span class="wcntr"> 21</span></span></span></span></div></li><li class="has-child"><div id="_toc/git-web-interface"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#git-web-interface">Git web interface</a><span class="hover-metadata"><a class="split" href="git-web-interface"></a><a href="#_toc/git-ui" class="u"> Git UI</a><span class="metrics"><span class="wcntr"> 112</span><span class="dcnt"> 16</span></span></span></span></div><ul><li class="has-child"><div id="_toc/github"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#github">GitHub</a><span class="hover-metadata"><a class="split" href="github"></a><a href="#_toc/git-web-interface" class="u"> Git web interface</a><span class="metrics"><span class="wcntr"> 94</span><span class="dcnt"> 11</span></span></span></span></div><ul><li class="has-child"><div id="_toc/github-repo"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#github-repo">GitHub repo</a><span class="hover-metadata"><a class="split" href="github-repo"></a><a href="#_toc/github" class="u"> GitHub</a><span class="metrics"><span class="wcntr"> 17</span><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/github-book-repo"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#github-book-repo">GitHub book repo</a><span class="hover-metadata"><a class="split" href="github-book-repo"></a><a href="#_toc/github-repo" class="u"> GitHub repo</a><span class="metrics"><span class="wcntr"> 17</span></span></span></span></div></li><li><div id="_toc/github-awesome-repo"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#github-awesome-repo">GitHub awesome repo</a><span class="hover-metadata"><a class="split" href="github-awesome-repo"></a><a href="#_toc/github-repo" class="u"> GitHub repo</a></span></span></div></li></ul><li><div id="_toc/github-porn-policy"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#github-porn-policy">GitHub porn policy</a><span class="hover-metadata"><a class="split" href="github-porn-policy"></a><a href="#_toc/github" class="u"> GitHub</a></span></span></div></li><li><div id="_toc/github-users-deleted-by-github"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#github-users-deleted-by-github">GitHub users deleted by GitHub</a><span class="hover-metadata"><a class="split" href="github-users-deleted-by-github"></a><a href="#_toc/github" class="u"> GitHub</a></span></span></div></li><li><div id="_toc/github-pages"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#github-pages">GitHub Pages</a><span class="hover-metadata"><a class="split" href="github-pages"></a><a href="#_toc/github" class="u"> GitHub</a><span class="metrics"><span class="wcntr"> 31</span></span></span></span></div></li><li class="has-child"><div id="_toc/github-sponsors"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#github-sponsors">GitHub Sponsors</a><span class="hover-metadata"><a class="split" href="github-sponsors"></a><a href="#_toc/github" class="u"> GitHub</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/who-are-the-developers-that-are-making-the-most-money-through-github-sponsors"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#who-are-the-developers-that-are-making-the-most-money-through-github-sponsors">Who are the developers that are making the most money through GitHub sponsors?</a><span class="hover-metadata"><a class="split" href="who-are-the-developers-that-are-making-the-most-money-through-github-sponsors"></a><a href="#_toc/github-sponsors" class="u"> GitHub Sponsors</a></span></span></div></li></ul><li><div id="_toc/pull-request"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#pull-request">Pull request</a><span class="hover-metadata"><a class="split" href="pull-request"></a><a href="#_toc/github" class="u"> GitHub</a><span class="metrics"><span class="wcntr"> 5</span></span></span></span></div></li><li class="has-child"><div id="_toc/octokat-js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#octokat-js">Octokat.js</a><span class="hover-metadata"><a class="split" href="octokat-js"></a><a href="#_toc/github" class="u"> GitHub</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/octokit-js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#octokit-js">octokit.js</a><span class="hover-metadata"><a class="split" href="octokit-js"></a><a href="#_toc/octokat-js" class="u"> Octokat.js</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/gitlab"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gitlab">GitLab</a><span class="hover-metadata"><a class="split" href="gitlab"></a><a href="#_toc/git-web-interface" class="u"> Git web interface</a><span class="metrics"><span class="wcntr"> 17</span><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/gitlab-ci"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gitlab-ci">GitLab CI</a><span class="hover-metadata"><a class="split" href="gitlab-ci"></a><a href="#_toc/gitlab" class="u"> GitLab</a></span></span></div></li><li><div id="_toc/gitlab-cookbook"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#gitlab-cookbook">GitLab cookbook</a><span class="hover-metadata"><a class="split" href="gitlab-cookbook"></a><a href="#_toc/gitlab" class="u"> GitLab</a></span></span></div></li></ul><li><div id="_toc/sourceforge"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#sourceforge">SourceForge</a><span class="hover-metadata"><a class="split" href="sourceforge"></a><a href="#_toc/git-web-interface" class="u"> Git web interface</a><span class="metrics"><span class="wcntr"> 1</span></span></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/git-tips"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips">Git tips</a><span class="hover-metadata"><a class="split" href="git-tips-split"></a><a href="#_toc/git" class="u"> Git</a><span class="metrics"><span class="wcntr"> 1k</span><span class="dcnt"> 20</span></span></span></span></div><ul><li><div id="_toc/git-tips/understand-the-commit-tree"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#understand-the-commit-tree">Understand the commit tree</a><span class="hover-metadata"><a class="split" href="git-tips/understand-the-commit-tree"></a><a href="#_toc/git-tips" class="u"> Git tips</a></span></span></div></li><li><div id="_toc/git-tips/it-s-not-a-tree-it-s-actually-a-dag"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#it-s-not-a-tree-it-s-actually-a-dag">It's not a tree, it's actually a DAG <span class="meta">(Directed Acyclic Graph)</span></a><span class="hover-metadata"><a class="split" href="git-tips/it-s-not-a-tree-it-s-actually-a-dag"></a><a href="#_toc/git-tips" class="u"> Git tips</a></span></span></div></li><li><div id="_toc/git-tips/why-is-git-a-dag"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#why-is-git-a-dag">Why is Git a DAG?</a><span class="hover-metadata"><a class="split" href="git-tips/why-is-git-a-dag"></a><a href="#_toc/git-tips" class="u"> Git tips</a></span></span></div></li><li><div id="_toc/git-tips/linear-history-vs-branching"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#linear-history-vs-branching">Linear history vs branching</a><span class="hover-metadata"><a class="split" href="git-tips/linear-history-vs-branching"></a><a href="#_toc/git-tips" class="u"> Git tips</a></span></span></div></li><li class="has-child"><div id="_toc/git-tips/how-to-visualize-the-commit-tree"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#how-to-visualize-the-commit-tree">How to visualize the commit tree</a><span class="hover-metadata"><a class="split" href="git-tips/how-to-visualize-the-commit-tree"></a><a href="#_toc/git-tips" class="u"> Git tips</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/git-tips/gitk"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#gitk">gitk</a><span class="hover-metadata"><a class="split" href="git-tips/gitk"></a><a href="#_toc/git-tips/how-to-visualize-the-commit-tree" class="u"> How to visualize the commit tree</a></span></span></div></li><li><div id="_toc/git-tips/git-log-graph"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#git-log-graph"><code>git log --graph</code></a><span class="hover-metadata"><a class="split" href="git-tips/git-log-graph"></a><a href="#_toc/git-tips/how-to-visualize-the-commit-tree" class="u"> How to visualize the commit tree</a></span></span></div></li></ul><li class="has-child"><div id="_toc/git-tips/how-to-modify-the-commit-tree"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#how-to-modify-the-commit-tree">How to modify the commit tree</a><span class="hover-metadata"><a class="split" href="git-tips/how-to-modify-the-commit-tree"></a><a href="#_toc/git-tips" class="u"> Git tips</a><span class="metrics"><span class="wcntr"> 188</span><span class="dcnt"> 4</span></span></span></span></div><ul><li class="has-child"><div id="_toc/git-tips/git-rebase-101"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#git-rebase-101">git rebase 101</a><span class="hover-metadata"><a class="split" href="git-tips/git-rebase-101"></a><a href="#_toc/git-tips/how-to-modify-the-commit-tree" class="u"> How to modify the commit tree</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/git-tips/move-your-branch-on-top-of-newest-master"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#move-your-branch-on-top-of-newest-master">Move your branch on top of newest master</a><span class="hover-metadata"><a class="split" href="git-tips/move-your-branch-on-top-of-newest-master"></a><a href="#_toc/git-tips/git-rebase-101" class="u"> git rebase 101</a></span></span></div></li><li><div id="_toc/git-tips/modify-contents-of-an-old-commit-in-your-branch"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#modify-contents-of-an-old-commit-in-your-branch">Modify contents of an old commit in your branch</a><span class="hover-metadata"><a class="split" href="git-tips/modify-contents-of-an-old-commit-in-your-branch"></a><a href="#_toc/git-tips/git-rebase-101" class="u"> git rebase 101</a></span></span></div></li><li><div id="_toc/git-tips/merge-two-or-more-commits-into-one"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#merge-two-or-more-commits-into-one">Merge two or more commits into one</a><span class="hover-metadata"><a class="split" href="git-tips/merge-two-or-more-commits-into-one"></a><a href="#_toc/git-tips/git-rebase-101" class="u"> git rebase 101</a></span></span></div></li></ul></li></ul><li><div id="_toc/git-tips/oh-but-there-are-2-trees-local-and-remote"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#oh-but-there-are-2-trees-local-and-remote">Oh, but there are 2 trees: local and remote</a><span class="hover-metadata"><a class="split" href="git-tips/oh-but-there-are-2-trees-local-and-remote"></a><a href="#_toc/git-tips" class="u"> Git tips</a></span></span></div></li><li class="has-child"><div id="_toc/git-tips/merge-conflicts"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#merge-conflicts">Merge conflicts</a><span class="hover-metadata"><a class="split" href="git-tips/merge-conflicts"></a><a href="#_toc/git-tips" class="u"> Git tips</a><span class="metrics"><span class="wcntr"> 500</span><span class="dcnt"> 6</span></span></span></span></div><ul><li><div id="_toc/git-tips/git-rebase-moves-commits-one-by-one"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#git-rebase-moves-commits-one-by-one">git rebase moves commits one by one</a><span class="hover-metadata"><a class="split" href="git-tips/git-rebase-moves-commits-one-by-one"></a><a href="#_toc/git-tips/merge-conflicts" class="u"> Merge conflicts</a></span></span></div></li><li><div id="_toc/git-tips/the-key-to-solve-conflicts-see-the-two-conflicting-diffs"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#the-key-to-solve-conflicts-see-the-two-conflicting-diffs">The key to solve conflicts: see the two conflicting diffs</a><span class="hover-metadata"><a class="split" href="git-tips/the-key-to-solve-conflicts-see-the-two-conflicting-diffs"></a><a href="#_toc/git-tips/merge-conflicts" class="u"> Merge conflicts</a></span></span></div></li><li class="has-child"><div id="_toc/git-tips/conflict-resolution-tool"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#conflict-resolution-tool">Conflict resolution tool</a><span class="hover-metadata"><a class="split" href="git-tips/conflict-resolution-tool"></a><a href="#_toc/git-tips/merge-conflicts" class="u"> Merge conflicts</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/git-tips/diff3"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#diff3"><code>diff3</code></a><span class="hover-metadata"><a class="split" href="git-tips/diff3"></a><a href="#_toc/git-tips/conflict-resolution-tool" class="u"> Conflict resolution tool</a></span></span></div></li><li><div id="_toc/git-tips/git-mergetool-with-meld-or-kdiff3"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#git-mergetool-with-meld-or-kdiff3"><code>git mergetool</code> with <code>meld</code> or <code>kdiff3</code></a><span class="hover-metadata"><a class="split" href="git-tips/git-mergetool-with-meld-or-kdiff3"></a><a href="#_toc/git-tips/conflict-resolution-tool" class="u"> Conflict resolution tool</a></span></span></div></li><li><div id="_toc/git-tips/but-which-commit-from-master-did-we-conflict-with-exactly"><div class="arrow"><div></div></div><span class="not-arrow"><a href="git-tips#but-which-commit-from-master-did-we-conflict-with-exactly">But which commit from master did we conflict with exactly?</a><span class="hover-metadata"><a class="split" href="git-tips/but-which-commit-from-master-did-we-conflict-with-exactly"></a><a href="#_toc/git-tips/conflict-resolution-tool" class="u"> Conflict resolution tool</a></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/git-implementation"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#git-implementation">Git implementation</a><span class="hover-metadata"><a class="split" href="git-implementation"></a><a href="#_toc/git" class="u"> Git</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/libgit2"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#libgit2">libgit2</a><span class="hover-metadata"><a class="split" href="libgit2"></a><a href="#_toc/git-implementation" class="u"> Git implementation</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/libgit2-rugged"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#libgit2-rugged">libgit2/rugged</a><span class="hover-metadata"><a class="split" href="libgit2-rugged"></a><a href="#_toc/libgit2" class="u"> libgit2</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/git-bibliography"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#git-bibliography">Git bibliography</a><span class="hover-metadata"><a class="split" href="git-bibliography"></a><a href="#_toc/git" class="u"> Git</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/pro-git-book"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#pro-git-book">Pro Git book</a><span class="hover-metadata"><a class="split" href="pro-git-book"></a><a href="#_toc/git-bibliography" class="u"> Git bibliography</a></span></span></div></li></ul></li></ul><li><div id="_toc/perforce"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#perforce">Perforce</a><span class="hover-metadata"><a class="split" href="perforce"></a><a href="#_toc/list-of-version-control-systems" class="u"> List of version control systems</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/web-technology"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology">Web technology</a><span class="hover-metadata"><a class="split" href="web-technology-split"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="wcntr"> 3k</span><span class="dcnt"> 73</span></span></span></span></div><ul><li class="has-child"><div id="_toc/world-wide-web"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#world-wide-web">World Wide Web</a><span class="hover-metadata"><a class="split" href="world-wide-web"></a><a href="#_toc/web-technology" class="u"> Web technology</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/world-wide-web-consortium"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#world-wide-web-consortium">World Wide Web Consortium</a><span class="hover-metadata"><a class="split" href="world-wide-web-consortium"></a><a href="#_toc/world-wide-web" class="u"> World Wide Web</a></span></span></div></li><li><div id="_toc/history-of-the-world-wide-web"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#history-of-the-world-wide-web">History of the World Wide Web</a><span class="hover-metadata"><a class="split" href="history-of-the-world-wide-web"></a><a href="#_toc/world-wide-web" class="u"> World Wide Web</a></span></span></div></li></ul><li><div id="_toc/webdev-s-creed"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#webdev-s-creed">Webdev's Creed</a><span class="hover-metadata"><a class="split" href="webdev-s-creed"></a><a href="#_toc/web-technology" class="u"> Web technology</a></span></span></div></li><li class="has-child"><div id="_toc/html"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#html">HTML</a><span class="hover-metadata"><a class="split" href="html"></a><a href="#_toc/web-technology" class="u"> Web technology</a><span class="metrics"><span class="wcntr"> 24</span><span class="dcnt"> 7</span></span></span></span></div><ul><li class="has-child"><div id="_toc/html-element"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#html-element">HTML element</a><span class="hover-metadata"><a class="split" href="html-element"></a><a href="#_toc/html" class="u"> HTML</a><span class="metrics"><span class="dcnt"> 6</span></span></span></span></div><ul><li class="has-child"><div id="_toc/html-canvas"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#html-canvas">HTML canvas</a><span class="hover-metadata"><a class="split" href="html-canvas"></a><a href="#_toc/html-element" class="u"> HTML element</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/webgl"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#webgl">WebGL</a><span class="hover-metadata"><a class="split" href="webgl"></a><a href="#_toc/html-canvas" class="u"> HTML canvas</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/three-js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#three-js">three.js</a><span class="hover-metadata"><a class="split" href="three-js"></a><a href="#_toc/webgl" class="u"> WebGL</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/html-details-tag"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#html-details-tag">HTML <code>details</code> tag</a><span class="hover-metadata"><a class="split" href="html-details-tag"></a><a href="#_toc/html-element" class="u"> HTML element</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/_file/html/details-toc.html"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#_file/html/details-toc.html">html/details-toc.html</a><span class="hover-metadata"><a class="split" href="_file/html/details-toc.html"></a><a href="#_toc/html-details-tag" class="u"> HTML <code>details</code> tag</a></span></span></div></li><li><div id="_toc/html-summary-tag"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#html-summary-tag">HTML <code>summary</code> tag</a><span class="hover-metadata"><a class="split" href="html-summary-tag"></a><a href="#_toc/html-details-tag" class="u"> HTML <code>details</code> tag</a></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/cascading-style-sheets"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#cascading-style-sheets">Cascading Style Sheets</a><span class="hover-metadata"><a class="split" href="cascading-style-sheets"></a><a href="#_toc/web-technology" class="u"> Web technology</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/css-flex"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#css-flex">CSS flex</a><span class="hover-metadata"><a class="split" href="css-flex"></a><a href="#_toc/cascading-style-sheets" class="u"> Cascading Style Sheets</a></span></span></div></li><li><div id="_toc/sass-stylesheet-language"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#sass-stylesheet-language">Sass <span class="meta">(stylesheet language)</span></a><span class="hover-metadata"><a class="split" href="sass-stylesheet-language"></a><a href="#_toc/cascading-style-sheets" class="u"> Cascading Style Sheets</a></span></span></div></li></ul><li><div id="_toc/javascript-browser-example"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#javascript-browser-example">JavaScript browser example</a><span class="hover-metadata"><a class="split" href="javascript-browser-example"></a><a href="#_toc/web-technology" class="u"> Web technology</a></span></span></div></li><li><div id="_toc/website-stack"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#website-stack">Website stack</a><span class="hover-metadata"><a class="split" href="website-stack"></a><a href="#_toc/web-technology" class="u"> Web technology</a></span></span></div></li><li class="has-child"><div id="_toc/asset-bundler"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#asset-bundler">Asset bundler</a><span class="hover-metadata"><a class="split" href="asset-bundler"></a><a href="#_toc/web-technology" class="u"> Web technology</a><span class="metrics"><span class="wcntr"> 299</span><span class="dcnt"> 6</span></span></span></span></div><ul><li class="has-child"><div id="_toc/webpack"><div class="arrow"><div></div></div><span class="not-arrow"><a href="webpack">webpack</a><span class="hover-metadata"><a class="split" href="webpack-split"></a><a href="#_toc/asset-bundler" class="u"> Asset bundler</a><span class="metrics"><span class="dcnt"> 5</span></span></span></span></div><ul><li><div id="_toc/_file/webpack/template"><div class="arrow"><div></div></div><span class="not-arrow"><a href="webpack#_file/webpack/template">webpack/template</a><span class="hover-metadata"><a class="split" href="_file/webpack/template"></a><a href="#_toc/webpack" class="u"> webpack</a></span></span></div></li><li><div id="_toc/_file/webpack/sass"><div class="arrow"><div></div></div><span class="not-arrow"><a href="webpack#_file/webpack/sass">webpack/sass</a><span class="hover-metadata"><a class="split" href="_file/webpack/sass"></a><a href="#_toc/webpack" class="u"> webpack</a></span></span></div></li><li><div id="_toc/_file/webpack/no-js-inject"><div class="arrow"><div></div></div><span class="not-arrow"><a href="webpack#_file/webpack/no-js-inject">webpack/no-js-inject</a><span class="hover-metadata"><a class="split" href="_file/webpack/no-js-inject"></a><a href="#_toc/webpack" class="u"> webpack</a></span></span></div></li><li><div id="_toc/webpack-sass-import"><div class="arrow"><div></div></div><span class="not-arrow"><a href="webpack#webpack-sass-import">webpack Sass import</a><span class="hover-metadata"><a class="split" href="webpack-sass-import"></a><a href="#_toc/webpack" class="u"> webpack</a></span></span></div></li><li><div id="_toc/webpack-css-ignore-font-format"><div class="arrow"><div></div></div><span class="not-arrow"><a href="webpack#webpack-css-ignore-font-format">webpack CSS ignore font format</a><span class="hover-metadata"><a class="split" href="webpack-css-ignore-font-format"></a><a href="#_toc/webpack" class="u"> webpack</a></span></span></div></li></ul></li></ul><li><div id="_toc/push-technology"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#push-technology">Push technology <span class="meta">(Bi-directional communication)</span></a><span class="hover-metadata"><a class="split" href="push-technology"></a><a href="#_toc/web-technology" class="u"> Web technology</a></span></span></div></li><li class="has-child"><div id="_toc/web-browser"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#web-browser">Web browser</a><span class="hover-metadata"><a class="split" href="web-browser"></a><a href="#_toc/web-technology" class="u"> Web technology</a><span class="metrics"><span class="wcntr"> 111</span><span class="dcnt"> 9</span></span></span></span></div><ul><li class="has-child"><div id="_toc/chromium-web-browser"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#chromium-web-browser">Chromium <span class="meta">(web browser)</span></a><span class="hover-metadata"><a class="split" href="chromium-web-browser"></a><a href="#_toc/web-browser" class="u"> Web browser</a><span class="metrics"><span class="wcntr"> 56</span><span class="dcnt"> 5</span></span></span></span></div><ul><li class="has-child"><div id="_toc/chromium-bug"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#chromium-bug">Chromium bug</a><span class="hover-metadata"><a class="split" href="chromium-bug"></a><a href="#_toc/chromium-web-browser" class="u"> Chromium</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/chromium-sometimes-freezes-due-to-autofill-on-omnibox"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#chromium-sometimes-freezes-due-to-autofill-on-omnibox">Chromium sometimes freezes due to autofill on omnibox </a><span class="hover-metadata"><a class="split" href="chromium-sometimes-freezes-due-to-autofill-on-omnibox"></a><a href="#_toc/chromium-bug" class="u"> Chromium bug</a></span></span></div></li></ul><li class="has-child"><div id="_toc/electron-software-framework"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#electron-software-framework">Electron <span class="meta">(software framework)</span></a><span class="hover-metadata"><a class="split" href="electron-software-framework"></a><a href="#_toc/chromium-web-browser" class="u"> Chromium</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/software-that-uses-electron"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#software-that-uses-electron">Software that uses Electron</a><span class="hover-metadata"><a class="split" href="software-that-uses-electron"></a><a href="#_toc/electron-software-framework" class="u"> Electron</a></span></span></div></li></ul><li><div id="_toc/disable-javascript-on-chromium"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#disable-javascript-on-chromium">Disable JavaScript on Chromium</a><span class="hover-metadata"><a class="split" href="disable-javascript-on-chromium"></a><a href="#_toc/chromium-web-browser" class="u"> Chromium</a></span></span></div></li></ul><li><div id="_toc/firefox"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#firefox">Firefox</a><span class="hover-metadata"><a class="split" href="firefox"></a><a href="#_toc/web-browser" class="u"> Web browser</a></span></span></div></li><li class="has-child"><div id="_toc/google-chrome"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#google-chrome">Google Chrome</a><span class="hover-metadata"><a class="split" href="google-chrome"></a><a href="#_toc/web-browser" class="u"> Web browser</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/chrome-android-extension"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#chrome-android-extension">Chrome Android extension</a><span class="hover-metadata"><a class="split" href="chrome-android-extension"></a><a href="#_toc/google-chrome" class="u"> Google Chrome</a></span></span></div></li></ul></li></ul><li><div id="_toc/web-development"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#web-development">Web development</a><span class="hover-metadata"><a class="split" href="web-development"></a><a href="#_toc/web-technology" class="u"> Web technology</a></span></span></div></li><li class="has-child"><div id="_toc/web-framework"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#web-framework">Web framework</a><span class="hover-metadata"><a class="split" href="web-framework"></a><a href="#_toc/web-technology" class="u"> Web technology</a><span class="metrics"><span class="wcntr"> 2k</span><span class="dcnt"> 36</span></span></span></span></div><ul><li class="has-child"><div id="_toc/hello-world-website"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#hello-world-website">Hello world website</a><span class="hover-metadata"><a class="split" href="hello-world-website"></a><a href="#_toc/web-framework" class="u"> Web framework</a><span class="metrics"><span class="wcntr"> 449</span><span class="dcnt"> 4</span></span></span></span></div><ul><li class="has-child"><div id="_toc/a-blog-in-every-web-framework"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#a-blog-in-every-web-framework">A blog in every web framework</a><span class="hover-metadata"><a class="split" href="a-blog-in-every-web-framework"></a><a href="#_toc/hello-world-website" class="u"> Hello world website</a><span class="metrics"><span class="wcntr"> 21</span><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/gothinkster-realworld"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#gothinkster-realworld">gothinkster/realworld</a><span class="hover-metadata"><a class="split" href="gothinkster-realworld"></a><a href="#_toc/a-blog-in-every-web-framework" class="u"> A blog in every web framework</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/gothinkster-realworld-implementation"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#gothinkster-realworld-implementation">gothinkster/realworld implementation</a><span class="hover-metadata"><a class="split" href="gothinkster-realworld-implementation"></a><a href="#_toc/gothinkster-realworld" class="u"> gothinkster/realworld</a></span></span></div></li></ul></li></ul><li><div id="_toc/todomvc"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#todomvc">TodoMVC</a><span class="hover-metadata"><a class="split" href="todomvc"></a><a href="#_toc/hello-world-website" class="u"> Hello world website</a></span></span></div></li></ul><li class="has-child"><div id="_toc/front-end-web-framework"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#front-end-web-framework">Front-end web framework</a><span class="hover-metadata"><a class="split" href="front-end-web-framework"></a><a href="#_toc/web-framework" class="u"> Web framework</a><span class="metrics"><span class="wcntr"> 2k</span><span class="dcnt"> 30</span></span></span></span></div><ul><li class="has-child"><div id="_toc/single-page-application"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#single-page-application">Single page application <span class="meta">(SPA)</span></a><span class="hover-metadata"><a class="split" href="single-page-application"></a><a href="#_toc/front-end-web-framework" class="u"> Front-end web framework</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li class="has-child"><div id="_toc/isomorphic-javascript"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#isomorphic-javascript">Isomorphic JavaScript</a><span class="hover-metadata"><a class="split" href="isomorphic-javascript"></a><a href="#_toc/single-page-application" class="u"> Single page application</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/server-side-rendering"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#server-side-rendering">Server-side rendering</a><span class="hover-metadata"><a class="split" href="server-side-rendering"></a><a href="#_toc/isomorphic-javascript" class="u"> Isomorphic JavaScript</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/list-of-front-end-web-frameworks"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#list-of-front-end-web-frameworks">List of front-end web frameworks</a><span class="hover-metadata"><a class="split" href="list-of-front-end-web-frameworks"></a><a href="#_toc/front-end-web-framework" class="u"> Front-end web framework</a><span class="metrics"><span class="wcntr"> 1k</span><span class="dcnt"> 26</span></span></span></span></div><ul><li><div id="_toc/angular-js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#angular-js">Angular.js</a><span class="hover-metadata"><a class="split" href="angular-js"></a><a href="#_toc/list-of-front-end-web-frameworks" class="u"> List of front-end web frameworks</a></span></span></div></li><li class="has-child"><div id="_toc/react"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react">React</a><span class="hover-metadata"><a class="split" href="react-split"></a><a href="#_toc/list-of-front-end-web-frameworks" class="u"> List of front-end web frameworks</a><span class="metrics"><span class="wcntr"> 609</span><span class="dcnt"> 22</span></span></span></span></div><ul><li><div id="_toc/react-jsx"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#react-jsx">React JSX</a><span class="hover-metadata"><a class="split" href="react-jsx"></a><a href="#_toc/react" class="u"> React</a></span></span></div></li><li class="has-child"><div id="_toc/react-error"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#react-error">React error</a><span class="hover-metadata"><a class="split" href="react-error"></a><a href="#_toc/react" class="u"> React</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/cannot-update-a-component-while-rendering-a-different-component-warning-in-react"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#cannot-update-a-component-while-rendering-a-different-component-warning-in-react">Cannot update a component while rendering a different component warning in React</a><span class="hover-metadata"><a class="split" href="cannot-update-a-component-while-rendering-a-different-component-warning-in-react"></a><a href="#_toc/react-error" class="u"> React error</a></span></span></div></li></ul><li class="has-child"><div id="_toc/react-example"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#react-example">React example</a><span class="hover-metadata"><a class="split" href="react-example"></a><a href="#_toc/react" class="u"> React</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/_file/react/hello.html"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#_file/react/hello.html">react/hello.html</a><span class="hover-metadata"><a class="split" href="_file/react/hello.html"></a><a href="#_toc/react-example" class="u"> React example</a></span></span></div></li><li><div id="_toc/_file/react/ref-twice.html"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#_file/react/ref-twice.html">react/ref-twice.html</a><span class="hover-metadata"><a class="split" href="_file/react/ref-twice.html"></a><a href="#_toc/react-example" class="u"> React example</a></span></span></div></li></ul><li class="has-child"><div id="_toc/react-dom-manipulation"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#react-dom-manipulation">React DOM manipulation</a><span class="hover-metadata"><a class="split" href="react-dom-manipulation"></a><a href="#_toc/react" class="u"> React</a><span class="metrics"><span class="dcnt"> 2</span></span></span></span></div><ul><li><div id="_toc/_file/react/ref-click-counter.html"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#_file/react/ref-click-counter.html">react/ref-click-counter.html</a><span class="hover-metadata"><a class="split" href="_file/react/ref-click-counter.html"></a><a href="#_toc/react-dom-manipulation" class="u"> React DOM manipulation</a></span></span></div></li><li><div id="_toc/_file/react/ref-click-counter-func.html"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#_file/react/ref-click-counter-func.html">react/ref-click-counter-func.html</a><span class="hover-metadata"><a class="split" href="_file/react/ref-click-counter-func.html"></a><a href="#_toc/react-dom-manipulation" class="u"> React DOM manipulation</a></span></span></div></li></ul><li class="has-child"><div id="_toc/react-class-vs-function-component"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#react-class-vs-function-component">React class vs function component</a><span class="hover-metadata"><a class="split" href="react-class-vs-function-component"></a><a href="#_toc/react" class="u"> React</a><span class="metrics"><span class="wcntr"> 20</span><span class="dcnt"> 6</span></span></span></span></div><ul><li><div id="_toc/react-class-component"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#react-class-component">React class component</a><span class="hover-metadata"><a class="split" href="react-class-component"></a><a href="#_toc/react-class-vs-function-component" class="u"> React class vs function component</a></span></span></div></li><li class="has-child"><div id="_toc/react-function-component"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#react-function-component">React function component</a><span class="hover-metadata"><a class="split" href="react-function-component"></a><a href="#_toc/react-class-vs-function-component" class="u"> React class vs function component</a><span class="metrics"><span class="wcntr"> 20</span><span class="dcnt"> 4</span></span></span></span></div><ul><li class="has-child"><div id="_toc/react-hook"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#react-hook">React hook</a><span class="hover-metadata"><a class="split" href="react-hook"></a><a href="#_toc/react-function-component" class="u"> React function component</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/useeffect"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#useeffect"><code>useEffect</code></a><span class="hover-metadata"><a class="split" href="useeffect"></a><a href="#_toc/react-hook" class="u"> React hook</a></span></span></div></li><li><div id="_toc/useref"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#useref"><code>useRef</code></a><span class="hover-metadata"><a class="split" href="useref"></a><a href="#_toc/react-hook" class="u"> React hook</a></span></span></div></li><li><div id="_toc/usecallback"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#usecallback"><code>useCallback</code></a><span class="hover-metadata"><a class="split" href="usecallback"></a><a href="#_toc/react-hook" class="u"> React hook</a></span></span></div></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/next-js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#next-js">Next.js</a><span class="hover-metadata"><a class="split" href="next-js"></a><a href="#_toc/react" class="u"> React</a><span class="metrics"><span class="wcntr"> 281</span><span class="dcnt"> 5</span></span></span></span></div><ul><li class="has-child"><div id="_toc/next-js-example"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#next-js-example">Next.js example</a><span class="hover-metadata"><a class="split" href="next-js-example"></a><a href="#_toc/next-js" class="u"> Next.js</a><span class="metrics"><span class="dcnt"> 3</span></span></span></span></div><ul><li><div id="_toc/_file/nodejs/next/posts"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#_file/nodejs/next/posts">nodejs/next/posts</a><span class="hover-metadata"><a class="split" href="_file/nodejs/next/posts"></a><a href="#_toc/next-js-example" class="u"> Next.js example</a></span></span></div></li><li><div id="_toc/_file/nodejs/next/ref-twice"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#_file/nodejs/next/ref-twice">nodejs/next/ref-twice</a><span class="hover-metadata"><a class="split" href="_file/nodejs/next/ref-twice"></a><a href="#_toc/next-js-example" class="u"> Next.js example</a></span></span></div></li><li><div id="_toc/_file/nodejs/next/inject-into-static"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#_file/nodejs/next/inject-into-static">nodejs/next/inject-into-static</a><span class="hover-metadata"><a class="split" href="_file/nodejs/next/inject-into-static"></a><a href="#_toc/next-js-example" class="u"> Next.js example</a></span></span></div></li></ul><li><div id="_toc/node-express-sequelize-next-js-realworld-example-app"><div class="arrow"><div></div></div><span class="not-arrow"><a href="react#node-express-sequelize-next-js-realworld-example-app">Node Express Sequelize Next.js realworld example app</a><span class="hover-metadata"><a class="split" href="node-express-sequelize-next-js-realworld-example-app"></a><a href="#_toc/next-js" class="u"> Next.js</a></span></span></div></li></ul></li></ul><li class="has-child"><div id="_toc/vue-js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#vue-js">Vue.js</a><span class="hover-metadata"><a class="split" href="vue-js"></a><a href="#_toc/list-of-front-end-web-frameworks" class="u"> List of front-end web frameworks</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/nuxt-js"><div class="arrow"><div></div></div><span class="not-arrow"><a href="web-technology#nuxt-js">Nuxt.js</a><span class="hover-metadata"><a class="split" href="nuxt-js"></a><a href="#_toc/vue-js" class="u"> Vue.js</a></span></span></div></li></ul></li></ul></li></ul></li></ul></li></ul><li class="has-child"><div id="_toc/software-bibliography"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#software-bibliography">Software bibliography</a><span class="hover-metadata"><a class="split" href="software-bibliography"></a><a href="#_toc" class="u"> Software</a><span class="metrics"><span class="dcnt"> 1</span></span></span></span></div><ul><li><div id="_toc/ebookfoundation-free-programming-books"><div class="arrow"><div></div></div><span class="not-arrow"><a href="#ebookfoundation-free-programming-books">EbookFoundation/free-programming-books</a><span class="hover-metadata"><a class="split" href="ebookfoundation-free-programming-books"></a><a href="#_toc/software-bibliography" class="u"> Software bibliography</a></span></span></div></li></ul></li></ul></li></ul></div><div class="h" id="the-art-of-programming"><div class="notnav"><h2><a href="the-art-of-programming">The art of programming</a></h2><span class="hover-meta"> <a class="split" href="the-art-of-programming"></a><span class="metrics"><span class="wcntr"> Words: 34</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/the-art-of-programming" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/the-art-of-programming"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="ciro-santilli#essays-by-ciro-santilli">Essays by Ciro Santilli</a></span></div></nav></div><div class="p" id="_2">Big goals:<div class="list"><ul id="_3"><li id="_4">the pursuit of <a href="artificial-intelligence#artificial-general-intelligence">AGI</a></li><li id="_5"><a href="physics#computational-physics">physics simulations</a>, including <a href="#scientific-visualization-software">scientific visualization software</a></li><li id="_6"><a href="formalization-of-mathematics">formalization of mathematics</a></li></ul></div></div><div class="p" id="_7">Just <a href="art">art</a>:<div class="list"><ul id="_8"><li id="_9">useless mathy stuff</li><li id="_10">incredibly nifty little tools that are just so satisfying to use it is mind blowing:<div class="list"><ul id="_11"><li id="_12"><a href="#ncdu">ncdu</a></li><li id="_13"><a href="#gnu-parallel">GNU parallel</a></li></ul></div></li><li id="_14">media related stuff<div class="list"><ul id="_15"><li id="_16"><a href="#ffmpeg">FFmpeg</a> one liners!</li></ul></div></li></ul></div></div><div class="h" id="build-automation"><div class="notnav"><h2><a href="build-automation">Build automation</a></h2><span class="hover-meta"> <a class="split" href="build-automation"></a><span class="metrics"><span class="wcntr"> Words: 25</span><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/build-automation" class="toc"></a><a href="https://en.wikipedia.org/wiki/Build_automation" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/build-automation"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="cmake"><div class="notnav"><h3><a href="cmake">CMake</a></h3><span class="hover-meta"> <a class="split" href="cmake"></a><span class="metrics"><span class="wcntr"> Words: 25</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#build-automation" class="u"> Build automation</a><a href="#_toc/cmake" class="toc"></a><a href="https://en.wikipedia.org/wiki/CMake" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/cmake"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_17">Examples under <a href="_dir/cmake">cmake</a>:<div class="list"><ul id="_18"><li id="_19"><a href="_dir/cmake/hello">cmake/hello</a>: just print a message in CMake itself and exit. No compilation.</li><li id="_20"><a href="_dir/cmake/hello_c">cmake/hello_c</a>: C hello world</li><li id="_21"><a href="_dir/cmake/option">cmake/option</a>: <code>set()</code> and <code>option()</code> basic examples</li><li id="_22"><a href="_dir/cmake/multi_executable">cmake/multi_executable</a></li><li id="_23"><a href="_dir/cmake/multi_file">cmake/multi_file</a></li><li id="_24"><a href="_dir/cmake/multi_file_recursive">cmake/multi_file_recursive</a></li><li id="_25"><a href="_dir/cmake/shared_lib_external">cmake/shared_lib_external</a></li></ul></div></div><div class="h" id="make-software"><div class="notnav"><h3><a href="make-software">make <span class="meta">(software)</span></a></h3><span class="hover-meta"> <a class="split" href="make-software"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#build-automation" class="u"> Build automation</a><a href="#_toc/make-software" class="toc"></a><a href="https://en.wikipedia.org/wiki/make_(software)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/make-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="gnu-make"><div class="notnav"><h4><a href="gnu-make">GNU make</a></h4><span class="hover-meta"> <a class="split" href="gnu-make"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#make-software" class="u"> make (software)</a><a href="#_toc/gnu-make" class="toc"></a><a href="https://en.wikipedia.org/wiki/GNU_make" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/gnu-make"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="#gnu-package">GNU package</a></span></div></nav></div><div class="h" id="compiler"><div class="notnav"><h2><a href="compiler">Compiler</a></h2><span class="hover-meta"> <a class="split" href="compiler"></a><span class="metrics"><span class="wcntr"> Words: 638</span><span class="dcnt"> Articles: 28</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/compiler" class="toc"></a><a href="https://en.wikipedia.org/wiki/Compiler" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/compiler"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="compiler-toolchain"><div class="notnav"><h3><a href="compiler-toolchain">Compiler toolchain</a></h3><span class="hover-meta"> <a class="split" href="compiler-toolchain"></a><span class="metrics"><span class="wcntr"> Words: 51</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#compiler" class="u"> Compiler</a><a href="#_toc/compiler-toolchain" class="toc"></a><a href="https://en.wikipedia.org/wiki/Compiler_toolchain" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/compiler-toolchain"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_27"><a href="#compiler">Compiler</a> + other closely related crap like <a href="#linker-computing">linker</a>.</div><div class="h" id="linker-computing"><div class="notnav"><h4><a href="linker-computing">Linker <span class="meta">(computing)</span></a></h4><span class="hover-meta"> <a class="split" href="linker-computing"></a><span class="metrics"><span class="wcntr"> Words: 44</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#compiler-toolchain" class="u"> Compiler toolchain</a><a href="#_toc/linker-computing" class="toc"></a><a href="https://en.wikipedia.org/wiki/Linker_(computing)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/linker-computing"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_28">Some <a href="#linker-computing">linker</a> related answers by <a href="ciro-santilli">Ciro Santilli</a>:<div class="list"><ul id="_29"><li id="_30"><a href="https://stackoverflow.com/questions/3322911/what-do-linkers-do/33690144#33690144">How do linkers and address relocation work?</a></li><li id="_31"><a href="https://stackoverflow.com/questions/29391965/what-is-partial-linking-in-gnu-linker/53959624#53959624">What is incremental linking or partial linking?</a></li><li id="_32"><a href="https://stackoverflow.com/questions/3476093/replacing-ld-with-gold-any-experience/53921263#53921263">GOLD (<code>-fuse-ld=gold</code>) linker vs the traditional GNU ld and LLVM ldd</a></li><li id="_33"><a href="https://stackoverflow.com/questions/2463150/what-is-the-fpie-option-for-position-independent-executables-in-gcc-and-ld/51308031#51308031">What is the -fPIE option for position-independent executables in GCC and ld?</a></li></ul></div></div><div class="h" id="binutils"><div class="notnav"><h3><a href="binutils">Binutils</a></h3><span class="hover-meta"> <a class="split" href="binutils"></a><span class="metrics"><span class="wcntr"> Words: 4</span><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#compiler" class="u"> Compiler</a><a href="#_toc/binutils" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/binutils"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="binutils-utility"><div class="notnav"><h4><a href="binutils-utility">Binutils utility</a></h4><span class="hover-meta"> <a class="split" href="binutils-utility"></a><span class="metrics"><span class="wcntr"> Words: 4</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#binutils" class="u"> Binutils</a><a href="#_toc/binutils-utility" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/binutils-utility"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="strings-binutils"><div class="notnav"><h5><a href="strings-binutils">strings <span class="meta">(Binutils)</span></a></h5><span class="hover-meta"> <a class="split" href="strings-binutils"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#binutils-utility" class="u"> Binutils utility</a><a href="#_toc/strings-binutils" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/strings-binutils"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="h" id="find-utf-8-strings-with-binutils-strings-binutils"><div class="notnav"><h5><a href="find-utf-8-strings-with-binutils-strings-binutils">Find UTF-8 strings with Binutils <code>strings</code> <span class="meta">(Binutils)</span></a></h5><span class="hover-meta"> <a class="split" href="find-utf-8-strings-with-binutils-strings-binutils"></a><span class="metrics"><span class="wcntr"> Words: 4</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#binutils-utility" class="u"> Binutils utility</a><a href="#_toc/find-utf-8-strings-with-binutils-strings-binutils" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/find-utf-8-strings-with-binutils-strings-binutils"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="p" id="_36">Not possible it seems:<div class="list"><ul id="_37"><li id="_38"><a href="https://lists.gnu.org/archive/html/bug-binutils/2009-03/msg00140.html">lists.gnu.org/archive/html/bug-binutils/2009-03/msg00140.html</a></li><li id="_39"><a href="https://sourceware.org/bugzilla/show_bug.cgi?id=27551">sourceware.org/bugzilla/show_bug.cgi?id=27551</a></li><li id="_40"><a href="https://stackoverflow.com/questions/17470569/is-there-strings-command-for-utf-8">stackoverflow.com/questions/17470569/is-there-strings-command-for-utf-8</a></li><li id="_41"><a href="https://stackoverflow.com/questions/7863986/gnu-binutils-strings-utf-8-instead-of-utf-16-or-ascii">stackoverflow.com/questions/7863986/gnu-binutils-strings-utf-8-instead-of-utf-16-or-ascii</a></li></ul></div></div><div class="h" id="automatic-programming"><div class="notnav"><h3><a href="automatic-programming">Automatic programming</a></h3><span class="hover-meta"> <a class="split" href="automatic-programming"></a><span class="metrics"><span class="wcntr"> Words: 398</span><span class="dcnt"> Articles: 7</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#compiler" class="u"> Compiler</a><a href="#_toc/automatic-programming" class="toc"></a><a href="https://en.wikipedia.org/wiki/Automatic_programming" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/automatic-programming"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_42">We use the term "automatic programming" to mean "generating code from <a href="linguistics#natural-language">natural language</a>".</div><div class="p" id="_43">The ultimate high level of which is of course to program with:<div><blockquote id="_44">computer, make <a href="social-technology#money">money</a></blockquote></div>which is basically the goal of <a href="artificial-intelligence#artificial-general-intelligence">artificial general intelligence</a>, especially according to <a href="artificial-intelligence#the-employment-test">The Employment Test</a> definition of <a href="artificial-intelligence#artificial-general-intelligence">AGI</a>.</div><div class="p" id="_45">The term has not always had that sense:<div><blockquote id="_46">automatic programming has always been a euphemism for programming in a higher-level language than was then available to the programmer</blockquote></div>sums it up.</div><div class="p" id="_47">But in the current <a href="artificial-intelligence#ai-boom">AI boom</a>, this is the sense that matters, so that's what we will go with.</div><div class="p" id="_48">Bibliography:<div class="list"><ul id="_49"><li id="_50"><a href="https://www.reddit.com/r/LocalLLaMA/comments/1d25arj/a_coding_llm_that_actually_tries_to_compile_andor/">www.reddit.com/r/LocalLLaMA/comments/1d25arj/a_coding_llm_that_actually_tries_to_compile_andor/</a></li></ul></div></div><div class="h" id="ai-code-generation-framework-that-tries-to-run-code"><div class="notnav"><h4><a href="ai-code-generation-framework-that-tries-to-run-code">AI code generation framework that tries to run code</a></h4><span class="hover-meta"> <a class="split" href="ai-code-generation-framework-that-tries-to-run-code"></a><span class="metrics"><span class="wcntr"> Words: 21</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#automatic-programming" class="u"> Automatic programming</a><a href="#_toc/ai-code-generation-framework-that-tries-to-run-code" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/ai-code-generation-framework-that-tries-to-run-code"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="list"><ul id="_51"><li id="_52">OpenAI's GPT-4-turbo can generate and run <a href="programming-language#python-programming-language">Python</a> code if it detects that the prompt would be better answered by Python, e.g. maths</li></ul></div><div class="h" id="ai-code-generation-benchmark"><div class="notnav"><h4><a href="ai-code-generation-benchmark">AI code generation benchmark</a></h4><span class="hover-meta"> <a class="split" href="ai-code-generation-benchmark"></a><span class="metrics"><span class="wcntr"> Words: 288</span><span class="dcnt"> Articles: 5</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#automatic-programming" class="u"> Automatic programming</a><a href="#_toc/ai-code-generation-benchmark" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/ai-code-generation-benchmark"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_53">Bibliography:<div class="list"><ul id="_54"><li id="_55"><a href="https://www.reddit.com/r/LocalLLaMA/comments/1e4unuz/any_up_to_date_benchmarking_sites_for_coding_llms/">www.reddit.com/r/LocalLLaMA/comments/1e4unuz/any_up_to_date_benchmarking_sites_for_coding_llms/</a></li></ul></div></div><div class="h" id="can-ai-code"><div class="notnav"><h5><a href="can-ai-code">Can AI code</a></h5><span class="hover-meta"> <a class="split" href="can-ai-code"></a><span class="metrics"><span class="wcntr"> Words: 11</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ai-code-generation-benchmark" class="u"> AI code generation benchmark</a><a href="#_toc/can-ai-code" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/can-ai-code"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="list"><ul id="_56"><li id="_57"><a href="https://github.com/the-crypt-keeper/can-ai-code">github.com/the-crypt-keeper/can-ai-code</a></li><li id="_58"><a href="https://huggingface.co/spaces/mike-ravkine/can-ai-code-results">huggingface.co/spaces/mike-ravkine/can-ai-code-results</a></li></ul></div><div class="p" id="_59">Appears to be a very small number of newly created problems?</div><div class="h" id="humaneval"><div class="notnav"><h5><a href="humaneval">HumanEval <span class="meta">(2021)</span></a></h5><span class="hover-meta"> <a class="split" href="humaneval"></a><span class="metrics"><span class="wcntr"> Words: 200</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ai-code-generation-benchmark" class="u"> AI code generation benchmark</a><a href="#_toc/humaneval" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/humaneval"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="artificial-intelligence#openai-project">OpenAI project</a></span></div></nav></div><div class="list"><ul id="_62"><li id="_63"><a href="https://github.com/openai/human-eval">github.com/openai/human-eval</a></li><li id="_64"><a href="https://arxiv.org/abs/2107.03374">arxiv.org/abs/2107.03374</a></li></ul></div><div class="p" id="_65">The tests are present in a gzip inside the Git repo: <a href="https://github.com/openai/human-eval/blob/master/data/HumanEval.jsonl.gz">github.com/openai/human-eval/blob/master/data/HumanEval.jsonl.gz</a> these researchers.</div><div class="p" id="_66">To get a quick overview of the problems with <a href="computer#jq">jq</a>:<div class="code" id="_67"><div><pre><code>jq -r '"==== \(.task_id) \(.entry_point)\n\(.prompt)"' &lt;HumanEval.jsonl </code></pre></div></div></div><div class="p" id="_68">The first two problems are:<div class="code" id="_69"><div><pre><code>==== HumanEval/0 has_close_elements from typing import List def has_close_elements(numbers: List[float], threshold: float) -&gt; bool: """ Check if in given list of numbers, are any two numbers closer to each other than given threshold. &gt;&gt;&gt; has_close_elements([1.0, 2.0, 3.0], 0.5) False &gt;&gt;&gt; has_close_elements([1.0, 2.8, 3.0, 4.0, 5.0, 2.0], 0.3) True """ ==== HumanEval/1 separate_paren_groups from typing import List def separate_paren_groups(paren_string: str) -&gt; List[str]: """ Input to this function is a string containing multiple groups of nested parentheses. Your goal is to separate those group into separate strings and return the list of those. Separate groups are balanced (each open brace is properly closed) and not nested within each other Ignore any spaces in the input string. &gt;&gt;&gt; separate_paren_groups('( ) (( )) (( )( ))') ['()', '(())', '(()())'] """</code></pre></div></div>so we understand that it takes as input an empty function with a docstring and you have to fill the function body.</div><div class="p" id="_70">The paper also shows that there can be other defined functions besides the one you have to implement.</div><div class="h" id="bigcodebench"><div class="notnav"><h5><a href="bigcodebench">BigCodeBench <span class="meta">(2024)</span></a></h5><span class="hover-meta"> <a class="split" href="bigcodebench"></a><span class="metrics"><span class="wcntr"> Words: 44</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ai-code-generation-benchmark" class="u"> AI code generation benchmark</a><a href="#_toc/bigcodebench" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/bigcodebench"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="list"><ul id="_72"><li id="_73"><a href="https://github.com/bigcode-project/bigcodebench">github.com/bigcode-project/bigcodebench</a></li><li id="_74"><a href="https://bigcode-bench.github.io/">bigcode-bench.github.io/</a></li><li id="_75"><a href="https://arxiv.org/abs/2406.15877">arxiv.org/abs/2406.15877</a></li></ul></div><div class="p" id="_76">Their most interesting subset, the <code>-hard</code> one, appears to be present at: <a href="https://huggingface.co/datasets/bigcode/bigcodebench-hard">huggingface.co/datasets/bigcode/bigcodebench-hard</a> in Parquet format. OMG why.</div><div class="p" id="_77">The tests make free usage of the <a href="programming-language#python-standard-library">Python standard library</a> and other major external libraries, e.g. <a href="https://huggingface.co/datasets/bigcode/bigcodebench-hard/viewer/default/v0.1.0_hf?views%5B%5D=v010_hf&amp;row=0">huggingface.co/datasets/bigcode/bigcodebench-hard/viewer/default/v0.1.0_hf?views%5B%5D=v010_hf&amp;row=0</a> uses FTPlib. Kind of cool.</div><div class="p" id="_78">They even test graph plotting? <a href="https://huggingface.co/datasets/bigcode/bigcodebench-hard/viewer/default/v0.1.0_hf?views%5B%5D=v010_hf&amp;row=11">huggingface.co/datasets/bigcode/bigcodebench-hard/viewer/default/v0.1.0_hf?views%5B%5D=v010_hf&amp;row=11</a> How does it evaluate?</div><div class="h" id="swe-bench"><div class="notnav"><h5><a href="swe-bench">SWE-bench <span class="meta">(2024)</span></a></h5><span class="hover-meta"> <a class="split" href="swe-bench"></a><span class="metrics"><span class="wcntr"> Words: 29</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ai-code-generation-benchmark" class="u"> AI code generation benchmark</a><a href="#_toc/swe-bench" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/swe-bench"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_80"><a href="https://www.swebench.com/">www.swebench.com/</a></div><div class="p" id="_81">By <a href="university#princeton-university">Princeton</a> people.</div><div class="p" id="_82">This one aims to solve <a href="#github">GitHub</a> issues. It appears to contain 2,294 real-world GitHub issues and their corresponding pull requests</div><div class="p" id="_83">The dataset appears to be at: <a href="https://huggingface.co/datasets/princeton-nlp/SWE-bench">huggingface.co/datasets/princeton-nlp/SWE-bench</a> in <a href="computer#apache-parquet">Parquet</a> format.</div><div class="h" id="swe-lancer"><div class="notnav"><h5><a href="swe-lancer">SWE-Lancer <span class="meta">(2025)</span></a></h5><span class="hover-meta"> <a class="split" href="swe-lancer"></a><span class="metrics"><span class="wcntr"> Words: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ai-code-generation-benchmark" class="u"> AI code generation benchmark</a><a href="#_toc/swe-lancer" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/swe-lancer"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="artificial-intelligence#openai-project">OpenAI project</a></span></div></nav></div><div class="list"><ul id="_86"><li id="_87"><a href="https://openai.com/index/swe-lancer/">openai.com/index/swe-lancer/</a></li><li id="_88"><a href="https://github.com/openai/SWELancer-Benchmark">github.com/openai/SWELancer-Benchmark</a></li></ul></div><div class="p" id="_89">Tasks from <a href="https://ourbigbook.com/go/topic/upwork">Upwork</a>.</div><div class="h" id="lowering-and-raising"><div class="notnav"><h3><a href="lowering-and-raising">Lowering and raising</a></h3><span class="hover-meta"> <a class="split" href="lowering-and-raising"></a><span class="metrics"><span class="wcntr"> Words: 24</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#compiler" class="u"> Compiler</a><a href="#_toc/lowering-and-raising" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/lowering-and-raising"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_90">Lowering means translating to a lower level representation.</div><div class="p" id="_91">Raising means translating to a higher level representation.</div><div class="p" id="_92"><a href="#decompiler">Decompilation</a> is basically a synonym, or subset, of raising.</div><div class="h" id="lower-compilation"><div class="notnav"><h4><a href="lower-compilation">Lower <span class="meta">(compilation)</span></a></h4><span class="hover-meta"> <a class="split" href="lower-compilation"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#lowering-and-raising" class="u"> Lowering and raising</a><a href="#_toc/lower-compilation" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/lower-compilation"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="decompiler"><div class="notnav"><h4><a href="decompiler">Decompiler</a></h4><span class="hover-meta"> <a class="split" href="decompiler"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#lowering-and-raising" class="u"> Lowering and raising</a><a href="#_toc/decompiler" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/decompiler"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="technology#reverse-engineering">Reverse engineering</a></span></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="video-game#video-game-reverse-engineering">Video game reverse engineering</a></li></ul></div></div><div class="h" id="list-of-compilers"><div class="notnav"><h3><a href="list-of-compilers">List of compilers</a></h3><span class="hover-meta"> <a class="split" href="list-of-compilers"></a><span class="metrics"><span class="wcntr"> Words: 146</span><span class="dcnt"> Articles: 8</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#compiler" class="u"> Compiler</a><a href="#_toc/list-of-compilers" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/list-of-compilers"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="gnu-compiler-collection"><div class="notnav"><h4><a href="gnu-compiler-collection">GNU Compiler Collection <span class="meta">(gcc)</span></a></h4><span class="hover-meta"> <a class="split" href="gnu-compiler-collection"></a><span class="metrics"><span class="wcntr"> Words: 11</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-compilers" class="u"> List of compilers</a><a href="#_toc/gnu-compiler-collection" class="toc"></a><a href="https://en.wikipedia.org/wiki/GNU_Compiler_Collection" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/gnu-compiler-collection"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="#gnu-package">GNU package</a></span></div></nav></div><div class="h" id="gcc-cli-option"><div class="notnav"><h5><a href="gcc-cli-option">gcc CLI option</a></h5><span class="hover-meta"> <a class="split" href="gcc-cli-option"></a><span class="metrics"><span class="wcntr"> Words: 11</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#gnu-compiler-collection" class="u"> GNU Compiler Collection</a><a href="#_toc/gcc-cli-option" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/gcc-cli-option"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="gcc-save-temps"><div class="notnav"><h6><a href="gcc-save-temps">gcc <code>-save-temps</code></a></h6><span class="hover-meta"> <a class="split" href="gcc-save-temps"></a><span class="metrics"><span class="wcntr"> Words: 11</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#gcc-cli-option" class="u"> gcc CLI option</a><a href="#_toc/gcc-save-temps" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/gcc-save-temps"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_96">Saves preprocessor output and generated assembly to separate files.</div><div class="list"><ul id="_97"><li id="_98">preprocessor:<div class="list"><ul id="_99"><li id="_100"><a href="https://stackoverflow.com/questions/3742822/preprocessor-output/76127046#76127046">stackoverflow.com/questions/3742822/preprocessor-output/76127046#76127046</a></li><li id="_101"><a href="https://stackoverflow.com/questions/985403/seeing-expanded-c-macros/60816758#60816758">stackoverflow.com/questions/985403/seeing-expanded-c-macros/60816758#60816758</a></li><li id="_102"><a href="https://stackoverflow.com/questions/4900870/can-gcc-output-c-code-after-preprocessing/55477371#55477371">stackoverflow.com/questions/4900870/can-gcc-output-c-code-after-preprocessing/55477371#55477371</a></li></ul></div></li><li id="_103">assembly:<div class="list"><ul id="_104"><li id="_105"><a href="https://stackoverflow.com/questions/137038/how-do-you-get-assembler-output-from-c-c-source-in-gcc/56801917#56801917">stackoverflow.com/questions/137038/how-do-you-get-assembler-output-from-c-c-source-in-gcc/56801917#56801917</a></li></ul></div></li></ul></div><div class="h" id="llvm"><div class="notnav"><h4><a href="llvm">LLVM</a></h4><span class="hover-meta"> <a class="split" href="llvm"></a><span class="metrics"><span class="wcntr"> Words: 135</span><span class="dcnt"> Articles: 4</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-compilers" class="u"> List of compilers</a><a href="#_toc/llvm" class="toc"></a><a href="https://en.wikipedia.org/wiki/LLVM" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/llvm"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="llvm-intermediate-representation"><div class="notnav"><h5><a href="llvm-intermediate-representation">LLVM Intermediate Representation <span class="meta">(LLVM IR)</span></a></h5><span class="hover-meta"> <a class="split" href="llvm-intermediate-representation"></a><span class="metrics"><span class="wcntr"> Words: 128</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#llvm" class="u"> LLVM</a><a href="#_toc/llvm-intermediate-representation" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/llvm-intermediate-representation"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_107">Very hot stuff! It's like <a href="computer-hardware#instruction-set-architecture">ISA</a>-portable <a href="computer-hardware#assembly-language">assembly</a>, but with <a href="programming-language#type-system">types</a>! In particular it also it deals with <a href="computer-hardware#calling-convention">calling conventions</a> for us (since it is ISA-portable). TODO: isn't that exactly what <a href="linguistics#c">C</a> does? :-) <a href="#llvm-ir-vs-c">LLVM IR vs C</a></div><div class="p" id="_108">Documentation: <a href="https://llvm.org/docs/LangRef.html">llvm.org/docs/LangRef.html</a></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="quantum-computing#quantum-intermediate-representation">Quantum Intermediate Representation</a></li></ul></div></div><div class="h" id="llvm-ir-vs-c"><div class="notnav"><h6><a href="llvm-ir-vs-c">LLVM IR vs C</a></h6><span class="hover-meta"> <a class="split" href="llvm-ir-vs-c"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#llvm-intermediate-representation" class="u"> LLVM Intermediate Representation</a><a href="#_toc/llvm-ir-vs-c" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/llvm-ir-vs-c"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="list"><ul id="_109"><li id="_110"><a href="https://www.reddit.com/r/ProgrammingLanguages/comments/72cl28/is_c_still_the_best_target_for_new_languages/">www.reddit.com/r/ProgrammingLanguages/comments/72cl28/is_c_still_the_best_target_for_new_languages/</a></li><li id="_111"><a href="https://stackoverflow.com/questions/10264635/compiler-output-language-llvm-ir-vs-c">stackoverflow.com/questions/10264635/compiler-output-language-llvm-ir-vs-c</a></li></ul></div><div class="h" id="llvm-ir-hello-world"><div class="notnav"><h6><a href="llvm-ir-hello-world">LLVM IR hello world</a></h6><span class="hover-meta"> <a class="split" href="llvm-ir-hello-world"></a><span class="metrics"><span class="wcntr"> Words: 96</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#llvm-intermediate-representation" class="u"> LLVM Intermediate Representation</a><a href="#_toc/llvm-ir-hello-world" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/llvm-ir-hello-world"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_112">Example: <a href="_raw/llvm/hello.ll">llvm/hello.ll</a> adapted from: <a href="https://llvm.org/docs/LangRef.html#module-structure">llvm.org/docs/LangRef.html#module-structure</a> but without double newline.</div><div class="p" id="_113">To execute it as mentioned at <a href="https://github.com/dfellis/llvm-hello-world">github.com/dfellis/llvm-hello-world</a> we can either use their crazy assembly interpreter, tested on <a href="systems-programming#ubuntu-22-10">Ubuntu 22.10</a>:<div class="code" id="_114"><div><pre><code>sudo apt install llvm-runtime lli hello.ll</code></pre></div></div>This seems to use <code>puts</code> from the <a href="programming-language#c-standard-library">C standard library</a>.</div><div class="p" id="_115">Or we can <a href="#lower-compilation">Lower</a> it to <a href="computer-hardware#assembly-language">assembly</a> of the local machine:<div class="code" id="_116"><div><pre><code>sudo apt install llvm llc hello.ll</code></pre></div></div>which produces:<div class="code" id="_117"><div><pre><code>hello.s</code></pre></div></div>and then we can assemble link and run with <a href="#gnu-compiler-collection">gcc</a>:<div class="code" id="_118"><div><pre><code>gcc -o hello.out hello.s -no-pie ./hello.out</code></pre></div></div>or with <a href="#clang">clang</a>:<div class="code" id="_119"><div><pre><code>clang -o hello.out hello.s -no-pie ./hello.out</code></pre></div></div><code>hello.s</code> uses the <a href="computer-hardware#gnu-assembler">GNU GAS</a> format, which <a href="#clang">clang</a> is highly compatible with, so both should work in general.</div><div class="h" id="clang"><div class="notnav"><h5><a href="clang">clang</a></h5><span class="hover-meta"> <a class="split" href="clang"></a><span class="metrics"><span class="wcntr"> Words: 7</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#llvm" class="u"> LLVM</a><a href="#_toc/clang" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/clang"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_120"><a href="#llvm">LLVM</a> front-end for <a href="linguistics#c">C</a> and related language like <a href="programming-language#c-plus-plus">C++</a> etc.</div><div class="h" id="reproducible-builds"><div class="notnav"><h3><a href="reproducible-builds">Reproducible builds</a></h3><span class="hover-meta"> <a class="split" href="reproducible-builds"></a><span class="metrics"><span class="wcntr"> Words: 15</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#compiler" class="u"> Compiler</a><a href="#_toc/reproducible-builds" class="toc"></a><a href="https://en.wikipedia.org/wiki/Reproducible_builds" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/reproducible-builds"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="p" id="_122">Reproducible builds allow anyone to verify that a <a href="computer#binary-large-object">binary large object</a> contains what it claims to contain!</div><div class="p" id="_123">Bibliography:<div class="list"><ul id="_124"><li id="_125"><a href="https://stackoverflow.com/questions/14653874/how-to-produce-deterministic-binary-output-with-g/31019307#31019307">stackoverflow.com/questions/14653874/how-to-produce-deterministic-binary-output-with-g/31019307#31019307</a></li><li id="_126"><a href="https://stackoverflow.com/questions/19511356/how-to-make-android-applications-with-reproducible-builds">stackoverflow.com/questions/19511356/how-to-make-android-applications-with-reproducible-builds</a></li></ul></div></div><div class="h" id="source-to-source-compiler"><div class="notnav"><h3><a href="source-to-source-compiler">Source-to-source compiler</a></h3><span class="hover-meta"> <a class="split" href="source-to-source-compiler"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#compiler" class="u"> Compiler</a><a href="#_toc/source-to-source-compiler" class="toc"></a><a href="https://en.wikipedia.org/wiki/Source-to-source_compiler" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/source-to-source-compiler"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="computer-aided-design"><div class="notnav"><h2><a href="computer-aided-design">Computer-aided design <span class="meta">(CAD)</span></a></h2><span class="hover-meta"> <a class="split" href="computer-aided-design"></a><span class="metrics"><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/computer-aided-design" class="toc"></a><a href="https://en.wikipedia.org/wiki/Computer-aided_design" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/computer-aided-design"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="open-source-cad-software"><div class="notnav"><h3><a href="open-source-cad-software">Open source CAD software</a></h3><span class="hover-meta"> <a class="split" href="open-source-cad-software"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-aided-design" class="u"> Computer-aided design</a><a href="#_toc/open-source-cad-software" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/open-source-cad-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="freecad"><div class="notnav"><h4><a href="freecad">FreeCAD</a></h4><span class="hover-meta"> <a class="split" href="freecad"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-source-cad-software" class="u"> Open source CAD software</a><a href="#_toc/freecad" class="toc"></a><a href="https://en.wikipedia.org/wiki/FreeCAD" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/freecad"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="graphics-software"><div class="notnav"><h2><a href="graphics-software">Graphics software</a></h2><span class="hover-meta"> <a class="split" href="graphics-software"></a><span class="metrics"><span class="wcntr"> Words: 137</span><span class="dcnt"> Articles: 12</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/graphics-software" class="toc"></a><a href="https://en.wikipedia.org/wiki/Graphics_software" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/graphics-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="computer#computer-graphics">Computer graphics</a></span></div></nav></div><div class="p" id="_129"><a href="https://en.wikipedia.org/wiki/List_of_information_graphics_software">en.wikipedia.org/wiki/List_of_information_graphics_software</a></div><div class="h" id="mathematics-illustration-software"><div class="notnav"><h3><a href="mathematics-illustration-software">Mathematics illustration software <span class="meta">(Software for drawing geometry diagrams)</span></a></h3><span class="hover-meta"> <a class="split" href="mathematics-illustration-software"></a><span class="metrics"><span class="wcntr"> Words: 21</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#graphics-software" class="u"> Graphics software</a><a href="#_toc/mathematics-illustration-software" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/mathematics-illustration-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_131">Survey by <a href="ciro-santilli">Ciro Santilli</a>: <a href="https://math.stackexchange.com/questions/1985/software-for-drawing-geometry-diagrams/3938216#3938216">math.stackexchange.com/questions/1985/software-for-drawing-geometry-diagrams/3938216#3938216</a></div><div class="p" id="_132">Many <a href="#plotting-software">plotting software</a> can be used to create <a href="mathematics">mathematics</a> illustrations. They just tend to have more data-oriented rather than explanatory-oriented output.</div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="computer#inkscape">Inkscape</a></li></ul></div></div><div class="h" id="graphics-library"><div class="notnav"><h3><a href="graphics-library">Graphics library</a></h3><span class="hover-meta"> <a class="split" href="graphics-library"></a><span class="metrics"><span class="wcntr"> Words: 116</span><span class="dcnt"> Articles: 10</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#graphics-software" class="u"> Graphics software</a><a href="#_toc/graphics-library" class="toc"></a><a href="https://en.wikipedia.org/wiki/Graphics_library" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/graphics-library"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="web-technology#three-js">Three.js</a></li></ul></div></div><div class="h" id="opengl"><div class="notnav"><h4><a href="opengl">OpenGL</a></h4><span class="hover-meta"> <a class="split" href="opengl"></a><span class="metrics"><span class="wcntr"> Words: 51</span><span class="dcnt"> Articles: 4</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#graphics-library" class="u"> Graphics library</a><a href="#_toc/opengl" class="toc"></a><a href="https://en.wikipedia.org/wiki/OpenGL" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/opengl"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="#khronos-standard">Khronos standard</a></span></div></nav></div><div class="p" id="_134"><a href="ciro-santilli">Ciro Santilli</a> has some good related articles listed under: <a href="articles">the best articles by Ciro Articles</a>.</div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="web-technology#webgl">WebGL</a></li></ul></div></div><div class="h" id="freetype-gl"><div class="notnav"><h5><a href="freetype-gl">Freetype GL</a></h5><span class="hover-meta"> <a class="split" href="freetype-gl"></a><span class="metrics"><span class="wcntr"> Words: 9</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#opengl" class="u"> OpenGL</a><a href="#_toc/freetype-gl" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/freetype-gl"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_135"><a href="https://github.com/rougier/freetype-gl">github.com/rougier/freetype-gl</a></div><div class="p" id="_136">Good library to render text in <a href="#opengl">OpenGL</a>, see also: <a href="https://stackoverflow.com/questions/8847899/opengl-how-to-draw-text-using-only-opengl-methods/36065835#36065835">stackoverflow.com/questions/8847899/opengl-how-to-draw-text-using-only-opengl-methods/36065835#36065835</a></div><div class="h" id="khronos-group"><div class="notnav"><h5><a href="khronos-group">Khronos Group</a></h5><span class="hover-meta"> <a class="split" href="khronos-group"></a><span class="metrics"><span class="wcntr"> Words: 24</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#opengl" class="u"> OpenGL</a><a href="#_toc/khronos-group" class="toc"></a><a href="https://en.wikipedia.org/wiki/Khronos_Group" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/khronos-group"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_137">The fact that they kept the standard <a href="#open-source-software">open source</a> makes them huge heroes, see also: <a href="#closed-standard">closed standard</a>.</div><div class="p" id="_138">Shame that many (most?) of their proposals just die out.</div><div class="h" id="khronos-standard"><div class="notnav"><h6><a href="khronos-standard">Khronos standard</a></h6><span class="hover-meta"> <a class="split" href="khronos-standard"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#khronos-group" class="u"> Khronos Group</a><a href="#_toc/khronos-standard" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/khronos-standard"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="computer#gltf">glTF</a></li><li><a href="#opengl">OpenGL</a></li></ul></div></div><div class="h" id="opengl-tutorial-org"><div class="notnav"><h5><a href="opengl-tutorial-org">opengl-tutorial.org</a></h5><span class="hover-meta"> <a class="split" href="opengl-tutorial-org"></a><span class="metrics"><span class="wcntr"> Words: 10</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#opengl" class="u"> OpenGL</a><a href="#_toc/opengl-tutorial-org" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/opengl-tutorial-org"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_139"><a href="https://github.com/opengl-tutorials/ogl/">github.com/opengl-tutorials/ogl/</a></div><div class="p" id="_140">Good modern <a href="#opengl">OpenGL</a> tutorial in retained mode with shaders, see also: <a href="https://stackoverflow.com/questions/6733934/what-does-immediate-mode-mean-in-opengl/36166310#36166310">stackoverflow.com/questions/6733934/what-does-immediate-mode-mean-in-opengl/36166310#36166310</a></div><div class="h" id="direct3d"><div class="notnav"><h4><a href="direct3d">Direct3D</a></h4><span class="hover-meta"> <a class="split" href="direct3d"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#graphics-library" class="u"> Graphics library</a><a href="#_toc/direct3d" class="toc"></a><a href="https://en.wikipedia.org/wiki/Direct3D" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/direct3d"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#evil">Evil</a></span></div></nav></div><div class="h" id="javascript-graphics-library"><div class="notnav"><h4><a href="javascript-graphics-library">JavaScript graphics library</a></h4><span class="hover-meta"> <a class="split" href="javascript-graphics-library"></a><span class="metrics"><span class="wcntr"> Words: 65</span><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#graphics-library" class="u"> Graphics library</a><a href="#_toc/javascript-graphics-library" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/javascript-graphics-library"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="paper-js"><div class="notnav"><h5><a href="paper-js">Paper.js</a></h5><span class="hover-meta"> <a class="split" href="paper-js"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#javascript-graphics-library" class="u"> JavaScript graphics library</a><a href="#_toc/paper-js" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/paper-js"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_142"><a href="https://github.com/paperjs/paper.js">github.com/paperjs/paper.js</a></div><div class="h" id="pixi-js"><div class="notnav"><h5><a href="pixi-js">Pixi.js</a></h5><span class="hover-meta"> <a class="split" href="pixi-js"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#javascript-graphics-library" class="u"> JavaScript graphics library</a><a href="#_toc/pixi-js" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/pixi-js"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_143"><a href="https://github.com/pixijs/pixi.js">github.com/pixijs/pixi.js</a></div><div class="h" id="two-js"><div class="notnav"><h5><a href="two-js">Two.js</a></h5><span class="hover-meta"> <a class="split" href="two-js"></a><span class="metrics"><span class="wcntr"> Words: 65</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#javascript-graphics-library" class="u"> JavaScript graphics library</a><a href="#_toc/two-js" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/two-js"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_144"><a href="https://github.com/jonobr1/two.js">github.com/jonobr1/two.js</a></div><div class="p" id="_145">Examples at: <a href="_dir/two-js/">two-js/</a>.</div><div class="p" id="_146"><a href="programming-language#javascript">JavaScript</a> library, works both on browser and headless with <a href="node-js">Node.js</a> to <a href="computer#scalable-vector-graphics">SVG</a>.</div><div class="p" id="_147">Feels good. Maybe not ultra featured, and could have more simple examples in docs, but still good.</div><div class="p" id="_148">Vs <a href="#paper-js">Paper.js</a> <a href="https://github.com/jonobr1/two.js/issues/319">github.com/jonobr1/two.js/issues/319</a></div><div class="p" id="_149">One of the main features of Two.js appears to be the fact that it can natively render to either SVG and canvas, rather than creating SVG through DOM hacks as done by other projects.</div><div class="h" id="computer-program"><div class="notnav"><h2><a href="computer-program">Computer program</a></h2><span class="hover-meta"> <a class="split" href="computer-program"></a><span class="metrics"><span class="wcntr"> Words: 9</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/computer-program" class="toc"></a><a href="https://en.wikipedia.org/wiki/Computer_program" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/computer-program"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_150">One specific <a href="">software</a> project, typically with a single <a href="systems-programming#executable-file-format">executable file format</a> entry point.</div><div class="h" id="computer-security"><div class="notnav"><h2><a href="computer-security">Computer security</a></h2><span class="hover-meta"> <a class="split" href="computer-security"></a><span class="metrics"><span class="wcntr"> Words: 405</span><span class="dcnt"> Articles: 31</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/computer-security" class="toc"></a><a href="https://en.wikipedia.org/wiki/Computer_security" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/computer-security"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_151">As mentioned at <a href="#computer-security-researcher">Section "Computer security researcher"</a>, <a href="ciro-santilli">Ciro Santilli</a> really tends to like people from this area.</div><div class="p" id="_152">Also, the type of programming Ciro used to do, <a href="systems-programming">systems programming</a>, is particularly useful to security researchers, e.g. <a href="the-most-important-projects-done-by-ciro-santilli#linux-kernel-module-cheat">Linux Kernel Module Cheat</a>.</div><div class="p" id="_153">The reason he does not go into this is that Ciro would rather fight against the more eternal <a href="physics#law-of-physics">laws of physics</a> rather than with some typo some dude at <a href="apple-inc">Apple</a> did last week and which will be patched in a month.</div><div class="h" id="exploit-computer-security"><div class="notnav"><h3><a href="exploit-computer-security">Exploit <span class="meta">(computer security)</span></a></h3><span class="hover-meta"> <a class="split" href="exploit-computer-security"></a><span class="metrics"><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-security" class="u"> Computer security</a><a href="#_toc/exploit-computer-security" class="toc"></a><a href="https://en.wikipedia.org/wiki/Exploit_(computer_security)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/exploit-computer-security"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="arbitrary-code-execution"><div class="notnav"><h4><a href="arbitrary-code-execution">Arbitrary code execution</a></h4><span class="hover-meta"> <a class="split" href="arbitrary-code-execution"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#exploit-computer-security" class="u"> Exploit (computer security)</a><a href="#_toc/arbitrary-code-execution" class="toc"></a><a href="https://en.wikipedia.org/wiki/Arbitrary_code_execution" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/arbitrary-code-execution"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="phising"><div class="notnav"><h4><a href="phising">Phising</a></h4><span class="hover-meta"> <a class="split" href="phising"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#exploit-computer-security" class="u"> Exploit (computer security)</a><a href="#_toc/phising" class="toc"></a><a href="https://en.wikipedia.org/wiki/Phising" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/phising"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="cross-site-scripting"><div class="notnav"><h4><a href="cross-site-scripting">Cross-site scripting <span class="meta">(XSS)</span></a></h4><span class="hover-meta"> <a class="split" href="cross-site-scripting"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#exploit-computer-security" class="u"> Exploit (computer security)</a><a href="#_toc/cross-site-scripting" class="toc"></a><a href="https://en.wikipedia.org/wiki/Cross-site_scripting" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/cross-site-scripting"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="computer-security-conference"><div class="notnav"><h3><a href="computer-security-conference">Computer security conference</a></h3><span class="hover-meta"> <a class="split" href="computer-security-conference"></a><span class="metrics"><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-security" class="u"> Computer security</a><a href="#_toc/computer-security-conference" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/computer-security-conference"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="def-con"><div class="notnav"><h4><a href="def-con">DEF CON <span class="meta">(1993-)</span></a></h4><span class="hover-meta"> <a class="split" href="def-con"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-security-conference" class="u"> Computer security conference</a><a href="#_toc/def-con" class="toc"></a><a href="https://en.wikipedia.org/wiki/DEF_CON" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/def-con"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="black-hat-briefings"><div class="notnav"><h5><a href="black-hat-briefings">Black Hat Briefings <span class="meta">(1997-)</span></a></h5><span class="hover-meta"> <a class="split" href="black-hat-briefings"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#def-con" class="u"> DEF CON</a><a href="#_toc/black-hat-briefings" class="toc"></a><a href="https://en.wikipedia.org/wiki/Black_Hat_Briefings" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/black-hat-briefings"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="computer-security-researcher"><div class="notnav"><h3><a href="computer-security-researcher">Computer security researcher</a></h3><span class="hover-meta"> <a class="split" href="computer-security-researcher"></a><span class="metrics"><span class="wcntr"> Words: 114</span><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-security" class="u"> Computer security</a><a href="#_toc/computer-security-researcher" class="toc"></a><a href="https://en.wikipedia.org/wiki/Computer_security_researcher" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/computer-security-researcher"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_157"><a href="ciro-santilli">Ciro Santilli</a> found out that he likes computer security researchers and vice versa.</div><div class="p" id="_158">It's a bit the same reason why he likes <a href="physicist">physicists</a>: you can't bullshit with security.</div><div class="p" id="_159">You can't just talk nice and hope for people to belive you.</div><div class="p" id="_160">You can't not try to break things and just <a href="#security-through-obscurity">keep everyone happy in their false illusion of safety</a>.</div><div class="p" id="_161">You can't do a half job.</div><div class="p" id="_162">If you do any of that, you <i>will</i> get your ass handed to you in a little gift bag.</div><div class="p" id="_163">All of this is closely linked to <a href="ciro-santilli-s-psychology-and-physiology#ciro-santilli-s-self-perceived-creative-personality">Ciro Santilli's self perceived creative personality</a> and <a href="don-t-be-a-pussy#being-naughty-and-creative-are-correlated">being naughty and creative are correlated</a>.</div><div class="h" id="dan-kaminsky"><div class="notnav"><h4><a href="dan-kaminsky">Dan Kaminsky <span class="meta">(1979-2021)</span></a></h4><span class="hover-meta"> <a class="split" href="dan-kaminsky"></a><span class="metrics"><span class="wcntr"> Words: 23</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-security-researcher" class="u"> Computer security researcher</a><a href="#_toc/dan-kaminsky" class="toc"></a><a href="https://en.wikipedia.org/wiki/Dan_Kaminsky" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/dan-kaminsky"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_165">A superstar security researcher with some major exploits from in the 2000's.</div><div class="h" id="dan-kaminsky-approves-linux-kernel-module-cheat"><div class="notnav"><h5><a href="dan-kaminsky-approves-linux-kernel-module-cheat">Dan Kaminsky approves Linux Kernel Module Cheat</a></h5><span class="hover-meta"> <a class="split" href="dan-kaminsky-approves-linux-kernel-module-cheat"></a><span class="metrics"><span class="wcntr"> Words: 11</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#dan-kaminsky" class="u"> Dan Kaminsky</a><a href="#_toc/dan-kaminsky-approves-linux-kernel-module-cheat" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/dan-kaminsky-approves-linux-kernel-module-cheat"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_166"><a href="https://twitter.com/dakami/status/1344853681749934080">twitter.com/dakami/status/1344853681749934080</a></div><div class="p" id="_167">Oh yeah, that felt good. A few months before he died.</div><div class="h" id="len-sassaman"><div class="notnav"><h4><a href="len-sassaman">Len Sassaman</a></h4><span class="hover-meta"> <a class="split" href="len-sassaman"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-security-researcher" class="u"> Computer security researcher</a><a href="#_toc/len-sassaman" class="toc"></a><a href="https://en.wikipedia.org/wiki/Len_Sassaman" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/len-sassaman"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="cool-data-embedded-in-the-bitcoin-blockchain#len-sassaman-tribute">Len Sassaman tribute</a></li></ul></div></div><div class="h" id="data-erasure"><div class="notnav"><h3><a href="data-erasure">Data erasure</a></h3><span class="hover-meta"> <a class="split" href="data-erasure"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-security" class="u"> Computer security</a><a href="#_toc/data-erasure" class="toc"></a><a href="https://en.wikipedia.org/wiki/Data_erasure" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/data-erasure"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="denial-of-service-attack"><div class="notnav"><h3><a href="denial-of-service-attack">Denial-of-service attack <span class="meta">(DoS, DoS attack)</span></a></h3><span class="hover-meta"> <a class="split" href="denial-of-service-attack"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-security" class="u"> Computer security</a><a href="#_toc/denial-of-service-attack" class="toc"></a><a href="https://en.wikipedia.org/wiki/Denial-of-service_attack" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/denial-of-service-attack"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="multi-factor-authentication"><div class="notnav"><h3><a href="multi-factor-authentication">Multi-factor authentication <span class="meta">(2FA)</span></a></h3><span class="hover-meta"> <a class="split" href="multi-factor-authentication"></a><span class="metrics"><span class="wcntr"> Words: 66</span><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-security" class="u"> Computer security</a><a href="#_toc/multi-factor-authentication" class="toc"></a><a href="https://en.wikipedia.org/wiki/Multi-factor_authentication" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/multi-factor-authentication"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="h" id="2fa-app"><div class="notnav"><h4><a href="2fa-app">2FA app</a></h4><span class="hover-meta"> <a class="split" href="2fa-app"></a><span class="metrics"><span class="wcntr"> Words: 66</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#multi-factor-authentication" class="u"> Multi-factor authentication</a><a href="#_toc/2fa-app" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/2fa-app"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="h" id="google-2fa-app-token-can-be-updated-without-checking-the-old-2fa"><div class="notnav"><h5><a href="google-2fa-app-token-can-be-updated-without-checking-the-old-2fa">Google 2FA app token can be updated without checking the old 2FA</a></h5><span class="hover-meta"> <a class="split" href="google-2fa-app-token-can-be-updated-without-checking-the-old-2fa"></a><span class="metrics"><span class="wcntr"> Words: 66</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#2fa-app" class="u"> 2FA app</a><a href="#_toc/google-2fa-app-token-can-be-updated-without-checking-the-old-2fa" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/google-2fa-app-token-can-be-updated-without-checking-the-old-2fa"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_173">Ermm, as of February 2021, I was able to update my 2FA app token with the password alone, it did not ask for the old 2FA.</div><div class="p" id="_174">So what's the fucking point of 2FA then? An attacker with my password would be able to login by doing that!</div><div class="p" id="_175">Is it that Google trusts that particular action because I used the same phone/known IP or something like that?</div><div class="h" id="authy"><div class="notnav"><h5><a href="authy">Authy</a></h5><span class="hover-meta"> <a class="split" href="authy"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#2fa-app" class="u"> 2FA app</a><a href="#_toc/authy" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/authy"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="oauth"><div class="notnav"><h3><a href="oauth">OAuth</a></h3><span class="hover-meta"> <a class="split" href="oauth"></a><span class="metrics"><span class="wcntr"> Words: 68</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-security" class="u"> Computer security</a><a href="#_toc/oauth" class="toc"></a><a href="https://en.wikipedia.org/wiki/OAuth" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/oauth"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="p" id="_177">The fatal flaw of OAuth is that websites have to enable specific providers, they can't just automatically select the correct OAuth for a given email domain. This means that the vast majority of websites will only provide the most widely popular providers such as <a href="google">Google</a>, and the like, which means people won't have decent privacy.</div><div class="p" id="_178">So you are just better off with password logins and a decent <a href="#password-manager">password manager</a>.</div><div class="h" id="password"><div class="notnav"><h3><a href="password">Password</a></h3><span class="hover-meta"> <a class="split" href="password"></a><span class="metrics"><span class="wcntr"> Words: 34</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-security" class="u"> Computer security</a><a href="#_toc/password" class="toc"></a><a href="https://en.wikipedia.org/wiki/Password" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/password"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="password-cracking"><div class="notnav"><h4><a href="password-cracking">Password cracking</a></h4><span class="hover-meta"> <a class="split" href="password-cracking"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#password" class="u"> Password</a><a href="#_toc/password-cracking" class="toc"></a><a href="https://en.wikipedia.org/wiki/Password_cracking" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/password-cracking"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="password-manager"><div class="notnav"><h4><a href="password-manager">Password manager</a></h4><span class="hover-meta"> <a class="split" href="password-manager"></a><span class="metrics"><span class="wcntr"> Words: 34</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#password" class="u"> Password</a><a href="#_toc/password-manager" class="toc"></a><a href="https://en.wikipedia.org/wiki/Password_manager" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/password-manager"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_179">A cross browser, cross platform, and server-encrypted password manager is a must after <a href="science#edward-snowden">Snowden</a>!!! E.g. <a href="messaging-software#proton-pass">Proton Pass</a>. And governments should obviously provide one to its citizens, or else be spied upon by the <a href="united-states">USA</a> obviously: <a href="cirism#governments-should-provide-basic-internet-infrastructure">Governments should provide basic Internet infrastructure</a>.</div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="google#google-passwords">Google Passwords</a></li><li><a href="messaging-software#proton-pass">Proton Pass</a></li></ul></div></div><div class="h" id="plausible-deniability"><div class="notnav"><h3><a href="plausible-deniability">Plausible deniability</a></h3><span class="hover-meta"> <a class="split" href="plausible-deniability"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-security" class="u"> Computer security</a><a href="#_toc/plausible-deniability" class="toc"></a><a href="https://en.wikipedia.org/wiki/Plausible_deniability" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/plausible-deniability"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="privacy"><div class="notnav"><h3><a href="privacy">Privacy</a></h3><span class="hover-meta"> <a class="split" href="privacy"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-security" class="u"> Computer security</a><a href="#_toc/privacy" class="toc"></a><a href="https://en.wikipedia.org/wiki/Privacy" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/privacy"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="messaging-software#whatsapp-profile-information-is-public-by-default">WhatsApp profile information is public by default</a></li></ul></div></div><div class="h" id="security-through-obscurity"><div class="notnav"><h3><a href="security-through-obscurity">Security through obscurity</a></h3><span class="hover-meta"> <a class="split" href="security-through-obscurity"></a><span class="metrics"><span class="wcntr"> Words: 56</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-security" class="u"> Computer security</a><a href="#_toc/security-through-obscurity" class="toc"></a><a href="https://en.wikipedia.org/wiki/Security_through_obscurity" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/security-through-obscurity"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#evil">Evil</a></span></div></nav></div><div class="p" id="_181"><a href="https://stackoverflow.com/questions/533965/why-is-security-through-obscurity-a-bad-idea">stackoverflow.com/questions/533965/why-is-security-through-obscurity-a-bad-idea</a></div><div class="p" id="_182">Do as I say, not as I do: <a href="stack-overflow#ciro-santilli-s-stack-overflow-suspension-for-vote-fraud-script-2019">Ciro Santilli's Stack Overflow suspension for vote fraud script 2019</a>, <a href="https://meta.stackoverflow.com/questions/381577/is-it-ok-to-have-links-on-how-to-create-sock-puppets-and-gain-rep-fraudulently-i/381635#381635">meta.stackoverflow.com/questions/381577/is-it-ok-to-have-links-on-how-to-create-sock-puppets-and-gain-rep-fraudulently-i/381635#381635</a>.</div><div class="figure"><figure id="video-lockpickinglawyer-saintcon-keynote-2021" class="multiline"><div class="float-wrap"><iframe width="560" height="315" loading="lazy" src="https://www.youtube.com/embed/IH0GXWQDk0Q" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div><figcaption><a href="#video-lockpickinglawyer-saintcon-keynote-2021"><span class="caption-prefix">Video 1. </span></a><div class="title">LockPickingLawyer SAINTCON keynote (2021)</div> <a href="https://www.youtube.com/watch?v=IH0GXWQDk0Q">Source</a>. SAINTCON is "Utah's Premiere Security Conference".<div class="list"><ul id="_183"><li id="_184"><a href="https://youtu.be/IH0GXWQDk0Q?t=900">youtu.be/IH0GXWQDk0Q?t=900</a> mentions that <a href="https://en.wikipedia.org/wiki/Alfred_Charles_Hobbs">Alfred Charles Hobbs</a> commented in 1853:<div><blockquote id="_185">Rogues are very keen in their profession, and know already much more than we can teach them</blockquote></div></li></ul></div></figcaption></figure></div><div class="h" id="kerckhoffs-s-principle"><div class="notnav"><h4><a href="kerckhoffs-s-principle">Kerckhoffs's principle</a></h4><span class="hover-meta"> <a class="split" href="kerckhoffs-s-principle"></a><span class="metrics"><span class="wcntr"> Words: 11</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#security-through-obscurity" class="u"> Security through obscurity</a><a href="#_toc/kerckhoffs-s-principle" class="toc"></a><a href="https://en.wikipedia.org/wiki/Kerckhoffs&#039;s_principle" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/kerckhoffs-s-principle"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_186">Basically the opposite of <a href="#security-through-obscurity">security through obscurity</a>, though slightly more focused on <a href="cryptography">cryptography</a>.</div><div class="h" id="malware"><div class="notnav"><h3><a href="malware">Malware</a></h3><span class="hover-meta"> <a class="split" href="malware"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-security" class="u"> Computer security</a><a href="#_toc/malware" class="toc"></a><a href="https://en.wikipedia.org/wiki/Malware" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/malware"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="ransomware"><div class="notnav"><h3><a href="ransomware">Ransomware</a></h3><span class="hover-meta"> <a class="split" href="ransomware"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-security" class="u"> Computer security</a><a href="#_toc/ransomware" class="toc"></a><a href="https://en.wikipedia.org/wiki/Ransomware" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/ransomware"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="data-breach"><div class="notnav"><h3><a href="data-breach">Data breach</a></h3><span class="hover-meta"> <a class="split" href="data-breach"></a><span class="metrics"><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-security" class="u"> Computer security</a><a href="#_toc/data-breach" class="toc"></a><a href="https://en.wikipedia.org/wiki/Data_breach" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/data-breach"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="wikileaks"><div class="notnav"><h4><a href="wikileaks">WikiLeaks</a></h4><span class="hover-meta"> <a class="split" href="wikileaks"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#data-breach" class="u"> Data breach</a><a href="#_toc/wikileaks" class="toc"></a><a href="https://en.wikipedia.org/wiki/WikiLeaks" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/wikileaks"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="website#wiki">Wiki</a></span></div></nav></div><div class="h" id="list-of-data-breaches"><div class="notnav"><h4><a href="list-of-data-breaches">List of data breaches</a></h4><span class="hover-meta"> <a class="split" href="list-of-data-breaches"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#data-breach" class="u"> Data breach</a><a href="#_toc/list-of-data-breaches" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/list-of-data-breaches"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="united-states-diplomatic-cables-leak"><div class="notnav"><h5><a href="united-states-diplomatic-cables-leak">United States diplomatic cables leak <span class="meta">(2010)</span></a></h5><span class="hover-meta"> <a class="split" href="united-states-diplomatic-cables-leak"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-data-breaches" class="u"> List of data breaches</a><a href="#_toc/united-states-diplomatic-cables-leak" class="toc"></a><a href="https://en.wikipedia.org/wiki/United_States_diplomatic_cables_leak" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/united-states-diplomatic-cables-leak"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="computer-user-interface"><div class="notnav"><h2><a href="computer-user-interface">Computer user-interface</a></h2><span class="hover-meta"> <a class="split" href="computer-user-interface"></a><span class="metrics"><span class="wcntr"> Words: 395</span><span class="dcnt"> Articles: 31</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/computer-user-interface" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/computer-user-interface"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="technology#brain-computer-interface">Brain-computer interface</a></li></ul></div></div><div class="h" id="application-programming-interface"><div class="notnav"><h3><a href="application-programming-interface">Application programming interface <span class="meta">(API)</span></a></h3><span class="hover-meta"> <a class="split" href="application-programming-interface"></a><span class="metrics"><span class="wcntr"> Words: 54</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-user-interface" class="u"> Computer user-interface</a><a href="#_toc/application-programming-interface" class="toc"></a><a href="https://en.wikipedia.org/wiki/Application_programming_interface" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/application-programming-interface"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="rest-api"><div class="notnav"><h4><a href="rest-api">REST API</a></h4><span class="hover-meta"> <a class="split" href="rest-api"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#application-programming-interface" class="u"> Application programming interface</a><a href="#_toc/rest-api" class="toc"></a><a href="https://en.wikipedia.org/wiki/REST_API" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/rest-api"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="graphql"><div class="notnav"><h4><a href="graphql">GraphQL</a></h4><span class="hover-meta"> <a class="split" href="graphql"></a><span class="metrics"><span class="wcntr"> Words: 54</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#application-programming-interface" class="u"> Application programming interface</a><a href="#_toc/graphql" class="toc"></a><a href="https://en.wikipedia.org/wiki/GraphQL" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/graphql"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_190">This is really good.</div><div class="p" id="_191">It allows the client to prepare a single request that gets all the data it wants to fill up a given webpage, rather than doing several separate requests.</div><div class="p" id="_192">So it only gets exactly what it needs, and in a single request.</div><div class="p" id="_193">Very sweet. This is the future of the web.</div><div class="h" id="command-line-interface"><div class="notnav"><h3><a href="command-line-interface">Command-line interface <span class="meta">(CLI)</span></a></h3><span class="hover-meta"> <a class="split" href="command-line-interface"></a><span class="metrics"><span class="wcntr"> Words: 279</span><span class="dcnt"> Articles: 16</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-user-interface" class="u"> Computer user-interface</a><a href="#_toc/command-line-interface" class="toc"></a><a href="https://en.wikipedia.org/wiki/Command-line_interface" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/command-line-interface"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="h" id="linux-cli-howto"><div class="notnav"><h4><a href="linux-cli-howto">Linux CLI HOWTO</a></h4><span class="hover-meta"> <a class="split" href="linux-cli-howto"></a><span class="metrics"><span class="wcntr"> Words: 2</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#command-line-interface" class="u"> Command-line interface</a><a href="#_toc/linux-cli-howto" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/linux-cli-howto"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="convert-bytes-to-hex-from-linux-cli"><div class="notnav"><h5><a href="convert-bytes-to-hex-from-linux-cli">Convert bytes to hex from Linux CLI</a></h5><span class="hover-meta"> <a class="split" href="convert-bytes-to-hex-from-linux-cli"></a><span class="metrics"><span class="wcntr"> Words: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#linux-cli-howto" class="u"> Linux CLI HOWTO</a><a href="#_toc/convert-bytes-to-hex-from-linux-cli" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/convert-bytes-to-hex-from-linux-cli"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="list"><ul id="_196"><li id="_197">no formatting;<div class="list"><ul id="_198"><li id="_199"><a href="https://stackoverflow.com/questions/2614764/how-to-create-a-hex-dump-of-file-containing-only-the-hex-characters-without-spac">stackoverflow.com/questions/2614764/how-to-create-a-hex-dump-of-file-containing-only-the-hex-characters-without-spac</a></li><li id="_200"><a href="https://unix.stackexchange.com/questions/10826/shell-how-to-read-the-bytes-of-a-binary-file-and-print-as-hexadecimal/758531#758531">unix.stackexchange.com/questions/10826/shell-how-to-read-the-bytes-of-a-binary-file-and-print-as-hexadecimal/758531#758531</a></li><li id="_201"><a href="https://stackoverflow.com/questions/2003803/show-hexadecimal-numbers-of-a-file/77262369#77262369">stackoverflow.com/questions/2003803/show-hexadecimal-numbers-of-a-file/77262369#77262369</a></li><li id="_202"><a href="https://stackoverflow.com/questions/9515007/linux-script-to-convert-byte-data-into-a-hex-string/77262375#77262375">stackoverflow.com/questions/9515007/linux-script-to-convert-byte-data-into-a-hex-string/77262375#77262375</a></li></ul></div></li></ul></div><div class="h" id="command-line-utility"><div class="notnav"><h4><a href="command-line-utility">Command line utility <span class="meta">(CLI tool)</span></a></h4><span class="hover-meta"> <a class="split" href="command-line-utility"></a><span class="metrics"><span class="wcntr"> Words: 267</span><span class="dcnt"> Articles: 10</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#command-line-interface" class="u"> Command-line interface</a><a href="#_toc/command-line-utility" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/command-line-utility"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="cryptocurrency#bitcoin-cli-client">Bitcoin CLI client</a></li><li><a href="computer-hardware#nvidia-smi">nvidia-smi</a></li><li><a href="systems-programming#posix-command-line-utility">POSIX command line utility</a></li><li><a href="computer-hardware#software-developed-by-nvidia">Software developed by Nvidia</a></li></ul></div></div><div class="h" id="list-of-command-line-utilities"><div class="notnav"><h5><a href="list-of-command-line-utilities">List of command line utilities</a></h5><span class="hover-meta"> <a class="split" href="list-of-command-line-utilities"></a><span class="metrics"><span class="wcntr"> Words: 267</span><span class="dcnt"> Articles: 9</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#command-line-utility" class="u"> Command line utility</a><a href="#_toc/list-of-command-line-utilities" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/list-of-command-line-utilities"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="expect"><div class="notnav"><h6><a href="expect">Expect</a></h6><span class="hover-meta"> <a class="split" href="expect"></a><span class="metrics"><span class="wcntr"> Words: 59</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-command-line-utilities" class="u"> List of command line utilities</a><a href="#_toc/expect" class="toc"></a><a href="https://en.wikipedia.org/wiki/Expect" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/expect"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#necessary-evil">Necessary evil</a></span></div></nav></div><div class="h" id="expect-howto"><div class="notnav"><h6 data-level="7"><a href="expect-howto">Expect HOWTO</a></h6><span class="hover-meta"> <a class="split" href="expect-howto"></a><span class="metrics"><span class="wcntr"> Words: 59</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#expect" class="u"> Expect</a><a href="#_toc/expect-howto" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/expect-howto"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="get-output-of-send-command-on-expect"><div class="notnav"><h6 data-level="8"><a href="get-output-of-send-command-on-expect">Get output of <code>send</code> command on expect</a></h6><span class="hover-meta"> <a class="split" href="get-output-of-send-command-on-expect"></a><span class="metrics"><span class="wcntr"> Words: 59</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#expect-howto" class="u"> Expect HOWTO</a><a href="#_toc/get-output-of-send-command-on-expect" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/get-output-of-send-command-on-expect"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_205">This pattern works well:<div class="code" id="_206"><div><pre><code>set prompt "&gt;&gt;&gt; " log_user 0 send "What is quantum field theory?\r" expect -re "(.+)$prompt" puts -nonewline [join [lrange [lmap line [split $expect_out(1,string) \n] {regsub {\r$} $line ""}] 1 end] "\n"]</code></pre></div></div>Then stdout will contain only the output of the command and nothing else.</div><div class="p" id="_207">Bibliography:<div class="list"><ul id="_208"><li id="_209"><a href="https://unix.stackexchange.com/questions/239161/get-the-output-from-expect-script-in-a-variable/792645#792645">unix.stackexchange.com/questions/239161/get-the-output-from-expect-script-in-a-variable/792645#792645</a></li><li id="_210"><a href="https://stackoverflow.com/questions/45210358/expect-output-only-stdout-of-the-command-and-nothing-else/79517903#79517903">stackoverflow.com/questions/45210358/expect-output-only-stdout-of-the-command-and-nothing-else/79517903#79517903</a></li><li id="_211"><a href="https://stackoverflow.com/questions/57975853/how-to-read-the-send-command-output-in-expect-script">stackoverflow.com/questions/57975853/how-to-read-the-send-command-output-in-expect-script</a> title is wrong, OP wants exit status apparently not stdout</li></ul></div></div><div class="h" id="gnu-parallel"><div class="notnav"><h6><a href="gnu-parallel">GNU parallel</a></h6><span class="hover-meta"> <a class="split" href="gnu-parallel"></a><span class="metrics"><span class="wcntr"> Words: 197</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-command-line-utilities" class="u"> List of command line utilities</a><a href="#_toc/gnu-parallel" class="toc"></a><a href="https://en.wikipedia.org/wiki/GNU_parallel" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/gnu-parallel"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="#gnu-package">GNU package</a>, <a href="cirism#good">Good</a></span></div></nav></div><div class="p" id="_214">The author Ole Tange answers every question about it on <a href="stack-overflow#stack-exchange">Stack Exchange</a>. What a legend!</div><div class="p" id="_215">This program makes you respect <a href="#gnu-make">GNU make</a> a bit more. Good old make with <code>-j</code> can not only parallelize, but also take in account a <a href="computer-science#dependency-graph">dependency graph</a>.</div><div class="p" id="_216">Some examples under:<div class="code" id="_217"><div><pre><code>man parallel_exampes</code></pre></div></div></div><div class="p" id="_218">To get the input argument explicitly job number use the magic string <code>{}</code>, e.g.:<div class="code" id="_219"><div><pre><code>printf 'a\nb\nc\n' | parallel echo '{}'</code></pre></div></div>sample output:<div class="code" id="_220"><div><pre><code>a b c</code></pre></div></div></div><div class="p" id="_221">To get the job number use <code>{#}</code> as in:<div class="code" id="_222"><div><pre><code>printf 'a\nb\nc\n' | parallel echo '{} {#}'</code></pre></div></div>sample output:<div class="code" id="_223"><div><pre><code>a 1 b 2 c 3 c 3</code></pre></div></div></div><div class="p" id="_224"><code>{%}</code> contains which thread the job running in, e.g. if we limit it to <code>2</code> threads with <code>-j2</code>:<div class="code" id="_225"><div><pre><code>printf 'a\nb\nc\nd\n' | parallel -j2 echo '{} {#} {%}'</code></pre></div></div>sample output:<div class="code" id="_226"><div><pre><code>a 1 1 b 2 1 c 3 2 d 4 1</code></pre></div></div>The percent must be a reference to "split the inputs module the number of workers", and modulo uses the <code>%</code> symbol in many programming languages such as <a href="programming-language#c-programming-language">C</a>.</div><div class="p" id="_227">To pass multiple CLI arguments per command you can use <code>-X</code> e.g.:<div class="code" id="_228"><div><pre><code>printf 'a\nb\nc\nd\n' | parallel -j2 -X echo '{} {#} {%}'</code></pre></div></div>sample output:<div class="code" id="_229"><div><pre><code>a b 1 1 c d 2 2</code></pre></div></div></div><div class="h" id="htop"><div class="notnav"><h6><a href="htop">htop</a></h6><span class="hover-meta"> <a class="split" href="htop"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-command-line-utilities" class="u"> List of command line utilities</a><a href="#_toc/htop" class="toc"></a><a href="https://en.wikipedia.org/wiki/htop" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/htop"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="h" id="less-unix"><div class="notnav"><h6><a href="less-unix">less <span class="meta">(Unix)</span></a></h6><span class="hover-meta"> <a class="split" href="less-unix"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-command-line-utilities" class="u"> List of command line utilities</a><a href="#_toc/less-unix" class="toc"></a><a href="https://en.wikipedia.org/wiki/less_(Unix)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/less-unix"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="ncdu"><div class="notnav"><h6><a href="ncdu">ncdu</a></h6><span class="hover-meta"> <a class="split" href="ncdu"></a><span class="metrics"><span class="wcntr"> Words: 10</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-command-line-utilities" class="u"> List of command line utilities</a><a href="#_toc/ncdu" class="toc"></a><a href="https://en.wikipedia.org/wiki/ncdu" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/ncdu"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a>, <a href="#ncurses-program">Ncurses program</a></span></div></nav></div><div class="p" id="_233">Way too few people know about this. Spread the word.</div><div class="p" id="_234"><a href="https://stackoverflow.com/questions/1019116/using-ls-to-list-directories-and-their-total-sizes/55519414#55519414">stackoverflow.com/questions/1019116/using-ls-to-list-directories-and-their-total-sizes/55519414#55519414</a></div><div class="figure"><figure id="_235"><div class="float-wrap"><a href="https://web.archive.org/web/20221208132133if_/https://i.stack.imgur.com/lHXP3.png"><img src="https://web.archive.org/web/20221208132133if_/https://i.stack.imgur.com/lHXP3.png" loading="lazy" height="315" alt="https://web.archive.org/web/20221208132133if_/https://i.stack.imgur.com/lHXP3.png"></a></div></figure></div><div class="h" id="rsync"><div class="notnav"><h6><a href="rsync">rsync</a></h6><span class="hover-meta"> <a class="split" href="rsync"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-command-line-utilities" class="u"> List of command line utilities</a><a href="#_toc/rsync" class="toc"></a><a href="https://en.wikipedia.org/wiki/rsync" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/rsync"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="h" id="sudo"><div class="notnav"><h6><a href="sudo">sudo</a></h6><span class="hover-meta"> <a class="split" href="sudo"></a><span class="metrics"><span class="wcntr"> Words: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-command-line-utilities" class="u"> List of command line utilities</a><a href="#_toc/sudo" class="toc"></a><a href="https://en.wikipedia.org/wiki/sudo" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/sudo"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_237">Availability: <a href="https://unix.stackexchange.com/questions/48522/how-universal-is-sudo">unix.stackexchange.com/questions/48522/how-universal-is-sudo</a></div><div class="p" id="_238"><a href="https://xkcd.com/149/">xkcd.com/149/</a></div><div class="h" id="text-based-user-interface"><div class="notnav"><h4><a href="text-based-user-interface">Text-based user interface <span class="meta">(TUI)</span></a></h4><span class="hover-meta"> <a class="split" href="text-based-user-interface"></a><span class="metrics"><span class="wcntr"> Words: 10</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#command-line-interface" class="u"> Command-line interface</a><a href="#_toc/text-based-user-interface" class="toc"></a><a href="https://en.wikipedia.org/wiki/Text-based_user_interface" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/text-based-user-interface"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="p" id="_241">The perfect <a href="religion#middle-way">Middle Way</a> between <a href="#command-line-interface">command-line interfaces</a> and <a href="#graphical-user-interface">GUIs</a>. A thing of great beauty.</div><div class="h" id="ncurses"><div class="notnav"><h5><a href="ncurses">ncurses</a></h5><span class="hover-meta"> <a class="split" href="ncurses"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#text-based-user-interface" class="u"> Text-based user interface</a><a href="#_toc/ncurses" class="toc"></a><a href="https://en.wikipedia.org/wiki/ncurses" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/ncurses"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="ncurses-program"><div class="notnav"><h6><a href="ncurses-program">ncurses program</a></h6><span class="hover-meta"> <a class="split" href="ncurses-program"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ncurses" class="u"> ncurses</a><a href="#_toc/ncurses-program" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/ncurses-program"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="#ncdu">Ncdu</a></li></ul></div></div><div class="h" id="graphical-user-interface"><div class="notnav"><h3><a href="graphical-user-interface">Graphical user interface <span class="meta">(GUI)</span></a></h3><span class="hover-meta"> <a class="split" href="graphical-user-interface"></a><span class="metrics"><span class="wcntr"> Words: 62</span><span class="dcnt"> Articles: 10</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-user-interface" class="u"> Computer user-interface</a><a href="#_toc/graphical-user-interface" class="toc"></a><a href="https://en.wikipedia.org/wiki/Graphical_user_interface" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/graphical-user-interface"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#evil">Evil</a></span></div></nav></div><div class="h" id="display-manager"><div class="notnav"><h4><a href="display-manager">Display manager</a></h4><span class="hover-meta"> <a class="split" href="display-manager"></a><span class="metrics"><span class="wcntr"> Words: 59</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#graphical-user-interface" class="u"> Graphical user interface</a><a href="#_toc/display-manager" class="toc"></a><a href="https://en.wikipedia.org/wiki/Display_manager" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/display-manager"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_244">Check which you you have:<div class="code" id="_245"><div><pre><code>systemctl status display-manager.service</code></pre></div></div>Tested on <a href="systems-programming#ubuntu-23-10">Ubuntu 23.10</a> I see:<div class="code" id="_246"><div><pre><code>● gdm.service - GNOME Display Manager Loaded: loaded (/lib/systemd/system/gdm.service; static) Active: active (running) since Sun 2023-12-24 10:34:50 GMT; 23min ago Process: 1827 ExecStartPre=/usr/share/gdm/generate-config (code=exited, status=0/SUCCESS) Main PID: 1850 (gdm3) Tasks: 4 (limit: 71817) Memory: 6.8M CPU: 119ms CGroup: /system.slice/gdm.service └─1850 /usr/sbin/gdm3</code></pre></div></div>which means I have <a href="#gnome-display-manager">GNOME Display Manager</a>.</div><div class="p" id="_247">Bibliography:<div class="list"><ul id="_248"><li id="_249"><a href="https://unix.stackexchange.com/questions/20370/is-there-a-simple-linux-command-that-will-tell-me-what-my-display-manager-is">unix.stackexchange.com/questions/20370/is-there-a-simple-linux-command-that-will-tell-me-what-my-display-manager-is</a></li><li id="_250"><a href="https://askubuntu.com/questions/584373/how-to-check-using-the-command-line-which-display-manager-is-running">askubuntu.com/questions/584373/how-to-check-using-the-command-line-which-display-manager-is-running</a></li></ul></div></div><div class="h" id="gnome-display-manager"><div class="notnav"><h5><a href="gnome-display-manager">GNOME Display Manager <span class="meta">(GDM)</span></a></h5><span class="hover-meta"> <a class="split" href="gnome-display-manager"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#display-manager" class="u"> Display manager</a><a href="#_toc/gnome-display-manager" class="toc"></a><a href="https://en.wikipedia.org/wiki/GNOME_Display_Manager" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/gnome-display-manager"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="desktop-environment"><div class="notnav"><h4><a href="desktop-environment">Desktop environment</a></h4><span class="hover-meta"> <a class="split" href="desktop-environment"></a><span class="metrics"><span class="wcntr"> Words: 3</span><span class="dcnt"> Articles: 4</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#graphical-user-interface" class="u"> Graphical user interface</a><a href="#_toc/desktop-environment" class="toc"></a><a href="https://en.wikipedia.org/wiki/Desktop_environment" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/desktop-environment"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_252"><a href="#tmux">tmux</a> for newbs: <a href="#terminal-multiplexers-are-cli-desktop-environments">Section "Terminal multiplexers are CLI desktop environments"</a>.</div><div class="h" id="gnome-project"><div class="notnav"><h5><a href="gnome-project">GNOME Project <span class="meta">(1997)</span></a></h5><span class="hover-meta"> <a class="split" href="gnome-project"></a><span class="metrics"><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#desktop-environment" class="u"> Desktop environment</a><a href="#_toc/gnome-project" class="toc"></a><a href="https://en.wikipedia.org/wiki/GNOME_Project" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/gnome-project"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="art#gnome-chess">GNOME Chess</a></li></ul></div></div><div class="h" id="gnome-desktop"><div class="notnav"><h6><a href="gnome-desktop">GNOME desktop</a></h6><span class="hover-meta"> <a class="split" href="gnome-desktop"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#gnome-project" class="u"> GNOME Project</a><a href="#_toc/gnome-desktop" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/gnome-desktop"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="gtk"><div class="notnav"><h6 data-level="7"><a href="gtk">GTK</a></h6><span class="hover-meta"> <a class="split" href="gtk"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#gnome-desktop" class="u"> GNOME desktop</a><a href="#_toc/gtk" class="toc"></a><a href="https://en.wikipedia.org/wiki/GTK" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/gtk"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="kde"><div class="notnav"><h5><a href="kde">KDE <span class="meta">(1996)</span></a></h5><span class="hover-meta"> <a class="split" href="kde"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#desktop-environment" class="u"> Desktop environment</a><a href="#_toc/kde" class="toc"></a><a href="https://en.wikipedia.org/wiki/KDE" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/kde"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="splash-screen"><div class="notnav"><h4><a href="splash-screen">Splash screen</a></h4><span class="hover-meta"> <a class="split" href="splash-screen"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#graphical-user-interface" class="u"> Graphical user interface</a><a href="#_toc/splash-screen" class="toc"></a><a href="https://en.wikipedia.org/wiki/Splash_screen" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/splash-screen"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#evil">Evil</a></span></div></nav></div><div class="h" id="qt-software"><div class="notnav"><h4><a href="qt-software">Qt <span class="meta">(software)</span></a></h4><span class="hover-meta"> <a class="split" href="qt-software"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#graphical-user-interface" class="u"> Graphical user interface</a><a href="#_toc/qt-software" class="toc"></a><a href="https://en.wikipedia.org/wiki/Qt_(software)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/qt-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="wysiwyg"><div class="notnav"><h4><a href="wysiwyg">WYSIWYG</a></h4><span class="hover-meta"> <a class="split" href="wysiwyg"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#graphical-user-interface" class="u"> Graphical user interface</a><a href="#_toc/wysiwyg" class="toc"></a><a href="https://en.wikipedia.org/wiki/WYSIWYG" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/wysiwyg"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="#wysiwyg-text-editor">WYSIWYG text editor</a></li></ul></div></div><div class="h" id="data-compression"><div class="notnav"><h2><a href="data-compression">Data compression</a></h2><span class="hover-meta"> <a class="split" href="data-compression"></a><span class="metrics"><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/data-compression" class="toc"></a><a href="https://en.wikipedia.org/wiki/Data_compression" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/data-compression"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="lossless-and-lossy-compression"><div class="notnav"><h3><a href="lossless-and-lossy-compression">Lossless and lossy compression</a></h3><span class="hover-meta"> <a class="split" href="lossless-and-lossy-compression"></a><span class="metrics"><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#data-compression" class="u"> Data compression</a><a href="#_toc/lossless-and-lossy-compression" class="toc"></a><a href="https://en.wikipedia.org/wiki/Lossless_and_lossy_compression" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/lossless-and-lossy-compression"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="lossy-compression"><div class="notnav"><h4><a href="lossy-compression">Lossy compression</a></h4><span class="hover-meta"> <a class="split" href="lossy-compression"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#lossless-and-lossy-compression" class="u"> Lossless and lossy compression</a><a href="#_toc/lossy-compression" class="toc"></a><a href="https://en.wikipedia.org/wiki/Lossy_compression" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/lossy-compression"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="lossless-compression"><div class="notnav"><h4><a href="lossless-compression">Lossless compression</a></h4><span class="hover-meta"> <a class="split" href="lossless-compression"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#lossless-and-lossy-compression" class="u"> Lossless and lossy compression</a><a href="#_toc/lossless-compression" class="toc"></a><a href="https://en.wikipedia.org/wiki/Lossless_compression" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/lossless-compression"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="database"><div class="notnav"><h2><a href="database">Database</a></h2><span class="hover-meta"> <a class="split" href="database"></a><span class="metrics"><span class="wcntr"> Words: 7k</span><span class="dcnt"> Articles: 125</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/database" class="toc"></a><a href="https://en.wikipedia.org/wiki/Database" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/database"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="biology#biology-database">Biology database</a></li><li><a href="condensed-matter-physics#material-property-database">Material property database</a></li></ul></div></div><div class="h" id="database-management-system"><div class="notnav"><h3><a href="database-management-system">Database management system</a></h3><span class="hover-meta"> <a class="split" href="database-management-system"></a><span class="metrics"><span class="wcntr"> Words: 13</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#database" class="u"> Database</a><a href="#_toc/database-management-system" class="toc"></a><a href="https://en.wikipedia.org/wiki/Database_management_system" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/database-management-system"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_256">A <a href="">software</a> that implements some database system, e.g. <a href="sql#postgresql">PostgreSQL</a> or <a href="sql#mysql">MySQL</a> are two (widely extended) <a href="sql">SQL</a> implementations.</div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="#relational-database-management-system">Relational database management system</a></li></ul></div></div><div class="h" id="object-relational-mapping"><div class="notnav"><h3><a href="object-relational-mapping">Object-relational mapping <span class="meta">(ORM)</span></a></h3><span class="hover-meta"> <a class="split" href="object-relational-mapping"></a><span class="metrics"><span class="wcntr"> Words: 137</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#database" class="u"> Database</a><a href="#_toc/object-relational-mapping" class="toc"></a><a href="https://en.wikipedia.org/wiki/Object–relational_mapping" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/object-relational-mapping"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_258">Per language:<div class="list"><ul id="_259"><li id="_260"><a href="node-js#node-js-orm-library">node.js ORM library</a></li></ul></div></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="node-js#node-js-orm-library">Node.js ORM library</a></li></ul></div></div><div class="h" id="how-to-decide-if-an-orm-is-good"><div class="notnav"><h4><a href="how-to-decide-if-an-orm-is-good">How to decide if an ORM is good?</a></h4><span class="hover-meta"> <a class="split" href="how-to-decide-if-an-orm-is-good"></a><span class="metrics"><span class="wcntr"> Words: 135</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#object-relational-mapping" class="u"> Object-relational mapping</a><a href="#_toc/how-to-decide-if-an-orm-is-good" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/how-to-decide-if-an-orm-is-good"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_261">How to decide if an ORM is decent? Just try to replicate every <a href="sql">SQL</a> query from <a href="_raw/nodejs/sequelize/raw/many_to_many.js">nodejs/sequelize/raw/many_to_many.js</a> on <a href="sql#postgresql">PostgreSQL</a> and <a href="sql#sqlite">SQLite</a>.</div><div class="p" id="_262">There is only a very finite number of possible reasonable queries on a two table many to many relationship with a join table. A decent ORM <i>has</i> to be able to do them all.</div><div class="p" id="_263">If it can do all those queries, then the ORM can actually do a good subset of SQL and is decent. If not, it can't, and this will make you suffer. E.g. <a href="sequelize">Sequelize</a> v5 is such an ORM that makes you suffer.</div><div class="p" id="_264">The next thing to check are transactions.</div><div class="p" id="_265">Basically, all of those come up if you try to implement a blog <a href="#hello-world-program">hello world</a> world such as <a href="web-technology#gothinkster-realworld">gothinkster/realworld</a> <i>correctly</i>, i.e. without unnecessary inefficiencies due to your ORM on top of underlying SQL, and dealing with concurrency.</div><div class="h" id="type-of-database"><div class="notnav"><h3><a href="type-of-database">Type of database</a></h3><span class="hover-meta"> <a class="split" href="type-of-database"></a><span class="metrics"><span class="wcntr"> Words: 7k</span><span class="dcnt"> Articles: 110</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#database" class="u"> Database</a><a href="#_toc/type-of-database" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/type-of-database"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="nosql"><div class="notnav"><h4><a href="nosql">NoSQL</a></h4><span class="hover-meta"> <a class="split" href="nosql"></a><span class="metrics"><span class="wcntr"> Words: 104</span><span class="dcnt"> Articles: 5</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#type-of-database" class="u"> Type of database</a><a href="#_toc/nosql" class="toc"></a><a href="https://en.wikipedia.org/wiki/NoSQL" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/nosql"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="leveldb"><div class="notnav"><h5><a href="leveldb">LevelDB</a></h5><span class="hover-meta"> <a class="split" href="leveldb"></a><span class="metrics"><span class="wcntr"> Words: 30</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#nosql" class="u"> NoSQL</a><a href="#_toc/leveldb" class="toc"></a><a href="https://en.wikipedia.org/wiki/LevelDB" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/leveldb"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_266">One "LevelDB" database contains multiple file in a directory. Off the bat inferior to <a href="sql#sqlite">SQLite</a> which stores everything in a single file!</div><div class="h" id="dump-leveldb"><div class="notnav"><h6><a href="dump-leveldb">Dump LevelDB</a></h6><span class="hover-meta"> <a class="split" href="dump-leveldb"></a><span class="metrics"><span class="wcntr"> Words: 9</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#leveldb" class="u"> LevelDB</a><a href="#_toc/dump-leveldb" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/dump-leveldb"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="leveldbdumper"><div class="notnav"><h6 data-level="7"><a href="leveldbdumper">LevelDBDumper</a></h6><span class="hover-meta"> <a class="split" href="leveldbdumper"></a><span class="metrics"><span class="wcntr"> Words: 9</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#dump-leveldb" class="u"> Dump LevelDB</a><a href="#_toc/leveldbdumper" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/leveldbdumper"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_267"><a href="https://github.com/mdawsonuk/LevelDBDumper">github.com/mdawsonuk/LevelDBDumper</a></div><div class="p" id="_268"><a href="https://github.com/mdawsonuk/LevelDBDumper/tree/e750a27ff58443ecc410b5c16abbdc539d617387#installation">github.com/mdawsonuk/LevelDBDumper/tree/e750a27ff58443ecc410b5c16abbdc539d617387#installation</a> worked on <a href="systems-programming#ubuntu-23-10">Ubuntu 23.10</a> Annoying installation, but worked: <a href="https://github.com/mdawsonuk/LevelDBDumper/issues/13">github.com/mdawsonuk/LevelDBDumper/issues/13</a></div><div class="p" id="_269">Initial issues off-the-bat:<div class="list"><ul id="_270"><li id="_271"><a href="https://github.com/mdawsonuk/LevelDBDumper/issues/13">github.com/mdawsonuk/LevelDBDumper/issues/13</a></li><li id="_272"><a href="https://github.com/mdawsonuk/LevelDBDumper/issues/14">github.com/mdawsonuk/LevelDBDumper/issues/14</a></li><li id="_273"><a href="https://github.com/mdawsonuk/LevelDBDumper/issues/15">github.com/mdawsonuk/LevelDBDumper/issues/15</a></li></ul></div></div><div class="h" id="mongodb"><div class="notnav"><h5><a href="mongodb">MongoDB</a></h5><span class="hover-meta"> <a class="split" href="mongodb"></a><span class="metrics"><span class="wcntr"> Words: 74</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#nosql" class="u"> NoSQL</a><a href="#_toc/mongodb" class="toc"></a><a href="https://en.wikipedia.org/wiki/MongoDB" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/mongodb"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_274">List databases:<div class="code" id="_275"><div><pre><code>echo 'show dbs' | mongo</code></pre></div></div></div><div class="p" id="_276">Delete database:<div class="code" id="_277"><div><pre><code>use mydb db.dropDatabase()</code></pre></div></div>or:<div class="code" id="_278"><div><pre><code>echo 'db.dropDatabase()' | mongo mydb</code></pre></div></div></div><div class="p" id="_279">View collections within a database:<div class="code" id="_280"><div><pre><code>echo 'db.getCollectionNames()' | mongo mydb</code></pre></div></div></div><div class="p" id="_281">Show all data from one of the collections: <a href="https://stackoverflow.com/questions/24985684/mongodb-show-all-contents-from-all-collections">stackoverflow.com/questions/24985684/mongodb-show-all-contents-from-all-collections</a><div class="code" id="_282"><div><pre><code>echo 'db.collectionName.find()' | mongo mydb</code></pre></div></div></div><div class="h" id="install-mongodb-on-ubuntu"><div class="notnav"><h6><a href="install-mongodb-on-ubuntu">Install MongoDB on Ubuntu</a></h6><span class="hover-meta"> <a class="split" href="install-mongodb-on-ubuntu"></a><span class="metrics"><span class="wcntr"> Words: 33</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#mongodb" class="u"> MongoDB</a><a href="#_toc/install-mongodb-on-ubuntu" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/install-mongodb-on-ubuntu"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_283">Tested as of Ubuntu 20.04, there is no Mongo package available by default due to their change to <a href="law#server-side-public-license">Server Side Public License</a>, which Debian opposed. Therefore, you have to add their custom PPA as mentioned at: <a href="https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/">docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/</a></div><div class="h" id="relational-database"><div class="notnav"><h4><a href="relational-database">Relational database</a></h4><span class="hover-meta"> <a class="split" href="relational-database"></a><span class="metrics"><span class="wcntr"> Words: 7k</span><span class="dcnt"> Articles: 103</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#type-of-database" class="u"> Type of database</a><a href="#_toc/relational-database" class="toc"></a><a href="https://en.wikipedia.org/wiki/Relational_database" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/relational-database"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="relational-database-management-system"><div class="notnav"><h5><a href="relational-database-management-system">Relational database management system <span class="meta">(RDBMS)</span></a></h5><span class="hover-meta"> <a class="split" href="relational-database-management-system"></a><span class="metrics"><span class="wcntr"> Words: 7k</span><span class="dcnt"> Articles: 102</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#relational-database" class="u"> Relational database</a><a href="#_toc/relational-database-management-system" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/relational-database-management-system"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="#database-management-system">Database management system</a></span></div></nav></div><div class="h" id="sql"><div class="notnav"><h6><a href="sql">SQL</a></h6><span class="hover-meta"> <a class="split" href="software-split"></a><span class="metrics"><span class="wcntr"> Words: 6k</span><span class="dcnt"> Articles: 101</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#relational-database-management-system" class="u"> Relational database management system</a><a href="#_toc/sql" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/sql"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_286"><a href="sql">This section is present in another page, follow this link to view it.</a></div><div class="h" id="database-feature"><div class="notnav"><h3><a href="database-feature">Database feature</a></h3><span class="hover-meta"> <a class="split" href="database-feature"></a><span class="metrics"><span class="wcntr"> Words: 70</span><span class="dcnt"> Articles: 10</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#database" class="u"> Database</a><a href="#_toc/database-feature" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/database-feature"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="acid-database"><div class="notnav"><h4><a href="acid-database">ACID <span class="meta">(database)</span></a></h4><span class="hover-meta"> <a class="split" href="acid-database"></a><span class="metrics"><span class="wcntr"> Words: 70</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#database-feature" class="u"> Database feature</a><a href="#_toc/acid-database" class="toc"></a><a href="https://en.wikipedia.org/wiki/ACID_(database)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/acid-database"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="atomicity-database-systems"><div class="notnav"><h5><a href="atomicity-database-systems">Atomicity <span class="meta">(database systems)</span></a></h5><span class="hover-meta"> <a class="split" href="atomicity-database-systems"></a><span class="metrics"><span class="wcntr"> Words: 45</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#acid-database" class="u"> ACID (database)</a><a href="#_toc/atomicity-database-systems" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/atomicity-database-systems"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_287">This means that e.g. if you do an <code>UPDATE</code> query on multiple rows, and power goes out half way, either all update, or none update.</div><div class="p" id="_288">This is different from <a href="#isolation-database-systems">isolation</a>, which considers instead what can or cannot happen when multiple queries are running in parallel.</div><div class="h" id="isolation-database-systems"><div class="notnav"><h5><a href="isolation-database-systems">Isolation <span class="meta">(database systems)</span></a></h5><span class="hover-meta"> <a class="split" href="isolation-database-systems"></a><span class="metrics"><span class="wcntr"> Words: 25</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#acid-database" class="u"> ACID (database)</a><a href="#_toc/isolation-database-systems" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/isolation-database-systems"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_289">Determines what can or cannot happen when multiple queries are running in parallel.</div><div class="p" id="_290">See <a href="sql#sql-transaction-isolation-level">Section "SQL transaction isolation level"</a> for the most common context under which this is discussed: <a href="sql">SQL</a>.</div><div class="h" id="database-trigger"><div class="notnav"><h4><a href="database-trigger">Database trigger</a></h4><span class="hover-meta"> <a class="split" href="database-trigger"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#database-feature" class="u"> Database feature</a><a href="#_toc/database-trigger" class="toc"></a><a href="https://en.wikipedia.org/wiki/Database_trigger" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/database-trigger"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="sql#iso-sql-trigger-syntax">ISO SQL TRIGGER syntax</a></li><li><a href="sql#sql-trigger">SQL TRIGGER</a></li></ul></div></div><div class="h" id="full-text-search"><div class="notnav"><h4><a href="full-text-search">Full-text search</a></h4><span class="hover-meta"> <a class="split" href="full-text-search"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#database-feature" class="u"> Database feature</a><a href="#_toc/full-text-search" class="toc"></a><a href="https://en.wikipedia.org/wiki/Full-text_search" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/full-text-search"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="sql#postgresql-full-text-search">PostgreSQL full-text search</a></li></ul></div></div><div class="h" id="stored-procedure"><div class="notnav"><h4><a href="stored-procedure">Stored procedure</a></h4><span class="hover-meta"> <a class="split" href="stored-procedure"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#database-feature" class="u"> Database feature</a><a href="#_toc/stored-procedure" class="toc"></a><a href="https://en.wikipedia.org/wiki/Stored_procedure" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/stored-procedure"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="sql#sql-stored-procedure">SQL stored procedure</a></li></ul></div></div><div class="h" id="table-relationship"><div class="notnav"><h4><a href="table-relationship">Table relationship</a></h4><span class="hover-meta"> <a class="split" href="table-relationship"></a><span class="metrics"><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#database-feature" class="u"> Database feature</a><a href="#_toc/table-relationship" class="toc"></a><a href="https://en.wikipedia.org/wiki/Associative_entity" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/table-relationship"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="one-to-one-data-model"><div class="notnav"><h5><a href="one-to-one-data-model">One-to-one <span class="meta">(data-model)</span></a></h5><span class="hover-meta"> <a class="split" href="one-to-one-data-model"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#table-relationship" class="u"> Table relationship</a><a href="#_toc/one-to-one-data-model" class="toc"></a><a href="https://en.wikipedia.org/wiki/One-to-one_(data-model)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/one-to-one-data-model"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="one-to-many"><div class="notnav"><h5><a href="one-to-many">One-to-many <span class="meta">(Many-to-one)</span></a></h5><span class="hover-meta"> <a class="split" href="one-to-many"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#table-relationship" class="u"> Table relationship</a><a href="#_toc/one-to-many" class="toc"></a><a href="https://en.wikipedia.org/wiki/One-to-many_(data_model)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/one-to-many"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="many-to-many"><div class="notnav"><h5><a href="many-to-many">Many-to-many</a></h5><span class="hover-meta"> <a class="split" href="many-to-many"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#table-relationship" class="u"> Table relationship</a><a href="#_toc/many-to-many" class="toc"></a><a href="https://en.wikipedia.org/wiki/Many-to-many_(data_model)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/many-to-many"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="file-manager"><div class="notnav"><h2><a href="file-manager">File manager</a></h2><span class="hover-meta"> <a class="split" href="file-manager"></a><span class="metrics"><span class="wcntr"> Words: 62</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/file-manager" class="toc"></a><a href="https://en.wikipedia.org/wiki/File_manager" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/file-manager"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_292"><a href="ciro-santilli">Ciro Santilli</a> used to use file managers in the past.</div><div class="p" id="_293">But he finally converted to a shell <code>cd</code> aliases that auto-<code>ls</code>: <a href="https://github.com/cirosantilli/dotfiles/blob/a51bcc324f0cff0eddd4c3bb8654ec223a0adb7b/home/.bashrc#L1058">github.com/cirosantilli/dotfiles/blob/a51bcc324f0cff0eddd4c3bb8654ec223a0adb7b/home/.bashrc#L1058</a></div><div class="h" id="krusader"><div class="notnav"><h3><a href="krusader">Krusader</a></h3><span class="hover-meta"> <a class="split" href="krusader"></a><span class="metrics"><span class="wcntr"> Words: 28</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#file-manager" class="u"> File manager</a><a href="#_toc/krusader" class="toc"></a><a href="https://en.wikipedia.org/wiki/Krusader" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/krusader"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_294">The most powerful <a href="#graphical-user-interface">GUI</a> <a href="#file-manager">file manager</a> ever?? Infinite configurability??</div><div class="p" id="_295"><a href="ciro-santilli">Ciro Santilli</a> wasted some time on it before he gave up on file managers altogether and started using only the <a href="#command-line-interface">CLI</a> with a few aliases.</div><div class="h" id="ranger-file-manager"><div class="notnav"><h3><a href="ranger-file-manager">Ranger <span class="meta">(file manager)</span></a></h3><span class="hover-meta"> <a class="split" href="ranger-file-manager"></a><span class="metrics"><span class="wcntr"> Words: 13</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#file-manager" class="u"> File manager</a><a href="#_toc/ranger-file-manager" class="toc"></a><a href="https://en.wikipedia.org/wiki/Ranger_(file_manager)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/ranger-file-manager"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_296"><a href="ciro-santilli">Ciro Santilli</a> considered it before he stopped using file managers altogether, it is not bad.</div><div class="h" id="file-sharing"><div class="notnav"><h2><a href="file-sharing">File sharing</a></h2><span class="hover-meta"> <a class="split" href="file-sharing"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/file-sharing" class="toc"></a><a href="https://en.wikipedia.org/wiki/File_sharing" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/file-sharing"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="bittorrent"><div class="notnav"><h3><a href="bittorrent">BitTorrent</a></h3><span class="hover-meta"> <a class="split" href="bittorrent"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#file-sharing" class="u"> File sharing</a><a href="#_toc/bittorrent" class="toc"></a><a href="https://en.wikipedia.org/wiki/BitTorrent" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/bittorrent"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="game-engine"><div class="notnav"><h2><a href="game-engine">Game engine</a></h2><span class="hover-meta"> <a class="split" href="game-engine"></a><span class="metrics"><span class="wcntr"> Words: 47</span><span class="dcnt"> Articles: 5</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/game-engine" class="toc"></a><a href="https://en.wikipedia.org/wiki/Game_engine" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/game-engine"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="art#game">Game</a></span></div></nav></div><div class="p" id="_298">A library to make <a href="art#game">games</a>.</div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="programming-language#javascript-game-engine">JavaScript game engine</a></li></ul></div></div><div class="h" id="cocos2d"><div class="notnav"><h3><a href="cocos2d">Cocos2d</a></h3><span class="hover-meta"> <a class="split" href="cocos2d"></a><span class="metrics"><span class="wcntr"> Words: 19</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#game-engine" class="u"> Game engine</a><a href="#_toc/cocos2d" class="toc"></a><a href="https://en.wikipedia.org/wiki/Cocos2d" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/cocos2d"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_299"><a href="ciro-santilli">Ciro Santilli</a> considered this as the basis for <a href="todo#ciro-s-2d-reinforcement-learning-games">Ciro's 2D reinforcement learning games</a>, but ultimately decided it was a bit too messy. Nice overall though.</div><div class="h" id="rpg-maker"><div class="notnav"><h3><a href="rpg-maker">RPG Maker</a></h3><span class="hover-meta"> <a class="split" href="rpg-maker"></a><span class="metrics"><span class="wcntr"> Words: 15</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#game-engine" class="u"> Game engine</a><a href="#_toc/rpg-maker" class="toc"></a><a href="https://en.wikipedia.org/wiki/RPG_Maker" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/rpg-maker"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_300">The one true game engine!</div><div class="figure"><figure id="video-reviewing-a-bunch-of-rpg-maker-games-by-majuular-2022"><div class="float-wrap"><iframe width="560" height="315" loading="lazy" src="https://www.youtube.com/embed/kHoCSK1ikfI" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div><figcaption><a href="#video-reviewing-a-bunch-of-rpg-maker-games-by-majuular-2022"><span class="caption-prefix">Video 2. </span></a><div class="title">Reviewing a Bunch of RPG Maker Games by Majuular (2022)</div> <a href="https://www.youtube.com/watch?v=kHoCSK1ikfI">Source</a>. </figcaption></figure></div><div class="h" id="unity-game-engine"><div class="notnav"><h3><a href="unity-game-engine">Unity <span class="meta">(game engine)</span></a></h3><span class="hover-meta"> <a class="split" href="unity-game-engine"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#game-engine" class="u"> Game engine</a><a href="#_toc/unity-game-engine" class="toc"></a><a href="https://en.wikipedia.org/wiki/Unity_(game_engine)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/unity-game-engine"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="unity-based-software"><div class="notnav"><h4><a href="unity-based-software">Unity-based software</a></h4><span class="hover-meta"> <a class="split" href="unity-based-software"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#unity-game-engine" class="u"> Unity (game engine)</a><a href="#_toc/unity-based-software" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/unity-based-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="biology#primer-youtube-channel">Primer</a></li><li><a href="biology#the-bibites">The Bibites</a></li></ul></div></div><div class="h" id="urho3d"><div class="notnav"><h3><a href="urho3d">Urho3D</a></h3><span class="hover-meta"> <a class="split" href="urho3d"></a><span class="metrics"><span class="wcntr"> Words: 8</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#game-engine" class="u"> Game engine</a><a href="#_toc/urho3d" class="toc"></a><a href="https://en.wikipedia.org/wiki/Urho3D" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/urho3d"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_301">Their project lead as of 2018 was pro-CCP: <a href="https://github.com/cirosantilli/china-dictatorship/blob/aa1176c57fc2929465294e520b43b50d44e202ba/communities-that-censor-politics.md">github.com/cirosantilli/china-dictatorship/blob/aa1176c57fc2929465294e520b43b50d44e202ba/communities-that-censor-politics.md</a></div><div class="h" id="geographic-information-system"><div class="notnav"><h2><a href="geographic-information-system">Geographic information system <span class="meta">(GIS)</span></a></h2><span class="hover-meta"> <a class="split" href="geographic-information-system"></a><span class="metrics"><span class="wcntr"> Words: 389</span><span class="dcnt"> Articles: 10</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/geographic-information-system" class="toc"></a><a href="https://en.wikipedia.org/wiki/Geographic_information_system" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/geographic-information-system"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="geographic-information-system-file-format"><div class="notnav"><h3><a href="geographic-information-system-file-format">Geographic information system file format</a></h3><span class="hover-meta"> <a class="split" href="geographic-information-system-file-format"></a><span class="metrics"><span class="wcntr"> Words: 20</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#geographic-information-system" class="u"> Geographic information system</a><a href="#_toc/geographic-information-system-file-format" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/geographic-information-system-file-format"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="keyhole-markup-language"><div class="notnav"><h4><a href="keyhole-markup-language">Keyhole Markup Language <span class="meta">(KML)</span></a></h4><span class="hover-meta"> <a class="split" href="keyhole-markup-language"></a><span class="metrics"><span class="wcntr"> Words: 20</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#geographic-information-system-file-format" class="u"> Geographic information system file format</a><a href="#_toc/keyhole-markup-language" class="toc"></a><a href="https://en.wikipedia.org/wiki/Keyhole_Markup_Language" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/keyhole-markup-language"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_304">Originally by <a href="#keyhole-inc">Keyhole Inc.</a>, which the nbecame <a href="#google-maps">Google Maps</a>, but the format seems standardized and has non-Google support, so should be OK.</div><div class="h" id="list-of-geographic-information-systems"><div class="notnav"><h3><a href="list-of-geographic-information-systems">List of geographic information systems</a></h3><span class="hover-meta"> <a class="split" href="list-of-geographic-information-systems"></a><span class="metrics"><span class="wcntr"> Words: 369</span><span class="dcnt"> Articles: 7</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#geographic-information-system" class="u"> Geographic information system</a><a href="#_toc/list-of-geographic-information-systems" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/list-of-geographic-information-systems"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="google-maps"><div class="notnav"><h4><a href="google-maps">Google Maps</a></h4><span class="hover-meta"> <a class="split" href="google-maps"></a><span class="metrics"><span class="wcntr"> Words: 84</span><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-geographic-information-systems" class="u"> List of geographic information systems</a><a href="#_toc/google-maps" class="toc"></a><a href="https://en.wikipedia.org/wiki/Google_Maps" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/google-maps"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="google#google-product">Google product</a></span></div></nav></div><div class="p" id="_306">Owned/developed by <a href="google">Google</a> as of 2020.</div><div class="p" id="_307">Early on jumpstarted from several acquisitions, notably <a href="#keyhole-inc">Keyhole Inc.</a> and <a href="#where-2-technologies">Where 2 Technologies</a>.</div><div class="h" id="keyhole-inc"><div class="notnav"><h5><a href="keyhole-inc">Keyhole Inc.</a></h5><span class="hover-meta"> <a class="split" href="keyhole-inc"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#google-maps" class="u"> Google Maps</a><a href="#_toc/keyhole-inc" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/keyhole-inc"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="where-2-technologies"><div class="notnav"><h5><a href="where-2-technologies">Where 2 Technologies</a></h5><span class="hover-meta"> <a class="split" href="where-2-technologies"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#google-maps" class="u"> Google Maps</a><a href="#_toc/where-2-technologies" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/where-2-technologies"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="google-street-view"><div class="notnav"><h5><a href="google-street-view">Google Street View</a></h5><span class="hover-meta"> <a class="split" href="google-street-view"></a><span class="metrics"><span class="wcntr"> Words: 70</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#google-maps" class="u"> Google Maps</a><a href="#_toc/google-street-view" class="toc"></a><a href="https://en.wikipedia.org/wiki/Google_Street_View" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/google-street-view"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_308">Street View's go into the past mode is the dream of every archaeologist. Ciro can only dream of a magic street view that allows going back to earlier centuries and beyond... isn't it amazing to think that people in the future will have that ability to time travel back to around the year 2006? Ciro wonders how long <a href="google">Google</a> will be able to keep storing data like that.</div><div class="p" id="_309">Thanks, <a href="#keyhole-inc">CIA</a>.</div><div class="h" id="openstreetmap"><div class="notnav"><h4><a href="openstreetmap">OpenStreetMap <span class="meta">(OSM)</span></a></h4><span class="hover-meta"> <a class="split" href="openstreetmap"></a><span class="metrics"><span class="wcntr"> Words: 267</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-geographic-information-systems" class="u"> List of geographic information systems</a><a href="#_toc/openstreetmap" class="toc"></a><a href="https://en.wikipedia.org/wiki/OpenStreetMap" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/openstreetmap"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_311">It is rare to find a project with such a ridiculously high importance over funding ratio.</div><div class="p" id="_312">E.g., as of 2020, their help login <a href="https://help.openstreetmap.org/">help.openstreetmap.org/</a> shows MyOpenID as an option, which was discontinued in 2014, and not <a href="google">Google</a> <a href="#oauth">OAuth</a>.</div><div class="p" id="_313">They do still seem to have a bit more activity than <a href="https://gis.stackexchange.com/questions/tagged/openstreetmap">gis.stackexchange.com/questions/tagged/openstreetmap</a> on <a href="stack-overflow#stack-exchange">Stack Exchange</a>.</div><div class="p" id="_314">Complaints:<div class="list"><ul id="_315"><li id="_316"><a href="linguistics#transliteration">Transliteration</a> is off by default!...... <a href="https://wiki.openstreetmap.org/wiki/Translation">wiki.openstreetmap.org/wiki/Translation</a> You just have to learn all scripts ever. Good luck with the <a href="linguistics#chinese-character">Chinese characters</a>. Genius.</li><li id="_317">In order to see information about places, you have to click "Query features" on the toolbar first. Who made such a terrible UI? Direct click is a much, and so easy to implement?</li><li id="_318">It is impossible to discern different types of paths and other walking path symbols, the symbols are too small, and just scale down to a line no matter how much you zoom in.</li><li id="_319">Power lines are way too visible. While that is kind of cool, it is useless and distracting to most people most of the time.</li><li id="_320">No street-level imagery...: <a href="https://help.openstreetmap.org/questions/1178/adding-photos">help.openstreetmap.org/questions/1178/adding-photos</a></li><li id="_321">No <a href="https://ourbigbook.com/go/topic/aerial-imagery">aerial imagery</a>: <a href="https://help.openstreetmap.org/questions/6849/how-can-i-see-the-aerial-imagery-without-editing-the-map">help.openstreetmap.org/questions/6849/how-can-i-see-the-aerial-imagery-without-editing-the-map</a> But that is kind of understandable, as that one might not be free.</li><li id="_322"><div class="p" id="_323">No restaurant ratings: <a href="https://help.openstreetmap.org/questions/64852/ratings-for-pois">help.openstreetmap.org/questions/64852/ratings-for-pois</a> because it is "Subjective". OMG those people, such a huge value powerhouse wasted.</div><div class="p" id="_324">Not just for restaurants, but for other things as well, e.g. sharing of good cycle circuits.</div></li></ul></div></div><div class="p" id="_325">All of this is a shame, because they do have some incredible data that you cannot find easily on other maps because people just edited it up.</div><div class="h" id="osmand"><div class="notnav"><h5><a href="osmand">OsmAnd</a></h5><span class="hover-meta"> <a class="split" href="osmand"></a><span class="metrics"><span class="wcntr"> Words: 32</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#openstreetmap" class="u"> OpenStreetMap</a><a href="#_toc/osmand" class="toc"></a><a href="https://en.wikipedia.org/wiki/OsmAnd" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/osmand"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_326"><a href="https://github.com/osmandapp/Osmand">github.com/osmandapp/Osmand</a></div><div class="p" id="_327">Kind of works! Notably, has the amazing cycling database offline for you, if you fall within the 6 area downloads. It is worth supporting these people beyond the 6 free downloads however.</div><div class="h" id="ordnance-survey"><div class="notnav"><h4><a href="ordnance-survey">Ordnance Survey</a></h4><span class="hover-meta"> <a class="split" href="ordnance-survey"></a><span class="metrics"><span class="wcntr"> Words: 18</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-geographic-information-systems" class="u"> List of geographic information systems</a><a href="#_toc/ordnance-survey" class="toc"></a><a href="https://en.wikipedia.org/wiki/Ordnance_Survey" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/ordnance-survey"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_328">Has some of the best map data available for the <a href="united-kingdom">United Kingdom</a>, but their data appears to be proprietary?</div><div class="h" id="integrated-development-environment"><div class="notnav"><h2><a href="integrated-development-environment">Integrated development environment <span class="meta">(IDE)</span></a></h2><span class="hover-meta"> <a class="split" href="integrated-development-environment"></a><span class="metrics"><span class="wcntr"> Words: 808</span><span class="dcnt"> Articles: 21</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/integrated-development-environment" class="toc"></a><a href="https://en.wikipedia.org/wiki/Integrated_development_environment" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/integrated-development-environment"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="p" id="_331">IDEs are absolutely essential for developing complex software.</div><div class="p" id="_332">The funny thing is that you don't notice this until someone shows it to you. But once you see it, there is not turning back, just like <a href="apple-inc#steve-jobs-customers-don-t-know-what-they-want-quote">Steve Jobs customers don't know what they want quote</a>.</div><div class="p" id="_333">Unfortunately, after the <a href="https://movingfulcrum.com/the-fall-of-eclipse/">Fall of Eclipse</a> (<a href="https://web.archive.org/web/20190824081229/https://movingfulcrum.com/the-fall-of-eclipse/">archive</a>), the IDE landscape in 2019 is horrible and split between:<div class="list"><ul id="_334"><li id="_335">highly buggy but still feature rich Eclipse</li><li id="_336">many may many other feature lacking options using possibly more trendy and forward lasting implementations like <a href="https://en.wikipedia.org/wiki/Electron_(software_framework)">Electron</a></li><li id="_337">awesome cross-platform proprietary <a href="https://en.wikipedia.org/wiki/JetBrains">JetBrains</a> IDEs</li><li id="_338">the God-like Windows-only proprietary language-lacking Visual Studio</li></ul></div></div><div class="p" id="_339">Programmers of the world: unite! Focus on one IDE, and make it work for all languages and all build systems. Give it all the features that Eclipse has, but none of the bugginess. Work with top project to make sure the IDE works for all top projects.</div><div class="p" id="_340">Projects of the world: support one IDE, with in-tree configuration. Complex integration is often required between the IDE and the build system, and successful projects must to that once for all developers. Either do this, or watch you complex project wither away.</div><div class="p" id="_341">Build tool maintainers: make it possible for IDEs to support your tool! E.g., implement <a href="https://clang.llvm.org/docs/JSONCompilationDatabase.html">JSON Compilation Database</a> output so that IDEs can read the exact compiler commands from that, in order to automatically determine how files should be parsed! Or better, just use libllvm in your IDE itself as the main parser.</div><div class="p" id="_342">Ciro is evaluating some IDEs at: <a href="https://github.com/cirosantilli/ide-test-projects">github.com/cirosantilli/ide-test-projects</a></div><div class="h" id="text-editor"><div class="notnav"><h3><a href="text-editor">Text editor</a></h3><span class="hover-meta"> <a class="split" href="text-editor"></a><span class="metrics"><span class="wcntr"> Words: 35</span><span class="dcnt"> Articles: 6</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#integrated-development-environment" class="u"> Integrated development environment</a><a href="#_toc/text-editor" class="toc"></a><a href="https://en.wikipedia.org/wiki/Text_editor" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/text-editor"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="javascript-text-editor"><div class="notnav"><h4><a href="javascript-text-editor">JavaScript text editor</a></h4><span class="hover-meta"> <a class="split" href="javascript-text-editor"></a><span class="metrics"><span class="wcntr"> Words: 35</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#text-editor" class="u"> Text editor</a><a href="#_toc/javascript-text-editor" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/javascript-text-editor"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="programming-language#javascript-library">JavaScript library</a></span></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="#javascript-wysiwyg-text-editor">JavaScript WYSIWYG text editor</a></li></ul></div></div><div class="h" id="monaco-editor"><div class="notnav"><h5><a href="monaco-editor">Monaco <span class="meta">(editor)</span></a></h5><span class="hover-meta"> <a class="split" href="monaco-editor"></a><span class="metrics"><span class="wcntr"> Words: 35</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#javascript-text-editor" class="u"> JavaScript text editor</a><a href="#_toc/monaco-editor" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/monaco-editor"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_344">Either extracted from, or designed for, <a href="#visual-studio-code">vscode</a> by <a href="microsoft">Microsoft</a>:<div class="list"><ul id="_345"><li id="_346"><a href="https://github.com/microsoft/monaco-editor">github.com/microsoft/monaco-editor</a></li><li id="_347"><a href="https://microsoft.github.io/monaco-editor/">microsoft.github.io/monaco-editor/</a></li></ul></div></div><div class="p" id="_348">However also at the same time very limited integration with <a href="#visual-studio-code">vscode</a>, that makes using it for VScode compatibility almost useless, e.g.:<div class="list"><ul id="_349"><li id="_350">you can't reuse the syntax defintions!<div class="list"><ul id="_351"><li id="_352"><a href="https://stackoverflow.com/questions/37936919/writing-visual-studio-code-syntaxes-in-monarch">stackoverflow.com/questions/37936919/writing-visual-studio-code-syntaxes-in-monarch</a></li><li id="_353"><a href="https://github.com/Microsoft/vscode/issues/216">github.com/Microsoft/vscode/issues/216</a></li></ul></div></li></ul></div></div><div class="h" id="wysiwyg-text-editor"><div class="notnav"><h4><a href="wysiwyg-text-editor">WYSIWYG text editor</a></h4><span class="hover-meta"> <a class="split" href="wysiwyg-text-editor"></a><span class="metrics"><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#text-editor" class="u"> Text editor</a><a href="#_toc/wysiwyg-text-editor" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/wysiwyg-text-editor"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="#wysiwyg">WYSIWYG</a></span></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="brain#zettlr">Zettlr</a></li><li><a href="brain#zim">Zim</a></li></ul></div></div><div class="h" id="javascript-wysiwyg-text-editor"><div class="notnav"><h5><a href="javascript-wysiwyg-text-editor">JavaScript WYSIWYG text editor</a></h5><span class="hover-meta"> <a class="split" href="javascript-wysiwyg-text-editor"></a><span class="metrics"><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#wysiwyg-text-editor" class="u"> WYSIWYG text editor</a><a href="#_toc/javascript-wysiwyg-text-editor" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/javascript-wysiwyg-text-editor"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="#javascript-text-editor">JavaScript text editor</a></span></div></nav></div><div class="h" id="ckeditor"><div class="notnav"><h6><a href="ckeditor">CKEditor</a></h6><span class="hover-meta"> <a class="split" href="ckeditor"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#javascript-wysiwyg-text-editor" class="u"> JavaScript WYSIWYG text editor</a><a href="#_toc/ckeditor" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/ckeditor"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="list"><ul id="_356"><li id="_357"><a href="https://ckeditor.com/">ckeditor.com/</a></li><li id="_358"><a href="https://github.com/ckeditor/ckeditor5">github.com/ckeditor/ckeditor5</a></li></ul></div><div class="h" id="tinymce"><div class="notnav"><h6><a href="tinymce">TinyMCE</a></h6><span class="hover-meta"> <a class="split" href="tinymce"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#javascript-wysiwyg-text-editor" class="u"> JavaScript WYSIWYG text editor</a><a href="#_toc/tinymce" class="toc"></a><a href="https://en.wikipedia.org/wiki/TinyMCE" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/tinymce"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="vim"><div class="notnav"><h3><a href="vim">Vim</a></h3><span class="hover-meta"> <a class="split" href="vim"></a><span class="metrics"><span class="wcntr"> Words: 121</span><span class="dcnt"> Articles: 5</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#integrated-development-environment" class="u"> Integrated development environment</a><a href="#_toc/vim" class="toc"></a><a href="https://en.wikipedia.org/wiki/Vim_(text_editor)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/vim"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_359">Before we get a decent open source <a href="#integrated-development-environment">integrated development environment</a>, what else can you do?</div><div class="p" id="_360">But also perfect for small one-off files when you don't have the patience to setup said <a href="#integrated-development-environment">IDE</a>.</div><div class="p" id="_361">vim's defaults are atrocious for the 21st century! Vundle is reasonable as an ad-hoc package manager, but it can't set fixed versions of packages:<div class="list"><ul id="_362"><li id="_363"><a href="https://stackoverflow.com/questions/15259868/vundle-plugin-install-concrete-version-of-plugin/67870413#67870413">stackoverflow.com/questions/15259868/vundle-plugin-install-concrete-version-of-plugin/67870413#67870413</a></li><li id="_364"><a href="https://github.com/VundleVim/Vundle.vim/pull/681">github.com/VundleVim/Vundle.vim/pull/681</a></li></ul></div></div><div class="h" id="gvim"><div class="notnav"><h4><a href="gvim">Gvim</a></h4><span class="hover-meta"> <a class="split" href="gvim"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#vim" class="u"> Vim</a><a href="#_toc/gvim" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/gvim"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="vader-vim"><div class="notnav"><h4><a href="vader-vim">vader.vim</a></h4><span class="hover-meta"> <a class="split" href="vader-vim"></a><span class="metrics"><span class="wcntr"> Words: 67</span><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#vim" class="u"> Vim</a><a href="#_toc/vader-vim" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/vader-vim"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_365"><a href="https://github.com/junegunn/vader.vim">github.com/junegunn/vader.vim</a></div><div class="p" id="_366">Vimscript <a href="#unit-test">unit testing</a>!!!</div><div class="h" id="plasticboy-vim-markdown"><div class="notnav"><h5><a href="plasticboy-vim-markdown">plasticboy/vim-markdown</a></h5><span class="hover-meta"> <a class="split" href="plasticboy-vim-markdown"></a><span class="metrics"><span class="wcntr"> Words: 16</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#vader-vim" class="u"> vader.vim</a><a href="#_toc/plasticboy-vim-markdown" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/plasticboy-vim-markdown"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_367"><a href="https://github.com/plasticboy/vim-markdown">github.com/plasticboy/vim-markdown</a></div><div class="p" id="_368"><a href="ciro-santilli">Ciro Santilli</a> contributed a bit to this, and was even given push rights, see also: see also: <a href="the-most-important-projects-done-by-ciro-santilli#ciro-santilli-s-minor-projects">Ciro Santilli's minor projects</a>.</div><div class="h" id="honza-vim-snippets"><div class="notnav"><h5><a href="honza-vim-snippets">honza/vim-snippets</a></h5><span class="hover-meta"> <a class="split" href="honza-vim-snippets"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#vader-vim" class="u"> vader.vim</a><a href="#_toc/honza-vim-snippets" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/honza-vim-snippets"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_369"><a href="https://github.com/honza/vim-snippets">github.com/honza/vim-snippets</a></div><div class="h" id="vimium"><div class="notnav"><h5><a href="vimium">Vimium</a></h5><span class="hover-meta"> <a class="split" href="vimium"></a><span class="metrics"><span class="wcntr"> Words: 49</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#vader-vim" class="u"> vader.vim</a><a href="#_toc/vimium" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/vimium"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="p" id="_371"><a href="https://vimium.github.io/">vimium.github.io/</a></div><div class="p" id="_372">Since you can't escape <a href="molecular-biology#feces">shitty</a> browser <a href="#graphical-user-interface">GUIs</a> and live in the command line, the next best thing you can do is to bring Vim bindings to your browser :-)</div><div class="p" id="_373">There is one major annoyance: you can't use ESC to leave the address bar focus, but using Tab as a workaround works:<div class="list"><ul id="_374"><li id="_375"><a href="https://superuser.com/a/1560178/128124">superuser.com/a/1560178/128124</a></li></ul></div></div><div class="h" id="eclipse-ide"><div class="notnav"><h3><a href="eclipse-ide">Eclipse <span class="meta">(IDE)</span></a></h3><span class="hover-meta"> <a class="split" href="eclipse-ide"></a><span class="metrics"><span class="wcntr"> Words: 335</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#integrated-development-environment" class="u"> Integrated development environment</a><a href="#_toc/eclipse-ide" class="toc"></a><a href="https://en.wikipedia.org/wiki/Eclipse_(software)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/eclipse-ide"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_376">Once upon a time (early 2010's), Eclipse dominated the IDE landscape and all was good. NetBeans was around too. And <a href="programming-language#java-programming-language">Java</a> was still unmarred by <a href="programming-language#google-llc-v-oracle-america-inc">Google LLC v. Oracle America, Inc.</a>.</div><div class="p" id="_377">But then something happened.</div><div class="p" id="_378">For some reason, Eclipse started to decay.</div><div class="p" id="_379">And the project that had once been a vibrant community of awesomeness, started to become... a zombie of its former self.</div><div class="p" id="_380">Buggyness started increasing. And not even hard to fix bugs. One liners that affect every user immediately after startup.</div><div class="p" id="_381">Sometimes, to Eclipse's defense they weren't "bugs". Just features that it became evident with time every programmer expected from a modern IDE.</div><div class="p" id="_382">But somehow the Eclipse community had a deep problem. A cancer. It had completely lost touch with user experience.</div><div class="p" id="_383">Perhaps is was due to the increasing interest of the several corporations that had adopted Eclipse as the base IDE for the proprietary solutions?</div><div class="p" id="_384">Perhaps.</div><div class="p" id="_385">Many users stuck to the IDE.</div><div class="p" id="_386">Some heroic efforts were made as plugins that drastically improved certain defects. The Darkest Dark plugin comes to mind.</div><div class="p" id="_387">But all those efforts required configuration. A setup time that most users simply don't have. The core devteam had become dumb and dead, unable to incorporate such changes.</div><div class="p" id="_388">This greatly opened up the space for other competing IDEs to come along. The "semi feature complete but at least easy to use and not so buggy" <a href="#visual-studio-code">Visual Studio Code</a> and the proprietary <a href="#jetbrains">JetBrains</a> IDEs being some of the most notable ones.</div><div class="p" id="_389">Using Eclipse as of the early 2020's is such a mixed experience. If you spend enough time to configure out the key buggyness, there are moments where you can feel "OMG, this feature is amazing".</div><div class="p" id="_390">But the effort is just too great, and soon another bug or obvious missing feature hits you and brings you back to reality.</div><div class="p" id="_391">Every young person uses <a href="#visual-studio-code">VS Code</a> now. Eclipse is dead, and there is no way back, usage will just continue dropping.</div><div class="p" id="_392">RIP, Eclipse. It wasn't meant to be.</div><div class="p" id="_393">Bibliography:<div class="list"><ul id="_394"><li id="_395"><a href="https://movingfulcrum.com/the-fall-of-eclipse/">movingfulcrum.com/the-fall-of-eclipse/</a> attributes the fall to Eclipse 4<div class="list"><ul id="_396"><li id="_397"><a href="https://www.reddit.com/r/programming/comments/8f0xns/the_fall_of_eclipse/">www.reddit.com/r/programming/comments/8f0xns/the_fall_of_eclipse/</a></li></ul></div></li><li id="_398"><a href="https://www.quora.com/Why-do-people-still-use-Eclipse-IDE">www.quora.com/Why-do-people-still-use-Eclipse-IDE</a></li></ul></div></div><div class="figure"><figure id="image-eclipse-ide-usage-from-2012-to-2016-according-to-a-jrebel-survey"><div class="float-wrap"><a href="https://www.jrebel.com/wp-content/uploads/2016/07/intellij-idea-overtakes-eclipse.png"><img src="https://www.jrebel.com/wp-content/uploads/2016/07/intellij-idea-overtakes-eclipse.png" loading="lazy" height="315"></a></div><figcaption><a href="#image-eclipse-ide-usage-from-2012-to-2016-according-to-a-jrebel-survey"><span class="caption-prefix">Figure 1. </span></a><div class="title"><a href="#eclipse-ide">Eclipse</a>. usage from 2012 to 2016 according to a JRebel survey</div>. <a href="https://www.jrebel.com/blog/java-trends-and-historical-data">Source</a>. </figcaption></figure></div><div class="h" id="jetbrains"><div class="notnav"><h3><a href="jetbrains">JetBrains</a></h3><span class="hover-meta"> <a class="split" href="jetbrains"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#integrated-development-environment" class="u"> Integrated development environment</a><a href="#_toc/jetbrains" class="toc"></a><a href="https://en.wikipedia.org/wiki/JetBrains" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/jetbrains"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="visual-studio-code"><div class="notnav"><h3><a href="visual-studio-code">Visual Studio Code <span class="meta">(VS Code, vscode)</span></a></h3><span class="hover-meta"> <a class="split" href="visual-studio-code"></a><span class="metrics"><span class="wcntr"> Words: 79</span><span class="dcnt"> Articles: 5</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#integrated-development-environment" class="u"> Integrated development environment</a><a href="#_toc/visual-studio-code" class="toc"></a><a href="https://en.wikipedia.org/wiki/Visual_Studio_Code" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/visual-studio-code"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="web-technology#software-that-uses-electron">Software that uses Electron</a></span></div></nav></div><div class="h" id="vscode-bug"><div class="notnav"><h4><a href="vscode-bug">vscode bug</a></h4><span class="hover-meta"> <a class="split" href="vscode-bug"></a><span class="metrics"><span class="wcntr"> Words: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#visual-studio-code" class="u"> Visual Studio Code</a><a href="#_toc/vscode-bug" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/vscode-bug"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_402">Persistent undo history:<div class="list"><ul id="_403"><li id="_404"><a href="https://github.com/microsoft/vscode/issues/43555">github.com/microsoft/vscode/issues/43555</a></li><li id="_405"><a href="https://stackoverflow.com/questions/67248384/how-to-keep-undo-history-after-closing-vscode">stackoverflow.com/questions/67248384/how-to-keep-undo-history-after-closing-vscode</a></li></ul></div></div><div class="h" id="vscode-vim"><div class="notnav"><h4><a href="vscode-vim">vscode Vim</a></h4><span class="hover-meta"> <a class="split" href="vscode-vim"></a><span class="metrics"><span class="wcntr"> Words: 5</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#visual-studio-code" class="u"> Visual Studio Code</a><a href="#_toc/vscode-vim" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/vscode-vim"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="list"><ul id="_406"><li id="_407"><code>undo</code> is broken beyond belief: <a href="https://github.com/VSCodeVim/Vim/issues/1490">github.com/VSCodeVim/Vim/issues/1490</a></li></ul></div><div class="h" id="vscode-howto"><div class="notnav"><h4><a href="vscode-howto">vscode HOWTO</a></h4><span class="hover-meta"> <a class="split" href="vscode-howto"></a><span class="metrics"><span class="wcntr"> Words: 71</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#visual-studio-code" class="u"> Visual Studio Code</a><a href="#_toc/vscode-howto" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/vscode-howto"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="vscode-jump-to-definition-broken"><div class="notnav"><h5><a href="vscode-jump-to-definition-broken">vscode jump to definition broken</a></h5><span class="hover-meta"> <a class="split" href="vscode-jump-to-definition-broken"></a><span class="metrics"><span class="wcntr"> Words: 16</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#vscode-howto" class="u"> vscode HOWTO</a><a href="#_toc/vscode-jump-to-definition-broken" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/vscode-jump-to-definition-broken"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_408">It is especially bad on large projects, unless you carefully whitelist only the small source directories:<div class="list"><ul id="_409"><li id="_410"><a href="https://stackoverflow.com/questions/37341849/vscode-go-to-definition-not-working/76193270#76193270">stackoverflow.com/questions/37341849/vscode-go-to-definition-not-working/76193270#76193270</a></li><li id="_411"><a href="https://stackoverflow.com/questions/62706944/vscode-go-to-definition-not-working-only-in-big-projects/76193292#76193292">stackoverflow.com/questions/62706944/vscode-go-to-definition-not-working-only-in-big-projects/76193292#76193292</a></li><li id="_412"><a href="https://stackoverflow.com/questions/30118107/vscode-intellisense-not-working">stackoverflow.com/questions/30118107/vscode-intellisense-not-working</a></li></ul></div></div><div class="h" id="vscode-restore-windows-after-restart"><div class="notnav"><h5><a href="vscode-restore-windows-after-restart">vscode restore windows after restart</a></h5><span class="hover-meta"> <a class="split" href="vscode-restore-windows-after-restart"></a><span class="metrics"><span class="wcntr"> Words: 55</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#vscode-howto" class="u"> vscode HOWTO</a><a href="#_toc/vscode-restore-windows-after-restart" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/vscode-restore-windows-after-restart"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_413">Having multiple windows is generally the only sane way to manage multiple projects. So how to reopen then after you:<div class="list"><ul id="_414"><li id="_415">restart the OS or logout?</li><li id="_416">close all window in some other way? It can't be by closing them one by one of course, or else only the last remains. Not sure such way exists.</li></ul></div></div><div class="p" id="_417">Bibliography;<div class="list"><ul id="_418"><li id="_419"><a href="https://stackoverflow.com/questions/72578102/vs-code-reopen-windows-after-restart">stackoverflow.com/questions/72578102/vs-code-reopen-windows-after-restart</a></li></ul></div></div><div class="h" id="killer-application"><div class="notnav"><h2><a href="killer-application">Killer application</a></h2><span class="hover-meta"> <a class="split" href="killer-application"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/killer-application" class="toc"></a><a href="https://en.wikipedia.org/wiki/Killer_application" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/killer-application"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="memory-management"><div class="notnav"><h2><a href="memory-management">Memory management</a></h2><span class="hover-meta"> <a class="split" href="memory-management"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/memory-management" class="toc"></a><a href="https://en.wikipedia.org/wiki/Memory_management" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/memory-management"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="garbage-collection-computer-science"><div class="notnav"><h2><a href="garbage-collection-computer-science">Garbage collection <span class="meta">(computer science)</span></a></h2><span class="hover-meta"> <a class="split" href="garbage-collection-computer-science"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/garbage-collection-computer-science" class="toc"></a><a href="https://en.wikipedia.org/wiki/Garbage_collection_(computer_science)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/garbage-collection-computer-science"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="messaging-software"><div class="notnav"><h2><a href="messaging-software">Messaging software</a></h2><span class="hover-meta"> <a class="split" href="software-split"></a><span class="metrics"><span class="wcntr"> Words: 1k</span><span class="dcnt"> Articles: 41</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/messaging-software" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/messaging-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_420"><a href="messaging-software">This section is present in another page, follow this link to view it.</a></div><div class="h" id="multimedia-software"><div class="notnav"><h2><a href="multimedia-software">Multimedia software</a></h2><span class="hover-meta"> <a class="split" href="multimedia-software"></a><span class="metrics"><span class="wcntr"> Words: 648</span><span class="dcnt"> Articles: 18</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/multimedia-software" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/multimedia-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="ffmpeg"><div class="notnav"><h3><a href="ffmpeg">FFmpeg</a></h3><span class="hover-meta"> <a class="split" href="ffmpeg"></a><span class="metrics"><span class="wcntr"> Words: 524</span><span class="dcnt"> Articles: 7</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#multimedia-software" class="u"> Multimedia software</a><a href="#_toc/ffmpeg" class="toc"></a><a href="https://en.wikipedia.org/wiki/FFmpeg" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/ffmpeg"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_421">FFmpeg is the <a href="computer-hardware#assembler-computing">assembler</a> of audio and video.</div><div class="p" id="_422">As a result, <a href="ciro-santilli">Ciro Santilli</a> who likes "lower level stuff", has had many many hours if image manipulation fun with this software, see e.g.:<div class="list"><ul id="_423"><li id="_424">the "Media" section of <a href="articles">the best articles by Ciro Articles</a>.</li><li id="_425"><a href="the-most-important-projects-done-by-ciro-santilli#image-ciro-knows-how-to-convert-videos-to-gifs">Figure "Ciro knows how to convert videos to GIFs"</a></li></ul></div></div><div class="p" id="_426">As older Ciro grows, the more he notices that FFmpeg can do basically any lower level audio video task. It is just an amazing piece of software, the immediate go-to for any low level operation.</div><div class="p" id="_427">FFmpeg was created by <a href="systems-programming#fabrice-bellard">Fabrice Bellard</a>, which Ciro deeply respects.</div><div class="p" id="_428">Resize a video: <a href="https://superuser.com/questions/624563/how-to-resize-a-video-to-make-it-smaller-with-ffmpeg">superuser.com/questions/624563/how-to-resize-a-video-to-make-it-smaller-with-ffmpeg</a>:<div class="code" id="_429"><div><pre><code>ffmpeg -i input.avi -filter:v scale=720:-1 -c:a copy output.mkv</code></pre></div></div>Unlike every other convention under the sun, the height in <code>scale</code> is the first number.</div><div class="h" id="ffmpeg-filter-graph"><div class="notnav"><h4><a href="ffmpeg-filter-graph">FFmpeg filter graph</a></h4><span class="hover-meta"> <a class="split" href="ffmpeg-filter-graph"></a><span class="metrics"><span class="wcntr"> Words: 198</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ffmpeg" class="u"> FFmpeg</a><a href="#_toc/ffmpeg-filter-graph" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/ffmpeg-filter-graph"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_430">Filter graphs are a thing of great beauty. What an amazingly obscure <a href="computer#domain-specific-language">domain-specific language</a>, but which can produce striking results with very little!!!</div><div class="p" id="_431">A quick example from <a href="https://stackoverflow.com/questions/59551013/how-to-generate-stereo-sine-wave-using-ffmpeg-with-different-frequencies-for-eac/77730492#77730492">stackoverflow.com/questions/59551013/how-to-generate-stereo-sine-wave-using-ffmpeg-with-different-frequencies-for-eac/77730492#77730492</a> illustrates some of the fundamentals:</div><div class="p" id="_432"><div class="code" id="_433"><div><pre><code>ffplay -autoexit -nodisp -f lavfi -i ' sine=frequency=500[a]; sine=frequency=1000[b]; [a][b]amerge, atrim=end=2 '</code></pre></div></div>which creates a graph:<div class="code" id="_434"><div><pre><code> +--------+ [sine=frequency=500]---&gt;[a]--&gt;| | | amerge |--&gt;[atrim]--&gt;[output] [sine=frequency=1000]--&gt;[b]--&gt;| | +--------+</code></pre></div></div>and plays 500 Hz on the left channel and 1000 Hz on the right channel for 2 seconds.</div><div class="p" id="_435">So we see the following syntax patterns:<div class="list"><ul id="_436"><li id="_437"><code>sine</code>, <code>amerge</code> and <code>atrim</code> are filters</li><li id="_438"><code>sine=frequency=500</code>: the first <code>=</code> says "araguments follow"<div class="list"><ul id="_439"><li id="_440"><code>frequency=500</code> sets the <code>frequency</code> argument of the <code>sine</code> filter</li><li id="_441">for multiple arguments the syntax is to separate arguments with colons e.g. <code>sine=frequency=500:duration=2</code></li></ul></div></li><li id="_442"><code>;</code>: separates statements</li><li id="_443"><code>[a]</code>, <code>[b]</code>: sets the name of an edge</li><li id="_444"><code>,</code>: creates unnamed edge between filters that have one input and one output</li></ul></div></div><div class="p" id="_445">A list of all filters can be obtained ith:<div class="code" id="_446"><div><pre><code>ffmpeg -filters</code></pre></div></div>and parameters for a single filter can be obtained with:<div class="code" id="_447"><div><pre><code>ffmpeg --help filter=sine</code></pre></div></div>Related question: <a href="https://stackoverflow.com/questions/69251087/in-ffmpeg-command-line-how-to-show-all-filter-settings-and-their-parameters-bef">stackoverflow.com/questions/69251087/in-ffmpeg-command-line-how-to-show-all-filter-settings-and-their-parameters-bef</a></div><div class="p" id="_448">TODO dump graph to <a href="art#ascii-art">ASCII art</a>? <a href="https://trac.ffmpeg.org/wiki/FilteringGuide#Visualizingfilters">trac.ffmpeg.org/wiki/FilteringGuide#Visualizingfilters</a> mentions a <code>-dumpgraph</code> option, but haven't managed to use it yet.</div><div class="p" id="_449">Bibliography:<div class="list"><ul id="_450"><li id="_451"><a href="https://ffmpeg.org/ffmpeg-filters.html">ffmpeg.org/ffmpeg-filters.html</a> official documentation</li><li id="_452"><a href="https://trac.ffmpeg.org/wiki/FilteringGuide">trac.ffmpeg.org/wiki/FilteringGuide</a> some handy tips from the FFMpeg Wiki</li></ul></div></div><div class="h" id="ffplay"><div class="notnav"><h4><a href="ffplay">ffplay</a></h4><span class="hover-meta"> <a class="split" href="ffplay"></a><span class="metrics"><span class="wcntr"> Words: 100</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ffmpeg" class="u"> FFmpeg</a><a href="#_toc/ffplay" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/ffplay"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_453">Awesome tool to view quick stuff quickly without generating files. Unfortunately it doesn't support all options that the ffmpeg CLI supports, e.g. <a href="#ffplay-multiple-input-files">ffplay multiple input files</a>. One day, one day.</div><div class="h" id="ffplay-multiple-input-files"><div class="notnav"><h5><a href="ffplay-multiple-input-files">ffplay multiple input files</a></h5><span class="hover-meta"> <a class="split" href="ffplay-multiple-input-files"></a><span class="metrics"><span class="wcntr"> Words: 73</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ffplay" class="u"> ffplay</a><a href="#_toc/ffplay-multiple-input-files" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/ffplay-multiple-input-files"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_454">TODO possible? <a href="https://superuser.com/questions/559768/ffplay-how-to-play-together-separate-video-and-audio-files">superuser.com/questions/559768/ffplay-how-to-play-together-separate-video-and-audio-files</a></div><div class="p" id="_455">For synthesized streams like <code>sine</code> we can do it e.g.<div class="code" id="_456"><div><pre><code>ffplay -autoexit -nodisp -f lavfi -i ' sine=frequency=500[a]; sine=frequency=1000[b]; [a][b]amerge, atrim=end=2 '</code></pre></div></div>but it does not seem to accept multiple <code>-i</code> for some reason. So is there a way to open a file from some filter? E.g.:<div class="code" id="_457"><div><pre><code>ffplay -i tmp.wav -i tmp.mkv -filter_complex "[0:a]atrim=end=2[a];[1:v]trim=end=2[v]" -map '[a]' -map '[v]'</code></pre></div></div>fails with:<div class="code" id="_458"><div><pre><code>Argument 'tmp.mkv' provided as input filename, but 'tmp.wav' was already specified.</code></pre></div></div></div><div class="h" id="ffmpeg-sound-synthesis"><div class="notnav"><h4><a href="ffmpeg-sound-synthesis">FFmpeg sound synthesis</a></h4><span class="hover-meta"> <a class="split" href="ffmpeg-sound-synthesis"></a><span class="metrics"><span class="wcntr"> Words: 13</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ffmpeg" class="u"> FFmpeg</a><a href="#_toc/ffmpeg-sound-synthesis" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/ffmpeg-sound-synthesis"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_459">Simple <a href="calculus#sine">sines</a> and variants:<div class="list"><ul id="_460"><li id="_461"><a href="https://unix.stackexchange.com/questions/82112/stereo-tone-generator-for-linux/536860#536860">unix.stackexchange.com/questions/82112/stereo-tone-generator-for-linux/536860#536860</a></li><li id="_462"><a href="https://stackoverflow.com/questions/5109038/linux-sine-wave-audio-generator/57610684#57610684">stackoverflow.com/questions/5109038/linux-sine-wave-audio-generator/57610684#57610684</a></li><li id="_463"><a href="https://superuser.com/questions/724391/how-to-generate-a-sine-wave-with-ffmpeg">superuser.com/questions/724391/how-to-generate-a-sine-wave-with-ffmpeg</a></li><li id="_464"><a href="https://stackoverflow.com/questions/59551013/how-to-generate-stereo-sine-wave-using-ffmpeg-with-different-frequencies-for-eac/77730492#77730492">stackoverflow.com/questions/59551013/how-to-generate-stereo-sine-wave-using-ffmpeg-with-different-frequencies-for-eac/77730492#77730492</a></li></ul></div></div><div class="p" id="_465">2 second 1000 Hz:<div class="code" id="_466"><div><pre><code>ffmpeg -f lavfi -i "sine=f=1000:d=2" out.wav</code></pre></div></div></div><div class="h" id="ffmpeg-video-synthesis"><div class="notnav"><h4><a href="ffmpeg-video-synthesis">FFmpeg video synthesis</a></h4><span class="hover-meta"> <a class="split" href="ffmpeg-video-synthesis"></a><span class="metrics"><span class="wcntr"> Words: 95</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ffmpeg" class="u"> FFmpeg</a><a href="#_toc/ffmpeg-video-synthesis" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/ffmpeg-video-synthesis"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_467">Video with a solid color:<div class="list"><ul id="_468"><li id="_469">2 second white video:<div class="code" id="_470"><div><pre><code>ffplay -autoexit -f lavfi -i 'color=white:640x480:d=3,format=rgb24,trim=end=2'</code></pre></div></div>Also add some audio:<div class="code" id="_471"><div><pre><code>ffmpeg -lavfi "color=white:640x480:d=3,format=rgb24,trim=end=2[v];sine=f=1000:d=2[a]" -map '[a]' -map '[v]' out.mkv</code></pre></div></div>TODO how to ffplay the video + audio directly? <code>-map</code> does not seem to work unfortunately.</li><li id="_472">2 second white followed by 2 second black video:<div class="code" id="_473"><div><pre><code>ffplay -autoexit -f lavfi -i 'color=white:640x480:d=3,format=rgb24,trim=end=2[a];color=black:640x480:d=3,format=rgb24,trim=end=2[b];[a][b]concat=n=2:v=1:a=0'</code></pre></div></div></li><li id="_474">bibliography:<div class="list"><ul id="_475"><li id="_476"><a href="https://superuser.com/questions/1153930/how-to-generate-a-pure-white-background-video-with-ffmpeg">superuser.com/questions/1153930/how-to-generate-a-pure-white-background-video-with-ffmpeg</a></li></ul></div></li></ul></div></div><div class="p" id="_477">Display count in seconds on the video:<div class="list"><ul id="_478"><li id="_479">black text on white background. Start from 0 and count up to 2:<div class="code" id="_480"><div><pre><code>ffplay -autoexit -f lavfi -i " color=white:480x480:d=3, format=rgb24, drawtext= fontcolor=black: fontsize=600: text='%{eif\:t\:d}': x=(w-text_w)/2: y=(h-text_h)/2 "</code></pre></div></div></li><li id="_481">bibliography:<div class="list"><ul id="_482"><li id="_483"><a href="https://gist.github.com/derand/31b8312fd64156120cb8f45825a1f0f7">gist.github.com/derand/31b8312fd64156120cb8f45825a1f0f7</a></li><li id="_484"><a href="https://www.reddit.com/r/ffmpeg/comments/11kxugt/make_a_video_timer_or_countdown/">www.reddit.com/r/ffmpeg/comments/11kxugt/make_a_video_timer_or_countdown/</a></li></ul></div></li></ul></div></div><div class="h" id="ffmpeg-is-the-backend-of-youtube"><div class="notnav"><h4><a href="ffmpeg-is-the-backend-of-youtube">FFmpeg is the backend of YouTube</a></h4><span class="hover-meta"> <a class="split" href="ffmpeg-is-the-backend-of-youtube"></a><span class="metrics"><span class="wcntr"> Words: 13</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ffmpeg" class="u"> FFmpeg</a><a href="#_toc/ffmpeg-is-the-backend-of-youtube" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/ffmpeg-is-the-backend-of-youtube"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_485">FFmpeg is likely the backend of <a href="website#youtube">YouTube</a> through <a href="technology#reverse-engineering">reverse engineering</a>: <a href="https://streaminglearningcenter.com/blogs/youtube-uses-ffmpeg-for-encoding.html">streaminglearningcenter.com/blogs/youtube-uses-ffmpeg-for-encoding.html</a> (<a href="https://web.archive.org/web/20190519135210/https://streaminglearningcenter.com/blogs/youtube-uses-ffmpeg-for-encoding.html">archive</a>)</div><div class="p" id="_486">On <a href="website#quora">Quora</a>: <a href="https://www.quora.com/What-does-YouTube-use-for-encoding-video/answer/Ciro-Santilli">www.quora.com/What-does-YouTube-use-for-encoding-video/answer/Ciro-Santilli</a></div><div class="h" id="concatenate-two-videos-with-ffmpeg"><div class="notnav"><h4><a href="concatenate-two-videos-with-ffmpeg">Concatenate two videos with ffmpeg</a></h4><span class="hover-meta"> <a class="split" href="concatenate-two-videos-with-ffmpeg"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ffmpeg" class="u"> FFmpeg</a><a href="#_toc/concatenate-two-videos-with-ffmpeg" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/concatenate-two-videos-with-ffmpeg"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_487"><a href="https://stackoverflow.com/questions/7333232/how-to-concatenate-two-mp4-files-using-ffmpeg">stackoverflow.com/questions/7333232/how-to-concatenate-two-mp4-files-using-ffmpeg</a></div><div class="h" id="image-software"><div class="notnav"><h3><a href="image-software">Image software</a></h3><span class="hover-meta"> <a class="split" href="image-software"></a><span class="metrics"><span class="wcntr"> Words: 124</span><span class="dcnt"> Articles: 9</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#multimedia-software" class="u"> Multimedia software</a><a href="#_toc/image-software" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/image-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="image-viewer"><div class="notnav"><h4><a href="image-viewer">Image viewer</a></h4><span class="hover-meta"> <a class="split" href="image-viewer"></a><span class="metrics"><span class="wcntr"> Words: 45</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#image-software" class="u"> Image software</a><a href="#_toc/image-viewer" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/image-viewer"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="nomacs"><div class="notnav"><h5><a href="nomacs">Nomacs</a></h5><span class="hover-meta"> <a class="split" href="nomacs"></a><span class="metrics"><span class="wcntr"> Words: 45</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#image-viewer" class="u"> Image viewer</a><a href="#_toc/nomacs" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/nomacs"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_488"><a href="https://github.com/nomacs/nomacs">github.com/nomacs/nomacs</a></div><div class="p" id="_489">This is a really good one to quickly browser multiple images present in a directory, and also to do some basic editing on them!</div><div class="list"><ul id="_490"><li id="_491"><a href="https://askubuntu.com/questions/1211087/software-to-seamlessly-edit-multiple-images/1292048#1292048">askubuntu.com/questions/1211087/software-to-seamlessly-edit-multiple-images/1292048#1292048</a><div class="list"><ul id="_492"><li id="_493"><a href="https://askubuntu.com/questions/455443/how-to-open-several-image-files-from-command-line-consecutively-for-editing/1539506#1539506">askubuntu.com/questions/455443/how-to-open-several-image-files-from-command-line-consecutively-for-editing/1539506#1539506</a></li></ul></div></li><li id="_494"><a href="https://unix.stackexchange.com/questions/25978/image-viewer-for-multiple-images/539333#539333">unix.stackexchange.com/questions/25978/image-viewer-for-multiple-images/539333#539333</a><div class="list"><ul id="_495"><li id="_496"><a href="https://unix.stackexchange.com/questions/757863/command-line-glob-to-view-multiple-images-using-imagemagicks-display/790206#790206">unix.stackexchange.com/questions/757863/command-line-glob-to-view-multiple-images-using-imagemagicks-display/790206#790206</a></li></ul></div></li><li id="_497"><a href="https://stackoverflow.com/questions/39141694/how-to-display-multiple-images-in-unix-command-line/79389886#79389886">stackoverflow.com/questions/39141694/how-to-display-multiple-images-in-unix-command-line/79389886#79389886</a></li></ul></div><div class="p" id="_498">At around 2022 development by the original devs faltered a bit but some other people seem to have picked it up:<div class="list"><ul id="_499"><li id="_500"><a href="https://www.reddit.com/r/linux/comments/sumb9s/nomacs_viewer_and_its_future/">www.reddit.com/r/linux/comments/sumb9s/nomacs_viewer_and_its_future/</a></li><li id="_501"><a href="https://github.com/nomacs/nomacs/issues/612">github.com/nomacs/nomacs/issues/612</a></li></ul></div></div><div class="h" id="image-manipulation-software"><div class="notnav"><h4><a href="image-manipulation-software">Image manipulation software</a></h4><span class="hover-meta"> <a class="split" href="image-manipulation-software"></a><span class="metrics"><span class="wcntr"> Words: 79</span><span class="dcnt"> Articles: 6</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#image-software" class="u"> Image software</a><a href="#_toc/image-manipulation-software" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/image-manipulation-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="imagemagick"><div class="notnav"><h5><a href="imagemagick">ImageMagick</a></h5><span class="hover-meta"> <a class="split" href="imagemagick"></a><span class="metrics"><span class="wcntr"> Words: 79</span><span class="dcnt"> Articles: 5</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#image-manipulation-software" class="u"> Image manipulation software</a><a href="#_toc/imagemagick" class="toc"></a><a href="https://en.wikipedia.org/wiki/ImageMagick" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/imagemagick"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_502">Crop <code>20</code> pixels from the bottom of the image:<div class="code" id="_503"><div><pre><code>convert image.png -gravity East -chop 20x0 result.png</code></pre></div></div></div><div class="h" id="imagemagick-howto"><div class="notnav"><h6><a href="imagemagick-howto">ImageMagick HOWTO</a></h6><span class="hover-meta"> <a class="split" href="imagemagick-howto"></a><span class="metrics"><span class="wcntr"> Words: 63</span><span class="dcnt"> Articles: 4</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#imagemagick" class="u"> ImageMagick</a><a href="#_toc/imagemagick-howto" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/imagemagick-howto"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="join-two-images-side-by-side"><div class="notnav"><h6 data-level="7"><a href="join-two-images-side-by-side">Join two images side-by-side</a></h6><span class="hover-meta"> <a class="split" href="join-two-images-side-by-side"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#imagemagick-howto" class="u"> ImageMagick HOWTO</a><a href="#_toc/join-two-images-side-by-side" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/join-two-images-side-by-side"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_504"><a href="https://stackoverflow.com/questions/20737061/merge-images-side-by-sidehorizontally/63575228#63575228">stackoverflow.com/questions/20737061/merge-images-side-by-sidehorizontally/63575228#63575228</a></div><div class="h" id="crate-solid-color-image-in-imagemagick"><div class="notnav"><h6 data-level="7"><a href="crate-solid-color-image-in-imagemagick">Crate solid color image in ImageMagick</a></h6><span class="hover-meta"> <a class="split" href="crate-solid-color-image-in-imagemagick"></a><span class="metrics"><span class="wcntr"> Words: 31</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#imagemagick-howto" class="u"> ImageMagick HOWTO</a><a href="#_toc/crate-solid-color-image-in-imagemagick" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/crate-solid-color-image-in-imagemagick"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="code" id="_505"><div><pre><code>convert -size 512x512 xc:blue blue.png</code></pre></div></div><div class="p" id="_506">Bibliography:<div class="list"><ul id="_507"><li id="_508"><a href="https://stackoverflow.com/questions/39504522/create-blank-image-in-imagemagick">stackoverflow.com/questions/39504522/create-blank-image-in-imagemagick</a></li></ul></div></div><div class="h" id="create-gradient-image-with-imagemagick"><div class="notnav"><h6 data-level="8"><a href="create-gradient-image-with-imagemagick">Create gradient image with ImageMagick</a></h6><span class="hover-meta"> <a class="split" href="create-gradient-image-with-imagemagick"></a><span class="metrics"><span class="wcntr"> Words: 25</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#crate-solid-color-image-in-imagemagick" class="u"> Crate solid color image in ImageMagick</a><a href="#_toc/create-gradient-image-with-imagemagick" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/create-gradient-image-with-imagemagick"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_509"><a href="https://imagemagick.org/script/gradient.php">imagemagick.org/script/gradient.php</a></div><div class="code" id="_510"><div><pre><code>convert -size 256x256 gradient: out.png convert -size 256x256 gradient:white-black out.png convert -size 256x256 gradient:red-blue out.png convert -size 256x256 radial-gradient: out.png convert -size 256x256 radial-gradient:white-black out.png</code></pre></div></div><div class="h" id="crate-image-with-given-text-in-imagemagick"><div class="notnav"><h6 data-level="7"><a href="crate-image-with-given-text-in-imagemagick">Crate image with given text in ImageMagick</a></h6><span class="hover-meta"> <a class="split" href="crate-image-with-given-text-in-imagemagick"></a><span class="metrics"><span class="wcntr"> Words: 32</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#imagemagick-howto" class="u"> ImageMagick HOWTO</a><a href="#_toc/crate-image-with-given-text-in-imagemagick" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/crate-image-with-given-text-in-imagemagick"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_511">Digits 0 to 9, white on black background:<div class="code" id="_512"><div><pre><code>for i in `seq 0 9`; do convert -size 512x512 xc:black -pointsize 500 -gravity center -fill white -draw "text 0,0 \"$i\"" $i.png; done</code></pre></div></div></div><div class="p" id="_513">Bibliography:<div class="list"><ul id="_514"><li id="_515"><a href="https://stackoverflow.com/questions/67012057/how-to-generate-an-image-with-a-number-in-it">stackoverflow.com/questions/67012057/how-to-generate-an-image-with-a-number-in-it</a></li></ul></div></div><div class="h" id="open-source-software"><div class="notnav"><h2><a href="open-source-software">Open source software</a></h2><span class="hover-meta"> <a class="split" href="open-source-software"></a><span class="metrics"><span class="wcntr"> Words: 1k</span><span class="dcnt"> Articles: 21</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/open-source-software" class="toc"></a><a href="https://en.wikipedia.org/wiki/Open_source_software" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/open-source-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="p" id="_517">What happens when <a href="https://en.wikipedia.org/wiki/OpenCL">the underdogs</a> get <a href="https://stackoverflow.com/questions/1780599/what-is-the-meaning-of-posix/31865755#31865755">together</a> and try to factor out their efforts to beat some <a href="https://en.wikipedia.org/wiki/CUDA">evil</a> dominant <a href="microsoft#microsoft-windows">power</a>, sometimes <a href="systems-programming#linux">victoriously</a>.</div><div class="p" id="_518">Or when <a href="https://github.com/facebook">startups</a> use the cheapest stuff available and randomly become the <a href="https://github.com/google">next big thing</a>, and decide to keep maintaining the open stuff to get features for free from other companies, or because they are <a href="systems-programming#linux">forced by the Holy GPL</a>.</div><div class="p" id="_519">Open source frees employees. When you change jobs, a large part of the specific knowledge you acquired about closed source a project with your blood and tears goes to the trash. When companies get bought, projects get shut down, and closed source code goes to the trash. What sane non desperate person would sell their life energy into such closed source projects that could die at any moment? Working on open source is the single most important non money perk a company can have to attract the best employees.</div><div class="p" id="_520">Open source is worth more than the mere pragmatic financial value of not having to pay for software or the ability to freely add new features.</div><div class="p" id="_521">Its greatest value is perhaps the fact that it allows people study it, to appreciate the beauty of the code, and feel empowered by being able to add the features that they want.</div><div class="p" id="_522">That is why <a href="ciro-santilli">Ciro Santilli</a> thought:<div><blockquote id="_523">Life is too short for closed source.</blockquote></div></div><div class="p" id="_524">But quoting Ciro's colleague S.:<div><blockquote id="_525">Every software is open source when you read <a href="https://en.wikipedia.org/wiki/Assembly_language">assembly code</a>.</blockquote></div></div><div class="p" id="_526">And <a href="https://computergraphics.stackexchange.com/questions/7809/what-does-gpu-assembly-look-like">"can reverse engineer the undocumented GPU hardware APIs"</a>, <a href="ciro-santilli">Ciro</a> would add.</div><div class="p" id="_527">While software is the most developed open source technology available in the 2010's, due to the <a href="https://www.vox.com/recode/2019/6/24/18715421/internet-free-data-ads-cost">"zero cost"</a> of copying it over the Internet, Ciro also believes that <a href="#open-knowledge">the world would benefit enormously from open source knowledge in all areas on science and engineering</a>, for the same reasons as open source.</div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="quantum-computing#artiq">ARTIQ</a></li><li><a href="formalization-of-mathematics#lean-proof-assistant">Lean</a></li><li><a href="art#leela-chess-zero">Leela Chess Zero</a></li><li><a href="brain#logseq">Logseq</a></li><li><a href="artificial-intelligence#open-source-llm">Open source LLM</a></li><li><a href="video-game#open-source-video-game">Open source video game</a></li><li><a href="biology#primer-youtube-channel">Primer</a></li><li><a href="robotics#robot-operating-system">Robot Operating System</a></li><li><a href="art#stockfish-chess">Stockfish</a></li><li><a href="brain#zettlr">Zettlr</a></li><li><a href="brain#zim">Zim</a></li></ul></div></div><div class="h" id="open-source-advocacy-entity"><div class="notnav"><h3><a href="open-source-advocacy-entity">Open source advocacy entity</a></h3><span class="hover-meta"> <a class="split" href="open-source-advocacy-entity"></a><span class="metrics"><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-source-software" class="u"> Open source software</a><a href="#_toc/open-source-advocacy-entity" class="toc"></a><a href="https://en.wikipedia.org/wiki/Open_source_advocacy_entity" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/open-source-advocacy-entity"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="gnu-project"><div class="notnav"><h4><a href="gnu-project">GNU Project</a></h4><span class="hover-meta"> <a class="split" href="gnu-project"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-source-advocacy-entity" class="u"> Open source advocacy entity</a><a href="#_toc/gnu-project" class="toc"></a><a href="https://en.wikipedia.org/wiki/GNU_Project" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/gnu-project"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="law#gnu-free-documentation-license">GNU Free Documentation License</a></li></ul></div></div><div class="h" id="gnu-package"><div class="notnav"><h5><a href="gnu-package">GNU package</a></h5><span class="hover-meta"> <a class="split" href="gnu-package"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#gnu-project" class="u"> GNU Project</a><a href="#_toc/gnu-package" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/gnu-package"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="art#gnu-chess">GNU Chess</a></li><li><a href="#gnu-compiler-collection">GNU Compiler Collection</a></li><li><a href="systems-programming#gnu-core-utils">GNU Core Utils</a></li><li><a href="#gnu-debugger">GNU Debugger</a></li><li><a href="art#gnu-go">GNU go</a></li><li><a href="#gnu-make">GNU make</a></li><li><a href="#gnu-parallel">GNU parallel</a></li><li><a href="cryptography#gnu-privacy-guard">GNU Privacy Guard</a></li><li><a href="#gnu-screen">GNU screen</a></li><li><a href="social-technology#gnu-taler">GNU Taler</a></li></ul></div></div><div class="h" id="open-source-hardware"><div class="notnav"><h3><a href="open-source-hardware">Open source hardware</a></h3><span class="hover-meta"> <a class="split" href="open-source-hardware"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-source-software" class="u"> Open source software</a><a href="#_toc/open-source-hardware" class="toc"></a><a href="https://en.wikipedia.org/wiki/Open_source_hardware" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/open-source-hardware"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="electronics#open-source-analog-to-digital-converter">Open source analog-to-digital converter</a></li><li><a href="electronics#open-source-oscilloscope">Open source oscilloscope</a></li></ul></div></div><div class="h" id="free-and-open-source-software"><div class="notnav"><h3><a href="free-and-open-source-software">Free and open-source software <span class="meta">(FOSS)</span></a></h3><span class="hover-meta"> <a class="split" href="free-and-open-source-software"></a><span class="metrics"><span class="wcntr"> Words: 134</span><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-source-software" class="u"> Open source software</a><a href="#_toc/free-and-open-source-software" class="toc"></a><a href="https://en.wikipedia.org/wiki/Free_and_open-source_software" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/free-and-open-source-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_529">A more precise term for those in the know: <a href="#open-source-software">open source software</a> that also has a liberal license, for some definition of liberal.</div><div class="p" id="_530"><a href="ciro-santilli">Ciro Santilli</a> defines liberal as: "can be commercialized without paying anything back" (but possibly subject to other restrictions).</div><div class="p" id="_531">He therefore does not consider <a href="law#creative-commons-license">Creative Commons licenses</a> with NC to be FOSS.</div><div class="p" id="_532">For the newbs, the term <a href="#open-source-software">open source software</a> is good enough, since most open source software is also FOSS.</div><div class="p" id="_533">But when it's not, it's crucial to know.</div><div class="h" id="model-for-financing-open-source-software"><div class="notnav"><h4><a href="model-for-financing-open-source-software">Model for financing open source software</a></h4><span class="hover-meta"> <a class="split" href="model-for-financing-open-source-software"></a><span class="metrics"><span class="wcntr"> Words: 64</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#free-and-open-source-software" class="u"> Free and open-source software</a><a href="#_toc/model-for-financing-open-source-software" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/model-for-financing-open-source-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="law#sponsorware">Sponsorware</a></li></ul></div></div><div class="h" id="software-developer-collective"><div class="notnav"><h5><a href="software-developer-collective">Software developer collective</a></h5><span class="hover-meta"> <a class="split" href="software-developer-collective"></a><span class="metrics"><span class="wcntr"> Words: 64</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#model-for-financing-open-source-software" class="u"> Model for financing open source software</a><a href="#_toc/software-developer-collective" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/software-developer-collective"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_534">This model can work well when there is a set of commonly used libraries that some developers often use together, but such that there isn't enough maintenance work for each one individually.</div><div class="p" id="_535">So what people do is to create a group that maintains all those projects, to try and get enough money to survive from the contributions done primarily for each one individually.</div><div class="p" id="_536">Examples:<div class="list"><ul id="_537"><li id="_538"><a href="https://github.com/pmndrs">github.com/pmndrs</a></li></ul></div></div><div class="h" id="open-source-software-that-is-not-foss"><div class="notnav"><h4><a href="open-source-software-that-is-not-foss">Open source software that is not-FOSS</a></h4><span class="hover-meta"> <a class="split" href="open-source-software-that-is-not-foss"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#free-and-open-source-software" class="u"> Free and open-source software</a><a href="#_toc/open-source-software-that-is-not-foss" class="toc"></a><a href="https://en.wikipedia.org/wiki/Open_source_software_that_is_not-FOSS" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/open-source-software-that-is-not-foss"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="#gitlab">GitLab</a></li></ul></div></div><div class="h" id="source-code-leaks"><div class="notnav"><h3><a href="source-code-leaks">Source code leaks</a></h3><span class="hover-meta"> <a class="split" href="source-code-leaks"></a><span class="metrics"><span class="wcntr"> Words: 30</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-source-software" class="u"> Open source software</a><a href="#_toc/source-code-leaks" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/source-code-leaks"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="list"><ul id="_539"><li id="_540"><a href="video-game#nintendo">Nintendo</a><div class="list"><ul id="_541"><li id="_542">2020-05-04 leaks via the BroadOn company</li><li id="_543">items<div class="list"><ul id="_544"><li id="_545">Wii <a href="computer-hardware#verilog">Verilog</a></li></ul></div></li><li id="_546">coverage<div class="list"><ul id="_547"><li id="_548"><a href="https://www.ladbible.com/technology/gaming-the-biggest-nintendo-hack-in-history-leaks-console-source-codes-20200504">www.ladbible.com/technology/gaming-the-biggest-nintendo-hack-in-history-leaks-console-source-codes-20200504</a></li></ul></div></li><li id="_549">fake leak commentary<div class="list"><ul id="_550"><li id="_551">"Sebastian" is apparently reuploaded devkit demos claiming that they are from this leak, if that is correct, <a href="biology#sexual-intercourse">fuck</a> him:<div class="list"><ul id="_552"><li id="_553"><a href="https://www.youtube.com/watch?v=6FSOFrgbi4I&amp;lc=UgwWEWT3oyxf85J0PQB4AaABAg">www.youtube.com/watch?v=6FSOFrgbi4I&amp;lc=UgwWEWT3oyxf85J0PQB4AaABAg</a></li><li id="_554"><a href="https://www.youtube.com/watch?v=teRRcouGxwc&amp;list=PL8Yms2YDl4qOXI99jpI8oH75d3X2oxnBM&amp;index=14">www.youtube.com/watch?v=teRRcouGxwc&amp;list=PL8Yms2YDl4qOXI99jpI8oH75d3X2oxnBM&amp;index=14</a></li></ul></div></li></ul></div></li></ul></div></li></ul></div><div class="h" id="open-knowledge"><div class="notnav"><h3><a href="open-knowledge">Open knowledge</a></h3><span class="hover-meta"> <a class="split" href="open-knowledge"></a><span class="metrics"><span class="wcntr"> Words: 19</span><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-source-software" class="u"> Open source software</a><a href="#_toc/open-knowledge" class="toc"></a><a href="https://en.wikipedia.org/wiki/Open_knowledge" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/open-knowledge"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_555"><a href="ciro-santilli">Ciro Santilli</a>'s raison d'etre, one of his attempts: <a href="ourbigbook-com">OurBigBook.com</a>.</div><div class="p" id="_556">The outcome of closed knowledge is <a href="technology#reverse-engineering">reverse engineering</a>.</div><div class="h" id="open-educational-resources"><div class="notnav"><h4><a href="open-educational-resources">Open educational resources <span class="meta">(OER)</span></a></h4><span class="hover-meta"> <a class="split" href="open-educational-resources"></a><span class="metrics"><span class="wcntr"> Words: 4</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-knowledge" class="u"> Open knowledge</a><a href="#_toc/open-educational-resources" class="toc"></a><a href="https://en.wikipedia.org/wiki/Open_educational_resources" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/open-educational-resources"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_558">Projects:<div class="list"><ul id="_559"><li id="_560"><a href="university#mit-opencourseware">MIT OpenCourseWare</a></li><li id="_561">several <a href="website#e-learning-website">e-learning websites</a>, e.g. <a href="website#openstax">OpenStax</a></li><li id="_562"><a href="https://www.oeglobal.org/">www.oeglobal.org/</a></li></ul></div></div><div class="h" id="open-textbook-library"><div class="notnav"><h5><a href="open-textbook-library">Open Textbook Library</a></h5><span class="hover-meta"> <a class="split" href="open-textbook-library"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-educational-resources" class="u"> Open educational resources</a><a href="#_toc/open-textbook-library" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/open-textbook-library"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_563"><a href="https://open.umn.edu/opentextbooks/">open.umn.edu/opentextbooks/</a></div><div class="h" id="opencourseware"><div class="notnav"><h5><a href="opencourseware">OpenCourseWare</a></h5><span class="hover-meta"> <a class="split" href="opencourseware"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-educational-resources" class="u"> Open educational resources</a><a href="#_toc/opencourseware" class="toc"></a><a href="https://en.wikipedia.org/wiki/OpenCourseWare" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/opencourseware"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="university#delft-opencourseware">Delft OpenCourseWare</a></li><li><a href="university#mit-opencourseware">MIT OpenCourseWare</a></li></ul></div></div><div class="h" id="horrors-of-open-source"><div class="notnav"><h3><a href="horrors-of-open-source">Horrors of open source</a></h3><span class="hover-meta"> <a class="split" href="horrors-of-open-source"></a><span class="metrics"><span class="wcntr"> Words: 422</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-source-software" class="u"> Open source software</a><a href="#_toc/horrors-of-open-source" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/horrors-of-open-source"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_564">Not everything is perfect.</div><div class="p" id="_565">One big problem of many big open source projects is that they are contributed to by separate selfish organizations, that have private information. Then what happens is that:<div class="list"><ul id="_566"><li id="_567">people implement the same thing twice, or one change makes the other completely unmergeable</li><li id="_568">you get bugs but can't share your closed source test cases, and then you can't automate tests for them, or clearly demonstrate the problem</li><li id="_569">other contributors don't see your full semi secret important motivation, and may either nitpick too much or take too long to review your stuff</li></ul></div></div><div class="p" id="_570">Another common difficulty is that open source maintainers may simply not care enough about their own project (maybe they did in the past but lost interest) to review external patches by people they don't know.</div><div class="p" id="_571">This is understandable: a new patch, is a new risk of things breaking.</div><div class="p" id="_572">Therefore, if you ever submit patches and they get ignore, don't be too sad. It just comes down to a question of maintenance cost, and means that you will waste some extra time on the next rebase. You just have to decide your goals and be cold about it:<div class="list"><ul id="_573"><li id="_574">are you doing the right thing and going for a specific goal <a href="cirism#backward-design">backward design</a>? Then just fork, run as fast as possible towards a minimum viable product, and if you start to feel that rebase is costing you a lot, or feel you could get some open source fame for cheap, open reviews and see what upstream says. If they ignore you, politely tell yourself in your mind silently "<a href="biology#sexual-intercourse">fuck</a> them", and carry on with the MVP</li><li id="_575">otherwise, e.g. you just want to randomly help out, you have to ask them before doing anything big "how can I be of help". If I propose a patch for this issue, do you promise to review it?</li></ul></div></div><div class="p" id="_576">Writing documentation in an open source project in which you don't have immediate push rights is another major pain due to code reviews. Code code reviews tend to be much less subjective, because if you do something wrong, stuff crashes, runs slower, or you need more lines of code to reach the same goal. There are tradeoffs, but in a limited number. Documentation code reviews on the other hand, are an open invitation to <a href="https://en.wikipedia.org/wiki/Law_of_triviality">infinite bike-shedding</a>, since you can't "run" documentation through a standardized <a href="brain">brain model</a>. Much better is for one good documenter person to just make one cohesive <a href="stack-overflow">Stack Overflow</a> post, and ping others with more knowledge to review details or add any missing pieces :-)</div><div class="h" id="code-drop"><div class="notnav"><h3><a href="code-drop">Code drop</a></h3><span class="hover-meta"> <a class="split" href="code-drop"></a><span class="metrics"><span class="wcntr"> Words: 52</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-source-software" class="u"> Open source software</a><a href="#_toc/code-drop" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/code-drop"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#evil">Evil</a></span></div></nav></div><div class="p" id="_578"><a href="#open-source-software">Open source</a> development model in which developers develop in private, and only release code to the public during releases.</div><div class="p" id="_579">Notable example project: <a href="systems-programming#android-open-source-project">Android Open Source Project</a>.</div><div class="p" id="_580">This development model basically makes reporting bugs and sending patches a waste of time, because many of them will already have been solved, which is why this development model is <a href="cirism#evil">evil</a>.</div><div class="h" id="closed-source-is-less-bad-on-online-services"><div class="notnav"><h3><a href="closed-source-is-less-bad-on-online-services">Closed source is less bad on online services</a></h3><span class="hover-meta"> <a class="split" href="closed-source-is-less-bad-on-online-services"></a><span class="metrics"><span class="wcntr"> Words: 56</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-source-software" class="u"> Open source software</a><a href="#_toc/closed-source-is-less-bad-on-online-services" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/closed-source-is-less-bad-on-online-services"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_581"><a href="ciro-santilli">Ciro Santilli</a> can accept closed source on <a href="computer#server-computing">server</a> products more easily than offline, because the servers have to be paid for somehow (by stealing your private data).</div><div class="h" id="closed-source-offline-software-used-by-millions"><div class="notnav"><h4><a href="closed-source-offline-software-used-by-millions">Closed source offline software used by millions</a></h4><span class="hover-meta"> <a class="split" href="closed-source-offline-software-used-by-millions"></a><span class="metrics"><span class="wcntr"> Words: 32</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#closed-source-is-less-bad-on-online-services" class="u"> Closed source is less bad on online services</a><a href="#_toc/closed-source-offline-software-used-by-millions" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/closed-source-offline-software-used-by-millions"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#evil">Evil</a></span></div></nav></div><div class="p" id="_583">Closed source on offline products used by millions of people is <a href="cirism#evil">evil</a>, when you could just have those for free with <a href="#open-source-software">open source software</a>! Thus Ciro's hatred for <a href="microsoft#microsoft-windows">Microsoft Windows</a> and <a href="apple-inc#macos">MacOS</a> (at <a href="apple-inc#is-the-macos-kernel-open-source">least userland, maybe</a>).</div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="apple-inc#macos">MacOS</a></li><li><a href="microsoft#microsoft-windows">Microsoft Windows</a></li></ul></div></div><div class="h" id="closed-source-software"><div class="notnav"><h3><a href="closed-source-software">Closed source software</a></h3><span class="hover-meta"> <a class="split" href="closed-source-software"></a><span class="metrics"><span class="wcntr"> Words: 108</span><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-source-software" class="u"> Open source software</a><a href="#_toc/closed-source-software" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/closed-source-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_584">The opposite of <a href="#open-source-software">open source software</a>.</div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="social-technology#libretexts">LibreTexts</a></li><li><a href="brain#roam-research">Roam Research</a></li><li><a href="biology#the-bibites">The Bibites</a></li><li><a href="formalization-of-mathematics#the-math-genome-project">The Math Genome Project</a></li></ul></div></div><div class="h" id="closed-standard"><div class="notnav"><h4><a href="closed-standard">Closed standard</a></h4><span class="hover-meta"> <a class="split" href="closed-standard"></a><span class="metrics"><span class="wcntr"> Words: 85</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#closed-source-software" class="u"> Closed source software</a><a href="#_toc/closed-standard" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/closed-standard"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#evil">Evil</a></span></div></nav></div><div class="p" id="_586"><a href="#international-organization-for-standardization">ISO</a> is the main culprit of this <a href="molecular-biology#bullshit">bullshit</a>, some notable examples related to <a href="#open-source-software">open source software</a>:<div class="list"><ul id="_587"><li id="_588"><a href="programming-language#ansi-c">ANSI C</a></li><li id="_589"><a href="sql#sql-standard">SQL standard</a></li><li id="_590"><a href="computer-hardware#verilog">Verilog</a></li></ul></div></div><div class="p" id="_591">The only low level thing that escaped this was <a href="#opengl">OpenGL</a> via <a href="#khronos-group">Khronos</a>, what heroes those people are.</div><div class="p" id="_592">How the hell are you supposed to develop an open source implementation of something that has a closed standard?</div><div class="p" id="_593">Not to mention open source test suites, that would be way too much to ask for, those always end up being made by some shady small companies that go bankrupt from time to time, see e.g. .</div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="programming-language#ansi-c">ANSI C</a></li><li><a href="machine-learning#imagenet">ImageNet</a></li></ul></div></div><div class="h" id="international-organization-for-standardization"><div class="notnav"><h5><a href="international-organization-for-standardization">International Organization for Standardization</a></h5><span class="hover-meta"> <a class="split" href="international-organization-for-standardization"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#closed-standard" class="u"> Closed standard</a><a href="#_toc/international-organization-for-standardization" class="toc"></a><a href="https://en.wikipedia.org/wiki/International_Organization_for_Standardization" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/international-organization-for-standardization"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="inner-source"><div class="notnav"><h4><a href="inner-source">Inner source</a></h4><span class="hover-meta"> <a class="split" href="inner-source"></a><span class="metrics"><span class="wcntr"> Words: 19</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#closed-source-software" class="u"> Closed source software</a><a href="#_toc/inner-source" class="toc"></a><a href="https://en.wikipedia.org/wiki/Inner_source" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/inner-source"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_594">If you are going to do <a href="#closed-source-software">closed source</a>, at least do it like this.</div><div class="p" id="_595">Basically the opposite of <a href="social-technology#need-to-know">need to know</a> for <a href="">software</a>.</div><div class="h" id="personal-information-management"><div class="notnav"><h2><a href="personal-information-management">Personal information management</a></h2><span class="hover-meta"> <a class="split" href="personal-information-management"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/personal-information-management" class="toc"></a><a href="https://en.wikipedia.org/wiki/Personal_information_management" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/personal-information-management"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="productivity-software"><div class="notnav"><h2><a href="productivity-software">Productivity software</a></h2><span class="hover-meta"> <a class="split" href="productivity-software"></a><span class="metrics"><span class="wcntr"> Words: 9</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/productivity-software" class="toc"></a><a href="https://en.wikipedia.org/wiki/Productivity_software" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/productivity-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="libreoffice"><div class="notnav"><h3><a href="libreoffice">LibreOffice</a></h3><span class="hover-meta"> <a class="split" href="libreoffice"></a><span class="metrics"><span class="wcntr"> Words: 9</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#productivity-software" class="u"> Productivity software</a><a href="#_toc/libreoffice" class="toc"></a><a href="https://en.wikipedia.org/wiki/LibreOffice" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/libreoffice"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_596">These people are heroes. There's nothing else to say.</div><div class="h" id="program-optimization"><div class="notnav"><h2><a href="program-optimization">Program optimization</a></h2><span class="hover-meta"> <a class="split" href="program-optimization"></a><span class="metrics"><span class="dcnt"> Articles: 5</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/program-optimization" class="toc"></a><a href="https://en.wikipedia.org/wiki/Program_optimization" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/program-optimization"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="benchmark"><div class="notnav"><h3><a href="benchmark">Benchmark</a></h3><span class="hover-meta"> <a class="split" href="benchmark"></a><span class="metrics"><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#program-optimization" class="u"> Program optimization</a><a href="#_toc/benchmark" class="toc"></a><a href="https://en.wikipedia.org/wiki/Benchmark" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/benchmark"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="computer#computer-benchmark">Computer benchmark</a></li><li><a href="linear-algebra#linpack-benchmarks">LINPACK benchmarks</a></li></ul></div></div><div class="h" id="open-and-closed-source-benchmarks"><div class="notnav"><h4><a href="open-and-closed-source-benchmarks">Open and closed source benchmarks</a></h4><span class="hover-meta"> <a class="split" href="open-and-closed-source-benchmarks"></a><span class="metrics"><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#benchmark" class="u"> Benchmark</a><a href="#_toc/open-and-closed-source-benchmarks" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/open-and-closed-source-benchmarks"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="open-source-benchmark"><div class="notnav"><h5><a href="open-source-benchmark">Open source benchmark</a></h5><span class="hover-meta"> <a class="split" href="open-source-benchmark"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-and-closed-source-benchmarks" class="u"> Open and closed source benchmarks</a><a href="#_toc/open-source-benchmark" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/open-source-benchmark"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="closed-source-benchmark"><div class="notnav"><h5><a href="closed-source-benchmark">Closed source benchmark</a></h5><span class="hover-meta"> <a class="split" href="closed-source-benchmark"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-and-closed-source-benchmarks" class="u"> Open and closed source benchmarks</a><a href="#_toc/closed-source-benchmark" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/closed-source-benchmark"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#evil">Evil</a></span></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="artificial-intelligence#frontiermath">FrontierMath</a></li></ul></div></div><div class="h" id="profiling-computer-programming"><div class="notnav"><h3><a href="profiling-computer-programming">Profiling <span class="meta">(computer programming)</span></a></h3><span class="hover-meta"> <a class="split" href="profiling-computer-programming"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#program-optimization" class="u"> Program optimization</a><a href="#_toc/profiling-computer-programming" class="toc"></a><a href="https://en.wikipedia.org/wiki/Profiling_(computer_programming)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/profiling-computer-programming"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="programming-language"><div class="notnav"><h2><a href="programming-language">Programming language</a></h2><span class="hover-meta"> <a class="split" href="software-split"></a><span class="metrics"><span class="wcntr"> Words: 6k</span><span class="dcnt"> Articles: 178</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/programming-language" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/programming-language"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_598"><a href="programming-language">This section is present in another page, follow this link to view it.</a></div><div class="h" id="recreational-programming"><div class="notnav"><h2><a href="recreational-programming">Recreational programming</a></h2><span class="hover-meta"> <a class="split" href="recreational-programming"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/recreational-programming" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/recreational-programming"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="code-golf"><div class="notnav"><h3><a href="code-golf">Code golf</a></h3><span class="hover-meta"> <a class="split" href="code-golf"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#recreational-programming" class="u"> Recreational programming</a><a href="#_toc/code-golf" class="toc"></a><a href="https://en.wikipedia.org/wiki/Code_golf" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/code-golf"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="search-engine"><div class="notnav"><h2><a href="search-engine">Search engine</a></h2><span class="hover-meta"> <a class="split" href="search-engine"></a><span class="metrics"><span class="wcntr"> Words: 630</span><span class="dcnt"> Articles: 11</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/search-engine" class="toc"></a><a href="https://en.wikipedia.org/wiki/Search_engine" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/search-engine"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="google#google-search">Google Search</a></li></ul></div></div><div class="h" id="search-engine-optimization"><div class="notnav"><h3><a href="search-engine-optimization">Search engine optimization <span class="meta">(SEO)</span></a></h3><span class="hover-meta"> <a class="split" href="search-engine-optimization"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#search-engine" class="u"> Search engine</a><a href="#_toc/search-engine-optimization" class="toc"></a><a href="https://en.wikipedia.org/wiki/Search_engine_optimization" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/search-engine-optimization"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="list-of-search-engines"><div class="notnav"><h3><a href="list-of-search-engines">List of search engines</a></h3><span class="hover-meta"> <a class="split" href="list-of-search-engines"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#search-engine" class="u"> Search engine</a><a href="#_toc/list-of-search-engines" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/list-of-search-engines"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="yandex"><div class="notnav"><h4><a href="yandex">Yandex</a></h4><span class="hover-meta"> <a class="split" href="yandex"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-search-engines" class="u"> List of search engines</a><a href="#_toc/yandex" class="toc"></a><a href="https://en.wikipedia.org/wiki/Yandex" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/yandex"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="web-crawling"><div class="notnav"><h3><a href="web-crawling">Web crawling</a></h3><span class="hover-meta"> <a class="split" href="web-crawling"></a><span class="metrics"><span class="wcntr"> Words: 579</span><span class="dcnt"> Articles: 4</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#search-engine" class="u"> Search engine</a><a href="#_toc/web-crawling" class="toc"></a><a href="https://en.wikipedia.org/wiki/Web_crawling" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/web-crawling"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="open-web-crawling"><div class="notnav"><h4><a href="open-web-crawling">Open web crawling</a></h4><span class="hover-meta"> <a class="split" href="open-web-crawling"></a><span class="metrics"><span class="wcntr"> Words: 579</span><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#web-crawling" class="u"> Web crawling</a><a href="#_toc/open-web-crawling" class="toc"></a><a href="https://en.wikipedia.org/wiki/Open_web_crawling" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/open-web-crawling"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="common-crawl"><div class="notnav"><h5><a href="common-crawl">Common Crawl</a></h5><span class="hover-meta"> <a class="split" href="common-crawl"></a><span class="metrics"><span class="wcntr"> Words: 579</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-web-crawling" class="u"> Open web crawling</a><a href="#_toc/common-crawl" class="toc"></a><a href="https://en.wikipedia.org/wiki/Common_Crawl" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/common-crawl"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="p" id="_601"><a href="https://commoncrawl.org/">commoncrawl.org/</a></div><div class="p" id="_602">Amazing project, that basically makes a more searchable <a href="website#wayback-machine">Wayback Machine</a>.</div><div class="p" id="_603">A bit hard to use their data though, partly due to size, but also lack of free to use querrying mechanisms, and how obtuse <a href="computer-hardware#amazon-s3">Amazon S3</a> is to use.</div><div class="p" id="_604">Notably, <a href="computer-hardware#aws-cli">aws-cli</a> with an account is the only reliable way, everything else is way too broken, e.g. trying the to check the an index <a href="https://index.commoncrawl.org/CC-MAIN-2023-06/">index.commoncrawl.org/CC-MAIN-2023-06/</a> very often 500s.</div><div class="p" id="_605">But still, their projct is amazing.</div><div class="p" id="_606">The only out-of-the-box search they seem to have is: <a href="http://urlsearch.commoncrawl.org/">urlsearch.commoncrawl.org/</a> for domains/URLs. It is good, but there could be so much more... notably <a href="computer#ip-address">IPs</a>.</div><div class="p" id="_607">Also could should document the data shape a bit better.</div><div class="p" id="_608">Sample sizes can be found at: <a href="https://commoncrawl.org/2023/04/mar-apr-2023-crawl-archive-now-available/">commoncrawl.org/2023/04/mar-apr-2023-crawl-archive-now-available/</a></div><div class="p" id="_609">To explore the data, after login:<div class="code" id="_610"><div><pre><code>aws s3 ls s3://commoncrawl/crawl-data/CC-MAIN-2013-20/</code></pre></div></div></div><div class="p" id="_611">Copy the toplevel directory only:<div class="code" id="_612"><div><pre><code>aws s3 cp s3://commoncrawl/crawl-data/CC-MAIN-2013-20/ . --recursive --exclude "*/*"</code></pre></div></div></div><div class="p" id="_613">Copy some wet/wat files:<div class="code" id="_614"><div><pre><code>aws s3 cp s3://commoncrawl/crawl-data/CC-MAIN-2013-20/segments/1368696381249/wat/CC-MAIN-20130516092621-00000-ip-10-60-113-184.ec2.internal.warc.wat.gz . aws s3 sync s3://commoncrawl/crawl-data/CC-MAIN-2013-20/segments/1368696381249/wet/CC-MAIN-20130516092621-00000-ip-10-60-113-184.ec2.internal.warc.wet.gz .</code></pre></div></div></div><div class="p" id="_615">Directory structrure:<div class="list"><ul id="_616"><li id="_617">cc-index.paths.gz (1K)</li><li id="_618">cc-index-table.paths.gz (1K)</li><li id="_619">segment.paths.gz (1.7K) Sample lines:<div class="code" id="_620"><div><pre><code>crawl-data/CC-MAIN-2013-20/segments/1368696381249/ crawl-data/CC-MAIN-2013-20/segments/1368696381630/</code></pre></div></div></li><li id="_621">index.html (2.3K)</li><li id="_622">wat.paths.gz (98K) Sample lines:<div class="code" id="_623"><div><pre><code>crawl-data/CC-MAIN-2013-20/segments/1368696381249/wat/CC-MAIN-20130516092621-00000-ip-10-60-113-184.ec2.internal.warc.wat.gz crawl-data/CC-MAIN-2013-20/segments/1368696381249/wat/CC-MAIN-20130516092621-00001-ip-10-60-113-184.ec2.internal.warc.wat.gz</code></pre></div></div></li><li id="_624">wet.paths.gz (98K) Sample lines:<div class="code" id="_625"><div><pre><code>crawl-data/CC-MAIN-2013-20/segments/1368696381249/wet/CC-MAIN-20130516092621-00000-ip-10-60-113-184.ec2.internal.warc.wet.gz crawl-data/CC-MAIN-2013-20/segments/1368696381249/wet/CC-MAIN-20130516092621-00001-ip-10-60-113-184.ec2.internal.warc.wet.gz</code></pre></div></div></li><li id="_626">warc.paths.gz (99K)<div class="code" id="_627"><div><pre><code>crawl-data/CC-MAIN-2013-20/segments/1368696381249/warc/CC-MAIN-20130516092621-00000-ip-10-60-113-184.ec2.internal.warc.gz crawl-data/CC-MAIN-2013-20/segments/1368696381249/warc/CC-MAIN-20130516092621-00001-ip-10-60-113-184.ec2.internal.warc.gz</code></pre></div></div></li><li id="_628">segments: directgory with actual data<div class="list"><ul id="_629"><li id="_630">1368696381249: one of many segments, any meaning of name?<div class="list"><ul id="_631"><li id="_632"><div class="p" id="_633">CC-MAIN-20130516092621-00000-ip-10-60-113-184.ec2.internal.warc.wet.gz (142M, 334M unzipped)</div><div class="p" id="_634">A tiny bit of metadata, and then plaintext content from the website, e.g. the second one:<div class="code" id="_635"><div><pre><code>WARC/1.0 WARC-Type: conversion WARC-Target-URI: http://004eeb5.netsolhost.com/stephensilver.htm WARC-Date: 2013-05-18T08:11:02Z WARC-Record-ID: &lt;urn:uuid:773b31ba-ddc6-47a5-ae24-d08141b9944d&gt; WARC-Refers-To: &lt;urn:uuid:4b1bdbff-4926-4ced-86f6-072f5bb3837a&gt; WARC-Block-Digest: sha1:LQFSCR2LIJQYMPTXRHWU7HAPQTVSYS3A Content-Type: text/plain Content-Length: 12046 Stephen Silver is a journalist and editor who specializes in the areas of politics, pop culture, film and sports. He works as an editor with the North American Publishing Co. and as a film critic with The Trend, a local newspaper in the Philadelphia area.</code></pre></div></div>No <a href="computer#ip-address">IP</a> unfortunately.</div></li><li id="_636"><div class="p" id="_637">CC-MAIN-20130516092621-00000-ip-10-60-113-184.ec2.internal.warc.wat.gz (329M, 1.4G unzipped)</div><div class="p" id="_638">A lot of JSON metadata and no contents as desired. Contains IP! Some entries however are humongous with a ton of useless data, that's what bloats these so much:<div class="code" id="_639"><div><pre><code>WARC/1.0 WARC-Type: metadata WARC-Target-URI: CC-MAIN-20130516092621-00000-ip-10-60-113-184.ec2.internal.warc.gz WARC-Date: 2013-11-22T14:51:12Z WARC-Record-ID: &lt;urn:uuid:ec54e493-8965-41be-b344-07596cc30b3a&gt; WARC-Refers-To: &lt;urn:uuid:cfeff436-7c4c-4119-aaa4-ec2ce27ad3e1&gt; Content-Type: application/json Content-Length: 1180 {"Envelope":{"Format":"WARC","WARC-Header-Length":"274","Block-Digest":"sha1:JCZOI4V3UOTXGIRLFMPLW4J2WPLAKGVR","Actual-Content-Length":"372","WARC-Header-Metadata":{"WARC-Type":"warcinfo","WARC-Filename":"CC-MAIN-20130516092621-00000-ip-10-60-113-184.ec2.internal.warc.gz","WARC-Date":"2013-11-22T14:51:12Z","Content-Length":"372","WARC-Record-ID":"&lt;urn:uuid:cfeff436-7c4c-4119-aaa4-ec2ce27ad3e1&gt;","Content-Type":"application/warc-fields"},"Payload-Metadata":{"Trailing-Slop-Length":"0","Actual-Content-Type":"application/warc-fields","Actual-Content-Length":"372","Headers-Corrupt":true,"WARC-Info-Metadata":{"robots":"classic","software":"Nutch 1.6 (CC)/CC WarcExport 1.0","description":"Wide crawl of the web with URLs provided by Blekko for Spring 2013","hostname":"ip-10-60-113-184.ec2.internal","format":"WARC File Format 1.0","isPartOf":"CC-MAIN-2013-20","operator":"CommonCrawl Admin","publisher":"CommonCrawl"}}},"Container":{"Compressed":true,"Gzip-Metadata":{"Footer-Length":"8","Deflate-Length":"453","Header-Length":"10","Inflated-CRC":"866052549","Inflated-Length":"650"},"Offset":"0","Filename":"CC-MAIN-20130516092621-00000-ip-10-60-113-184.ec2.internal.warc.gz"}} WARC/1.0 WARC-Type: metadata WARC-Target-URI: http://%20jwashington@ap.org/Content/Press-Release/2012/How-AP-reported-in-all-formats-from-tornado-stricken-regions WARC-Date: 2013-05-18T05:48:54Z WARC-Record-ID: &lt;urn:uuid:d519658f-7a63-46c1-849b-4cd92332ddb8&gt; WARC-Refers-To: &lt;urn:uuid:cefd363b-1fec-4590-8305-4c6fab2e095f&gt; Content-Type: application/json Content-Length: 1501 {"Envelope":{"Format":"WARC","WARC-Header-Length":"433","Block-Digest":"sha1:B2B6JDSGWCUQIIUGV54SXEE25RX4SANS","Actual-Content-Length":"302","WARC-Header-Metadata":{"WARC-Type":"request","WARC-Date":"2013-05-18T05:48:54Z","WARC-Warcinfo-ID":"&lt;urn:uuid:cfeff436-7c4c-4119-aaa4-ec2ce27ad3e1&gt;","Content-Length":"302","WARC-Record-ID":"&lt;urn:uuid:cefd363b-1fec-4590-8305-4c6fab2e095f&gt;","WARC-Target-URI":"http://%20jwashington@ap.org/Content/Press-Release/2012/How-AP-reported-in-all-formats-from-tornado-stricken-regions","WARC-IP-Address":"165.1.125.44","Content-Type":"application/http; msgtype=request"},"Payload-Metadata":{"Trailing-Slop-Length":"4","HTTP-Request-Metadata":{"Headers":{"Accept-Language":"en-us,en-gb,en;q=0.7,*;q=0.3","Host":"ap.org","Accept-Encoding":"x-gzip, gzip, deflate","User-Agent":"CCBot/2.0","Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"},"Headers-Length":"300","Entity-Length":"0","Entity-Trailing-Slop-Bytes":"0","Request-Message":{"Method":"GET","Version":"HTTP/1.0","Path":"/Content/Press-Release/2012/How-AP-reported-in-all-formats-from-tornado-stricken-regions"},"Entity-Digest":"sha1:3I42H3S6NNFQ2MSVX7XZKYAYSCX5QBYJ"},"Actual-Content-Type":"application/http; msgtype=request"}},"Container":{"Compressed":true,"Gzip-Metadata":{"Footer-Length":"8","Deflate-Length":"455","Header-Length":"10","Inflated-CRC":"453539965","Inflated-Length":"739"},"Offset":"453","Filename":"CC-MAIN-20130516092621-00000-ip-10-60-113-184.ec2.internal.warc.gz"}}</code></pre></div></div>Let's beautify one of them to see it better:<div class="code" id="_640"><div><pre><code> { "Envelope": { "Format": "WARC", "WARC-Header-Length": "274", "Block-Digest": "sha1:JCZOI4V3UOTXGIRLFMPLW4J2WPLAKGVR", "Actual-Content-Length": "372", "WARC-Header-Metadata": { "WARC-Type": "warcinfo", "WARC-Filename": "CC-MAIN-20130516092621-00000-ip-10-60-113-184.ec2.internal.warc.gz", "WARC-Date": "2013-11-22T14:51:12Z", "Content-Length": "372", "WARC-Record-ID": "&lt;urn:uuid:cfeff436-7c4c-4119-aaa4-ec2ce27ad3e1&gt;", "Content-Type": "application/warc-fields" }, "Payload-Metadata": { "Trailing-Slop-Length": "0", "Actual-Content-Type": "application/warc-fields", "Actual-Content-Length": "372", "Headers-Corrupt": true, "WARC-Info-Metadata": { "robots": "classic", "software": "Nutch 1.6 (CC)/CC WarcExport 1.0", "description": "Wide crawl of the web with URLs provided by Blekko for Spring 2013", "hostname": "ip-10-60-113-184.ec2.internal", "format": "WARC File Format 1.0", "isPartOf": "CC-MAIN-2013-20", "operator": "CommonCrawl Admin", "publisher": "CommonCrawl" } } }, "Container": { "Compressed": true, "Gzip-Metadata": { "Footer-Length": "8", "Deflate-Length": "453", "Header-Length": "10", "Inflated-CRC": "866052549", "Inflated-Length": "650" }, "Offset": "0", "Filename": "CC-MAIN-20130516092621-00000-ip-10-60-113-184.ec2.internal.warc.gz" } }</code></pre></div></div>Fuck no IP addresses either. But other entries do have it, why not this one?</div><div class="p" id="_641">The reason these can be huge is the <code>HTML-Metadata</code> section which contain all outlinks! <a href="https://gist.github.com/Smerity/e750f0ef0ab9aa366558#file-bbc-pretty-wat-L34">gist.github.com/Smerity/e750f0ef0ab9aa366558#file-bbc-pretty-wat-L34</a></div></li><li id="_642"><div class="p" id="_643"><code>CC-MAIN-20130516092621-00000-ip-10-60-113-184.ec2.internal.warc.gz</code> ()</div><div class="p" id="_644">Obtain:<div class="code" id="_645"><div><pre><code>aws s3 cp s3://commoncrawl/crawl-data/CC-MAIN-2013-20/segments/1368696381249/warc/CC-MAIN-20130516092621-00000-ip-10-60-113-184.ec2.internal.warc.gz .</code></pre></div></div></div></li></ul></div></li></ul></div></li></ul></div></div><div class="h" id="common-crawl-athena"><div class="notnav"><h6><a href="common-crawl-athena">Common Crawl Athena</a></h6><span class="hover-meta"> <a class="split" href="common-crawl-athena"></a><span class="metrics"><span class="wcntr"> Words: 4</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#common-crawl" class="u"> Common Crawl</a><a href="#_toc/common-crawl-athena" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/common-crawl-athena"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_646">TODO no <a href="computer#ip-address">IP</a>? Sadface?<div class="list"><ul id="_647"><li id="_648"><a href="https://commoncrawl.org/2018/03/index-to-warc-files-and-urls-in-columnar-format/">commoncrawl.org/2018/03/index-to-warc-files-and-urls-in-columnar-format/</a></li><li id="_649"><a href="https://github.com/commoncrawl/cc-index-table/blob/main/src/sql/athena/cc-index-create-table-flat.sql">github.com/commoncrawl/cc-index-table/blob/main/src/sql/athena/cc-index-create-table-flat.sql</a></li><li id="_650"><a href="https://github.com/commoncrawl/cc-index-table/issues/30">github.com/commoncrawl/cc-index-table/issues/30</a></li></ul></div></div><div class="h" id="common-crawl-web-graph"><div class="notnav"><h6><a href="common-crawl-web-graph">Common Crawl web graph</a></h6><span class="hover-meta"> <a class="split" href="common-crawl-web-graph"></a><span class="metrics"><span class="wcntr"> Words: 68</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#common-crawl" class="u"> Common Crawl</a><a href="#_toc/common-crawl-web-graph" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/common-crawl-web-graph"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_651"><a href="https://commoncrawl.org/web-graphs">commoncrawl.org/web-graphs</a></div><div class="p" id="_652">In 2017 apparently they've started making their own Web Graphs, i.e. they parse the HTML and extract the graph of what links to what.</div><div class="p" id="_653">This is exactly what we need for an open implementation of <a href="google#pagerank">PageRank</a>.</div><div class="p" id="_654">Edit: actually, they already calculate <a href="google#pagerank">PageRank</a> for us!!! Fantastic!!! Main section: <a href="google#common-crawl-web-graph-official-pagerank">Section "Common Crawl web graph official PageRank"</a>.</div><div class="p" id="_655">The graphs are dumped in <a href="mathematics#bvgraph">BVGraph</a> format.</div><div class="p" id="_656">A quick exploration of the graph can be seen at: <a href="https://github.com/cirosantilli/cirosantilli.github.io/issues/198">github.com/cirosantilli/cirosantilli.github.io/issues/198</a></div><div class="p" id="_657">Their source code is at: <a href="https://github.com/commoncrawl/cc-webgraph">github.com/commoncrawl/cc-webgraph</a></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="google#common-crawl-web-graph-official-pagerank">Common Crawl web graph official PageRank</a></li></ul></div></div><div class="h" id="reverse-image-search"><div class="notnav"><h3><a href="reverse-image-search">Reverse image search</a></h3><span class="hover-meta"> <a class="split" href="reverse-image-search"></a><span class="metrics"><span class="wcntr"> Words: 51</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#search-engine" class="u"> Search engine</a><a href="#_toc/reverse-image-search" class="toc"></a><a href="https://en.wikipedia.org/wiki/Reverse_image_search" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/reverse-image-search"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="google#google-reverse-image-search">Google reverse image search</a></li></ul></div></div><div class="h" id="reverse-face-image-search"><div class="notnav"><h4><a href="reverse-face-image-search">Reverse face image search</a></h4><span class="hover-meta"> <a class="split" href="reverse-face-image-search"></a><span class="metrics"><span class="wcntr"> Words: 51</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#reverse-image-search" class="u"> Reverse image search</a><a href="#_toc/reverse-face-image-search" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/reverse-face-image-search"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_658">Best-of lists:<div class="list"><ul id="_659"><li id="_660"><a href="https://www.reddit.com/r/OSINT/comments/yzg7g6/best_free_facial_recognitionreverse_image_search/">www.reddit.com/r/OSINT/comments/yzg7g6/best_free_facial_recognitionreverse_image_search/</a></li><li id="_661"><a href="https://www.reddit.com/r/GreatOSINT/comments/1f1op4c/best_free_facial_recognition_image_search/">www.reddit.com/r/GreatOSINT/comments/1f1op4c/best_free_facial_recognition_image_search/</a></li></ul></div></div><div class="h" id="facecheck-id"><div class="notnav"><h5><a href="facecheck-id">facecheck.id</a></h5><span class="hover-meta"> <a class="split" href="facecheck-id"></a><span class="metrics"><span class="wcntr"> Words: 49</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#reverse-face-image-search" class="u"> Reverse face image search</a><a href="#_toc/facecheck-id" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/facecheck-id"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_662"><a href="https://facecheck.id/">facecheck.id/</a></div><div class="p" id="_663">Became paid in 2024: <a href="https://www.reddit.com/r/OSINT/comments/1awkxbi/facecheckid_will_no_longer_be_free/">www.reddit.com/r/OSINT/comments/1awkxbi/facecheckid_will_no_longer_be_free/</a> You can search, it and lists which <a href="social-technology#social-media">social media</a> websites it found the hits on, but does not give the full URLs.</div><div class="p" id="_664">Had one possible non-trivial LinkedIn hit for <a href="computer#caroline-ulbricht">Ross Ulbricht's wife</a> in early 2025, before her identity was publicly known, so they may have something actually going on there</div><div class="h" id="scientific-computing"><div class="notnav"><h2><a href="scientific-computing">Scientific computing</a></h2><span class="hover-meta"> <a class="split" href="scientific-computing"></a><span class="metrics"><span class="wcntr"> Words: 677</span><span class="dcnt"> Articles: 30</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/scientific-computing" class="toc"></a><a href="https://en.wikipedia.org/wiki/Scientific_computing" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/scientific-computing"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="computer-simulation"><div class="notnav"><h3><a href="computer-simulation">Computer simulation</a></h3><span class="hover-meta"> <a class="split" href="computer-simulation"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#scientific-computing" class="u"> Scientific computing</a><a href="#_toc/computer-simulation" class="toc"></a><a href="https://en.wikipedia.org/wiki/Computer_simulation" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/computer-simulation"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="biology#computational-biology">Computational biology</a></li><li><a href="physics#computational-chemistry">Computational chemistry</a></li><li><a href="physics#computational-physics">Computational physics</a></li></ul></div></div><div class="h" id="scientific-software"><div class="notnav"><h3><a href="scientific-software">Scientific software</a></h3><span class="hover-meta"> <a class="split" href="scientific-software"></a><span class="metrics"><span class="wcntr"> Words: 677</span><span class="dcnt"> Articles: 28</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#scientific-computing" class="u"> Scientific computing</a><a href="#_toc/scientific-software" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/scientific-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="numerical-software"><div class="notnav"><h4><a href="numerical-software">Numerical software</a></h4><span class="hover-meta"> <a class="split" href="numerical-software"></a><span class="metrics"><span class="wcntr"> Words: 533</span><span class="dcnt"> Articles: 13</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#scientific-software" class="u"> Scientific software</a><a href="#_toc/numerical-software" class="toc"></a><a href="https://en.wikipedia.org/wiki/Category:Numerical_software" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/numerical-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="calculus#partial-differential-equation-solver">Partial differential equation solver</a></li></ul></div></div><div class="h" id="arbitrary-precision-arithmetic"><div class="notnav"><h5><a href="arbitrary-precision-arithmetic">Arbitrary-precision arithmetic</a></h5><span class="hover-meta"> <a class="split" href="arbitrary-precision-arithmetic"></a><span class="metrics"><span class="wcntr"> Words: 2</span><span class="dcnt"> Articles: 4</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#numerical-software" class="u"> Numerical software</a><a href="#_toc/arbitrary-precision-arithmetic" class="toc"></a><a href="https://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/arbitrary-precision-arithmetic"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="list-of-arbitrary-precision-arithmetic-sofware"><div class="notnav"><h6><a href="list-of-arbitrary-precision-arithmetic-sofware">List of arbitrary-precision arithmetic sofware</a></h6><span class="hover-meta"> <a class="split" href="list-of-arbitrary-precision-arithmetic-sofware"></a><span class="metrics"><span class="wcntr"> Words: 2</span><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#arbitrary-precision-arithmetic" class="u"> Arbitrary-precision arithmetic</a><a href="#_toc/list-of-arbitrary-precision-arithmetic-sofware" class="toc"></a><a href="https://en.wikipedia.org/wiki/List_of_arbitrary-precision_arithmetic_sofware" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/list-of-arbitrary-precision-arithmetic-sofware"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="gnu-multiple-precision-arithmetic-library"><div class="notnav"><h6 data-level="7"><a href="gnu-multiple-precision-arithmetic-library">GNU Multiple Precision Arithmetic Library <span class="meta">(GMP)</span></a></h6><span class="hover-meta"> <a class="split" href="gnu-multiple-precision-arithmetic-library"></a><span class="metrics"><span class="wcntr"> Words: 2</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-arbitrary-precision-arithmetic-sofware" class="u"> List of arbitrary-precision arithmetic sofware</a><a href="#_toc/gnu-multiple-precision-arithmetic-library" class="toc"></a><a href="https://en.wikipedia.org/wiki/GNU_Multiple_Precision_Arithmetic_Library" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/gnu-multiple-precision-arithmetic-library"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="computer-science#antihydra-gmp-implementation">Antihydra GMP implementation</a></li></ul></div></div><div class="h" id="gmp-example"><div class="notnav"><h6 data-level="8"><a href="gmp-example">GMP example</a></h6><span class="hover-meta"> <a class="split" href="gmp-example"></a><span class="metrics"><span class="wcntr"> Words: 2</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#gnu-multiple-precision-arithmetic-library" class="u"> GNU Multiple Precision Arithmetic Library</a><a href="#_toc/gmp-example" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/gmp-example"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_666">Under: <a href="_dir/gmp">gmp</a>.</div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="computer-science#_file/gmp/antihydra.c">Gmp/antihydra.c</a></li></ul></div></div><div class="h" id="_file/gmp/hello.c"><div class="notnav"><h6 data-level="9"><a href="_file/gmp/hello.c">gmp/hello.c</a></h6><span class="hover-meta"> <a class="split" href="_file/gmp/hello.c"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#gmp-example" class="u"> GMP example</a><a href="#_toc/_file/gmp/hello.c" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/_file/gmp/hello.c"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div><div class="nav file"><b> <a href="_dir/">(root)</a> / <a href="_dir/gmp">gmp</a> / <a href="_raw/gmp/hello.c">hello.c</a></b></div></nav></div><div class="p"><b>gmp/hello.c</b></div><div class="code"><div><pre><code>/* Adapted from: * https://en.wikipedia.org/w/index.php?title=GNU_Multiple_Precision_Arithmetic_Library&amp;oldid=1213913871 * Tested on GMP 6.3.0, Ubuntu 24.04. */ #include &lt;stdio.h&gt; #include &lt;gmp.h&gt; int main(void) { mpz_t x, y, result; mpz_init_set_str(x, "7612058254738945", 10); mpz_init_set_str(y, "9263591128439081", 10); mpz_init(result); mpz_mul(result, x, y); gmp_printf("%Zd * %Zd = %Zd\n", x, y, result); /* Cleanup */ mpz_clear(x); mpz_clear(y); mpz_clear(result); return 0; } </code></pre></div></div><div class="h" id="basic-linear-algebra-subprograms"><div class="notnav"><h5><a href="basic-linear-algebra-subprograms">Basic Linear Algebra Subprograms <span class="meta">(BLAS)</span></a></h5><span class="hover-meta"> <a class="split" href="basic-linear-algebra-subprograms"></a><span class="metrics"><span class="wcntr"> Words: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#numerical-software" class="u"> Numerical software</a><a href="#_toc/basic-linear-algebra-subprograms" class="toc"></a><a href="https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/basic-linear-algebra-subprograms"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_668">The <a href="linguistics#original-gangster">original gangster</a>.</div><div class="h" id="computer-algebra"><div class="notnav"><h5><a href="computer-algebra">Computer algebra <span class="meta">(Symbolic computation)</span></a></h5><span class="hover-meta"> <a class="split" href="computer-algebra"></a><span class="metrics"><span class="wcntr"> Words: 529</span><span class="dcnt"> Articles: 6</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#numerical-software" class="u"> Numerical software</a><a href="#_toc/computer-algebra" class="toc"></a><a href="https://en.wikipedia.org/wiki/Computer_algebra" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/computer-algebra"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="symbolic-integration"><div class="notnav"><h6><a href="symbolic-integration">Symbolic integration</a></h6><span class="hover-meta"> <a class="split" href="symbolic-integration"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-algebra" class="u"> Computer algebra</a><a href="#_toc/symbolic-integration" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/symbolic-integration"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="integration-bee"><div class="notnav"><h6 data-level="7"><a href="integration-bee">Integration Bee</a></h6><span class="hover-meta"> <a class="split" href="integration-bee"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#symbolic-integration" class="u"> Symbolic integration</a><a href="#_toc/integration-bee" class="toc"></a><a href="https://en.wikipedia.org/wiki/Integration_Bee" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/integration-bee"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="computer-algebra-system"><div class="notnav"><h6><a href="computer-algebra-system">Computer algebra system</a></h6><span class="hover-meta"> <a class="split" href="computer-algebra-system"></a><span class="metrics"><span class="wcntr"> Words: 529</span><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-algebra" class="u"> Computer algebra</a><a href="#_toc/computer-algebra-system" class="toc"></a><a href="https://en.wikipedia.org/wiki/Computer_algebra_system" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/computer-algebra-system"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="sympy"><div class="notnav"><h6 data-level="7"><a href="sympy">SymPy</a></h6><span class="hover-meta"> <a class="split" href="sympy"></a><span class="metrics"><span class="wcntr"> Words: 529</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#computer-algebra-system" class="u"> Computer algebra system</a><a href="#_toc/sympy" class="toc"></a><a href="https://en.wikipedia.org/wiki/SymPy" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/sympy"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_670">This is the dream <a href="education#exam">cheating</a> software every student should know about.</div><div class="p" id="_671">It also has serious applications obviously. <a href="https://www.sympy.org/scipy-2017-codegen-tutorial/">www.sympy.org/scipy-2017-codegen-tutorial/</a> mentions <a href="#automatic-programming">code generation</a> capabilities, which sounds super cool!</div><div class="p" id="_672">The code in this section was tested on <code>sympy==1.8</code> and <a href="programming-language#python-programming-language">Python</a> 3.9.5.</div><div class="p" id="_673">Let's start with some basics. <a href="formalization-of-mathematics#fraction">fractions</a>:<div class="code" id="_674"><div><pre><code>from sympy import * sympify(2)/3 + sympify(1)/2</code></pre></div></div>outputs:<div class="code" id="_675"><div><pre><code>7/6</code></pre></div></div>Note that this is an exact value, it does not get converted to <a href="mathematics#floating-point-number">floating-point numbers</a> where precision could be lost!</div><div class="p" id="_676">We can also do everything with symbols:<div class="code" id="_677"><div><pre><code>from sympy import * x, y = symbols('x y') expr = x/3 + y/2 print(expr)</code></pre></div></div>outputs:<div class="code" id="_678"><div><pre><code>x/3 + y/2</code></pre></div></div>We can now evaluate that expression object at any time:<div class="code" id="_679"><div><pre><code>expr.subs({x: 1, y: 2})</code></pre></div></div>outputs:<div class="code" id="_680"><div><pre><code>4/3</code></pre></div></div></div><div class="p" id="_681">How about a square root?<div class="code" id="_682"><div><pre><code>x = sqrt(2) print(x)</code></pre></div></div>outputs:<div class="code" id="_683"><div><pre><code>sqrt(2)</code></pre></div></div>so we understand that the value was kept without simplification. And of course:<div class="code" id="_684"><div><pre><code>sqrt(2)**2</code></pre></div></div>outputs <code>2</code>. Also:<div class="code" id="_685"><div><pre><code>sqrt(-1)</code></pre></div></div>outputs:<div class="code" id="_686"><div><pre><code>I</code></pre></div></div><code>I</code> is the <a href="formalization-of-mathematics#imaginary-unit">imaginary unit</a>. We can use that symbol directly as well, e.g.:<div class="code" id="_687"><div><pre><code>I*I</code></pre></div></div>gives:<div class="code" id="_688"><div><pre><code>-1</code></pre></div></div></div><div class="p" id="_689">Let's do some trigonometry:<div class="code" id="_690"><div><pre><code>cos(pi)</code></pre></div></div>gives:<div class="code" id="_691"><div><pre><code>-1</code></pre></div></div>and:<div class="code" id="_692"><div><pre><code>cos(pi/4)</code></pre></div></div>gives:<div class="code" id="_693"><div><pre><code>sqrt(2)/2</code></pre></div></div>The exponential also works:<div class="code" id="_694"><div><pre><code>exp(I*pi)</code></pre></div></div>gives;<div class="code" id="_695"><div><pre><code>-1</code></pre></div></div></div><div class="p" id="_696">Now for some <a href="calculus">calculus</a>. To find the <a href="calculus#derivative">derivative</a> of the <a href="calculus#natural-logarithm">natural logarithm</a>:<div class="code" id="_697"><div><pre><code>from sympy import * x = symbols('x') print(diff(ln(x), x))</code></pre></div></div>outputs:<div class="code" id="_698"><div><pre><code>1/x</code></pre></div></div>Just read that. One over x. Beauty. And now for some integration:<div class="code" id="_699"><div><pre><code>print(integrate(1/x, x))</code></pre></div></div>outputs:<div class="code" id="_700"><div><pre><code>log(x)</code></pre></div></div>OK.</div><div class="p" id="_701">Let's do some more. Let's solve a simple <a href="calculus#differential-equation">differential equation</a>:<div class="code" id="_702"><div><pre><code>y''(t) - 2y'(t) + y(t) = sin(t)</code></pre></div></div>Doing:<div class="code" id="_703"><div><pre><code>from sympy import * x = symbols('x') f, g = symbols('f g', cls=Function) diffeq = Eq(f(x).diff(x, x) - 2*f(x).diff(x) + f(x), sin(x)**4) print(dsolve(diffeq, f(x)))</code></pre></div></div>outputs:<div class="code" id="_704"><div><pre><code>Eq(f(x), (C1 + C2*x)*exp(x) + cos(x)/2)</code></pre></div></div>which means:<div class="math" id="_705"><div><div class="equation"><div><span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.10764em;">f</span><span class="mopen">(</span><span class="mord mathnormal">x</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.0715em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.07153em;">C</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.0715em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord mathnormal">x</span><span class="mord"><span class="mord mathnormal">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.6644em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">x</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">cos</span><span class="mopen">(</span><span class="mord mathnormal">x</span><span class="mclose">)</span><span class="mord">/2</span></span></span></span></div><div class="number"><a href="#_705">(1)</a></div></div></div></div>To be fair though, it can't do anything crazy, it likely just goes over known patterns that it has solvers for, e.g. if we change it to:<div class="code" id="_706"><div><pre><code>diffeq = Eq(f(x).diff(x, x)**2 + f(x), 0)</code></pre></div></div>it just blows up:<div class="code" id="_707"><div><pre><code>NotImplementedError: solve: Cannot solve f(x) + Derivative(f(x), (x, 2))**2</code></pre></div></div>Sad.</div><div class="p" id="_708">Let's try some <a href="formalization-of-mathematics#algebraic-equation">polynomial equations</a>:<div class="code" id="_709"><div><pre><code>from sympy import * x, a, b, c = symbols('x a b c d e f') eq = Eq(a*x**2 + b*x + c, 0) sol = solveset(eq, x) print(sol)</code></pre></div></div>which outputs:<div class="code" id="_710"><div><pre><code>FiniteSet(-b/(2*a) - sqrt(-4*a*c + b**2)/(2*a), -b/(2*a) + sqrt(-4*a*c + b**2)/(2*a))</code></pre></div></div>which is a not amazingly nice version of the <a href="formalization-of-mathematics#quadratic-formula">quadratic formula</a>. Let's evaluate with some specific constants after the fact:<div class="code" id="_711"><div><pre><code>sol.subs({a: 1, b: 2, c: 3})</code></pre></div></div>which outputs<div class="code" id="_712"><div><pre><code>FiniteSet(-1 + sqrt(2)*I, -1 - sqrt(2)*I)</code></pre></div></div>Let's see if it handles the <a href="formalization-of-mathematics#quartic-equation">quartic equation</a>:<div class="code" id="_713"><div><pre><code>x, a, b, c, d, e, f = symbols('x a b c d e f') eq = Eq(e*x**4 + d*x**3 + c*x**2 + b*x + a, 0) solveset(eq, x)</code></pre></div></div>Something comes out. It takes up the entire terminal. Naughty. And now let's try to <a href="formalization-of-mathematics#abel-ruffini-theorem">mess with it</a>:<div class="code" id="_714"><div><pre><code>x, a, b, c, d, e, f = symbols('x a b c d e f') eq = Eq(f*x**5 + e*x**4 + d*x**3 + c*x**2 + b*x + a, 0) solveset(eq, x)</code></pre></div></div>and this time it spits out something more magic:<div class="code" id="_715"><div><pre><code>ConditionSet(x, Eq(a + b*x + c*x**2 + d*x**3 + e*x**4 + f*x**5, 0), Complexes)</code></pre></div></div>Oh well.</div><div class="p" id="_716">Let's try some <a href="linear-algebra">linear algebra</a>.<div class="code" id="_717"><div><pre><code>m = Matrix([[1, 2], [3, 4]])</code></pre></div></div>Let's invert it:<div class="code" id="_718"><div><pre><code>m**-1</code></pre></div></div>outputs:<div class="code" id="_719"><div><pre><code>Matrix([ [ -2, 1], [3/2, -1/2]])</code></pre></div></div></div><div class="h" id="sympy-special-function"><div class="notnav"><h6 data-level="8"><a href="sympy-special-function">SymPy special function</a></h6><span class="hover-meta"> <a class="split" href="sympy-special-function"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#sympy" class="u"> SymPy</a><a href="#_toc/sympy-special-function" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/sympy-special-function"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="_file/python/sympy_cheat/logarithm_integral.py"><div class="notnav"><h6 data-level="9"><a href="_file/python/sympy_cheat/logarithm_integral.py">python/sympy_cheat/logarithm_integral.py <span class="meta">(<code>li</code>)</span></a></h6><span class="hover-meta"> <a class="split" href="_file/python/sympy_cheat/logarithm_integral.py"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#sympy-special-function" class="u"> SymPy special function</a><a href="#_toc/_file/python/sympy_cheat/logarithm_integral.py" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/_file/python/sympy_cheat/logarithm_integral.py"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div><div class="nav file"><b> <a href="_dir/">(root)</a> / <a href="_dir/python">python</a> / <a href="_dir/python/sympy_cheat">sympy_cheat</a> / <a href="_raw/python/sympy_cheat/logarithm_integral.py">logarithm_integral.py</a></b></div></nav></div><div class="p"><b>python/sympy_cheat/logarithm_integral.py</b></div><div class="code"><div><pre><code>#!/usr/bin/env python3 from sympy import * x = symbols('x') myli = integrate(sympify(1)/ln(x), x) # It recognizes our definition as its own li! Beauty. assert myli.equals(li(x)) for r in range(-2, 2): for i in range(-2, 2): print(f'{r} {i} {li(r + i*I).evalf()}') </code></pre></div></div><div class="h" id="scientific-visualization"><div class="notnav"><h4><a href="scientific-visualization">Scientific visualization</a></h4><span class="hover-meta"> <a class="split" href="scientific-visualization"></a><span class="metrics"><span class="wcntr"> Words: 144</span><span class="dcnt"> Articles: 13</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#scientific-software" class="u"> Scientific software</a><a href="#_toc/scientific-visualization" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/scientific-visualization"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="chart"><div class="notnav"><h5><a href="chart">Chart</a></h5><span class="hover-meta"> <a class="split" href="chart"></a><span class="metrics"><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#scientific-visualization" class="u"> Scientific visualization</a><a href="#_toc/chart" class="toc"></a><a href="https://en.wikipedia.org/wiki/Chart" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/chart"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="chart-type"><div class="notnav"><h6><a href="chart-type">Chart type</a></h6><span class="hover-meta"> <a class="split" href="chart-type"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#chart" class="u"> Chart</a><a href="#_toc/chart-type" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/chart-type"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="histogram"><div class="notnav"><h6 data-level="7"><a href="histogram">Histogram</a></h6><span class="hover-meta"> <a class="split" href="histogram"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#chart-type" class="u"> Chart type</a><a href="#_toc/histogram" class="toc"></a><a href="https://en.wikipedia.org/wiki/Histogram" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/histogram"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="scientific-visualization-software"><div class="notnav"><h5><a href="scientific-visualization-software">Scientific visualization software</a></h5><span class="hover-meta"> <a class="split" href="scientific-visualization-software"></a><span class="metrics"><span class="wcntr"> Words: 144</span><span class="dcnt"> Articles: 9</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#scientific-visualization" class="u"> Scientific visualization</a><a href="#_toc/scientific-visualization-software" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/scientific-visualization-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_721"><a href="https://en.wikipedia.org/wiki/Scientific_visualization">en.wikipedia.org/wiki/Scientific_visualization</a></div><div class="p" id="_722"><a href="ciro-santilli">Ciro's</a> large dataset survey: <a href="#survey-of-open-source-interactive-plotting-software-with-a-10-million-point-scatter-plot-benchmark-by-ciro-santilli">Section "Survey of open source interactive plotting software with a 10 million point scatter plot benchmark by Ciro Santilli"</a>.</div><div class="h" id="open-source-scientific-computing-consultancies"><div class="notnav"><h6><a href="open-source-scientific-computing-consultancies">Open source scientific computing consultancies</a></h6><span class="hover-meta"> <a class="split" href="open-source-scientific-computing-consultancies"></a><span class="metrics"><span class="wcntr"> Words: 5</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#scientific-visualization-software" class="u"> Scientific visualization software</a><a href="#_toc/open-source-scientific-computing-consultancies" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/open-source-scientific-computing-consultancies"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_723">Huge respect to this companies.</div><div class="h" id="enthought"><div class="notnav"><h6 data-level="7"><a href="enthought">Enthought</a></h6><span class="hover-meta"> <a class="split" href="enthought"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-source-scientific-computing-consultancies" class="u"> Open source scientific computing consultancies</a><a href="#_toc/enthought" class="toc"></a><a href="https://en.wikipedia.org/wiki/Enthought" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/enthought"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="kitware"><div class="notnav"><h6 data-level="7"><a href="kitware">Kitware</a></h6><span class="hover-meta"> <a class="split" href="kitware"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#open-source-scientific-computing-consultancies" class="u"> Open source scientific computing consultancies</a><a href="#_toc/kitware" class="toc"></a><a href="https://en.wikipedia.org/wiki/Kitware" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/kitware"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="plotting-software"><div class="notnav"><h6><a href="plotting-software">Plotting software</a></h6><span class="hover-meta"> <a class="split" href="plotting-software"></a><span class="metrics"><span class="wcntr"> Words: 134</span><span class="dcnt"> Articles: 5</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#scientific-visualization-software" class="u"> Scientific visualization software</a><a href="#_toc/plotting-software" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/plotting-software"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="real-time-live-plot-from-streaming-data"><div class="notnav"><h6 data-level="7"><a href="real-time-live-plot-from-streaming-data">Real time live plot from streaming data</a></h6><span class="hover-meta"> <a class="split" href="real-time-live-plot-from-streaming-data"></a><span class="metrics"><span class="wcntr"> Words: 9</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#plotting-software" class="u"> Plotting software</a><a href="#_toc/real-time-live-plot-from-streaming-data" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/real-time-live-plot-from-streaming-data"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_724">E.g. showing live data from a scientific instrument! TODO:<div class="list"><ul id="_725"><li id="_726"><a href="https://superuser.com/questions/825588/what-is-the-easiest-way-of-visualizing-data-from-stdout-as-a-graph">superuser.com/questions/825588/what-is-the-easiest-way-of-visualizing-data-from-stdout-as-a-graph</a></li><li id="_727"><a href="https://unix.stackexchange.com/questions/190337/how-can-i-make-a-graphical-plot-of-a-sequence-of-numbers-from-the-standard-input">unix.stackexchange.com/questions/190337/how-can-i-make-a-graphical-plot-of-a-sequence-of-numbers-from-the-standard-input</a></li><li id="_728"><a href="https://stackoverflow.com/questions/44470965/how-can-you-watch-gnuplot-realtime-data-plots-as-a-live-graph-with-automatic-up">stackoverflow.com/questions/44470965/how-can-you-watch-gnuplot-realtime-data-plots-as-a-live-graph-with-automatic-up</a></li><li id="_729"><a href="https://stackoverflow.com/questions/14074790/plotting-a-string-of-csv-data-in-realtime-using-linux">stackoverflow.com/questions/14074790/plotting-a-string-of-csv-data-in-realtime-using-linux</a></li><li id="_730"><a href="https://stackoverflow.com/questions/11874767/how-do-i-plot-in-real-time-in-a-while-loop-using-matplotlib">stackoverflow.com/questions/11874767/how-do-i-plot-in-real-time-in-a-while-loop-using-matplotlib</a></li></ul></div></div><div class="h" id="survey-of-open-source-interactive-plotting-software-with-a-10-million-point-scatter-plot-benchmark-by-ciro-santilli"><div class="notnav"><h6 data-level="7"><a href="survey-of-open-source-interactive-plotting-software-with-a-10-million-point-scatter-plot-benchmark-by-ciro-santilli">Survey of open source interactive plotting software with a 10 million point scatter plot benchmark by Ciro Santilli</a></h6><span class="hover-meta"> <a class="split" href="survey-of-open-source-interactive-plotting-software-with-a-10-million-point-scatter-plot-benchmark-by-ciro-santilli"></a><span class="metrics"><span class="wcntr"> Words: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#plotting-software" class="u"> Plotting software</a><a href="#_toc/survey-of-open-source-interactive-plotting-software-with-a-10-million-point-scatter-plot-benchmark-by-ciro-santilli" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/survey-of-open-source-interactive-plotting-software-with-a-10-million-point-scatter-plot-benchmark-by-ciro-santilli"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_731"><a href="https://stackoverflow.com/questions/5854515/large-plot-20-million-samples-gigabytes-of-data/55967461#55967461">stackoverflow.com/questions/5854515/large-plot-20-million-samples-gigabytes-of-data/55967461#55967461</a></div><div class="p" id="_732">By <a href="ciro-santilli">Ciro Santilli</a>.</div><div class="figure"><figure id="_733"><div class="float-wrap"><a href="https://raw.githubusercontent.com/cirosantilli/media/master/VisIt_zoom_in_10_million_straight_line_plot_with_some_marked_points.png"><img src="https://raw.githubusercontent.com/cirosantilli/media/master/VisIt_zoom_in_10_million_straight_line_plot_with_some_marked_points.png" loading="lazy" height="315"></a></div><figcaption><a href="#_733"><span class="caption-prefix">Figure 2. </span></a><a href="https://stackoverflow.com/questions/5854515/large-plot-20-million-samples-gigabytes-of-data/55967461#55967461">Source</a>. </figcaption></figure></div><div class="h" id="matplotlib"><div class="notnav"><h6 data-level="7"><a href="matplotlib">Matplotlib</a></h6><span class="hover-meta"> <a class="split" href="matplotlib"></a><span class="metrics"><span class="wcntr"> Words: 60</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#plotting-software" class="u"> Plotting software</a><a href="#_toc/matplotlib" class="toc"></a><a href="https://en.wikipedia.org/wiki/Matplotlib" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/matplotlib"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="programming-language#python-library">Python library</a></span></div></nav></div><div class="p" id="_735">It does a huge percentage of what you want easily, and from <a href="programming-language#python-programming-language">the language that you want to use</a>.</div><div class="p" id="_736">Tends to be <a href="ciro-santilli">Ciro</a>'s pick if <a href="#gnuplot">gnuplot</a> can't handle the use case, or if the project is really really serious.</div><div class="p" id="_737">Couldn't handle exploration of large datasets though: <a href="#survey-of-open-source-interactive-plotting-software-with-a-10-million-point-scatter-plot-benchmark-by-ciro-santilli">Survey of open source interactive plotting software with a 10 million point scatter plot benchmark by Ciro Santilli</a></div><div class="p" id="_738">Examples:<div class="list"><ul id="_739"><li id="_740"><a href="_raw/matplotlib/hello.py">matplotlib/hello.py</a></li><li id="_741"><a href="_raw/matplotlib/educational2d.py">matplotlib/educational2d.py</a></li><li id="_742"><a href="_raw/matplotlib/axis.py">matplotlib/axis.py</a></li><li id="_743"><a href="_raw/matplotlib/label.py">matplotlib/label.py</a></li><li id="_744">Line style<div class="list"><ul id="_745"><li id="_746"><a href="_raw/matplotlib/line_points.py">matplotlib/line_points.py</a></li><li id="_747"><a href="_raw/matplotlib/tick.py">matplotlib/tick.py</a></li><li id="_748"><a href="_raw/matplotlib/prop_cycle.py">matplotlib/prop_cycle.py</a></li></ul></div></li><li id="_749">Subplots<div class="list"><ul id="_750"><li id="_751"><a href="_raw/matplotlib/subplots.py">matplotlib/subplots.py</a></li><li id="_752"><a href="_raw/matplotlib/subplots_add.py">matplotlib/subplots_add.py</a></li></ul></div></li><li id="_753"><a href="_raw/matplotlib/two_lines.py">matplotlib/two_lines.py</a><div class="list"><ul id="_754"><li id="_755"><a href="_raw/matplotlib/plot_matrix.py">matplotlib/plot_matrix.py</a></li><li id="_756"><a href="_raw/matplotlib/plot_matrix_x.py">matplotlib/plot_matrix_x.py</a></li><li id="_757"><a href="_raw/matplotlib/legend_outside.py">matplotlib/legend_outside.py</a></li></ul></div></li><li id="_758">Data from files<div class="list"><ul id="_759"><li id="_760"><a href="_raw/matplotlib/plotfile.py">matplotlib/plotfile.py</a></li></ul></div></li><li id="_761">Specialized<div class="list"><ul id="_762"><li id="_763"><a href="_raw/matplotlib/bloch_sphere_walk.py">matplotlib/bloch_sphere_walk.py</a></li><li id="_764"><a href="_raw/matplotlib/bloch_sphere.py">matplotlib/bloch_sphere.py</a></li></ul></div></li></ul></div></div><div class="p" id="_765">Tested on Python 3.10.4, <a href="systems-programming#ubuntu-22-04">Ubuntu 22.04</a>.</div><div class="h" id="gnuplot"><div class="notnav"><h6 data-level="7"><a href="gnuplot">gnuplot</a></h6><span class="hover-meta"> <a class="split" href="gnuplot"></a><span class="metrics"><span class="wcntr"> Words: 63</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#plotting-software" class="u"> Plotting software</a><a href="#_toc/gnuplot" class="toc"></a><a href="https://en.wikipedia.org/wiki/Gnuplot" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/gnuplot"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_766">Tends to be <a href="ciro-santilli">Ciro Santilli</a>'s first attempt for quick and dirty graphing: <a href="https://github.com/cirosantilli/gnuplot-cheat">github.com/cirosantilli/gnuplot-cheat</a>.</div><div class="p" id="_767"><a href="computer#domain-specific-language">domain-specific language</a>. When it get the jobs done, it is in 3 lines and it feels great.</div><div class="p" id="_768">When it doesn't, you Google for an hours, and then you give up in frustration, and fall back to <a href="#matplotlib">Matplotlib</a>.</div><div class="p" id="_769">Couldn't handle exploration of large datasets though: <a href="#survey-of-open-source-interactive-plotting-software-with-a-10-million-point-scatter-plot-benchmark-by-ciro-santilli">Survey of open source interactive plotting software with a 10 million point scatter plot benchmark by Ciro Santilli</a></div><div class="h" id="gnuplot-command-line-hello-world"><div class="notnav"><h6 data-level="8"><a href="gnuplot-command-line-hello-world">gnuplot command line hello world</a></h6><span class="hover-meta"> <a class="split" href="gnuplot-command-line-hello-world"></a><span class="metrics"><span class="wcntr"> Words: 8</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#gnuplot" class="u"> gnuplot</a><a href="#_toc/gnuplot-command-line-hello-world" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/gnuplot-command-line-hello-world"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_770"><a href="https://askubuntu.com/questions/277363/gnuplot-not-showing-the-graph-window/683073#683073">askubuntu.com/questions/277363/gnuplot-not-showing-the-graph-window/683073#683073</a></div><div class="p" id="_771">CLI hello world:<div class="code" id="_772"><div><pre><code>gnuplot -p -e 'p sin(x)'</code></pre></div></div></div><div class="h" id="software-reverse-engineering"><div class="notnav"><h2><a href="software-reverse-engineering">Software reverse engineering</a></h2><span class="hover-meta"> <a class="split" href="software-reverse-engineering"></a><span class="metrics"><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/software-reverse-engineering" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/software-reverse-engineering"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="technology#reverse-engineering">Reverse engineering</a></span></div></nav></div><div class="h" id="software-reverse-engineering-tool"><div class="notnav"><h3><a href="software-reverse-engineering-tool">Software reverse engineering tool</a></h3><span class="hover-meta"> <a class="split" href="software-reverse-engineering-tool"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-reverse-engineering" class="u"> Software reverse engineering</a><a href="#_toc/software-reverse-engineering-tool" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/software-reverse-engineering-tool"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="binwalk"><div class="notnav"><h3><a href="binwalk">binwalk</a></h3><span class="hover-meta"> <a class="split" href="binwalk"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-reverse-engineering" class="u"> Software reverse engineering</a><a href="#_toc/binwalk" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/binwalk"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_774"><a href="https://github.com/ReFirmLabs/binwalk">github.com/ReFirmLabs/binwalk</a></div><div class="h" id="software-bug"><div class="notnav"><h2><a href="software-bug">Software bug</a></h2><span class="hover-meta"> <a class="split" href="software-bug"></a><span class="metrics"><span class="wcntr"> Words: 496</span><span class="dcnt"> Articles: 15</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/software-bug" class="toc"></a><a href="https://en.wikipedia.org/wiki/Software_bug" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/software-bug"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="formal-verification"><div class="notnav"><h3><a href="formal-verification">Formal verification</a></h3><span class="hover-meta"> <a class="split" href="formal-verification"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-bug" class="u"> Software bug</a><a href="#_toc/formal-verification" class="toc"></a><a href="https://en.wikipedia.org/wiki/Formal_verification" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/formal-verification"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="glitch"><div class="notnav"><h3><a href="glitch">Glitch</a></h3><span class="hover-meta"> <a class="split" href="glitch"></a><span class="metrics"><span class="wcntr"> Words: 27</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-bug" class="u"> Software bug</a><a href="#_toc/glitch" class="toc"></a><a href="https://en.wikipedia.org/wiki/Glitch" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/glitch"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_775">A glitch is more precisely a <a href="#software-bug">software bug</a> that is hard to reproduce. But it has also been used to mean a software bug that is not very serious.</div><div class="h" id="debugging"><div class="notnav"><h3><a href="debugging">Debugging</a></h3><span class="hover-meta"> <a class="split" href="debugging"></a><span class="metrics"><span class="wcntr"> Words: 440</span><span class="dcnt"> Articles: 10</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-bug" class="u"> Software bug</a><a href="#_toc/debugging" class="toc"></a><a href="https://en.wikipedia.org/wiki/Debugging" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/debugging"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_776">Debugging sucks. But there's also nothing quite that "oh fuck, that's why it doesn't work" moment, which happens after you have examined and placed everything that is relevant to the problem into your brain. You just can't see it coming. It just happens. You just learn what you generally have to look at so it happens faster.</div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="#keep-debug-notes">Keep debug notes</a></li></ul></div></div><div class="h" id="ciro-s-call-hierarchy-notation"><div class="notnav"><h4><a href="ciro-s-call-hierarchy-notation">Ciro's call hierarchy notation</a></h4><span class="hover-meta"> <a class="split" href="ciro-s-call-hierarchy-notation"></a><span class="metrics"><span class="wcntr"> Words: 193</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#debugging" class="u"> Debugging</a><a href="#_toc/ciro-s-call-hierarchy-notation" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/ciro-s-call-hierarchy-notation"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_777">This is a simple hierarchical plaintext notation <a href="ciro-santilli">Ciro Santilli</a> created to explain programs to himself.</div><div class="p" id="_778">It is usuall created by doing searches in an <a href="#integrated-development-environment">IDE</a>, and then manually selecting the information of interest.</div><div class="p" id="_779">It attempts to capture intuitive information not only of the call graph itself, including callbacks, but of when things get called or not, by the addition of some context code.</div><div class="p" id="_780">For example, consider the following <a href="programming-language#pseudocode">pseudocode</a>:<div class="code" id="_781"><div><pre><code>f1() { } f2(i) { if (i &gt; 5) { f1() } } f3() { f1() f2_2() } f2_2() { for (i = 0; i &lt; 10; i++) { f2(i) } } main() { f2_2() f3() }</code></pre></div></div>Supose that we are interested in determining what calls <code>f1</code>.</div><div class="p" id="_782">Then a reasonable call hierarchy for <code>f1</code> would be:<div class="code" id="_783"><div><pre><code>f2(i) if (i &gt; 5) { f1() f2_2() for (i = 0; i &lt; 10; i++) { f2(i) main f3 f3() main()</code></pre></div></div></div><div class="p" id="_784">Some general principles:<div class="list"><ul id="_785"><li id="_786">start with a regular call tree</li><li id="_787">to include context:<div class="list"><ul id="_788"><li id="_789">remove any blank lines from the snippet of interest</li><li id="_790">add it indented below the function</li><li id="_791">and then follow it up with a blank line</li><li id="_792">and then finally add any callers at the same indentation level</li></ul></div></li></ul></div></div><div class="h" id="bisection-software-engineering"><div class="notnav"><h4><a href="bisection-software-engineering">Bisection <span class="meta">(software engineering)</span></a></h4><span class="hover-meta"> <a class="split" href="bisection-software-engineering"></a><span class="metrics"><span class="wcntr"> Words: 78</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#debugging" class="u"> Debugging</a><a href="#_toc/bisection-software-engineering" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/bisection-software-engineering"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="p" id="_794">One of the Holiest age old debugging techniques!</div><div class="p" id="_795"><a href="#git">Git</a> has some helpers to help you achieve bisection Nirvana: <a href="https://stackoverflow.com/questions/4713088/how-to-use-git-bisect/22592593#22592593">stackoverflow.com/questions/4713088/how-to-use-git-bisect/22592593#22592593</a></div><div class="p" id="_796">Obviously not restricted to software engineering alone, and used in all areas of engineering, e.g. <a href="statistical-physics#video-air-tight-vs-vacuum-tight-by-alphaphoenix-2020">Video "Air-tight vs. Vacuum-tight by AlphaPhoenix (2020)"</a> uses it in <a href="statistical-physics#vacuum-engineering">vacuum engineering</a>.</div><div class="p" id="_797">The cool thing about bisection is that it is a brainless process: unlike when using a <a href="#debugger">debugger</a>, you don't have to understand anything about the system, and it incredibly narrows down the problem cause for you. Not having to think is great!</div><div class="h" id="debugger"><div class="notnav"><h4><a href="debugger">Debugger</a></h4><span class="hover-meta"> <a class="split" href="debugger"></a><span class="metrics"><span class="wcntr"> Words: 112</span><span class="dcnt"> Articles: 7</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#debugging" class="u"> Debugging</a><a href="#_toc/debugger" class="toc"></a><a href="https://en.wikipedia.org/wiki/Debugger" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/debugger"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="reverse-debugging"><div class="notnav"><h5><a href="reverse-debugging">Reverse debugging</a></h5><span class="hover-meta"> <a class="split" href="reverse-debugging"></a><span class="metrics"><span class="wcntr"> Words: 51</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#debugger" class="u"> Debugger</a><a href="#_toc/reverse-debugging" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/reverse-debugging"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="p" id="_799">Nirvana!!!</div><div class="p" id="_800">For <a href="programming-language#compiled-programming-language">compiled languages</a>, see: <a href="#gdb-reverse-debugging">Section "GDB reverse debugging"</a>.</div><div class="p" id="_801">For <a href="programming-language#javascript">JavaScript</a>: <a href="https://stackoverflow.com/questions/17498159/how-to-go-backwards-while-debugging-javascript-in-chrome-sources-debugging/74968631#74968631">stackoverflow.com/questions/17498159/how-to-go-backwards-while-debugging-javascript-in-chrome-sources-debugging/74968631#74968631</a></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="#gdb-reverse-debugging">GDB reverse debugging</a></li></ul></div></div><div class="h" id="omniscient-debugging"><div class="notnav"><h6><a href="omniscient-debugging">Omniscient debugging</a></h6><span class="hover-meta"> <a class="split" href="omniscient-debugging"></a><span class="metrics"><span class="wcntr"> Words: 44</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#reverse-debugging" class="u"> Reverse debugging</a><a href="#_toc/omniscient-debugging" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/omniscient-debugging"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_802">What it adds on top of <a href="#reverse-debugging">reverse debugging</a>: not only can you go back in time, but you can do it instantaneously.</div><div class="p" id="_803">Or in other words, you can access variables from any point in execution.</div><div class="p" id="_804">TODO implementation? Apparently <a href="#pernosco">Pernosco</a> is an attempt at it, though proprietary.</div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="#pernosco">Pernosco</a></li></ul></div></div><div class="h" id="gnu-debugger"><div class="notnav"><h5><a href="gnu-debugger">GNU Debugger <span class="meta">(GDB)</span></a></h5><span class="hover-meta"> <a class="split" href="gnu-debugger"></a><span class="metrics"><span class="wcntr"> Words: 61</span><span class="dcnt"> Articles: 4</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#debugger" class="u"> Debugger</a><a href="#_toc/gnu-debugger" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/gnu-debugger"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="#gnu-package">GNU package</a></span></div></nav></div><div class="p" id="_807">Just add <a href="#gdb-dashboard">GDB Dashboard</a>, and you're good to go.</div><div class="h" id="gdb-reverse-debugging"><div class="notnav"><h6><a href="gdb-reverse-debugging">GDB reverse debugging</a></h6><span class="hover-meta"> <a class="split" href="gdb-reverse-debugging"></a><span class="metrics"><span class="wcntr"> Words: 46</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#gnu-debugger" class="u"> GNU Debugger</a><a href="#_toc/gdb-reverse-debugging" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/gdb-reverse-debugging"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="#reverse-debugging">Reverse debugging</a></span></div></nav></div><div class="p" id="_809">The best open source implementation as of 2020 seems to be: <a href="#mozilla-rr">Mozilla rr</a>.</div><div class="h" id="mozilla-rr"><div class="notnav"><h6 data-level="7"><a href="mozilla-rr">Mozilla rr</a></h6><span class="hover-meta"> <a class="split" href="mozilla-rr"></a><span class="metrics"><span class="wcntr"> Words: 34</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#gdb-reverse-debugging" class="u"> GDB reverse debugging</a><a href="#_toc/mozilla-rr" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/mozilla-rr"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_810"><a href="https://github.com/mozilla/rr">github.com/mozilla/rr</a></div><div class="list"><ul id="_811"><li id="_812"><a href="https://stackoverflow.com/questions/1206872/go-to-previous-line-in-gdb/46996380#46996380">stackoverflow.com/questions/1206872/go-to-previous-line-in-gdb/46996380#46996380</a></li><li id="_813"><a href="https://stackoverflow.com/questions/1470434/how-does-reverse-debugging-work/53063242#53063242">stackoverflow.com/questions/1470434/how-does-reverse-debugging-work/53063242#53063242</a></li><li id="_814"><a href="https://stackoverflow.com/questions/3649468/setting-breakpoint-in-gdb-where-the-function-returns/46116927#46116927">stackoverflow.com/questions/3649468/setting-breakpoint-in-gdb-where-the-function-returns/46116927#46116927</a></li><li id="_815"><a href="https://stackoverflow.com/questions/27770896/how-to-debug-a-rare-deadlock/50073993#50073993">stackoverflow.com/questions/27770896/how-to-debug-a-rare-deadlock/50073993#50073993</a></li><li id="_816"><a href="https://stackoverflow.com/questions/522619/how-to-do-bidirectional-or-reverse-debugging-of-programs/50074106#50074106">stackoverflow.com/questions/522619/how-to-do-bidirectional-or-reverse-debugging-of-programs/50074106#50074106</a> link only, marked as duplicate of go to previous line</li><li id="_817"><a href="https://softwareengineering.stackexchange.com/questions/181527/why-is-reverse-debugging-rarely-used">softwareengineering.stackexchange.com/questions/181527/why-is-reverse-debugging-rarely-used</a></li></ul></div><div class="h" id="pernosco"><div class="notnav"><h6 data-level="8"><a href="pernosco">Pernosco</a></h6><span class="hover-meta"> <a class="split" href="pernosco"></a><span class="metrics"><span class="wcntr"> Words: 24</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#mozilla-rr" class="u"> Mozilla rr</a><a href="#_toc/pernosco" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/pernosco"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="#omniscient-debugging">Omniscient debugging</a>, <a href="law#proprietary-software">Proprietary software</a></span></div></nav></div><div class="p" id="_820"><a href="https://pernos.co/">pernos.co/</a></div><div class="p" id="_821">Proprietary extension to <a href="#mozilla-rr">Mozilla rr</a> by rr lead coder <a href="systems-programming#robert-o-callahan">Robert O'Callahan</a> et. al, started in 2016 after he quit Mozilla.</div><div class="p" id="_822">TODO what does it add to <code>rr</code>?<div class="list"><ul id="_823"><li id="_824"><a href="https://youtu.be/dMroSfg9kio?t=1494">youtu.be/dMroSfg9kio?t=1494</a></li><li id="_825"><a href="https://robert.ocallahan.org/2018/05/update-pernosco.html">robert.ocallahan.org/2018/05/update-pernosco.html</a></li></ul></div></div><div class="h" id="gdb-dashboard"><div class="notnav"><h6><a href="gdb-dashboard">GDB Dashboard</a></h6><span class="hover-meta"> <a class="split" href="gdb-dashboard"></a><span class="metrics"><span class="wcntr"> Words: 7</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#gnu-debugger" class="u"> GNU Debugger</a><a href="#_toc/gdb-dashboard" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/gdb-dashboard"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_826"><a href="https://github.com/cyrus-and/gdb-dashboard">github.com/cyrus-and/gdb-dashboard</a></div><div class="p" id="_827"><a href="#gnu-debugger">GDB</a> Nirvana?</div><div class="p" id="_828"><a href="https://stackoverflow.com/questions/10115540/gdb-split-view-with-code/51301717#51301717">stackoverflow.com/questions/10115540/gdb-split-view-with-code/51301717#51301717</a></div><div class="figure"><figure id="image-screenshot-of-terminal-running-gdb-dashboard"><div class="float-wrap"><a href="https://web.archive.org/web/20200504130959if_/https://i.stack.imgur.com/mHC8f.png"><img src="https://web.archive.org/web/20200504130959if_/https://i.stack.imgur.com/mHC8f.png" loading="lazy" height="600"></a></div><figcaption><a href="#image-screenshot-of-terminal-running-gdb-dashboard"><span class="caption-prefix">Figure 3. </span></a><div class="title">Screenshot of terminal running GDB Dashboard</div>. <a href="https://github.com/cyrus-and/gdb-dashboard/tree/2d31a3b391e5d0e032b791e1fb7172338b02cecb">Source</a>. </figcaption></figure></div><div class="h" id="minimal-working-example"><div class="notnav"><h3><a href="minimal-working-example">Minimal working example</a></h3><span class="hover-meta"> <a class="split" href="minimal-working-example"></a><span class="metrics"><span class="wcntr"> Words: 29</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-bug" class="u"> Software bug</a><a href="#_toc/minimal-working-example" class="toc"></a><a href="https://en.wikipedia.org/wiki/Minimal_working_example" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/minimal-working-example"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_829">The <a href="music#musical-study">musical study</a> of <a href="#software-engineering">software engineering</a>.</div><div class="p" id="_830"><a href="ciro-santilli">Ciro Santilli</a> is obsessed by those in order to learn any new concept, not just for bug reporting.</div><div class="p" id="_831">This includes to learn more theoretical subjects like <a href="physics">physics</a> and <a href="mathematics">mathematics</a>.</div><div class="h" id="zero-based-numbering"><div class="notnav"><h3><a href="zero-based-numbering">Zero-based numbering</a></h3><span class="hover-meta"> <a class="split" href="zero-based-numbering"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-bug" class="u"> Software bug</a><a href="#_toc/zero-based-numbering" class="toc"></a><a href="https://en.wikipedia.org/wiki/Zero-based_numbering" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/zero-based-numbering"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="software-company"><div class="notnav"><h2><a href="software-company">Software company</a></h2><span class="hover-meta"> <a class="split" href="software-company"></a><span class="metrics"><span class="wcntr"> Words: 850</span><span class="dcnt"> Articles: 18</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/software-company" class="toc"></a><a href="https://en.wikipedia.org/wiki/Software_company" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/software-company"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="company">Company</a></span></div></nav></div><div class="h" id="microsoft"><div class="notnav"><h3><a href="microsoft">Microsoft</a></h3><span class="hover-meta"> <a class="split" href="software-split"></a><span class="metrics"><span class="wcntr"> Words: 386</span><span class="dcnt"> Articles: 12</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-company" class="u"> Software company</a><a href="#_toc/microsoft" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/microsoft"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_833"><a href="microsoft">This section is present in another page, follow this link to view it.</a></div><div class="h" id="adobe"><div class="notnav"><h3><a href="adobe">Adobe</a></h3><span class="hover-meta"> <a class="split" href="adobe"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-company" class="u"> Software company</a><a href="#_toc/adobe" class="toc"></a><a href="https://en.wikipedia.org/wiki/Adobe" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/adobe"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="oracle-corporation"><div class="notnav"><h3><a href="oracle-corporation">Oracle Corporation</a></h3><span class="hover-meta"> <a class="split" href="oracle-corporation"></a><span class="metrics"><span class="wcntr"> Words: 141</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-company" class="u"> Software company</a><a href="#_toc/oracle-corporation" class="toc"></a><a href="https://en.wikipedia.org/wiki/Oracle_Corporation" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/oracle-corporation"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_834"><a href="cirism#evil">Evil</a> company that desecrated the beauty created by <a href="#sun-microsystems">Sun Microsystems</a>, and was <a href="https://en.wikipedia.org/wiki/Google_v._Oracle_America">trying to bury Java once and or all in the 2010's</a>.</div><div class="p" id="_835">Their database is already matched by <a href="#open-source-software">open source</a> e.g. <a href="sql#postgresql">PostgreSQL</a>, and <a href="https://en.wikipedia.org/wiki/Enterprise_resource_planning">ERP</a> and <a href="https://en.wikipedia.org/wiki/Customer_relationship_management">CRM</a> specific systems are boring.</div><div class="p" id="_836">Oracle basically grew out of selling one of the first <a href="sql">SQL</a> implementations in the late 70's, and notably to the <a href="united-states#united-states-government">United States Government</a> and particularly the <a href="science#central-intelligence-agency">CIA</a>. They did deliver a lot of value in those early pre-internet days, but now <a href="#open-source-software">open source</a> is and will supplant them entirely.</div><div class="h" id="sun-microsystems"><div class="notnav"><h4><a href="sun-microsystems">Sun Microsystems</a></h4><span class="hover-meta"> <a class="split" href="sun-microsystems"></a><span class="metrics"><span class="wcntr"> Words: 60</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#oracle-corporation" class="u"> Oracle Corporation</a><a href="#_toc/sun-microsystems" class="toc"></a><a href="https://en.wikipedia.org/wiki/Sun_Microsystems" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/sun-microsystems"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="computer#computer-company">Computer company</a>, <a href="computer-hardware#workstation">Workstation</a></span></div></nav></div><div class="p" id="_839">Although <a href="ciro-santilli">Ciro Santilli</a> is a bit past their era, there's an aura of technical excellence about those people. It just seems that they sucked at business. Those open source hippies. Erm, wait.</div><div class="p" id="_840">Bibliography:<div class="list"><ul id="_841"><li id="_842"><a href="https://archive.org/details/sunburstascentof00hall">archive.org/details/sunburstascentof00hall</a> Sunburst: the ascent of Sun Microsystems by Mark Hall (1990)</li></ul></div></div><div class="figure"><figure id="video-the-dawn-and-dusk-of-sun-microsystems-by-asianometry-2022"><div class="float-wrap"><iframe width="560" height="315" loading="lazy" src="https://www.youtube.com/embed/P1TsVW4P5DI" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div><figcaption><a href="#video-the-dawn-and-dusk-of-sun-microsystems-by-asianometry-2022"><span class="caption-prefix">Video 3. </span></a><div class="title">The Dawn and Dusk of <a href="#sun-microsystems">Sun Microsystems</a> by <a href="computer-hardware#asianometry">Asianometry</a> (2022)</div> <a href="https://www.youtube.com/watch?v=P1TsVW4P5DI">Source</a>. One of the main inspirations for the creation of their <a href="computer-hardware#workstation">workstations</a> were <a href="#computer-aided-design">CAD</a> applications.</figcaption></figure></div><div class="h" id="red-hat"><div class="notnav"><h3><a href="red-hat">Red Hat</a></h3><span class="hover-meta"> <a class="split" href="red-hat"></a><span class="metrics"><span class="wcntr"> Words: 248</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-company" class="u"> Software company</a><a href="#_toc/red-hat" class="toc"></a><a href="https://en.wikipedia.org/wiki/Red_Hat" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/red-hat"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="truth-happens-advertisement-by-red-hat"><div class="notnav"><h4><a href="truth-happens-advertisement-by-red-hat">Truth Happens advertisement by Red Hat</a></h4><span class="hover-meta"> <a class="split" href="truth-happens-advertisement-by-red-hat"></a><span class="metrics"><span class="wcntr"> Words: 248</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#red-hat" class="u"> Red Hat</a><a href="#_toc/truth-happens-advertisement-by-red-hat" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/truth-happens-advertisement-by-red-hat"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="social-technology#the-best-advertisements-of-all-time">The best advertisements of all time</a></span></div></nav></div><div class="p" id="_844"><a href="apple-inc#video-1984-macintosh-advertisement-by-apple-1984">Video "1984 Macintosh advertisement by Apple (1984)"</a> comes to mind.</div><div class="p" id="_845">TODO year. This was a reply to <a href="microsoft">Microsoft</a> anti-<a href="systems-programming#linux">Linux</a> propaganda it seems: <a href="https://www.ubuntubuzz.com/2012/03/truth-happens-redhats-legendary-reply.html">www.ubuntubuzz.com/2012/03/truth-happens-redhats-legendary-reply.html</a></div><div class="p" id="_846">Trascript from: <a href="https://www.dailymotion.com/video/xw3ws">www.dailymotion.com/video/xw3ws</a><div><blockquote id="_847"><div class="p" id="_848">The world is flat. Earth is the centre of the universe. Fact - until proven otherwise.<br>Despite ignorance. Despite ridicule. Despite opposition. Truth happens.</div><div class="p" id="_849">Despite ignorance.<br>The telephone has too many shortcomings to be seriously considered as a means of communication. /Western Union 1876/<br>In 1899 the US Patent Commissioner stated, everything that can be invented has been invented.</div><div class="p" id="_850">Despite ridicule.<br>The phonograph has no commercial value at all. /Thomas Edison 1880/<br>The radio craze will die out in time. /Thomas Edison 1922/<br>The automobile has practically reached the limit of its development. /Scientific American 1909/</div><div class="p" id="_851">Despite it all truth happens.<br>Man will not fly for fifty years. /Orville Wright 1901/<br>The rocket will never leave the Earth's atomosphere. /New York Times 1936/<br>There is a world market for maybe five computers. /<a href="computer#ibm">IBM</a>'s Thomas Watson 1943/<br>640K Ought to be enough for anybody. /Bill Gates 1981/</div><div class="p" id="_852">First they ignore you...<br><a href="systems-programming#linux">Linux</a> is the hype du jour. /Gartner Group 1999/</div><div class="p" id="_853">Then they laugh at you...<br>We think of linux as competitor in the student and hobbyist market. But I really don't think in the commercial market we'll see it in any significant way. /Bill Gates 2001/</div><div class="p" id="_854">Then they fight you...<br>Linux isn't going away. Linux is a serious competitor. We will rise to this challenge. /Steve Ballmer 2003/</div><div class="p" id="_855">Then you win... /Mohandas Gandhi/</div><div class="p" id="_856">You are here.<br>Red Hat Linux. <a href="computer#ibm">IBM</a>.</div></blockquote></div></div><div class="figure"><figure id="video-truth-happens-advertisement-by-red-hat"><div class="float-wrap"><iframe width="560" height="315" loading="lazy" src="https://www.youtube.com/embed/IE00uo3o_MU" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div><figcaption><a href="#video-truth-happens-advertisement-by-red-hat"><span class="caption-prefix">Video 4. </span></a><div class="title">Truth Happens <a href="social-technology#advertisement">advertisement</a> by <a href="#red-hat">Red Hat</a></div>. <a href="https://www.youtube.com/watch?v=IE00uo3o_MU">Source</a>. </figcaption></figure></div><div class="h" id="software-documentation"><div class="notnav"><h2><a href="software-documentation">Software documentation</a></h2><span class="hover-meta"> <a class="split" href="software-documentation"></a><span class="metrics"><span class="wcntr"> Words: 4</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/software-documentation" class="toc"></a><a href="https://en.wikipedia.org/wiki/Software_documentation" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/software-documentation"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="documentation-generator"><div class="notnav"><h3><a href="documentation-generator">Documentation generator</a></h3><span class="hover-meta"> <a class="split" href="documentation-generator"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-documentation" class="u"> Software documentation</a><a href="#_toc/documentation-generator" class="toc"></a><a href="https://en.wikipedia.org/wiki/Documentation_generator" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/documentation-generator"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="programming-language#python-documentation-generator">Python documentation generator</a></li></ul></div></div><div class="h" id="readme"><div class="notnav"><h3><a href="readme">README</a></h3><span class="hover-meta"> <a class="split" href="readme"></a><span class="metrics"><span class="wcntr"> Words: 4</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-documentation" class="u"> Software documentation</a><a href="#_toc/readme" class="toc"></a><a href="https://en.wikipedia.org/wiki/README" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/readme"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_857">Please, use <a href="computer#asciidoc">AsciiDoc</a> and <a href="cirosantilli-com#one-page-to-rule-them-all">one page to rule them all</a>.</div><div class="h" id="software-engineering"><div class="notnav"><h2><a href="software-engineering">Software engineering</a></h2><span class="hover-meta"> <a class="split" href="software-engineering"></a><span class="metrics"><span class="wcntr"> Words: 2k</span><span class="dcnt"> Articles: 48</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/software-engineering" class="toc"></a><a href="https://en.wikipedia.org/wiki/Software_engineering" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/software-engineering"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="software-development"><div class="notnav"><h3><a href="software-development">Software development</a></h3><span class="hover-meta"> <a class="split" href="software-development"></a><span class="metrics"><span class="wcntr"> Words: 4</span><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-engineering" class="u"> Software engineering</a><a href="#_toc/software-development" class="toc"></a><a href="https://en.wikipedia.org/wiki/Software_development" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/software-development"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="software-development-principle"><div class="notnav"><h4><a href="software-development-principle">Software development principle</a></h4><span class="hover-meta"> <a class="split" href="software-development-principle"></a><span class="metrics"><span class="wcntr"> Words: 4</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-development" class="u"> Software development</a><a href="#_toc/software-development-principle" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/software-development-principle"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="don-t-repeat-yourself"><div class="notnav"><h5><a href="don-t-repeat-yourself">Don't repeat yourself</a></h5><span class="hover-meta"> <a class="split" href="don-t-repeat-yourself"></a><span class="metrics"><span class="wcntr"> Words: 4</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-development-principle" class="u"> Software development principle</a><a href="#_toc/don-t-repeat-yourself" class="toc"></a><a href="https://en.wikipedia.org/wiki/Don&#039;t_repeat_yourself" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/don-t-repeat-yourself"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="yet-another"><div class="notnav"><h6><a href="yet-another">Yet another</a></h6><span class="hover-meta"> <a class="split" href="yet-another"></a><span class="metrics"><span class="wcntr"> Words: 4</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#don-t-repeat-yourself" class="u"> Don't repeat yourself</a><a href="#_toc/yet-another" class="toc"></a><a href="https://en.wikipedia.org/wiki/Yet_another" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/yet-another"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_858">The mandatory <a href="art#xkcd">xkcd</a>: <a href="art#xkcd-927-standards">xkcd 927: Standards</a>.</div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="cirism#having-more-than-one-natural-language-is-bad-for-the-world">Having more than one natural language is bad for the world</a></li><li><a href="art#xkcd-927-standards">Xkcd 927: Standards</a></li></ul></div></div><div class="h" id="software-design-pattern"><div class="notnav"><h3><a href="software-design-pattern">Software design pattern</a></h3><span class="hover-meta"> <a class="split" href="software-design-pattern"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-engineering" class="u"> Software engineering</a><a href="#_toc/software-design-pattern" class="toc"></a><a href="https://en.wikipedia.org/wiki/Software_design_pattern" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/software-design-pattern"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="polymorphism-computer-science"><div class="notnav"><h4><a href="polymorphism-computer-science">Polymorphism <span class="meta">(computer science)</span></a></h4><span class="hover-meta"> <a class="split" href="polymorphism-computer-science"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-design-pattern" class="u"> Software design pattern</a><a href="#_toc/polymorphism-computer-science" class="toc"></a><a href="https://en.wikipedia.org/wiki/Polymorphism_(computer_science)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/polymorphism-computer-science"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="software-development-method"><div class="notnav"><h3><a href="software-development-method">Software development method</a></h3><span class="hover-meta"> <a class="split" href="software-development-method"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-engineering" class="u"> Software engineering</a><a href="#_toc/software-development-method" class="toc"></a><a href="https://en.wikipedia.org/wiki/Software_development_method" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/software-development-method"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="pair-programming"><div class="notnav"><h4><a href="pair-programming">Pair programming</a></h4><span class="hover-meta"> <a class="split" href="pair-programming"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-development-method" class="u"> Software development method</a><a href="#_toc/pair-programming" class="toc"></a><a href="https://en.wikipedia.org/wiki/Pair_programming" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/pair-programming"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="ciro-santilli-s-software-engineering-wisdom"><div class="notnav"><h3><a href="ciro-santilli-s-software-engineering-wisdom">Ciro Santilli's software engineering wisdom</a></h3><span class="hover-meta"> <a class="split" href="ciro-santilli-s-software-engineering-wisdom"></a><span class="metrics"><span class="wcntr"> Words: 991</span><span class="dcnt"> Articles: 12</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-engineering" class="u"> Software engineering</a><a href="#_toc/ciro-santilli-s-software-engineering-wisdom" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/ciro-santilli-s-software-engineering-wisdom"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="ciro-santilli#essays-by-ciro-santilli">Essays by Ciro Santilli</a></span></div></nav></div><div class="p" id="_860">Of course, "<a href="ciro-santilli">Ciro Santilli</a>" with quotes, since all of those are either taken directly from others, or had been previously formulated by others.</div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="technology#early-centralization-is-the-source-of-much-evil">Early centralization is the source of much evil</a></li><li><a href="programming-language#unnecessary-state-is-the-source-of-much-evil">Unnecessary state is the source of much evil</a></li></ul></div></div><div class="h" id="excessive-encapsulation-is-the-root-of-much-evil"><div class="notnav"><h4><a href="excessive-encapsulation-is-the-root-of-much-evil">Excessive encapsulation is the root of much evil</a></h4><span class="hover-meta"> <a class="split" href="excessive-encapsulation-is-the-root-of-much-evil"></a><span class="metrics"><span class="wcntr"> Words: 154</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><a href="#_toc/excessive-encapsulation-is-the-root-of-much-evil" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/excessive-encapsulation-is-the-root-of-much-evil"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="#you-aren-t-gonna-need-it">You aren't gonna need it</a></span></div></nav></div><div class="p" id="_862">Some anecdotes.</div><div class="p" id="_863"><a href="ciro-santilli">Ciro Santilli</a> never splits up functions unless there is more than one calling point. If you split early, the chances that the interface will be wrong are huge, and a much larger refactoring follows.</div><div class="p" id="_864">If you just want to separate variables, just use a scope e.g.:</div><div class="code" id="_865"><div><pre><code>int cross_block_var; // First step. { int myvar; } // Second step. { int myvar; }</code></pre></div></div><div class="p" id="_866">Ciro has seen and had to deal with in his lifetime with two projects that had like 3 to 10 git separate Git repositories, all created and maintained by the same small group of developers of the same organization, even though one could not build without the other. Keeping everything in sync was Hell! Why not just have three directories inside a single repository with a single source of truth?</div><div class="p" id="_867">Another important case: <a href="systems-programming#linux">Linux</a> should have at least a C standard library, init system, and shell in-tree, like <a href="systems-programming#berkeley-software-distribution">BSD Operating Systems</a>, as mentioned at: <a href="systems-programming#linux">Section "Linux"</a>.</div><div class="h" id="the-development-cycle-time-is-your-god"><div class="notnav"><h4><a href="the-development-cycle-time-is-your-god">The development cycle time is your God</a></h4><span class="hover-meta"> <a class="split" href="the-development-cycle-time-is-your-god"></a><span class="metrics"><span class="wcntr"> Words: 224</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><a href="#_toc/the-development-cycle-time-is-your-god" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/the-development-cycle-time-is-your-god"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_868">A slow development test cycle will kill your software.</div><div class="p" id="_869">New developers won't want to learn your project, because they would rather shoot themselves.</div><div class="p" id="_870">This means that build time, and the time to run tests, must be short.</div><div class="p" id="_871">5 seconds to rebuild is the maximum upper limit.</div><div class="p" id="_872">Of course, at some point software gets large enough that things won't fit anymore in 5 seconds. But then you <i>must</i> have either some kind of build caching, or options to do partial builds/tests that will bring things down to that 5 second mark.</div><div class="p" id="_873">You also have to spend some time profiling execution and build from scratch times.</div><div class="p" id="_874">A slow build from scratch will mean that your <a href="#continuous-integration">continuous integration</a> costs a lot, money that could be invested in a new developer!</div><div class="p" id="_875">It also means that people won't bother to reproduce bugs on given commits, or <a href="#bisection-software-engineering">bisect stuff</a>.</div><div class="p" id="_876">One anecdote comes to mind. <a href="ciro-santilli">Ciro Santilli</a> was trying to debug something, and more experience colleague came over.</div><div class="p" id="_877">To reproduce a problem, ciro was running one command, wait 5 seconds, run a second command, wait 5 seconds, run a third command:<div class="code" id="_878"><div><pre><code>cmd1 # wait 5 seconds cmd2 # wait 5 seconds cmd3</code></pre></div></div></div><div class="p" id="_879">The first thing the colleague said: join those three commands into one:<div class="code" id="_880"><div><pre><code>cmd1;cmd2;cmd3</code></pre></div></div>And so, <a href="#the-correlation-between-software-engineers-and-buddhism">Ciro was enlightened</a>.</div><div class="figure"><figure id="image-xkcd-303-compiling"><div class="float-wrap"><a href="https://web.archive.org/web/20220930224719im_/https://imgs.xkcd.com/comics/compiling.png"><img src="https://web.archive.org/web/20220930224719im_/https://imgs.xkcd.com/comics/compiling.png" loading="lazy" height="315"></a></div><figcaption><a href="#image-xkcd-303-compiling"><span class="caption-prefix">Figure 4. </span></a><div class="title"><a href="art#xkcd">xkcd</a> 303: Compiling</div>. <a href="https://xkcd.com/303/">Source</a>. They should be benchmarking and fixing their shitty build system instead.</figcaption></figure></div><div class="h" id="everything-that-is-not-tested-breaks"><div class="notnav"><h4><a href="everything-that-is-not-tested-breaks">Everything that is not tested breaks</a></h4><span class="hover-meta"> <a class="split" href="everything-that-is-not-tested-breaks"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><a href="#_toc/everything-that-is-not-tested-breaks" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/everything-that-is-not-tested-breaks"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="everything-can-break-everything"><div class="notnav"><h4><a href="everything-can-break-everything">Everything can break everything</a></h4><span class="hover-meta"> <a class="split" href="everything-can-break-everything"></a><span class="metrics"><span class="wcntr"> Words: 41</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><a href="#_toc/everything-can-break-everything" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/everything-can-break-everything"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_881">Whenever someone asks:<div><blockquote id="_882">I can only see this one thing different our setups, do you think it could be the cause of our different behaviour?</blockquote></div>you don't need to read anymore, just point them to this page immediately. <a href="systems-programming#virtualization">Virtualization</a> for the win.</div><div class="h" id="fix-it-twice"><div class="notnav"><h4><a href="fix-it-twice">Fix it twice</a></h4><span class="hover-meta"> <a class="split" href="fix-it-twice"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><a href="#_toc/fix-it-twice" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/fix-it-twice"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="you-aren-t-gonna-need-it"><div class="notnav"><h4><a href="you-aren-t-gonna-need-it">You aren't gonna need it <span class="meta">(YAGNI)</span></a></h4><span class="hover-meta"> <a class="split" href="you-aren-t-gonna-need-it"></a><span class="metrics"><span class="wcntr"> Words: 73</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><a href="#_toc/you-aren-t-gonna-need-it" class="toc"></a><a href="https://en.wikipedia.org/wiki/You_aren&#039;t_gonna_need_it" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/you-aren-t-gonna-need-it"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_884">Sometimes you are really certain that something is a required substep for another thing that is coming right afterwards.</div><div class="p" id="_885">When things are this concrete, fine, just do the substep.</div><div class="p" id="_886">But you have to always beware of cases where "I'm sure this will be needed at some unspecified point in the future", because such points tends to never happen.</div><div class="p" id="_887">YAGNI is so fundamental, there are several closely related concepts to it:<div class="list"><ul id="_888"><li id="_889"><a href="cirism#backward-design">backward design</a></li><li id="_890"><a href="microsoft#assign-the-hard-task-to-the-lazy-person">assign the hard task to the lazy person</a></li></ul></div></div><div class="figure"><figure id="image-xkcd-2730-code-lifespan"><div class="float-wrap"><a href="https://web.archive.org/web/20230130144440if_/https://imgs.xkcd.com/comics/code_lifespan.png"><img src="https://web.archive.org/web/20230130144440if_/https://imgs.xkcd.com/comics/code_lifespan.png" loading="lazy" height="315"></a></div><figcaption><a href="#image-xkcd-2730-code-lifespan"><span class="caption-prefix">Figure 5. </span></a><div class="title"><a href="art#xkcd">xkcd</a> 2730: Code Lifespan</div>. <a href="https://xkcd.com/2730/">Source</a>. </figcaption></figure></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="microsoft#assign-the-hard-task-to-the-lazy-person">Assign the hard task to the lazy person</a></li><li><a href="cirism#backward-design">Backward design</a></li><li><a href="technology#early-centralization-is-the-source-of-much-evil">Early centralization is the source of much evil</a></li><li><a href="#excessive-encapsulation-is-the-root-of-much-evil">Excessive encapsulation is the root of much evil</a></li></ul></div></div><div class="h" id="kiss-principle"><div class="notnav"><h4><a href="kiss-principle">KISS principle <span class="meta">(Keep it simple, stupid)</span></a></h4><span class="hover-meta"> <a class="split" href="kiss-principle"></a><span class="metrics"><span class="wcntr"> Words: 51</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><a href="#_toc/kiss-principle" class="toc"></a><a href="https://en.wikipedia.org/wiki/KISS_principle" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/kiss-principle"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="art#simplicity-is-the-ultimate-sophistication">Simplicity is the ultimate sophistication</a></span></div></nav></div><div class="p" id="_893">The software engineer phrasing of <a href="art#simplicity-is-the-ultimate-sophistication">simplicity is the ultimate sophistication</a>.</div><div class="p" id="_894">Like all other principles, it is not absolute.</div><div class="p" id="_895">But it is something that you should always have on the back of your mind.</div><div class="p" id="_896"><a href="#you-aren-t-gonna-need-it">You aren't gonna need it</a> is closely related, as generally the extra unnecessary complications are set in place to accommodate useless features that will never be needed.</div><div class="h" id="hofstadter-s-law"><div class="notnav"><h4><a href="hofstadter-s-law">Hofstadter's law</a></h4><span class="hover-meta"> <a class="split" href="hofstadter-s-law"></a><span class="metrics"><span class="wcntr"> Words: 126</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><a href="#_toc/hofstadter-s-law" class="toc"></a><a href="https://en.wikipedia.org/wiki/Hofstadter&#039;s_law" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/hofstadter-s-law"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_897">The trivial takes a few hours.</div><div class="p" id="_898">The easy takes a week.</div><div class="p" id="_899">And what seemed hard takes a few hours.</div><div class="p" id="_900">As "deadlines" approach, feature sets get cut down, then there are delays, and finally a feasible feature set is delivered some time after the deadline.</div><div class="p" id="_901">The only deadlines that can be met are those of tasks which have already been done but not announced.</div><div class="p" id="_902">This is of course <a href="#hofstadter-s-law">Hofstadter's law</a>.</div><div class="p" id="_903">On the other hand, as a colleague of Ciro once mentioned, it is also known that the time it takes for a task to be done expands without limits to match the deadline. And therefore, without deadlines, tasks will take forever and never get done.</div><div class="p" id="_904">And so, in a moment, perceiving <a href="religion#koan">this paradox</a>, <a href="#the-correlation-between-software-engineers-and-buddhism">Ciro was enlightened</a>.</div><div class="h" id="brooks-s-law"><div class="notnav"><h4><a href="brooks-s-law">Brooks's law <span class="meta">(Adding manpower to a late software project makes it later)</span></a></h4><span class="hover-meta"> <a class="split" href="brooks-s-law"></a><span class="metrics"><span class="wcntr"> Words: 48</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><a href="#_toc/brooks-s-law" class="toc"></a><a href="https://en.wikipedia.org/wiki/Brooks&#039;s_law" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/brooks-s-law"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="figure"><figure id="video-the-misty-mountains-cold-scene-from-the-hobbit-film-series-an-unexpected-journey-2012" class="multiline"><div class="float-wrap"><iframe width="560" height="315" loading="lazy" src="https://www.youtube.com/embed/UFFWH8N9SLk" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div><figcaption><a href="#video-the-misty-mountains-cold-scene-from-the-hobbit-film-series-an-unexpected-journey-2012"><span class="caption-prefix">Video 5. </span></a><div class="title">The Misty Mountains Cold Scene from <a href="literature#the-hobbit-film-series">The Hobbit</a>: An Unexpected Journey (2012)</div> <a href="https://www.youtube.com/watch?v=UFFWH8N9SLk">Source</a>. <div><blockquote id="_906">I will take each and every one of these dwarves over an army from the Iron Hills. For when I called upon them they answered. Loayalty. Honour. And willing heart. I can ask no more than that.</blockquote></div></figcaption></figure></div><div class="h" id="sometimes-you-can-debug-software-by-staring-at-the-code-for-long-enough"><div class="notnav"><h4><a href="sometimes-you-can-debug-software-by-staring-at-the-code-for-long-enough">Sometimes you can debug software by staring at the code for long enough</a></h4><span class="hover-meta"> <a class="split" href="sometimes-you-can-debug-software-by-staring-at-the-code-for-long-enough"></a><span class="metrics"><span class="wcntr"> Words: 112</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><a href="#_toc/sometimes-you-can-debug-software-by-staring-at-the-code-for-long-enough" class="toc"></a><a href="https://en.wikipedia.org/wiki/Sometimes_you_can_debug_software_by_staring_at_the_code_for_long_enough" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/sometimes-you-can-debug-software-by-staring-at-the-code-for-long-enough"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_907">Once upon a time, when <a href="ciro-santilli">Ciro Santilli</a> had a job, he had a programming problem.</div><div class="p" id="_908">A senior developer came over, and rather than trying to run and modify the code like an idiot, which is what <a href="ciro-santilli">Ciro Santilli</a> usually does (see also experimentalism remarks at <a href="ciro-santilli-s-psychology-and-physiology#ciro-santilli-s-bad-old-event-memory">Section "Ciro Santilli's bad old event memory"</a>), he just stared at the code for about 10 minutes.</div><div class="p" id="_909">We knew that the problem was likely in a particular function, but it was really hard to see why things were going wrong.</div><div class="p" id="_910">After the 10 minutes of examining every line in minute detail, he said:<div><blockquote id="_911">I think this function call has such or such weird edge case</blockquote></div>and truly, that was the cause.</div><div class="p" id="_912">And so, <a href="#the-correlation-between-software-engineers-and-buddhism">Ciro was enlightened</a>.</div><div class="h" id="office-space-design-and-remote-work"><div class="notnav"><h4><a href="office-space-design-and-remote-work">Office space design and remote work</a></h4><span class="hover-meta"> <a class="split" href="office-space-design-and-remote-work"></a><span class="metrics"><span class="wcntr"> Words: 93</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><a href="#_toc/office-space-design-and-remote-work" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/office-space-design-and-remote-work"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_913">Working remotely is hard if you don't already highly master the software and enterprise systems used.</div><div class="p" id="_914">Also you don't feel people's love as strongly, and usefulness is built on love, see also <a href="apple-inc#steve-jobs">Steve Jobs</a>'s Pixar office space design philosophy.</div><div class="p" id="_915">But please, give workers a small silent office so that we can concentrate instead of a silly open space, and create an internal social network so people can see what others are doing.</div><div class="p" id="_916">Remote working is much better if the majority of the team also does it, otherwise you will get excluded. Maybe after VR...</div><div class="h" id="keep-debug-notes"><div class="notnav"><h4><a href="keep-debug-notes">Keep debug notes</a></h4><span class="hover-meta"> <a class="split" href="keep-debug-notes"></a><span class="metrics"><span class="wcntr"> Words: 46</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#ciro-santilli-s-software-engineering-wisdom" class="u"> Ciro Santilli's software engineering wisdom</a><a href="#_toc/keep-debug-notes" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/keep-debug-notes"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="#debugging">Debugging</a></span></div></nav></div><div class="p" id="_918">When <a href="#debugging">debugging</a> complex software, make sure to keep notes of every interesting find you make in a note file, as you extract it from the <a href="#integrated-development-environment">integrated development environment</a> or <a href="#debugger">debugger</a>.</div><div class="p" id="_919">Especially if your <a href="ciro-santilli-s-psychology-and-physiology#ciro-santilli-s-bad-old-event-memory">memory sucks like Ciro's</a>.</div><div class="p" id="_920">This is incredibly helpful in fully understanding and then solving complex bugs.</div><div class="h" id="hello-world-program"><div class="notnav"><h3><a href="hello-world-program">"Hello, World!" program</a></h3><span class="hover-meta"> <a class="split" href="hello-world-program"></a><span class="metrics"><span class="wcntr"> Words: 21</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-engineering" class="u"> Software engineering</a><a href="#_toc/hello-world-program" class="toc"></a><a href="https://en.wikipedia.org/wiki/&quot;Hello,_World!&quot;_program" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/hello-world-program"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_921">The most important <a href="#computer-program">program</a> ever written!!!</div><div class="p" id="_922">Other programs that can be considered "hello worlds" in different contexts:</div><div class="list"><ul id="_923"><li id="_924"><a href="web-technology#web-development">web development</a><div class="list"><ul id="_925"><li id="_926"><a href="web-technology#a-blog-in-every-web-framework">A blog in every web framework</a></li></ul></div></li><li id="_927"><a href="video-game">video game</a><div class="list"><ul id="_928"><li id="_929">Doom is the hello world <a href="video-game#shooter-game">shooter game</a></li></ul></div></li></ul></div><div class="h" id="time-to-hello-world"><div class="notnav"><h4><a href="time-to-hello-world">Time to Hello World</a></h4><span class="hover-meta"> <a class="split" href="time-to-hello-world"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#hello-world-program" class="u"> "Hello, World!" program</a><a href="#_toc/time-to-hello-world" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/time-to-hello-world"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="software-engineer"><div class="notnav"><h3><a href="software-engineer">Software engineer</a></h3><span class="hover-meta"> <a class="split" href="software-engineer"></a><span class="metrics"><span class="wcntr"> Words: 1k</span><span class="dcnt"> Articles: 23</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-engineering" class="u"> Software engineering</a><a href="#_toc/software-engineer" class="toc"></a><a href="https://en.wikipedia.org/wiki/Software_engineer" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/software-engineer"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_930">Poet warriors monkeys? Or Code peasants (<a href="https://baike.baidu.com/item/%E7%A0%81%E5%86%9C/10262742">码农</a>) according to the Chinese.</div><div class="p" id="_931"><a href="ciro-santilli">Ciro Santilli</a> claims to be one of them.</div><div class="p" id="_932">Much like a pianist plays his piano, a software engineer plays his <a href="computer">computer</a>.</div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="systems-programming#systems-programmer">Systems programmer</a></li></ul></div></div><div class="h" id="software-engineer-stereotype"><div class="notnav"><h4><a href="software-engineer-stereotype">Software engineer stereotype</a></h4><span class="hover-meta"> <a class="split" href="software-engineer-stereotype"></a><span class="metrics"><span class="wcntr"> Words: 300</span><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-engineer" class="u"> Software engineer</a><a href="#_toc/software-engineer-stereotype" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/software-engineer-stereotype"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="correlation-between-sofware-engineers-and-asian-fetish"><div class="notnav"><h5><a href="correlation-between-sofware-engineers-and-asian-fetish">Correlation between sofware engineers and Asian fetish</a></h5><span class="hover-meta"> <a class="split" href="correlation-between-sofware-engineers-and-asian-fetish"></a><span class="metrics"><span class="wcntr"> Words: 7</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-engineer-stereotype" class="u"> Software engineer stereotype</a><a href="#_toc/correlation-between-sofware-engineers-and-asian-fetish" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/correlation-between-sofware-engineers-and-asian-fetish"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="continent#asian-fetish">Asian fetish</a></span></div></nav></div><div class="p" id="_934"><a href="https://www.quora.com/Why-do-successful-geeky-white-men-have-Asian-wives-This-seems-to-be-the-norm-in-Silicon-Valley">www.quora.com/Why-do-successful-geeky-white-men-have-Asian-wives-This-seems-to-be-the-norm-in-Silicon-Valley</a> suggests it is just an statistical inevitability.</div><div class="h" id="the-correlation-between-software-engineers-and-buddhism"><div class="notnav"><h5><a href="the-correlation-between-software-engineers-and-buddhism">The correlation between software engineers and Buddhism</a></h5><span class="hover-meta"> <a class="split" href="the-correlation-between-software-engineers-and-buddhism"></a><span class="metrics"><span class="wcntr"> Words: 293</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-engineer-stereotype" class="u"> Software engineer stereotype</a><a href="#_toc/the-correlation-between-software-engineers-and-buddhism" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/the-correlation-between-software-engineers-and-buddhism"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="ciro-santilli#essays-by-ciro-santilli">Essays by Ciro Santilli</a></span></div></nav></div><div class="p" id="_936"><a href="ciro-santilli">Ciro Santilli</a> believes that there is a positive correlation between being a <a href="#software-engineer">software engineer</a> and liking <a href="religion#buddhism">Buddhist</a>-like things.</div><div class="p" id="_937">Maybe it is linked to minimalism and <a href="#yet-another">DRY</a>, which software engineers value so greatly.</div><div class="p" id="_938">Even Ciro had to try an unoriginal Buddhist joke intro in <a href="https://stackoverflow.com/questions/572897/how-does-javascript-prototype-work/23877420#23877420">one of this Stack Overflow answers</a>.</div><div class="p" id="_939">Ciro also feels that his <a href="https://github.com/cirosantilli/linux-kernel-module-cheat/tree/e1d0a2fafbb35c9e65c1a8a0b6d46df3e9161461/userland">"minimal reproducible example" scientific language/concept learning method obsession</a> of breaking things into tiny sub-problems has a strong link with <a href="religion#koan">Koans</a>.</div><div class="p" id="_940">Some notable Buddhism/programmer examples:<div class="list"><ul id="_941"><li id="_942"><a href="http://www.catb.org/~esr/writings/unix-koans/">www.catb.org/~esr/writings/unix-koans/</a> "The Unix Koans of Master Foo - Rootless Root (无根的根)" by the legendary <a href="https://en.wikipedia.org/wiki/Eric_S._Raymond">Eric Steven Raymond</a> is notable</li><li id="_943"><a href="http://thecodelesscode.com/">thecodelesscode.com/</a> "The Codeless Code" by anonymous Qi.</li><li id="_944"><a href="http://canonical.org/~kragen/tao-of-programming.html">canonical.org/~kragen/tao-of-programming.html</a></li><li id="_945"><a href="https://wiki.c2.com/?MysticalProgrammingKoans">wiki.c2.com/?MysticalProgrammingKoans</a></li><li id="_946"><a href="http://rubykoans.com/">rubykoans.com/</a> even <a href="cirism#evil">evil</a> programming languages adopt them!</li><li id="_947"><a href="programming-language#zen-of-python">The Zen of Python</a></li></ul></div></div><div class="p" id="_948">Another thing that points the correlation out is the existence of <a href="https://wattsalan.github.io/">wattsalan.github.io/</a> on a <code>github.io</code> about <a href="religion#alan-watts">Alan Watts</a>.</div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="ciro-santilli#ciro-santilli-s-open-source-enlightenment">Ciro Santilli's Open Source Enlightenment</a></li><li><a href="programming-language#zen-of-python">Zen of Python</a></li></ul></div></div><div class="h" id="the-three-treasures-of-the-programmer"><div class="notnav"><h6><a href="the-three-treasures-of-the-programmer">The Three Treasures of the Programmer <span class="meta">(编程三宝)</span></a></h6><span class="hover-meta"> <a class="split" href="the-three-treasures-of-the-programmer"></a><span class="metrics"><span class="wcntr"> Words: 171</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#the-correlation-between-software-engineers-and-buddhism" class="u"> The correlation between software engineers and Buddhism</a><a href="#_toc/the-three-treasures-of-the-programmer" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/the-three-treasures-of-the-programmer"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_950"><a href="ciro-santilli">Ciro Santilli</a>'s joke version of the Chinese <a href="china#four-treasures-of-the-study">Four Treasures of the Study</a>!<div class="list"><ul id="_951"><li id="_952"><a href="web-technology#web-browser">web browser</a></li><li id="_953"><a href="#text-editor">Text editor</a></li><li id="_954"><a href="#terminal-emulator">terminal</a>. Though to be honest, circa 2022, Ciro learned of the ctrl + click to open file (including with file.c:123 line syntax) ability of <a href="#visual-studio-code">Visual Studio Code</a> (likely present in other <a href="#integrated-development-environment">IDEs</a>), and he was starting considering dumping the terminal altogether if some implementation gets it really really right. The main thing is that it can't be a tinny little bar at the bottom, it has to be full window and super easily toggleable!</li></ul></div>In the past, Ciro used to use <a href="#file-manager">file managers</a>, which would be the fourth tresure. But he stopped doing so for years due to his cd alias... so it became three. He actually had exactly three windows open when he was checking if there was anything else he could not open hand of.</div><div class="figure"><figure id="image-the-three-treasures-of-the-programmer"><div class="float-wrap"><a href="https://raw.githubusercontent.com/cirosantilli/media/master/Three_treasures_of_the_programmer.png"><img src="https://raw.githubusercontent.com/cirosantilli/media/master/Three_treasures_of_the_programmer.png" loading="lazy" height="315"></a></div><figcaption><a href="#image-the-three-treasures-of-the-programmer"><span class="caption-prefix">Figure 6. </span></a><div class="title">The three Treasures of the Programmer</div>. Featuring: <a href="#gvim">Gvim</a>, <a href="#tmux">tmux</a> running in GNOME terminal, and <a href="chemistry#chromium">Chromium</a> browser on <a href="systems-programming#ubuntu-22-04">Ubuntu 22.04</a>. The minimized windows are for demonstration purposes, <a href="cirism">Cirism</a> mandates that all windows shall be maximized at all times. Splits withing a single program are permitted however.</figcaption></figure></div><div class="h" id="list-of-software-engineers"><div class="notnav"><h4><a href="list-of-software-engineers">List of software engineers</a></h4><span class="hover-meta"> <a class="split" href="list-of-software-engineers"></a><span class="metrics"><span class="wcntr"> Words: 482</span><span class="dcnt"> Articles: 11</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-engineer" class="u"> Software engineer</a><a href="#_toc/list-of-software-engineers" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/list-of-software-engineers"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="aaron-swartz"><div class="notnav"><h5><a href="aaron-swartz">Aaron Swartz</a></h5><span class="hover-meta"> <a class="split" href="aaron-swartz"></a><span class="metrics"><span class="wcntr"> Words: 150</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-software-engineers" class="u"> List of software engineers</a><a href="#_toc/aaron-swartz" class="toc"></a><a href="https://en.wikipedia.org/wiki/Aaron_Swartz" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/aaron-swartz"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="don-t-be-a-pussy#being-naughty-and-creative-are-correlated">Being naughty and creative are correlated</a></span></div></nav></div><div class="p" id="_956">Aaron, <a href="ciro-santilli">Ciro Santilli</a> will complete <a href="ourbigbook-com">your quest to make eduction free</a>. Just <a href="law">legally</a> this time, with the and with the <a href="law#creative-commons-license">Creative Commons license</a> you helped to create.</div><div class="p" id="_957">Ciro likes how <a href="#the-internet-s-own-boy-2014">The Internet's Own Boy (2014)</a> explains how Aaron felt like high school was <a href="molecular-biology#bullshit">bullshit</a>, and that he could <a href="education#autodidacticism">learn whatever he wanted from books</a>, <a href="ourbigbook-com#motivation">which is one of Ciro's key feelings</a>.</div><div class="p" id="_958">It also mentions how he was a natural teacher from a very early age.</div><div class="h" id="guerilla-open-access-manifesto-by-aaron-swartz-2008"><div class="notnav"><h6><a href="guerilla-open-access-manifesto-by-aaron-swartz-2008">Guerilla Open Access Manifesto by Aaron Swartz (2008)</a></h6><span class="hover-meta"> <a class="split" href="guerilla-open-access-manifesto-by-aaron-swartz-2008"></a><span class="metrics"><span class="wcntr"> Words: 83</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#aaron-swartz" class="u"> Aaron Swartz</a><a href="#_toc/guerilla-open-access-manifesto-by-aaron-swartz-2008" class="toc"></a><a href="https://en.wikipedia.org/wiki/Guerilla_Open_Access_Manifesto_by_Aaron_Swartz_(2008)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/guerilla-open-access-manifesto-by-aaron-swartz-2008"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_959"><a href="https://gist.github.com/briandoll/4522952">gist.github.com/briandoll/4522952</a></div><div class="p" id="_960">Hmmm, he does not know how to spell guerilla? <a href="linguistics#sic">sic</a>? <a href="https://www.quora.com/What-is-the-correct-spelling-guerilla-or-guerrilla">www.quora.com/What-is-the-correct-spelling-guerilla-or-guerrilla</a></div><div class="p" id="_961">Note to self: if you are going to commit a <a href="law#crime">crime</a>, don't publish your plans online.</div><div class="p" id="_962"><a href="computer#ross-ulbricht">Ross Ulbricht</a>'s diaries come to mind.</div><div class="p" id="_963">That's how <a href="continent#russia">Russian</a> <a href="website#shadow-library">shadow library</a> maintainers do it, they know how to crime good old Russians. Maybe there is a good thing about having <a href="social-technology#dictatorship">dictatorships</a> in the world that give zero fucks about <a href="united-states">American</a> copyright laws. There will always be some random <a href="continent#russia">Russian</a> academic who will implement this and not go to jail. Maybe it's even <a href="social-technology#government">state</a> sponsored.</div><div class="h" id="the-internet-s-own-boy-2014"><div class="notnav"><h6><a href="the-internet-s-own-boy-2014">The Internet's Own Boy (2014)</a></h6><span class="hover-meta"> <a class="split" href="the-internet-s-own-boy-2014"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#aaron-swartz" class="u"> Aaron Swartz</a><a href="#_toc/the-internet-s-own-boy-2014" class="toc"></a><a href="https://en.wikipedia.org/wiki/The_Internet&#039;s_Own_Boy_(2014)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/the-internet-s-own-boy-2014"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="james-somers"><div class="notnav"><h5><a href="james-somers">James Somers</a></h5><span class="hover-meta"> <a class="split" href="james-somers"></a><span class="metrics"><span class="wcntr"> Words: 40</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-software-engineers" class="u"> List of software engineers</a><a href="#_toc/james-somers" class="toc"></a><a href="https://en.wikipedia.org/wiki/James_Somers" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/james-somers"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="list"><ul id="_964"><li id="_965"><a href="https://jsomers.net/">jsomers.net/</a></li><li id="_966"><a href="https://www.linkedin.com/in/james-somers-4703364/">www.linkedin.com/in/james-somers-4703364/</a></li></ul></div><div class="p" id="_967">Huge interest overlap with <a href="ciro-santilli">Ciro Santilli</a>, e.g. he's into<div class="list"><ul id="_968"><li id="_969"><a href="molecular-biology">molecular biology</a> in general: <a href="#i-should-have-loved-biology-by-james-somers">I should have loved biology by James Somers</a></li><li id="_970"><a href="taxonomy#jcvi-syn3-0">JCVI-syn3.0</a>: <a href="https://www.newyorker.com/magazine/2022/03/07/a-journey-to-the-center-of-our-cells">www.newyorker.com/magazine/2022/03/07/a-journey-to-the-center-of-our-cells</a></li><li id="_971"><a href="microscopy#cryogenic-electron-microscopy">cryo-EM</a>: <a href="https://www.newyorker.com/magazine/2022/03/07/a-journey-to-the-center-of-our-cells">www.newyorker.com/magazine/2022/03/07/a-journey-to-the-center-of-our-cells</a></li><li id="_972"><a href="science#david-goodsell">David Goodsell</a>: <a href="https://www.newyorker.com/magazine/2022/03/07/a-journey-to-the-center-of-our-cells">www.newyorker.com/magazine/2022/03/07/a-journey-to-the-center-of-our-cells</a></li><li id="_973"><a href="google#history-of-google">History of Google</a>: <a href="https://www.newyorker.com/magazine/2018/12/10/the-friendship-that-made-google-huge">www.newyorker.com/magazine/2018/12/10/the-friendship-that-made-google-huge</a></li></ul></div></div><div class="h" id="article-by-james-somers"><div class="notnav"><h6><a href="article-by-james-somers">Article by James Somers</a></h6><span class="hover-meta"> <a class="split" href="article-by-james-somers"></a><span class="metrics"><span class="wcntr"> Words: 26</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#james-somers" class="u"> James Somers</a><a href="#_toc/article-by-james-somers" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/article-by-james-somers"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="social-technology#how-i-failed-failed-and-finally-succeeded-at-learning-how-to-code">How I Failed, Failed, and Finally Succeeded at Learning How to Code</a></li></ul></div></div><div class="h" id="i-should-have-loved-biology-by-james-somers"><div class="notnav"><h6 data-level="7"><a href="i-should-have-loved-biology-by-james-somers">I should have loved biology by James Somers</a></h6><span class="hover-meta"> <a class="split" href="i-should-have-loved-biology-by-james-somers"></a><span class="metrics"><span class="wcntr"> Words: 26</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#article-by-james-somers" class="u"> Article by James Somers</a><a href="#_toc/i-should-have-loved-biology-by-james-somers" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/i-should-have-loved-biology-by-james-somers"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_974"><a href="https://jsomers.net/i-should-have-loved-biology/">jsomers.net/i-should-have-loved-biology/</a></div><div class="p" id="_975">This resonates a lot with <a href="ciro-santilli">Ciro Santilli</a>'s ideas!<div class="list"><ul id="_976"><li id="_977"><a href="science#physics-and-the-illusion-of-life">physics and the illusion of life</a></li><li id="_978"><a href="physics#physics-education-needs-more-focus-on-understanding-experiments-and-their-history">physics education needs more focus on understanding experiments and their history</a>:<div class="list"><ul id="_979"><li id="_980"><a href="physics#there-is-value-in-tutorials-written-by-early-pioneers-of-the-field">Section "There is value in tutorials written by early pioneers of the field"</a></li><li id="_981"><a href="physics#doing-physics-means-calculating-a-number">Section "Doing physics means calculating a number"</a></li></ul></div></li><li id="_982"><a href="education#education-is-broken">education is broken</a></li><li id="_983"><a href="systems-programming#molecular-biology-feels-like-systems-programming">molecular biology feels like systems programming</a><div><blockquote id="_984">I've never come across a subject so fractal in its complexity. It reminds me of computing that way.</blockquote></div></li></ul></div></div><div class="h" id="sandy-maguire"><div class="notnav"><h5><a href="sandy-maguire">Sandy Maguire</a></h5><span class="hover-meta"> <a class="split" href="sandy-maguire"></a><span class="metrics"><span class="wcntr"> Words: 264</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-software-engineers" class="u"> List of software engineers</a><a href="#_toc/sandy-maguire" class="toc"></a><a href="https://en.wikipedia.org/wiki/Sandy_Maguire" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/sandy-maguire"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="science#idealist">Idealist</a></span></div></nav></div><div class="list"><ul id="_986"><li id="_987"><a href="https://sandymaguire.me">sandymaguire.me</a></li><li id="_988"><a href="https://github.com/isovector/">github.com/isovector/</a></li></ul></div><div class="p" id="_989">Lots of similar ideologies to <a href="ciro-santilli">Ciro Santilli</a>, love it:<div class="list"><ul id="_990"><li id="_991"><div class="p" id="_992"><a href="https://sandymaguire.me/about/">sandymaguire.me/about/</a>:<div class="list"><ul id="_993"><li id="_994">he's an <a href="science#idealist">idealist</a></li></ul></div></div><div><blockquote id="_995">I might best be described somewhere between independent researcher and voluntarily-unemployed bum. At the ripe old age of 27 I decided to quit my highly-lucrative engineering job and decide to focus more on living than on grinding for the man. It's what you might call a work in progress.</blockquote></div></li><li id="_996"><a href="https://sandymaguire.me/blog/reaching-climbing/">sandymaguire.me/blog/reaching-climbing/</a>: <a href="don-t-be-a-pussy">don't be a pussy</a><div><blockquote id="_997">Last Friday was my final day at work. According to my facebook profile, I am now "happily retired." As of today, I don't plan to do another day of "traditional work" in my life. That's not to say that I'll be sitting idle playing tiddly winks. I want to build things, to dedicate my life to independent study, and to get really, really good with building communities. I don't have time for any of this "work" stuff that somehow pervades our entire culture, choking our inspiration and sapping our energy away from the things we'd rather be doing.</blockquote></div>One is also reminded of <a href="#gwern-branwen">Gwern Branwen</a>. Sandy is also into self-improvement stuff, so even more like Gwern. This is a point Ciro diverges on. Ciro works actively on self-worsening.</li><li id="_998">he thinks <a href="university">university</a> is useless:<div class="list"><ul id="_999"><li id="_1000"><a href="https://sandymaguire.me/blog/where-uni-fails/">sandymaguire.me/blog/where-uni-fails/</a> Where University Fails (2018), mostly talking about <a href="cirism#backward-design">backward design</a></li><li id="_1001"><a href="https://sandymaguire.me/blog/gatekept/">sandymaguire.me/blog/gatekept/</a> rejected from <a href="university#imperial-college-london">Imperial College</a> <a href="education#doctor-of-philosophy">PhD</a> program due to <a href="education#grade-exam">grade</a> being slightly too low for their stupid requirements, even though he had a referral already, and an amazing CV</li></ul></div></li><li id="_1002">he likes <a href="music#jazz">jazz</a>: <a href="https://sandymaguire.me/blog/too-smart/">sandymaguire.me/blog/too-smart/</a></li></ul></div></div><div class="p" id="_1003">Other interesting points:<div class="list"><ul id="_1004"><li id="_1005"><a href="https://sandymaguire.me/blog/sandy-runback/">sandymaguire.me/blog/sandy-runback/</a> he changed his own name to Sandy because he didn't like it, he was born Alexander</li><li id="_1006"><a href="https://algebradriven.design/">algebradriven.design/</a> <a href="#closed-source-software">closed source</a> books though, ouch. At least they seem to have been made with <a href="telecommunication#leanpub">leanpub</a> though, could be worse.</li></ul></div></div><div class="p" id="_1007">He's a <a href="programming-language#haskell">Haskell</a> person.</div><div class="h" id="dan-dascalescu"><div class="notnav"><h5><a href="dan-dascalescu">Dan Dascalescu</a></h5><span class="hover-meta"> <a class="split" href="dan-dascalescu"></a><span class="metrics"><span class="wcntr"> Words: 28</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-software-engineers" class="u"> List of software engineers</a><a href="#_toc/dan-dascalescu" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/dan-dascalescu"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="ciro-santilli-s-psychology-and-physiology#ciro-santilli-s-e-soulmates">Ciro Santilli's e-soulmates</a></span></div></nav></div><div class="p" id="_1009">His website is down as of 2020, shame: <a href="https://wiki.dandascalescu.com/essays/english-universal-language">wiki.dandascalescu.com/essays/english-universal-language</a></div><div class="p" id="_1010">This dude is interesting. Quite crazy type. <a href="brain#it-is-hard-to-differentiate-genius-from-mad">It is hard to differentiate genius from mad</a>.</div><div class="p" id="_1011"><a href="ciro-santilli">Ciro Santilli</a> bumps on his <a href="stack-overflow">Stack Overflow</a> from time to time: <a href="https://stackoverflow.com/users/1269037/dan-dascalescu">stackoverflow.com/users/1269037/dan-dascalescu</a>.</div><div class="h" id="english-as-a-universal-language-by-dan-dascalescu-2008"><div class="notnav"><h6><a href="english-as-a-universal-language-by-dan-dascalescu-2008">English as a universal language by Dan Dascalescu (2008)</a></h6><span class="hover-meta"> <a class="split" href="english-as-a-universal-language-by-dan-dascalescu-2008"></a><span class="metrics"><span class="wcntr"> Words: 4</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#dan-dascalescu" class="u"> Dan Dascalescu</a><a href="#_toc/english-as-a-universal-language-by-dan-dascalescu-2008" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/english-as-a-universal-language-by-dan-dascalescu-2008"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1012"><a href="https://wiki.dandascalescu.com/essays/english-universal-language">wiki.dandascalescu.com/essays/english-universal-language</a></div><div class="p" id="_1013"><a href="https://web.archive.org/web/20200317221752/https://wiki.dandascalescu.com/essays/english-universal-language">web.archive.org/web/20200317221752/https://wiki.dandascalescu.com/essays/english-universal-language</a></div><div class="p" id="_1014"><a href="#dan-dascalescu">Dan Dascalescu</a>'s version of <a href="cirism#having-more-than-one-natural-language-is-bad-for-the-world">having more than one natural language is bad for the world</a>.</div><div class="h" id="donald-knuth"><div class="notnav"><h5><a href="donald-knuth">Donald Knuth</a></h5><span class="hover-meta"> <a class="split" href="donald-knuth"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-software-engineers" class="u"> List of software engineers</a><a href="#_toc/donald-knuth" class="toc"></a><a href="https://en.wikipedia.org/wiki/Donald_Knuth" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/donald-knuth"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="knuth-reward-check"><div class="notnav"><h6><a href="knuth-reward-check">Knuth reward check</a></h6><span class="hover-meta"> <a class="split" href="knuth-reward-check"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#donald-knuth" class="u"> Donald Knuth</a><a href="#_toc/knuth-reward-check" class="toc"></a><a href="https://en.wikipedia.org/wiki/Knuth_reward_check" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/knuth-reward-check"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="list"><ul id="_1015"><li id="_1016"><a href="https://tex.stackexchange.com/questions/110586/327-68-knuth-reward-check">tex.stackexchange.com/questions/110586/327-68-knuth-reward-check</a></li><li id="_1017"><a href="https://www.quora.com/What-is-it-like-to-receive-a-Knuth-reward-check">www.quora.com/What-is-it-like-to-receive-a-Knuth-reward-check</a></li><li id="_1018"><a href="https://www-cs-faculty.stanford.edu/~knuth/boss.html">www-cs-faculty.stanford.edu/~knuth/boss.html</a></li></ul></div><div class="h" id="embii"><div class="notnav"><h4><a href="embii">EMBII</a></h4><span class="hover-meta"> <a class="split" href="embii"></a><span class="metrics"><span class="wcntr"> Words: 68</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-engineer" class="u"> Software engineer</a><a href="#_toc/embii" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/embii"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1019">One of the dudes from the <a href="cool-data-embedded-in-the-bitcoin-blockchain#atomsea-and-embii">AtomSea &amp; EMBII</a> <a href="cryptocurrency#bitcoin">Bitcoin</a>-based file upload system.</div><div class="list"><ul id="_1020"><li id="_1021"><a href="https://github.com/embiimob">github.com/embiimob</a></li><li id="_1022"><div class="p" id="_1023">Real name: likely "Eric Bobby" according to:<div class="list"><ul id="_1024"><li id="_1025"><a href="social-technology#linkedin">LinkedIn</a>: <a href="https://www.linkedin.com/in/eric-bobby-0ab1b935/">www.linkedin.com/in/eric-bobby-0ab1b935/</a></li><li id="_1026"><a href="http://bitfossil.org/affbac1bfde690c1fabd60812d046c911b2882038a42b18a4d2e7cb50e989604/">bitfossil.org/affbac1bfde690c1fabd60812d046c911b2882038a42b18a4d2e7cb50e989604/</a></li></ul></div>According to <a href="cool-data-embedded-in-the-bitcoin-blockchain#image-loraine-jpg">Figure "<code>Loraine.jpg</code>"</a> however, his mother's name was "Loraine Elizabeth White", so there's some chance his real family name is Mr. White.</div><div class="p" id="_1027">However according to <a href="http://bitfossil.org/937f70bf641ccabaf623772367df64bd867ad44c53fd227d01f2662e74aeacbf/">bitfossil.org/937f70bf641ccabaf623772367df64bd867ad44c53fd227d01f2662e74aeacbf/</a> his daughter is Maddy Bobby, so maybe he is actually Bobby.</div></li><li id="_1028"><a href="https://twitter.com/EMBII4U">twitter.com/EMBII4U</a><div class="list"><ul id="_1029"><li id="_1030"><a href="https://twitter.com/TheAtomSea/status/990318090738196481">twitter.com/TheAtomSea/status/990318090738196481</a> sample link</li><li id="_1031"><a href="https://x.com/EMBII4U/status/1901769408453718146">x.com/EMBII4U/status/1901769408453718146</a> possibly retired in 2021 after working as a barista</li></ul></div></li></ul></div><div class="figure"><figure id="image-embii-s-usual-profile-image"><div class="float-wrap"><a href="https://web.archive.org/web/20230221120627im_/https://avatars.githubusercontent.com/u/6278950?v=4"><img src="https://web.archive.org/web/20230221120627im_/https://avatars.githubusercontent.com/u/6278950?v=4" loading="lazy" height="315"></a></div><figcaption><a href="#image-embii-s-usual-profile-image"><span class="caption-prefix">Figure 7. </span></a><div class="title"><a href="#embii">EMBII</a>'s usual profile image</div>. <a href="https://github.com/embiimob">Source</a>. </figcaption></figure></div><div class="h" id="gwern-branwen"><div class="notnav"><h4><a href="gwern-branwen">Gwern Branwen</a></h4><span class="hover-meta"> <a class="split" href="gwern-branwen"></a><span class="metrics"><span class="wcntr"> Words: 265</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-engineer" class="u"> Software engineer</a><a href="#_toc/gwern-branwen" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/gwern-branwen"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="ciro-santilli-s-psychology-and-physiology#ciro-santilli-s-e-soulmates">Ciro Santilli's e-soulmates</a>, <a href="science#idealist">Idealist</a></span></div></nav></div><div class="p" id="_1034">Author of <a href="#gwern-net">gwern.net</a>.</div><div class="p" id="_1035">Accounts:<div class="list"><ul id="_1036"><li id="_1037"><a href="https://news.ycombinator.com/user?id=gwern">news.ycombinator.com/user?id=gwern</a></li><li id="_1038"><a href="https://www.lesswrong.com/users/gwern">www.lesswrong.com/users/gwern</a> <a href="website#lesswrong">LessWrong</a></li><li id="_1039"><a href="https://twitter.com/gwern">twitter.com/gwern</a> locked 2021: <a href="https://www.reddit.com/r/slatestarcodex/comments/kp2fek/does_anybody_know_what_happened_to_gwern/">www.reddit.com/r/slatestarcodex/comments/kp2fek/does_anybody_know_what_happened_to_gwern/</a></li><li id="_1040"><a href="https://www.reddit.com/user/gwern/">www.reddit.com/user/gwern/</a></li><li id="_1041"><a href="https://en.wikipedia.org/wiki/User:Gwern">en.wikipedia.org/wiki/User:Gwern</a> on <a href="website#wikipedia">Wikipedia</a>. Self summary: <a href="https://gwern.net/wikipedia-resume">gwern.net/wikipedia-resume</a>. Also he is a critic of <a href="website#deletionism-on-wikipedia">deletionism on Wikipedia</a> like <a href="ciro-santilli">Ciro Santilli</a></li></ul></div>He posts insanely much on these websites. It's a bit like <a href="ciro-santilli">Ciro Santilli</a> on <a href="stack-overflow">Stack Overflow</a>.</div><div class="p" id="_1042"><a href="ciro-santilli">Ciro Santilli</a> envies this guy a bit. He <a href="brain#braindumping">dumps his brain more or less full time on his highly customized static website</a> partly due to early <a href="cryptocurrency#bitcoin">Bitcoin</a> investments <a href="https://gwern.net/me">gwern.net/me</a> says:<div><blockquote id="_1043">I am a freelance <a href="united-states">American</a> writer &amp; researcher. (To make ends meet, I have a <a href="website#patreon">Patreon</a>, benefit from <a href="cryptocurrency#bitcoin">Bitcoin</a> appreciation thanks to some old coins, and live frugally.)</blockquote></div></div><div class="p" id="_1044">Also unsurprisingly he likes <a href="programming-language#haskell">Haskell</a>:<div><blockquote id="_1045">I mostly contribute to projects in Haskell, my favorite language</blockquote></div></div><div class="p" id="_1046"><a href="ciro-santilli">Ciro Santilli</a> considers Gwern <a href="ciro-santilli-s-psychology-and-physiology#ciro-santilli-s-e-soulmates">Ciro Santilli's e-soulmates</a> due to his interest in "dark web things" like <a href="cryptocurrency#bitcoin">Bitcoin</a> and <a href="computer#silk-road-marketplace">Silk Road</a>, his immense writing output in encyclopedic book-sized articles on a <a href="website#static-website">static website</a>, and his desire to live frugally and just research and write all day. Ah, if only Ciro had some old coins!!!</div><div class="p" id="_1047">This is likely a pseudonym, his real name not being publicly unknown, e.g. at <a href="https://news.ycombinator.com/item?id=5659278">news.ycombinator.com/item?id=5659278</a>:<div><blockquote id="_1048"><div><blockquote id="_1049">Why do you choose relative anonymity?</blockquote></div><div class="p" id="_1050">For the reasons I've said in the past. To which I can add personal safety: my <a href="computer#silk-road-marketplace">Silk Road</a> page is a bit questionable legally, and we all know that there are ways to exploit knowledge of one's True Name and address (even if, as far as I know, I have no enemies willing to resort to, say, 'swatting' me) - one group of stalkers called up a college they thought I worked at to see if they could get me fired or otherwise ruin my day.</div></blockquote></div></div><div class="h" id="work-by-gwern-branwen"><div class="notnav"><h5><a href="work-by-gwern-branwen">Work by Gwern Branwen</a></h5><span class="hover-meta"> <a class="split" href="work-by-gwern-branwen"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#gwern-branwen" class="u"> Gwern Branwen</a><a href="#_toc/work-by-gwern-branwen" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/work-by-gwern-branwen"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="computer#silk-road-1-theory-and-practice-by-gwern-branwen">Silk Road 1: Theory &amp; Practice by Gwern Branwen</a></li></ul></div></div><div class="h" id="gwern-net"><div class="notnav"><h5><a href="gwern-net">gwern.net</a></h5><span class="hover-meta"> <a class="split" href="gwern-net"></a><span class="metrics"><span class="wcntr"> Words: 17</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#gwern-branwen" class="u"> Gwern Branwen</a><a href="#_toc/gwern-net" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/gwern-net"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="website#the-best-personal-webpages-of-all-time">The best personal webpages of all time</a></span></div></nav></div><div class="p" id="_1052"><a href="https://www.gwern.net">www.gwern.net</a></div><div class="p" id="_1053"><a href="#gwern-branwen">Gwern Branwen</a>'s website.</div><div class="p" id="_1054">One thing that annoys <a href="ciro-santilli">Ciro Santilli</a> about that website are the footnote overload. Ciro likes linear things.</div><div class="h" id="richard-stallman"><div class="notnav"><h4><a href="richard-stallman">Richard Stallman</a></h4><span class="hover-meta"> <a class="split" href="richard-stallman"></a><span class="metrics"><span class="wcntr"> Words: 19</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-engineer" class="u"> Software engineer</a><a href="#_toc/richard-stallman" class="toc"></a><a href="https://en.wikipedia.org/wiki/Richard_Stallman" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/richard-stallman"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1055">TODO find the best source for the amazing "I have done your mother" quote.</div><div class="figure"><figure id="image-richard-stallman"><div class="float-wrap"><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/5/54/NicoBZH_-_Richard_Stallman_%28by-sa%29_%2810%29.jpg/800px-NicoBZH_-_Richard_Stallman_%28by-sa%29_%2810%29.jpg"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/54/NicoBZH_-_Richard_Stallman_%28by-sa%29_%2810%29.jpg/800px-NicoBZH_-_Richard_Stallman_%28by-sa%29_%2810%29.jpg" loading="lazy" height="315"></a></div><figcaption><a href="#image-richard-stallman"><span class="caption-prefix">Figure 8. </span></a><div class="title"><a href="#richard-stallman">Richard Stallman</a></div>. <a href="https://commons.wikimedia.org/wiki/File:NicoBZH_-_Richard_Stallman_%28by-sa%29_%2810%29.jpg">Source</a>. </figcaption></figure></div><div class="figure"><figure id="video-richard-stallman-saying-i-ve-never-installed-gnu-linux"><div class="float-wrap"><iframe width="560" height="315" loading="lazy" src="https://www.youtube.com/embed/umQL37AC_YM" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div><figcaption><a href="#video-richard-stallman-saying-i-ve-never-installed-gnu-linux"><span class="caption-prefix">Video 6. </span></a><div class="title"><a href="#richard-stallman">Richard Stallman</a> saying "I've never installed gnu/linux"</div>. <a href="https://www.youtube.com/watch?v=umQL37AC_YM">Source</a>. </figcaption></figure></div><div class="h" id="rob-pike"><div class="notnav"><h4><a href="rob-pike">Rob Pike <span class="meta">(1956)</span></a></h4><span class="hover-meta"> <a class="split" href="rob-pike"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-engineer" class="u"> Software engineer</a><a href="#_toc/rob-pike" class="toc"></a><a href="https://en.wikipedia.org/wiki/Rob_Pike" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/rob-pike"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="figure"><figure id="image-rob-pike"><div class="float-wrap"><a href="https://upload.wikimedia.org/wikipedia/commons/thumb/9/9c/Rob-pike-oscon.jpg/800px-Rob-pike-oscon.jpg"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/9c/Rob-pike-oscon.jpg/800px-Rob-pike-oscon.jpg" loading="lazy" height="315"></a></div><figcaption><a href="#image-rob-pike"><span class="caption-prefix">Figure 9. </span></a><div class="title"><a href="#rob-pike">Rob Pike</a></div>. <a href="https://commons.wikimedia.org/wiki/File:Rob-pike-oscon.jpg">Source</a>. </figcaption></figure></div><div class="h" id="tim-o-reilly"><div class="notnav"><h4><a href="tim-o-reilly">Tim O'Reilly</a></h4><span class="hover-meta"> <a class="split" href="tim-o-reilly"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-engineer" class="u"> Software engineer</a><a href="#_toc/tim-o-reilly" class="toc"></a><a href="https://en.wikipedia.org/wiki/Tim_O&#039;Reilly" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/tim-o-reilly"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="computer-programming"><div class="notnav"><h3><a href="computer-programming">Computer programming</a></h3><span class="hover-meta"> <a class="split" href="computer-programming"></a><span class="metrics"><span class="wcntr"> Words: 154</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-engineering" class="u"> Software engineering</a><a href="#_toc/computer-programming" class="toc"></a><a href="https://en.wikipedia.org/wiki/Computer_programming" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/computer-programming"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1057">Programming is hard. To <a href="ciro-santilli">Ciro Santilli</a>, it's almost masochistic.</div><div class="p" id="_1058">What makes Ciro especially mad when programming is not the hard things.</div><div class="p" id="_1059">It is the things that should be easy, but aren't, and which take up a lot of your programming time.</div><div class="p" id="_1060">Especially when you are already a few levels of "simple problems" down from your original goal, and another one of them shows up.</div><div class="p" id="_1061">This is basically the cause of <a href="#hofstadter-s-law">Hofstadter's law</a>.</div><div class="p" id="_1062">But of course, it is because it is hard that it feels amazing when you achieve your goal.</div><div class="p" id="_1063">Putting a complex and useful program together is like composing a symphony, or reaching the summit of a hard <a href="art#rock-climbing">rock climbing</a> proble.</div><div class="p" id="_1064">Programming can be an <a href="art">art</a> form. There can be great beauty in code and what it does. It is a shame that this is hard to see from within the walls of most <a href="company">companies</a>, where you are stuck doing a small specific task as fast as possible.</div><div class="h" id="software-portability"><div class="notnav"><h2><a href="software-portability">Software portability</a></h2><span class="hover-meta"> <a class="split" href="software-portability"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/software-portability" class="toc"></a><a href="https://en.wikipedia.org/wiki/Software_portability" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/software-portability"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="porting"><div class="notnav"><h3><a href="porting">Porting</a></h3><span class="hover-meta"> <a class="split" href="porting"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-portability" class="u"> Software portability</a><a href="#_toc/porting" class="toc"></a><a href="https://en.wikipedia.org/wiki/Porting" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/porting"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="software-quality-assurance"><div class="notnav"><h2><a href="software-quality-assurance">Software quality assurance</a></h2><span class="hover-meta"> <a class="split" href="software-quality-assurance"></a><span class="metrics"><span class="wcntr"> Words: 203</span><span class="dcnt"> Articles: 13</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/software-quality-assurance" class="toc"></a><a href="https://en.wikipedia.org/wiki/Software_quality_assurance" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/software-quality-assurance"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="static-program-analysis"><div class="notnav"><h3><a href="static-program-analysis">Static program analysis</a></h3><span class="hover-meta"> <a class="split" href="static-program-analysis"></a><span class="metrics"><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-quality-assurance" class="u"> Software quality assurance</a><a href="#_toc/static-program-analysis" class="toc"></a><a href="https://en.wikipedia.org/wiki/Static_program_analysis" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/static-program-analysis"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="linting"><div class="notnav"><h4><a href="linting">Linting</a></h4><span class="hover-meta"> <a class="split" href="linting"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#static-program-analysis" class="u"> Static program analysis</a><a href="#_toc/linting" class="toc"></a><a href="https://en.wikipedia.org/wiki/Lint (software)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/linting"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="linter-by-language"><div class="notnav"><h5><a href="linter-by-language">Linter by language</a></h5><span class="hover-meta"> <a class="split" href="linter-by-language"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#linting" class="u"> Linting</a><a href="#_toc/linter-by-language" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/linter-by-language"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="software-testing"><div class="notnav"><h3><a href="software-testing">Software testing</a></h3><span class="hover-meta"> <a class="split" href="software-testing"></a><span class="metrics"><span class="wcntr"> Words: 203</span><span class="dcnt"> Articles: 9</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-quality-assurance" class="u"> Software quality assurance</a><a href="#_toc/software-testing" class="toc"></a><a href="https://en.wikipedia.org/wiki/Software_testing" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/software-testing"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="_file/test_executables.js"><div class="notnav"><h4><a href="_file/test_executables.js">test_executables.js</a></h4><span class="hover-meta"> <a class="split" href="_file/test_executables.js"></a><span class="metrics"><span class="wcntr"> Words: 86</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-testing" class="u"> Software testing</a><a href="#_toc/_file/test_executables.js" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/_file/test_executables.js"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div><div class="nav file"><b> <a href="_dir/">(root)</a> / <a href="_raw/test_executables.js">test_executables.js</a></b></div></nav></div><div class="p" id="_1065">This script tests all executables under a selected directory.</div><div class="p" id="_1066"><a href="ciro-santilli">Ciro Santilli</a> has been writing scripts of that type for a long time in order to test his <a href="ciro-santilli#ciro-santilli-s-documentation-superpowers">programming self-learning setups with asserts</a>.</div><div class="p" id="_1067">The most advanced of those being the <a href="https://github.com/cirosantilli/linux-kernel-module-cheat/blob/9b6552ab6c66cb14d531eff903c4e78f3561e9ca/test">test system</a> of <a href="the-most-important-projects-done-by-ciro-santilli#linux-kernel-module-cheat">Linux Kernel Module Cheat</a>.</div><div class="p" id="_1068">But had too much stuff that would be specific to that project, so Ciro decided to start this new one in <a href="node-js">Node.js</a>, hopefully it will also be the last he ever writes.</div><div class="p" id="_1069">A sample usage of the test library can be seen at: <a href="_raw/nodejs/sequelize/test">nodejs/sequelize/test</a>.</div><div class="p"><b>test_executables.js</b> was not rendered because it is too large (&gt; 2000 bytes)</div><div class="h" id="assertion-software-development"><div class="notnav"><h4><a href="assertion-software-development">Assertion <span class="meta">(software development)</span></a></h4><span class="hover-meta"> <a class="split" href="assertion-software-development"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-testing" class="u"> Software testing</a><a href="#_toc/assertion-software-development" class="toc"></a><a href="https://en.wikipedia.org/wiki/Assertion_(software_development)" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/assertion-software-development"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="continuous-integration"><div class="notnav"><h4><a href="continuous-integration">Continuous integration <span class="meta">(CI)</span></a></h4><span class="hover-meta"> <a class="split" href="continuous-integration"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-testing" class="u"> Software testing</a><a href="#_toc/continuous-integration" class="toc"></a><a href="https://en.wikipedia.org/wiki/Continuous_integration" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/continuous-integration"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="#gitlab-ci">GitLab CI</a></li></ul></div></div><div class="h" id="test-driven-development"><div class="notnav"><h4><a href="test-driven-development">Test driven development</a></h4><span class="hover-meta"> <a class="split" href="test-driven-development"></a><span class="metrics"><span class="wcntr"> Words: 117</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-testing" class="u"> Software testing</a><a href="#_toc/test-driven-development" class="toc"></a><a href="https://en.wikipedia.org/wiki/Test_driven_development" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/test-driven-development"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1071">This is a good approach. The downside is that while you are developing the implementation and testing interactively you might notice that the requirements are wrong, and then the tests have to change.</div><div class="p" id="_1072">One intermediate approach <a href="ciro-santilli">Ciro Santilli</a> likes is to do the implementation and be happy with interactive usage, then create the test, make it pass, then remove the code that would make it pass, and see it fail. This does have a risk that you will forget to test something, but Ciro finds it is a worth it generally. Unless it really is one of those features that you are unable to develop without an automated test, generally more "logical/mathematical" stuff. This is a sort of <a href="#laziness-driven-development">laziness Driven Development</a>.</div><div class="h" id="laziness-driven-development"><div class="notnav"><h5><a href="laziness-driven-development">Laziness Driven Development</a></h5><span class="hover-meta"> <a class="split" href="laziness-driven-development"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#test-driven-development" class="u"> Test driven development</a><a href="#_toc/laziness-driven-development" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/laziness-driven-development"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="shift-left-testing"><div class="notnav"><h4><a href="shift-left-testing">Shift-left testing</a></h4><span class="hover-meta"> <a class="split" href="shift-left-testing"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-testing" class="u"> Software testing</a><a href="#_toc/shift-left-testing" class="toc"></a><a href="https://en.wikipedia.org/wiki/Shift-left_testing" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/shift-left-testing"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="unit-and-system-tests"><div class="notnav"><h4><a href="unit-and-system-tests">Unit and system tests</a></h4><span class="hover-meta"> <a class="split" href="unit-and-system-tests"></a><span class="metrics"><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-testing" class="u"> Software testing</a><a href="#_toc/unit-and-system-tests" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/unit-and-system-tests"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="unit-test"><div class="notnav"><h5><a href="unit-test">Unit test</a></h5><span class="hover-meta"> <a class="split" href="unit-test"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#unit-and-system-tests" class="u"> Unit and system tests</a><a href="#_toc/unit-test" class="toc"></a><a href="https://en.wikipedia.org/wiki/Unit_test" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/unit-test"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="system-test"><div class="notnav"><h5><a href="system-test">System test</a></h5><span class="hover-meta"> <a class="split" href="system-test"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#unit-and-system-tests" class="u"> Unit and system tests</a><a href="#_toc/system-test" class="toc"></a><a href="https://en.wikipedia.org/wiki/System_test" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/system-test"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="source-code"><div class="notnav"><h2><a href="source-code">Source code</a></h2><span class="hover-meta"> <a class="split" href="source-code"></a><span class="metrics"><span class="wcntr"> Words: 20</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/source-code" class="toc"></a><a href="https://en.wikipedia.org/wiki/Source_code" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/source-code"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="the-best-code-is-no-code-at-all"><div class="notnav"><h3><a href="the-best-code-is-no-code-at-all">The best code is no code at all</a></h3><span class="hover-meta"> <a class="split" href="the-best-code-is-no-code-at-all"></a><span class="metrics"><span class="wcntr"> Words: 20</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#source-code" class="u"> Source code</a><a href="#_toc/the-best-code-is-no-code-at-all" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/the-best-code-is-no-code-at-all"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1073">Some <a href="website#blog">blogs</a>:<div class="list"><ul id="_1074"><li id="_1075"><a href="https://blog.codinghorror.com/the-best-code-is-no-code-at-all/">blog.codinghorror.com/the-best-code-is-no-code-at-all/</a> The Best Code is No Code At All (2007)</li><li id="_1076"><a href="http://www.skrenta.com/2007/05/code_is_our_enemy.html">www.skrenta.com/2007/05/code_is_our_enemy.html</a> Code is our enemy (2007)</li></ul></div></div><div class="p" id="_1077">Also resonates with <a href="cirism#backward-design">backward design</a>.</div><div class="h" id="use-the-source-luke"><div class="notnav"><h3><a href="use-the-source-luke">Use The Source Luke</a></h3><span class="hover-meta"> <a class="split" href="use-the-source-luke"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#source-code" class="u"> Source code</a><a href="#_toc/use-the-source-luke" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/use-the-source-luke"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1078"><a href="https://wiki.c2.com/?UseTheSourceLuke">wiki.c2.com/?UseTheSourceLuke</a></div><div class="h" id="systems-programming"><div class="notnav"><h2><a href="systems-programming">Systems programming</a></h2><span class="hover-meta"> <a class="split" href="software-split"></a><span class="metrics"><span class="wcntr"> Words: 11k</span><span class="dcnt"> Articles: 150</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/systems-programming" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/systems-programming"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1079"><a href="systems-programming">This section is present in another page, follow this link to view it.</a></div><div class="h" id="terminal-emulator"><div class="notnav"><h2><a href="terminal-emulator">Terminal emulator</a></h2><span class="hover-meta"> <a class="split" href="terminal-emulator"></a><span class="metrics"><span class="wcntr"> Words: 101</span><span class="dcnt"> Articles: 5</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/terminal-emulator" class="toc"></a><a href="https://en.wikipedia.org/wiki/Terminal_emulator" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/terminal-emulator"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1080">Once upon a time young <a href="ciro-santilli">Ciro Santilli</a> spent lots of time evaluating the features of different terimnals. The many windows of Terminator. The pop-uppiness of Guake/Yakuake.</div><div class="p" id="_1081">But then one day he met <a href="#tmux">tmux</a>, and <a href="#the-correlation-between-software-engineers-and-buddhism">he was enlightened</a></div><div class="p" id="_1082">Terminal choice doesn't matter. Just use <a href="#tmux">tmux</a>.</div><div class="h" id="yakuake"><div class="notnav"><h3><a href="yakuake">Yakuake</a></h3><span class="hover-meta"> <a class="split" href="yakuake"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#terminal-emulator" class="u"> Terminal emulator</a><a href="#_toc/yakuake" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/yakuake"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1083"><a href="https://github.com/KDE/yakuake">github.com/KDE/yakuake</a></div><div class="h" id="terminal-multiplexer"><div class="notnav"><h3><a href="terminal-multiplexer">Terminal multiplexer</a></h3><span class="hover-meta"> <a class="split" href="terminal-multiplexer"></a><span class="metrics"><span class="wcntr"> Words: 59</span><span class="dcnt"> Articles: 3</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#terminal-emulator" class="u"> Terminal emulator</a><a href="#_toc/terminal-multiplexer" class="toc"></a><a href="https://en.wikipedia.org/wiki/Terminal_multiplexer" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/terminal-multiplexer"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="terminal-multiplexers-are-cli-desktop-environments"><div class="notnav"><h4><a href="terminal-multiplexers-are-cli-desktop-environments">Terminal multiplexers are CLI desktop environments</a></h4><span class="hover-meta"> <a class="split" href="terminal-multiplexers-are-cli-desktop-environments"></a><span class="metrics"><span class="wcntr"> Words: 38</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#terminal-multiplexer" class="u"> Terminal multiplexer</a><a href="#_toc/terminal-multiplexers-are-cli-desktop-environments" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/terminal-multiplexers-are-cli-desktop-environments"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1084">If we didn't have <a href="#graphical-user-interface">GUIs</a>, <a href="#terminal-multiplexer">terminal multiplexers</a> would be our <a href="#desktop-environment">desktop environments</a>. E.g. they handle stuff like:<div class="list"><ul id="_1085"><li id="_1086">window switching</li><li id="_1087">copy pasting across windows</li><li id="_1088">screen locking</li><li id="_1089">clock on the status bar (same one that holds tabs)</li></ul></div>It is a thing of beauty.</div><div class="h" id="gnu-screen"><div class="notnav"><h4><a href="gnu-screen">GNU screen</a></h4><span class="hover-meta"> <a class="split" href="gnu-screen"></a><span class="metrics"><span class="wcntr"> Words: 11</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#terminal-multiplexer" class="u"> Terminal multiplexer</a><a href="#_toc/gnu-screen" class="toc"></a><a href="https://en.wikipedia.org/wiki/GNU_screen" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/gnu-screen"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="#gnu-package">GNU package</a></span></div></nav></div><div class="p" id="_1091">Most important things to know:<div class="list"><ul id="_1092"><li id="_1093">kill window: Ctrl + A K</li></ul></div></div><div class="h" id="tmux"><div class="notnav"><h4><a href="tmux">tmux</a></h4><span class="hover-meta"> <a class="split" href="tmux"></a><span class="metrics"><span class="wcntr"> Words: 10</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#terminal-multiplexer" class="u"> Terminal multiplexer</a><a href="#_toc/tmux" class="toc"></a><a href="https://en.wikipedia.org/wiki/tmux" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/tmux"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="p" id="_1095"><a href="https://github.com/tmux/tmux">github.com/tmux/tmux</a></div><div class="p" id="_1096">If session autosave was finally mainlined, this would be Nirvana.</div><div class="h" id="version-control"><div class="notnav"><h2><a href="version-control">Version control</a></h2><span class="hover-meta"> <a class="split" href="version-control"></a><span class="metrics"><span class="wcntr"> Words: 2k</span><span class="dcnt"> Articles: 60</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/version-control" class="toc"></a><a href="https://en.wikipedia.org/wiki/Version_control" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/version-control"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="h" id="monorepo"><div class="notnav"><h3><a href="monorepo">Monorepo</a></h3><span class="hover-meta"> <a class="split" href="monorepo"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#version-control" class="u"> Version control</a><a href="#_toc/monorepo" class="toc"></a><a href="https://en.wikipedia.org/wiki/Monorepo" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/monorepo"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="cirism#good">Good</a></span></div></nav></div><div class="h" id="list-of-version-control-systems"><div class="notnav"><h3><a href="list-of-version-control-systems">List of version control systems</a></h3><span class="hover-meta"> <a class="split" href="list-of-version-control-systems"></a><span class="metrics"><span class="wcntr"> Words: 2k</span><span class="dcnt"> Articles: 58</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#version-control" class="u"> Version control</a><a href="#_toc/list-of-version-control-systems" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/list-of-version-control-systems"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="concurrent-versions-system"><div class="notnav"><h4><a href="concurrent-versions-system">Concurrent Versions System <span class="meta">(CSV)</span></a></h4><span class="hover-meta"> <a class="split" href="concurrent-versions-system"></a><span class="metrics"><span class="wcntr"> Words: 63</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-version-control-systems" class="u"> List of version control systems</a><a href="#_toc/concurrent-versions-system" class="toc"></a><a href="https://en.wikipedia.org/wiki/Concurrent_Versions_System" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/concurrent-versions-system"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1100">It is said, that once upon a time, programmers used CSV and collaborated on <a href="#sourceforge">SourceForge</a>, and that everyone was happy.</div><div class="p" id="_1101">These days, are however, long gone in the mists of time as of 2020, and beyond <a href="ciro-santilli">Ciro Santilli</a>'s programming birth.</div><div class="p" id="_1102">Except for hardware developers of course. The are still happily using <a href="#perforce">Perforce</a> and <a href="programming-language#tcl">Tcl</a>, and shall never lose their innocence. Blessed be their souls. <a href="religion#amen">Amen</a>.</div><div class="h" id="git"><div class="notnav"><h4><a href="git">Git</a></h4><span class="hover-meta"> <a class="split" href="git"></a><span class="metrics"><span class="wcntr"> Words: 2k</span><span class="dcnt"> Articles: 55</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-version-control-systems" class="u"> List of version control systems</a><a href="#_toc/git" class="toc"></a><a href="https://en.wikipedia.org/wiki/Git" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/git"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="git-design-rationale"><div class="notnav"><h5><a href="git-design-rationale">Git design rationale</a></h5><span class="hover-meta"> <a class="split" href="git-design-rationale"></a><span class="metrics"><span class="wcntr"> Words: 182</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git" class="u"> Git</a><a href="#_toc/git-design-rationale" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/git-design-rationale"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1103">The fundamental insight of Git design is: a <a href="computer-science#secure-hash-algorithms">SHA</a> represents not only current state, but also the full history due to the <a href="computer-science#merkle-tree">Merkle tree</a> implementation, see notably:</div><div class="p" id="_1104">This makes it so that you will always notice if you are overwriting history on the remote, even if you are developing from two separate local computers (or more commonly, two people in two different local computers) and therefore will never lose any work accidentally.</div><div class="p" id="_1105">It is very hard to achieve that without the <a href="computer-science#merkle-tree">Merkle tree</a>.</div><div class="p" id="_1106">Consider for example the most naive approach possible of marking versions with consecutive numbers:<div class="list"><ul id="_1107"><li id="_1108">Local 1:<div class="list"><ul id="_1109"><li id="_1110">0: root commit</li><li id="_1111">1: commit 1</li><li id="_1112">2: commit 2 by local 1</li></ul></div></li><li id="_1113">Local 2:<div class="list"><ul id="_1114"><li id="_1115">0: root commit</li><li id="_1116">1: commit 1</li><li id="_1117">2: commit 2 by local 2</li><li id="_1118">3: commit 3 by local 2</li></ul></div></li><li id="_1119">Remote<div class="list"><ul id="_1120"><li id="_1121">0: root commit</li><li id="_1122">1: commit 1</li></ul></div></li></ul></div></div><div class="p" id="_1123">If Local 1 were to push to Remote first, how could Local 2 notice that when it tries to push itself? The navie method of just checking: "does Remote have commit "2"" does not work, because Local 2 has a different version of commit 2 than local 1.</div><div class="h" id="git-command"><div class="notnav"><h5><a href="git-command">Git command</a></h5><span class="hover-meta"> <a class="split" href="git-command"></a><span class="metrics"><span class="wcntr"> Words: 9</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git" class="u"> Git</a><a href="#_toc/git-command" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/git-command"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="git-clone"><div class="notnav"><h6><a href="git-clone">git clone</a></h6><span class="hover-meta"> <a class="split" href="git-clone"></a><span class="metrics"><span class="wcntr"> Words: 9</span><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git-command" class="u"> Git command</a><a href="#_toc/git-clone" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/git-clone"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="download-a-single-directory-with-git"><div class="notnav"><h6 data-level="7"><a href="download-a-single-directory-with-git">Download a single directory with git</a></h6><span class="hover-meta"> <a class="split" href="download-a-single-directory-with-git"></a><span class="metrics"><span class="wcntr"> Words: 9</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git-clone" class="u"> git clone</a><a href="#_toc/download-a-single-directory-with-git" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/download-a-single-directory-with-git"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="list"><ul id="_1124"><li id="_1125"><a href="https://stackoverflow.com/questions/600079/how-do-i-clone-a-subdirectory-only-of-a-git-repository/52269934#52269934">stackoverflow.com/questions/600079/how-do-i-clone-a-subdirectory-only-of-a-git-repository/52269934#52269934</a><div class="list"><ul id="_1126"><li id="_1127">summaries:<div class="list"><ul id="_1128"><li id="_1129"><a href="https://stackoverflow.com/questions/2425059/how-to-pull-specific-directory-with-git/54910376#54910376">stackoverflow.com/questions/2425059/how-to-pull-specific-directory-with-git/54910376#54910376</a></li><li id="_1130"><a href="https://stackoverflow.com/questions/180052/checkout-subdirectories-in-git/52270636#52270636">stackoverflow.com/questions/180052/checkout-subdirectories-in-git/52270636#52270636</a></li></ul></div></li><li id="_1131">dupes:<div class="list"><ul id="_1132"><li id="_1133"><a href="https://unix.stackexchange.com/questions/233327/is-it-possible-to-clone-only-part-of-a-git-project/468182#468182">unix.stackexchange.com/questions/233327/is-it-possible-to-clone-only-part-of-a-git-project/468182#468182</a></li><li id="_1134"><a href="https://askubuntu.com/questions/460885/how-to-clone-only-some-directories-from-a-git-repository/1074185#1074185">askubuntu.com/questions/460885/how-to-clone-only-some-directories-from-a-git-repository/1074185#1074185</a></li></ul></div></li></ul></div></li><li id="_1135">file or directory<div class="list"><ul id="_1136"><li id="_1137"><a href="https://stackoverflow.com/questions/7106012/download-a-single-folder-or-directory-from-a-github-repo/56504849#56504849">stackoverflow.com/questions/7106012/download-a-single-folder-or-directory-from-a-github-repo/56504849#56504849</a></li></ul></div></li><li id="_1138">file<div class="list"><ul id="_1139"><li id="_1140"><a href="https://stackoverflow.com/questions/2466735/how-to-sparsely-checkout-only-one-single-file-from-a-git-repository/52270527#52270527">stackoverflow.com/questions/2466735/how-to-sparsely-checkout-only-one-single-file-from-a-git-repository/52270527#52270527</a></li></ul></div></li><li id="_1141">only small files:</li></ul></div><div class="h" id="git-internals"><div class="notnav"><h5><a href="git-internals">Git internals</a></h5><span class="hover-meta"> <a class="split" href="git-internals"></a><span class="metrics"><span class="dcnt"> Articles: 4</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git" class="u"> Git</a><a href="#_toc/git-internals" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/git-internals"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="git-remote-communcation"><div class="notnav"><h6><a href="git-remote-communcation">Git remote communcation</a></h6><span class="hover-meta"> <a class="split" href="git-remote-communcation"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git-internals" class="u"> Git internals</a><a href="#_toc/git-remote-communcation" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/git-remote-communcation"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="serve-git-over-http-static-website"><div class="notnav"><h6 data-level="7"><a href="serve-git-over-http-static-website">Serve Git over HTTP static website</a></h6><span class="hover-meta"> <a class="split" href="serve-git-over-http-static-website"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git-remote-communcation" class="u"> Git remote communcation</a><a href="#_toc/serve-git-over-http-static-website" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/serve-git-over-http-static-website"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="list"><ul id="_1142"><li id="_1143"><a href="https://blog.thesparktree.com/git-mirror-anywhere-using-dumb-http-protocol">blog.thesparktree.com/git-mirror-anywhere-using-dumb-http-protocol</a></li><li id="_1144"><a href="https://stackoverflow.com/questions/2278888/private-git-repository-over-http">stackoverflow.com/questions/2278888/private-git-repository-over-http</a></li></ul></div><div class="h" id="git-object"><div class="notnav"><h6><a href="git-object">Git object</a></h6><span class="hover-meta"> <a class="split" href="git-object"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git-internals" class="u"> Git internals</a><a href="#_toc/git-object" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/git-object"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="git-commit-object"><div class="notnav"><h6 data-level="7"><a href="git-commit-object">Git commit object</a></h6><span class="hover-meta"> <a class="split" href="git-commit-object"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git-object" class="u"> Git object</a><a href="#_toc/git-commit-object" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/git-commit-object"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1145"><a href="https://stackoverflow.com/questions/22968856/what-is-the-file-format-of-a-git-commit-object-data-structure">stackoverflow.com/questions/22968856/what-is-the-file-format-of-a-git-commit-object-data-structure</a></div><div class="h" id="git-ui"><div class="notnav"><h5><a href="git-ui">Git UI</a></h5><span class="hover-meta"> <a class="split" href="git-ui"></a><span class="metrics"><span class="wcntr"> Words: 146</span><span class="dcnt"> Articles: 19</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git" class="u"> Git</a><a href="#_toc/git-ui" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/git-ui"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1146">Perfect Git integration belongs in <a href="#integrated-development-environment">integrated development environments</a> :-)</div><div class="h" id="gitk"><div class="notnav"><h6><a href="gitk">gitk</a></h6><span class="hover-meta"> <a class="split" href="gitk"></a><span class="metrics"><span class="wcntr"> Words: 7</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git-ui" class="u"> Git UI</a><a href="#_toc/gitk" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/gitk"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="figure"><figure id="image-gitk-2-34-1-running-on-ubuntu-22-04-with-a-simple-repository"><div class="float-wrap"><a href="https://raw.githubusercontent.com/cirosantilli/media/master/gitk.png"><img src="https://raw.githubusercontent.com/cirosantilli/media/master/gitk.png" loading="lazy" height="315"></a></div><figcaption><a href="#image-gitk-2-34-1-running-on-ubuntu-22-04-with-a-simple-repository"><span class="caption-prefix">Figure 10. </span></a><div class="title"><a href="#gitk">gitk</a> 2.34.1 running on <a href="systems-programming#ubuntu-22-04">Ubuntu 22.04</a> with a simple repository.</div> </figcaption></figure></div><div class="h" id="tig-git-ui"><div class="notnav"><h6><a href="tig-git-ui">tig <span class="meta">(git UI)</span></a></h6><span class="hover-meta"> <a class="split" href="tig-git-ui"></a><span class="metrics"><span class="wcntr"> Words: 21</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git-ui" class="u"> Git UI</a><a href="#_toc/tig-git-ui" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/tig-git-ui"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1147"><a href="https://github.com/jonas/tig">github.com/jonas/tig</a></div><div class="p" id="_1148">This is good. But it misses some key operations, so much so that makes Ciro not want to learn/use it daily.</div><div class="h" id="git-web-interface"><div class="notnav"><h6><a href="git-web-interface">Git web interface</a></h6><span class="hover-meta"> <a class="split" href="git-web-interface"></a><span class="metrics"><span class="wcntr"> Words: 112</span><span class="dcnt"> Articles: 16</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git-ui" class="u"> Git UI</a><a href="#_toc/git-web-interface" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/git-web-interface"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="github"><div class="notnav"><h6 data-level="7"><a href="github">GitHub</a></h6><span class="hover-meta"> <a class="split" href="github"></a><span class="metrics"><span class="wcntr"> Words: 94</span><span class="dcnt"> Articles: 11</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git-web-interface" class="u"> Git web interface</a><a href="#_toc/github" class="toc"></a><a href="https://en.wikipedia.org/wiki/GitHub" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/github"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1149">This is where <a href="ciro-santilli">Ciro Santilli</a> stored his code since he started coding nonstop in 2013.</div><div class="p" id="_1150">He <a href="#closed-source-is-less-bad-on-online-services">does not like the closed source aspect of it</a>, but hey, there are more important things to worry about, the network effect is just too strong.</div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="science#github-s-replacement-of-master-branch-with-main-2020">GitHub's replacement of <code>master</code> branch with <code>main</code> (2020)</a></li></ul></div></div><div class="h" id="github-repo"><div class="notnav"><h6 data-level="8"><a href="github-repo">GitHub repo</a></h6><span class="hover-meta"> <a class="split" href="github-repo"></a><span class="metrics"><span class="wcntr"> Words: 17</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#github" class="u"> GitHub</a><a href="#_toc/github-repo" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/github-repo"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="github-book-repo"><div class="notnav"><h6 data-level="9"><a href="github-book-repo">GitHub book repo</a></h6><span class="hover-meta"> <a class="split" href="github-book-repo"></a><span class="metrics"><span class="wcntr"> Words: 17</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#github-repo" class="u"> GitHub repo</a><a href="#_toc/github-book-repo" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/github-book-repo"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1151">Some amazing people have put book source codes on GitHub. This is a list of such repos.</div><div class="p"><b><span title="Tags" class="fa-solid-900 icon"></span> Tagged</b><div class="list"><ul><li><a href="theories-of-quantum-matter-by-austen-lamacraft">Theories of Quantum Matter by Austen Lamacraft</a></li><li><a href="condensed-matter-physics#topology-in-condensed-matter">Topology in condensed matter</a></li></ul></div></div><div class="h" id="github-awesome-repo"><div class="notnav"><h6 data-level="9"><a href="github-awesome-repo">GitHub awesome repo</a></h6><span class="hover-meta"> <a class="split" href="github-awesome-repo"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#github-repo" class="u"> GitHub repo</a><a href="#_toc/github-awesome-repo" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/github-awesome-repo"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="github-porn-policy"><div class="notnav"><h6 data-level="8"><a href="github-porn-policy">GitHub porn policy</a></h6><span class="hover-meta"> <a class="split" href="github-porn-policy"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#github" class="u"> GitHub</a><a href="#_toc/github-porn-policy" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/github-porn-policy"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1152"><a href="https://www.quora.com/Does-github-allow-uploading-a-porn-image/answer/Ciro-Santilli">www.quora.com/Does-github-allow-uploading-a-porn-image/answer/Ciro-Santilli</a></div><div class="h" id="github-users-deleted-by-github"><div class="notnav"><h6 data-level="8"><a href="github-users-deleted-by-github">GitHub users deleted by GitHub</a></h6><span class="hover-meta"> <a class="split" href="github-users-deleted-by-github"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#github" class="u"> GitHub</a><a href="#_toc/github-users-deleted-by-github" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/github-users-deleted-by-github"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1153"><a href="https://stackoverflow.com/questions/50720844/can-github-delete-your-account/66105692#66105692">stackoverflow.com/questions/50720844/can-github-delete-your-account/66105692#66105692</a></div><div class="h" id="github-pages"><div class="notnav"><h6 data-level="8"><a href="github-pages">GitHub Pages</a></h6><span class="hover-meta"> <a class="split" href="github-pages"></a><span class="metrics"><span class="wcntr"> Words: 31</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#github" class="u"> GitHub</a><a href="#_toc/github-pages" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/github-pages"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1154"><a href="https://pages.github.com/">pages.github.com/</a></div><div class="p" id="_1155">The cheapest and most resilient way to publish <a href="how-to-teach#text-is-cheaper-than-video">text content</a> humanity has achieved so far.</div><div class="p" id="_1156">Some tests:<div class="list"><ul id="_1157"><li id="_1158"><a href="https://github.com/cirosantilli/jekyll-cheat">github.com/cirosantilli/jekyll-cheat</a>: <a href="https://cirosantilli.com/jekyll-cheat">cirosantilli.com/jekyll-cheat</a></li><li id="_1159"><div class="p" id="_1160"><a href="https://github.com/cirosantilli/test-gh-pages">github.com/cirosantilli/test-gh-pages</a>: <a href="https://cirosantilli.com/test-gh-pages">cirosantilli.com/test-gh-pages</a></div><div class="p" id="_1161">Test with a <code>.nojekyll</code> file.</div></li><li id="_1162"><a href="https://github.com/cirosantilli/test-gh-pages-min">github.com/cirosantilli/test-gh-pages-min</a>: <a href="https://cirosantilli.com/test-gh-pages-min">cirosantilli.com/test-gh-pages-min</a>. Minimal version of the above.</li></ul></div></div><div class="h" id="github-sponsors"><div class="notnav"><h6 data-level="8"><a href="github-sponsors">GitHub Sponsors</a></h6><span class="hover-meta"> <a class="split" href="github-sponsors"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#github" class="u"> GitHub</a><a href="#_toc/github-sponsors" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/github-sponsors"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="who-are-the-developers-that-are-making-the-most-money-through-github-sponsors"><div class="notnav"><h6 data-level="9"><a href="who-are-the-developers-that-are-making-the-most-money-through-github-sponsors">Who are the developers that are making the most money through GitHub sponsors?</a></h6><span class="hover-meta"> <a class="split" href="who-are-the-developers-that-are-making-the-most-money-through-github-sponsors"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#github-sponsors" class="u"> GitHub Sponsors</a><a href="#_toc/who-are-the-developers-that-are-making-the-most-money-through-github-sponsors" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/who-are-the-developers-that-are-making-the-most-money-through-github-sponsors"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1163"><a href="https://github.com/isaacs/github/issues/1824">github.com/isaacs/github/issues/1824</a></div><div class="h" id="pull-request"><div class="notnav"><h6 data-level="8"><a href="pull-request">Pull request</a></h6><span class="hover-meta"> <a class="split" href="pull-request"></a><span class="metrics"><span class="wcntr"> Words: 5</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#github" class="u"> GitHub</a><a href="#_toc/pull-request" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/pull-request"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1164">The heart/main innovation of GitHub!</div><div class="h" id="octokat-js"><div class="notnav"><h6 data-level="8"><a href="octokat-js">Octokat.js</a></h6><span class="hover-meta"> <a class="split" href="octokat-js"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#github" class="u"> GitHub</a><a href="#_toc/octokat-js" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/octokat-js"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1165"><a href="https://github.com/philschatz/octokat.js">github.com/philschatz/octokat.js</a></div><div class="h" id="octokit-js"><div class="notnav"><h6 data-level="9"><a href="octokit-js">octokit.js</a></h6><span class="hover-meta"> <a class="split" href="octokit-js"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#octokat-js" class="u"> Octokat.js</a><a href="#_toc/octokit-js" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/octokit-js"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1166"><a href="https://github.com/philschatz/octokit.js">github.com/philschatz/octokit.js</a></div><div class="h" id="gitlab"><div class="notnav"><h6 data-level="7"><a href="gitlab">GitLab</a></h6><span class="hover-meta"> <a class="split" href="gitlab"></a><span class="metrics"><span class="wcntr"> Words: 17</span><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git-web-interface" class="u"> Git web interface</a><a href="#_toc/gitlab" class="toc"></a><a href="https://en.wikipedia.org/wiki/GitLab" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/gitlab"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="#open-source-software-that-is-not-foss">Open source software that is not-FOSS</a></span></div></nav></div><div class="p" id="_1168">GitLab was very important to Ciro because he wanted to base <a href="https://github.com/booktree/booktree">Booktree</a> on it.</div><div class="p" id="_1169">See also: <a href="the-most-important-projects-done-by-ciro-santilli#ciro-santilli-s-minor-projects">Ciro Santilli's minor projects</a>.</div><div class="h" id="gitlab-ci"><div class="notnav"><h6 data-level="8"><a href="gitlab-ci">GitLab CI</a></h6><span class="hover-meta"> <a class="split" href="gitlab-ci"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#gitlab" class="u"> GitLab</a><a href="#_toc/gitlab-ci" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/gitlab-ci"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a><span class="tags"> Tags: <a href="#continuous-integration">Continuous integration</a></span></div></nav></div><div class="p" id="_1171"><a href="https://github.com/gitlabhq/gitlab-ci">github.com/gitlabhq/gitlab-ci</a></div><div class="h" id="gitlab-cookbook"><div class="notnav"><h6 data-level="8"><a href="gitlab-cookbook">GitLab cookbook</a></h6><span class="hover-meta"> <a class="split" href="gitlab-cookbook"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#gitlab" class="u"> GitLab</a><a href="#_toc/gitlab-cookbook" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/gitlab-cookbook"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1172"><a href="https://gitlab.com/gitlab-org/cookbook-gitlab">gitlab.com/gitlab-org/cookbook-gitlab</a></div><div class="h" id="git-tips"><div class="notnav"><h5><a href="git-tips">Git tips</a></h5><span class="hover-meta"> <a class="split" href="software-split"></a><span class="metrics"><span class="wcntr"> Words: 1k</span><span class="dcnt"> Articles: 20</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git" class="u"> Git</a><a href="#_toc/git-tips" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/git-tips"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1173"><a href="git-tips">This section is present in another page, follow this link to view it.</a></div><div class="h" id="sourceforge"><div class="notnav"><h6 data-level="7"><a href="sourceforge">SourceForge</a></h6><span class="hover-meta"> <a class="split" href="sourceforge"></a><span class="metrics"><span class="wcntr"> Words: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git-web-interface" class="u"> Git web interface</a><a href="#_toc/sourceforge" class="toc"></a><a href="https://en.wikipedia.org/wiki/SourceForge" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/sourceforge"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1174">RIP: <a href="https://www.quora.com/Is-SourceForge-still-relevant-to-open-source-projects/answer/Ciro-Santilli">www.quora.com/Is-SourceForge-still-relevant-to-open-source-projects/answer/Ciro-Santilli</a></div><div class="h" id="web-technology"><div class="notnav"><h2><a href="web-technology">Web technology</a></h2><span class="hover-meta"> <a class="split" href="software-split"></a><span class="metrics"><span class="wcntr"> Words: 3k</span><span class="dcnt"> Articles: 73</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/web-technology" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/web-technology"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1175"><a href="web-technology">This section is present in another page, follow this link to view it.</a></div><div class="h" id="git-implementation"><div class="notnav"><h5><a href="git-implementation">Git implementation</a></h5><span class="hover-meta"> <a class="split" href="git-implementation"></a><span class="metrics"><span class="dcnt"> Articles: 2</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git" class="u"> Git</a><a href="#_toc/git-implementation" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/git-implementation"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="libgit2"><div class="notnav"><h6><a href="libgit2">libgit2</a></h6><span class="hover-meta"> <a class="split" href="libgit2"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git-implementation" class="u"> Git implementation</a><a href="#_toc/libgit2" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/libgit2"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1176"><a href="https://github.com/libgit2/libgit2">github.com/libgit2/libgit2</a></div><div class="h" id="libgit2-rugged"><div class="notnav"><h6 data-level="7"><a href="libgit2-rugged">libgit2/rugged</a></h6><span class="hover-meta"> <a class="split" href="libgit2-rugged"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#libgit2" class="u"> libgit2</a><a href="#_toc/libgit2-rugged" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/libgit2-rugged"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1177"><a href="https://github.com/libgit2/rugged">github.com/libgit2/rugged</a></div><div class="h" id="git-bibliography"><div class="notnav"><h5><a href="git-bibliography">Git bibliography</a></h5><span class="hover-meta"> <a class="split" href="git-bibliography"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git" class="u"> Git</a><a href="#_toc/git-bibliography" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/git-bibliography"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="pro-git-book"><div class="notnav"><h6><a href="pro-git-book">Pro Git book</a></h6><span class="hover-meta"> <a class="split" href="pro-git-book"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#git-bibliography" class="u"> Git bibliography</a><a href="#_toc/pro-git-book" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/pro-git-book"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1178"><a href="https://github.com/progit/progit2">github.com/progit/progit2</a></div><div class="h" id="perforce"><div class="notnav"><h4><a href="perforce">Perforce</a></h4><span class="hover-meta"> <a class="split" href="perforce"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#list-of-version-control-systems" class="u"> List of version control systems</a><a href="#_toc/perforce" class="toc"></a><a href="https://en.wikipedia.org/wiki/Perforce" class="wiki"></a><a href="https://ourbigbook.com/cirosantilli/perforce"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="software-bibliography"><div class="notnav"><h2><a href="software-bibliography">Software bibliography</a></h2><span class="hover-meta"> <a class="split" href="software-bibliography"></a><span class="metrics"><span class="dcnt"> Articles: 1</span></span></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="" class="u"> Software</a><a href="#_toc/software-bibliography" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/software-bibliography"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="h" id="ebookfoundation-free-programming-books"><div class="notnav"><h3><a href="ebookfoundation-free-programming-books">EbookFoundation/free-programming-books</a></h3><span class="hover-meta"> <a class="split" href="ebookfoundation-free-programming-books"></a></span></div><nav class="h-nav h-nav-toplevel"><div class="nav"><a href="#software-bibliography" class="u"> Software bibliography</a><a href="#_toc/ebookfoundation-free-programming-books" class="toc"></a><a href="https://ourbigbook.com/cirosantilli/ebookfoundation-free-programming-books"><img src="_obb/logo.svg" class="logo" /> OurBigBook.com</a></div></nav></div><div class="p" id="_1179"><a href="https://github.com/EbookFoundation/free-programming-books">github.com/EbookFoundation/free-programming-books</a></div><h2 id="_tagged"><a href="#_tagged"><span title="Tags" class="fa-solid-900 icon"></span> Tagged <span class="meta">(3)</span></a></h2><div class="list"><ul><li><a href="systems-programming#firmware">Firmware</a></li><li><a href="mathematics#graph-software">Graph software</a></li><li><a href="computer-science#optimization-software">Optimization software</a></li></ul></div><h2 id="_ancestors"><a href="#_ancestors"><span class="fa-solid-900 icon"></span> Ancestors <span class="meta">(5)</span></a></h2><div class="list"><ol><li><a href="computer">Computer</a></li><li><a href="technology#information-technology">Information technology</a></li><li><a href="technology#area-of-technology">Area of technology</a></li><li><a href="technology">Technology</a></li><li><a href="."><span title="Home" class="fa-solid-900 icon"></span> Home</a></li></ol></div><h2 id="_incoming-links"><a href="#_incoming-links"><span title="Incoming links" class="fa-solid-900 icon"></span> Incoming links <span class="meta">(8)</span></a></h2><div class="list"><ul><li><a href="law#cc-by-sa">CC BY-SA</a></li><li><a href="#computer-program">Computer program</a></li><li><a href="#database-management-system">Database management system</a></li><li><a href="computer#domain-specific-language">Domain-specific language</a></li><li><a href="#inner-source">Inner source</a></li><li><a href="computer-hardware#instruction-set-architecture">Instruction set architecture</a></li><li><a href="social-technology#turing-award">Turing Award</a></li><li><a href="research-institute#united-states-department-of-energy-national-laboratory">United States Department of Energy national laboratory</a></li></ul></div> </main> <footer> <div>Powered by <a href="https://docs.ourbigbook.com">OurBigBook</a></div> <div>License: <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</a> unless noted</div> <div><a href="https://github.com/cirosantilli/cirosantilli.github.io/issues">Suggestions and corrections</a></div> <div><a href="contact">Contact Ciro Santilli</a></div> <div><a href="_dir">Website source code</a></div> <div><a href="https://github.com/cirosantilli/cirosantilli.github.io">Website source code on GitHub</a></div> <div><a href="_file/software.bigb">Source code for this page: software.bigb</a></div> <div><a href="https://github.com/cirosantilli/cirosantilli.github.io/blob/ac53face5d7ab6afd9037df69d196b80ab40bb53/software.bigb">Source code for this page on GitHub</a></div> <div>Cite with: <a href="https://zenodo.org/badge/latestdoi/16453261">this DOI</a></div> <div><img src="https://raw.githubusercontent.com/cirosantilli/media/master/ID_photo_of_Ciro_Santilli_taken_in_2013_left_eye_200_100.jpg" loading="lazy" alt="ID photo of Ciro Santilli taken in 2013 right eye"></div> </footer> <script> window.ourbigbook_split_headers = true; window.ourbigbook_html_x_extension = false; window.ourbigbook_redirect_prefix = ""; </script> <script src="_obb/dist/ourbigbook_runtime.js"></script><script>ourbigbook_runtime.ourbigbook_runtime()</script><script src="_raw/main.js"></script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-47867706-1', 'auto'); ga('send', 'pageview'); </script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-DEE2HEJW9X"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-DEE2HEJW9X'); </script> <script src="https://giscus.app/client.js" data-repo="cirosantilli/cirosantilli.github.io" data-repo-id="MDEwOlJlcG9zaXRvcnkxNjQ1MzI2MQ==" data-category="giscus" data-category-id="DIC_kwDOAPsOjc4CZ6zZ" data-mapping="pathname" data-strict="0" data-reactions-enabled="1" data-emit-metadata="0" data-input-position="bottom" data-theme="dark_high_contrast" data-lang="en" crossorigin="anonymous" async> </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10