1 2<!DOCTYPE html> 3<html lang="en-gb" dir="ltr"> 4 <head> 5 <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 69 bytes, lines 5-6
5 6 <script async src="https://www.googletagmanager.com/gtag/js?id=
6UA-9645537-2
vendor: 14 bytes, lines 6-7
6"></script> 7
7<script> 8
vendor: 139 bytes, lines 8-11
8window.dataLayer = window.dataLayer || []; 9 function gtag(){dataLayer.push(arguments);} 10 gtag('js', new Date()); 11 gtag('config', '
11UA-9645537-2
vendor: 6 bytes, lines 11-12
11'); 12
12</script>
12 13 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 14 15 <base href="https://www.i-programmer.info/component/content/article/235/942.html" /> 16 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 17 <meta name="robots" content="index, follow" /> 18 <meta name="keywords" content="cartoon, programmer, developer, humour, computer science, programming, jokes, fun" /> 19 <meta name="title" content="Cartoon" /> 20 <meta name="author" content="Administrator" /> 21 <meta name="description" content="Cartoons and humour with a programmer in mind" /> 22 <meta name="generator" content="I Programmer CMS" /> 23 <title>Cartoon</title> 24 <link href="/templates/news/favicon.ico" rel="shortcut icon" type="image/x-icon" /> 25
25<script type="text/javascript" src="/media/system/js/mootools.js"></script>
25 26
26<script type="text/javascript" src="/media/system/js/caption.js"></script>
26 27> 28 29 <!--iprogrammer scripts--> 30
30<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
30 31
31<script src="/includes/js/iprogrammer/newdecoration.js" type="text/javascript"></script>
31 32 33 <link rel="stylesheet" 34 href="/templates/news/css/template.css" 35 type="text/css" /> 36 <link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet"> 37 38</head> 39 40<body class="site" > 41 <!-- Body --> 42 <div class="body" id="top"> 43 <div class="container"> 44 <!-- Header --> 45 <header class="header" role="banner"> 46 <div class="header-inner clearfix"> 47 <div class="header-search pull-left"> 48 49 </div> 50 <!-- Load Icons --> 51<svg class="icon" aria-hidden="true" style="position: absolute; width: 0; height: 0; overflow: hidden;" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 52 <defs> 53 <symbol id="iconsearch" viewBox="0 0 32 32"> 54 <title>search</title> 55 <path d="M31.008 27.231l-7.58-6.447c-0.784-0.705-1.622-1.029-2.299-0.998 1.789-2.096 2.87-4.815 2.87-7.787 0-6.627-5.373-12-12-12s-12 5.373-12 12 5.373 12 12 12c2.972 0 5.691-1.081 7.787-2.87-0.031 0.677 0.293 1.515 0.998 2.299l6.447 7.58c1.104 1.226 2.907 1.33 4.007 0.23s0.997-2.903-0.23-4.007zM12 20c-4.418 0-8-3.582-8-8s3.582-8 8-8 8 3.582 8 8-3.582 8-8 8z"></path> 56 </symbol> 57 </defs> 58</svg> 59<svg aria-hidden="true" style="position: absolute; width: 0; height: 0; overflow: hidden;" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 60<defs> 61 <symbol id="icon-cog" viewBox="0 0 32 32"> 62<title>cog</title> 63<path d="M29.181 19.070c-1.679-2.908-0.669-6.634 2.255-8.328l-3.145-5.447c-0.898 0.527-1.943 0.829-3.058 0.829-3.361 0-6.085-2.742-6.085-6.125h-6.289c0.008 1.044-0.252 2.103-0.811 3.070-1.679 2.908-5.411 3.897-8.339 2.211l-3.144 5.447c0.905 0.515 1.689 1.268 2.246 2.234 1.676 2.903 0.672 6.623-2.241 8.319l3.145 5.447c0.895-0.522 1.935-0.82 3.044-0.82 3.35 0 6.067 2.725 6.084 6.092h6.289c-0.003-1.034 0.259-2.080 0.811-3.038 1.676-2.903 5.399-3.894 8.325-2.219l3.145-5.447c-0.899-0.515-1.678-1.266-2.232-2.226zM16 22.479c-3.578 0-6.479-2.901-6.479-6.479s2.901-6.479 6.479-6.479c3.578 0 6.479 2.901 6.479 6.479s-2.901 6.479-6.479 6.479z"></path> 64</symbol> 65</defs> 66</svg> 67 68 69<!-- Logo --> 70 71<nav class="navigation pull-left" role="navigation" style="clear:both"> 72 <div class="nav"> 73 <ul class="nav menu nav-pills"> 74 75 <li class="item-998 active pull-right"> 76 <a href="https://www.i-programmer.info"> 77 I Programmer HOME 78 </a> 79 </li> 80 </ul> 81 </div> 82</nav> 83<nav class="navigation pull-left" role="navigation" > 84 85 <!-- Collapse place holder --> 86 <div class="navbar pull-left"> 87 <a class="btn btn-navbar collapsed" data-toggle="collapse" data-target=".nav-collapse"> 88 <span class="element-invisible">Toggle Navigation</span> 89 <span class="icon-bar"></span> 90 <span class="icon-bar"></span> 91 <span class="icon-bar"></span> 92 </a> 93 </div> 94 95 <!-- Collapse part of main menu --> 96 <div class="nav-collapse pull-left collapse" > 97 <ul class="nav menu nav-pills" > 98 <!-- BOOKS --> 99 <li class="item-110 active"> 100 <a>Books</a> 101 <ul class="nav-child"> 102 <li class="item-102"> 103 <a href="/bookreviews.html" >Book Reviews</a> 104 </li> 105 <li class="item-115"> 106 <a href="/book-watch-archive.html" >Book Watch</a> 107 </li> 108 <li class="item-167"> 109 <a href="/professional-programmer/183-programmers-bookshelf.html" >Programmer's Bookshelf</a> 110 </li> 111 </ul> 112 </li> 113 <!-- ARTICLES --> 114 <li class="item-111 active"> 115 <a>Articles</a> 116 <ul class="nav-child"> 117 118 <li class="item-116"> 119 <a>The Core</a> 120 <ul class="nav-child"> 121 <li class="item-153"> 122 <a href="/programming/211-android.html">Android</a> 123 </li> 124 <li class="item-138"> 125 <a href="/programming/102-artificial-intelligence.html" >Artifical Intelligence</a> 126 </li> 127 <li class="item-117"> 128 <a href="/programming/195-python.html" >Python</a> 129 </li> 130 <li class="item-118"> 131 <a href="/programming/113-javascript.html" >Javascript</a> 132 </li> 133 <li class="item-132"> 134 <a href="/programming/54-wpf-workings.html" >WPF Workings</a> 135 </li> 136 <li class="item-133"> 137 <a href="/programming/55-joomla.html" >Joomla</a> 138 </li> 139 <li class="item-134"> 140 <a href="/programming/56-php.html" >PHP</a> 141 </li> 142 <li class="item-135"> 143 <a href="/programming/72-theory.html" >Theory</a> 144 </li> 145 <li class="item-136"> 146 <a href="/programming/79-silverlight.html" >Silverlight</a> 147 </li> 148 <li class="item-137"> 149 <a href="/programming/100-c.html" >C#</a> 150 </li> 151 <li class="item-139">
152 <a href="/programming/108-other-languages.html" >Other Languages</a> 153 </li> 154 <li class="item-140"> 155 <a href="/programming/109-visual-basic.html" >Visual Basic</a> 156 </li> 157 <li class="item-141"> 158 <a href="/programming/111-cc.html" >C/C++</a> 159 </li> 160 <li class="item-142"> 161 <a href="/programming/117-mobile.html" >Mobile</a> 162 </li> 163 <li class="item-143"> 164 <a href="/programming/139-database.html" >Database</a> 165 </li> 166 <li class="item-144"> 167 <a href="/programming/147-asp-net.html" >ASP .NET</a> 168 </li> 169 <li class="item-145"> 170 <a href="/programming/148-hardware.html" >Hardware/IoT</a> 171 </li> 172 <li class="item-146"> 173 <a href="/programming/153-graphics-and-imaging.html" >Graphics/Imaging</a> 174 </li> 175 <li class="item-147"> 176 <a href="/programming/154-uiux.html" >UI/UX</a> 177 </li> 178 <li class="item-148"> 179 <a href="/programming/176-perl.html" >Perl</a> 180 </li> 181 <li class="item-149"> 182 <a href="/programming/179-winrt.html" >WinRT</a> 183 </li> 184 <li class="item-150"> 185 <a href="/programming/180-htmlcss.html">HTML/CSS</a> 186 </li> 187 <li class="item-151"> 188 <a href="/programming/207-jquery.html" >jQuery</a> 189 </li> 190 <li class="item-152"> 191 <a href="/programming/210-ruby.html" >Ruby</a> 192 </li> 193 <li class="item-154"> 194 <a href="/programming/223-security.html" >Security</a> 195 </li> 196 <li class="item-155"> 197 <a href="/programming/226-methodology-a-testing.html" >Methodology & Testing</a> 198 </li> 199 <li class="item-156"> 200 <a href="/programming/228-cloud.html">Cloud</a> 201 </li> 202 <li class="item-157"> 203 <a href="/programming/241-devops.html">DevOps</a> 204 </li> 205 <li class="item-158"> 206 <a href="/programming/178-java.html">Java</a> 207 </li> 208 </ul> 209 </li> 210 <li class="item-197 active"> 211 <a href="/babbages-bag.html">Babbage's Bag</a> 212 </li> 213 214 <li class="item-122 active"> 215 <a href="/projects.html">Projects</a> 216 </li> 217 218 <li class="item-168 active"> 219 <a>Programmer Puzzles</a> 220 <ul class="nav-child"> 221 <li class="item-172"> 222 <a href="/programmer-puzzles/140-c.html" >C#</a> 223 </li> 224 <li class="item-173"> 225 <a href="/programmer-puzzles/168-cpp.html" >C++</a> 226 </li> 227 <li class="item-174"> 228 <a href="/programmer-puzzles/170-java.html" >Java</a> 229 </li> 230 <li class="item-175"> 231 <a href="/programmer-puzzles/137-javascript.html" >JavaScript</a> 232 </li> 233 <li class="item-177"> 234 <a href="/programmer-puzzles/212-python.html" >Python</a> 235 </li> 236 <li class="item-179"> 237 <a href="/programmer-puzzles/142-php.html" >PHP</a> 238 </li> 239 <li class="item-178"> 240 <a href="/programmer-puzzles/203-sharpen-your-coding-skills.html" >Sharpen Your Coding Skills</a> 241 </li> 242 </ul> 243 </li> 244 245 <li class="item-109 active"> 246 <a>History</a> 247 <ul class="nav-child"> 248 <li class="item-119"> 249 <a href="/history/9-machines.html" >Machines</a> 250 </li> 251 <li class="item-120"> 252 <a href="/history/8-people.html" >People</a> 253 </li> 254 <li class="item-120"> 255 <a href="/history/57-computer-languages.html" >Software & computer languages</a> 256 </li> 257 </ul> 258 </li> 259 260 <li class="item-158 active"> 261 <a>Swift's Spreadsheets</a> 262 <ul class="nav-child"> 263 <li class="item-159"> 264 <a href="/spreadsheets/53-finance.html" >Finance</a> 265 </li> 266 <li class="item-160"> 267 <a href="/spreadsheets/58-personal.html" >Personal</a> 268 </li> 269 <li class="item-161"> 270 <a href="/spreadsheets/60-general.html" >General</a> 271 </li> 272 </ul> 273 </li> 274 <li class="item-163 active"> 275 <a>Professional Programmer</a> 276 <ul class="nav-child"> 277 <li class="item-164"> 278 <a href="/professional-programmer/67-certification.html" >Accreditation & Training</a> 279 </li> 280 <li class="item-166"> 281 <a href="/professional-programmer/103-i-programmer.html" >I Programmer</a> 282 </li> 283 <li class="item-166"> 284 <a href="/professional-programmer/127-resources-and-tools.html" >
284Resources and Tools</a> 285 </li> 286 </ul> 287 </li> 288 <li class="item-170 active"> 289 <a href="/i-programmer-weekly.html">I Programmer Weekly</a> 290 </li> 291 <li class="item-171 active"> 292 <a href="/ebooks.html">eBooks</a> 293 </li> 294 <li class="item-162 active"> 295 <a href="/the-stone-tapes.html">Stone Tapes</a> 296 </li> 297 <li class="item-169 active"> 298 <a href="/codebin.html">CodeBin</a> 299 </li> 300 </ul> 301 </li> 302 <!-- NEWS --> 303 <li class="item-112 active"> 304 <a href="/news.html" >News</a> 305 </li> 306 </div> 307</nav> 308<!-- 'Sticky' (non-collapsing) right-side menu item(s) --> 309<nav class="navigation pull-right" role="navigation" > 310 <div class="nav"> 311 <ul class="nav menu nav-pills"> 312 313 <li class="item-998 active pull-right"> 314 <a> 315 <svg class="icon"> 316 <use xlink:href="#icon-cog"/> 317 </svg> 318 </a> 319 <ul class="nav-child"> 320 <li class="item-129"> 321 <a href="/register.html" >Register</a> 322 </li> 323 <li class="item-131"> 324 <a href="/about-us.html" >About Us</a> 325 </li> 326 </ul> 327 </li> 328 329 <li class="item-999 active pull-right"> 330 <a href="/search.html" > 331 <svg class="icon"> 332 <use xlink:href="#iconsearch"/> 333 </svg> 334 </a> 335 </li> 336 337 338 </ul> 339 340 </ul> 341 </div> 342</nav> 343 344 </div> 345 </header> 346 <!-- 347 348 --> 349 <div class="row-fluid"> 350 351 <!-- Begin Sidebar --> 352 <div id="sidebar" class="fixedwidth180 hidden-phone" > 353 <div id="InfoCol" class="sidebar-nav"> 354 </div> 355 </div> 356 357 358 <main id="content" role="main" class="fixedwidth400"> 359 360 <!-- Begin Content --> 361 362 <!-- --> 363 364<table class="contentpaneopen"> 365 366 367 368<tr> 369<td id="IprogrammerMainArticleTextBody" valign="top"> 370 371 <table cellpadding="0" cellspacing="0" class="contenttoc"> 372 <tr> 373 <th>Article Index</th> 374 </tr> 375 376 <tr> 377 <td> 378 <a href="/component/content/article/942.html" class="toclink active">Cartoon</a> 379 </td> 380 </tr> 381 382 <tr> 383 <td> 384 <a href="/component/content/article/942.html?start=1" class="toclink">August-September 2014</a> 385 </td> 386 </tr> 387 388 <tr> 389 <td> 390 <a href="/component/content/article/942.html?start=2" class="toclink">May-June 2014</a> 391 </td> 392 </tr> 393 394 <tr> 395 <td> 396 <a href="/component/content/article/942.html?start=3" class="toclink">March-April 2014</a> 397 </td> 398 </tr> 399 400 <tr> 401 <td> 402 <a href="/component/content/article/942.html?start=4" class="toclink">January-February 2014 </a> 403 </td> 404 </tr> 405 406 <tr> 407 <td> 408 <a href="/component/content/article/942.html?start=5" class="toclink">November-December 2013</a> 409 </td> 410 </tr> 411 412 <tr> 413 <td> 414 <a href="/component/content/article/942.html?start=6" class="toclink">September/October 2013</a> 415 </td> 416 </tr> 417 418 <tr> 419 <td> 420 <a href="/component/content/article/942.html?start=7" class="toclink">July/August 2013</a> 421 </td> 422 </tr> 423 424 <tr> 425 <td> 426 <a href="/component/content/article/942.html?start=8" class="toclink">May/June 2013</a> 427 </td> 428 </tr> 429 430 <tr> 431 <td> 432 <a href="/component/content/article/942.html?start=9" class="toclink">March/April 2013</a> 433 </td> 434 </tr> 435 436 <tr> 437 <td> 438 <a href="/component/content/article/942.html?start=10" class="toclink">January/February 2013</a> 439 </td> 440 </tr> 441 442 <tr> 443 <td> 444 <a href="/component/content/article/942.html?start=11" class="toclink">November/December 2012</a> 445 </td> 446 </tr> 447 448 <tr> 449 <td> 450 <a href="/component/content/article/942.html?start=12" class="toclink">September/October 2012</a> 451 </td> 452 </tr> 453 454 <tr> 455 <td> 456 <a href="/component/content/article/942.html?start=13" class="toclink">July/August 2012</a> 457 </td> 458 </tr> 459 460 <tr> 461 <td> 462 <a href="/component/content/article/942.html?start=14" class="toclink">May/June 2012</a> 463 </td> 464 </tr> 465 466 <tr> 467 <td> 468 <a href="/component/content/article/942.html?start=15" class="toclink">March/April 2012</a> 469 </td> 470 </tr> 471 472 <tr> 473 <td> 474 <a href="/component/content/article/942.html?start=16" class="toclink">January/Febuary 2012</a> 475 </td> 476 </tr> 477 478 <tr> 479 <td> 480 <a href="/component/content/article/942.html?start=17" class="toclink">November/December 2011</a> 481 </td> 482 </tr> 483 484 <tr> 485 <td> 486 <a href="/component/content/article/942.html?start=18" class="toclink">September/October 2011</a> 487 </td> 488 </tr> 489 490 <tr> 491 <td> 492 <a href="/component/content/article/942.html?start=19" class="toclink">July/August 2011</a> 493 </td> 494 </tr> 495 496 <tr> 497 <td> 498 <a href="/component/content/article/942.html?start=20" class="toclink">May/June 2011</a> 499 </td> 500 </tr> 501 502 <tr> 503 <td> 504 <a href="/component/content/article/942.html?start=21" class="toclink">March/April 2011</a> 505 </td> 506 </tr> 507 508 <tr> 509 <td> 510 <a href="/component/content/article/942.html?start=22" class="toclink">January/Febuary 2011</a> 511 </td> 512 </tr> 513 514 <tr> 515 <td> 516 <a href="/component/content/article/942.html?start=23" class="toclink">November/December 2010</a> 517 </td> 518 </tr> 519 520 <tr> 521 <td> 522 <a href="/component/content/article/942.html?start=24" class="toclink">September/October 2010</a> 523 </td> 524 </tr> 525 526 <tr> 527 <td> 528 <a href="/component/content/article/942.html?start=25" class="toclink">July/August 2010</a> 529 </td> 530 </tr> 531 532 <tr> 533 <td> 534 <a href="/component/content/article/942.html?start=26" class="toclink">June 2010</a> 535 </td> 536 </tr> 537 </table><div class="pagenavcounter">Page 1 of 27</div><table style="width: 300px; margin-left: auto; margin-right: auto;"> 538<tbody> 539<tr> 540<td style="margin-left: 30px; text-align: left;" align="center"> 541<h1 style="text-align: center;"><span style="color: #ff0000;">Unhandled Exception!</span></h1> 542<p style="text-align: center;"><span style="font-size: 8pt;"><em>More cartoon fun at <a href="https://xkcd.com/" target="_blank">xkcd</a> a webcomic of romance,sarcasm, math, and language</em></span></p> 543</td> 544</tr> 545</tbody> 546</table> 547�� 548<h4 style="text-align: left;"><span style="color: #ff0000;">Day Counter</span></h4> 549<p style="text-align: center;"><a href="https://xkcd.com/3228/" target="_blank"><span style="font-size: 8pt;"><em> <img title="It has been −2,147,483,648 days since our last integer overflow." src="https://img
549s.xkcd.com/comics/day_counter.png" alt="Day Counter" width="300" /></em></span></a></p> 550<p style="text-align: center;">Floating point - can't live without it but it needs much care and attention. Not so integer representation which is close to theoretical perfection - we hope. </p> 551<h4 style="text-align: left;"><span style="color: #ff0000;">Linear Sort</span> </h4> 552<p style="text-align: center;"><a href="https://xkcd.com/3026/" target="_blank"><span style="font-size: 8pt;"><em><img title="The best case is O(n), and the worst case is that someone checks why" src="https://imgs.xkcd.com/comics/linear_sort.png" alt="Linear Sort" width="300" /></em></span></a></p> 553<p>But wait, MERGESORT is O(nlogn) not O(n)...but wait again, now everything is O(n) and computer science is over.. </p> 554<h4><span style="color: #ff0000;">Bracket Symbols</span><br style="color: #ff0000;" /></h4> 555<p style="text-align: center;"><a href="https://xkcd.com/2954/" target="_blank"><span style="font-size: 8pt;"><em><img src="https://imgs.xkcd.com/comics/bracket_symbols.png" alt="" width="300" /></em></span></a></p> 556<p>How long did it take you to notice that the Python Function brackets are balanced? I rest my case.</p> 557<p> </p> 558<h4 style="text-align: left;"><span style="color: #ff0000;">Code Lifespan<br /></span></h4> 559<p><a href="https://xkcd.com/2730/" target="_blank"><img style="image-orientation: none;" title="Surely (no one/everyone) will (recognize how flexible and useful this architecture is/spend a huge amount of effort painstakingly preserving and updating this garbage I wrote in 20 minutes)" src="//imgs.xkcd.com/comics/code_lifespan.png" alt="Code Lifespan" width="300" height="244" /></a></p> 560<p>We all build our code as if it will live forever, unless it's a RAD mock-up and even then it still lives forever. I predict not the heat death of the universe, but the legacy code death of programming - unless of course that's what AI is supposed to fix?</p> 561<h1 style="text-align: left;"> </h1> 562<h4 style="text-align: left;">Encryption<span style="color: #ff0000;"> <br /></span></h4> 563<p><a href="https://xkcd.com/2691/" target="_self"><img style="image-orientation: none; display: block; margin-left: auto; margin-right: auto;" title="WARNING: PEOPLE NAMED EVE ARE PROHIBITED FROM INSTALLING THIS APP!" src="//imgs.xkcd.com/comics/encryption.png" alt="Encryption" width="200" height="322" /></a></p> 564<p>To the average programmer encyrption often looks like a joke about Alice and Bob. It seems the only way to be secure is to talk to no one. So much for the open internet...</p> 565<h2 style="text-align: left;"> </h2> 566<h2 style="text-align: left;"> </h2> 567<h2 style="text-align: left;">August 2022</h2> 568<h2 style="text-align: left;"><span style="color: #ff0000;">Assigning Numbers<br /></span></h2> 569<p><a href="https://xkcd.com/2610/" target="_blank"><img style="image-orientation: none; display: block; margin-left: auto; margin-right: auto;" title="Gödel should do an article on which branches of math have the lowest average theorem number." src="//imgs.xkcd.com/comics/assigning_numbers.png" alt="Assigning Numbers" width="200" height="272" /></a></p> 570<p>Notice it says "bad data science" and not "all science". Assigning numbers to physical things is what good science is all about, but you have to do it in such a way that the numbers capture the essence of the physical thing and this isn't always easy. What we are taking about here is Godel numbering which assigns numbers in an arbitrary sequence. All you can prove using it are things about arbitrary sequences - like the incompleteness theorem. If you want to know more see: <a href="https://www.amazon.com/dp/1871962439" target="_blank">The Programmer’s Guide To Theory: Great ideas explained</a>.</p> 571<h4 style="text-align: left;"> </h4> 572<h4 style="text-align: left;"> </h4> 573<h4 style="text-align: left;">June 2022</h4> 574<h2 style="text-align: left;"><span style="color: #ff0000;">Turing Complete</span></h2> 575<p><a href="https://xkcd.com/2556/" target="_blank"><img style="image-orientation: none; display: block; margin-left: auto; margin-right: auto;" title="Thanks to the ForcedEntry exploit, your company's entire tech stack can now be hosted out of a PDF you texted to someone." src="//imgs.xkcd.com/comics/turing_complete.png" alt="Turing Complete" width="150" height="262" /></a></p> 576<p>This is an over reaction! Just about everything is Turing complete - mostly by accident - and in any case my dishwasher already plays Mario and it took a lot longer than six months...<br />PS If you really want to know what Turing Complete is all about see <a href="/programming/theory/15096-the-trick-of-the-mind-big-languages-are-turing-complete.html">The Trick Of The Mind</a>.</p> 577<h4 style="text-align: left;"> </h4> 578<h4 style="text-align: left;"><span style="color: #ff0000;"><span style="color: #000000;">Dec 2021</span></span></h4> 579<h2 style="text-align: left;"><span style="color: #ff0000;">Modern Tools</span></h2> 580<p><br /> <a href="https://xkcd.com/2510/" target="_blank"><img style="image-orientation: none; display: block; margin-left: auto; margin-right: auto;" title="I tried to train an AI to repair my Python environment but it kept giving up and deleting itself." src="//imgs.xkcd.com/comics/modern_tools.png" alt="Modern Tools" width="180" height="339" /></a></p> 581<p>We are in a strange state somewhere between a primitive and an advanced technology. We don't have the computing power to simply say "Alexa write me a program" so we use advanced AI to make what we have better rather than to replace it with something radically better. However, given so many programmers still claim that a text editor is better than an IDE and procedural layout is superior to a drag-and-drop UI editor, perhaps this is the reason we
581can't have nice things.</p> 582<h4>July 2021</h4> 583<h2 style="text-align: left;"><span style="color: #ff0000;">Linked List Interview Problem</span></h2> 584<p><img style="image-orientation: none; display: block; margin-left: auto; margin-right: auto;" title="I'd traverse it myself, but it's singly linked, so I'm worried that I won't be able to find my way back to 2021." src="//imgs.xkcd.com/comics/linked_list_interview_problem.png" alt="Linked List Interview Problem" width="400" height="239" /></p> 585<p>Interview? What interview? Don't they know me? I'm the programmer who invented the linked list - my credentials are obvious. I only write in C, I use emacs, heavily customized, and my programs are always perfectly punched onto paper tape and run without error on system V. Anyway "linked list"...so last year... And if I don't get the job you can have my head pointer, though the tail pointer is mine.</p> 586<h4>May 2021</h4> 587<h2 style="text-align: left;"><span style="color: #ff0000;">Depth and Breadth</span></h2> 588<p><a href="https://xkcd.com/2407/" target="_blank"><img style="image-orientation: none; display: block; margin-left: auto; margin-right: auto;" title="A death-first search is when you lose your keys and travel to the depths of hell to find them, and then if they're not there you start checking your coat pockets." src="//imgs.xkcd.com/comics/depth_and_breadth.png" alt="Depth and Breadth" width="220" height="282" /></a></p> 589<p style="text-align: center;"><span style="font-size: 8pt;"><em><em><em><em>Click for larger image</em></em></em></em></span></p> 590<p>Ah the joy of tree search. When you first meet trees computer science becomes real. Trees, branches, leaves it all sounds so real. Then someone decides to call them nodes and arcs...so abstract. Depth first, breadth first and, in my case, always bread first, but I am dyslexic.</p> 591<h4>December 2020</h4> 592<h2 style="text-align: left;"><span style="color: #000000;">Scientist Tech Help</span></h2> 593<p><a href="https://xkcd.com/2341/" target="_blank"><img style="image-orientation: none; display: block; margin-left: auto; margin-right: auto;" title="I vaguely and irrationally resent how useful WebPlotDigitizer is." src="//imgs.xkcd.com/comics/scientist_tech_help.png" alt="Scientist Tech Help" width="293" height="214" /></a></p> 594<p style="text-align: center;"> </p> 595<p>So, so true. Not restricted to scientist tech help either. We often get hold of the wrong idea when it comes to providing any software. When we do find out what the user wants, it's often a big disappointment. I suggest this is why we hate requirements analysis. In an ideal world we should just deliver the toy that pleases us the most...</p> 596<p> </p> 597<h4>October 2020</h4> 598<h2>Old Days 2</h2> 599<h4 style="text-align: left;"><span style="color: #000000;"><a href="https://xkcd.com/2324/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="The git vehicle fleet eventually pivoted to selling ice cream, but some holdovers remain. If you flag down an ice cream truck and hand the driver a floppy disk, a few hours later you'll get an invite to a git repo." src="//imgs.xkcd.com/comics/old_days_2.png" alt="Old Days 2" width="294" height="262" /></a></span></h4> 600<p style="text-align: left;">It is wonderful - like a stream of consciousness poem. The early days had their moments. I can remember nearly freezing to death sitting on the steps of the computer center waiting for it to open so I could see my printout, correct the, usually minor, errors and throw the punch cards back in. Hypothermia was a small price to pay for an extra run in the day. Of course, the extra sweater kept you warm the next day.</p> 601<h4 style="text-align: left;"><span style="color: #000000;">June 2020</span></h4> 602<h1 style="text-align: left;"><span style="color: #ff0000;"><span style="color: #000000;">X</span><br /></span></h1> 603<p><br style="color: #ff0000;" /> <a href="https://xkcd.com/2309/" target="_blank"><img title="The worst is when you run out of monospaced fonts and have to use variable-width variables." src="//imgs.xkcd.com/comics/x.png" alt="X" /></a></p> 604<p style="text-align: center;"><span style="font-size: 8pt;"><em><em><em>Click for larger image</em></em></em></span></p> 605<p>Is it every programmer's dream to design and implement a language? Of course it is. Fame and fortune and the right to name the language whatever you care to. To be known as "Father of X". To be up there with the greats. Someone will implement this language. Don't encourage, them call the court ASAP!</p> 606<p> </p> 607<p>April 2020</p> 608<h2 style="text-align: left;"><span style="color: #000000;"> RIP John Conway</span></h2> 609<p style="text-align: center;"><a href="https://xkcd.com/2293/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;
609" title="1937-2020" src="//imgs.xkcd.com/comics/rip_john_conway.gif" alt="RIP John Conway" width="200" height="263" /></a> <em><em>Click for larger image</em></em></p> 610<p>Brilliant! What a fitting tribute and the glider moving off top right to infinity seems particularly deep. <br />See: <a href="/news/82-heritage/13614-john-conway-dies-from-coronavirus.html">John Conway Dies From Coronavirus</a> for more.</p> 611<p> </p> 612<p><span style="color: #ff0000;"><span style="color: #000000;">Feb/March 2020</span></span></p> 613<h2><span style="color: #000000;"><strong>Blockchain</strong></span></h2> 614<p><a href="https://xkcd.com/2248/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="Blockchains are like grappling hooks, in that it's extremely cool when you encounter a problem for which they're the right solution, but it happens way too rarely in real life." src="//imgs.xkcd.com/comics/blockchain.png" alt="Blockchain" width="200" height="283" /></a></p> 615<p style="text-align: center;"><span style="font-size: 8pt;"><em><em>Click for larger image</em></em></span></p> 616<p>Blockchain is a nice idea, but the situations that need it or can make good use of it without heavy layers of machinery that make it fit the case are few. Most programmers could tell you this once they know what a blockchain is, so why did it become the great wonder of the world and the solution to everything?</p> 617<p> </p> 618<p> </p> 619<p><span style="color: #ff0000;"><span style="color: #000000;">January 2020</span></span></p> 620<h2 style="text-align: left;"><span style="color: #000000;"><strong>New Year's Eve </strong></span></h2> 621<p><a href="https://xkcd.com/2248/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title=""Off-by-one errors" isn't the easiest theme to build a party around, but I've seen worse." src="//imgs.xkcd.com/comics/new_years_eve.png" alt="New Year's Eve" width="180" height="206" /></a></p> 622<p style="text-align: center;"><span style="font-size: 8pt;"><em><em>Click for larger image</em></em></span></p> 623<p>How many people, picked at random, would recognize "off-by-one" error? How many would get the idea that there is just one day in the year when a simple calculation gives the right answer and why it doesn't work for the rest? And they say algorithmic thinking isn't worth learning! <br /><em>PS: If you don't get it you are not invited to my "off-by-one" party.</em></p> 624<p><span style="color: #ff0000;"><span style="color: #000000;"> </span></span></p> 625<p><span style="color: #ff0000;"><span style="color: #000000;">December 2019</span></span></p> 626<h2 style="text-align: left;"><span style="color: #000000;"><strong>Machine Learning Captcha </strong></span></h2> 627<p><a href="https://xkcd.com/2228/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="More likely: Click on all the pictures of people who appear disloyal to [name of company or government]" src="//imgs.xkcd.com/comics/machine_learning_captcha.png" alt="Machine Learning Captcha" width="150" height="274" /></a></p> 628<p>You'd give away all that vital information and the chances are it still wouldn't let you into the web site you were trying to get to!</p> 629<p> </p> 630<p><span style="color: #ff0000;"><span style="color: #000000;">November 2019</span></span></p> 631<h2 style="text-align: left;"><span style="color: #000000;"><strong>College Athletes</strong></span></h2> 632<p><span style="color: #ff0000;"><span style="color: #000000;"><a href="https://xkcd.com/2210/" target="_blank"><img title="Their signature play is the three-point combinator, a recursive offense which is guaranteed not to halt and continues accumulating points until the buzzer." src="//imgs.xkcd.com/comics/college_athletes.png" alt="College Athletes" /></a></span></span></p> 633<p> </p> 634<p>It's not often we figure sport on our front page. The question, dear reader, is two-fold? First, why; and second, is there any currying actually going on in the description. I think its more like <a href="/programming/javascript/4676-chaining-fluent-interfaces-in-javascript.html" target="_self">fluent</a> calling.</p> 635<p> </p> 636<p><span style="color: #ff0000;"><span style="color: #000000;">September 2019</span></span></p> 637<h2 style="text-align: left;"><span style="color: #ff0000;"><strong><span style="color: #000000;">Cumulonimbus</span></strong></span></h2> 638<p><span style="color: #ff0000;"><span style="color: #000000;"><img title="The rarest of all clouds is the altocumulenticulostratonimbulocirruslenticulomammanoctilucent cloud, caused by an interaction between warm moist air, cool dry air, cold slippery air, cursed air, and a cloud of nanobots." src="//imgs.xkcd.com/comics/cumulonimbus.png" alt="Cumulonimbus" width="400" height="129" /></span></span></p> 639<p>Recursion, it's in the cloud...</p> 640<p>For more about recursion see <a href="/babbages-bag/343-recursion.html">Recursion</a></p> 641<p> </p> 642<p><span style="color: #ff0000;"><span style="color: #000000;"> </span></span></p> 643<p><span style="color: #ff0000;"><span style="color: #000000;">August 2019</span></span></p> 644<h2 style="text-align: left;"><span style="color: #ff0000;"><strong><span style="color: #000000;">Spreadsheets</span> <br /></strong></span></h2> 645<p><a href="https://xkcd.com/2180/" target="_blank"><img title="My brother once asked me if there was a function to produce a calendar grid from a list of dates in Google Sheets. I replied with a single-cell formula that took in a list of dates and outputted a calendar. It used SEQUENCE(), REGEXMATCH(), and a double-nested ARRAYFORMULA(), and it locked up the browser for 15 seconds every time it ran. I think he learned a lot about asking me things." src="//imgs.xkcd.com/comics/spreadsheets.png" alt="Spreadsheets" /></a></p> 646<p>Ah, spreadsheets. They occupy a unique position as being the one truly easy way to get a computation done without having to know anything much about programming. This probably isn't where things go wrong, however. How many beginners would appreciate query() or importhtml()? No, it's the expert we have to fear.</p> 647<p>July 2019</p> 648<h2 style="text-align: left;"><span style="color: #000000;"><strong>Trained a Neural Net</strong></span></h2> 649<p><a href="https://xkcd.com/2173/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="It also works for anything you teach someone else to do. "Oh yeah, I trained a pair of neural nets, Emily and Kevin, to respond to support tickets."" src="//imgs.xkcd.com/comics/trained_a_neural_net.png" alt="Trained a Neural Net" width="200" height="295" /></a></p> 650<p> </p> 651<p>After this Cartoon a new era has begun - AC. I now say "I gathered all the data and fed it into the largest most powerful neural network in existance and the conclusion was..." Only later, and only if I'm asked, do I admit the the neural network was me! Long live wetware..</p> 652<p>April 2019</p> 653<h2 style="text-align: left;"><span style="color: #000000;"><strong>Motivation</strong></span></h2> 654<p><a href="https://xkcd.com/2154/" target="_blank"><img title="What's even worse is, a month ago they transferred me to work on the game I was already playing, and suddenly I found myself procrastinating by playing the one I'd been assigned before. It's possible they're onto me and this is all part of the plan." src="//imgs.xkcd.com/comics/motivation.png" alt="Motivation" /></a></p> 655<p>I saw a blog post titled "You don't have to program in your spare time". Motivation, it's really strange isn't it. You can work on open source or you're side project and then do the same thing at work. The question is, should they bother to pay you as you would do the job anyway?! Of course, we know it isn't like that. This is your program and that is their program. I still hold that if you don't program in your spare time, you probably shouldn't be a programmer at all.</p> 656<p> </p> 657<p>Feburary 2019</p> 658<h2 style="text-align: left;"><span style="color: #000000;"><strong>Differentiation and Integration</strong></span></h2> 659<p><a href="https://xkcd.com/2117/" target="_blank"><img title=""Symbolic integration" is when you theatrically go through the motions of finding integrals, but the actual result you get doesn't matter because it's purely symbolic." src="//imgs.xkcd.com/comics/differentiation_and_integration.png" alt="Differentiation and Integration" width="380" height="387" /></a></p> 660<p> </p> 661<p>Take a problem, almost any problem and if you can solve it with an algorithm then the chances are you can solve the inverse problem. You know x so you can work out y now given y, well x can be found, but often it is a little harder. There are some problems for which "little" becomes "a lot". So it is with many NP problems and it certainly is for calculus. If you have been there and know how terrible a task integration is, just stop for a moment and ask yourself why? Why is integration so very hard....</p> 662<h4><span style="color: #000000;">January 2019<br /></span></h4> 663<h2 style="text-align: left;"><span style="color: #000000;"><strong>Seashell</strong></span></h2> 664<p><span style="color: #000000;"><a href="https://xkcd.com/1236/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="This is roughly equivalent to 'number of times I've picked up a seashell at the ocean' / 'number of times I've picked up a seashell', which in my case is pretty close to 1, and gets much closer if we're considering only times I didn't put it to my ear." src="https://img
664s.xkcd.com/comics/seashell.png" alt="Seashell" width="200" height="275" /></a></span></p> 665<p> </p> 666<p>To continue our in-depth analysis of all that is wrong with statistics and data science. Bayes Rules! Well more accurately Bayes' rule. Above we have a perfectly reasonable use of said rule - but only if the number are probabilities. So let's take the simplest P(I picked up a seashell) - what can this possibly mean, let alone how could you estimate it in any objective sense? You don't have to move on to the others - this is broken right here.</p> 667<h4> </h4> 668<p> </p> 669<h4><span style="color: #000000;">December</span></h4> 670<h2 style="text-align: left;"><span style="color: #000000;">TREE</span></h2> 671<p><span style="color: #000000;"><a href="https://xkcd.com/835/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="Not only is that terrible in general, but you just KNOW Billy's going to open the root present first, and then everyone will have to wait while the heap is rebuilt." src="//imgs.xkcd.com/comics/tree.png" alt="Tree" width="300" height="218" /></a></span><span style="color: #000000;">Computer programmers are very much in a world of their own. The fact that you cannot say Xmas tree without the question "binary?" popping in to my head proves it. It's a sort of festive Rorschach test but instead of some black blobs it's a tree that elicits the reaction - binary blob anyone? And I can't resist wondering if the heap is garbage collected or are presents owned?</span></p> 672<p><span style="color: #000000;"> </span></p> 673<h4><span style="color: #000000;">November</span></h4> 674<h4 style="text-align: left;"><span style="color: #000000;"><strong>Modified Bayes' Theorem</strong></span></h4> 675<p> </p> 676<p><a href="https://xkcd.com/2059/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="Don't forget to add another term for "probability that the Modified Bayes' Theorem is correct."" src="//imgs.xkcd.com/comics/modified_bayes_theorem.png" alt="Modified Bayes' Theorem" width="236" height="163" /></a><span style="color: #000000;">This is amusing. Of course, data scientists, or statisticians as we use to call them, aren't perfect and many mistakes are made and so it makes sense to factor in the probability of such a misunderstanding into the calculation of the posterior. But, and this is a very big but, if you can find yourself a Bayesian look them in the eye, use a mirror if you are a Bayesian, and ask them<br /><em>"What is this P that you keep calculating? Does it have a real physical interpretation in all cases? What is the P that the sun will rise tomorrow and where is your replication?"</em> <br />Beliefs are dangerous things.</span></p> 677<h4><span style="color: #000000;">October</span></h4> 678<h4 style="text-align: left;"><span style="color: #000000;">Sandboxing Cycle</span></h4> 679<p><a href="https://xkcd.com/2044/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="All I want is a secure system where it's easy to do anything I want. Is that so much to ask?" src="//imgs.xkcd.com/comics/sandboxing_cycle.png" alt="Sandboxing Cycle" width="271" height="293" /></a></p> 680<p>And so it goes. A security measure is put in place. Programmers worked long hours to implement it and it's super clever. It locks down the system in a way that makes something impossible and so programmers work long hours to find a super clever way to do the thing it stops you doing. Eventually the new approach becomes commonplace and the security programmers look at it again and ...</p> 681<h4> </h4> 682<h4><span style="color: #000000;">August/September</span></h4> 683<h4><span style="color: #000000;">Software Development</span></h4> 684<p><a href="https://xkcd.com/2021/" target="_self"><img style="display: block; margin-left: auto; margin-right: auto;" title="Update: It turns out the cannon has a motorized base, and can make holes just fine using the barrel itself as a battering ram. But due to design constraints it won't work without a projectile loaded in, so we still need those drills." src="//imgs.xkcd.com/comics/software_development.png" alt="Software Development" width="211" height="266" /></a></p> 685<p><span style="font-size: 8pt;"><em>Click for larger image</em></span></p> 686<p>I think that this is a bit on the overly kind side. Software development is far more bone-headed than this suggests. We not only take tools and use them in crazy non-productive ways, we even refuse to use the tools that are available preferring to ride our horse backward and wash in the dust. This is no longer an art or a science; it is a punishment.</p> 687<h4 style="font-size: 12px;">June/July 2018</h4> 688<h4 style="text-align: left;"><span style="color: #000000;">Containers</span></h4> 689<p><a href="https://xkcd.com/1988/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="All services are microservices if you ignore most of their features." src="//imgs.xkcd.com/comics/containers.png" alt="Containers" width="300" height="298" /></a></p> 690<p><span style="font-size: 8pt;"><em><em>Click for larger image</em></em></span></p> 691<p>Docker is just gluing stuff together that we don't understand. Mostly yes. Git is just using a few commands and hoping that things don't go wrong. Mostly yes. Linux is just learning how to do a few things and reinstalling if anything happens. How shallow have we be
691come. We are gluers together of things we don't understand. Mostly yes.</p> 692<h4 style="font-size: 12px;"> </h4> 693<h4 style="font-size: 12px;">May 2018</h4> 694<h4>Python Environment</h4> 695<h4 style="font-size: 12px;"><a href="https://xkcd.com/1987/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="The Python environmental protection agency wants to seal it in a cement chamber, with pictorial messages to future civilizations warning them about the danger of using sudo to install random Python packages." src="//imgs.xkcd.com/comics/python_environment.png" alt="Python Environment" width="257" height="254" /></a></h4> 696<p>For readers not familiar with the term "superfund site" it's a grant to clean up an environmentally hazardous site. So has Python developed to the point that it is environmentally toxic? All I will say is that software starts life lean and agile, ages to the point where the inadequacies become apparent and then descends into an obese old age where agility is a long forgotten dream.</p> 697<h4 style="font-size: 12px;">April 2018</h4> 698<h4 style="text-align: left;"><span style="color: #000000;">Making Progress</span></h4> 699<p style="font-size: 12px;"><a href="https://xkcd.com/1906/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto; margin-bottom: 10px;" title="I started off with countless problems. But now I know, thanks to COUNT(), that I have "#REF! ERROR: Circular dependency detected" problems." src="//imgs.xkcd.com/comics/making_progress.png" alt="Making Progress" width="151" height="240" /></a>This isn't the first or only xkcd that deals with the central problem of programming and computer use. The words that should be engraved on every programmers heart are: it is always more difficult than it appears, it will always take more time than you think and the problem you solve will be replaced by something much, much, harder.</p> 700<h4 style="font-size: 12px;">March 2018</h4> 701<h4 style="text-align: left;"><span style="color: #000000;">Code Golf</span></h4> 702<p style="font-size: 12px;"><a href="https://xkcd.com/1960/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="I also enjoy Reverse Regular Golf. I've been playing for years all across the country and I'm still on the first hole." src="//imgs.xkcd.com/comics/code_golf.png" alt="Code Golf" width="252" height="362" /></a>Can you remember the first time you encountered code golf? The idea that shortest program wins is completely anti-good style and yes in a sense all our programs should strive for reverse code golf status. But... and this is a big but, how often do you see variable names that are so long your eyes get tired just scanning the lines. Reverse code golf is just as bad.</p> 703<h4 style="font-size: 12px;">February 2018</h4> 704<h4>Meltdown and Spectre</h4> 705<p><a href="https://xkcd.com/1938/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="New zero-day vulnerability: In addition to rowhammer, it turns out lots of servers are vulnerable to regular hammers, too." src="//imgs.xkcd.com/comics/meltdown_and_spectre.png" alt="Meltdown and Spectre" width="400" height="385" /></a></p> 706<p style="text-align: left;"><em><em> </em></em></p> 707<p>The world has been worrying about Meltdown and Spectre, but I don't know why. How could a phantom trolley have any effect in the real world? Now rowhammer - that's much more scary as it involves hammers.</p> 708<p>Also see: <a href="/news/149-security/11437-how-meltdown-works.html" target="_self">How Meltdown Works</a>, <a style="text-decoration: none; font-weight: normal; color: #135cae;" href="https://ubuntu1/news/149-security/11449-how-spectre-works.html">How Spectre Works</a> <a href="/news/149-security/8377-rowhammer-changing-memory-without-accessing-it.html">Rowhammer </a>and <a href="/news/112-theory/8000-halting-problem-used-to-prove-a-robot-cannot-computably-kill-a-human.html" target="_self">Halting Problem Used To Prove A Robot Cannot Computably Kill A Human</a></p> 709<h4 style="font-size: 12px;"> </h4> 710<h4 style="font-size: 12px;">January 2018</h4> 711<h4 style="text-align: left;"><span style="color: #000000;">
711Bad Code</span></h4> 712<p><a href="https://www.xkcd.com/1926/" target="_blank"><img title=""Oh my God, why did you scotch-tape a bunch of hammers together?" "It's ok! Nothing depends on this wall being destroyed efficiently."" src="//imgs.xkcd.com/comics/bad_code.png" alt="Bad Code" width="400" height="149" /></a></p> 713<p style="text-align: left;"><em><em>Click for larger image</em></em></p> 714<p style="text-align: left;"><span style="font-size: 8pt;">There is bad code and there there is baaaad code. Some programmers seem to love to produce code that breaks all reasonable guidelines and includes as many edge cases as it possibly can. A wall may not be load bearing but we should always aim to write clear understandable code in 2018. Even if it reduces our fun just a little.</span></p> 715<h4 style="font-size: 12px;">December 2017</h4> 716<h4 style="text-align: left;"><span style="color: #000000;">Digital Resource Lifespan</span></h4> 717<p><a href="https://www.xkcd.com/1909/" target="_blank"><img title="I spent a long time thinking about how to design a system for long-term organization and storage of subject-specific informational resources without needing ongoing work from the experts who created them, only to realized I'd just reinvented libraries." src="//imgs.xkcd.com/comics/digital_resource_lifespan.png" alt="Digital Resource Lifespan" width="400" height="285" /></a></p> 718<p style="text-align: left;"><span style="font-size: 8pt;">It</span><span style="font-size: 8pt;"> is strange to think that in the day of paper we got our information longevity for free. It wasn't designed into the process, it just happened. Now all the technology we use has a short life span and again it's almost accidental. Now where is that floppy I stored my magnum opus on - eight inch of course.</span></p> 719<h4 style="font-size: 12px;">November 2017</h4> 720<h4 style="text-align: left;"><span style="color: #000000;">Thermostat </span></h4> 721<p><a href="https://xkcd.com/1912/" target="_blank"><img title="Your problem is so terrible, I worry that, if I help you, I risk drawing the attention of whatever god of technology inflicted it on you." src="//imgs.xkcd.com/comics/thermostat.png" alt="Thermostat" width="400" height="164" /></a></p> 722<p>One day all thermostats will be made like this and I for one will be the first to welcome our thermo overlords. Of course, I will, as a programmer, be indispensible...<br />I hope.</p> 723<h4 style="font-size: 12px;"><br />October 2017</h4> 724<h4>Still in Use</h4> 725<p><img style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; display: block; margin-left: auto; margin-right: auto;" title="'Which one?' 'I dunno, it's your house. Just check each object.' 'Check it for *what*?' 'Whether it looks like it might have touched a paper towel at some point and then forgotten to let go.' '...' 'You can also Google to learn how to check which things are using which resources.' 'You know, I'll just leave the towel there and try again tomorrow.'" src="//imgs.xkcd.com/comics/still_in_use.png" alt="Still in Use" width="300" height="365" /></p> 726<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; font-weight: 400; text-align: left;">This is typical of the sort of error message that gives programmers a bad name. It is perhaps the worse sort of error message because it tells you what is wrong but no clue as to how to fix it. It used to be the top obnoxious error message of all time - but then along came "Something bad happened"</p> 727<h4>September 2017</h4> 728<h4 style="text-align: left;"><span style="color: #000000;">Self Driving </span><br /><a href="https://xkcd.com/1897/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title=""Crowdsourced steering" doesn't sound quite as appealing as "self driving."" src="//imgs.xkcd.com/comics/self_driving.png" alt="Self Driving" width="266" height="265" /></a></h4> 729<p><span style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; text-align: -webkit-center;">In my experience those random strangers turn out to be programmers, but I can see that the alternative approach has
729its attractions. If you get it wrong or time out, presumably not only don't you get to access the website, you also are responsible for a traffic accident. </span></p> 730<h4>August 2017</h4> 731<h4 style="width: 294px; text-align: left;"><span style="color: #000000;" data-mce-mark="1">Supervillain Plan</span></h4> 732<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; font-weight: normal; text-align: -webkit-center;"><a style="text-decoration-line: underline;" href="https://xkcd.com/1883/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="Someday, some big historical event will happen during the DST changeover, and all the tick-tock articles chronicling how it unfolded will have to include a really annoying explanation next to their timelines." src="//imgs.xkcd.com/comics/supervillain_plan.png" alt="Supervillain Plan" width="211" height="280" /></a></p> 733<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; font-weight: normal; text-align: left;">No, we are not weird. It is just that the rest of the world ignores the problem. They get worried when an hour goes missing or turns up unexpectedly when a DST changeover happens. But <em><strong>we</strong> </em>know where it goes!</p> 734<h4 style="text-align: left;">Backup Batteries</h4> 735<p><a href="https://xkcd.com/1872/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="If it falls below 20% full, my bag turns red and I start to panic." src="//imgs.xkcd.com/comics/backup_batteries.png" alt="Backup Batteries" width="197" height="320" /></a></p> 736<p>Ah recursion at its best. But we know why his bag isn't 90% backup batteries don't we? Surely it is full to infinite bursting point or does a stack overflow save us? Nope, it's a tail recursion.</p> 737<h4 style="text-align: left;">Kolmogorov Directions <span style="color: #ff0000;" data-mce-mark="1"><br /></span></h4> 738<p style="text-align: left;"><a style="text-decoration: underline; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.333333015441895px; line-height: normal;" href="https://xkcd.com/1155/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="People get really grumpy when they realize you're giving them directions for how to go to the store and buy a GPS." src="https://imgs.xkcd.com/comics/kolmogorov_directions.png" alt="Kolmogorov Directions" width="227" height="328" /></a></p> 739<p style="text-align: left;">A good friend of mine once tried to give Andrey Kolmogorov, Kolmogorov directions. Of course Kolmogorov had no choice, any directions he gave were "Kolmogorov directions" by definition. Is this informational recursion or is it just name dropping...</p> 740<p style="text-align: left;">See: <a class="latestnews" style="line-height: 1.3em;" href="/babbages-bag/6319-kolmogorov-complexity.html">Kolmogorov Complexity</a></p> 741<h4>June/July 2017</h4> 742<h4>Unicode</h4> 743<p><a href="https://xkcd.com/1726/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="I'm excited about the proposal to add a "brontosaurus" emoji codepoint because it has the potential to bring together a half-dozen different groups of pedantic people into a single glorious internet argument." src="//imgs.xkcd.com/comics/unicode.png" alt="Unicode" width="300" height="355" /></a></p> 744<p style="text-align: left;">The Unicode people have added some dinosaurs in the latest release so we might be in for some "glorious internet arguments". If this doesn't make any sense to you then you haven't discovered that xkcd cartoons have popup text when you hover your cursor over the image - or you are reading this on a mobile. </p> 745<h4 style="width: 300.571px; text-align: left;"><span style="color: #333333;" data-mce-mark="1">May 2017</span></h4> 746<p><strong><span style="color: #000000;" data-mce-mark="1">Prometheus</span></strong></p> 747<p style="text-align: center;"><span style="color: #333333;" data-mce-mark="1"><a href="https://xkcd.com/1228/" target="_blank"><img title="'I'm here to return what Prometheus stole.' would be a good thing to say if you were a fighter pilot in a Michael Bay movie where for some reason the world's militaries had to team up to defeat every god from human mythology, and you'd just broken through the perimeter and gotten a missile lock on Mount Olympu
747s." src="//imgs.xkcd.com/comics/prometheus.png" alt="Prometheus" width="201" height="302" /></a></span></p> 748<p><span style="color: #333333;" data-mce-mark="1">Here you have the problem of the value of software in a single cartoon. What we make cannot be stolen for the exact same reason. But, like fire, if it hasn't been created then creating it can be a tough job. <a style="text-decoration: none; font-weight: normal; color: #135cae; font-family: Helvetica, Arial, sans-serif; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: #ffffff;" href="/professional-programmer/i-programmer/6120-we-make-nothing.html">We Make Nothing </a></span></p> 749<h4>Code Quality 3</h4> 750<p><a href="https://xkcd.com/1833/" target="_blank"><img title="It's like a half-solved cryptogram where the solution is a piece of FORTH code written by someone who doesn't know FORTH." src="//imgs.xkcd.com/comics/code_quality_3.png" alt="Code Quality 3" width="400" height="140" /></a></p> 751<p>This is having a bad effect on my code. I actually want Ponytail or someone with the same linguistic ability to describe my code in this beautiful stream of consciousness flow of adjectives and similes. I know I should desire the converse, but something in me makes me want to be bad. <br />Make sure you have read <a href="https://xkcd.com/1513/" target="_blank"><span style="text-decoration: underline;" data-mce-mark="1">Code Quality</span></a> and <a href="https://xkcd.com/1695/" target="_blank"><span style="text-decoration: underline;" data-mce-mark="1">Code Quality 2</span></a>. </p> 752<p> </p> 753<h4 style="width: 294.571px; text-align: left;">Sigil Cycle</h4> 754<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; font-weight: normal;"><a href="https://xkcd.com/1306/" target="_blank"><img title="The cycle seems to be 'we need these symbols to clarify what types of things we're referring to!' followed by 'wait, it turns out words already do that.'" src="//imgs.xkcd.com/comics/sigil_cycle.png" alt="Sigil Cycle" width="400" height="244" /></a></p> 755<p>If you haven't programmed in a language that uses sigils, you won't have a clue as to what this cartoon is about. A sigil is symbol that is attached to a variable's name or identifier to signify some attribute, usually but not always its type. The point is that a sigil has a fixed meaning, but the identifier doesn't. Languages such as C++ don't use sigils, but that doesn't stop you from using Hungarian notation, invented back in the 70s by Charles Simonyi (a Hungarian), which could be regarded as sigils on steroids. </p> 756<h4 style="width: 300.571px; text-align: left;"><span style="color: #333333;" data-mce-mark="1">Applied Math</span></h4> 757<h4 style="font-size: 12px;"><a style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" href="https://xkcd.com/816/" target="_blank"><img title="Dear Reader: Enclosed is a check for ninety-eight cents. Using your work, I have proven that this equals the amount you requested." src="//imgs.xkcd.com/comics/applied_math.png" alt="Applied Math" width="400" height="147" /></a></h4> 758<p style="text-align: center;"> <em>Click to view bigger version </em></p> 759<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; font-weight: normal;">This is almost not worth making a comment on. Every programmer has to know "The Art Of Computer Programming" by Donald Knuth and also the additional fact that he sends out checks of $2.56 (a hexadecimal dollar) for an error found. As logic itself has been shown invalid, and most if not all of Knuth's book is based on logic, it is now mostly errors and hence the huge reward. </p> 760<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; font-weight: normal;">What is slightly less well known is that Knuth had to give up issuing real checks in 2008 because of check fraud. He now sends out "hexadecimal certificates" drawn on his own "Bank of San Serriffe". As very few people tried to cash the real checks no harm has been done. </p> 761<h4 style="font-size: 12px;">March 2017</h4> 762<p> </p> 763<h1 style="width: 295.429px; text-align: left;"><span style="color: #333333;" data-mce-mark="1">Ineffective Sorts</span></h1> 764<h1 style="text-align: center;"><a style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; text-align: left;" href="https://xkcd.com/1185/" target="_blank"><img title="StackSort connects to StackOverflow, searches for 'sort a list', and downloads and runs code snippets until the list is sorted." src="//imgs.xkcd.com/comics/ineffective_sorts.png" alt="Ineffective Sorts" width="400" height="375" /></a></h1> 765<h1 style="text-align: center;"> </h1> 766<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;">Recently there has been some discussion of whether or not it is fair to conduct whiteboard interviews - where the victim, sorry applicant, is asked to write some difficult program using a whiteboard or similar. The argument is that this is unfair because in real life perfectly competent programmers tend to consult the internet before they write anything but the most basic code. So to code from scratch without an internet connection is not the way it is done in the real world.</p> 767<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;">A shorter version of this conclusion is that 99.9% of programmers would write something like the above if asked to write a sort routine without a web connection.</p> 768<h1 style="width: 295.429px; text-align: left;"><span style="color: #000000;" data-mce-mark="1">HACKING</span></h1> 769<p> </p> 770<p><a style="text-decoration: underline; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" href="https://xkcd.com/1808/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="The dump also contains a list of millions of prime factors, a 0-day Tamagotchi exploit, and a technique for getting gcc and bash to execute arbitrary code." src="//imgs.xkcd.com/comics/hacking.png" alt="Hacking" width="231" height="320" /></a></p> 771<p><span style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" data-mce-mark="1">I really doubt this. Given the number of websites that refuse to accept creditcard or telephone numbers that include spaces, I think the problem of removing redundant space
771s is much harder, possibly NP hard, and certainly not something the CIA could have cracked in polynomial time. </span></p> 772<h1 style="width: 294.667px; text-align: left;">Nine</h1> 773<p><a style="text-decoration: underline; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" href="https://xkcd.com/1103/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="FYI: If you get curious and start trying to calculate the time adjustment function that minimizes the gap between the most-used and least-used digit (for a representative sample of common cook times) without altering any time by more than 10%, and someone asks you what you're doing, it's easier to just lie." src="//imgs.xkcd.com/comics/nine.png" alt="Nine" width="176" height="325" /></a></p> 774<p><span style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" data-mce-mark="1">User interfaces - who can predict what works? Would you guess that a number pad doesn't need a 9? And if it doesn't need a 9 it probably doesn't need an 8. And if it doesn't need an 8 ....</span><span style="color: #0000ee; font-family: Verdana, Arial, Helvetica, sans-serif;" data-mce-mark="1"><span style="font-size: 11px;" data-mce-mark="1"><span style="text-decoration: underline;" data-mce-mark="1"><br /></span></span></span></p> 775<h4 style="font-size: 12px;">February 2017</h4> 776<h1 style="width: 294.667px; text-align: left;">Tasks</h1> 777<p><a style="text-decoration: underline; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" href="https://xkcd.com/1425/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="In the 60s, Marvin Minsky assigned a couple of undergrads to spend the summer programming a computer to use a camera to identify objects in a scene. He figured they'd have the problem solved by the end of the summer. Half a century later, we're still working on it." src="//imgs.xkcd.com/comics/tasks.png" alt="Tasks" width="191" height="320" /></a></p> 778<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;">It is still true that it is hard to explain what is easy and what is hard for computers to do. Arguably the task of checking if the photo is a bird is now "easy". There is even a sense in which it always was easy but we had to wait for the hardware to catch up.</p> 779<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;">If the cartoon was redrawn today what would be the two tasks that best illustrated the point? </p> 780<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;"> </p> 781<h1 style="text-align: center;">Brick Archway</h1> 782<h1 style="text-align: center;"><a style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; text-align: left;" href="https://xkcd.com/347/" target="_blank"><img title="The TI-86 was bad enough. I don't know how I'd have gotten through high school if I'd had a laptop+wifi." src="//imgs.xkcd.com/comics/brick_archway.png" alt="Brick Archway" width="300" height="200" /></a> </h1> 783<p><strong style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;">No it isn't!</strong></p> 784<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;">It is only a stupid game in real life. In software it's just fun and 100% safe - more-or-less. This is the whole point of software.</p> 785<h4 style="font-size: 12px;">January 2017</h4> 786<h4 style="text-align: left;">File Transfer</h4> 787<h1 style="text-align: center;"><a style="text-decoration: underline;" href="https://xkcd.com/949/" target="_blank"><img title="Every time you email a file to yourself so you can pull it up on your friend's laptop, Tim Berners-Lee sheds a single tear." src="//imgs.xkcd.com/comics/file_transfer.png" alt="File Transfer" width="227" height="306" /></a></h1> 788<h1 style="text-align: center;"> </h1> 789<p>Is this a solved problem yet? How can it be the 21st Century and still not be solved? Even if you do manage to transfer the file what is the chance the end user has an app that can open it. "Look for an app in the App Store" has become a way of marketing apps, not opening files.</p> 790<h4>December 2016</h4> 791<h4 style="text-align: left;">UI Change</h4> 792<p> <a style="text-decoration: underline; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; text-align: center;" href="https://www.xkcd.com/1770/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="I know they said this change is permanent, but surely when they hear how much we're complaining someone will find a way to change things back." src="//imgs.xkcd.com/comics/ui_change.png" alt="UI Change" width="153" height="229" /></a></p> 793<p> </p> 794<p>Programmers look at things different. We know for a fact that it is mostly the UI that changes, what's inside stays pretty much the same. If it works leave it alone, but the UI is always up for change - usually for the worse. </p> 795<p> </p> 796<h4 style="text-align: left;">Correlation</h4> 797<p> </p> 798<p><a style="text-decoration: underline; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" href="https://www.xkcd.com/552/" target="_blank"><img title="Correlation doesn't imply causation, but it does waggle its eyebrows suggestively and gesture furtively while mouthing 'look over there'." src="//imgs.xkcd.com/comics/correlation.png" alt="Correlation" width="400" height="161" /></a></p> 799<p> </p> 800<p>The problem with this folk saying is that causation often <strong style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;">does</strong> cause correlation, but try convincing a doubter of that. It's the number one get out clause that allows anyone to deny anything!</p> 801<p> </p> 802<h4>November 2016</h4> 803<h4 style="width: 294.667px; text-align: left;">XKCDE</h4> 804<p><a style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" href="https://www.xkcd.com/1764/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="4. They unplug the root machine but the thousands of leaf VMs scatter in the wind and start spinning up new instances wherever they land" src="//imgs.xkcd.com/comics/xkcde.png" alt="XKCDE" width="251" height="139" /></a></p> 805<p style="text-align: center;"> </p> 806<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;">Sometimes I wonder where the real hardware is? Is it really VMs all the way down or does it stop somewhere? Does it have to <em>stop</em> somewhere? If so, it if <em>has</em> to stop is this a proof that god exists? No of course it's all silly. There <em>is</em> only software. </p> 807<h4 style="text-align: left;">Engineering Hubris</h4> 808<h4 style="width: 294.667px; text-align: left;"><a style="text-decoration: underline; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" href="https://xkcd.com/319/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="Chuck Jones is a vengeful god." src="//imgs.xkcd.com/comics/engineering_hubris.png" alt="Engineering Hubris" width="400" height="115" /></a></h4> 809<p> </p> 810<p>This is the number one mistake all programmers, and I mean all, make every time they look at an existing program and decide to start over from scratch. The new project goes well at first, but then the old complexities come back and the roadrunner escapes as always.</p> 811<h4 style="width: 294.667px; text-align: left;"> </h4> 812<h4 style="width: 294.667px; text-align: left;">e to the pi Minus pi </h4> 813<h4><a style="text-decoration: underline; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" href="https://xkcd.com/217/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="Also, I hear the 4th root of (9^2 + 19^2/22) is pi." src="//imgs.xkcd.com/comics/e_to_the_pi_minus_pi.png" alt="e to the pi Minus pi" width="400" height="151" /></a></h4> 814<p>That's nothing. In university they tried to tell us that e to the i pi was minus one. As if two transcendental irrationals and an imaginary number could equal an integer. There is no way that anyone would ever believe that or write a test for it during development...</p> 815<h4>October 2016</h4> 816<h4>Old Days </h4> 817<h4 style="width: 300.667px; text-align: left;"><a style="text-decoration: underline; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" href="https://www.xkcd.com/1755/" target="_blank"><img title="Lot of drama in those days, including constant efforts to force the "Reflections on Trusting Trust" guy into retirement so we could stop being so paranoid about compilers." src="//imgs.xkcd.com/comics/old_days.png" alt="Old Days" width="400" height="369" /></a></h4> 818<p style="width: 300.667px; text-align: left;">What were things like in your old days - after all, it is all relative? Where did the DVD go and remember when software came in boxes? I still write C on punched cards, so much classier. Oh wait no, that's C++.</p> 819<h4 style="width: 300.667px; text-align: left;">The General Problem </h4> 820<p><a style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" href="https://xkcd.com/974/" target="_blank"><img title="I find that when someone's taking time to do something right in the present, they're a perfectionist with no ability to prioritize, whereas when someone took time to do something right in the past, they're a master artisan of great foresight." src="//imgs.xkcd.com/comics/the_general_problem.png" alt="The General Problem" width="400" height="167" /></a></p> 821<p> </p> 822<p><br style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; text-align: center;" />There are downsides to knowing how to program. Not many, but they do exist and one of them is that we always see the general problem. Who wants to do a Sudoku when you can write a program to solve all such puzzles? Does it take the fun out of it? Not a bit.</p> 823<h4 style="width: 294.667px; text-align: left;">Lisp Cycles</h4> 824<h1 style="text-align: center;"><img style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; text-align: left;" title="I've just received word that the Emperor has dissolved the MIT computer science program permanently." src="//imgs.xkcd.com/comics/lisp_cycles.png" alt="Lisp Cycles" width="400" height="132" /></h1> 825<p>Following on from our put down of Haskell and our laugh at Perl, what is the one language no programmer would dare to make fun of? Yes it has to be Lisp. All programming languages want to be Lisp when they grow up. And all programmers on their deathbed whisper "I should have spent more time with Lisp"...</p> 826<p> </p> 827<p style="font-size: 12px;"><strong> Perl Problems</strong></p> 828<p> </p> 829<p><a style="text-decoration: underline; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" href="https://xkcd.com/1171/" target="_blank"><img title="To generate #1 albums, 'jay --help' recommends the -z flag." src="//imgs.xkcd.com/comics/perl_problems.png" alt="Perl Problems" width="400" height="149" /></a></p> 830<p>Following on last week's vicious put down of Haskell, what could be better than to have a go at Perl ... But is this really an attack on regular expressions? And is the problem increment an underestimate?</p> 831<p><strong>Haskell</strong></p> 832<p><a style="text-decoration: underline; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" href="https://xkcd.com/1312/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="The problem with Haskell is that it's a language built on lazy evaluation and nobody's actually called for it." src="//imgs.xkcd.com/comics/haskell.png" alt="Haskell" width="160" height="228" /></a></p> 833<p> </p> 834<p>We really shouldn't laugh at each others languages, but this is a real ROFL. Well, Haskell programmers - well, you know
834what I mean. All that category theory can't do anyone any good.</p> 835<p> </p> 836<h4 style="font-size: 12px;">September 2016</h4> 837<h4>Debugger</h4> 838<p><strong> </strong><a style="text-decoration: underline; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" href="https://xkcd.com/1163/" target="_blank"><img title="It can take a site a while to figure out that there's a problem with their 'report a bug' form." src="//imgs.xkcd.com/comics/debugger.png" alt="Debugger" width="400" height="184" /></a></p> 839<h4 style="text-align: left;">The central problem of AI. <br style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; font-weight: normal;" />Now all we need is an answer. </h4> 840<p> </p> 841<h4 style="text-align: left;">Error Code</h4> 842<p> </p> 843<p><a style="text-decoration: underline; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" href="https://xkcd.com/1024/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="It has a section on motherboard beep codes that lists, for each beep pattern, a song that syncs up well with it." src="//imgs.xkcd.com/comics/error_code.png" alt="Error Code" width="244" height="664" /></a></p> 844<p> </p> 845<p>Error messages they almost define your generation and they certainly do define your personality -<br style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" />abend anyone? What about "error in line nn" or "something went wrong". I wish I'd been born in the time of "Sit by lake".</p> 846<p> </p> 847<p> </p> 848<p><a style="text-decoration: underline; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" href="https://xkcd.com/1066/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="During the second semester, the path is briefly routed through the dishwasher." src="//imgs.xkcd.com/comics/laundry.png" alt="Laundry" width="195" height="631" /></a></p> 849<p>To celebrate the return to education that happens in many countries at this time of year we feature a classic xkcd cartoon. This is one flow chart that no amount of algorithmic knowledge is going to change. It's a law of nature.</p> 850<h4 style="width: 300px; text-align: left;">Standards</h4> 851<p><a style="text-decoration: underline; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px;" href="https://xkcd.com/927/" target="_blank"><img title="Fortunately, the charging one has been solved now that we've all standardized on mini-USB. Or is it micro-USB? Shit." src="//imgs.xkcd.com/comics/standards.png" alt="Standards" width="400" height="227" /></a></p> 852<p>There ARE only de facto standards - discuss.</p> 853<p> </p> 854<p><strong>Halting Problem</strong></p> 855<h4><a style="text-decoration: underline; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; text-align: center;" href="https://xkcd.com/1266/" target="_blank"><img style="display: block; margin-left: auto; margin-right: auto;" title="I found a counterexample to the claim that all things must someday die, but I don't know how to show it to anyone." src="https://imgs.xkcd.com/comics/halting_problem.png" alt="Halting Problem" width="231" height="139" /></a></h4> 856<h4> </h4> 857<h4>That you cannot work out if a program will halt, and presumably catch fire, is a common misconception. Turing's wonderful result that the halting problem is undecidable only applies to programs that have access to infinite memory - real programs are in theory perfectly predictable.<br /><br /><strong style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11.199999809265137px; line-height: normal; text-align: center;">Also see: </strong><a class="toclink active" style="font-size: 11px; line-height: 1.3em;" href="/babbages-bag/23-turing-machines.html">What is a Turing Machine?</a> and </h4> 858<p><a style="line-height: 1.3em;" href="/programming/theory/4315-the-programmers-guide-to-the-transfinite.html">The Programmer's Guide To The Transfinite</a></p> 859<h4 style="font-size: 12px;">August 2016</h4> 860<p><strong>Designated Drivers</strong></p> 861<p><a style="text-align: left; line-height: 1.3em;" href="https://xkcd.com/589/" target="_blank"><img title="Calling a cab means cutting into beer money." src="//imgs.xkcd.com/comics/designated_drivers.png" alt="Designated Drivers" width="400" height="137" /></a></p> 862<p>Do we really need proof that programmers see the deeper problems in everything they try to do. After all we KNOW that it is impossible to create a satnav because the traveling salesman problem is NP complete! </p> 863<p> </p> 864<p><strong>Regex Golf</strong></p> 865<p><img title="/bu|[rn]t|[coy]e|[mtg]a|j|iso|n[hl]|[ae]d|lev|sh|[lnd]i|[po]o|ls/ matches the last names of elected US presidents but not their opponents." src="//imgs.xkcd.com/comics/regex_golf.png" alt="Regex Golf" width="400" height="147" /></p> 866<p>All problems can be solved automatically by an algorithm. Including the problem of solving all problems automatically by an algorithm. Including solving the problem of solving the problem of solving all........</p> 867<p><strong>Proof</strong></p> 868<p><img style="display: block; margin-left: auto; margin-right: auto;" title="The prosecution calls Gottfried Leibniz." src="//imgs.xkcd.com/comics/proof.png" alt="Proof" width="200" height="220" /></p> 869<p>Programming is like this. Most of our proofs only <strong style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: normal; text-align: center;">seem</strong> to be proofs and we are still waiting for our Leibniz. The only way we can prove that the arrow does make it from A to B is to build a bow. </p> 870<p><strong>Wisdom of the Ancients</strong></p> 871<p><img style="display: block; margin-left: auto; margin-right: auto;" title="All long help threads should have a sticky globally-editable post at the top saying 'DEAR PEOPLE FROM THE FUTURE: Here's what we've figured out so far ...'" src="//imgs.xkcd.com/comics/wisdom_of_the_ancients.png" alt="Wisdom of the Ancients" width="250" height="139" /></p> 872<p> </p> 873<p style="color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px;">When this happens, and it happens a lot, don't you just wish you were working on something less esoteric and don't you just wish the ancients were just a little wiser?
873</p> 874<h4>July 2016</h4> 875<h4>Tags</h4> 876<p><img title="<A>: Like </a>this.&nbsp;" src="//imgs.xkcd.com/comics/tags.png" alt="Tags" width="300" height="38" /></p> 877<p style="color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px;">This could be a whole new line in T-shirts:</p> 878<p style="color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px;">"Q:How do you annoy a JavaScript programmer?'</p> 879<p style="color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px;">{How do you annoy a Java programmer?)</p> 880<p style="color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px;">(((((How)(do)(you))(annoy)((a)(LISP))(programmer)(?)</p> 881<p style="color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px;">'How do you annoy a C programmer'</p> 882<p style="color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px;">30HHow do you annoy a Fortran programmer?</p> 883<p style="color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px;">"You can't annoy %#@^^ a perl programmer?"</p> 884<h4>Faust 2.0 <img style="display: block; margin-left: auto; margin-right: auto;" title="The only blood these contracts are signed in is from me cutting my hand trying to open the goddamn CD case." src="//imgs.xkcd.com/comics/faust_20.png" alt="Faust 2.0" width="236" height="236" /></h4> 885<p>Let's face it - as programmers we rely on end users, is there any other type, not reading our terms and conditions. When presented with our requirements, as in Android permission, we have to be much more careful what we ask for. But they really don't read them. There have been a <a style="line-height: 15.6px;" href="https://arstechnica.co.uk/tech-policy/2016/07/nobody-reads-tos-agreements-even-ones-that-demand-first-born-as-payment/" target="_blank">few </a><a style="line-height: 15.6px;" href="https://www.theguardian.com/technology/2014/sep/29/londoners-wi-fi-security-herod-clause" target="_blank">experiments </a>where terms and conditions have requested that users give up their first born - they still clicked "ok". <br style="line-height: 15.6px;" /><a style="color: #135cae; line-height: 15.6px;" href="/news/136-open-source/4566-cartoon-the-eula-from-hell.html">Cartoon - The EULA From Hell</a></p> 886<h4>Authorization</h4> 887<h4><img style="display: block; margin-left: auto; margin-right: auto;" title="Before you say anything, no, I know not to leave my computer sitting out logged in to all my accounts. I have it set up so after a few minutes of inactivity it automatically switches to my brother's." src="//imgs.xkcd.com/comics/authorization.png" alt="Authorization" width="285" height="308" /></h4> 888<p>Security theater - it keeps many of us in work. As long as the user thinks that something is for their protection they generally will, however unwillingly, put up with it. The current best stupid security play is to disable copy and paste into password fields. So ensuring that strong passwords are a real pain to use. Ah security, it has the potential to be the best scam ever... </p> 889<p> </p> 890<h4>Logic Boat</h4> 891<p><img style="display: block; margin-left: auto; margin-right: auto;" title="Or a cabbage, for that matter. The goat makes sense. Goats are fine." src="//imgs.xkcd.com/comics/logic_boat.png" alt="Logic Boat" width="209" height="359" /></p> 892<p>Many programming problems are like this only most of the time we just don't realize that we really don't need the wolf. Just leave it on the other bank, who needs it?! Hey I think I just invented agile programming..</p> 893<p> </p> 894<p><strong>New Bug</strong></p> 895<p><img title="There's also a unicode-handling bug in the URL request library, and we're storing the passwords unsalted ... so if we salt them with emoji, we can close three issues at once!" src="//imgs.xkcd.com/comics/new_bug.png" alt="New Bug" width="400" height="163" /></p> 896<p>It is an interesting idea - lighter fuel as a solution (no pun intended) to all the worst bugs we can create. The programmer, off frame, instantly understands the severity of the problem and should be able to fix it and "<a style="line-height: 15.6px;" href="https://xkcd.com/327/" target="_blank">Little Bobby Tables</a>" in a few lines of code. Is it the embarrassment of having committed the error that really drives him to consider the lighter fuel patch? </p> 897<h4>June 2016</h4> 898<p><strong>Code Quality 2</strong></p> 899<p><img title="It's like you tried to define a formal grammar based on fragments of a raw database dump from the QuickBooks file of a company that's about to collapse in an accounting scandal." src="//imgs.xkcd.com/comics/code_quality_2.png" alt="Code Quality 2" width="400" height="385" /></p> 900<p>It is so beautiful, it's like poetry. To describe code in this way makes you yearn to actually read it. What does such inspired code really look like - I must know.... </p> 901<p> </p> 902<p><strong>Optimization</strong> <img style="display: block; margin-left: auto; margin-right: auto;" title="Premature optimization is the root of all evil, so to start this project I'd better come up with a system that can determine whether a possible optimization is premature or not." src="//imgs.xkcd.com/comics/optimization.png" alt="Optimization" width="175" height="259" /></p> 903<p style="color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px;">This is also a way to upset a programmer for the entire day, perhaps longer.</p> 904<p style="color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px;">A decision box with no alternative exit!</p> 905<h4>Python</h4> 906<p><img style="display: block; margin-left: auto; margin-right: auto;" title="I wrote 20 short programs in Python yesterday. It was wonderful. Perl, I'm leaving you." src="//imgs.xkcd.com/comics/python.png" alt="Python" width="300" height="341" /></p> 907<p> </p> 908<p>This is a cartoon that you might well get but not agree with. In fact there are two types of programmers in the world those that agree that Python gives you wings and those that think that Python really is a snake in the grass. </p> 909<p> </p> 910<p><strong>Tabletop Roleplaying</strong></p> 911<p><img style="display: block; margin-left: auto; margin-right: auto;" title="I may have also tossed one of a pair of teleportation rings into the ocean, with interesting results." src="//imgs.xkcd.com/comics/tabletop_roleplaying.png" alt="Tabletop Roleplaying" width="236" height="268" /></p> 912<p style="color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px;">Is there nothing more that separates programmers from the rest of humanity than a fascination with recursion. </p> 913<p style="color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px;">See: <strong><a href="/news/85-humour-/3726-cartoon-recursion.html">Cartoon - Recursion</a></strong></p> 914<p style="color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px;"><strong> </strong></p> 915<p><strong>PatchPatch </strong></p> 916<p><br /> <img style="display: block; margin-left: auto; margin-right: auto;" title="My optimizer uses content-aware inpainting to fill in all the wasted whitespace in the code, repeating the process until it compiles." src="//imgs.xkcd.com/comics/patch.png" alt="Patch" width="175" height="194" /></p> 917<p>It looks the same, but such a world of difference. From this one distinction comes the whole problem we have with typing - data typing not the keyboard thing. When is an image of the data the instance of that data? When you read text you are viewing an image but when you edit text you are working with something else. So don't try and patch Linux with Photoshop patch and don't edit your photos with GNU Patch.</p> 918<h4 style="font-size: 12px; line-height: 15.6px;">May 2016</h4> 919<p> </p> 920<p><strong>Is It Worth the Time?</strong></p> 921<p><img style="display: block; margin-left: auto; margin-right: auto;" title="Don't forget the time you spend finding the chart to look up what you save. And the time spent reading this reminder about the time spent. And the time trying to figure out if either of those actually make sense. Remember, every second counts toward your life total, including these right now." src="//imgs.xkcd.com/comics/is_it_worth_the_time.png" alt="Is It Worth the Time?" width="262" height="213" /></p> 922<p> </p> 923<p>This is where we all go wrong. What programming project, no matter how simple, takes 8 weeks or less? How many programs save as much as an hour a day or one day a week? Clearly programs always use up more time than they save and are inherently pointless exercises. I'm off now to sell my keyboard and take up yak shaving. </p> 924<p> </p> 925<p><strong>Puzzle</strong></p> 926<p> </p> 927<p><img style="display: block; margin-left: auto; margin-right: auto;" title="Prediction for Carlsen v. Anand: ... 25. Qb8+ Nxb8 26. Rd8# f6 27. "... dude." Qf5 28. "The game is over, dude." Qxg5 29. Rxe8 0-1 30. "Dude, your move can't be '0-1'. Don't write that down." [Black flips board]" src="//imgs.xkcd.com/comics/puzzle.png" alt="Puzzle" width="238" height="275" /></p> 928<p> </p> 929<p>Computers may acquire artificial intelligence but we humans don't always have the natural equivalent. You got to feel sorry for those AIs when they meet the stubborn "black
929is white" belief system that really does characterize the human condition. </p> 930<p> </p> 931<p><strong>Set Theory</strong> <img style="display: block; margin-left: auto; margin-right: auto;" title="Proof of Zermelo's well-ordering theorem given the Axiom of Choice: 1: Take S to be any set. 2: When I reach step three, if S hasn't managed to find a well-ordering relation for itself, I'll feed it into this wood chipper. 3: Hey, look, S is well-ordered." src="//imgs.xkcd.com/comics/set_theory.png" alt="Set Theory" width="219" height="304" /></p> 932<p>If you don't know what the axiom of choice is all about then read: <a class="latestnews" style="line-height: 1.3em;" href="/programming/theory/6156-axiom-of-choice-the-programmers-guide-.html">Axiom Of Choice - The Programmer's Guide</a>. More important is the fact we might have missed a good idea. Programming by intimidation - why don't we just take bugs out and execute them as an example to the others? Or why stop there let's execute the bad programs - oh wait that <strong style="line-height: 15.6px;">is </strong>what we do!</p> 933<h4><strong> Workflow</strong> <img style="display: block; margin-left: auto; margin-right: auto;" title="There are probably children out there holding down spacebar to stay warm in the winter! YOUR UPDATE MURDERS CHILDREN." src="//imgs.xkcd.com/comics/workflow.png" alt="Workflow" width="289" height="402" /></h4> 934<p>We live in a age when deprecation, non-backward compatibility and breaking changes are the norm when once they were exceptions. I personally blame semantic versioning. </p> 935<p> </p> 936<h4 style="font-family: Helvetica, Arial, sans-serif; font-weight: normal; line-height: 15.6px;"><strong style="line-height: 15.6px;">April 2016</strong></h4> 937<p><strong style="line-height: 15.6px;">Arcane Bullshit</strong></p> 938<p><img title="Learning arcane bullshit from the 80s can break your computer, but if you're willing to wade through arcane bullshit from programmers in the 90s and 2000s, you can break everyone else's computers, too." src="//imgs.xkcd.com/comics/arcane_bullshit.png" alt="Arcane Bullshit" width="400" height="189" /></p> 939<p>And again xkcd finds another reason to learn to program. How else are you suppose to break everything? I'm sorry but I'm busy compiling a kernel at the moment.</p> 940<p> </p> 941<p><strong style="line-height: 15.6px;">Algorithms</strong></p> 942<p><img style="line-height: 1.3em;" title="There was a schism in 2007, when a sect advocating OpenOffice created a fork of Sunday.xlsx and maintained it independently for several months. The efforts to reconcile the conflicting schedules led to the reinvention, within the cells of the spreadsheet, of modern version control." src="//imgs.xkcd.com/comics/algorithms.png" alt="Algorithms" width="400" height="112" /></p> 943<p style="color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px;"> </p> 944<p style="color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px;">When I look at this xkcd what goes through my mind is</p> 945<p style="color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px; margin-left: 30px;"><em>"my current project is to the right of the Excel spreadsheet"</em></p> 946<p style="color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px;">I <strong>know</strong> I'm not alone.</p> 947<p> </p> 948<p> </p> 949<p><strong>Alternate Currency</strong></p> 950<p><img style="display: block; margin-left: auto; margin-right: auto;" title="For the first time ever, the phrase 'I'd like to thank everyone at 4chan for making me successful and happy' is uttered." src="//imgs.xkcd.com/comics/alternate_currency.png" alt="Alternate Currency" width="280" height="225" /></p> 951<p>This xkcd used to be funny, but that was in the days before Bitcoin hit the headlines. It was recently reported that Bitcoin mining could use more electricity than Denmark by 2020 - now that is funny, but not in a good way.</p> 952<p> </p> 953<p><strong>Commented</strong></p> 954<p><img title="Your IDE's color may vary." src="//imgs.xkcd.com/comics/commented.png" alt="Commented" width="400" height="108" /></p> 955<h4 style="font-family: Helvetica, Arial, sans-serif; font-weight: normal; line-height: 15.6px;"><strong style="line-height: 15.6px;"> </strong>Why haven't more "programmerisms" made it into the vernacular? We say there's a bug even if there isn't a program involved. Why not say "commented" to indicate that something has no effect. We really do need to teach everyone to program if only for the cultural value and the effect on language. </h4> 956<h4 style="font-family: Helvetica, Arial, sans-serif; font-weight: normal; line-height: 15.6px;"><strong style="line-height: 15.6px;">March 2016</strong></h4> 957<p><strong style="line-height: 15.6px;"> </strong></p> 958<p><strong>Estimating Time</strong></p> 959<p><img style="display: block; margin-left: auto; margin-right: auto;" title="Corollary to Hofstadter's Law: Every minute you spend thinking about Hofstadter's Law is a minute you're NOT WORKING AND WILL NEVER FINISH! PAAAAAANIIIIIIC!" src="//imgs.xkcd.com/comics/estimating_time.png" alt="Estimating Time" width="400" height="183" /></p> 960<p> </p> 961<p>Before you laugh - how long did you claim the program you are working on would take to finish? Were you right? Even close? Next time you are asked just say - a program is never finished. Of course they will then ask how long for a minimal viable product...</p> 962<p> </p> 963<p><strong style="line-height: 15.6px;">Insanity</strong></p> 964<p><img style="display: block; margin-left: auto; margin-right: auto;" title="I looked up "insanity" in like 10 different dictionaries and none of them said anything like that. Neither did the DSM-4. But I'll keep looking. Maybe it's in the DSM-5!" src="//imgs.xkcd.com/comics/insanity.png" alt="Insanity" width="186" height="282" /></p> 965<p>If we don't teach everyone, and I mean everyone, to program how are they going to re
965cognize recursion when they see it in an xkcd?</p> 966<p> </p> 967<p><strong>Conditionals</strong></p> 968<p><img style="display: block; margin-left: auto; margin-right: auto;" title="'If you're done being pedantic, we should get dinner.' 'You did it again!' 'No, I didn't.'" src="//imgs.xkcd.com/comics/conditionals.png" alt="Conditionals" width="209" height="310" /></p> 969<p>Another good reason to teach everyone, and I mean everyone, to program - conditionals. We use conditionals all the time in everyday life but how many actually understand exactly what they are saying.</p> 970<p> </p> 971<p><strong>Drinking Fountains</strong></p> 972<p><img style="display: block; margin-left: auto; margin-right: auto;" title="I've always wondered whether you could drink slowly enough, and eliminate fast enough, that you just sort of peed continuously. But I'm afraid to try because I worry someone might call while I'm doing it and ask what I'm up to, and I won't be able to think of a lie." src="//imgs.xkcd.com/comics/drinking_fountains.png" alt="Drinking Fountains" width="313" height="314" /></p> 973<p>This is the real reason we need to teach programming to everyone. Algorithmic thinking brings new ways of looking at the world and deeply influences how you behave - but not necessarily in a good way...</p> 974<p> </p> 975<h4 style="font-family: Helvetica, Arial, sans-serif; font-weight: normal; line-height: 15.6px;"><strong style="line-height: 15.6px;">February 2016</strong></h4> 976<p><strong>Twitter Bot</strong></p> 977<p><img title="PYTHON FLAG ENABLE THREE LAWS" src="//imgs.xkcd.com/comics/twitter_bot.png" alt="Twitter Bot" width="400" height="143" /></p> 978<p>Let's be honest there is a part of every programmer that wants this to be true. The idea that our creation might be something more than a neat UI is a dangerous romantic myth identical to the Frankenstein story. </p> 979<p> </p> 980<p><strong>Game AIs</strong></p> 981<p><img style="display: block; margin-left: auto; margin-right: auto;" title="The top computer champion at Seven Minutes in Heaven is a Honda-built Realdoll, but to date it has been unable to outperform the human Seven Minutes in Heaven champion, Ken Jennings." src="//imgs.xkcd.com/comics/game_ais.png" alt="Game AIs" width="304" height="622" /></p> 982<p>This golden oldie from xkcd suddenly became relevant again as the news broke that a neural network beat a human expert at Go - see <a style="text-decoration: underline; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: normal;" href="/news/105-artificial-intelligence/9386-googles-ai-beats-human-professional-player-at-go.html">Google's AI Beats Human Professional Player At Go</a>. What is more interesting is to check up on what Mao, Seven Minutes in Heaven and CalvinBall are. It seems that games that involve social interaction are all we have left to ourselves..</p> 983<p> </p> 984<p><strong>XKCD Stack</strong></p> 985<p><img style="display: block; margin-left: auto; margin-right: auto;" title="This site requires Sun Java 6.0.0.1 (32-bit) or higher. You have Macromedia Java 7.3.8.1¾ (48-bit). Click here [link to java.com main page] to download an installer which will run fine but not really change anything." src="//imgs.xkcd.com/comics/xkcd_stack.png" alt="XKCD Stack" width="224" height="498" /></p> 986<p>Once, not so long ago, programming was about learning a language and some algorithms and then getting on with it. Today we have to negotiate the "stack" and not just one. Technology stacks have grown to become a big problem. Picking one is tough, learning it is tougher and having to give it up for the next fashionable stack is even tougher. </p> 987<p> </p> 988<p><strong>Backslashes</strong></p> 989<p><img style="display: block; margin-left: auto; margin-right: auto;" title="I searched my .bash_history for the line with the highest ratio of special characters to regular alphanumeric characters, and the winner was: cat out.txt | grep -o "\[[(].*\[])][^)]]*$" ... I have no memory of this and no idea what I was trying to do, but I sure hope it worked." src="//imgs.xkcd.com/comics/backslashes.png" alt="Backslashes" width="400" height="145" /></p> 990<p>If this joke escapes you (pun intended) then the chances are that you are not a programmer but you could be a backslash... </p> 991<p> </p> 992<p><strong>In Case of Emergency</strong></p> 993<p><img style="display: block; margin-left: auto; margin-right: auto;" title="I keep first aid kits in those emergency lockers. Sure, it's expensive to have them installed in the wall, but at least for those ones there's no need to pay extra for safety glass." src="//imgs.xkcd.com/comics/in_case_of_emergency.png" alt="In Case of Emergency" /></p> 994<p>A computer is also a machine for making work. Thank goodness.</p> 995<h4 style="font-family: Helvetica, Arial, sans-serif; font-weight: normal; line-height: 15.6px;"><strong style="line-height: 15.6px;">January 2016</strong></h4> 996<p><strong style="line-height: 15.6px;"> </strong></p> 997<p><strong>All Adobe Updates</strong></p> 998<p><img style="display: block; margin-left: auto; margin-right: auto;
998" title="ALERT: Some pending mandatory software updates require version 21.1.2 of the Oracle/Sun Java(tm) JDK(tm) Update Manager Runtime Environment Meta-Updater, which is not available for your platform." src="//imgs.xkcd.com/comics/all_adobe_updates.png" alt="All Adobe Updates" width="164" height="256" /></p> 999<p>And I thought it was just me who got worried when a package manager needed to be updated. I guess it all goes back to the barber paradox - who shaves the barber?</p> 1000<p> </p> 1001<p><strong>Tools</strong></p> 1002<p><img title="I make tools for managing job-hunting sites for people who make tools for managing job-hunting sites for people who make tools for ..." src="//imgs.xkcd.com/comics/tools.png" alt="Tools" width="400" height="161" /></p> 1003<p>This is no joke! Can you remember the days when you just sat down and wrote a program? No dependencies, no build server, no source control, no make - no tools! Innocent days before the recursion set in. </p> 1004<p> </p> 1005<p><strong style="line-height: 15.6px;">Purity</strong></p> 1006<p><img style="line-height: 1.3em;" title="On the other hand, physicists like to say physics is to math as sex is to masturbation." src="//imgs.xkcd.com/comics/purity.png" alt="Purity" width="400" height="167" /></p> 1007<p>Mathematicians - a breed apart. You can't argue with that, but where do computer scientists fit in, and programmers? Are they the same thing? My guess is that programming is applied computer science, which is applied mathematics.</p> 1008<h4 style="width: 300.667px; text-align: left;">Compiling </h4> 1009<p> </p> 1010<p><img style="display: block; margin-left: auto; margin-right: auto;" title="'Are you stealing those LCDs?' 'Yeah, but I'm doing it while my code compiles.'" src="//imgs.xkcd.com/comics/compiling.png" alt="Compiling" width="262" height="229" /></p> 1011<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: normal;">It used to be worse but not much.</p> 1012<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: normal;">I once knew a programmer who used compile time to learn foreign languages and I don't mean the computer kind. He ended up fluent in so many he lost count.</p> 1013<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: normal;">A wish for 2016 - the death of compile time.</p> 1014<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: normal;"><a href="/news/85-humour-/3984-cartoon-why-compile-time-play-time.html">Cartoon - Why Compile Time == Play Time?</a></p> 1015<p> </p> 1016<p><strong style="line-height: 15.6px;">December 2015</strong></p> 1017<p><strong style="line-height: 15.6px;"> </strong></p> 1018<p><strong style="line-height: 15.6px;">Watson Medical Algorithm</strong></p> 1019<p><img style="display: block; margin-left: auto; margin-right: auto;" title="Due to a minor glitch, 'discharge patient' does not cause the algorithm to exit, but instead leads back to 'hunt down and capture patient'." src="//imgs.xkcd.com/comics/watson_medical_algorithm.png" alt="Watson Medical Algorithm" width="400" height="336" /></p> 1020<p>The horror of AI. It really doesn't matter if it works in a completely rational way this is how any right thinking patient or potential patient thinks it might work. </p> 1021<p> </p> 1022<p><strong style="line-height: 15.6px;">The Three Laws of Robotics</strong></p> 1023<p><img style="display: block; margin-left: auto; margin-right: auto;" title="In ordering #5, self-driving cars will happily drive you around, but if you tell them to drive to a car dealership, they just lock the doors and politely ask how long humans take to starve to death." src="//imgs.xkcd.com/comics/the_three_laws_of_robotics.png" alt="The Three Laws of Robotics" width="300" height="275" /></p> 1024<p>Its is obvious that programming isn't commutative, it matters what order you write things in, but who would have guessed that science fiction and perhaps writing in general wasn't? </p> 1025<p> </p> 1026<p> </p> 1027<p> </p> 1028<p><strong>Flowchart</strong></p> 1029<p><img style="display: block; margin-left: auto; margin-right: auto;" title="The way out is to use the marker you have to add a box that says 'get a marker' to the line between you and 'start', then add a 'no' line from the trap box to 'end'." src="//imgs.xkcd.com/comics/flowchart.png" alt="Flowchart" width="180" height="201" /></p> 1030<p>Let us hope that this year's Computer Science Education week isn't booby trapped with this sort of flow chart. Everyone knows that only IoT and hardware types have any use at all for an infinite loop. Perhaps we should ban them. </p> 1031<h4 style="font-family: Helvetica, Arial, sans-serif; font-weight: normal; line-height: 15.6px;"><strong style="line-height: 15.6px;">November 2015</strong></h4> 1032<p><strong style="line-height: 15.6px;"> </strong></p> 1033<p><strong style="line-height: 15.6px;">Pressures </strong></p> 1034<p><img style="display: block; margin-left: auto; margin-right: auto;" title="Everyone's caught by surprise when a theory of quantum gravity is developed by a sound technician
1034wearing patent leather shoes while editing Clerks II." src="//imgs.xkcd.com/comics/pressures.png" alt="Pressures" width="150" height="267" /></p> 1035<p>It is 100 years since an ex-Swiss patent clerk invented a theory that changed the way we view the entire universe. They don't come much bigger than that - and, yes it has to be admitted, patent clerks have had a lot to live up to. If only they would get software patents right.</p> 1036<p> </p> 1037<p><strong style="line-height: 15.6px;">DNA</strong></p> 1038<p><img title="Researchers just found the gene responsible for mistakenly thinking we've found the gene for specific things. It's the region between the start and the end of every chromosome, plus a few segments in our mitochondria." src="//imgs.xkcd.com/comics/dna.png" alt="DNA" width="400" height="184" /></p> 1039<p>Most programmers are shocked at what they see when listing the source of Google.com. It is such a minimal page who would have guessed that so much code was needed. Turning the tables, who would have guessed that so little code was needed for a human!</p> 1040<p> </p> 1041<p><strong>NP-Complete</strong></p> 1042<p><img style="display: block; margin-left: auto; margin-right: auto;" title="General solutions get you a 50% tip." src="//imgs.xkcd.com/comics/np_complete.png" alt="NP-Complete" width="400" height="259" /></p> 1043<p>In honour of the <a style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: normal;" href="/news/112-theory/9144-the-computer-science-breakthrough-of-the-decade.html" target="_self">The Computer Science Breakthrough Of The Decade</a> we rerun every complexity theorist's favourite xkcd cartoon. Of course everyone knows that the decision problem - can we find a set of appetizers that gets within 5 cents of $15 - is NP-complete, but the optimization problem, which set of appetizers gets closest to $15, is NP-hard. For more enlightenment see: <a style="font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px;" href="/news/85-humour-/3901-cartoon-np-complete.html">NP-Complete - Why So Hard?</a></p> 1044<p> </p> 1045<p><strong>Researcher Translation</strong></p> 1046<p><img style="display: block; margin-left: auto; margin-right: auto;" title="A technology that is '20 years away' will be 20 years away indefinitely." src="//imgs.xkcd.com/comics/researcher_translation.png" alt="Researcher Translation" width="280" height="238" /></p> 1047<p>Hands up everyone who thought of virtual reality while reading this. So what is your "never to be" but "must have" technology and don't say hoverboard or flying car? </p> 1048<p> </p> 1049<p><strong>GIT</strong></p> 1050<p><img style="display: block; margin-left: auto; margin-right: auto;" title="If that doesn't fix it, git.txt contains the phone number of a friend of mine who understands git. Just wait through a few minutes of 'It's really pretty simple, just think of branches as...' and eventually you'll learn the commands that will fix everything." src="//imgs.xkcd.com/comics/git.png" alt="Git" width="203" height="295" /></p> 1051<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: normal;">And GIT isn't alone in this under-use of facilities. If you give a man/woman a hammer then they will use it to hammer in nails. If you give instead a sonic screwdriver - a large proportion will still use it to bang in nails and without switching it on! </p> 1052<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: normal;"><a href="/news/105-artificial-intelligence/4038-cartoon-the-turing-test.html">Git and GitHub LiveLessons</a></p> 1053<p style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: normal;"> </p> 1054<p><strong>October 2015</strong></p> 1055<h4>Kilobyte</h4> 1056<p><img style="display: block; margin-left: auto; margin-right: auto;" title="I would take 'kibibyte' more seriously if it didn't sound so much like 'Kibbles N Bits'." src="https://imgs.xkcd.com/comics/kilobyte.png" alt="Kilobyte" width="300" /></p> 1057<p>In these days of Terabyte disc drives it hardly seems worth arguing over the difference between 1024 and 1000 bytes - but it does make a difference. <br style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: normal;" />To find out how much see: <a style="font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 15.6px;" href="/news/85-humour-/4350-cartoon-whats-up-with-the-kb.html">What's Up With The Kb?</a></p> 1058<p> </p> 1059<p> </p> 1060<p><strong>Lisp;</strong></p> 1061<p><img style="display: block;" title="We lost the documentation on quantum mechanics. You'll have to decode the regexes yourself." src="https://img
1061s.xkcd.com/comics/lisp.jpg" alt="Lisp" width="400" /></p> 1062<p>One of the real mysteries of the universe is - if Lisp is so impressive why isn't it the language we all use instead of the language we all admire from afar?<a style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: normal;" href="/news/105-artificial-intelligence/4038-cartoon-the-turing-test.html"> </a></p> 1063<p> </p> 1064<p><strong>Hardware Reductionism</strong></p> 1065<p><img style="display: block; margin-left: auto; margin-right: auto;" title="My MRI research shows a clear correlation between the size of the parietal lobe--the part of the brain that handles spatial reasoning--and enjoyment of 3D Doritos®." src="//imgs.xkcd.com/comics/hardware_reductionism.png" alt="Hardware Reductionism" width="210" height="261" /></p> 1066<p style="text-align: left;">... but people do! <br />There are so many world views of hardware and software that don't correspond with what we see as reality that communication becomes difficult. "Why did the wordprocessor just lose my story?" "This is a nice computer it never crashes." </p> 1067<p><a style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: normal; text-align: -webkit-center;" href="/news/105-artificial-intelligence/4038-cartoon-the-turing-test.html"> </a></p> 1068<p> </p> 1069<p><strong>Dyslexics</strong></p> 1070<p><img style="display: block; margin-left: auto; margin-right: auto;" title="And of course I had to redo this like three times because I kept writing 'UNTIE'; I kept doing 'doing 'doing it wrong' wrong' wrong." src="//imgs.xkcd.com/comics/dyslexics.png" alt="Dyslexics" width="223" height="259" /></p> 1071<p style="text-align: left;">Lots of programmers, well a few at least, are dyslexic and don't ask how that works unless you want a long story. October is international Dyslexia Awareness Month and 5th to 11th is Dyslexia Awareness week in the UK. So if you know a dyslexic remember to spell a word or two for them - correctly, no cheating!</p> 1072<p style="text-align: left;"><a style="font-family: Arial, Helvetica, sans-serif; font-size: 1em; line-height: 1.3em;" href="/professional-programmer/i-programmer/799-ko-rules-dyslexia-and-programming.html">Dyslexia and Programming</a></p> 1073<p style="text-align: left;"><a href="https://eida.org/" target="_blank">Dyslexia Awareness Month Kicks Off</a></p> 1074<h4>September 2015</h4> 1075<p> </p> 1076<p><strong>Turing Test</strong></p> 1077<p><img id="ms__id383" style="display: block; margin-left: auto; margin-right: auto;" title="Hit Turing right in the test-ees." src="//imgs.xkcd.com/comics/turing_test.png" alt="Turing Test" width="222" height="273" /></p> 1078<p>The big problem with the Turing Test is not what is inside the box but that what is inside the box knows it is taking part in the Turing Test. This converts what was a perfectly reasonable scientific test into an adversarial contest more like a trial where dirty tricks and cheating are perfectly ok. <a style="line-height: 1.3em;" href="/news/105-artificial-intelligence/4038-cartoon-the-turing-test.html">The Turing Test</a></p> 1079<p> </p> 1080<p><strong>Tech Loops</strong></p> 1081<p><img style="display: block; margin-left: auto; margin-right: auto;" title="And when I think about it, a lot of "things I want to do" are just learning about and discussing new tools for tinkering with the chain." src="//imgs.xkcd.com/comics/tech_loops.png" alt="Tech Loops" width="300" height="266" /></p> 1082<p>We built this. We built this! <br style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: normal;" />Did we really mean to? </p> 1083<p><strong> </strong></p> 1084<p><strong>Compiler Complaint</strong></p> 1085<p><img title="Checking whether build environment is sane ... build environment is grinning and holding a spatula. Guess not." src="//imgs.xkcd.com/comics/compiler_complaint.png" alt="Compiler Complaint" width="400" height="108" /></p> 1086<p>It can't be long now before there is no one left who understands this joke. Segfault? Pointers? If only to protect the feelings of the compiler.</p> 1087<p> </p> 1088<p> </p> 1089<p><strong>
1089Tech Support Cheat Sheet</strong></p> 1090<p><img style="display: block; margin-left: auto; margin-right: auto;" title="'Hey Megan, it's your father. How do I print out a flowchart?'" src="//imgs.xkcd.com/comics/tech_support_cheat_sheet.png" alt="Tech Support Cheat Sheet" width="400" height="449" /></p> 1091<p>Because it's "back to school" in many parts of the world it seems appropriate to remind everyone of the basic flowchart needed to get by. Anyone know how to print out a flowchart? In fact what is a flowchart?</p> 1092<p> </p> 1093<h4>August 2015</h4> 1094<p> </p> 1095<p><strong>Engineer Syllogism</strong></p> 1096<p><img title="The less common, even worse outcome: "3: [everyone in the financial system] WOW, where did all my money just go?"" src="//imgs.xkcd.com/comics/engineer_syllogism.png" alt="Engineer Syllogism" width="400" height="156" /></p> 1097<p>It could just as well be "programmer syllogism". How many times have you thought, or encountered someone who thought that making money on the stock market was just a matter of the right algorithm? Unless of course, wait, yes that's it... </p> 1098<p> </p> 1099<p><strong>Progeny</strong></p> 1100<p><img style="display: block; margin-left: auto; margin-right: auto;" title="I tell my children 'it's not whether you win or lose, it's how you play the game.' I'm trying to take the edge off their competitive drive to ensure that I can always beat them." src="//imgs.xkcd.com/comics/progeny.png" alt="Progeny" width="198" height="259" /></p> 1101<p>Until the day, that is, that our AI progeny learn how to teach. Teaching us is one thing, but when they move on to teach each other then...</p> 1102<p> </p> 1103<p><strong>Simple</strong></p> 1104<p><img style="display: block; margin-left: auto; margin-right: auto;" title="Actually, I think if all higher math professors had to write for the Simple English Wikipedia for a year, we'd be in much better shape academically." src="//imgs.xkcd.com/comics/simple.png" alt="Simple" width="300" height="330" /></p> 1105<p style="text-align: left;">Personally I think that all functional programmers should be restricted to the vocabulary of simple.wikipedia.org - yes I'm looking at you monads, currying, partial evaluation, trampolining, algebraic type systems, Curry-Howard correspondence ...</p> 1106<p style="text-align: left;">And the good news is that Randall Munroe, author of xkcd has a new book - <a href="https://www.amazon.com/gp/product/0544668251/ref=as_li_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=0544668251&linkCode=as2&tag=iprog-20&linkId=3ZQLVF5ORNRZF55N">Thing Explainer: Complicated Stuff in Simple Words</a><img style="border: none !important; margin: 0px !important;" src="https://ir-na.amazon-adsystem.com/e/ir?t=iprog-20&l=as2&o=1&a=0544668251" alt="" width="1" height="1" border="0" /> which uses only the ten hundred most common words. </p> 1107<p> </p> 1108<p> </p> 1109<p><strong>Vet</strong></p> 1110<p><img title="It's probably for the best. Since Roombas are native to North America, it's illegal for Americans to keep them in their houses under the Migratory Bird Treaty Act." src="//imgs.xkcd.com/comics/vet.png" alt="Vet" width="400" height="144" /></p> 1111<p>I love my Roomba and I don't beat it up when it repeatedly head butts a table full of glasses, not even when it managed to knock one off and break it. I know it doesn't mean it because it makes up for it by cleaning up. Now I'm conflicted - do I release it into the wild? The hover over text suggests that I have to, but I really don't want to.</p> 1112<p> </p> 1113<p><strong>Ozymandias</strong></p> 1114<p><img title="And on the pedestal these words appear: "And on the pedestal these words appear: "And on the pedestal these words appear: "And ..." src="//imgs.xkcd.com/comics/ozymandias.png" alt="Ozymandias" width="400" height="248" /></p> 1115<p>The question, sorry cartoon, for this week is to work out if this really is recursion or is it simple iteration? If you find this too easy what about the hover over text? Extra credit for explaining Ozymandias and the connection to the first programmer and the first monster. <em style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: normal;">Join in the debate <a style="line-height: 1.3em;" href="/comments.html" target="_self">here</a></em>.</p> 1116<p> </p> 1117<p><strong>July 2015</strong></p> 1118<p><strong> </strong></p> 1119<p><strong>Cautionary</strong></p> 1120<p><img id="ms__id335" title="This really is a true story, and she doesn't know I put it in my comic because her wifi hasn't worked for weeks." src="//imgs.xkcd.com/comics/cautionary.png" alt="Cautionary" width="400" height="167" /></p> 1121<p>Can there be a bigger way to waste time than trying to get some missing Linux facility to work? It starts out so easy with a distro on standard hardware and a package manager but it ends in a time sapping session with gcc and make - and there are all those dependencies to get right...no seriously, there should be a health warning on the box.</p> 1122<p> </p> 1123<p><strong>Donald Knuth</strong></p> 1124<p><img title="His books were kinda intimidating; rappelling down through his skylight seemed like the best option." src="//imgs.xkcd.com/comics/donald_knuth.png" alt="Donald Knuth" width="400" height="212" /></p> 1125<p>This classic xkcd cartoon is another celebration of Donald Knuth's work - see <a style="font-family: Arial, Helvetica, sans-serif; font-size: 1em; line-height: 1.3em;" href="/history/people/98-donald-ervin-knuth.html">Donald Knuth & The Art of Computer Programming</a>. So why do we count from zero? And is it ever good to count from one? I can think of zero reasons for it...</p> 1126<p> </p> 1127<p><strong>Success</strong></p> 1128<p><img id="ms__id389" title="40% of OpenBSD installs lead to shark attacks. It's their only standing security issue." src="//imgs.xkcd.com/comics/success.png" alt="Success" width="400" height="688" /></p> 1129<p>We have all been there - the deep water with the sharks. It doesn't matter what the system is. The easy change that you didn't really have to make usually goe
1129s horribly wrong. What I don't understand is why there is always a moment when you suddenly realize the original system could never have worked in the first place...</p> 1130<p> </p> 1131<p><strong>Travelling Salesman Problem </strong></p> 1132<p><img style="display: block; margin-left: auto; margin-right: auto;" title="What's the complexity class of the best linear programming cutting-plane techniques? I couldn't find it anywhere. Man, the Garfield guy doesn't have these problems ..." src="//imgs.xkcd.com/comics/travelling_salesman_problem.png" alt="Travelling Salesman Problem" width="400" height="177" /></p> 1133<p>Sometimes theoretical results just don't count in the real world. Remember when someone pointed out that route planning was NP hard? So no need to even try to create a satnav then...</p> 1134<p> </p> 1135<p> </p> 1136<p><strong>June 2015</strong></p> 1137<p><strong>Scheduling Conflict</strong></p> 1138<p><img style="display: block; margin-left: auto; margin-right: auto;" title="Neither a spokesperson for the organization nor the current world champion could be reached for comment." src="//imgs.xkcd.com/comics/scheduling_conflict.png" alt="Scheduling Conflict" /></p> 1139<p>Recursion. We live with it but there is still something extra fascinating about physical recursion. Look between parallel mirrors, point a video camera at a screen and, of course, organize a conference about organizing a conference. In this xkcd cartoon we see what happens when you slip a negation into the recursive loop.</p> 1140<p> </p> 1141<p><strong>Headache</strong></p> 1142<p><img id="ms__id379" style="display: block; margin-left: auto; margin-right: auto;" title="I'm only willing to visit placid lakes, salt flats, and painting exhibits until the world's 3D technology improves." src="//imgs.xkcd.com/comics/headache.png" alt="Headache" width="203" height="247" /></p> 1143<p>This weeks xkcd classic points out that virtual reality, reality reality - its all the same really. A construct of the computational processes that go on inside our heads. You gotta admit it's a great excuse!</p> 1144<p> </p> 1145<p><strong>Types</strong></p> 1146<p><img style="display: block; margin-left: auto; margin-right: auto;" title="colors.rgb("blue") yields "#0000FF". colors.rgb("yellowish blue") yields NaN. colors.sort() yields "rainbow"" src="//imgs.xkcd.com/comics/types.png" alt="Types" width="300" height="823" /></p> 1147<p>It all goes to prove that type conversions are in the eye of the beholder. Some of these seem entirely reasonable to me - but I'm not saying which ones!</p> 1148<p> </p> 1149<p><strong>Pong</strong></p> 1150<p><img title="Following this, the pong paddle went on a mission to destroy Atari headquarters and, due to a mixup, found himself inside the game The Matrix Reloaded. Boy, was THAT ever hard to explain to him." src="//imgs.xkcd.com/comics/pong.png" alt="Pong" width="400" height="333" /></p> 1151<p>It's fun but it's more like a detector for AI experts. The non-AI expert laughs and then worries about the possible coming robot uprising. The AI expert laughs...</p> 1152<p> </p> 1153<p> </p> 1154<p><strong>May 2015</strong></p> 1155<p><strong>Automatic Doors </strong></p> 1156<p><img style="display: block; margin-left: auto; margin-right: auto;" title="I hope no automatic doors I know read this. I would be so embarrassed." src="//imgs.xkcd.com/comics/automatic_doors.png" alt="Automatic Doors" width="300" height="308" /></p> 1157<p> </p> 1158<p>Programmers often have "mechanical sympathy" - well as long as the mechanism is code. In general humans are kind to machines, mostly, and don't mind lending them their feelings and intelligence. We have to hope that in the near future that machines learn to do the same.</p> 1159<p> </p> 1160<p> </p> 1161<p><strong>Movie Seating</strong></p> 1162<p><img style="display: block; margin-left: auto; margin-right: auto;" title="It's like the traveling salesman problem, but the endpoints are different and you can't ask your friends for help because they're sitting three seats down." src="//imgs.xkcd.com/comics/movie_seating.png" alt="Movie Seating" width="300" height="343" /></p> 1163<p>Why has no one created an app for this? Or perhaps they have and I just haven't sat next to the person who knows about it... </p> 1164<p> </p> 1165<p> </p> 1166<p><strong>Exploits of a Mom</strong></p> 1167<p><img title="Her daughter is named Help I'm trapped in a driver's license factory." src="//imgs.xkcd.com/comics/exploits_of_a_mom.png" alt="Exploits of a Mom" width="400" height="123" /></p> 1168<p>This is a classic xkcd and it is featured here just to make sure you know it. And have we learned to sanitize our database inputs?</p> 1169<p> </p> 1170<p><strong style="line-height: 15.5999994277954px;">TornadoGuard</strong></p> 1171<p><img id="ms__id284" style="display: block; margin-left: auto; margin-right: auto;" title="The bug report was marked 'could not reproduce'." src="//imgs.xkcd.com/comics/tornadoguard.png" alt="TornadoGuard" width="174" height="334" /></p> 1172<p>My guess is that you can think of more reasons why average star ratings are bad but spare a thought for their use with system critical apps. A single valid negative may be the only rating you need to see. And the response "could not reproduce" isn't really a defence, is it?</p> 1173<p><strong> </strong></p> 1174<p><strong>April 2015</strong></p> 1175<p> </p> 1176<p><strong>Escape Artist</strong></p> 1177<p><img style="display: block; margin-left: auto; margin-right: auto;" title="Easier to escape: n-layered nested quotes or an iron maiden?" src="//imgs.xkcd.com/comics/escape_artist.png" alt="Escape Artist" width="400" height="108" /></p> 1178<p>There are many jokes that claim to be \"programmer\" jokes but this is the only one I know that guarantees you won't be amused if you are a non-programmer. So remember, you escape \"handcuffs\" with backslashes - as always.</p> 1179<p><strong> </strong></p> 1180<p><strong>GOTO</strong></p> 1181<p><img title="Neal Stephenson thinks it's cute to name his labels 'dengo'" src="//imgs.xkcd.com/comics/goto.png" alt="goto" width="400" height="108" /></p> 1182<p>Well the GOTO has to be considered harmful, but did <a style="line-height: 1.3em;" href="/history/people/144-dijkstra.html" target="_self">Dijkstra</a> really have a velociraptor in mind when he made his comment. Can it really be that some of us still don't understand what we are trying to do? <br style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: normal;" />See: <a class="toclink active" style="line-height: 1.3em;" href="/programming/theory/1332-goto-spaghetti-and-velociraptor.html">The Goto, Spaghetti and the Velociraptor</a></p> 1183<p> </p> 1184<p><strong>Code Quality</strong></p> 1185<p><img title="I honestly didn't think you could even USE emoji in variable names. Or that there were so many different crying ones." src="//imgs.xkcd.com/comics/code_quality.png" alt="Code Quality" width="400" height="140" /></p> 1186<p>We were all beginners once, but we also all, well nearly all, went through that dangerous time when we thought we had learned to program and there was nothing, nothing at all, left to learn. <br style="color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 11px; line-height: normal;" />How wrong we can be and how sure we are right! </p> 1187<p> </p> 1188<p><strong>Operating Systems</strong> <img title="One of the survivors, poking around in the ruins with the point of a spear, uncovers a singed photo of Richard Stallman. They stare in silence. "This," one of them finally says, "This is a man who BELIEVED in something."" src="//imgs.xkcd.com/comics/operating_systems.png" alt="Operating Systems" width="400" height="103" /></p> 1189<p>If you don't get this joke then it is likely that you don't call Linux GNU/Linux and have no idea what the HURD kernel is. If you do then you will realize that 2060 is a hopelessly optimistic date for the completion of GNU/HURD.</p> 1190<p>See: <a style="line-height: 1.3em;" href="/news/82-heritage/8403-gnu-manifesto-published-thirty-years-ago.html">GNU Manifesto Published Thirty Years Ago</a></p> 1191<p> </p> 1192<p><strong>March 2015</strong></p> 1193<p><strong> </strong></p> 1194<p><strong>Null Hypothesis</strong></p> 1195<p><strong> <img style="display: block; margin-left: auto; margin-right: auto;" title="Hell, my eighth grade science class managed to conclusively reject it just based on a classroom experiment. It's pretty sad to hear about million-dollar research teams who can't even manage that." src="//imgs.xkcd.com/comics/null_hypothesis.png" alt="Null Hypothesis" width="220" height="331" /></strong></p> 1196<p>Ah, the perils of big data or data science or whatever statistics is called now. What always depressed me was that it was the "null" hypothesis. I was always cheering on the alternative hypothesis - well it has to be good if it's "alternative", right?</p> 1197<p> </p> 1198<p><strong>Pointers</strong></p> 1199<p><img style="display: block; margin-left: auto; margin-right: auto;
1199" title="Every computer, at the unreachable memory address 0x-1, stores a secret. I found it, and it is that all humans ar-- SEGMENTATION FAULT." src="//imgs.xkcd.com/comics/pointers.png" alt="Pointers" width="272" height="226" /></p> 1200<p>If you know what pointers are and can read the list of numbers then you are probably a C/C++ programmer. A word of advice - don't use "pointers" in your sense in natural or programming languages.</p> 1201<p> </p> 1202<p><strong>1 to 10</strong></p> 1203<p><img style="display: block; margin-left: auto; margin-right: auto;" title="If you get an 11/100 on a CS test, but you claim it should be counted as a 'C', they'll probably decide you deserve the upgrade." src="https://imgs.xkcd.com/comics/1_to_10.png" alt="1 to 10" width="198" height="303" /></p> 1204<p>One day when we have a truly high level language, or perhaps lots of them, programmers will not remember what binary is and this will not set us apart any more. Something else will - but not binary.</p> 1205<p> </p> 1206<p><strong>Hard Reboot</strong></p> 1207<p><img title="Googling inevitably reveals that my problem is caused by a known bug triggered by doing [the exact combination of things I want to do]. I can fix it, or wait a few years until I don't want that combination of things anymore, using the kitchen timer until then." src="https://imgs.xkcd.com/comics/hard_reboot.png" alt="Hard Reboot" width="400" height="195" /></p> 1208<p>This week's xkcd cartoon will probably irritate every programmer. The idea that there is a bug in the code is something that bores into your brain and finding a non-programming fix is just not satisfying. Even if you accept that the timer reboot is a quick fix I bet you would start thinking up a shell script to do the same thing without the hardware. </p> 1209<p> </p> 1210<p><strong>Insurance</strong></p> 1211<p><img style="display: block; margin-left: auto; margin-right: auto;" title="LIFEHACKS: You can just take all the luggage off the airport conveyer belt and leave with it. They don't check that it's yours at the door!" src="https://imgs.xkcd.com/comics/insurance.png" alt="Insurance" width="400" height="156" /></p> 1212<p>This week's xkcd cartoon states something very obvious - programmers are different. What doesn't ring true is that a non-programmer would have figured it out.</p> 1213<p><strong> </strong></p> 1214<p><strong>Microsoft</strong></p> 1215<p><img style="display: block; margin-left: auto; margin-right: auto;" title="Facebook, Apple, and Google all got away with their monopolist power grabs because they don't have any 'S's in their names for critics to snarkily replace with '$'s." src="https://imgs.xkcd.com/comics/microsoft.png" alt="Microsoft" width="243" height="321" /></p> 1216<p>This week's xkcd cartoon reminds us of a time when the problem was clear and we fixed it - or did we? Even if we did. it is a well known law that commerce abhors a vacuum. </p> 1217<p> </p> 1218<p><strong>February 2015</strong></p> 1219<p><strong> </strong></p> 1220<p><strong>Flowcharts</strong></p> 1221<p><img style="display: block; margin-left: auto; margin-right: auto;" title="Whoa, and if you overlay a Fibonacci spiral on a golden spiral it matches up almost perfectly!" src="https://imgs.xkcd.com/comics/flowcharts.png" alt="Flowcharts" width="400" height="419" /></p> 1222<p>This week's xkcd cartoon mixes the abstract flowchart with real world things. If only we could figure out how to do this... oh wait, we have, it's called a computer.</p> 1223<p> </p> 1224<p> </p> 1225<p><strong>With Apologies to Robert Frost/strong></strong></p> 1226<p><img style="display: block; margin-left: auto; margin-right: auto;" title="Some say the world will end in fire; some say in segfaults." src="https://imgs.xkcd.com/comics/with_apologies_to_robert_frost.png" alt="With Apologies to Robert Frost" width="292" height="244" /></p> 1227<p>This week's xkcd cartoon reveals that programming really is behind everything and in this case we do mean everything, life, the universe. </p> 1228<p> </p> 1229<p><strong>API</strong></p> 1230<p><img style="display: block; margin-left: auto; margin-right: auto;
1230" title="ACCESS LIMITS: Clients may maintain connections to the server for no more than 86,400 seconds per day. If you need additional time, you may contact IERS to file a request for up to one additional second." src="https://imgs.xkcd.com/comics/api.png" alt="API" width="173" height="323" /></p> 1231<p>This week's xkcd cartoon makes fun of our tendency to make simple things seem complicated. Making up a complicated jargon obfuscates a simple protocol, makes what we do seem more impressive, but also makes it harder. In case you are wondering - yes there are 86,400 seconds in a day without a leap second.</p> 1232<p> </p> 1233<p> </p> 1234<p><strong>Troubleshooting </strong></p> 1235<p><strong> <img style="display: block; margin-left: auto; margin-right: auto;" title=""Oh, you're using their Chrome APP, not their Chrome EXTENSION. They're very similar but one handles window creation differently." is a thing I hope I can stop saying soon." src="https://imgs.xkcd.com/comics/troubleshooting.png" alt="Troubleshooting" width="182" height="334" /></strong></p> 1236<p> </p> 1237<p>This week's xkcd cartoon shows the real nature of computing. To the uninitiated, i.e. most people, it looks like magic, even if we know it really isn't. It isn't. No really, it isn't...</p> 1238<p><strong> </strong></p> 1239<p><strong>January 2015</strong></p> 1240<p><strong>Collatz Conjecture</strong></p> 1241<p><img style="display: block; margin-left: auto; margin-right: auto;" title="The Strong Collatz Conjecture states that this holds for any set of obsessively-hand-applied rules." src="https://imgs.xkcd.com/comics/collatz_conjecture.png" alt="Collatz Conjecture" width="237" height="344" /></p> 1242<p> </p> 1243<p> </p> 1244<p style="text-align: left;"><strong>Location Sharing </strong></p> 1245<p style="text-align: left;"><img style="display: block; margin-left: auto; margin-right: auto;" title="Our phones must have great angular momentum sensors because the compasses really suck." src="https://imgs.xkcd.com/comics/location_sharing.png" alt="Location Sharing" width="300" height="143" /></p> 1246<p style="text-align: left;">This week's xkcd cartoon is a frightening portent of quantum computing to come. Perhaps the uncertainty principle really is at the core of computing and not just an excuse for knowing the cause of a bug, but not its location. </p> 1247<p> </p> 1248<p><strong>The Search</strong></p> 1249<p><img style="display: block; margin-left: auto; margin-right: auto;" title="I am so excited about the Kepler mission. This is the second most important thing our species has ever done, right behind inventing the concept of delivery pizza." src="https://imgs.xkcd.com/comics/the_search.png" alt="The Search" width="245" height="199" /></p> 1250<p>This week's xkcd cartoon reminds us that we might be looking in the wrong place. Data from Kepler now suggests that there might be as many as 40 billion earth like planets in our galaxy alone. So once again - where is everyone?</p> 1251<p> </p> 1252<p><strong>Workaround </strong></p> 1253<p><img style="display: block; margin-left: auto; margin-right: auto;" title="I once worked on a friend's dad's computer. He had the hard drive divided into six partitions, C: through J:, with a 'Documents' directory tree on each one. Each new file appeared to be saved to a partition at random. I knew enough not to ask." src="https://imgs.xkcd.com/comics/workaround.png" alt="Workaround" width="267" height="309" /></p> 1254<p>This week's xkcd cartoon is the reason everyone should learn to program - even just a little bit. Without it the complex plains of the computer savanna becomes a hunting ground for superstition and ways of working that have no basis in reality, our reality at least.</p> 1255<p><strong> </strong></p> 1256<p><strong>December 2014</strong></p> 1257<p><strong>Learning to Cook </strong></p> 1258<p> </p> 1259<p><img style="display: block; margin-left: auto; margin-right: auto;" title="And yet I never stop thinking, 'sure, these ingredients cost more than a restaurant meal, but think how many meals I'll get out of them! Especially since each one will have leftovers!'" src="https://img
1259s.xkcd.com/comics/learning_to_cook.png" alt="Learning to Cook" width="261" height="333" /></p> 1260<p>This week's xkcd cartoon makes it clear that being a programmer makes it worse when you fail at anything. Not only do you fail but the chances are that you have an algorithmic explanation of the fail.</p> 1261<p> </p> 1262<p><strong>Identity</strong></p> 1263<p><img style="display: block; margin-left: auto; margin-right: auto;" title="Not sure why I just taught everyone to flawlessly impersonate me to pretty much anyone I know. Just remember to constantly bring up how cool it is that birds are dinosaurs and you'll be set." src="https://imgs.xkcd.com/comics/identity.png" alt="Identity" width="300" height="155" /></p> 1264<p>This week's xkcd cartoon illustrates the one great characteristic of any programmer. Never solve the problem in hand. Always solve the general set of problems of the same type with the help of a good algorithm.</p> 1265<p> </p> 1266<p><strong>Documents</strong></p> 1267<p> <img style="display: block; margin-left: auto; margin-right: auto;" title="Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Copy of Untitled.doc" src="https://imgs.xkcd.com/comics/documents.png" alt="Documents" width="159" height="264" /></p> 1268<p> </p> 1269<p>This week's xkcd cartoon points out an unsolved problem - users and file systems. If you are a programmer then a hierarchical file system should be as natural as recursion but.. for users? Well they never seem to know where their files are. This is the reason mobiles don't have user oriented file systems and we all know how that works out...</p> 1270<p> </p> 1271<p><strong>Crazy Straws</strong></p> 1272<p><img style="display: block; margin-left: auto; margin-right: auto;" title="The new crowd is heavily shaped by this guy named Eric, who's basically the Paris Hilton of the amateur plastic crazy straw design world." src="https://imgs.xkcd.com/comics/crazy_straws.png" alt="Crazy Straws" width="221" height="278" /></p> 1273<p>This week's xkcd cartoon may sound like its about wierd but doesn't it sound familiar somehow? Ah, the internet allowing us to get hot under to collar about nothing much...</p> 1274<p> </p> 1275<p><strong>11th Grade</strong></p> 1276<p><img style="display: block; margin-left: auto; margin-right: auto;" title="And the ten minutes striking up a conversation with that strange kid in homeroom sometimes matters more than every other part of high school combined." src="https://imgs.xkcd.com/comics/11th_grade.png" alt="11th Grade" width="300" height="187" /></p> 1277<p> </p> 1278<p> </p> 1279<p> </p> 1280<p><strong>November 2014</strong></p> 1281<p><strong>Abstraction</strong></p> 1282<p><img style="display: block; margin-left: auto; margin-right: auto;" title="If I'm such a god, why isn't Maru *my* cat?" src="https://imgs.xkcd.com/comics/abstraction.png" alt="Abstraction" width="300" height="300" /></p> 1283<p><strong> </strong></p> 1284<p><strong>Random Number</strong></p> 1285<p><img style="display: block; margin-left: auto; margin-right: auto;" title="RFC 1149.5 specifies 4 as the standard IEEE-vetted random number." src="https://imgs.xkcd.com/comics/random_number.png" alt="Random Number" width="300" height="108" /></p> 1286<p><a class="toclink active" href="/babbages-bag/270-random-numbers.html">Inside Random Numbers</a></p> 1287<p> </p> 1288<p><strong>CD Tray FightCD Tray Fight</strong></p> 1289<p><img style="display: block; margin-left: auto; margin-right: auto;" title="This is silly, of course. The enemy will be born in the network." src="https://imgs.xkcd.com/comics/cd_tray_fight.png" alt="CD Tray Fight" width="249" height="251" /></p> 1290<p> </p> 1291<p> </p> 1292<p><strong> </strong></p> 1293<p><strong>October 2014</strong></p> 1294<p><strong style="line-height: 1.3em;">Good Code</strong></p> 1295<p><img style="display: block; margin-left: auto; margin-right: auto;" title="You can either hang out in the Android Loop or the HURD loop." src="https://img
1295s.xkcd.com/comics/good_code.png" alt="Good Code" width="268" height="409" /></p> 1296<p><strong>RPS</strong></p> 1297<p><img style="display: block; margin-left: auto; margin-right: auto;" title="It looks good, but it needs more postfixins." src="https://imgs.xkcd.com/comics/rps.png" alt="RPS" width="287" height="271" /></p> 1298<p><strong>Security</strong></p> 1299<p><img style="display: block; margin-left: auto; margin-right: auto;" title="Actual actual reality: nobody cares about his secrets. (Also, I would be hard-pressed to find that wrench for $5.)" src="https://imgs.xkcd.com/comics/security.png" alt="Security" width="323" height="197" /></p> 1300<p> </p> 1301<p><strong>Move Fast and Break Things</strong></p> 1302<p><img style="display: block; margin-left: auto; margin-right: auto;" title="I was almost fired from a job driving the hearse in funeral processions, but then the funeral home realized how much business I was creating for them." src="https://imgs.xkcd.com/comics/move_fast_and_break_things.png" alt="Move Fast and Break Things" width="173" height="463" /></p> 1303<p><strong>Tasks</strong></p> 1304<p> </p> 1305<p><strong> </strong></p> 1306<p><strong> Future Self</strong></p> 1307<p><img style="display: block; margin-left: auto; margin-right: auto;" title="Maybe I haven't been to Iceland because I'm busy dealing with YOUR crummy code." src="https://imgs.xkcd.com/comics/future_self.png" alt="Future Self" width="190" height="313" /></p> 1308<p> </p> 1309<p><strong>Watches</strong></p> 1310<p><img style="display: block; margin-left: auto; margin-right: auto;" title="Old people used to write obnoxious thinkpieces about how people these days always wear watches and are slaves to the clock, but now they've switched to writing thinkpieces about how kids these days don't appreciate the benefits of an old-fashioned watch. My position is: The word 'thinkpiece' sounds like a word made up by someone who didn't know about the word 'brain'." src="https://imgs.xkcd.com/comics/watches.png" alt="Watches" width="300" height="130" /></p> 1311<p> </p> 1312<p><strong>Candy Button Paper</strong></p> 1313<p><img style="display: block; margin-left: auto; margin-right: auto;" title="Nonrewritable tape?" src="https://imgs.xkcd.com/comics/candy_button_paper.png" alt="Candy Button Paper" width="300" height="185" /></p> 1314<p><strong> </strong></p> 1315<p> </p> 1316<br /><div class="pagenavbar"><div>Prev - <a href="/component/content/article/942.html?start=1">Next >></a></div></div><br /></td> 1317</tr> 1318 1319</table> 1320<span class="article_separator"> </span> 1321 1322 <div class="clearfix"></div> 1323 1324 <!-- End Content --> 1325 </main> 1326 1327 <!-- Begin Right Sidebar --> 1328 <div id="aside" class="hidden-tablet hidden-phone" style="float:left"> 1329 1330 </div> 1331 1332 </div> 1333 </div> 1334 <footer class="footer" role="contentinfo"> 1335 <div class="container fluidContainer"> 1336 1337 <div style="padding:4px;"> 1338 Copyright 2009-2026 i-programmer.info. All Rights Reserved. 1339 <br><br> 1340 </div> 1341 </div> 1342 </footer> 1343 </div> 1344 1345</body> 1346</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.