diff --git a/common/modules/source-code-different-short.org b/common/modules/source-code-different-short.org index 304f721..6ab7baf 100644 --- a/common/modules/source-code-different-short.org +++ b/common/modules/source-code-different-short.org @@ -1,103 +1,103 @@ #+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: ** Source code matters! :PROPERTIES: :CUSTOM_ID: thesourcecode :END: #+BEGIN_EXPORT latex \begin{minipage}[c]{\extblockscale{.1\linewidth}}% \includegraphics[width=\linewidth]{software.png}% \end{minipage} \begin{minipage}[c]{.975\linewidth-\extblockscale{.1\linewidth}}% \begin{quote} “The source code for a work means the preferred form of the work for making modifications to it." \hfill GPL Licence \end{quote} \end{minipage} #+END_EXPORT #+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 /“Programs must be written for people to read, and only incidentally for machines to execute.”/ -*** Quake 2 source code (excerpt) :B_block:BMCOL: +*** Quake III source code (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 *** Net. queue in Linux (excerpt) :B_block:BMCOL: :PROPERTIES: :BEAMER_col: 0.45 :BEAMER_env: block :END: #+LATEX: \includegraphics[width=\linewidth]{juliusz-sfb-short.png} # Juliusz implementation of stochastic fair blue in the Linux Kernel linux/net/sched/sch_sfb.c *** :B_ignoreheading: :PROPERTIES: :BEAMER_env: ignoreheading :END: *** Len Shustek, Computer History Museum \hfill /“Source code provides a view into the mind of the designer.”/ *** Distinguishing features :noexport: - /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 :noexport: - software /is not just another/ sequence of bits - a software archive /is not just another/ digital archive