<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Dr. Gernot Starke</title>
    <description>The latest articles on Forem by Dr. Gernot Starke (@gernotstarke).</description>
    <link>https://forem.com/gernotstarke</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F32377%2Fa579bca0-7596-4ea4-9b32-df2e898feaf7.jpg</url>
      <title>Forem: Dr. Gernot Starke</title>
      <link>https://forem.com/gernotstarke</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/gernotstarke"/>
    <language>en</language>
    <item>
      <title>Speed up your video</title>
      <dc:creator>Dr. Gernot Starke</dc:creator>
      <pubDate>Tue, 29 Nov 2022 13:28:01 +0000</pubDate>
      <link>https://forem.com/gernotstarke/speed-up-your-video-1npb</link>
      <guid>https://forem.com/gernotstarke/speed-up-your-video-1npb</guid>
      <description>&lt;p&gt;In case you want a video to play faster, you have a few options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;some video players (like &lt;a href="https://www.elmedia-video-player.com/" rel="noopener noreferrer"&gt;Elmedia Player (Mac only)&lt;/a&gt; or similar tools) allow faster or slower playback.&lt;/li&gt;
&lt;li&gt;Use a video editing tool (like &lt;a href=""&gt;DaVinci Resolve&lt;/a&gt; or similar tools) to either speed up or slow down your video&lt;/li&gt;
&lt;li&gt;Use the free &lt;code&gt;ffmpeg&lt;/code&gt; tool on the command line to modify the duration of a video. (&lt;code&gt;ffmpeg&lt;/code&gt; can perform a lot of other cool things with video, have a look at their &lt;a href="https://ffmpeg.org/" rel="noopener noreferrer"&gt;website&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's look at an example: Below you find a 6-minute video, plus a 14 second version of the same visual content... just lot's faster.&lt;/p&gt;

&lt;h2&gt;
  
  
  Original (Slow) Video
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/9JfvpU9f0oc"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  High-Speed Video
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/RNMIJwwv8aU"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;ffmpeg&lt;/code&gt; Solution
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;ffmpeg&lt;/code&gt;: A complete, cross-platform solution to record, convert and stream audio and video.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ol&gt;
&lt;li&gt;Obviously, you need to install &lt;code&gt;ffmpeg&lt;/code&gt; first. The &lt;a href="https://ffmpeg.org/" rel="noopener noreferrer"&gt;&lt;code&gt;ffmpeg&lt;/code&gt; website&lt;/a&gt; has instructions for you. (You can use a package manager like &lt;code&gt;brew&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Open a terminal, head over to a directory containing your original (slow) video.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now for the good stuff:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ ffmpeg -i Yoda-Autoplay-compact.mp4  -vf "setpts=(PTS-STARTPTS)/5" -crf 18 yoda-autoplay-fast.mp4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The magic happens in the parameter &lt;code&gt;setpts=(PTS-STARTPTS)/5&lt;/code&gt;, which reduces the duration to one fifth.&lt;/p&gt;

&lt;p&gt;For the example above, I used a factor of 30 to reduce the duration from approx 6 minutes to approx 15 seconds.&lt;/p&gt;

&lt;p&gt;Hope you find this info useful - all kudos to the &lt;code&gt;ffmpeg&lt;/code&gt; developers.&lt;/p&gt;

</description>
      <category>tutorial</category>
    </item>
    <item>
      <title>Machine-Generated Images - with Yoda</title>
      <dc:creator>Dr. Gernot Starke</dc:creator>
      <pubDate>Mon, 24 Oct 2022 09:18:41 +0000</pubDate>
      <link>https://forem.com/gernotstarke/machine-generated-images-with-yoda-248d</link>
      <guid>https://forem.com/gernotstarke/machine-generated-images-with-yoda-248d</guid>
      <description>&lt;p&gt;This is part of a small series of articles showing images generated completely by AI (artificial intelligence):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://dev.to/gernotstarke/the-art-ificial-yoda-gallery-47oe"&gt;The ARTificial Yoda Gallery&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/gernotstarke/yoda-explaining-art-styles-by-example-405e"&gt;Art Styles explained by Yoda&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The following collection contains images generated by &lt;a href="//labs.openai.com"&gt;DALL.E&lt;/a&gt; and &lt;a href="https://midjourney.com"&gt;Midjourney&lt;/a&gt;. In case I forgot some important contemporary artist, please let me know in the comment section.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Artists and Styles
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Zappa, Frank&lt;/li&gt;
&lt;li&gt;Yokoo, Tadanori&lt;/li&gt;
&lt;li&gt;Witt, Solomon Le-&lt;/li&gt;
&lt;li&gt;Wiley, Kehinde&lt;/li&gt;
&lt;li&gt;Warhol, Andy&lt;/li&gt;
&lt;li&gt;Walker, Kara&lt;/li&gt;
&lt;li&gt;Ting, Walasse&lt;/li&gt;
&lt;li&gt;Takano, Aya&lt;/li&gt;
&lt;li&gt;Street art&lt;/li&gt;
&lt;li&gt;Stella, Frank&lt;/li&gt;
&lt;li&gt;Sherald, Amy&lt;/li&gt;
&lt;li&gt;Saville, Jenny&lt;/li&gt;
&lt;li&gt;Riley, Bridget&lt;/li&gt;
&lt;li&gt;Richter, Gerhard&lt;/li&gt;
&lt;li&gt;Pollock, Jackson&lt;/li&gt;
&lt;li&gt;Piccini, Patricia&lt;/li&gt;
&lt;li&gt;Perry, Grayson&lt;/li&gt;
&lt;li&gt;Ono, Yoko&lt;/li&gt;
&lt;li&gt;Night, Starry&lt;/li&gt;
&lt;li&gt;Neshat, Shirin&lt;/li&gt;
&lt;li&gt;Mozart, Wolfgang Amadeus&lt;/li&gt;
&lt;li&gt;Motherwell, Robert&lt;/li&gt;
&lt;li&gt;Mendieta, Ana&lt;/li&gt;
&lt;li&gt;Martin, Agnes&lt;/li&gt;
&lt;li&gt;Lichtenstein, Roy&lt;/li&gt;
&lt;li&gt;Kusame, Yayoi&lt;/li&gt;
&lt;li&gt;Kruger, Barbara&lt;/li&gt;
&lt;li&gt;Koons, Jeff&lt;/li&gt;
&lt;li&gt;Karim, Anthony Abdel&lt;/li&gt;
&lt;li&gt;Judd, Donald&lt;/li&gt;
&lt;li&gt;Hundertwasser, Friedensreich&lt;/li&gt;
&lt;li&gt;Hurst, Damien&lt;/li&gt;
&lt;li&gt;Hockney, David&lt;/li&gt;
&lt;li&gt;Grey, Alex&lt;/li&gt;
&lt;li&gt;Graffiti&lt;/li&gt;
&lt;li&gt;Graubner, Gotthart&lt;/li&gt;
&lt;li&gt;Goscini (and Uderzo)&lt;/li&gt;
&lt;li&gt;Goldsworthy, Andy&lt;/li&gt;
&lt;li&gt;Communism&lt;/li&gt;
&lt;li&gt;Close, Chuck&lt;/li&gt;
&lt;li&gt;Clark, Lydia&lt;/li&gt;
&lt;li&gt;British Upper House&lt;/li&gt;
&lt;li&gt;Beksiński, Zdzisław&lt;/li&gt;
&lt;li&gt;Bauer, Joseph&lt;/li&gt;
&lt;li&gt;Basquiat, Jean-Michel&lt;/li&gt;
&lt;li&gt;Abramovic, Marina&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What is Contemporary Art?
&lt;/h2&gt;

&lt;p&gt;I searched the internet for "contemporary artist" and "contemporary painter", and got literally dozens of results, containing painters, photographers, sculptors and other kind of visual artists.&lt;/p&gt;

&lt;p&gt;The selection I present here is purely a matter of my personal taste. Chances are I forgot some important artists, as I'm software architect, no art expert.&lt;/p&gt;

&lt;p&gt;Quoted from &lt;a href="https://en.wikipedia.org/wiki/Contemporary_art"&gt;Wikipedia&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Contemporary art is the art of today, produced in the second half of the 20th century or in the 21st century. Contemporary artists work in a globally influenced, culturally diverse, and technologically advancing world.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And now, let's dive right in. The order is inverse alphabetic (sorted by last or family name), for a change.&lt;/p&gt;

&lt;h2&gt;
  
  
  Zappa, Frank
&lt;/h2&gt;

&lt;p&gt;More known for his (sometimes strange) music, Frank Zappa makes for a stunning Yoda...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XBv8U5Zo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bg7dilumcn05jm763adg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XBv8U5Zo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bg7dilumcn05jm763adg.png" alt="Frank Zapa Yoda" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yokoo, Tadanori
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--33gplHGo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ntuw659rio9bscwxjvd7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--33gplHGo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ntuw659rio9bscwxjvd7.png" alt="Tadanori Yokoo Yoda" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Witt, Solomon Le-
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EhQ8Yho0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ovzs1vp1wv82tftbj13n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EhQ8Yho0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ovzs1vp1wv82tftbj13n.png" alt="Solomon LeWitt" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wiley, Kehinde
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---6_ESC7N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xkc7vm4t941fusx9kglt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---6_ESC7N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xkc7vm4t941fusx9kglt.png" alt="Wiley" width="512" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Warhol, Andy
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IWrtt_xG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e4r4imsd4bk0auxz3rwz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IWrtt_xG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e4r4imsd4bk0auxz3rwz.png" alt="Warhol" width="512" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Walker, Kara
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yr-K2AX6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ndpsnv90dq3hwv490q2u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yr-K2AX6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ndpsnv90dq3hwv490q2u.png" alt="Walker" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ting, Walasse
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--o6YFWiS_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/20fl768be486siampr7t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--o6YFWiS_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/20fl768be486siampr7t.png" alt="Ting" width="512" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Takano, Aya
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xtiyQYwe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n1sy1lz9b6w0nkazrk6l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xtiyQYwe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n1sy1lz9b6w0nkazrk6l.png" alt="Aya Takano Yoda" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Street art
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OHSUM66c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u731i6xew6zeoe4v2lux.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OHSUM66c--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u731i6xew6zeoe4v2lux.png" alt="Street-Art" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Stella, Frank
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;v1&lt;/th&gt;
&lt;th&gt;v2&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MFNzECwa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ppy5wcw7e60awzoobpb3.png" alt="Stella v1" width="880" height="880"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FjnnrzQ8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yn34rdz0c0bf3krlg2ch.png" alt="Stella v2" width="880" height="880"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Sherald, Amy
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FfzC-XdS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vo84tc3cey1uz3pciv79.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FfzC-XdS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vo84tc3cey1uz3pciv79.png" alt="Sherald" width="512" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Saville, Jenny
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kDZy3GIS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qxgdrfcx3o3joucvdwkl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kDZy3GIS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qxgdrfcx3o3joucvdwkl.png" alt="Saville" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Riley, Bridget
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AChzfcr8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b6d6o4faazmou93i7urt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AChzfcr8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b6d6o4faazmou93i7urt.png" alt="Riley-Bridget" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Richter, Gerhard
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Mrc4uALB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/czcg5rqpa46w5x6s5e1r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Mrc4uALB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/czcg5rqpa46w5x6s5e1r.png" alt="Gerhard Richter Yoda " width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pollock, Jackson
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Te6px84V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s365422qmk19pkc4g9j1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Te6px84V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s365422qmk19pkc4g9j1.png" alt="Jackson Pollock Yoda" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Piccini, Patricia
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DMr5RVxP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b2drjhr46f1cdqe9jg44.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DMr5RVxP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b2drjhr46f1cdqe9jg44.png" alt="Piccini Yoda " width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Perry, Grayson
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Gs_Xbyhs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fwz1itd9v1pvtzj6x5y5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Gs_Xbyhs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fwz1itd9v1pvtzj6x5y5.png" alt="Grayson Yoda " width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ono, Yoko
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UQWAgQ9R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4wg6njz19k39dhh4qlnc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UQWAgQ9R--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4wg6njz19k39dhh4qlnc.png" alt="Yoko Ono Yoda" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Night, Starry
&lt;/h2&gt;

&lt;p&gt;(obviously, this is no artist but something like a style)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PcUnBecD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k3xk0x93enop1xxafsqd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PcUnBecD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k3xk0x93enop1xxafsqd.png" alt="Starry Night Yoda" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Neshat, Shirin
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QcPuRsZf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j2x7bfcu5fwvj5xk7dj3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QcPuRsZf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j2x7bfcu5fwvj5xk7dj3.png" alt="Shirin Neshat Yoda " width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Mozart, Wolfgang Amadeus
&lt;/h2&gt;

&lt;p&gt;(obviously, this guy is not a contemporary artist, but the image is nice anyway)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TBnV4vzV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w208k6cbti9i947f5cnf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TBnV4vzV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w208k6cbti9i947f5cnf.png" alt="Mozart style Yoda " width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Motherwell, Robert
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0XrCfwUF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ubm7k35r9fwirjixqrvy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0XrCfwUF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ubm7k35r9fwirjixqrvy.png" alt="Motherwell Yoda" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Mendieta, Ana
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xquhL4S8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mky5m4h86jcz90ywu08h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xquhL4S8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mky5m4h86jcz90ywu08h.png" alt="Mendiata Yoda " width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Martin, Agnes
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4Z4y0XaO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cu7vurxwu7w0qyeggzjx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4Z4y0XaO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cu7vurxwu7w0qyeggzjx.png" alt="Agnes Martin Yoda " width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Lichtenstein, Roy
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fYJ7soTz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9zt7kvciu4lhnx02k6as.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fYJ7soTz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9zt7kvciu4lhnx02k6as.png" alt="Roy Lichtenstein Yoda" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Kusame, Yayoi
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K0UhI4wK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hnhu6aouvroc8z8jcgo8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K0UhI4wK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hnhu6aouvroc8z8jcgo8.png" alt="Yayoi Kusame" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Kruger, Barbara
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ap0EZ5bL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eoky9q49jpg3j1z0yb0d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ap0EZ5bL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eoky9q49jpg3j1z0yb0d.png" alt="Barbara Kruger Yoda" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Koons, Jeff
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OrKN_nv2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pvep7so33v3b09pvrx88.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OrKN_nv2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pvep7so33v3b09pvrx88.png" alt="Jeff Koons Yoda" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Karim, Anthony Abdel
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ipLxMRle--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5xj6z6xqrrcpzdzoulvy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ipLxMRle--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5xj6z6xqrrcpzdzoulvy.png" alt="Abdel Karim Yoda" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Judd, Donald
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Qpck8q6P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/75zkg6t87ivys3qrhjn8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Qpck8q6P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/75zkg6t87ivys3qrhjn8.png" alt="Donald Judd" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Hundertwasser, Friedensreich
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---67uZ-5N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nxuu0k9fcyegz650r52q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---67uZ-5N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nxuu0k9fcyegz650r52q.png" alt="Hundertwasser Yoda" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Hurst, Damien
&lt;/h2&gt;

&lt;p&gt;(ok, he gets three)&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;v1&lt;/th&gt;
&lt;th&gt;v2&lt;/th&gt;
&lt;th&gt;v3&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--X4K7J0bs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4dkk7ens2v9bhb6h0yht.png" alt="Hurst v1" width="880" height="880"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BEU22dSb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0414qfmx7gmh8vq3cbr4.png" alt="Hurst v2" width="880" height="880"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NWXKfIWQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9uz7xb4oxozx6gqv56ew.png" alt="Hurst v3" width="880" height="880"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Hockney, David
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iJO9fVK5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/18yww1vw0j45kuy04t7k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iJO9fVK5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/18yww1vw0j45kuy04t7k.png" alt="David Hockney Yoda" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Grey, Alex
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aR-2XHN_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vave38wj7ducf2waald9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aR-2XHN_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vave38wj7ducf2waald9.png" alt="Grey Alex Yoda" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Graffiti
&lt;/h2&gt;

&lt;p&gt;(obviously again, this is no single artist, but an art style)&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;v1&lt;/th&gt;
&lt;th&gt;v2&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_m_OaFa6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v1o4krzywiokm1obgk76.png" alt="v1 graffiti" width="880" height="880"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ptbtQ4UD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/voqvovyh9qd1f9qkjtzu.png" alt="graffity v2" width="880" height="880"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Graubner, Gotthart
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8jZ86lAz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sj5lz64h40kw4l2lqm6y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8jZ86lAz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sj5lz64h40kw4l2lqm6y.png" alt="Graubner Yoda" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Goscini (and Uderzo)
&lt;/h2&gt;

&lt;p&gt;These artists invented the Asterix comic strip.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SUOnCkNj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z4erpubhkf8oqyfrp0va.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SUOnCkNj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z4erpubhkf8oqyfrp0va.png" alt="Goscini" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Goldsworthy, Andy
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wq73odAV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aaok7qtvhpp8u4k60dex.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wq73odAV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aaok7qtvhpp8u4k60dex.png" alt="Goldsworthy" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Communism
&lt;/h2&gt;

&lt;p&gt;Again, no artist, but a relict of a political movement.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cuGGUZX7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8u9h4urw8fv1bfqybsld.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cuGGUZX7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8u9h4urw8fv1bfqybsld.png" alt="Communism style Yoda" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Close, Chuck
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tf9XO0x3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/odmqpa4gien0el0f08ha.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tf9XO0x3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/odmqpa4gien0el0f08ha.png" alt="Close Chuck" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Clark, Lydia
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UqHIzAR5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g887tfcaotwa1wrv623f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UqHIzAR5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g887tfcaotwa1wrv623f.png" alt="Clark " width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  British Upper House
&lt;/h2&gt;

&lt;p&gt;Ooops, another one that does not represent a single artist.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LqV0pLaF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xoe5dzgac9k3lbdpd6m1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LqV0pLaF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xoe5dzgac9k3lbdpd6m1.png" alt="British upper house" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Beksiński, Zdzisław
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aqBDkQCK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6pa1dhdzegf0s7coiqsr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aqBDkQCK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6pa1dhdzegf0s7coiqsr.png" alt="Beksinski" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Bauer, Joseph
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cROJdOJO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ni1va9gm8uaqwgnivlk3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cROJdOJO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ni1va9gm8uaqwgnivlk3.png" alt="Bauer" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Basquiat, Jean-Michel
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TM21w5QX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jo91rg36fbfjjrfvv7hp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TM21w5QX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jo91rg36fbfjjrfvv7hp.png" alt="Basquiat" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Abramovic, Marina
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JKlgXxvV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qym72bog0wzq36llckdr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JKlgXxvV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qym72bog0wzq36llckdr.png" alt="Abramovic" width="880" height="880"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>machinelearning</category>
      <category>ai</category>
    </item>
    <item>
      <title>Yoda, explaining art styles by example</title>
      <dc:creator>Dr. Gernot Starke</dc:creator>
      <pubDate>Sun, 09 Oct 2022 08:43:19 +0000</pubDate>
      <link>https://forem.com/gernotstarke/yoda-explaining-art-styles-by-example-405e</link>
      <guid>https://forem.com/gernotstarke/yoda-explaining-art-styles-by-example-405e</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Update Oct 9th: added Zen&lt;/li&gt;
&lt;li&gt;Update Oct 10th: added Graffiti&lt;/li&gt;
&lt;li&gt;Update Oct 11th: added Glitch art (thx to AntonR)&lt;/li&gt;
&lt;li&gt;Update Oct 12th: added Mosaic&lt;/li&gt;
&lt;li&gt;Update Oct 21st: added Cyberpunk&lt;/li&gt;
&lt;li&gt;Update Oct 24th: added Precisionist&lt;/li&gt;
&lt;li&gt;Update Oct 30th: added Pixel-Art&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Introduction&lt;/li&gt;
&lt;li&gt;
Art Styles

&lt;ul&gt;
&lt;li&gt;Abstract Art&lt;/li&gt;
&lt;li&gt;Acacemic Art&lt;/li&gt;
&lt;li&gt;African&lt;/li&gt;
&lt;li&gt;Aquarelle&lt;/li&gt;
&lt;li&gt;Art Deco&lt;/li&gt;
&lt;li&gt;Art Nouveau&lt;/li&gt;
&lt;li&gt;Avant-Garde&lt;/li&gt;
&lt;li&gt;Bauhaus&lt;/li&gt;
&lt;li&gt;Baroque&lt;/li&gt;
&lt;li&gt;Colour field&lt;/li&gt;
&lt;li&gt;Comic&lt;/li&gt;
&lt;li&gt;Contemporary Art&lt;/li&gt;
&lt;li&gt;Cyberpunk Art&lt;/li&gt;
&lt;li&gt;Dadaism&lt;/li&gt;
&lt;li&gt;Etching&lt;/li&gt;
&lt;li&gt;Expressionism&lt;/li&gt;
&lt;li&gt;Fauvism&lt;/li&gt;
&lt;li&gt;Folk art&lt;/li&gt;
&lt;li&gt;Futurism&lt;/li&gt;
&lt;li&gt;Glitch&lt;/li&gt;
&lt;li&gt;Graffiti&lt;/li&gt;
&lt;li&gt;Impressionism&lt;/li&gt;
&lt;li&gt;Islamic art&lt;/li&gt;
&lt;li&gt;Japonism&lt;/li&gt;
&lt;li&gt;Cubism (or Kubism)&lt;/li&gt;
&lt;li&gt;Modern Art&lt;/li&gt;
&lt;li&gt;Mosaic Art&lt;/li&gt;
&lt;li&gt;Naive Art&lt;/li&gt;
&lt;li&gt;Neoclassicism (Neo-classicism)&lt;/li&gt;
&lt;li&gt;Neo-Impressionism&lt;/li&gt;
&lt;li&gt;Neon Art&lt;/li&gt;
&lt;li&gt;One-Liner&lt;/li&gt;
&lt;li&gt;Pencil drawing&lt;/li&gt;
&lt;li&gt;Pixel Art&lt;/li&gt;
&lt;li&gt;Pointilism&lt;/li&gt;
&lt;li&gt;Pop Art&lt;/li&gt;
&lt;li&gt;Postmodern Art&lt;/li&gt;
&lt;li&gt;Precisionism&lt;/li&gt;
&lt;li&gt;Renaissance&lt;/li&gt;
&lt;li&gt;Rococo&lt;/li&gt;
&lt;li&gt;Romanticism&lt;/li&gt;
&lt;li&gt;Sketchnote&lt;/li&gt;
&lt;li&gt;Soviet Art&lt;/li&gt;
&lt;li&gt;Street Art&lt;/li&gt;
&lt;li&gt;Stuckism&lt;/li&gt;
&lt;li&gt;Surrealism&lt;/li&gt;
&lt;li&gt;Symbolism&lt;/li&gt;
&lt;li&gt;Ukio-e&lt;/li&gt;
&lt;li&gt;Vaporwave&lt;/li&gt;
&lt;li&gt;Zen&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

Appendix

&lt;ul&gt;
&lt;li&gt;Copyrights on these images&lt;/li&gt;
&lt;li&gt;Acknowledgements&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;This article gives an overview of art styles (more precisely: painting styles), based upon computer-generated images.&lt;br&gt;
It demonstrates a few capabilities of current AI-based generation systems, namely:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://labs.openai.com/" rel="noopener noreferrer"&gt;DALL.E&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="https://midjourney.com" rel="noopener noreferrer"&gt;midjourney&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.craiyon.com/" rel="noopener noreferrer"&gt;Craiyon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;For reasons only understood by some dark force, I decided to use the popular Yoda figure as the recurring subject.&lt;/p&gt;

&lt;p&gt;In case you want to &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;see more Yoda images, please refer to my ART-ificial Yoda gallery, showing fictional and generated Yoda portraits by different artists, sorted by painters' age.&lt;/li&gt;
&lt;li&gt;read more about art styles with &lt;em&gt;real&lt;/em&gt; paintings, see

&lt;ul&gt;
&lt;li&gt;this &lt;a href="https://simplicable.com/new/art-styles" rel="noopener noreferrer"&gt;simplicable article&lt;/a&gt; or&lt;/li&gt;
&lt;li&gt;this &lt;a href="https://magazine.artland.com/art-movements-and-styles/#minimalism" rel="noopener noreferrer"&gt;artland article&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;And now, without further ado, let's dive into art styles. As I got completely overwhelmed by the vast number of different styles I encountered when I started researching for this post, I decided to sort them alphabetically, instead of historically.&lt;/p&gt;

&lt;h1&gt;
  
  
  Art Styles
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Abstract Art
&lt;/h2&gt;

&lt;p&gt;Abstract art does not attempt to represent an accurate depiction of a real entity, but instead uses shapes, colours and forms.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;midjourney&lt;/th&gt;
&lt;th&gt;DALL.E&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuxnvj0qz387ckkxa25f1.png" alt="abstract yoda"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F133mwrdzdndxbv6fkrkw.png" alt="Abstract Yoda"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Acacemic Art
&lt;/h2&gt;

&lt;p&gt;Academic art is a style of painting created under the influence of European academies of art, especially the French Académie des &lt;em&gt;Beaux-Arts&lt;/em&gt;. It combines influences of Neoclassicism and Romanticism.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzij2gqy61fbxgd5zznw9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzij2gqy61fbxgd5zznw9.png" alt="Academic Art"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  African
&lt;/h2&gt;

&lt;p&gt;African art describes the modern and historical paintings from native or indigenous Africans.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Craiyon&lt;/th&gt;
&lt;th&gt;DALL.E&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvhb7ppxhsba982h2mjl4.png" alt="Yoda in African style (craiyon)"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffa4njbm3brmn6ke7z7fp.png" alt="Yoda in modern African art"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Aquarelle
&lt;/h2&gt;

&lt;p&gt;Watercolor, also aquarelle is a painting method in which the paints are made of pigments suspended in a water-based solution, and the canvas is often wetted to make the colours slightly disperse into each other.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Midjourney&lt;/th&gt;
&lt;th&gt;DALL.E&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5jvnfpgy9aljaabfoaxt.png" alt="Aquarel"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fewsl1kcp2k9d1svn6rjv.png" alt="Aquarelle Yoda"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Art Deco
&lt;/h2&gt;

&lt;p&gt;Art Deco is a style of visual arts that first appeared in France in the 1910s just before World War I.&lt;br&gt;
Art Deco combined modern styles with fine craftsmanship and rich materials.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc1y7gyv5soit4aelv9vl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc1y7gyv5soit4aelv9vl.png" alt="Art Deco"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Art Nouveau
&lt;/h2&gt;

&lt;p&gt;Art Nouveau is an international style of art, architecture and the decorative arts. The style is known by different names in different languages: Jugendstil in German, Stile Liberty in Italian, Modernisme in Catalan, and also known as the Modern Style in English. Art Nouveau was popular during the Belle Époque period that ended with the start of World War I in 1914&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl59xdupcyitflltwq6d7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl59xdupcyitflltwq6d7.png" alt="Art nouveau"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Avant-Garde
&lt;/h2&gt;

&lt;p&gt;The avant-garde is a style that is experimental, radical, or unorthodox with respect to art, culture, or society.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnoeai2fk4hi3bz0xzw7n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnoeai2fk4hi3bz0xzw7n.png" alt="Avant-Garde"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Bauhaus
&lt;/h2&gt;

&lt;p&gt;The Staatliches Bauhaus (German for 'building house'), was a German art school operational between 1919 and 1933, that combined crafts with fine arts. The school became famous for its approach to design, which attempted to unify the principles of mass production with individual artistic vision.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc4vi2qx5ccn4j749lzs5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc4vi2qx5ccn4j749lzs5.png" alt="Bauhaus Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Baroque
&lt;/h2&gt;

&lt;p&gt;The Baroque is a style of painting and other art forms that flourished in Europe from the early 17th century until the 1740s. It continued until the first decade of the 19th century. It followed Renaissance art and Mannerism and preceded the Rococo (in the past often referred to as "late Baroque") and Neoclassical styles. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fylyqjhxd0u568x672eaq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fylyqjhxd0u568x672eaq.png" alt="Baroque Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Colour field
&lt;/h2&gt;

&lt;p&gt;Color field painting is a style of abstract painting that emerged in New York City from the 1940s. Inspired by European modernism, related to abstract expressionism, many of its proponents were among the abstract expressionists. Color field is characterized by large fields of color spread across the canvas creating areas of unbroken surface and a flat picture plane. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4z5gcik2ato2yvrsw2id.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4z5gcik2ato2yvrsw2id.png" alt="Color field Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Comic
&lt;/h2&gt;

&lt;p&gt;Comic is an art style used to express ideas with images combined with text.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8r93mong6zx25osalavo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8r93mong6zx25osalavo.png" alt="Comic Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06q4z0p75jk6e0t8s4py.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06q4z0p75jk6e0t8s4py.png" alt="Comic Yoda with Donald Duck"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Contemporary Art
&lt;/h2&gt;

&lt;p&gt;Contemporary art is the art of today, produced in the second half of the 20th century or in the 21st century. Contemporary artists work in a globally influenced, culturally diverse, and technologically advancing world.&lt;br&gt;
(quoted from Wikipedia)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft4ygnloffbfbzu09a7pp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft4ygnloffbfbzu09a7pp.png" alt="Contemporary Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cyberpunk
&lt;/h2&gt;

&lt;p&gt;Cyberpunk is a subgenre of science fiction, often in dystopian futuristic setting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwf12s6i694jef6mcmzpu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwf12s6i694jef6mcmzpu.png" alt="cyberpunk Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Dadaism
&lt;/h2&gt;

&lt;p&gt;Dadaism was an art movement of the European avant-garde in the early 20th century, starting in Zürich, Switzerland. New York Dada began 1915, and after 1920 Dada flourished in Paris. Dada artists expressed nonsense, irrationality, and anti-bourgeois protest in their works. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3m0hkndhk6dqlwnq4vzq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3m0hkndhk6dqlwnq4vzq.png" alt="Dadaism Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Etching
&lt;/h2&gt;

&lt;p&gt;Etching traditionally was the process of using acid to cut into the unprotected parts of a metal surface to create a design incised in the metal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn6q1kptngkkg0z0f7jy2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn6q1kptngkkg0z0f7jy2.png" alt="Etching Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Expressionism
&lt;/h2&gt;

&lt;p&gt;Expressionism is a art movement that originated in Northern Europe around the beginning of the 20th century. It presents the world from a subjective perspective, distorting to create emotional effect.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs3qeffb32ngwj66dnaom.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs3qeffb32ngwj66dnaom.png" alt="Expressionism"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Fauvism
&lt;/h2&gt;

&lt;p&gt;Fauvism is the style of a group of early 20th-century artists whose works favoured strong color over the realistic values used by Impressionism.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm93vqiixe79bijf00vs8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm93vqiixe79bijf00vs8.png" alt="Fauvism"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Folk art
&lt;/h2&gt;

&lt;p&gt;Folk art covers visual art made in the context of folk culture. Objects shown have practical utility, rather than being only decorative. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9nefwlvygt9huo6an8y8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9nefwlvygt9huo6an8y8.png" alt="Folk art"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Futurism
&lt;/h2&gt;

&lt;p&gt;Futurism (Italian: Futurismo) was an artistic movement from Italy in the early 20th century. It showed dynamism, speed, technology, youth, violence, and modern objects such as the car, the airplane, and other industrial products.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9xau00q2yg2qzq40ds5a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9xau00q2yg2qzq40ds5a.png" alt="Futurism Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Glitch
&lt;/h2&gt;

&lt;p&gt;Glitch art uses digital or analog errors for art purposes by either corrupting digital data or manipulating electronic devices.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbmw23p2y5rdyq7816kx1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbmw23p2y5rdyq7816kx1.png" alt="Glitch art Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Graffiti
&lt;/h2&gt;

&lt;p&gt;Graffiti is art that is painted or drawn on a walls or other surfaces, often without permission and within public view. Graffiti ranges from simple written words to elaborate wall paintings, and has existed since ancient times.&lt;/p&gt;

&lt;p&gt;See also street art&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frey8e0v0q84v8q4hyook.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frey8e0v0q84v8q4hyook.png" alt="Graffiti Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Impressionism
&lt;/h2&gt;

&lt;p&gt;Impressionism was a 19th-century art movement using relatively small brush strokes and emphasis on accurate depiction of light.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;midjourney&lt;/th&gt;
&lt;th&gt;DALL.E&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgkbfh9cxd8cvjbx09jgo.png" alt="Impressionist Yoda"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdkfosf3l8rjagbcsxvx4.png" alt="Impressionism"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Islamic art
&lt;/h2&gt;

&lt;p&gt;Islamic art has been characterized by the absence of figures and extensive use of calligraphic, geometric and abstract floral patterns.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6jst490s8y79vzoyooot.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6jst490s8y79vzoyooot.png" alt="islamic art Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Japonism
&lt;/h2&gt;

&lt;p&gt;Japonism, also often referred to by the French term, japonisme, refers to the incorporation of either iconography or concepts of Japanese art into European art and design.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fggylt232lxvfl0mesojs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fggylt232lxvfl0mesojs.png" alt="Japonism Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cubism (or Kubism)
&lt;/h2&gt;

&lt;p&gt;Cubism is an early-20th-century art movement that revolutionized European painting. In Cubist artwork, objects are broken up and reassembled in an highly abstracted form.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1q38ut1sah92b4idnehj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1q38ut1sah92b4idnehj.png" alt="Kubistic Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Modern Art
&lt;/h2&gt;

&lt;p&gt;Modern art includes work produced during the period from the 1860s to the 1970s, and denotes the styles and philosophies of the art created during that era.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm0912orl8t5kwkx87rpn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm0912orl8t5kwkx87rpn.png" alt="Modern Art Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Mosaic Art
&lt;/h2&gt;

&lt;p&gt;A mosaic is an image made of small regular or irregular pieces of colored stone, glass or ceramic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzgqdm51787wbxb6l6y2l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzgqdm51787wbxb6l6y2l.png" alt="Mosaic Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Naive Art
&lt;/h2&gt;

&lt;p&gt;Naïve art is usually defined as visual art that is created by a person who lacks formal education and training.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Forrrfc6d4ko09zs1m7dr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Forrrfc6d4ko09zs1m7dr.png" alt="Naive Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Neoclassicism (Neo-classicism)
&lt;/h2&gt;

&lt;p&gt;Neoclassicism was a cultural movement that drew inspiration from the art and culture of classical antiquity. European Neoclassicism in the visual arts began approx. 1760 in opposition to the then-dominant Rococo style.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwva7j893xekiqj44kmsr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwva7j893xekiqj44kmsr.png" alt="Neoclassical Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Neo-Impressionism
&lt;/h2&gt;

&lt;p&gt;Neo-Impressionism is a term coined by French art critic Félix Fénéon in 1886 to describe an art style founded by Georges Seurat. Neo-Impressionists painted modern urban scenes as well as landscapes and seashores.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5zbgnlfcto2a50lfnmld.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5zbgnlfcto2a50lfnmld.png" alt="Neo-Impressionistic Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Neon Art
&lt;/h2&gt;

&lt;p&gt;A somewhat self-explanatory art form.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe7sj07on0mewttr2ncht.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe7sj07on0mewttr2ncht.png" alt="Neon Art Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  One-Liner
&lt;/h2&gt;

&lt;p&gt;Maybe this is no official art style - as only very few people (I only know of La Linea) painted in it...&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8m67ai9ta28whutjqts6.png" alt="One-Line Yoda"&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flil8hlx0zcvygnqspyrz.png" alt="La Linea Yoda"&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Pencil drawing
&lt;/h2&gt;

&lt;p&gt;A pencil drawing is, surprise surprice, a drawing made with a pencil. The lines are therefore of graphite colour.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw4vnhem4n0wz1kpz9nat.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw4vnhem4n0wz1kpz9nat.png" alt="Pencil Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pixel Art
&lt;/h2&gt;

&lt;p&gt;Pixel art is adigital art drawn where images are created using rectangular blocks of colour (aka pixels) as the only building block.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv94ubtgz16nl2ibu0010.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv94ubtgz16nl2ibu0010.png" alt="Pixel art Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pointilism
&lt;/h2&gt;

&lt;p&gt;Pointillism is a painting technique in which dots of color are used in patterns to form an image. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6c9r0qv9rmwz6q5inj4f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6c9r0qv9rmwz6q5inj4f.png" alt="Pointilistic Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pop Art
&lt;/h2&gt;

&lt;p&gt;Pop art is an art movement that emerged in the United Kingdom and the United States during the mid- to late-1950s, challenging the traditions of fine art by including imagery from popular and mass culture, like advertising, comic books and mass-produced objects. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuas3sdnqwc8qjvb6hwm3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuas3sdnqwc8qjvb6hwm3.png" alt="Pop-Art Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Postmodern Art
&lt;/h2&gt;

&lt;p&gt;Postmodern art is an art movement that seeks to contradict some aspects of modernism. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhrpx8nv7ugw751t70585.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhrpx8nv7ugw751t70585.png" alt="Postmodern Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Precisionism
&lt;/h2&gt;

&lt;p&gt;Precisionist artworks often contain unexpected viewpoints and angles.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1v2rwxasly4cht6fdnfy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1v2rwxasly4cht6fdnfy.png" alt="Precisionist Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Renaissance
&lt;/h2&gt;

&lt;p&gt;Renaissance art (1350 - 1620) is the painting, sculpture, and decorative style of the period of European history, which emerged as a distinct style in Italy.&lt;br&gt;
Famous Renaissance painters were Albrecht Dürer and Jan van Eyck.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fapv5cm6iyou4wrzrggmz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fapv5cm6iyou4wrzrggmz.png" alt="Renaissance Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Rococo
&lt;/h2&gt;

&lt;p&gt;Rococo (approx 1730) is an exceptionally ornamental style of art and decoration which combines asymmetry, scrolling curves, gilding, white and pastel colours, sculpted moulding, and frescoes to create the illusion of motion and drama.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz64bypzyktnz1n2vny8w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz64bypzyktnz1n2vny8w.png" alt="Rococo Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Romanticism
&lt;/h2&gt;

&lt;p&gt;Romanticism (also known Romantic era) was an artistic movement that originated in Europe towards the end of the 18th century. Romanticism  idealized nature and the past, and was suspicious of science and industrialization.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8eyccem9z0m6sx46piu9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8eyccem9z0m6sx46piu9.png" alt="Romantic Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Sketchnote
&lt;/h2&gt;

&lt;p&gt;Sketchnoting, also referred to as visual notetaking, is the creative and highly graphic process through which someone can record thoughts by using illustrations, symbols, structures, and texts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn2ohp8ljt47as8k39q8v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn2ohp8ljt47as8k39q8v.png" alt="Sketchnote Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Soviet Art
&lt;/h2&gt;

&lt;p&gt;Soviet art is a visual style that came up after the October Socialist Revolution of 1917 in Soviet Russia (1917—1922) and the Soviet Union (1922—1991). &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3u14et4lnxdwc229ghkf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3u14et4lnxdwc229ghkf.png" alt="Soviet Art"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Street Art
&lt;/h2&gt;

&lt;p&gt;Street art is visual art created in public locations for open visibility. &lt;br&gt;
Alternative terms are "post-graffiti", "neo-graffiti" and "guerrilla art".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsship43r7d8gfksa4oi3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsship43r7d8gfksa4oi3.png" alt="Street Art"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Stuckism
&lt;/h2&gt;

&lt;p&gt;Stuckism is an international art movement founded in 1999 by Billy Childish and Charles Thomson to promote figurative painting instead of conceptual art.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdcwf44dshfndxk9z1y5l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdcwf44dshfndxk9z1y5l.png" alt="Stuckism"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Surrealism
&lt;/h2&gt;

&lt;p&gt;Surrealism is a cultural movement that developed in Europe after World War I in which artists showed illogical scenes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnr4ao8tpxflyxesnv6lu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnr4ao8tpxflyxesnv6lu.png" alt="Surrelistic Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Symbolism
&lt;/h2&gt;

&lt;p&gt;Symbolism was a late 19th-century art movement of French and Belgian origin seeking to represent absolute truths symbolically through language and metaphorical images. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1s05rdkpvzuogu2glexh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1s05rdkpvzuogu2glexh.png" alt="Symbolism Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ukio-e
&lt;/h2&gt;

&lt;p&gt;Ukiyo-e is a genre of Japanese art famous from the 17th through 19th centuries. Its artists often produced of subjects like female beauties, sumo wrestlers or scenes from history ,travel, landscapes or flora and fauna.&lt;br&gt;
The term ukiyo-e (浮世絵) translates as "picture of the floating world". &lt;br&gt;
(Quoted from Wikipedia)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnni7zfimzwi2yaz9rlfv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnni7zfimzwi2yaz9rlfv.png" alt="Ukiyo-e-Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Vaporwave
&lt;/h2&gt;

&lt;p&gt;Vaporwave is emerged in the early 2010s, defined partly by slowed-down, chopped and screwed samples of smooth jazz, elevator, R&amp;amp;B, and lounge music from the 1980s and 1990s. Vaporwave paintings incorporate early Internet imagery, late 1990s web design, glitch art, anime, 3D-rendered objects and others.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvul56oki9932gk4toggr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvul56oki9932gk4toggr.png" alt="Vaporwave Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Zen
&lt;/h2&gt;

&lt;p&gt;Zen art is known for elegant simplicity, often in black ink on white paper or silk.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuylxsclqu73u6bzqgr05.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuylxsclqu73u6bzqgr05.png" alt="Zen Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Appendix
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Copyrights on these images
&lt;/h2&gt;

&lt;p&gt;The platforms used to generate these images handle copyright in slightly different manner.&lt;/p&gt;

&lt;p&gt;Please let me make the following explicit: I did never upload, modify or otherwise use any &lt;em&gt;official&lt;/em&gt; image of YODA, as these might or will be copyrighted and trademarked by Disney Inc. and George Lucas as the inventor and creator of the YODA character.&lt;/p&gt;

&lt;h3&gt;
  
  
  Concerning DALL.E copyrights
&lt;/h3&gt;

&lt;p&gt;See their &lt;a href="https://openai.com/api/policies/terms/" rel="noopener noreferrer"&gt;terms of service&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You may provide input to the Services (“Input”), and receive output generated and returned by the Services based on the Input (“Output”). Input and Output are collectively “Content.” As between the parties and to the extent permitted by applicable law, you own all Input, and subject to your compliance with these Terms, OpenAI hereby assigns to you all its right, title and interest in and to Output. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Concerning Midjourney copyrights
&lt;/h3&gt;

&lt;p&gt;See their &lt;a href="https://midjourney.gitbook.io/docs/terms-of-service" rel="noopener noreferrer"&gt;terms of service&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Subject to the above license, you own all Assets you create with the Services. This does not apply if you fall under the exceptions below.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;These exceptions are unpaid members and large cooperations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Acknowledgements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Thanx to Simon for the improved version of the &lt;em&gt;vaporwave&lt;/em&gt; Yoda. &lt;/li&gt;
&lt;li&gt;Thanx to Anton R. for pointing me to Glitch art.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>art</category>
      <category>example</category>
      <category>yoda</category>
    </item>
    <item>
      <title>The ART-ificial Yoda Gallery</title>
      <dc:creator>Dr. Gernot Starke</dc:creator>
      <pubDate>Wed, 05 Oct 2022 20:32:02 +0000</pubDate>
      <link>https://forem.com/gernotstarke/the-art-ificial-yoda-gallery-47oe</link>
      <guid>https://forem.com/gernotstarke/the-art-ificial-yoda-gallery-47oe</guid>
      <description>&lt;p&gt;(a number of updates to this post got lost in digital nirvana - please come back in a few days for the enhanced version of this article...)&lt;/p&gt;

&lt;p&gt;Recently, several AI (&lt;em&gt;artificial intelligence&lt;/em&gt;) based image generation systems became popular. &lt;/p&gt;

&lt;p&gt;This article gives a glimpse of what is currently (October 2022) possible with three major players in this league. In addition, you can learn a bit about different styles of art.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://labs.openai.com/" rel="noopener noreferrer"&gt;DALL.E&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="https://midjourney.com" rel="noopener noreferrer"&gt;midjourney&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://beta.dreamstudio.ai/dream" rel="noopener noreferrer"&gt;DreamStudio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.craiyon.com/" rel="noopener noreferrer"&gt;Craiyon&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want to try for yourself, the first three systems require a (free) registration and will allow a few images to be generated free of charge.&lt;br&gt;
Craiyon can be used without registration.&lt;/p&gt;

&lt;p&gt;Beware: Playing around with these image generators can become an addiction - so you might want to set a timer before you start (at least I spend hours and hours ...)&lt;/p&gt;

&lt;h2&gt;
  
  
  Our subject
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Yoda (/ˈjoʊdə/) is a fictional character in the Star Wars universe. He is a small, green humanoid alien, powerful with the Force and a leading member of the Jedi Order.&lt;br&gt;
quoted from &lt;a href="https://en.wikipedia.org/wiki/Yoda" rel="noopener noreferrer"&gt;Wikipedia&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ok, you already knew this, I suppose.&lt;/p&gt;

&lt;p&gt;All rights to the original Yoda character belong to Disney Inc. and George Lucas.&lt;/p&gt;

&lt;h2&gt;
  
  
  A short introduction to Yoda
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbq2u3hs31f2tkpcdyp4h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbq2u3hs31f2tkpcdyp4h.png" alt="Photo-realistic Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://labs.openai.com/s/IZeoSjqyx0MJiwU1g84BjI6U" rel="noopener noreferrer"&gt;DALL.E&lt;/a&gt; created this with the query "photo realistic image of yoda".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fihv194brt6kgw7awpj93.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fihv194brt6kgw7awpj93.png" alt="Yoda walking in desert (DALL.E)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This image has also been generated by DALL.E, with the command "Yoda walking in desert".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp0tpni0bfxp8p8n09uep.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp0tpni0bfxp8p8n09uep.png" alt="Yoda on the beach (DreamStudio)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;"Yoda on the beach" was the phrase that made &lt;a href=""&gt;DreamStudio&lt;/a&gt; create the previous one.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4lawl33o6b96qgxwwc6d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4lawl33o6b96qgxwwc6d.png" alt="Yoda with good karma"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Yoda as drawn by real artists
&lt;/h1&gt;

&lt;p&gt;And now let the AI systems re-create the styles of various famous artists, starting a few hundred years back.&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Giovanni Bellini
&lt;/h2&gt;

&lt;p&gt;Giovanni Bellini (born approx. 1430) was an Italian Renaissance painter, from the Venetian school. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncxr4tjtu7rcr1rlo1og.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncxr4tjtu7rcr1rlo1og.png" alt="Bellini-style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Hieronymus Bosch
&lt;/h2&gt;

&lt;p&gt;Hieronymus Bosch (born approx 1450) was a Dutch painter, a representative of the famous Netherlandish painting school. &lt;/p&gt;

&lt;p&gt;No, it's not guy from the current detective and crime series you saw on your favorite streaming channel...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp37p1259szzttyc1ehzd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp37p1259szzttyc1ehzd.png" alt="Boschstyle Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Leonardo da Vinci
&lt;/h2&gt;

&lt;p&gt;Leonardo da Vinci (born 1452) was an Italian multi-talent, who was active as a painter, engineer, scientist, architect and other disciplines.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4zqka6mac06vumkaiv1i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4zqka6mac06vumkaiv1i.png" alt="Da Vinci style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Albrecht Duerer
&lt;/h2&gt;

&lt;p&gt;Albrecht Dürer (born 1471) was a German painter of the Renaissance, especially famous for woodcut prints.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Felqeyb263f0x3i7cclvr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Felqeyb263f0x3i7cclvr.png" alt="Duerer-style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Giuseppe Arcimboldo
&lt;/h2&gt;

&lt;p&gt;Giuseppe Arcimboldo (born about 1527) was an Italian painter best known for creating portrait heads made entirely of objects. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4reda8nndbadqp9crag7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4reda8nndbadqp9crag7.png" alt="Arcimboldo style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Rembrandt
&lt;/h2&gt;

&lt;p&gt;Rembrandt (born 1606) was a Dutch Golden Age painter and is considered one of the greatest visual artists and the most important in Dutch art history.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnb2b3y3dhgctii4qgq1q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnb2b3y3dhgctii4qgq1q.png" alt="Laughing Yoda, Rembrandt style"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw1xu3b4mys0dey60jykf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw1xu3b4mys0dey60jykf.png" alt="Rembrandt style Yoda, variation"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F179sxav3k7tsf5xqxu5g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F179sxav3k7tsf5xqxu5g.png" alt="Crying Yoda, Rembrandt style"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Francisco Goya
&lt;/h2&gt;

&lt;p&gt;Francisco José de Goya y Lucientes (born 1746) was a Spanish romantic painter, considered the most important Spanish artist of the late 18th and early 19th centuries.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fejnyz3mw41mcerhglivs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fejnyz3mw41mcerhglivs.png" alt="Goya style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Carl Spitzweg
&lt;/h2&gt;

&lt;p&gt;Carl Spitzweg (born 1808) was a German romanticist painter of the Biedermeier era. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxg954nc4iuj9u2hlp5rs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxg954nc4iuj9u2hlp5rs.png" alt="Spitzweg style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Edgar Degas
&lt;/h2&gt;

&lt;p&gt;Edgar Degas (born 1834) was a French Impressionist artist, known for his pastel and oil drawings. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fytkkscbjardb1gpmrv6y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fytkkscbjardb1gpmrv6y.png" alt="Degas style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Thomas Moran
&lt;/h2&gt;

&lt;p&gt;Thomas Moran (born 1837) was an American painter in New York whose work often showed the Rocky Mountains.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0hz3jjbim7qk8uu25zv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0hz3jjbim7qk8uu25zv.png" alt="Thomas Moran style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Paul Cézanne
&lt;/h2&gt;

&lt;p&gt;Paul Cézanne (born 1839) was a French artist and Post-Impressionist painter whose work lead the 19th-century style of painting to the radically different painting of the 20th century.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkj0iipzryqz8lb3vysv9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkj0iipzryqz8lb3vysv9.png" alt="Cézann style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of van Gogh pointilism
&lt;/h2&gt;

&lt;p&gt;Vincent van Gogh (born 1853) was a Dutch Post-Impressionist painter who became one of the most famous individuals in Western art.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fko1t61qp994ko08ymqgd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fko1t61qp994ko08ymqgd.png" alt="van-Gogh style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Gustav Klimt
&lt;/h2&gt;

&lt;p&gt;Gustav Klimt (born 1862) was an Austrian symbolist painter.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhftjn7dj4ouxii1p1z86.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhftjn7dj4ouxii1p1z86.png" alt="Gustav Klimt style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Edvard Munch
&lt;/h2&gt;

&lt;p&gt;Edvard Munch (born 1863) was a Norwegian painter. His best known work, The Scream (1893), has become incredibly famous. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyxq91j1hjykd5i6htw6g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyxq91j1hjykd5i6htw6g.png" alt="Munch style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Alfred Stieglitz
&lt;/h2&gt;

&lt;p&gt;Alfred Stieglitz (born 1864) was an American photographer who made photography an accepted art form.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fifib8uy6x630ngnjasym.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fifib8uy6x630ngnjasym.png" alt="Stieglitz style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Kandinski
&lt;/h2&gt;

&lt;p&gt;Wassily Kandinsky (born 1866) was a Russian painter and art theorist. Kandinsky is generally credited as one of the pioneers of abstraction in western art.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsaxsfrg2vfvbhy5zquyj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsaxsfrg2vfvbhy5zquyj.png" alt="Kandinski style Yoda by Midjourney"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Emil Nolde
&lt;/h2&gt;

&lt;p&gt;Emil Nolde (born 1867) was a German-Danish painter, one of the first Expressionists, a member of &lt;em&gt;Die Brücke&lt;/em&gt;, known for exploring color.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7yxiaq5wtvm4fkiq2np2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7yxiaq5wtvm4fkiq2np2.png" alt="Nolde style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Paul Klee
&lt;/h2&gt;

&lt;p&gt;Paul Klee (born 1879) was a Swiss-born German artist with an individual style influenced by expressionism, cubism, and surrealism. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faowjr5n6a32l7kjikrmf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faowjr5n6a32l7kjikrmf.png" alt="Paul Klee style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Pablo Picasso
&lt;/h2&gt;

&lt;p&gt;Pablo Picasso (born 1881) was a highly influential Spanish painter, who co-founded the Cubist movement.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0mfmn4tmhc9ogn4g6ycr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0mfmn4tmhc9ogn4g6ycr.png" alt="Picasso style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Joan Miró
&lt;/h2&gt;

&lt;p&gt;Joan Miró i Ferrà (born 1893) was a Catalan painter, known for Surrealistic paintings.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkeecjoi4brjag2q4c2a7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkeecjoi4brjag2q4c2a7.png" alt="Miró style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Norman Rockwell
&lt;/h2&gt;

&lt;p&gt;Norman Rockwell (born 1894) was an American illustrator, known for reflecting the country's culture in his images.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgv0cu7xkxjrbcv9czgqd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgv0cu7xkxjrbcv9czgqd.png" alt="Norman Rockwell style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Salvador Dali
&lt;/h2&gt;

&lt;p&gt;Salvador Dali (born 1904) was a Spanish surrealist artist known for his technical skill, and bizarre images in his paintings. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F87z4khervrmtk2pf16d2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F87z4khervrmtk2pf16d2.png" alt="Dali style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of pointilism
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6c9r0qv9rmwz6q5inj4f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6c9r0qv9rmwz6q5inj4f.png" alt="Pointilistic Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Roy Lichtenstein
&lt;/h2&gt;

&lt;p&gt;Roy Lichtenstein (born 1923) was an American pop artist. Along with Andy Warhol and others he lead the new art movement.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjg628vd1swtt13d4g9uc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjg628vd1swtt13d4g9uc.png" alt="Lichtenstein style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Robert Rauschenberg
&lt;/h2&gt;

&lt;p&gt;Milton Ernest "Robert" Rauschenberg (born 1925) was an American painter whos works anticipated the Pop art movement. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9qeldr4u0g4m16olk1hu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9qeldr4u0g4m16olk1hu.png" alt="Rauschenberg style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Bernard Buffet
&lt;/h2&gt;

&lt;p&gt;Bernard Buffet (born 1928) was a French painter, known for his extensive body of primarily figurative work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9kl3tid61qmx5ynzxam2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9kl3tid61qmx5ynzxam2.png" alt="Buffet style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Andy Warhol
&lt;/h2&gt;

&lt;p&gt;Andy Warhol (born 1928) was an American visual and film artist who was a leading figure in pop art style. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsr0m50pu32q025m1blvj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsr0m50pu32q025m1blvj.png" alt="Sad Yoda in Andy Warhol style (DALL.E)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3aeodnjmp233wv85xc0f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3aeodnjmp233wv85xc0f.png" alt="Andy Warhol style Yoda (midjourney)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Walasse Ting
&lt;/h2&gt;

&lt;p&gt;Walasse Ting (born 1929) was a Chinese-American visual artist, known for his colorful paintings. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fndj1i9ddhdhjf8n9wv9g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fndj1i9ddhdhjf8n9wv9g.png" alt="Ting style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Solomon LeWitt
&lt;/h2&gt;

&lt;p&gt;Solomon "Sol" LeWitt (born 1928) was an American known for various styles, including conceptual art and minimalism.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Facdrd5gdcsdh5066ynup.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Facdrd5gdcsdh5066ynup.png" alt="LeWitt style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Fernando Botero
&lt;/h2&gt;

&lt;p&gt;Fernando Botero Angulo (born 1932) is a Colombian figurative artist and sculptor, who often depicts people and figures in exaggerated volume, which may represent political criticism or humor.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ypmdl0enpy6bkryipor.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ypmdl0enpy6bkryipor.png" alt="Botero style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Gerhard Richter
&lt;/h2&gt;

&lt;p&gt;Gerhard Richter (born 1932) is a German visual artist, known for his abstract and photorealistic paintings. He is one of the most important contemporary German artists.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmwd0f3uetzs0m0ha3jh1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmwd0f3uetzs0m0ha3jh1.png" alt="Gerhard Richter style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Yoko Ono
&lt;/h2&gt;

&lt;p&gt;Yoko Ono (born 1933) is a Japanese multimedia artist, singer, songwriter, and peace activist, formerly married to John Lennon.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyy4ikoqj28alf7lofj2o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyy4ikoqj28alf7lofj2o.png" alt="Yoko Ono style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Keith Haring
&lt;/h2&gt;

&lt;p&gt;Keith Haring (born 1958) was an American artist, whose style emerged from the New York City graffiti pop art of the 1980s.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F37xqog91jc69qv7cq1ur.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F37xqog91jc69qv7cq1ur.png" alt="Keith Haring style Yoda (midjourney)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4zvuu4gbf8c6olqk6ul4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4zvuu4gbf8c6olqk6ul4.png" alt="Keith Haring style Yoda (DALL.E)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Kehinde Wiley
&lt;/h2&gt;

&lt;p&gt;Kehinde Wiley (born 1977) is an African-American portrait painter based in New York City, known for naturalistic paintings.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2vzm4uipxtuyrh5cz8ji.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2vzm4uipxtuyrh5cz8ji.png" alt="Kehinde Wiley style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxdzw240r6q7vgss2e1ch.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxdzw240r6q7vgss2e1ch.png" alt="Crying Yoda in Kehinde Wiley style"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Yasutomo Oka
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy3ah041ieu9dbt09iaz9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy3ah041ieu9dbt09iaz9.png" alt="Yasutomo Oka style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yasutomo Oka (born 1983) is a Japanese painter, known for his photo-realistic paintings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Yoda in style of Banksy
&lt;/h2&gt;

&lt;p&gt;Banksy is a pseudonymous England-based street artist whose real name and identity remain unconfirmed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjnejyldnywj2gj8b23p5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjnejyldnywj2gj8b23p5.png" alt="Banksy style Yoda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Yoda in various art styles
&lt;/h1&gt;

&lt;p&gt;Please see the &lt;a href="https://simplicable.com/new/art-styles" rel="noopener noreferrer"&gt;following article&lt;/a&gt; for a detailed introduction to art styles in general.&lt;/p&gt;

&lt;h1&gt;
  
  
  Yoda in modern African style
&lt;/h1&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Craiyon&lt;/th&gt;
&lt;th&gt;DALL.E&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvhb7ppxhsba982h2mjl4.png" alt="Yoda in African style (craiyon)"&gt;&lt;/td&gt;
&lt;td&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffa4njbm3brmn6ke7z7fp.png" alt="Yoda in modern African art"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h1&gt;
  
  
  Appendix
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Copyrights on these images
&lt;/h2&gt;

&lt;p&gt;The platforms used to generate these images handle copyright in slightly different manner.&lt;/p&gt;

&lt;p&gt;Please let me make the following explicit: I did never upload, modify or otherwise use any &lt;em&gt;official&lt;/em&gt; image of YODA, as these might or will be copyrighted and trademarked by Disney Inc. and George Lucas as the inventor and creator of the YODA character.&lt;/p&gt;

&lt;h3&gt;
  
  
  Concerning DALL.E copyrights
&lt;/h3&gt;

&lt;p&gt;See their &lt;a href="https://openai.com/api/policies/terms/" rel="noopener noreferrer"&gt;terms of service&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You may provide input to the Services (“Input”), and receive output generated and returned by the Services based on the Input (“Output”). Input and Output are collectively “Content.” As between the parties and to the extent permitted by applicable law, you own all Input, and subject to your compliance with these Terms, OpenAI hereby assigns to you all its right, title and interest in and to Output. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Concerning Midjourney copyrights
&lt;/h3&gt;

&lt;p&gt;See their &lt;a href="https://midjourney.gitbook.io/docs/terms-of-service" rel="noopener noreferrer"&gt;terms of service&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Subject to the above license, you own all Assets you create with the Services. This does not apply if you fall under the exceptions below.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;These exceptions are unpaid members and large coorperations.&lt;/p&gt;

&lt;h2&gt;
  
  
  More information
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://michaelhoweely.com/2022/08/16/comparing-craiyon-dall-e-2-and-midjourney/" rel="noopener noreferrer"&gt;Article&lt;/a&gt; comparing various image generation systems.&lt;/li&gt;
&lt;li&gt;Wikipedia article on &lt;a href="https://en.wikipedia.org/wiki/Artificial_intelligence_art" rel="noopener noreferrer"&gt;AI art&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Vladimir Alexeev: (German) &lt;a href="https://www.heise.de/hintergrund/KI-System-DALL-E-Ein-Alleskoenner-fuer-Kreative-7206468.html?seite=all#nav_auswirkungen__12" rel="noopener noreferrer"&gt;Article on DALL.E&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Acknowledgements
&lt;/h2&gt;

&lt;p&gt;Thanx to Lisa Moritz and Peter Hruschka for additional suggestions.&lt;/p&gt;

</description>
      <category>yoda</category>
      <category>ai</category>
      <category>art</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>How to regain concentration and focus</title>
      <dc:creator>Dr. Gernot Starke</dc:creator>
      <pubDate>Wed, 03 Aug 2022 12:34:00 +0000</pubDate>
      <link>https://forem.com/arc42/how-to-regain-concentration-and-focus-32b9</link>
      <guid>https://forem.com/arc42/how-to-regain-concentration-and-focus-32b9</guid>
      <description>&lt;p&gt;This article was originally published at &lt;a href="https://www.innoq.com/en/blog/wie-ich-meine-konzentration-wiederfand/"&gt;INNOQ&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;No sooner had I started a task, the next thing I knew I was doing something else. I distracted myself by checking my email inbox every so often, and I was addicted to checking what was going on in the world on various news websites, constantly interrupting the original task.&lt;/p&gt;

&lt;p&gt;You're perfectly right: This sounds completely insane. Somehow these bad habits had sneaked silently into my life.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;News is to the mind what sugar is to the body.&lt;/p&gt;
&lt;p&gt;&lt;br&gt;
Rolf Dobelli, Author and entrepreneur&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;​&lt;br&gt;
And then two lightning bolts struck almost simultaneously: a book and a blog post. &lt;br&gt;
I significantly changed my (digital) life as a result and within only two weeks I was able to get more done again, sleep better, and am significantly happier. &lt;br&gt;
The short version: news diet and productive smartphone use.&lt;br&gt;
​&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--g09bruH9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g29tnqdru0hqatdd8pes.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--g09bruH9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g29tnqdru0hqatdd8pes.jpg" alt="Lightning strikes" width="880" height="382"&gt;&lt;/a&gt;&lt;/p&gt;
Lightning strikes

  

&lt;p&gt;​&lt;/p&gt;

&lt;h2&gt;
  
  
  How my concentration was lost…
&lt;/h2&gt;

&lt;p&gt;For years, I've been producing  &lt;em&gt;content&lt;/em&gt; on a fairly regular basis in the form of talks, books, journal articles, blog posts, podcasts, and contributions to open-source projects (To quantify that: &lt;a href="https://www.gernotstarke.de/buecher/"&gt;30+ books or book editions&lt;/a&gt; and about a hundred articles in various magazines within the last 20 years - that's still one and a half books and five articles on average per year).&lt;br&gt;
​&lt;br&gt;
In the last few months, I ran out of steam, which made me personally very discontent. In early 2022 I published the last blog post, and in late 2021 the last articles. For the third time, I postponed the new edition of the arc42-in-Action book ...&lt;/p&gt;

&lt;p&gt;I had plenty of ideas, but somehow I couldn't put them down on paper. Unfortunately, ideas alone are not enough: the ideas also have to be made into reality, structured, and written down in comprehensible ways.&lt;/p&gt;

&lt;p&gt;Moreover, I was always a dedicated textbook reader, and binge-read a new book every few weeks. That, too, became more and more difficult for me - even though I was genuinely interested in the topics of the unread books on the shelf.&lt;br&gt;
Now, I could chalk it all up to the pandemic, my age (don't ask...), or whatever. But finding bogus excuses is just not my thing.&lt;br&gt;
​&lt;br&gt;
​&lt;br&gt;
"You've got to do something about that," I told myself. At first, I tried to increase my productivity and creativity by getting up earlier. No such luck. Staying up later in the evening didn't work either.&lt;br&gt;
​&lt;br&gt;
Then I tried what I've recommended (successfully!) countless times in my job as an IT consultant: A systematic analysis of the situation, a self-review.&lt;br&gt;
​&lt;/p&gt;

&lt;h4&gt;
  
  
  The self-analysis
&lt;/h4&gt;

&lt;p&gt;I tried to analyze my own way of working. I quickly noticed that it was becoming increasingly difficult for me to concentrate on individual tasks: No sooner had I started a task than I was already doing something else in between - or &lt;em&gt;distracted&lt;/em&gt; myself with emails or various news websites. Likewise, I sat at preparing a lecture - and checked the INNOQ Slack channels in between. Furthermore, I continued to write on a slide - and took a brief look at my smartphone to see what's been happening on WhatsApp or Signal. And since I was holding the phone in my hand anyway, I could read a few news items on BBC-News there too.&lt;/p&gt;

&lt;p&gt;Did you know that smartphone users unlock and look at their phones an average of 80-100 times a day (source: &lt;a href="https://www.prnewswire.com/news-releases/americans-check-their-phones-96-times-a-day-300962643.html"&gt;Cision Newswire&lt;/a&gt;, several other sources giving similar numbers)? I was one of them.&lt;br&gt;
News websites like &lt;a href="https://edition.cnn.com/"&gt;CNN&lt;/a&gt;, &lt;a href="https://www.wsj.com/"&gt;WSJ&lt;/a&gt;, and &lt;a href="https://www.bbc.com/"&gt;BBC&lt;/a&gt; had me as a permanent customer.&lt;br&gt;
​&lt;/p&gt;

&lt;p&gt;For me, these context switches already had addiction-like traits. &lt;br&gt;
Even while I was watching a series (yes, I admit that I like to &lt;em&gt;binge&lt;/em&gt; on one or two episodes), I would pick up the phone or tablet in between and casually check the news. &lt;br&gt;
Against my better judgment, I also checked my e-mails first thing in the morning before I even drank my first espresso.&lt;br&gt;&lt;br&gt;
And in my inbox, there were always various news summaries, from stock-market news, and international politics up to technology updates.&lt;br&gt;
​&lt;br&gt;
Unfortunately, all this news has done me more harm than good: For my coaching and consulting engagements, I don't need to know anything about current domestic or foreign politics. &lt;br&gt;
For my software architecture and engineering workshops, neither stock market trends nor the details of international terrorist acts are of any value. &lt;br&gt;
My articles and books deal with software and software engineering, not with climate or politics.&lt;br&gt;
​&lt;/p&gt;

&lt;h2&gt;
  
  
  A self-discovery
&lt;/h2&gt;

&lt;p&gt;Constantly switching between (sophisticated) technical work, the news from around the world, and private communication on personal and professional topics, I would argue, cost me a significant amount of my ability to concentrate.&lt;br&gt;
​&lt;br&gt;
My brain (apparently) doesn't handle frequent context switches well. Moreover, my brain must have unconsciously perceived distractions as something positive - and, like Pavlov's dog, kept wanting more of them, at increasingly shorter intervals.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FZcnwx_b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7hrr040ekbr2pg3skc20.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FZcnwx_b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7hrr040ekbr2pg3skc20.jpg" alt="A (Pavlovian) dog" width="880" height="361"&gt;&lt;/a&gt;&lt;/p&gt;
A (Pavlovian) dog

   

&lt;p&gt;I noticed the lack of concentration myself. However, my own fainthearted attempts, with Pomodoro timer and calming sounds, clearly failed.&lt;br&gt;
Effective remedies &lt;em&gt;from the outside&lt;/em&gt; had to come first, two major sources helped me:&lt;br&gt;
​&lt;br&gt;
While travelling to an architecture workshop, I sat on the train, not reading the news for a change, but attempting to read a book.&lt;/p&gt;

&lt;p&gt;For some time now, I have been using &lt;a href="https://www.blinkist.com/"&gt;Blinkist&lt;/a&gt; to read short summaries of various non-fiction books, to find out for myself whether I is worth for me to read the original of these books in their entirety.&lt;/p&gt;

&lt;p&gt;So - I'm sitting on the train and reading one of these &lt;a href="https://www.dobelli.com/en/books/"&gt;Blinks&lt;/a&gt;, when I'm struck by a mental lightning bolt: I felt so &lt;em&gt;caught&lt;/em&gt; by Rolf Dobelli's explanations, caught in my concentration trap, that I spontaneously decided to get serious. Let me quote from this book:&lt;br&gt;
​&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;News is not good for us:&lt;/strong&gt; &lt;br&gt;
It clouds our mind, distorts our view of what is really important, robs us of time, makes us depressed and paralyzes our willpower.&lt;br&gt;
​Rolf Dobelli, Author and entrepreneur&lt;br&gt;
​&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Paralyze my willpower, rob me of time. &lt;/p&gt;

&lt;p&gt;That was precisely my problem.&lt;/p&gt;

&lt;p&gt;While still sitting on the train, I decided to try a strict break from any news (&lt;em&gt;news&lt;/em&gt;, not e-mails or other messages) for a while.&lt;/p&gt;

&lt;p&gt;However, that wasn't enough: I remembered a blog post I had read a few years ago - about the &lt;a href="https://betterhumans.pub/how-to-set-up-your-iphone-for-productivity-focus-and-your-own-longevity-bb27a68cc3d8"&gt;productive configuration of smartphones&lt;/a&gt;, which has the promising subtitle &lt;em&gt;Configure Your iPhone to Work for You, Not Against You&lt;/em&gt;.&lt;br&gt;
I therefore decided to optimize my iPhone for maximum productivity and to reduce or even eliminate distractions.&lt;br&gt;
​&lt;/p&gt;

&lt;h2&gt;
  
  
  Drastic, but effective
&lt;/h2&gt;

&lt;p&gt;​&lt;br&gt;
​&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A (currently very strict) &lt;strong&gt;zero-news-diet&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;(Re)configure smartphone for high productivity and minimal distractions.&lt;/li&gt;
&lt;li&gt;Reduce distractions on tablets and computers.
​
Add to that slight changes I made to my daily habits: I've resolved (and managed for a few weeks now) to stop staring at my phone in the morning, and to stop using my iPhone at all in the evening after 8 PM at the latest (exception: setting an alarm for the next morning).
​&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;​&lt;/p&gt;

&lt;h2&gt;
  
  
  Zero News Diet
&lt;/h2&gt;

&lt;p&gt;During the aforementioned train ride, I cancelled my subscription to my formerly favorite online news portal (the German "Spiegel-Online") and deleted the associated app from my iPhone. I used the initial motivation to cancel additional news subscriptions and deleted the their apps from my smartphone and iPad so that I wouldn't be tempted. &lt;/p&gt;

&lt;p&gt;I have resolved &lt;strong&gt;very firmly&lt;/strong&gt; not to read any news at all for a while. In other words, a zero news diet. That was really hard for me for two or three days. Yet, that alone was a startling realization for me: I was actually &lt;em&gt;addicted&lt;/em&gt; to news and variety... and &lt;em&gt;cold withdrawal&lt;/em&gt; is hard with any kind of addiction, as you know.&lt;/p&gt;

&lt;p&gt;I purposefully invested the hours gained each day.&lt;br&gt;
As a kind of early reward for my zero news diet, I treated myself to an interesting non-fiction book as a PDF (by the way, the infamous "Thinking, Fast and Slow" by the great Daniel Kahnemann). &lt;br&gt;
The result: I was thrilled to have made good progress without any distractions.&lt;/p&gt;

&lt;p&gt;To support my news diet, I instructed my browser (Firefox) to &lt;em&gt;not&lt;/em&gt; present me with recommendations for supposedly interesting or important topics on new tabs or windows.&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img alt="Firefox preferences: No more news suggestions"&gt;&lt;/a&gt;&lt;/p&gt;
Firefox preferences: No more news suggestions

  

&lt;p&gt;​&lt;br&gt;
​&lt;/p&gt;

&lt;h2&gt;
  
  
  Reconfigure Smartphone
&lt;/h2&gt;

&lt;p&gt;The above quote, "Configure Your iPhone to Work for You, Not Against You," sets the objective: &lt;br&gt;
It's the subtitle of a very long &lt;a href="https://betterhumans.pub/how-to-set-up-your-iphone-for-productivity-focus-and-your-own-longevity-bb27a68cc3d8"&gt;blog post&lt;/a&gt; by Tony Stubblebine.&lt;br&gt;
In addition to his many configuration suggestions, Tony also gives various advice for being more attentive and healthy, entirely worth reading in my opinion.&lt;br&gt;
​&lt;br&gt;
I summarize the things most important for me, which he illustrates in his article with many screenshots and explanations:&lt;br&gt;
​&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Turn off (almost) all notifications – so those red dots aren't constantly vying for your attention or making you feel guilty.&lt;/li&gt;
&lt;li&gt;Hide &lt;em&gt;social media&lt;/em&gt; apps as well as possible. Facebook, Instagram, Twitter &amp;amp; Co act like drugs. They deserve to be removed from the start/home screen and moved somewhere in the back of your smartphone. I deleted the Twitter app and kept Instagram only because it allows me to catch up a bit with my adult children.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Messaging apps (email, WhatsApp, Signal and co.) go into a folder, and preferably on the second screen of that folder. For me, it looks like this (K11n stands for communication):&lt;br&gt;
​&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jRQPsW9P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/62c5pvulqi9wq70qz2vg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jRQPsW9P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/62c5pvulqi9wq70qz2vg.png" alt="Communication apps – unimportant ones need more “swipe” gestures" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;
Communication apps – unimportant ones need more “swipe” gestures

  &lt;/li&gt;
&lt;li&gt;&lt;p&gt;Turn on do-not-disturb-mode, the longer, the better. At least from evening until morning.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lifting the phone should &lt;strong&gt;not&lt;/strong&gt; unlock it. This setting is called "Display &amp;amp; Brightness/Activate on Lift" on the iPhone - and should definitely be turned off.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Turn on the screen time widget – this gives me control over all the things I spend my smartphone time on... Meanwhile, I have made a sport out of getting to the smallest value possible.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Turn on content and app restrictions. I only allow myself 15 minutes a day for email and Instagram.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install a swipe keyboard app, so I can text faster on the phone and not have to awkwardly &lt;em&gt;click&lt;/em&gt; each letter. I use &lt;a href="https://www.microsoft.com/en-us/swiftkey"&gt;Microsoft Swiftkey&lt;/a&gt; (yes correct, a Microsoft app on the iPhone) for this, others do better with Google's &lt;a href="https://en.wikipedia.org/wiki/Gboard"&gt;Gboard&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wallpapers in muted colors. I chose a completely black home screen, and a reduced color lock screen:&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2YRyw4Bx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5wqnwc7byxrhwmqt7x5h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2YRyw4Bx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5wqnwc7byxrhwmqt7x5h.png" alt="iPhone backgrounds in muted colors" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;
iPhone backgrounds in muted colors



&lt;p&gt;​&lt;/p&gt;

&lt;h2&gt;
  
  
  Reduce distractions on tablets and computers
&lt;/h2&gt;

&lt;p&gt;You will find similar preference settings on your tablet and your computer, respectively. I set those to reduce &lt;em&gt;notifications&lt;/em&gt; as much as possible:&lt;br&gt;
​&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mtryByo7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gyr8tzs3ocsp5evsrmr5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mtryByo7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gyr8tzs3ocsp5evsrmr5.png" alt="Notifications settings, almost all turned off" width="664" height="729"&gt;&lt;/a&gt;&lt;/p&gt;
Notifications settings, almost all turned off



&lt;h2&gt;
  
  
  In case you fall off the wagon
&lt;/h2&gt;

&lt;p&gt;In case you want to be a bit stricter with yourself, there are various blockers for popular desktop platforms that can prevent access to certain websites or applications for certain times. These can improve your digital self-discipline. I tried &lt;a href="https://getcoldturkey.com/"&gt;ColdTurkey&lt;/a&gt; and like it a lot. However, I hope to become disciplined enough to stick to my new habits without this electronic tether… at least in the near future.&lt;br&gt;
​&lt;/p&gt;

&lt;h2&gt;
  
  
  Furthermore...
&lt;/h2&gt;

&lt;p&gt;Besides the aforementioned settings and the zero news diet, I like to listen to &lt;em&gt;soundscapes&lt;/em&gt; for (supposedly) better mental focus when working intensively at my desk. I write &lt;em&gt;supposedly&lt;/em&gt; because I like this kind of aural background, but can't prove that it helps me in any way. My family, by the way, thinks it's horrible.&lt;/p&gt;

&lt;p&gt;If you want to try it out: My two favorites are &lt;a href="https://endel.io/about"&gt;Endel&lt;/a&gt; and &lt;a href="https://www.brain.fm/"&gt;brain.fm&lt;/a&gt;. Works on both smartphones and desktops (but please don’t say I didn’t warn you…).&lt;br&gt;
​&lt;br&gt;
I still haven't gotten comfortable with Pomodoro timers, they annoy me more than they help.&lt;br&gt;
​&lt;br&gt;
And finally, thanx to Łukasz, you might want to restrict your YouTube usage with the &lt;a href="https://unhook.app/"&gt;unhook&lt;/a&gt; extension. I tried that and immediately liked it. You have to tweak the default settings, though. No more wasted hours due to the addictive YouTube proposition algorithm...&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Why don't you start a self-experiment, and refrain from reading sports, politics, business, and technology news as much as possible for a while? Reduce your smartphone time drastically for one or two weeks, and enjoy the time gained with a good book, a personal conversation or approach a previously abandoned activity that has been left undone so far (due to a perceived lack of time…)&lt;/p&gt;

&lt;p&gt;Good luck – and I look forward to your feedback.&lt;br&gt;
​&lt;/p&gt;

&lt;h2&gt;
  
  
  Acknowledgements
&lt;/h2&gt;

&lt;p&gt;Thanks to Jochen Christ, Joachim Praetorius, Jan Seeger and Ben Wolf for reviews and constructive comments.  @m and Joy Heron have drastically improved readability and wording.&lt;br&gt;
​&lt;br&gt;
This article was originally published at &lt;a href="https://www.innoq.com/en/blog/wie-ich-meine-konzentration-wiederfand/"&gt;INNOQ&lt;/a&gt;, achieved a #4 rank and more than 300 comments on &lt;a href="https://news.ycombinator.com"&gt;Hackernews&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Image Sources
&lt;/h3&gt;

&lt;p&gt;​&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://unsplash.com/photos/ngqyo2AYYnE"&gt;Dog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://unsplash.com/photos/vmvlzJz1lHg"&gt;Lightning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://unsplash.com/photos/7KLa-xLbSXA"&gt;Header image&lt;/a&gt; by Paul Skorupskas
​&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;​&lt;br&gt;
​&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>motivation</category>
    </item>
    <item>
      <title>Enable ssh access to multipass vms</title>
      <dc:creator>Dr. Gernot Starke</dc:creator>
      <pubDate>Mon, 01 Aug 2022 15:03:00 +0000</pubDate>
      <link>https://forem.com/arc42/enable-ssh-access-to-multipass-vms-36p7</link>
      <guid>https://forem.com/arc42/enable-ssh-access-to-multipass-vms-36p7</guid>
      <description>&lt;h4&gt;
  
  
  The problem
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You are using &lt;a href="https://multpass.run"&gt;multipass&lt;/a&gt; to create lightweight virtual (Ubuntu) machines.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You want to &lt;code&gt;ssh&lt;/code&gt; into those machines, because you cannot or don't want to use the &lt;em&gt;standard&lt;/em&gt; shell command &lt;code&gt;multipass shell &amp;lt;name-of-vm&amp;gt;&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The naive approach fails with &lt;code&gt;permission denied&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ ssh 192.168.205.7
The authenticity of host '192.168.205.7 (192.168.205.7)' can't be established.
ED25519 key fingerprint is SHA256:lWKUbxxxx.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.205.7' (ED25519) to the list of known hosts.
gernotstarke@192.168.205.7: Permission denied (publickey).

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Permission denied, although there is a route to this virtual machine available...&lt;/p&gt;

&lt;h3&gt;
  
  
  Different approaches
&lt;/h3&gt;

&lt;p&gt;Two approaches have been documented elsewhere:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add an ssh-key to an existing virtual machine (explained by &lt;a href="https://dev.to/josuebustos/vs-code-remote-ssh-multipass-dn8"&gt;Josue Bustos here&lt;/a&gt;). Downside of this approach: You have to repeat it (more or less manually) for all new VMs you create with &lt;code&gt;multipass launch&lt;/code&gt;. Therefore, let's look at a solution that will also work for new VMs...&lt;/li&gt;
&lt;li&gt;Pass an ssh-key while creating a multipass VM (explained in detail by &lt;a href="https://www.ivankrizsan.se/2020/12/23/multipass-key-based-authentication/"&gt;Ivan Krizsan here&lt;/a&gt;). In short: You generate a new ssh-key, and pass the public key into every new VM. I summarize the required steps below.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  The solution
&lt;/h3&gt;

&lt;p&gt;(I mention it again, the idea presented here have first been described by &lt;a href="https://www.ivankrizsan.se/2020/12/23/multipass-key-based-authentication/"&gt;Ivan Krizsan&lt;/a&gt;):&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create new ssh-key for your multipass VMs&lt;/li&gt;
&lt;li&gt;Create a reusable launch configuration for multipass VMs with cloud-init&lt;/li&gt;
&lt;li&gt;Launch new multipass VMs with this configuration&lt;/li&gt;
&lt;li&gt;Find out IP-address of new multipass VM&lt;/li&gt;
&lt;li&gt;ssh into the new VM with this IP-address&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Prerequisites: You have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;multipass installed. If not, it's &lt;a href="https://multipass.run/install"&gt;well-documented on their website&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;a terminal running a decent shell (bash, zsh).&lt;/li&gt;
&lt;li&gt;a decent text editor (VS-Code, nano, vim or the like.)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  1.: Create ssh-key
&lt;/h4&gt;

&lt;p&gt;On your host machine (the one with multipass installed), change to the directory from where you will be launching multipass vms. It can be your home directory, but any other will do.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;ssh-keygen &lt;span class="nt"&gt;-C&lt;/span&gt; vmuser &lt;span class="nt"&gt;-f&lt;/span&gt; multipass-ssh-key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;vmuser&lt;/code&gt; can be any (dummy) username, it will later be used to log into the VM.&lt;/li&gt;
&lt;li&gt;The parameter to &lt;code&gt;-f&lt;/code&gt; is the filename for the generated key. You can choose a name of your liking, but there must not be an existing key with the same name in the same directory.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You will be asked to enter a passphrase, leave that empty! I know, it's not as secure as it should be, but multipass VMs are used for development and test only...&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Empty passphrases are &lt;strong&gt;NOT&lt;/strong&gt; suited for production environments.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  2.: Create cloud-init configuration
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://cloudinit.readthedocs.io/en/latest/"&gt;Cloud-init&lt;/a&gt; is the standardized approach for cross-platform cloud and VM configuration of instance initialization.&lt;br&gt;
Multipass can handle such configuration, we use it to pass the ssh key into the vm.&lt;/p&gt;

&lt;p&gt;In the directory where you generated the ssh-key, execute the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ touch cloud-init.yaml
$ code cloud-init.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can obviously use any text editor of your choice. Nowadays I use VS-Code for most of my edits.&lt;/p&gt;

&lt;p&gt;Put the following content into this file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;users&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;default&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;vmuser&lt;/span&gt;
    &lt;span class="na"&gt;sudo&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ALL=(ALL) NOPASSWD:ALL&lt;/span&gt;
    &lt;span class="na"&gt;ssh_authorized_keys&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;&amp;lt;content of YOUR public key&amp;gt;&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;&amp;lt;content of YOUR public key&amp;gt;&lt;/code&gt; starts with the letters &lt;code&gt;ssh-rsa&lt;/code&gt; and ends with the username you supplied in step 1. Both have to be included!&lt;/li&gt;
&lt;li&gt;Remember, it's yaml: Sensitive to spaces and dashes.&lt;/li&gt;
&lt;li&gt;In case you generated an &lt;code&gt;ed25519&lt;/code&gt; type of key, it starts with &lt;code&gt;ssh-ed25519&lt;/code&gt;. If you don't know what I'm talking about, ignore this last line.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  3.: Launch multipass VM with ssh configuration
&lt;/h4&gt;

&lt;p&gt;You will use a slightly different launch command for your VM, by adding the cloud-init parameter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;multipass launch &lt;span class="nt"&gt;-n&lt;/span&gt; testvm &lt;span class="nt"&gt;--cloud-init&lt;/span&gt; cloud-init.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;testvm&lt;/code&gt; is the name of your new vm, you can choose any name or even leave it blank. In the latter case, multipass will create a random name for you.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cloud-init.yaml&lt;/code&gt; is the name of the configuration file we created in step 2.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  4.: Find IP address of new VM
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ multipass info testvm
Name:           testvm
State:          Running
IPv4:           192.168.205.4
Release:        Ubuntu 20.04.4 LTS
Image hash:     692406940d6a (Ubuntu 20.04 LTS)
Load:           0.00 0.00 0.00
Disk usage:     1.5G out of 4.7G
Memory usage:   140.5M out of 976.9M
Mounts:         --
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;testvm&lt;/code&gt; is the name of the VM you were using in step 3 (launch VM).&lt;/li&gt;
&lt;li&gt;The output of the info command contains the IPv4 address of this VM, you need that in the next step.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  5.: ssh into new VM
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ ssh vmuser@192.168.205.4 -i multipass-ssh-key -o StrictHostKeyChecking=no

Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.4.0-122-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;vmuser&lt;/code&gt; is the username for which you created the ssh key&lt;/li&gt;
&lt;li&gt;Please replace the IP address by the one you found out in step 4.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And voilá - you made it. &lt;br&gt;
The command itself should be obvious... you pass the name of the ssh-key with the &lt;code&gt;-i&lt;/code&gt; commend (short for identity). In addition, you turn strict host checking off.&lt;/p&gt;

&lt;p&gt;You might see additional messages, depending on your host machine ssh configuration - but  you should be logged in your multipass VM by now.&lt;/p&gt;

&lt;p&gt;May the power of the shell be with you.&lt;/p&gt;

&lt;h3&gt;
  
  
  Acknowledgements
&lt;/h3&gt;

&lt;p&gt;Thanx to &lt;a href="https://www.ivankrizsan.se/2020/12/23/multipass-key-based-authentication/"&gt;Ivan Krizsan&lt;/a&gt;) for providing the initial solution and his nice writeup. I took me a while to cut through numerous web-searches to find his post, therefore I decided to write it up again under a slightly different title.&lt;/p&gt;

&lt;p&gt;All credits and kudos to him! All faults a clearly mine.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>vm</category>
      <category>ubuntu</category>
    </item>
    <item>
      <title>Brief introduction to arc42</title>
      <dc:creator>Dr. Gernot Starke</dc:creator>
      <pubDate>Mon, 21 Feb 2022 14:17:56 +0000</pubDate>
      <link>https://forem.com/arc42/brief-introduction-to-arc42-1c0l</link>
      <guid>https://forem.com/arc42/brief-introduction-to-arc42-1c0l</guid>
      <description>&lt;h2&gt;
  
  
  Brief Introduction to arc42
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm1c4o2158gpcprvqm2o6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm1c4o2158gpcprvqm2o6.jpg" alt="Man-made architecture (Berlin Reichstag)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;arc42 &lt;sup id="fnref1"&gt;1&lt;/sup&gt; is a template for architecture communication and documentation.&lt;br&gt;
It is a proven, practical and highly pragmatic approach and takes the pain out of documentation.&lt;/p&gt;

&lt;p&gt;arc42 provides everything you ever need to communicate and document your software architecture.&lt;br&gt;
It's tool and technology agnostic, therefore can you use arc42 for arbitrary systems. &lt;br&gt;
arc42 is open source and completely free to use.&lt;/p&gt;

&lt;p&gt;This article provides a quick overview of arc42 and its parts.&lt;br&gt;
For more information, please consult the (rather extensive) documentation [docsˆ] available on their &lt;a href="https://docs.arc42.org" rel="noopener noreferrer"&gt;documentation website&lt;/a&gt; (which, since V8/January 2022, contains several practical examples).&lt;/p&gt;

&lt;p&gt;arc42 answers the following two questions in a pragmatic way and can be tailored to your specific needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;em&gt;What&lt;/em&gt; should you document/communicate about your architecture?&lt;/li&gt;
&lt;li&gt;  &lt;em&gt;How&lt;/em&gt; should you document/communicate?&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;If you work under time or resource constraints, you will most likely skip certain parts of arc42. Our upcoming post on "lean documentation" will give guidance for such cases.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Before we dive in...
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Everything is optional - there is &lt;strong&gt;no&lt;/strong&gt; need to fill in every section of the template. Treat arc42 documentation like the compartments of a cabinet, similar to the image below: The cabinet has a value, even if certain compartments remain empty.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1lpsa5kpr347ar2cn9dc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1lpsa5kpr347ar2cn9dc.jpg" alt="Cabinet with 12 drawers"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(image by &lt;a href="https://unsplash.com/@jankolar" rel="noopener noreferrer"&gt;Jan Kolar&lt;/a&gt; from &lt;a href="https://unsplash.com/photos/lRoX0shwjUQ" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The order of these compartements is optimized for &lt;strong&gt;reading&lt;/strong&gt; and understandability. You create your content in any order you like or your project requires. For example, in many development projects, the context (section 3) is defined and created first, followed by the top quality requirements (section 1.2).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;arc42 is completely tool-agnostic. You might create and maintain arc42 in your toolchain of choice: A wiki, a collection of Office documents, plain Markdown or Asciidoc, one of the commercial UML tools or even LaTeX. Whatever your tool of choice is, arc42 has you covered. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The structure of arc42
&lt;/h3&gt;

&lt;p&gt;arc42 proposes a dozen sections (aka compartments) for your documentation. &lt;br&gt;
These are organized top-down to improve understandability.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdzcud3slvhzz7mhul8ur.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdzcud3slvhzz7mhul8ur.png" alt="arc42 overview"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Introduction and goals
&lt;/h4&gt;

&lt;p&gt;Short description of the requirements and driving forces of your system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Describe what the system delivers for its users in one or two sentences. &lt;/li&gt;
&lt;li&gt;Describe the two or three major use cases or features of the system. &lt;/li&gt;
&lt;li&gt;&lt;p&gt;You should provide an extract or abstract of requirements. &lt;br&gt;
Restrict yourself to the top three (max five) &lt;strong&gt;quality requirements&lt;/strong&gt; for the architecture, which have highest priority for the major stakeholders.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Include a table of important &lt;strong&gt;stakeholders&lt;/strong&gt; with their expectation regarding architecture or documentation.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flh4tqyq95gt38z0a5w8l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flh4tqyq95gt38z0a5w8l.png" alt="1. Introduction and goals"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Constraints
&lt;/h4&gt;

&lt;p&gt;Anything that constrains teams in design and implementation decisions or decision about related processes. Constraints can sometimes go beyond individual systems and might valid for whole organizations and companies (e.g. company-wide technology choices or government regulations).&lt;br&gt;
Time and money are common constraints in many organizations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyrroqy6ssccv225lzfcx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyrroqy6ssccv225lzfcx.png" alt="2. Constraints"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Context and scope
&lt;/h4&gt;

&lt;p&gt;The context delimits your system from its (external) communication partners (neighboring systems and users). &lt;br&gt;
It specifies or documents the &lt;strong&gt;external interfaces&lt;/strong&gt;. &lt;br&gt;
You should always document the context from a business or domain perspective.&lt;br&gt;
If infrastructure or specific hardware plays an important role, you might also show a technical perspective.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1vj4zgpgq9ihwndf32y9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1vj4zgpgq9ihwndf32y9.png" alt="3. Context and scope"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Solution strategy
&lt;/h4&gt;

&lt;p&gt;Summary of the fundamental decisions and solution strategies that shape the architecture. Can include technology, top-level decomposition, approaches to achieve top quality goals and relevant organizational decisions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr1rmty6i1525njdgba40.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr1rmty6i1525njdgba40.png" alt="4. Solution strategy"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  5. Building block view
&lt;/h4&gt;

&lt;p&gt;Usually, boxes and arrows, showing the high-level code structure of the system. To phrase it a little more formal: The building block view explains the static structure of the system and contains, abstractions of source-code. It refines the context view, where the complete system is depicted as blackbox.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjhbqer4cg1zc6mgy5355.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjhbqer4cg1zc6mgy5355.png" alt="5. Building block view"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Level 1 contains the major subsystems, components or parts of the system. In some cases, this coarse overview provides enough structural overview.&lt;/li&gt;
&lt;li&gt;Level 2 refines one or more elements from level 1: Create a separate whitebox (plus explanations) for every level-1 building block you like to explain in detail.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can drill down to an arbitrary level of detail, but keep in mind the following:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Recommendation&lt;/strong&gt;&lt;br&gt;
Try to stick to level-1, as it often gives enough guidance and understanding for most stakeholders.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  6. Runtime view
&lt;/h4&gt;

&lt;p&gt;The runtime view explains the behaviour or processing of one or several building blocks.&lt;br&gt;
It serves as companion to the static building block view from section 5 above.&lt;br&gt;
The runtime view might explain important use cases or features, interactions at critical external interfaces, error and exception behaviour.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbhq2lsssnp0ifuccmaiu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbhq2lsssnp0ifuccmaiu.png" alt="6. Runtime view"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Recommendation&lt;/strong&gt;&lt;br&gt;
Use runtime scenarios primarily during development to validate or design building block structures. They help to identify missing or unnecessary dependencies. Keep only a small number of scenarios in your documentation&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  7. Deployment view
&lt;/h4&gt;

&lt;p&gt;Software needs hardware to execute on, that's where the deployment view comes into play:&lt;br&gt;
It shows the technical infrastructure with environments, computers, processors, networks and network-topologies. &lt;br&gt;
In addition, it maps the software building blocks to those infrastructure elements.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjhtgpi8pg7ag62hgouj3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjhtgpi8pg7ag62hgouj3.png" alt="7. Deployment view"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  8. Cross-cutting concepts
&lt;/h4&gt;

&lt;p&gt;(aka cross-cutting concerns)&lt;/p&gt;

&lt;p&gt;Overall, principal regulations and solution approaches relevant in multiple parts (→ cross-cutting) of the system. Concepts are often related to &lt;strong&gt;multiple building blocks&lt;/strong&gt;. Include different topics like domain models, architecture patterns and -styles, rules for using specific technology and implementation rules.&lt;/p&gt;

&lt;p&gt;!&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqozku5fcfpbbc0db1hdf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqozku5fcfpbbc0db1hdf.png" alt="8. Cross-cutting concepts"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  9. Architecture decisions
&lt;/h4&gt;

&lt;p&gt;Keep a collection of &lt;em&gt;architecturally significant&lt;/em&gt; decisions that are important, expensive, critical, large scale or risky including rationales, that are not recorded elsewhere.&lt;/p&gt;

&lt;p&gt;Please use your judgement to decide whether an architectural decision should be documented here or whether you better document it locally (e.g. within the building block view or any cross-cutting concept). &lt;br&gt;
You may have already captured the most important decisions of your architecture in the solution strategy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxzujkby92mwv2kecmieu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxzujkby92mwv2kecmieu.png" alt="9. Architecture decisions"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Recommendation:&lt;/strong&gt;&lt;br&gt;
Use &lt;a href="https://docs.arc42.org/section-9/" rel="noopener noreferrer"&gt;Architecture Decision Records&lt;/a&gt; to capture decisions in a simple, structured yet pragmatic way.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  10. Quality requirements
&lt;/h4&gt;

&lt;p&gt;Quality requirements, often described as scenarios.&lt;br&gt;
You may use a quality tree to provide a high-level overview. &lt;br&gt;
The most important quality goals should have been already described in section 1.2. (quality).&lt;/p&gt;

&lt;p&gt;Let's look at some examples:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Topic&lt;/th&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Performance&lt;/td&gt;
&lt;td&gt;System shall performs all checks on a 100MByte file in less than 10 seconds.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Operability&lt;/td&gt;
&lt;td&gt;The temperature range in which the correct functioning of the device is ensured should range from -25 degrees to +85 degrees&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Maintainability&lt;/td&gt;
&lt;td&gt;A new additional verification algorithm can be included in less than one day.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h4&gt;
  
  
  11. Risks and technical debt
&lt;/h4&gt;

&lt;p&gt;Known technical risks or technical debt. What potential problems exist within or around the system? What does the development team feel miserable about.&lt;/p&gt;

&lt;p&gt;In case somebody reviewed or audited your system, their findings might be included here.&lt;/p&gt;

&lt;h4&gt;
  
  
  12. Glossary
&lt;/h4&gt;

&lt;p&gt;Important domain and technical terms that stakeholders use when discussing the system. &lt;br&gt;
Please include  &lt;strong&gt;only specific terms&lt;/strong&gt; - and avoid explaining REST, HTTPS or other words that have common explanations.&lt;/p&gt;

&lt;p&gt;In addition, the glossary can serve as the translation reference if you work in a multi-language (&lt;em&gt;international&lt;/em&gt;) environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9oi46qn564d4kayafl0x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9oi46qn564d4kayafl0x.png" alt="12. Glossary"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Like what you saw?
&lt;/h3&gt;

&lt;p&gt;Give it a try! Document a few of your architecture decisions, sketch your scope and context and explain a few key technical concepts - and you have your first version of your architecture documentation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://arc42.org/download" rel="noopener noreferrer"&gt;Download&lt;/a&gt; the template in a format you like. Unpack and start documenting. In case you have questions or want to see examples, consult the extensive documentation site &lt;sup id="fnref2"&gt;2&lt;/sup&gt;.&lt;/p&gt;

&lt;p&gt;In case you want to know more, we have you covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I wrote about the &lt;a href=""&gt;principles of technical documentation&lt;/a&gt;. That deep-dive article explains the fundamental requirements your technical documentation needs to fulfill - and many proven approaches how to achieve these.&lt;/li&gt;
&lt;li&gt;Another article on &lt;a href=""&gt;lean documentation&lt;/a&gt; is in the making, please stay tuned. Until then, watch the &lt;a href=""&gt;video "Sparsame Dokumentation"&lt;/a&gt; (oops, sorry, it's in German)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Comments or questions?
&lt;/h3&gt;

&lt;p&gt;Leave a comment right below - or open an issue on the &lt;a href="https://github.com/arc42/arc42.org-site/issues" rel="noopener noreferrer"&gt;arc42 site&lt;/a&gt;. Otherwise, thanx for reading this article.&lt;/p&gt;




&lt;ol&gt;

&lt;li id="fn1"&gt;
&lt;p&gt;&lt;a href="https://arc42.org" rel="noopener noreferrer"&gt;https://arc42.org&lt;/a&gt;. The template has been created by Dr. Peter Hruschka and Dr. Gernot Starke. They published the first version in 2005, after having used predecessor versions for many years in different large and medium-sized projects. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn2"&gt;
&lt;p&gt;&lt;a href="https://docs.arc42.org" rel="noopener noreferrer"&gt;https://docs.arc42.org&lt;/a&gt;. The extensive documentation website, containing more than 140 tips and 30 examples on how to use arc42. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;/ol&gt;

</description>
      <category>arc42</category>
      <category>architecture</category>
      <category>documentation</category>
      <category>introduction</category>
    </item>
    <item>
      <title>Principles of technical documentation</title>
      <dc:creator>Dr. Gernot Starke</dc:creator>
      <pubDate>Sat, 29 Jan 2022 16:12:10 +0000</pubDate>
      <link>https://forem.com/arc42/principles-of-technical-documentation-4akj</link>
      <guid>https://forem.com/arc42/principles-of-technical-documentation-4akj</guid>
      <description>&lt;p&gt;This article collects fundamental requirements for technical documentation, especially software architecture documentation, together with ideas how to &lt;em&gt;satisfy&lt;/em&gt; those.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;The content of technical documentation needs to be correct, current, understandable and relevant. It needs to be maintainable, referenceable and use proper language. Furthermore, the whole documentation and its content need to be easy to find. To create and maintain such documentation, you should put everything under version control, prefer established tools and automate certain parts. Finally, you should document incrementally and continuously - and &lt;em&gt;not&lt;/em&gt; defer documentation to a &lt;em&gt;later stage of development&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;To help you achieve these goals, the article summarizes more than 30 simple practices that will facilitate your documentation task.&lt;/p&gt;

&lt;h2&gt;
  
  
  0. Introduction
&lt;/h2&gt;

&lt;p&gt;During several years of consulting work, I have noticed that different development teams across organizations in various domains repeated the same documentation mistakes over and over again. Therefore I decided to summarize some fundamental &lt;em&gt;requirements&lt;/em&gt; for technical documentation&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I deliberately mention modeling and diagramming only briefly as these will be subject of another post.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  A counterexample
&lt;/h3&gt;

&lt;p&gt;Imagine you are planning a trip to Scotland with your family. You want to visit the famous castles and legendary landscapes, and walk in the footsteps of the brave Scottish knights.&lt;/p&gt;

&lt;p&gt;To best prepare for this wonderful trip, you visit your local bookstore and ask for a suitable guidebook. The clerk proposes the “Adventure Travel Guide to Scotland”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7loymeb5vcsirjmtdmzm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7loymeb5vcsirjmtdmzm.jpg" alt="Fig 0.1: Your map of Scotland"&gt;&lt;/a&gt;&lt;/p&gt;
Fig. 0.1: Your map of Scotland



&lt;p&gt;Back home, you treat yourself to a decent cup of tea, recline in your favorite chair and start reading. After a couple of pages, you start to wonder if you got the right book (aka documentation):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  To your disappointment the documentation is not useful, as the authors start in Scotland, but quickly deviate to a lengthy coverage of the Spanish island of Fuerteventura&lt;/li&gt;
&lt;li&gt;  Next thing, parts of the documentation seem quite outdated to you. The only map you can find in your new book, despite being visually appealing, was printed&lt;sup id="fnref1"&gt;1&lt;/sup&gt; in 1747, more than 250 years ago (see Fig 0.1). Where the heck are the airports and highways?&lt;/li&gt;
&lt;li&gt;  It contains some serious mistakes - the city of Edinburgh is
misspelled &lt;em&gt;Edembourg&lt;/em&gt;&lt;sup id="fnref2"&gt;2&lt;/sup&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hopefully, your technical documentation better fits its title and is&lt;br&gt;
less than 250 years behind the current “version” of the system. But&lt;br&gt;
maybe you get the analogy: Documentation should be there to help, not hinder.&lt;/p&gt;

&lt;h3&gt;
  
  
  Overview of documentation requirements
&lt;/h3&gt;

&lt;p&gt;Let’s start with an overview of documentation requirements, so you know what to expect. The main part of this article covers both requirements and solution approaches in detail.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsx8euhj7lqb0gixpff5g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsx8euhj7lqb0gixpff5g.png" alt="Fig. 0.2 Categories of documentation requirements"&gt;&lt;/a&gt;&lt;/p&gt;
Fig. 0.2 Categories of documentation requirements



&lt;p&gt;The most important of these categories cover the &lt;em&gt;content&lt;/em&gt; of&lt;br&gt;
documentation:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;th&gt;Explanation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Req-1: Correct&lt;/td&gt;
&lt;td&gt;Documentation needs to be accurate and free from errors. Wrong documentation is often worse than no documentation.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Req-2: Current&lt;/td&gt;
&lt;td&gt;Documentation needs to be correct over time, reflecting changes performed upon code, infrastructure or interfaces of the system.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Req-3: Understandable&lt;/td&gt;
&lt;td&gt;Documentation needs to be understood by the target audience.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Req-4: Relevant&lt;/td&gt;
&lt;td&gt;With respect to structure, form and content, documentation shall be relevant for the tasks of its audience.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A few of these requirements are covered in the fundamental book book&lt;sup id="fnref3"&gt;3&lt;/sup&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfkm1pc0d297rrzluvc6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfkm1pc0d297rrzluvc6.png" alt="Fig. 0.3 Content requirements"&gt;&lt;/a&gt;&lt;/p&gt;
Fig. 0.3: Content requirements



&lt;p&gt;In addition, you should consider a few &lt;em&gt;formal&lt;/em&gt; requirements, independent of documentation content:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;th&gt;Explanation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Req-5: Referenceable&lt;/td&gt;
&lt;td&gt;Use a consistent numbering schema for headings, diagrams and tables.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Req-6: Proper language&lt;/td&gt;
&lt;td&gt;Use proper language, correct spelling and grammar, active voice, positive statements and short sentences.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Req-7: Maintainable&lt;/td&gt;
&lt;td&gt;Maintainability is key to keeping documentation current.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnuo4475vwjxg455vrf7y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnuo4475vwjxg455vrf7y.png" alt="Fig. 0.4 Formal and content requirements"&gt;&lt;/a&gt;&lt;/p&gt;
Fig. 0.4: Formal and content requirements



&lt;p&gt;Finally, a few requirements concern your documentation process and&lt;br&gt;
tooling:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;th&gt;Explanation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Req-8: Easy to find&lt;/td&gt;
&lt;td&gt;Documentation itself should be easy to find whenever needed. Its content should be easily navigable and searchable.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Req-9: Version controlled&lt;/td&gt;
&lt;td&gt;As the system evolves, so will your documentation, without losing its history&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Req-10: Appropriate tools&lt;/td&gt;
&lt;td&gt;Focus on content, reduce time needed for tool-setup.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Req-11: Continuously updated&lt;/td&gt;
&lt;td&gt;Make it a habit to maintain and expand the documentation with every relevant change in your system.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That leaves us with the following overview of documentation requirements:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx0sfi6wty8llkelgnsoa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx0sfi6wty8llkelgnsoa.png" alt="Fig. 0.5 All documentation requirements"&gt;&lt;/a&gt;&lt;/p&gt;
Fig. 0.5: All documentation requirements



&lt;p&gt;In the upcoming sections I will consider these requirements one-by-one. You will find several tips and proposals on how to achieve them.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a&gt;&lt;/a&gt;Req-1: Correct
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Technical documentation absolutely needs to be correct, “free of&lt;br&gt;
mistakes or errors and strictly adhere to fact and truth” (&lt;sup id="fnref3"&gt;3&lt;/sup&gt;, p3).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Some examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  When a diagram shows relationships between certain elements, those relationships have to exist in reality.&lt;/li&gt;
&lt;li&gt;  On the other hand, if is no relationship between those two elements, there shouldn’t exist one in the underlying code!&lt;/li&gt;
&lt;li&gt;  If a specific version of any product or framework is mentioned, exactly this version shall be used in reality.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This requirement seems trivial, but &lt;em&gt;correctness&lt;/em&gt; has to be achieved even in situations where development teams are constantly working to improve or enhance the system. They change code, update interfaces, frameworks or underlying technology. Important stakeholders will change requirements or constraints.&lt;/p&gt;

&lt;p&gt;The issue with constantly changing systems leads to another requirement (“current”), which will be subject of a larger section. Before we dive into this subject, let’s look at some options you have to get your documentation correct.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to achieve correctness
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Have the right people create and maintain the documentation.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The exact same people who design and implement specific parts of the system also document these parts. The advantage: No information is lost at some potential interpersonal communication barrier. The disadvantage: These people might not be capable of producing high quality technical documentation, they might not have appropriate tools, motivation or time.&lt;/li&gt;
&lt;li&gt; Have the architect(s) create that documentation. On one hand they will be able to extract the required knowledge from the responsible stakeholder. On the other hand, they should know the basics of quality technical documentation.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Have all parts of your documentation reviewed by the people who built, decided or implemented that exact thing - as they know the truth.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Prefer abstract information over detailed: &lt;em&gt;Abstract&lt;/em&gt; information is still correct, it’s just leaving out some detail. Leaving out details reduces the chance for errors and the need for&lt;br&gt;
constant updates. Have the courage to leave things undocumented (&lt;em&gt;better no documentation than wrong documentation&lt;/em&gt;). The next section on current documentation will dive deeper into that subject.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;a&gt;&lt;/a&gt;Req-2: Current
&lt;/h2&gt;

&lt;p&gt;Change is normal: Development teams have to implement new features or optimize/fix/change existing ones. They have to adjust the system to cope with changes in infrastructure, updates in frameworks or 3rd-party products. Teams have to update their systems to reflect changes in external infrastructure, data formats or a plethora of other aspects that might change during the lifetime of any software system.&lt;/p&gt;

&lt;p&gt;Despite all those changes, the documentation has to fulfill the&lt;br&gt;
&lt;em&gt;correctness requirement&lt;/em&gt;. Teams must constantly adapt (&lt;em&gt;maintain&lt;/em&gt;) their documentation, so it remains correct.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to keep documentation current
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Regularly review your documentation, especially those parts that
relate to recently-changed elements of the system.&lt;/li&gt;
&lt;li&gt;  Leave out the &lt;em&gt;obvious&lt;/em&gt;. Focus on important and specific aspects, elements or decisions in your system.&lt;/li&gt;
&lt;li&gt;  Document only those parts or aspects of your system and its
architecture that are definitely required by stakeholders.&lt;/li&gt;
&lt;li&gt;  From time to time you should iterate over all parts of the
documentation and:

&lt;ul&gt;
&lt;li&gt;  question whether this part is still required by somebody and&lt;/li&gt;
&lt;li&gt;  you are still willing to maintain this part of the documentation in the future.&lt;/li&gt;
&lt;li&gt;  If the answer to one of these questions is “no”, then remove the corresponding part of the documentation. As everything is  version controlled, it would be available if needed later on.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  Optimize your documentation (not only your system!) for
maintainability. The section on Easy to find contains numerous approaches that help to optimize maintainability.&lt;/li&gt;

&lt;li&gt;  Automate the generation of certain parts of your documentation..&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;a&gt;&lt;/a&gt;Req-3: Understandable
&lt;/h2&gt;

&lt;p&gt;Although &lt;em&gt;understandability&lt;/em&gt; seems like a trivial and basic requirement for technical documentation, it is pretty hard to achieve and really easy to get wrong. Let’s dig into some details of what makes documentation understandable:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Terms and symbols need to be clear and unambiguous.&lt;/li&gt;
&lt;li&gt;  Use abbreviations only after they have been written in full.&lt;/li&gt;
&lt;li&gt;  The overall organization (aka &lt;em&gt;structure&lt;/em&gt;) of the documentation
shall be optimized for consuming/reading&lt;/li&gt;
&lt;li&gt;  People tend to &lt;em&gt;comprehend&lt;/em&gt; things better if they understand the
reasons&lt;/li&gt;
&lt;li&gt;  Form, structure, language, tone and symbols should be adequate for the audience.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to improve understandability
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;a&gt;&lt;/a&gt;Know your target audience
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;Understandability depends on the target audience.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What people understand depends on their knowledge, experience, language skills, culture etc. A specific part of your documentation might be fully understandable by certain people, and completely alien to others. Different stakeholders will have different requirements concerning documentation.&lt;/p&gt;

&lt;p&gt;The more you know about your stakeholders, the better you will be&lt;br&gt;
prepared to meet their demands. This is closely related to Relevance.&lt;/p&gt;

&lt;p&gt;Follow these steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identify all stakeholders: Identify all roles or people that might have an interest in or need for your technical documentation&lt;/li&gt;
&lt;li&gt;Identify what your target audience really needs, what are acceptable forms or formats for documentation&lt;/li&gt;
&lt;li&gt;Create and maintain a stakeholder table containing that information.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This information about your stakeholders will also be important to&lt;br&gt;
improve the relevance of your documentation.&lt;/p&gt;

&lt;h4&gt;
  
  
  Document unambiguously
&lt;/h4&gt;

&lt;p&gt;Ensure your documentation is clear, precise and presented in a way that the target audience can understand. Most diagrams leave room for interpretation, especially if naming and/or semantics of elements isn’t exactly clear. Make sure that all symbols in diagrams and all specific term have a defined meaning. Add a legend to clarify visual elements if you are not using a standardized notation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  See also Explain your notation
&lt;/li&gt;
&lt;li&gt;  See also Combine diagrams with text
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;a&gt;&lt;/a&gt;Place details into context
&lt;/h4&gt;

&lt;p&gt;Your audience shall be able to start with an overview and then “dive in” when they need more information. Therefore, organize your documentation top-down.&lt;/p&gt;

&lt;p&gt;Technical documentation will contain technical details that are prerequisite to understanding some decisions or concepts. Ensure people can understand the &lt;em&gt;context&lt;/em&gt; of such a detail. Add references to external documents for readers who might not meet your knowledge&lt;br&gt;
prerequisites.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F245qfy918phell482v5y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F245qfy918phell482v5y.png" alt="Fig. 3.1: Details with context"&gt;&lt;/a&gt;&lt;/p&gt;
Fig. 3.1: Details with context



&lt;h4&gt;
  
  
  Explain specific terms
&lt;/h4&gt;

&lt;p&gt;In case you use specific terms with a special or uncommon meaning or&lt;br&gt;
semantics, you should define or explain these. Especially if the&lt;br&gt;
semantics of your terms slightly deviate from common or standard&lt;br&gt;
definitions.&lt;/p&gt;

&lt;p&gt;Provide a glossary of such terms.&lt;/p&gt;

&lt;h4&gt;
  
  
  Explain reasons
&lt;/h4&gt;

&lt;p&gt;Many decisions taken during development of a system are reflected in its source code. What’s missing though, are the explanations or reasons for these decisions.&lt;/p&gt;

&lt;p&gt;Therefore, consider documenting the reasons and explain why the&lt;br&gt;
development team took a particular path. Start with explaining the&lt;br&gt;
requirements and constraints for a specific decision, then explain the reasons for the decision.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;a&gt;&lt;/a&gt;Use diagrams to explain structures
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Structure&lt;/em&gt;: the way that something is built, arranged, or&lt;br&gt;
organized&lt;br&gt; &lt;br&gt;
&lt;a href="https://www.merriam-webster.com/dictionary/structure" rel="noopener noreferrer"&gt;https://www.merriam-webster.com/dictionary/structure&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Diagrams or graphical models are well-suited to convey structural&lt;br&gt;
information, like building-blocks (aka components and their&lt;br&gt;
dependencies, hardware elements and their relationships or even dynamic structures like processes.&lt;/p&gt;

&lt;p&gt;Use them with care - as changing or updating diagrams is harder than&lt;br&gt;
updating a short textual description. On the other hand, structural&lt;br&gt;
information is traditionally conveyed via diagrams.&lt;/p&gt;

&lt;p&gt;Restrict diagrams to higher abstraction levels. Prefer to omit details from your diagrams, instead of trying to explain low-level structures in diagrams. Stick to a single topic per diagram.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;a&gt;&lt;/a&gt;Explain your notation (or use a standard)
&lt;/h4&gt;

&lt;p&gt;Graphical models or diagrams are an elegant way to convey structural&lt;br&gt;
information, they can improve visual effectiveness.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Visual effectiveness is a measure of how the appearance of information and the use of visual elements within it affect the ease with which users can find, understand, and use the information.&lt;br&gt;
&lt;sup id="fnref3"&gt;3&lt;/sup&gt;,p.277&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every symbol in a diagram should have a clear semantic or meaning. That makes the diagram unambiguous.&lt;/p&gt;

&lt;p&gt;Either you provide a legend which explains the meaning of every symbol type, or you rely on a standard graphical notation, like UML&lt;sup id="fnref4"&gt;4&lt;/sup&gt;,  C4&lt;sup id="fnref5"&gt;5&lt;/sup&gt; or ArchiMate&lt;sup id="fnref6"&gt;6&lt;/sup&gt;;&lt;sup id="fnref7"&gt;7&lt;/sup&gt;. &lt;br&gt;
If you rely on a standard, reference it in addition to the legend.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;a&gt;&lt;/a&gt;Combine diagrams with text
&lt;/h4&gt;

&lt;p&gt;A diagram itself might leave room for interpretation, unless amended by textual or tabular clarification. See the following example, where component names give hints on their actual responsibility, but terms might be misleading. What is a “Reporter”? A journalist? A component creating a report, or delivering it?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66rvv30eyrwq6cv64q4m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66rvv30eyrwq6cv64q4m.png" alt="Fig. 3.2: An example diagram that needs&amp;lt;br&amp;gt;
explanation"&gt;&lt;/a&gt;&lt;/p&gt;
Fig. 3.2: An example diagram that needs
explanation



&lt;p&gt;A table explaining important elements from a diagram can help to remove&lt;br&gt;
such ambiguities - see for yourself:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Element&lt;/th&gt;
&lt;th&gt;Responsibility / Meaning&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Checker&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;performs the actual checking, relies on the status- and error messages of the &lt;code&gt;Parser&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;org.aim42.hsc.core&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Parser&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;open-source library to parse HTML files&lt;/td&gt;
&lt;td&gt;org.jsoup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Suggester&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;suggests solutions to problems found during checking&lt;/td&gt;
&lt;td&gt;org.aim42.hsc.core&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Reporter&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;creates a hicely formatted html report of all problems found during checking&lt;/td&gt;
&lt;td&gt;org.aim42.hsc.core&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h5 id="sect-helpful-structure"&gt;
Use helpful structure
&lt;/h5&gt;

&lt;p&gt;The structure of technical documentation should be organized top-down, beginning with an overview, and gradually adding details.&lt;/p&gt;

&lt;p&gt;Approaches like &lt;a href="https://arc42.org" rel="noopener noreferrer"&gt;arc42&lt;/a&gt;&lt;sup id="fnref8"&gt;8&lt;/sup&gt; or C4&lt;sup id="fnref5"&gt;5&lt;/sup&gt; propose structures that are highly practical, established and free to use.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a&gt;&lt;/a&gt;Req-4: Relevant (aka &lt;em&gt;task oriented&lt;/em&gt;)
&lt;/h2&gt;

&lt;p&gt;Documentation shall serve the purposes of its target audience, see Know your target audience above. They have specific goals or tasks that can be enabled or supported by technical documentation.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Relevance depends on the goals and tasks of the target audience.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let’s look at some potential stakeholders, their goals and documentation needs:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Stakeholder&lt;/th&gt;
&lt;th&gt;Task/Goal&lt;/th&gt;
&lt;th&gt;Documentation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;New developer&lt;/td&gt;
&lt;td&gt;Efficient onboarding&lt;/td&gt;
&lt;td&gt;Overview of requirements, solution approaches, building block structure, technical concepts, important decisions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Development team&lt;/td&gt;
&lt;td&gt;Guide implementation&lt;/td&gt;
&lt;td&gt;technical concepts, decisions, building block structure, some runtime scenarios&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;—“—&lt;/td&gt;
&lt;td&gt;Take decision&lt;/td&gt;
&lt;td&gt;e.g. quality requirements&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tester&lt;/td&gt;
&lt;td&gt;Test parts of the system&lt;/td&gt;
&lt;td&gt;some internal interfaces, technology overview&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Neighbour system&lt;/td&gt;
&lt;td&gt;Use external interface, e.g. API&lt;/td&gt;
&lt;td&gt;context, technology overview, API details&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Management&lt;/td&gt;
&lt;td&gt;Budget decisions&lt;/td&gt;
&lt;td&gt;context, technical decisions, used 3rd party frameworks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auditor&lt;/td&gt;
&lt;td&gt;Check compliance&lt;/td&gt;
&lt;td&gt;often: deployment view, technical decisions, high-level building blocks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;External reviewer&lt;/td&gt;
&lt;td&gt;Due diligence&lt;/td&gt;
&lt;td&gt;solution approaches, high-level structure, technical concepts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  How to improve relevance
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Identify tasks of target audience
&lt;/h4&gt;

&lt;p&gt;You need to know what information the target audience needs from the&lt;br&gt;
documentation, (see above). Create a&lt;br&gt;
stakeholder table to contain information about each stakeholders’ tasks&lt;br&gt;
and/or goals, so you can better estimate their documentation&lt;br&gt;
requirements.&lt;/p&gt;

&lt;h4&gt;
  
  
  Show examples of existing documentation
&lt;/h4&gt;

&lt;p&gt;It is highly effective to show each stakeholder examples of existing&lt;br&gt;
documentation: Based upon specific examples, stakeholders can point out&lt;br&gt;
what they need in addition, or what parts they are not interested in.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Beware of the “I need everything” trap: When stakeholders see detailed&lt;br&gt;
and well-organized documentation, they might want “everything” - even&lt;br&gt;
though they don’t need parts. Therefore, it might be more efficient if&lt;br&gt;
you show only those parts which you estimate people will really need!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;a&gt;&lt;/a&gt;Req-5: Referenceable
&lt;/h2&gt;

&lt;p&gt;Referenceable elements can be uniquely identified in the context of your&lt;br&gt;
documentation. Instead of writing “see the diagram below” or “the table&lt;br&gt;
above”, you should strive for “see diagram 5.2” or “the table 3.1”. You&lt;br&gt;
can chose any numbering or referencing scheme you like, but you should&lt;br&gt;
use it consistently.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to make documentation referenceable
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Number every section and heading of technical documentation, at least to heading level 2.&lt;/li&gt;
&lt;li&gt;  Number every diagram or image. Prefix diagram numbers by the number/id of the appropriate section. For example, the first diagram in section 3 shall be labelled “Fig. 3.1”.&lt;/li&gt;
&lt;li&gt;  Number every table, again prefixed by section-id/number.&lt;/li&gt;
&lt;li&gt;  Provide a table of contents (toc). Electronic or online versions of your documentation should contain hyperlinks within the toc. For paper or printed versions, use page numbers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You should use appropriate tools to facilitate&lt;br&gt;
referencing.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a&gt;&lt;/a&gt;Req-6: Proper language
&lt;/h2&gt;

&lt;p&gt;Your target audience shall have no reason to complain about spelling or grammar mistakes, but shall instead focus on content. Proper language will also improve readability and understandability.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to improve documentation language
&lt;/h3&gt;

&lt;p&gt;Language, wording and style of your documentation should be adequate for your target audience. Sentences should be grammatically correct. &lt;br&gt;
Text should be formulated in a factual way and avoid emotional or offensive language.&lt;/p&gt;

&lt;p&gt;Some specific advice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Use positive statements, aka &lt;em&gt;avoid negation&lt;/em&gt;. The human brain needs significantly longer to understand negation&lt;sup id="fnref9"&gt;9&lt;/sup&gt;.&lt;/li&gt;
&lt;li&gt;  Write concisely, aim for brevity. The average length of a sentence should be 15-20 words.&lt;/li&gt;
&lt;li&gt;  Use the active voice, as it makes it easier for our brain to comprehend and remember.&lt;/li&gt;
&lt;li&gt;  Aim for correct spelling and grammar.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;sup id="fnref10"&gt;10&lt;/sup&gt; contains several examples and explanations of “proper language”.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a&gt;&lt;/a&gt;Req-7: Maintainable
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;The structure and organization of technical documentation should be&lt;br&gt;
optimized for &lt;em&gt;maintainability&lt;/em&gt; - so that keeping the documentation&lt;br&gt;
current despite frequent changes becomes as easy as possible.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As already mentioned above, many aspects of systems change -&lt;br&gt;
requirements, source code, configuration, deployment, operations, external interfaces, etc. These changes shall be easy to incorporate into the technical documentation, therefore &lt;em&gt;maintainability&lt;/em&gt; is an important requirement.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Please note: We refer to &lt;em&gt;maintainability&lt;/em&gt; of the documentation, &lt;em&gt;not&lt;/em&gt;&lt;br&gt;
of the system itself.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  How to improve maintainability
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;a&gt;&lt;/a&gt;Abstract: Omit (some) details
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;  Leave out certain facts: Explicitly decide to &lt;em&gt;not&lt;/em&gt; document
irrelevant or overly detailed facts. Leaving out some facts reduces
the amount of content you have to keep up-to-date in the future.
Only document facts that:

&lt;ul&gt;
&lt;li&gt;  you or your team can promise to maintain in the future.&lt;/li&gt;
&lt;li&gt;  important stakeholders need to know to do their work&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  Document abstractions instead of details. That is a special case of
not documenting certain facts, namely the details. But what kind of
details could be left out of documentation? Please note that I wrote
&lt;em&gt;could&lt;/em&gt; be left out, not &lt;em&gt;shall&lt;/em&gt; be left out. In some cases you will
want or need to document details!&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;instead of…&lt;/th&gt;
&lt;th&gt;try this…&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;trying to name/show &lt;strong&gt;all&lt;/strong&gt; elements&lt;/td&gt;
&lt;td&gt;aggregate elements, especially when you can give explicit cohesion criteria&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;giving a specific version number&lt;/td&gt;
&lt;td&gt;omit that version number or specify a range like “version &amp;gt;2.1”&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;showing all children of an element&lt;/td&gt;
&lt;td&gt;omit children, point to parent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;showing all dependencies between two elements&lt;/td&gt;
&lt;td&gt;show just one (aggregate) dependency (see below for an example)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;explaining interface details like parameters&lt;/td&gt;
&lt;td&gt;just name the interface, omit details&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;You see the underlying principle: Leaving out details facilitates change&lt;br&gt;
and will make your documentation more robust against (at least some)&lt;br&gt;
changes in requirements, code or infrastructure.&lt;/p&gt;

&lt;h5&gt;
  
  
  Examples of &lt;em&gt;omitting details&lt;/em&gt;
&lt;/h5&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw2atvj5fmcjz3kc96dq4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw2atvj5fmcjz3kc96dq4.png" alt="Fig 7.1 Example: Abstractions instead of&amp;lt;br&amp;gt;
details"&gt;&lt;/a&gt;&lt;/p&gt;
Fig. 7.1: Abstractions instead of details



&lt;p&gt;In the first example, we condense three building blocks (A,B,C) into a&lt;br&gt;
single one. At the same time, we reduce the details of explicit&lt;br&gt;
dependencies between &lt;code&gt;foo&lt;/code&gt; and A,B,C from 9 different to one. As this&lt;br&gt;
single dependency carries several responsibilities (remember, it serves as an abstraction for nine detailed relationships), it’s a good practice to give such dependencies a name and explain some of the details in text or a table.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo9ooficmr82t0p26rb9y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo9ooficmr82t0p26rb9y.png" alt="Fig 7.2 Example: Abstraction in runtime view"&gt;&lt;/a&gt;&lt;/p&gt;
Fig. 7.2: Example: Abstraction in runtime view



&lt;p&gt;The second example shows a detailed sequence diagram containing three participants (b1, b2 and b3), having some interactions among themselves and a few with the rest of the system (a and c). In the abstraction I made use of an &lt;em&gt;interaction reference&lt;/em&gt; to hide details, see &lt;sup id="fnref11"&gt;11&lt;/sup&gt; or &lt;sup id="fnref12"&gt;12&lt;/sup&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Keep the source of every diagram
&lt;/h4&gt;

&lt;p&gt;Diagrams are created using appropriate tools. Often diagramming or modeling tools use proprietary binary data formats, which are converted and exported to a format like png, jpg, svg or pdf.&lt;/p&gt;

&lt;p&gt;To be able to later modify diagrams, you need the original (source) representation.&lt;/p&gt;

&lt;p&gt;At best, the source of diagrams is versioned and referenced from the diagram.&lt;/p&gt;

&lt;h4&gt;
  
  
  Regularly delete outdated parts
&lt;/h4&gt;

&lt;p&gt;If something has become common knowledge, you may delete it from your written documentation.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In one of my projects, I tagged such parts as “to-be deleted”. In case nobody from the team objected within a week or so, that content would be removed from the active documentation and moved to an archive instead. Such tagging works great in some wikis.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Automation won’t improve your content
&lt;/h4&gt;

&lt;p&gt;You can (and should) automate data collection, transformation, or even some visualization, which we will discuss in the section on tools later on.&lt;/p&gt;

&lt;p&gt;But: The intellectual process of creating valuable content for technical documentation cannot currently be automated.&lt;/p&gt;

&lt;p&gt;Documentation generated from source code will be restricted to&lt;br&gt;
high-level abstractions of this source code. It cannot give reasons or explain things, therefore it will always miss critical information.&lt;/p&gt;

&lt;p&gt;See &lt;sup id="fnref13"&gt;13&lt;/sup&gt; for a&lt;br&gt;
coverage of automated (&lt;em&gt;living&lt;/em&gt;) documentation.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a&gt;&lt;/a&gt;Req-8: Easy to find
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Finding information is essential. The organization, retrievability,&lt;br&gt;
and visual effectiveness of information contribute most to whether&lt;br&gt;
users can find the information that they need.&lt;br&gt;
&lt;sup id="fnref3"&gt;3&lt;/sup&gt;,p.213&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This requirements relates to both the content of the documentation and&lt;br&gt;
to the documentation itself. In reality, documentation is often located&lt;br&gt;
in access-controlled areas that are not covered by any search engine:&lt;br&gt;
That means you have to know where to look for the documentation.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to make information easier to find
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Ensure the documentation itself can be easily found, for example by
providing entry points at well-know locations (i.e. the start- or
homepage of the product or team wiki).&lt;/li&gt;
&lt;li&gt;  Use a template, like &lt;a href="https://arc42.org" rel="noopener noreferrer"&gt;arc42&lt;/a&gt;
&lt;sup id="fnref8"&gt;8&lt;/sup&gt;
&lt;/li&gt;
&lt;li&gt;  Organize your documentation top-down, see place details into
context above&lt;/li&gt;
&lt;li&gt;  Use cross-references and hyperlinks where possible, so readers can
&lt;em&gt;jump&lt;/em&gt; within your structure&lt;/li&gt;
&lt;li&gt;  Provide a document overview that explains the structure of your documentation. For standards, like arc42, such overviews already exist.&lt;/li&gt;
&lt;li&gt;  Facilitate navigation and search, see Req-9: Easy to
find
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, you should accept some repetition in documentation to make it&lt;br&gt;
more comfortable for stakeholders (See &lt;sup id="fnref14"&gt;14&lt;/sup&gt;, ARID).&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a&gt;&lt;/a&gt;Req-9: Version controlled
&lt;/h2&gt;

&lt;p&gt;As there will be several people actively contributing to technical&lt;br&gt;
documentation, you should version-control its artifacts similar to&lt;br&gt;
source code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  It shall be possible to rollback certain documentation changes.&lt;/li&gt;
&lt;li&gt;  The ability to work on different versions of the documentation
(e.g. in different branches of a version management system) will be
useful, especially in larger or distributed development teams.&lt;/li&gt;
&lt;li&gt;  Documentation shall closely correspond to the identified versions or
releases of the system. In case somebody needs to &lt;em&gt;go back in time&lt;/em&gt;,
for example to fix a bug in an older release of the system, the
documentation of that older release shall be available without much
effort.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How to version-control documentation
&lt;/h3&gt;

&lt;p&gt;Obviously the straightforward approach is using version control systems&lt;br&gt;
(VCS), like &lt;code&gt;git&lt;/code&gt;, &lt;code&gt;subversion&lt;/code&gt; or similar tools.&lt;/p&gt;

&lt;p&gt;But in reality that’s not always as simple as it sounds:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Organizations might prefer proprietary systems for documentation,
for example wikis (e.g. Confluence™).&lt;/li&gt;
&lt;li&gt;  Documentation authors, especially from non-technical roles, might
not be able (or refuse to) use a VCS.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Therefore I propose the following strategy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Ideally, add all documentation artifacts to a VCS, like &lt;code&gt;git&lt;/code&gt;. Your
VCS should facilitate branching and merging artifacts. Additionally,
it should allow for versioning of binary artifacts.&lt;/li&gt;
&lt;li&gt;  In case your documentation tools produce binary or proprietary
artifacts, which cannot easily be added to your VCS, take the following path:

&lt;ul&gt;
&lt;li&gt;  Export all &lt;em&gt;release&lt;/em&gt; versions of your documentation (those you need to keep) to PDF. Ideally, the result is a single PDF file containing the complete documentation to a specific release or version.&lt;/li&gt;
&lt;li&gt;  Add the resulting PDF to version control.&lt;/li&gt;
&lt;li&gt;  Automate the preceding two steps (creating and adding the PDF). See automate certain parts.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;a&gt;&lt;/a&gt;Req-10: Use appropriate tools
&lt;/h2&gt;

&lt;p&gt;You need a toolchain that satisfies a number of requirements. Let’s start with text processing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  structured text, with different heading levels&lt;/li&gt;
&lt;li&gt;  lists (numbered and/or bulleted)&lt;/li&gt;
&lt;li&gt;  cross-references&lt;/li&gt;
&lt;li&gt;  include images/diagrams created by other tools (at least png/jpg,
svg/pdf recommended)&lt;/li&gt;
&lt;li&gt;  tables&lt;/li&gt;
&lt;li&gt;  split documents into several parts&lt;/li&gt;
&lt;li&gt;  support reviews by others than the author(s) with review comments and suggestions&lt;/li&gt;
&lt;li&gt;  the ability to generate numbers/ids for diagrams, tables and sections/headings&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As you should create diagrams or models (see Use&lt;br&gt;
diagrams), your diagramming tool shall support:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  static structures, like components, building-blocks or technical infrastructure&lt;/li&gt;
&lt;li&gt;  dynamic structures, like activities or processes&lt;/li&gt;
&lt;li&gt;  any standard notation like UML &lt;sup id="fnref4"&gt;4&lt;/sup&gt;, C4
&lt;sup id="fnref5"&gt;5&lt;/sup&gt; or ArchiMate
&lt;sup id="fnref7"&gt;7&lt;/sup&gt;
&lt;/li&gt;
&lt;li&gt;  legends in diagrams, to enable Explain
notation
&lt;/li&gt;
&lt;li&gt;  flexible layout, so you can improve visual effectiveness of diagrams (e.g. place important elements in the center, leave appropriate whitespace around elements, use fonts or color to emphasize aspects)&lt;/li&gt;
&lt;li&gt;  links or cross-references to related diagrams&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Prefer established tools
&lt;/h3&gt;

&lt;p&gt;For development teams it might be fun to use the latest and greatest toolchain, with this and that plugin to spice up the otherwise boring task of documenting the architecture.&lt;/p&gt;

&lt;p&gt;But: Any toolchain needs a certain amount of maintenance: Updates, backups, user support, and other mundane activities will require somebody’s attention. If you install and operate your own tooling, it might be you who needs to invest this time. If you rely on established tools, your company or organization will provide this support.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I’m a documentation tooling fanboy. I often install and test new tools, so I can develop my opinion and give better advice to my clients. This advice is, more often than not, directed towards the &lt;em&gt;boring&lt;/em&gt; toolchains that already exist, where maintenance, backup and support are already sorted out.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  In exceptional cases…
&lt;/h3&gt;

&lt;p&gt;If (and only then!) there is no appropriate and usable toolchain available for documentation - you need to introduce one. Such a toolchain requires documentation, maintenance and support effort.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a&gt;&lt;/a&gt;Automate certain parts
&lt;/h3&gt;

&lt;p&gt;You should try to automate certain parts of maintaining your&lt;br&gt;
documentation, to keep it current.&lt;/p&gt;

&lt;p&gt;Some candidates for automation are the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  creating platform-neutral representations (like PDF) of the complete documentation&lt;/li&gt;
&lt;li&gt;  publishing the documentation, e.g. in a browseable format&lt;/li&gt;
&lt;li&gt;  testing the sanity or consistency of your documentation, e.g. by checking hyperlinks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the generation and publishing part, have a look at docToolchain &lt;sup id="fnref15"&gt;15&lt;/sup&gt;, a lightweight, open-source approach to create and maintain technical documentation. It can read several data formats (AsciiDoc, PowerPoint®, Excel®, a variety of image formats etc) and generate numerous output formats, including static websites.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a&gt;&lt;/a&gt;Req-11: Continuously updated
&lt;/h2&gt;

&lt;p&gt;Deferring documentation to &lt;em&gt;later&lt;/em&gt; is like procrastination, or saying “I’ll start healthy living next week.” Start right now, in small chunks. You decided to upgrade that persistence framework? Create an ADR for this decision. The team decided to split that module in two separate parts? Make an appropriate note in the building block view explaining the reason for the split.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to enable or facilitate continuous documentation
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Include documentation task in your Definition-of-Done (DoD)
&lt;/h4&gt;

&lt;p&gt;For many agile teams that work in iterations, the Definition-of-Done “ensures everyone on the team knows exactly what is expected of everything the team delivers” (quoted from &lt;sup id="fnref16"&gt;16&lt;/sup&gt;)&lt;/p&gt;

&lt;p&gt;If something is not contained in the DoD, it won’t be done. Therefore you need to make sure that technical documentation &lt;em&gt;is&lt;/em&gt; contained in your DoD.&lt;/p&gt;

&lt;h4&gt;
  
  
  Reserve small timeboxes for documentation
&lt;/h4&gt;

&lt;p&gt;Invest a few minutes per day, or 15min every Friday to create, maintain or improve your documentation.&lt;/p&gt;

&lt;h4&gt;
  
  
  Document incrementally
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;  Start with an overview, a birds’ eye perspective. Drill down into details only if somebody is willing to maintain these details.&lt;/li&gt;
&lt;li&gt;  Start small and add facts when they have gotten robust enough. If certain aspects or elements are still under discussion or investigation, don’t include those in your documentation.&lt;/li&gt;
&lt;li&gt;  If your team is experimenting with a certain technology, framework, structure or concept, defer the details to a later point in time.&lt;/li&gt;
&lt;li&gt; Maintain a documentation backlog, where you collect open issues for your documentation.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Instead of adding even more text, I provide a graphical summary:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu9hcqhkgeeou222yzp0k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu9hcqhkgeeou222yzp0k.png" alt="Fig 12.1: Pattern map for technical documentation"&gt;&lt;/a&gt;&lt;/p&gt;
Fig 12.1: Pattern map for technical documentation



&lt;p&gt;You can download a &lt;a href="https://arc42.org/downloads/principles-pattern-map.pdf" rel="noopener noreferrer"&gt;high-res pdf version&lt;/a&gt; from arc42.&lt;/p&gt;

&lt;h2&gt;
  
  
  Acknowledgements
&lt;/h2&gt;

&lt;p&gt;Thanks and praise to my knowledgeable and articulate reviewers Ralf D. Müller, Joachim Praetorius, Marco Stroppel and Peter Hruschka. &lt;br&gt;
Header image by (Retrosupply)[&lt;a href="https://unsplash.com/photos/jLwVAUtLOAQ" rel="noopener noreferrer"&gt;https://unsplash.com/photos/jLwVAUtLOAQ&lt;/a&gt;].&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;




&lt;ol&gt;

&lt;li id="fn1"&gt;
&lt;p&gt;Map from Wikimedia Commons, provided to Wikimedia by Geographicus Rare Antique Maps, a specialist dealer in rare maps and other cartography. It was first drawn by Daniel de la Feuille in 1706. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn2"&gt;
&lt;p&gt;Edembourg actually &lt;em&gt;was&lt;/em&gt; the correct spelling back in the 18th century...  ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn3"&gt;
&lt;p&gt;G. Hargis, Ed., &lt;em&gt;Developing quality technical information: A handbook for writers and editors&lt;/em&gt;. Upper Saddle River, N.J: Prentice Hall Professional Technical Reference, 2004.  ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn4"&gt;
&lt;p&gt;"UML 2.5 Diagrams Overview." [Online]. &lt;a href="https://www.uml-diagrams.org/uml-25-diagrams.html" rel="noopener noreferrer"&gt;https://www.uml-diagrams.org/uml-25-diagrams.html&lt;/a&gt; ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn5"&gt;
&lt;p&gt;S. Brown, "The C4 model for visualising software architecture." &lt;a href="https://c4model.com" rel="noopener noreferrer"&gt;https://c4model.com&lt;/a&gt;. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn6"&gt;
&lt;p&gt;"ArchiMate Quick Guide." [Online]. Available: &lt;a href="https://archimatetool.gitbook.io/project" rel="noopener noreferrer"&gt;https://archimatetool.gitbook.io/project&lt;/a&gt;.  ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn7"&gt;
&lt;p&gt;VAN HAREN PUBLISHING, &lt;em&gt;ARCHIMATE(R) 3.1 SPECIFICATION.&lt;/em&gt; S.l.: VAN HAREN PUBLISHING, 2019. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn8"&gt;
&lt;p&gt;"Docs.Arc42.org." &lt;a href="https://docs.arc42.org/home/" rel="noopener noreferrer"&gt;https://docs.arc42.org/home/&lt;/a&gt;. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn9"&gt;
&lt;p&gt;M. A. Sherman, "Bound to be easier? The negative prefix and sentence comprehension," &lt;em&gt;Journal of Verbal Learning and Verbal Behavior&lt;/em&gt;, vol. 12, no. 1, pp. 76–84, Feb. 1973. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn10"&gt;
&lt;p&gt;C. Hibbard, "Six Principles of Technical Writing." ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn11"&gt;
&lt;p&gt;"Sequence Diagram with References." &lt;a href="https://sparxsystems.com/resources/gallery/diagrams/software/sw-sequence_diagram_with_references.html" rel="noopener noreferrer"&gt;https://sparxsystems.com/resources/gallery/diagrams/software/sw-sequence_diagram_with_references.html&lt;/a&gt;. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn12"&gt;
&lt;p&gt;"UML Sequence Diagrams - Graphical Notation Reference." &lt;a href="https://www.uml-diagrams.org/sequence-diagrams-reference.html" rel="noopener noreferrer"&gt;https://www.uml-diagrams.org/sequence-diagrams-reference.html&lt;/a&gt;. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn13"&gt;
&lt;p&gt;C. Martraire, &lt;em&gt;Living documentation: Continuous knowledge sharing by design&lt;/em&gt;, 1st edition. Boston, MA: Pearson Education, Inc, 2019. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn14"&gt;
&lt;p&gt;"Documentation Principles — Write the Docs.” &lt;a href="https://www.writethedocs.org/guide/writing/docs-principles/" rel="noopener noreferrer"&gt;https://www.writethedocs.org/guide/writing/docs-principles/&lt;/a&gt;. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn15"&gt;
&lt;p&gt;R. D. Müller, "docToolchain."  &lt;a href="http://doctoolchain.org/docToolchain/v2.0.x/" rel="noopener noreferrer"&gt;http://doctoolchain.org/docToolchain/v2.0.x/&lt;/a&gt;. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;li id="fn16"&gt;
&lt;p&gt;J. Sutherland, "Definition of Done," 07-Aug-2014. &lt;a href="https://www.scruminc.com/definition-of" rel="noopener noreferrer"&gt;https://www.scruminc.com/definition-of&lt;/a&gt; done. ↩&lt;/p&gt;
&lt;/li&gt;

&lt;/ol&gt;

</description>
      <category>documentation</category>
      <category>principles</category>
      <category>arc42</category>
    </item>
    <item>
      <title>Awesome presentations deserve beautiful code</title>
      <dc:creator>Dr. Gernot Starke</dc:creator>
      <pubDate>Thu, 20 Jan 2022 11:43:30 +0000</pubDate>
      <link>https://forem.com/arc42/awesome-presentations-deserve-beautiful-code-3jn9</link>
      <guid>https://forem.com/arc42/awesome-presentations-deserve-beautiful-code-3jn9</guid>
      <description>&lt;h3&gt;
  
  
  Ever seen ugly source code on a slide?
&lt;/h3&gt;

&lt;p&gt;Welcome to reality. Every now and then we all need to put code samples onto PowerPoint or Keynote presentations.&lt;/p&gt;

&lt;p&gt;But wait - presentation programs are made for &lt;strong&gt;text&lt;/strong&gt;, not for &lt;strong&gt;code&lt;/strong&gt;: &lt;br&gt;
They loose all syntax highlighting when you paste your valuable code into their limited textboxes...&lt;br&gt;
Look at this horrible example:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9uewhzmq3z130owhmn5u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9uewhzmq3z130owhmn5u.png" alt="Slide with ugly source code"&gt;&lt;/a&gt;&lt;br&gt;Fig.1 - Slide with ugly code.
  &lt;/p&gt;

&lt;p&gt;I like to introduce &lt;a href="https://carbon.now.sh" rel="noopener noreferrer"&gt;carbon&lt;/a&gt; - a free website that elegantly solves this problem. On their website the creators describe their goal short and concise: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Carbon lets you create and share beautiful images of your source code". &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You see a possible result below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvb78wmihb4gy8wxq5ve0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvb78wmihb4gy8wxq5ve0.png" alt="Slide with beautiful source code (by carbon.now)"&gt;&lt;/a&gt;&lt;/p&gt;
Fig.2 - Slide with beautiful code.

 

&lt;p&gt;What a difference!&lt;/p&gt;

&lt;h3&gt;
  
  
  Nice'n Easy
&lt;/h3&gt;

&lt;p&gt;Carbon is incredbly easy to use: Simply paste your code in the textbox or drag a source file.&lt;/p&gt;

&lt;p&gt;Carbon has a number of interesting configuration options available: Themes, borders, (fake) window controls and more.&lt;/p&gt;

&lt;h4&gt;
  
  
  Predefines themes
&lt;/h4&gt;

&lt;p&gt;Several themes are available, all except the Darcula-Pro themes are free:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpm1smn1yrm2r78ee304e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpm1smn1yrm2r78ee304e.png" alt="carbon themes (1) - Monokai"&gt;&lt;/a&gt; &lt;/p&gt;
Fig.3 - carbon theme (Monokai).

 

&lt;p&gt;If you prefer a lighter theme, you are covered too:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frcr3xkgpwmjslcgveha7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frcr3xkgpwmjslcgveha7.png" alt="carbon themes (2) - OneLight"&gt;&lt;/a&gt;&lt;/p&gt;
Fig.4 - carbon theme (OneLight)

 

&lt;p&gt;In case you need to, you may even configure your own custom theme. It's a lot of work, and for me the standard themes are way good enough.&lt;/p&gt;

&lt;h4&gt;
  
  
  Additional Layout Options
&lt;/h4&gt;

&lt;p&gt;You can set padding, border color, shadow, width, (artificial) window controls and a few more options:&lt;/p&gt;

&lt;p&gt;&lt;a href="" class="article-body-image-wrapper"&gt;&lt;img alt="Some config options"&gt;&lt;/a&gt;&lt;/p&gt;
Fig.5 - some config options.

 

&lt;h4&gt;
  
  
  Export to png and svg
&lt;/h4&gt;

&lt;p&gt;As expected, carbon can export the image of your source as png or svg:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnzs8qgr34x81atllyibl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnzs8qgr34x81atllyibl.png" alt="carbon export options"&gt;&lt;/a&gt;&lt;/p&gt;
Fig.6 - export options.

 

&lt;h4&gt;
  
  
  Alternatives
&lt;/h4&gt;

&lt;p&gt;All right, you may also copy/paste source code as RTF (and hope that your presentation tool really preserves formatting).&lt;br&gt;
You could either paste your code to Microsoft-Word (crossing fingers again for preserved formatting), and export it to PowerPoint from Word. Might work, but is less fun. And in contrast to carbon.sh, it does no good to our atmosphere :-).&lt;/p&gt;

&lt;h3&gt;
  
  
  But: Accessibility Issues
&lt;/h3&gt;

&lt;p&gt;When you convert source code to images, you have to (manually) take care of &lt;a href="https://www.innoq.com/en/topics/accessibility/" rel="noopener noreferrer"&gt;accessibility&lt;/a&gt;.&lt;br&gt;
Images like the ones generated by carbon.sh are not suitable for screen readers.&lt;br&gt;
If you want to adhere to accessibility good practices, you should therefore include the source code shown in the alt-tag of the generated images.&lt;/p&gt;

&lt;h3&gt;
  
  
  Enjoy!
&lt;/h3&gt;

&lt;p&gt;You never again need to include source code as plain and ugly text in any of your presentations!&lt;/p&gt;

&lt;p&gt;One final remark: The name "carbon" was chosen by the authors because they want to reduce CO2 in the atmosphere, read the small print (&lt;a href="https://www.wren.co/join/carbon" rel="noopener noreferrer"&gt;...offsets&lt;/a&gt;) on their website. &lt;/p&gt;

&lt;h3&gt;
  
  
  Links
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://carbon.now.sh" rel="noopener noreferrer"&gt;carbon.now.sh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The creators, &lt;a href="https://twitter.com/carbon_app" rel="noopener noreferrer"&gt;carbon_app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Their &lt;a href="https://github.com/carbon-app/carbon" rel="noopener noreferrer"&gt;Github repository (carbon-app)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Thanx
&lt;/h3&gt;

&lt;p&gt;Kudos to Joachim Praetorius for improving my English and Lars Hupel for pointing out the accessibility issues!&lt;/p&gt;

&lt;p&gt;Thanx to &lt;a href="https://unsplash.com/photos/E0bIdzi8zoQ" rel="noopener noreferrer"&gt;Miguel Henriques&lt;br&gt;
&lt;/a&gt; for the header image.&lt;/p&gt;

</description>
      <category>presentation</category>
      <category>code</category>
    </item>
    <item>
      <title>Authoring Markdown with Zotero - My Workflow</title>
      <dc:creator>Dr. Gernot Starke</dc:creator>
      <pubDate>Sun, 16 Jan 2022 06:58:27 +0000</pubDate>
      <link>https://forem.com/arc42/authoring-markdown-with-zotero-my-workflow-1jgp</link>
      <guid>https://forem.com/arc42/authoring-markdown-with-zotero-my-workflow-1jgp</guid>
      <description>&lt;p&gt;This post describes an authoring workflow that combines the simplicity of markdown (for writing) with the power of a reference manager (for citing and generation of a bibliography).&lt;/p&gt;

&lt;p&gt;This is my current writing workflow:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aHEIq2Um--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nt6hmyyo5rnksxczxoiu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aHEIq2Um--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nt6hmyyo5rnksxczxoiu.png" alt="Overview of writing workflow" width="880" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Collect references, articles, books etc. via Zotero, my citation
manager. You might call this the “research phase”.&lt;/li&gt;
&lt;li&gt; Edit article/text/book using markdown editor.&lt;/li&gt;
&lt;li&gt; Zotero exports your references to a file (continuously in background)&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use &lt;code&gt;make&lt;/code&gt; to compile markdown to final result:&lt;/p&gt;

&lt;p&gt;4a.  &lt;code&gt;pandoc&lt;/code&gt; reads your markdown source file&lt;br&gt;
4b.  &lt;code&gt;pandoc&lt;/code&gt; reads the bibliography file&lt;br&gt;
4c.  &lt;code&gt;pandoc&lt;/code&gt; formats the bibliography entries following the desired citation style, described in a .csl file&lt;br&gt;
4d.  &lt;code&gt;pandoc&lt;/code&gt; creates desired output format(s), like docx or html.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You like more details? Then follow along…&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Markdown (sometimes) isn’t enough
&lt;/h2&gt;

&lt;p&gt;I don’t need to advertise the advantages of markdown as free,&lt;br&gt;
lightweight, simple yet powerful-enough approach to authoring arbitrary content like articles, blogposts (like this one!) or even books.&lt;/p&gt;

&lt;p&gt;But: Markdown is optimized for &lt;em&gt;writing&lt;/em&gt;, not for &lt;em&gt;citing&lt;/em&gt;. If you refer to other sources, like websites, blogs, books or articles in your writing, you want to systematically &lt;em&gt;reference&lt;/em&gt; these sources. An example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;See the original article about Markdown&lt;br&gt;
[1] for further info.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In markdown source, this would be the following:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;See the original article about Markdown ([@gruberDaringFireballMarkdown]) for further info.&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;For a blog post, one could simply include the hyperlink, but for any&lt;br&gt;
printed publication a &lt;em&gt;real reference&lt;/em&gt; is more appropriate, often&lt;br&gt;
required by publishers. Such references in your bibliography will look similar to the following example:&lt;/p&gt;

&lt;p&gt;[1] J. Gruber, “Daring Fireball: Markdown.” &lt;a href="https://daringfireball.net/projects/markdown/"&gt;https://daringfireball.net/projects/markdown/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In case you write just a single article, this isn't a big problem: Manually add your sources at the end of your text, and you’re done. But if you (like myself) publish regularly, you might want to have a central repository of your references including publication dates, publisher info, links etc. That’s where &lt;a href="https://www.zotero.org/"&gt;Zotero&lt;/a&gt; comes into play:&lt;/p&gt;
&lt;h2&gt;
  
  
  Zotero
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.zotero.org/"&gt;Zotero&lt;/a&gt; is a free, open-source and user-friendly tool to help you collect, organize and cite references,&lt;br&gt;
like articles, books or research papers (see [2])&lt;/p&gt;

&lt;p&gt;Zotero is available for all major platforms (Win, Mac, Linux).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--THwSzURs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1y1mweest5gujiabp3ur.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--THwSzURs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1y1mweest5gujiabp3ur.png" alt="My Zotero library" width="880" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can sync your reference library across multiple devices and add new references either by ISBN, &lt;a href="https://en.wikipedia.org/wiki/Digital_object_identifier"&gt;DOI&lt;/a&gt; or similar ways. For online publications, powerful browser plugins are available to add any webpage to your library, together with a snapshot for offline viewing!&lt;/p&gt;
&lt;h3&gt;
  
  
  Required Zotero Plugins
&lt;/h3&gt;

&lt;p&gt;You need to add BetterBibTeX (short bbt, see [3]) to your Zotero installation.&lt;br&gt;
bbt can export your Zotero library (or a subset of it) to an arbitrary file system location - and keep this export updated! Wheneve you add a new reference to Zotero, this exported file gets updated too!&lt;/p&gt;
&lt;h2&gt;
  
  
  Adding References to a Text
&lt;/h2&gt;

&lt;p&gt;I like the editing experience of VS-Code, mainly for its rich plugin universe. One of these plugins is the Zotero-Citation-Picker: &lt;br&gt;
It gives you a search box and retrieves results directly from your Zotero library.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DVcDwPUq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wd1aaroputnk1g5zxxa5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DVcDwPUq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wd1aaroputnk1g5zxxa5.png" alt="Zotero Citation Picker Plugin" width="880" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you have found the correct reference, the plugin enters the unique citation key at the current cursor location.&lt;/p&gt;
&lt;h2&gt;
  
  
  Compile the Bibliography
&lt;/h2&gt;

&lt;p&gt;Now you have a markdown text containing several of these “citation keys” - but still no list of references, the so called bibliography*.&lt;/p&gt;

&lt;p&gt;That’s where the next player enters the field: &lt;a href="https://pandoc.org/"&gt;pandoc&lt;/a&gt; (see [4] ).&lt;/p&gt;
&lt;h2&gt;
  
  
  Compile Output with Pandoc
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;“If you need to convert files from one markup format into another,&lt;br&gt;
pandoc is your swiss-army knife.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Although you could use pandoc directly from the command line, I prefer good old &lt;code&gt;make&lt;/code&gt;, as I cannot remember parameters and options. Look at my &lt;code&gt;Makefile&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight make"&gt;&lt;code&gt;&lt;span class="nv"&gt;OUTPUT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;out
&lt;span class="nv"&gt;SOURCE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;content.md &lt;span class="c"&gt;# name of your markdown source file&lt;/span&gt;

&lt;span class="nv"&gt;CITATIONSTYLE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ieee.csl
&lt;span class="nv"&gt;BIBLIO&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;~/Dropbox/zotero-export/zorg-biblio.bib
&lt;span class="nv"&gt;TARGET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$(OUTPUT)&lt;/span&gt;.docx &lt;span class="nv"&gt;$(OUTPUT)&lt;/span&gt;.md

&lt;span class="nv"&gt;PANDOC&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;pandoc &lt;span class="se"&gt;\&lt;/span&gt;
   &lt;span class="nt"&gt;--from&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;markdown &lt;span class="se"&gt;\&lt;/span&gt;
   &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="nt"&gt;--bibliography&lt;/span&gt; &lt;span class="nv"&gt;$(BIBLIO)&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
   &lt;span class="nt"&gt;--citeproc&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
   &lt;span class="nt"&gt;--csl&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$(CITATIONSTYLE)&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
   &lt;span class="nt"&gt;--metadata&lt;/span&gt; link-citations&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
   &lt;span class="nv"&gt;$(SOURCE)&lt;/span&gt;

&lt;span class="c"&gt;# create docx
&lt;/span&gt;&lt;span class="nl"&gt;$(OUTPUT).docx&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;$(SOURCE) $(METADATA)&lt;/span&gt;
   &lt;span class="err"&gt;$(PANDOC)&lt;/span&gt; &lt;span class="nv"&gt;--output&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$(OUTPUT)&lt;/span&gt;.docx


&lt;span class="c"&gt;# create github flavored markdown
&lt;/span&gt;&lt;span class="nl"&gt;$(OUTPUT).md&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;$(SOURCE) $(METADATA)&lt;/span&gt;
   &lt;span class="err"&gt;$(PANDOC)&lt;/span&gt; &lt;span class="nv"&gt;--to&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;gfm &lt;span class="nt"&gt;--output&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$(OUTPUT)&lt;/span&gt;.md

&lt;span class="nl"&gt;all&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;$(TARGET)&lt;/span&gt;

&lt;span class="nl"&gt;clean&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
   &lt;span class="err"&gt;rm&lt;/span&gt; &lt;span class="err"&gt;-rf&lt;/span&gt; &lt;span class="err"&gt;$(OUTPUT).docx&lt;/span&gt; &lt;span class="err"&gt;$(OUTPUT).md&lt;/span&gt;

&lt;span class="nl"&gt;.PHONY&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nf"&gt;all clean $(TARGET)&lt;/span&gt;
&lt;span class="nv"&gt;.DEFAULT_GOAL&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; all
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(This Makefile is available as &lt;a href="https://gist.github.com/gernotstarke/8deff51f87f1fe0270c88e21fe9fa74b"&gt;Github-gist&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Yes, I know: One could wrap pandoc into a tiny Docker container - but pandoc is easy to install and is incredibly fast. A Docker container would remove the dependency to pandoc, but add the overhead of a running container.&lt;/p&gt;

&lt;p&gt;When you try this on your own, please fulfill the following&lt;br&gt;
prerequisites: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;install &lt;code&gt;pandoc&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;add the citation-style csl-file to your current directory (I didn’t manage to keep this file in any central location - help or suggestions would be appreciated)&lt;/li&gt;
&lt;li&gt;add the &lt;code&gt;Makefile&lt;/code&gt; to the current directory&lt;/li&gt;
&lt;li&gt;update the &lt;code&gt;BIBLIO&lt;/code&gt; variable in the makefile to point to your Zotero export location.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Image Credit
&lt;/h3&gt;

&lt;p&gt;Splash image by &lt;a href="https://unsplash.com/photos/UgA3Xvi3SkA"&gt;Trent Erwin&lt;/a&gt; on Unsplash.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bibliography
&lt;/h3&gt;

&lt;p&gt;This bibliography has been auto-generated by the workflow shown above.&lt;/p&gt;

&lt;p&gt;&lt;span&gt;[1] &lt;/span&gt;&lt;span&gt;J. Gruber, “Daring Fireball: Markdown.”&lt;br&gt;
&lt;a href="https://daringfireball.net/projects/markdown/"&gt;https://daringfireball.net/projects/markdown/&lt;/a&gt;. &lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span&gt;[2] &lt;/span&gt;&lt;span&gt;“Zotero | Your personal research assistant.”&lt;br&gt;
&lt;a href="https://www.zotero.org/"&gt;https://www.zotero.org/&lt;/a&gt;. &lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span&gt;[3] &lt;/span&gt;&lt;span&gt;E. Heyns, “Better BibTeX for Zotero.” Dec-2021.&lt;br&gt;
&lt;a href="https://retorque.re/zotero-better-bibtex/"&gt;https://retorque.re/zotero-better-bibtex/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span&gt;[4] &lt;/span&gt;&lt;span&gt;“Pandoc - About pandoc.” &lt;a href="https://pandoc.org/"&gt;https://pandoc.org/&lt;/a&gt;.&lt;br&gt;
&lt;/span&gt;&lt;/p&gt;



</description>
      <category>markdown</category>
      <category>authoring</category>
      <category>pandoc</category>
      <category>workflow</category>
    </item>
    <item>
      <title>Merge PDF files with QPDF</title>
      <dc:creator>Dr. Gernot Starke</dc:creator>
      <pubDate>Sat, 13 Nov 2021 13:31:15 +0000</pubDate>
      <link>https://forem.com/gernotstarke/merge-pdf-files-with-qpdf-32bg</link>
      <guid>https://forem.com/gernotstarke/merge-pdf-files-with-qpdf-32bg</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;You want to merge (&lt;em&gt;concatenate&lt;/em&gt;) several PDF files.&lt;br&gt;
It is not possible to just append one PDF after the other, let's say by command-line append operations.&lt;/p&gt;

&lt;p&gt;Other simple PDF utilities fail in preserving internal hyperlinks (&lt;em&gt;cross references&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;I needed a programatic solution that works completely automated (controlled via &lt;code&gt;make&lt;/code&gt;) within a Docker container.&lt;/p&gt;

&lt;h2&gt;
  
  
  Nerdy Solution
&lt;/h2&gt;

&lt;p&gt;&lt;a href=""&gt;QPDF&lt;/a&gt; is an &lt;a href="https://qpdf.sourceforge.io/files/qpdf-manual.html" rel="noopener noreferrer"&gt;extensively documented&lt;/a&gt; tool for:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"structural, content-preserving transformations on PDF files."&lt;br&gt;
(from their &lt;a href="https://github.com/qpdf/qpdf" rel="noopener noreferrer"&gt;website&lt;/a&gt;)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;One (very basic) use case is merging two or more PDF files into one single output file.&lt;br&gt;
To be more specific: I want to add a cover page to the main part of a book, as illustrated below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh9df94dmerrhgtuqucm3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh9df94dmerrhgtuqucm3.png" alt="merge cover with book"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I write the book in Markdown and use a TeX-based toolchain to generate PDF output (that's another story).&lt;/p&gt;

&lt;p&gt;The book itself contains numerous cross-references (internal links), pointing to other sections of the book or to specific pages. These links must be preserved during merge - and my initial approaches lost all those links.&lt;/p&gt;

&lt;p&gt;QPDF to the rescue:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

qpdf book.pdf --pages cover.pdf 1 book.pdf 1-z -- result.pdf  


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;It took me a while to figure out the exact syntax - and wrote this post so I (and other lost book-writing soules) can find it later.&lt;/p&gt;

&lt;h3&gt;
  
  
  Beware, though...
&lt;/h3&gt;

&lt;p&gt;I suggest to keep the dimensions of book- and cover page identical (obviously you will care for that anyway).&lt;/p&gt;

&lt;h2&gt;
  
  
  Manual Solution, MacOS only
&lt;/h2&gt;

&lt;p&gt;In case you are working on MacOS, you can simply use the preview tool to concatenate PDF files - in most cases hyperlinks and cross-references are preserved.&lt;br&gt;
But: It is a manual solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Thanx
&lt;/h2&gt;

&lt;p&gt;Thanx to the awesome &lt;a href="https://qpdf.sourceforge.io/files/qpdf-manual.html" rel="noopener noreferrer"&gt;Jay Berkenbilt&lt;/a&gt; for creating and maintaining QPDF since 2005 (!!).&lt;/p&gt;

&lt;p&gt;Thanx to &lt;a href="https://unsplash.com/photos/snNHKZ-mGfE" rel="noopener noreferrer"&gt;Wesley Tingey&lt;/a&gt; for the cover image, via Unsplash.&lt;/p&gt;

</description>
      <category>files</category>
      <category>pdf</category>
      <category>writing</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Quality-Driven Software Architecture</title>
      <dc:creator>Dr. Gernot Starke</dc:creator>
      <pubDate>Tue, 27 Jul 2021 14:35:30 +0000</pubDate>
      <link>https://forem.com/gernotstarke/quality-driven-software-architecture-3i9m</link>
      <guid>https://forem.com/gernotstarke/quality-driven-software-architecture-3i9m</guid>
      <description>&lt;h2&gt;
  
  
  Getting your product quality right
&lt;/h2&gt;

&lt;p&gt;Quality is the raison d'être for software architects:&lt;br&gt;
Our systems should be reliable, performant, scalable and user-friendly. Systems should be build and maintained cost-effective and future-proof. Every IT professional knows that this combination of characteristics means hard work.&lt;br&gt;
The article shows how you can methodically construct quality.&lt;/p&gt;
&lt;h2&gt;
  
  
  Tea with sugar?
&lt;/h2&gt;

&lt;p&gt;How do you drink your morning tea: With sugar or natural? With a drop of milk and some honey? Do you prefer it with lemon?  Black or green, hot or with ice? Or do you prefer coffee in the end? As you can see, the requirements for breakfast drinks, just like those for software, depend very much on the&lt;br&gt;
viewer and the context.  If we want to create a high-quality morning beverage (or a system in general), we definitely need to determine the specific (quality) requirements of the relevant stakeholders beforehand. Overly general requirements are only of limited help.&lt;/p&gt;

&lt;p&gt;Nowadays, customers and users expect software to meet a large number of (quality) requirements, of which "correct function" is only one among many. In classical software development, however, &lt;em&gt;functionality&lt;/em&gt; is often treated as the center of attention: The design and implementation activities are focussed on getting the functionality right - with potentially fatal consequences. Let us illustrate this with a small example.&lt;/p&gt;
&lt;h3&gt;
  
  
  Functionality is (usually) not enough
&lt;/h3&gt;

&lt;p&gt;Since the triumph of digital cameras and smartphones, practically all of us have felt the need to somehow organize the many individual images on the computer. &lt;br&gt;
Let's use this as an example of a requirements description for a software system: manage digital photos.&lt;br&gt;
Imagine you are the software architect who shall develop such a system together with a small development team.&lt;br&gt;
The customer tells you the following story:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"We want to organize photos in folders and tag them with keywords.&lt;br&gt;
Later, we want to be able to search and display images according to various search criteria (such as: date, keyword, etc.). In our private collection, we can get by with a few thousand photos."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As an architect, you might reformulate these coarse statements into some features &lt;br&gt;
(In real development, somebody like your product owner should handle that...)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;add images&lt;/li&gt;
&lt;li&gt;add image to folder&lt;/li&gt;
&lt;li&gt;delete images&lt;/li&gt;
&lt;li&gt;display images&lt;/li&gt;
&lt;li&gt;search images for location, date, keywords, folder&lt;/li&gt;
&lt;li&gt;change metadata (like location, date, keyword)&lt;/li&gt;
&lt;li&gt;add folder&lt;/li&gt;
&lt;li&gt;rename folder&lt;/li&gt;
&lt;li&gt;remove folder&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;(yes, I know that it would be nice to have additional features like albums, but let us keep things simple for now)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa8a30uhy56ax0y54mg44.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa8a30uhy56ax0y54mg44.png" alt="Sample Apps for Photo Management"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fig. 1: Sample photo with some attributes&lt;/p&gt;

&lt;p&gt;Now you need to derive a solution approach from these (admittedly very rough) requirements. &lt;br&gt;
A model helps us to clarify things. We can derive it from an example (see Fig. 1). &lt;br&gt;
In our case, each photo has only a handful of attributes (date, location, file name, folder, etc.). &lt;br&gt;
We map the keywords as a list so that each photo can have several.&lt;br&gt;
Again, I'm well aware that this approach is overly simplistic - but give me a minute.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsbxvh6fzxw3dequ59sbb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsbxvh6fzxw3dequ59sbb.png" alt="Fig 2: Model for Solution Approach"&gt;&lt;/a&gt;&lt;br&gt;
Fig. 2:  A model for a "solution approach"&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;In our example, the domain model seems almost trivial (see Figure 2). &lt;br&gt;
Only three small entities are sufficient to represent the desired functionality from a purely business perspective. Location, date and keywords are stored via key-value pairs in the Metadata class. It could hardly be simpler.&lt;/p&gt;

&lt;p&gt;Based upon such a model, architects and develpers can start implementing business functionality and corresponding tests. &lt;br&gt;
In our example, we would need to implement the classic CRUD tasks (create, read, update, delete) for our domain entities (photos, folders, and metadata), and additionally solve a few technical tasks to bring the photo system to life:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;display jpeg files &lt;/li&gt;
&lt;li&gt;create a graphical user interface for our features&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From an architects' perspective, it is valid to ask the "make-or-buy" question: Has anybody else already solved my problem, and could we potentially buy or re-use an existing solution?&lt;br&gt;
The answer is obviously "yes", as several commercial and open-source packages exist for photo management,&lt;br&gt;
e.g. &lt;a href=""&gt;Shotwell&lt;/a&gt;, &lt;a href=""&gt;Darktable&lt;/a&gt; and Lightzone, see fig. 3. But that would be pretty boring for us developers, so we build the solution ourselves (despite it is usually very clever and efficient to prefer existing solutions over home-grown stuff...)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl7dvvzsmo1pc0yn8msoo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl7dvvzsmo1pc0yn8msoo.png" alt="Existing Solutions"&gt;&lt;/a&gt;&lt;br&gt;
Fig. 3: Options for Photo Management&lt;br&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  But ...
&lt;/h3&gt;

&lt;p&gt;The customer is really happy that you delivered with a week and plays around with your solution. With a big smile on their faces they comment: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"It is great, but we require a small change." &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Only three letters, sounding insignificant, that "but". &lt;br&gt;
Our customer, excited by what they saw, adds the following requirements: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"We want to roll out our photo management to multiple users and provide 10Gbyte of free storage for each of them. Of course, people shall be able to share photos amongst each other. Otherwise, don't worry - the functionality will remain identical..."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ok. We should have known there was something else coming - otherwise they wouldn't have asked us in the first place. So, not only local storage on users' machines any longer, as users get 10 Gig for free. Sharing photos among users &lt;em&gt;definitely&lt;/em&gt; adds some more functional requirements - but having centrally managed storage and multiple users changes the whole scope and context of our development.&lt;/p&gt;

&lt;p&gt;As you are an experienced architect and therefore know about "&lt;a href="https://en.wikipedia.org/wiki/Murphy%27s_law" rel="noopener noreferrer"&gt;Murphy's law&lt;/a&gt;", you ask the customer for an expected number of users. They answer promptly: Millions, hopefully dozens of millions of users.&lt;/p&gt;
&lt;h3&gt;
  
  
  Millions of users
&lt;/h3&gt;

&lt;p&gt;A quick calculation reveals that we now have to re-think our file-based storage approach:&lt;br&gt;
let's assume we get 10 Million users, and everyone will add only half of the allowed free storage (5 GByte) of images to our system.  Without considering backup and index space, that alone will require a quite impressive amount of storage:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    10 Million * 5 GByte 
  = 10.000.000 * 5 GByte 
  = 10.000     * 5 Terabyte
  = 10         * 5 Petabyte 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;50 Petabyte. Defintely more than we can squeeze on on standard SSD drive, and likely to become pretty expensive if we use a standard cloud storage provider.&lt;br&gt;
Additionally, with a million of potentially concurrent users, we should think about concurrency, scaling, elasticity and a few other things &lt;strong&gt;not contained in our domain model&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Interestingly though, our domain model remains extremely simple, see the diagram below (Fig. 4)&lt;br&gt;
Just a single domain class is added (User), denoting the owner of the photo, plus a relationship to share photos with other users.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyw3la97zuf4udfg3aa3o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyw3la97zuf4udfg3aa3o.png" alt="Enhanced Domain Model"&gt;&lt;/a&gt;&lt;br&gt;
Fig. 4: Enhanced Domain Model&lt;/p&gt;

&lt;p&gt;Practically, we will now need some changes to functionality, namely all things related to user management (add/update/remove users, handle authentication, handle forgotten credentials and so on).&lt;/p&gt;

&lt;h3&gt;
  
  
  Just a single knob...
&lt;/h3&gt;

&lt;p&gt;In contrast to the original requirements, no (!) relevant functionality was added, just a single quality attribute was adjusted: We had single-user operation before, and did not explicitly care for storage capacity. Our customer just turned a single knob ("capacity"), resulting in imporant under-the-hood changes. &lt;/p&gt;

&lt;p&gt;That tiny change in requirements resulted in a completely different solution approach. &lt;br&gt;
Compared to the simple functional requirements, even hardened architects and developers now suddenly get concerns: millions of users and petabytes of data confront a development team with completely new tasks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scalability to keep the system perfomant and responsive even with the planned number of users. This includes clustering and load balancing to be able to react to load peaks at short notice.&lt;/li&gt;
&lt;li&gt;Storage of large amounts of data (new German Big Data), which does not work satisfactorily with conventional databases or file systems.&lt;/li&gt;
&lt;li&gt;Distributed data storage, because for performance and risk reasons the entire data stock should be distributed over several locations or data centers.&lt;/li&gt;
&lt;li&gt;High availability, because large numbers of international users do not tolerate long maintenance windows&lt;/li&gt;
&lt;li&gt;Transmission costs, for example for replication of image data.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What's missing in Domain-Driven Design
&lt;/h3&gt;

&lt;p&gt;A purely domain-driven approach to the design and development of our photo example might have ignored the essential quality requirements (number of users and data volume). In general, if there is too much focus on functionality and domain structure, there is a risk of overlooking important quality features or ignoring them for a long time.&lt;/p&gt;

&lt;p&gt;Parallel to understanding and considering the domain you should therefore explicitly &lt;em&gt;design&lt;/em&gt; the required or needed qualities into your system. But let's consider a relevant objection first:&lt;/p&gt;

&lt;p&gt;In case you think "hey, we are nor adressing millions of users, neither giving away petabytes of free storage, this example is exaggerated".&lt;/p&gt;

&lt;h3&gt;
  
  
  Ok, let's turn another knob
&lt;/h3&gt;

&lt;p&gt;If you are of the opinion that the quality requirements mentioned here are too ambitious, because you will never have millions of users yourself, let's choose a completely different requirement: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Your customer wants to store images for a few dozen employees, each with a maximum of one hundred images.&lt;/p&gt;

&lt;p&gt;This results in a total volume of data that can easily be stored on a single hard disk. We can easily manage a few dozen user IDs without any capacity or storage problems. However: &lt;/p&gt;

&lt;p&gt;The stored images are top secret (&lt;em&gt;military grade security&lt;/em&gt;)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Again, we have to deal with problems beyond pure functionality: secure encryption algorithms, secure transfer of images to users, key- or credential management, highly secure authentication of users. These tasks are also difficult to retrofit to an already finished software.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is "Quality"?
&lt;/h3&gt;

&lt;p&gt;The term "quality" was subject of another &lt;a href="https://dev.to/gernotstarke/what-s-in-a-word-quality-48pl"&gt;short post here on dev.to&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In the past, many researchers and practitioners have discussed options how to treat "quality" of software based products. Their common approach is to treat quality as a hierarchy of &lt;em&gt;smaller&lt;/em&gt; properties:&lt;/p&gt;

&lt;p&gt;The well-known approach of ISO-25010 divides &lt;em&gt;quality&lt;/em&gt; into eight categories, each of them again by additional characteristics (see Fig. 5).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbga212ayu0hk48l00z5k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbga212ayu0hk48l00z5k.png" alt="ISO 25010 Overview"&gt;&lt;/a&gt;&lt;br&gt;
Fig. 5: ISO 25010 Software Product Quality&lt;/p&gt;

&lt;p&gt;Our photo management system from the introduction serves as an example: We now describe the (quality) requirements as a hierarchy: The required software quality is decomposed into subcharacteristics, which in turn are further decomposed as required. This so-called quality tree describes or defines the specific quality requirements for a system. In Fig. 6 below we turned the tree leftwise, and removed most of the branches from the "big" ISO-25010 model.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6qxugcfiptkmiyunf7gk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6qxugcfiptkmiyunf7gk.png" alt="Sample Quality Tree"&gt;&lt;/a&gt;&lt;br&gt;
Fig. 6: Sample Quality Tree&lt;/p&gt;

&lt;p&gt;These textual descriptions of specific quality attributes (e.g. "Photo search yields results in &amp;lt; 1sec on average") are called &lt;em&gt;quality scenarios&lt;/em&gt; and has been described in many books and articles, see this &lt;a href="https://dev.to/frosnerd/quality-attributes-in-software-1ha9"&gt;nice post from Frank Rosner&lt;/a&gt;. Scenarios provide a practical and pragmatic way do describe quality requirements, they are easy to understand and create.&lt;/p&gt;

&lt;h2&gt;
  
  
  Achieving Quality
&lt;/h2&gt;

&lt;p&gt;So how can you achieve this, often quite extensive, set of quality requirements for a system? We have already seen that concentrating on the purely functional or technical characteristics is often not enough.&lt;/p&gt;

&lt;p&gt;The short answer: Explicitly consider quality requirements - don't expect that the system will be fast, secure, reliable or maintainable enough just by producing clean code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Systematically Constructing Quality
&lt;/h3&gt;

&lt;p&gt;As a software architect, you must therefore place great emphasis on achieving the important quality characteristics from the very beginning when designing and implementing your systems. Fortunately, this is quite simple in practice: &lt;/p&gt;

&lt;p&gt;First of all, you should make quality a very important goal and pay attention to it accordingly. Then follow a classic plan-do-check-act cycle (analogous to the classical &lt;a href="https://en.wikipedia.org/wiki/PDCA" rel="noopener noreferrer"&gt;PDCA Deming cycle&lt;/a&gt;) with the following steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;aim&lt;/strong&gt;, getting specific and concrete quality requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;plan&lt;/strong&gt;: define (together with your team) approaches or strategies to achieve the respective quality requirement. Approaches might be purely technical (e.g. use Elasticsearch for image search queries), organizational, business-related (e.g. restrict free storage to 1 GByte in first year of usage), or a mixture of all.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;build&lt;/strong&gt;: Implement some of these approaches. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;check&lt;/strong&gt; or test: Check the effectiveness of your approaches. To do this, you need to measure and test as close as possible to the running system or parts of it. If necessary, you now need to re-adjust. To do this, continue with step 1 (aim). This cyclical iterative procedure elevates the systematic review of goal achievement to a system. It ensures that high-priority quality requirements are taken into account in a timely manner in design and development. Neil Ford calls this "&lt;a href="https://dev.to/jhotterbeekx/building-evolutionary-architectures---book-review-376i"&gt;evolutionary architecture&lt;/a&gt;."&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3m38y625zni5puob2aoe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3m38y625zni5puob2aoe.png" alt="PCDA Cycle, Quality Driving Architecture Decisions"&gt;&lt;/a&gt;&lt;br&gt;
Fig. 7: Quality Driving Architectural Decisions&lt;/p&gt;

&lt;p&gt;The build and check activities are completely normal architecture and project business - but the aim and plan activities require some explanation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Aim: Getting Quality Requirements Right
&lt;/h3&gt;

&lt;p&gt;In the ideal world, you receive concrete and specific quality requirements from requirements engineering or your product owner. However, in my long years in the IT industry, I have rarely encountered ideal conditions - I regularly had to rework the quality requirements for systems. The simple reason for this: The functional requirements and processes of a system can usually be described quite simply, but clients and other stakeholders usually have a hard time with the specific, precise description of maintainability, flexibility, robustness, ergonomics, efficiency and so on (the &lt;em&gt;qualities&lt;/em&gt; of systems).&lt;/p&gt;

&lt;p&gt;There has been a remedy for this problem for a long time: Methods such as quality scenarios can help to describe quality requirements and goals in a pragmatic and operationalized way. We have already roughly addressed this above, here again in more detail:&lt;/p&gt;

&lt;p&gt;You remember the hierarchical nature of quality: quality scenarios form the leaves from the quality tree. We concretize these leaves with scenarios in order to describe more precisely what the respective stakeholders mean by this term. Several different scenarios may well refer to a single quality characteristic. Again, instead of gray theory, a few examples (in Table 1) will help you understand this approach. In general, scenarios describe the reaction of a system to events. Many quality characteristics can be well concretized with the help of scenarios, especially efficiency, performance, flexibility, extensibility and reliability.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Subfeature&lt;/th&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;Priority&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Reliability&lt;/td&gt;
&lt;td&gt;Robustness&lt;/td&gt;
&lt;td&gt;When uploading a corrupted jpg photo, the system gives a meaningful indication without crashing.&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Robustness&lt;/td&gt;
&lt;td&gt;When uploading an unknown file type (such as: pdf, svg, tiff), the system gives an appropriate message and saves the data without crashing.&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Data Integrity&lt;/td&gt;
&lt;td&gt;The system will not modify or corrupt photos uploaded by users under any circumstances.&lt;/td&gt;
&lt;td&gt;A&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Performance&lt;/td&gt;
&lt;td&gt;Capacity: Number of Users&lt;/td&gt;
&lt;td&gt;The system supports up to 10 million users, each of whom is allowed to use up to 5 GB of storage for photos and metadata.&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ease of Use&lt;/td&gt;
&lt;td&gt;Learnability&lt;/td&gt;
&lt;td&gt;Casual users should be able to save their first photo in less than 2 minutes.&lt;/td&gt;
&lt;td&gt;B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;Learnability&lt;/td&gt;
&lt;td&gt;Users should be able to create more complex searches without the help of documentation&lt;/td&gt;
&lt;td&gt;C&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
Table 1: More Examples for Quality Scenarios

 

&lt;p&gt;Please note the "Priority" column in Table 1: This puts the quality requirements in an appropriate order from a business point of view. The finished system will achieve all quality goals, the priority helps during for architecture and development in design and implementation decisions.&lt;/p&gt;

&lt;p&gt;Now that we have clarified the quality requirements and made them operational and hopefully testable - we move on to the next step, strategy, tactics or other approaches to achieve these requirements.&lt;/p&gt;

&lt;h3&gt;
  
  
  Plan: Define Approaches to Achieve Quality
&lt;/h3&gt;

&lt;p&gt;Once we know the specific requirements, we can design, decide and define specific approaches, measures, concepts and technology to achieve these requirements. In addition to established good practices of software engineering, we can rely on published strategies, tactics and patterns. &lt;/p&gt;

&lt;p&gt;The well-known Software Engineering Institute has introduced the term &lt;em&gt;"quality tactics"&lt;/em&gt; for this, and &lt;a href="https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=6593" rel="noopener noreferrer"&gt;published a few for individual quality characteristics&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To date, there is no complete collection of such quality tactics, but the current literature provides you with a large pool: The patterns that have been so widespread for a few years already help for the quality characteristics flexibility, robustness, performance and security, etc. - as long as you consider them with a focus on quality-enhancing measures. &lt;/p&gt;

&lt;h3&gt;
  
  
  QDSA in Practice
&lt;/h3&gt;

&lt;p&gt;In development practice, QDSA consists of really simple mechanisms:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Write down your stakeholders' explicit quality requirements.&lt;/li&gt;
&lt;li&gt;Design, decide and define specific approaches, tactics or strategies to achieve these specific requirements.&lt;/li&gt;
&lt;li&gt;Implement one or several, and finally&lt;/li&gt;
&lt;li&gt;Check if your approach(es) worked out as planned.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A simple board or table in your project wiki suffices, no additional tools required.   &lt;/p&gt;

&lt;h3&gt;
  
  
  QDSA for Photo Management
&lt;/h3&gt;

&lt;p&gt;Let's come back to our photo management example one last time and dedicate this way to our demanding quality goal "high number of users and large amount of data". Table 2 contains some proposals how your team might achieve that goal. It's still a lot of work to do, but at least we now have collected some ideas which we can pursue during development.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Q-Requirement&lt;/th&gt;
&lt;th&gt;Proposales / Approaches / Tactics / Strategies&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Capacity (Number of Users): System supports up to 10 million users, each is allowed up to 5 GB of storage.&lt;/td&gt;
&lt;td&gt;* NoSQL datastore with auto-replication &lt;br&gt; * Use content-delivery network &lt;br&gt; * Use &lt;a href="https://auth0.com/de/user-management" rel="noopener noreferrer"&gt;Auth0 for user management&lt;/a&gt; &lt;br&gt; * hire expert for large-scale load testing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Learnability: Casual users should be able to save their first photo in less than 2 minutes.&lt;/td&gt;
&lt;td&gt;* get usability expert on team &lt;br&gt;* add &lt;em&gt;drop image&lt;/em&gt; function for upload &lt;br&gt;* design-thinking workshop to optimize flows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;td&gt;...&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Some of these proposals are expensive, others are difficult to implement. But if your customer has difficult requirements, sometimes you have to take big leaps to achieve these goals! Brainstorming, collecting and systematically analyzing proposals for action is the core of &lt;em&gt;Quality-Driven Software Architecture&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Beware of Side Effects
&lt;/h3&gt;

&lt;p&gt;In QDSA, you should be particularly careful at one point: Individual measures can easily impact other quality attributes. A positive effect on one characteristic such as performance can easily have negative effects on other characteristics, such as memory requirements, robustness, or comprehensibility. That's the classical side-effect: There is no free lunch. Many things you improve will have an impact on budget or schedule. You should therefore systematically question possible consequences before you start implementing your quality approaches. &lt;/p&gt;

&lt;p&gt;The rest is classic development business, namely planning the measures in everyday life and then implementing them. Whether you work according to Scrum or other process models, with regard to QDSA there are no special features compared to normal procedures. From my point of view, the combination of DDD and QDSA is very promising: On the one hand, you get your domain structure under control, on the other hand, you explicitly address the important quality topics. Your customers or clients will be thrilled!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fws22sa9664qnzwhmf7mf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fws22sa9664qnzwhmf7mf.jpg" alt="Cheering user"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Quality Creates Value
&lt;/h3&gt;

&lt;p&gt;Constructing quality systematically in this way creates value for your stakeholders: software systems that achieve specific quality goals. As mentioned above, many quality-enhancing approaches or strategies are initially expensive, costly or even risky with regard to other goals. In the long term, however, such investment in achieving quality goals virtually always pays off. This is why quality orientation is often unpopular with purely short-term management, because some investments do not pay off immediately, but only after some delay. &lt;/p&gt;

&lt;p&gt;Quality can hardly be achieved without systematic design (aka &lt;em&gt;architecture&lt;/em&gt;). And good things never come for free.&lt;/p&gt;

&lt;h2&gt;
  
  
  Acknowledgements
&lt;/h2&gt;

&lt;p&gt;Way back in the year 2000, some software architects from Siemens Medical (mainly Mrs Christing Hofmeister) published a book called "Applied Software Architecture", describing a method to systematically designing systems based upon given requirements and constraints. They called their approach &lt;em&gt;global analysis&lt;/em&gt; - which became the fundation of the QDSA approach described here. The Siemens guys did not focus on quality, and proposed a quite &lt;em&gt;waterfallish&lt;/em&gt; top-down approach to architecture, not suited for modern development practices. Nevertheless - their idea of developing solution approaches based upon specific (quality) requirements or constraints remains usefull.&lt;/p&gt;

&lt;h3&gt;
  
  
  Image credits
&lt;/h3&gt;

&lt;p&gt;The cheerful lady has been photographed by Photo by &lt;a href="https://unsplash.com/@sincerelymedia" rel="noopener noreferrer"&gt;Sincerely Media&lt;/a&gt; on Unsplash.&lt;/p&gt;

&lt;p&gt;The header image by &lt;a href="https://unsplash.com/@isaacmsmith" rel="noopener noreferrer"&gt;Isaac M Smith&lt;/a&gt;&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>codequality</category>
      <category>method</category>
    </item>
  </channel>
</rss>
