diff --git a/common/modules/source-code-different-long.org b/common/modules/source-code-different-long.org index 54a5176..5fe1589 100644 --- a/common/modules/source-code-different-long.org +++ b/common/modules/source-code-different-long.org @@ -1,106 +1,106 @@ #+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_envargs(Env Args) %10BEAMER_act(Act) %4BEAMER_col(Col) %10BEAMER_extra(Extra) %8BEAMER_opt(Opt) # # Software is all around us # #+INCLUDE: "prelude.org" :minlevel 1 * Software source code :PROPERTIES: :CUSTOM_ID: main :END: ** Software is everywhere :PROPERTIES: :CUSTOM_ID: everywhere :END: #+latex: \begin{center} #+ATTR_LATEX: :width 0.7\linewidth file:software-center.pdf #+latex: \end{center} ** Source code matters! :PROPERTIES: :CUSTOM_ID: thesourcecode :END: #+LATEX: \includegraphics[width=.10\linewidth]{software.png} "The source code for a work means the preferred form of the work for making modifications to it." \hfill --- GPL Licence #+Beamer: \pause *** :PROPERTIES: :BEAMER_env: block :BEAMER_act: +- :END: #+latex: \begin{center} Hello World \end{center} *** Program (excerpt of binary) :B_block:BMCOL: :PROPERTIES: :BEAMER_col: 0.5 :BEAMER_env: block :BEAMER_act: +- :END: #+begin_src hex :exports code 4004e6: 55 4004e7: 48 89 e5 4004ea: bf 84 05 40 00 4004ef: b8 00 00 00 00 4004f4: e8 c7 fe ff ff 4004f9: 90 4004fa: 5d 4004fb: c3 #+end_src *** Program (source code) :B_block:BMCOL: :PROPERTIES: :BEAMER_col: 0.55 :BEAMER_env: block :BEAMER_act: +- :END: #+begin_src c :exports code /* Hello World program */ #include void main() { printf("Hello World"); } #+end_src ** Software Source Code is /special/ :PROPERTIES: :CUSTOM_ID: softwareisdifferent :END: *** Harold Abelson, Structure and Interpretation of Computer Programs (1st ed.) \hfill (1985) /“Programs must be written for people to read, and only incidentally for machines to execute.”/ #+BEAMER: \pause -*** Apollo 11 source code ([[https://archive.softwareheritage.org/swh:1:cnt:64582b78792cd6c2d67d35da5a11bb80886a6409;origin=https://github.com/virtualagc/virtualagc;lines=245-261/][excerpt]]) :B_block:BMCOL: +*** Apollo 11 source code ([[https://archive.softwareheritage.org/swh:1:cnt:64582b78792cd6c2d67d35da5a11bb80886a6409;origin=https://github.com/virtualagc/virtualagc;visit=swh:1:snp:3c074afad81ad6b14d434b96e705e01d184752cf;anchor=swh:1:rev:007c2b95f301f9438b8b74d7993b7a3b9a66255b;path=/Luminary099/THE_LUNAR_LANDING.agc;lines=245-261/][excerpt]]) :B_block:BMCOL: :PROPERTIES: :BEAMER_col: 0.48 :BEAMER_env: block :END: #+LATEX: \includegraphics[width=\linewidth]{apollo-11-cranksilly.png} # excerpt of routine that asks astronaut to turn around the LEM #+BEAMER: \pause -*** Quake III source code ([[https://archive.softwareheritage.org/swh:1:cnt:bb0faf6919fc60636b2696f32ec9b3c2adb247fe;origin=https://github.com/id-Software/Quake-III-Arena;lines=549-572/][excerpt]]) :B_block:BMCOL: +*** Quake III source code ([[https://archive.softwareheritage.org/swh:1:cnt:bb0faf6919fc60636b2696f32ec9b3c2adb247fe;origin=https://github.com/id-Software/Quake-III-Arena;visit=swh:1:snp:4ab9bcef131aaf449a7c01370aff8c91dcecbf5f;anchor=swh:1:rev:dbe4ddb10315479fc00086f08e25d968b4b43c49;path=/code/game/q_math.c;lines=549-572/][excerpt]]) :B_block:BMCOL: :PROPERTIES: :BEAMER_col: 0.45 :BEAMER_env: block :END: #+LATEX: \includegraphics[width=\linewidth]{quake-carmack-sqrt-1.png} # smart efficient implementation of 1/sqrt(x) on a CPU without special support #+BEAMER: \pause *** :B_ignoreheading: :PROPERTIES: :BEAMER_env: ignoreheading :END: *** Len Shustek, Computer History Museum \hfill (2006) \hfill /“Source code provides a view into the mind of the designer.”/ ** Source code is special, ctd *** Distinguishing features - /executable/ and /human readable/ knowledge (an /all time new/) + even hardware is... software! (VHDL, FPGA, ...) + /text files are forever/ - naturally /evolves/ over time + the /development history/ is key to its /understanding/ - complex: large /web of dependencies/, millions of SLOCs *** In a word - software /is not just another/ sequence of bits - a software archive /is not just another/ digital archive