my website banner

added RSS support for blog
authorDavid Polakovic <email@dpolakovic.space>
Mon, 8 Jan 2024 18:39:55 +0000 (19:39 +0100)
committerDavid Polakovic <email@dpolakovic.space>
Mon, 8 Jan 2024 18:39:55 +0000 (19:39 +0100)
32 files changed:
Pictures/emacs3.png [new file with mode: 0644]
Pictures/gnu40.png [deleted file]
Pictures/rss2.png [new file with mode: 0644]
README.txt
Styles/noto-serif.bold.ttf [changed mode: 0644->0755]
Styles/noto-serif.italic.ttf [changed mode: 0644->0755]
Styles/noto-serif.regular.ttf [changed mode: 0644->0755]
Styles/styles.css
Zax/Helvetica_Narrow_Bold.TTF [new file with mode: 0644]
Zax/index.html [new file with mode: 0644]
Zax/styles.css [new file with mode: 0644]
Zax/wall.jpg [new file with mode: 0644]
blog.php [changed mode: 0644->0755]
blogs/blog-list.html [deleted file]
blogs/blog-template.html
blogs/free-software.html [new file with mode: 0755]
blogs/pics/free2.jpg [new file with mode: 0755]
blogs/pics/free3.png [new file with mode: 0755]
blogs/pics/zork.png [new file with mode: 0755]
blogs/zork.html [new file with mode: 0755]
clue.php [deleted file]
dir.php [new file with mode: 0755]
index.php [changed mode: 0644->0755]
lib.php [changed mode: 0644->0755]
lib.txt [deleted file]
php/config.php [new file with mode: 0755]
php/lib.txt [new file with mode: 0755]
php/rnd.txt [new file with mode: 0755]
rnd.txt [deleted file]
rss.xml [new file with mode: 0644]
test.html [deleted file]
test.php [new file with mode: 0755]

diff --git a/Pictures/emacs3.png b/Pictures/emacs3.png
new file mode 100644 (file)
index 0000000..e92c1df
Binary files /dev/null and b/Pictures/emacs3.png differ
diff --git a/Pictures/gnu40.png b/Pictures/gnu40.png
deleted file mode 100644 (file)
index 2147bfd..0000000
Binary files a/Pictures/gnu40.png and /dev/null differ
diff --git a/Pictures/rss2.png b/Pictures/rss2.png
new file mode 100644 (file)
index 0000000..c6f354e
Binary files /dev/null and b/Pictures/rss2.png differ
index 32a7542c891e7fe252a8381b5200a11edfa9c545..b0606348477addb805969ee8b39641b213ec7296 100755 (executable)
@@ -8,17 +8,20 @@ mobile design and client side computing. So I made html/php site to occupy littl
 piece of cyberspace. Here is description of the files:
 
 .htaccess - hides file extensions in address bar
-index.php - the "About page" with contacts (not much going on here)
-blog.php - here I place my toughts which could be sorted by form (blogs or tweets)
+index.php - the "About page" with contact info (not much going on here)
+blog.php - here I place my some of my toughts (they are loaded from rss.xml)
 lib.php - my book library in one table
-gpg.html - page with my email gpg key
-test.html - default test page for troubleshooting new features
-both .txt files are sources for php sites with hand written content.
-blog/pics/ - pictures for blogs
-blogs/blog-list.html - source for tweets and links to blogs for blog.php
+gpg.html - page with my public gpg key
+test.php - default test page for troubleshooting and new features
+cypher.html - ?
+dir.php - links to useful stuff
+rss.xml - rss feed for my blogs
+blogs/pics/ - pictures for blogs
 blogs/blog-template.html - default template for new blogs
-Pictures/ - directory with all pictures for sites (except the blogs)
-Styles/* - dir with font I use and CSS style file 
+php/ - all php code on one place
+Pictures/ - directory with all pictures on the web (except for the blogs)
+Styles/ - dir with font I use and CSS style file
+Zax/ - stuff for my other website https://www.zax-game.com (simple, one page)
 
 LICENSE:
 https://www.gnu.org/licenses/gpl-3.0.en.html
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
index acbbda6af355be6294fd192602dc22100eea0f41..cedbf4b290f417625cfecc31e6e681821573be67 100755 (executable)
@@ -56,43 +56,74 @@ tr:hover {
    just simple bar from W3 schools with minor edits
    https://www.w3schools.com/Css/css_navbar_horizontal.asp
 */
-.nav-bar {}
 
-.nav-bar ul {
-    list-style-type: none;
-    max-width:1000px;
-    width: 100%;
-    margin: 0 auto;
-    padding: 0;
-    overflow: hidden;
-    background-color: #333;
-    border-radius: 10px;
+nav {
+  display: flex;
+}
+
+.nav-bar > ul {
+  list-style-type: none;
+  max-width: 1000px;
+  width: 100%;
+  margin: 0 auto;
+  padding: 0;
+  background-color: #333;
+  border-radius: 10px;
 }
 
-/* make everything stick to left side */
 .nav-bar li {
-    float: left;
+  float: left;
+}
+
+.nav-bar li a {
+  display: block;
+  color: white;
+  text-align: center;
+  padding: 14px 16px;
+  text-decoration: none;
 }
 
-/* make "Git server" be on the far right */
 .nav-bar li:last-child {
-    float: right;
+  float: right;
+  position: relative;
 }
 
-/* style for contents of the nav bar */
-.nav-bar li a {
-    display: block;
-    color: white;
-    text-align: center;
-    padding: 14px 16px;
-    text-decoration: none;
+.nav-bar li:last-child a {
+  border-radius: 0 14px 14px 0;
 }
 
-/* make background of the "Git server" with other color */
 .gitserver {
-    background-color: #1e1e1e;
+  background-color: #1e1e1e;
+}
+
+.gitstatus {
+  display: none;
+  list-style-type: none;
+  position: absolute;
+  color: black;
+}
+
+.nav-bar li:last-child:hover .gitstatus {
+  display: block;
 }
 
+/*
+.gitstatus li::before {
+  content: '';
+  width: 10px;
+  height: 10px;
+  border-radius: 50%;
+  position: absolute;
+  top: 50%;
+  left: -14px;
+  transform: translateY(-50%);
+  background-color: green;
+}
+
+.gitstatus.offline li:before {
+  background-color: red;
+}
+*/
 
 /* Banner pictures
    style pictures shown on top of every page - should be all same size,
@@ -131,6 +162,10 @@ tr:hover {
     max-width: 100%;
 }
 
+.content img.bee-gifs {
+    max-width: 95px;
+}
+
 .hide-link {
     color: inherit;
     text-decoration: inherit;
@@ -167,6 +202,10 @@ tr:hover {
     float: right;
 }
 
+.dir {
+    margin-left: 10px;
+}
+
 /* Blog previews
    these are clases for my blog page - they show small picture and 
    description in small fonts
@@ -189,6 +228,7 @@ tr:hover {
 }
 
 .blog-prev-text {
+    margin-left: 10px;
     height: 95px;
     float: left;
     color: #545454;
@@ -255,8 +295,9 @@ tr:hover {
     border: 1px solid #000;
     /*border-left: 3px solid #f36d33; */
     border-left: 3px solid #000;
-    color: #99ffe6;
-    /*color: #80ffdf; */
+    color: white;
+    /* color: #99ffe6;
+    color: #80ffdf; */
     font-weight: bold;
     page-break-inside: avoid;
     font-family: monospace;
diff --git a/Zax/Helvetica_Narrow_Bold.TTF b/Zax/Helvetica_Narrow_Bold.TTF
new file mode 100644 (file)
index 0000000..91a074d
Binary files /dev/null and b/Zax/Helvetica_Narrow_Bold.TTF differ
diff --git a/Zax/index.html b/Zax/index.html
new file mode 100644 (file)
index 0000000..435c18f
--- /dev/null
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Zax The Alien Hunter</title>
+    <!--<link rel="icon"         href="icon.png">-->
+    <link rel="stylesheet"   href="styles.css">
+    <link rel="author"       href="mailto:email@dpolakovic.space">
+    <meta name="description" content="Zax: The alien hunter fan(?) page">
+  </head>
+  <body>    
+  <!-- page content -->
+  <main class="content">
+    <h2>
+      Welcome to the  <i>new</i> official site of ZAX The Alien Hunter videogame!
+    </h2>
+    <h3>
+      When I got my first PC, Zax was one of the three games that came bundled
+      with it. The other two were Morrowind and Aquanox. Out of nostalgia I
+      searched my room for this promo CD and I saw this domain printed on
+      top of it. Turns out it was free to claim. Now I have free ad for website
+      on 20 years old disk. <i>nice</i>
+    </h3>
+    <h3>
+      If you are super fan of this game, send me an
+      <a href="mailto:email@dpolakovic.space?subject=Zax super fan">&gt;&gt;email</a>
+      and I will put your name here on the official domain.
+    </h3>
+    <br><br>
+    <h3><center>THE FAN CLUB:</center></h3>
+    <i>
+      David (<a href="https://dpolakovic.space">me!</a>),
+      &nbsp;Majky, &nbsp;rancor4, &nbsp;KCR, &nbsp;ScarletWitch, &nbsp;Princess_Bx2,
+      &nbsp;WoodenBarQueen, &nbsp;RoperSoul_X, &nbsp;StickyBall_2
+    </i>    
+  </main>
+  </body>
+  </html>
diff --git a/Zax/styles.css b/Zax/styles.css
new file mode 100644 (file)
index 0000000..245c473
--- /dev/null
@@ -0,0 +1,39 @@
+@font-face{
+    font-family: Sans-serif;
+    src: url('Helvetica_Narrow_Bold.TTF');
+    font-weight: bold;
+}
+
+body {
+    background: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)),
+               url('wall.jpg');
+    background-repeat: no-repeat;
+    background-attachment: fixed;
+    background-position: center;
+    background-color: black;
+    color: #e2ddba;
+}
+
+h2 {
+    color: white;
+}
+
+a {
+    color: green;
+}
+
+/* Main content
+   style for main content of each page - centers text and other stuff
+*/
+.content {
+    max-width: 975px;
+    width: 100%;
+    margin: 0 auto;
+    #text-align: justify;
+    padding: 100px 0;
+}
+
+.what-is-this {
+    color: #34301a;
+}
+
diff --git a/Zax/wall.jpg b/Zax/wall.jpg
new file mode 100644 (file)
index 0000000..017dc7a
Binary files /dev/null and b/Zax/wall.jpg differ
old mode 100644 (file)
new mode 100755 (executable)
index fa574d7..cce666b
--- a/blog.php
+++ b/blog.php
@@ -6,14 +6,13 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>dpolakovic.space</title>
     <link rel="icon"         href="./Pictures/dot.png">
-    <link rel="stylesheet"   href="./Styles/styles.css?v=1.1">
+    <link rel="stylesheet"   href="./Styles/styles.css">
+    <?php require_once('./php/config.php'); ?>
     <link rel="author"       href="mailto:email@dpolakovic.space">
     <meta name="description" content="personal website and git server">
     <meta name="author"      content="David Polakovic, 2023">
-  
   </head>
   <body>
-    
     <!-- show pictures (banner) on top of the page -->
     <div class="banner">
       <p>
       <ul>
        <li><a href="https://dpolakovic.space">About</a></li>
        <li><a href="https://dpolakovic.space/blog.php">Blog</a></li>
-       <li><a href="https://dpolakovic.space/lib.php">My library</a></li>      
-       <li><a class="gitserver" href="https://git.dpolakovic.space">Git server</a>
-       </li>
+       <li><a href="https://dpolakovic.space/dir.php">Web directory</a></li>   
+       <li><?php serverStatus() ?></li>
       </ul>
     </nav>
 
     <!-- page content -->
     <main class="content">
       <p>
-       <h2> Blog </h2> 
-       <i> Some obscure thoughts caught on the Web. </i>
+       <h2>Blog</h2>
+       <i> Some obscure thoughts caught on the Web.</i>
+         <a class="banner" href="https://dpolakovic.space/rss.xml">
+           <img src="./Pictures/rss2.png" alt="link to rss.xml file">
+         </a>
        <br>
        <br>
-       After eating and breathing, expressing opinions on the internet is the
-       most important human need. Here are some of mine that occupied my mind
-       for more than few seconds (but not much more). You can sort them to see
-       bigger blogs or smaller, more random "tweets".
-      </p>
-      <?php
-
-       $sort = 'all';
-
-       // check if hyperlink has been clicked
-       if (isset($_GET['sort']))
-       {
-         $sort = $_GET['sort'];
-       }
-
-
-       // Function for front page, shows latest 5 entries
-       function printFile($filename) {
-          $lines = file($filename);
-         $count = 0;    // counter for lines
-         echo '<div>';  // a container for the lines
-
-             foreach ($lines as $line) {
-                echo $line . '<br>';
-                $count++;
-
-                // break the loop after displaying 5 lines
-                if ($count >= 5) {
-                   break; 
-                }
-             }
-
-          echo '</div>';
-       }
-
-
-       // Prints latest 15 tweets and offers user to see them all 
-       function printFileTweets($filename) {
-          $lines = file($filename); 
-          $count = 0; 
-          echo '<div>';
-
-             foreach ($lines as $line) {
-                // check for word "tweet" in the lines
-                if (strpos($line, 'tweet') !== false) {
-                   echo $line . '<br>'; // Display the line if it contains 'foo'
-                   $count++;
-
-                   if ($count >= 15) {
-                      break; // Break the loop after displaying 15 matching lines
-                   }
-                }
-             }
-
-         if ($count >= 15) {
-             // Display a clickable link if there are more than 15 matching lines
-             echo '<center><a href="https://dpolakovic.space/blog.php?sort=tweetsfull">Check the rest...</a></center>';
-         }
-
-         echo '</div>';
-       }
-    
-  
-       // Prints all tweets
-       function printFileAllTweets($filename) {
-          $file = fopen($filename, "r");
-         
-          while (($line = fgets($file)) !== false) {
-             // check for word "tweet" in the lines
-             if (strpos($line, 'tweet') !== false) {
-                echo $line . '<br>';
-             }
-          }
-          fclose($file);
-       }
-
-
-       // Prints latest 15 blogs and offers user to see them all
-       function printFileBlogs($filename) {
-         $lines = file($filename); 
-         $count = 0; 
-         echo '<div>'; 
-
-         foreach ($lines as $line) {
-             // check for word "blog-prev" in the lines
-             if (strpos($line, 'blog-prev') !== false) {
-                echo $line . '<br>'; // Display the line if it contains 'foo'
-                $count++;
-
-                if ($count >= 15) {
-                   break; // Break the loop after displaying 15 matching lines
-                }
-             }
-         }
-
-         if ($count >= 15) {
-             // Display a clickable link if there are more than 15 matching lines
-             echo '<center><a href="https://dpolakovic.space/blog.php?sort=blogsfull">Check the rest...</a></center>';
-         }
-         echo '</div>';
-       }
-
-
-       // Prints all blogs
-       function printFileAllBlogs($filename) {
-          $file = fopen($filename, "r");
-         
-          while (($line = fgets($file)) !== false) {
-             // check for word "blog-prev" in the lines
-             if (strpos($line, 'blog-prev') !== false) {
-                echo $line . '<br>';
-             }
-          }
-          fclose($file);
-       }                   
-      ?>
-      <p>
-       <center>
-       Sort: &nbsp;
-       <!-- <a href="?sort=all">All</a> &nbsp; -->
-       <a href="?sort=tweets">Tweets</a> &nbsp;
-       <a href="?sort=blogs">Blogs</a>
-       </center>
-      </p><br>
        <?php
-          //debug
-          //echo "<br>Current value of key: $key <br>";        
-               
-         // Print file sorted by user input 
-
-          // save path to the file into variable... 
-          $filename = './blogs/blog-list.html';    
-      
-          // default - main page
-         if ($sort == "all") {
-           printFile($filename);
-         }
-
-          // show first 15 tweets
-         if ($sort == "tweets") {
-           printFileTweets($filename);
-         }
-
-          // show first 15 blogs
-         if ($sort == "blogs") {
-           printFileBlogs($filename);
-         }
-
-          // show all tweets
-         if ($sort == "tweetsfull") {
-           printFileAllTweets($filename);
-         }
-
-          // show all blogs 
-          if ($sort == "blogsfull"){
-           printFileAllBlogs($filename);
-         }
-        ?>
-      <br>
+        printBlog2("./rss.xml");
+        ?>
+       <br>
       </main>
 
     <!-- footer  -->
-    <footer class="footer">      
-      copyright 2023 David Polakovic
-      - content of this web is licensed under
-      <a href="https://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>
-      - <a href="https://git.dpolakovic.space/?p=my-website;a=tree">this site is free software</a>
+    <footer class="footer">
+    Copyright <?php printYear() ?> David Polakovic -
+    This site is javascript and cookie free. The source code is available
+    <a href="https://git.dpolakovic.space/?p=my-website;a=tree">here</a>
+    under
+    <a href="https://www.gnu.org/licenses/gpl-3.0.en.html">GPLv3 license</a>.<br>
+    Content of this web as well as photo of me with box on the head is licensed
+    under
+    <a href="https://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>.  
     </footer>
-    <br><br>
-    
+    <br><br>   
   </body>
   </html>
diff --git a/blogs/blog-list.html b/blogs/blog-list.html
deleted file mode 100755 (executable)
index 614ecc6..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-<div class="tweet">01.01.2000<br>blah blah blah</div>
-<div class="blog-prev"><div class="blog-prev-img"><a href="https://dpolakovic.space/blogs/blog-template.html"><img src="https://dpolakovic.space/blogs/pics/bug.jpg" alt="text" style="object-position: 100% 0;"></a></div><div class="blog-prev-text">&nbsp;&nbsp;<a href="https://dpolakovic.space/blogs/blog-template.html">BLOG TITLE</a><br>&nbsp;&nbsp;DATE<br><i>&nbsp;&nbsp;text text text</i></div></div>
index b2983444a5b3954e4ba4e28c46044051d06855da..f001ecc3ae0be9cdde14d2a25a8eb6117b981a24 100755 (executable)
@@ -6,7 +6,7 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>TITLE HERE</title>
     <link rel="icon"         href="../Pictures/dot.png">
-    <link rel="stylesheet"   href="../Styles/styles.css?v=1.1">
+    <link rel="stylesheet"   href="../Styles/styles.css">
     <link rel="author"       href="mailto:email@dpolakovic.space">
     <meta name="description" content="personal website and git server"> 
   </head>
@@ -32,7 +32,7 @@
     <main class="content">
       <p>
        <h2>TITLE HERE</h2> 
-       <i>00.00.0000 - text text text</i>
+       <i>00 Mmm 202X - text text text</i>
        <br>
       <p>
        <!-- PUT HERE A PICTURE -->
       </p>
       <p>
        Here comes the blog...
+       And this is a link<a href="#notes">*</a>
       </p>
       <br>
       <hr>
+      <div id="notes"></div>
       <i>
        <p>
          * notes under line
@@ -52,7 +54,7 @@
 
     <!-- footer  -->
     <footer class="footer">      
-      copyright 2023 David Polakovic
+      copyright 202X David Polakovic
       - content of this web is licensed under
       <a href="https://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>
       - <a href="https://git.dpolakovic.space/?p=my-website;a=tree">this site is free software</a>
diff --git a/blogs/free-software.html b/blogs/free-software.html
new file mode 100755 (executable)
index 0000000..485a2ac
--- /dev/null
@@ -0,0 +1,201 @@
+
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title> On the nature of Free software</title>
+    <link rel="icon"         href="../Pictures/dot.png">
+    <link rel="stylesheet"   href="../Styles/styles.css">
+    <link rel="author"       href="mailto:email@dpolakovic.space">
+    <meta name="description" content="personal website and git server"> 
+  </head>
+  <body>
+    
+    <!-- show pictures (banner) on top of the page -->
+    <div class="banner">
+      <p>
+       <img src="../Pictures/dpolakovic.png" alt="simple">
+       <img src="../Pictures/dot.png" alt="website">
+       <img src="../Pictures/space.png" alt="banner">
+      </p>
+    </div>
+    
+    <!-- navigation bar -->
+    <nav class="nav-bar-blog">
+      <ul>
+       <li><a href="https://dpolakovic.space/blog.php">Go back</a></li>
+      </ul>
+    </nav>
+
+    <!-- page content -->
+    <main class="content">
+      <p>
+       <h2> On the nature of Free software </h2> 
+       <i>  25 Jul 2023 - Does your synthetic colleague pose a threat to you?</i>
+       <br>
+      <p>
+       <!-- PUT HERE A PICTURE -->
+       <img src="https://dpolakovic.space/blogs/pics/free2.jpg"
+            alt="Ash from Alien (1979)">
+      </p>
+      <p>
+       A spaceship silently floats in space. There are eight passengers on board,
+       one of which is a monster, hidden from the others. When the monster kills
+       the first passenger, five remaining crew members try to kill the monster
+       but one tries to secretly keep it alive. This passenger is Ash and he is
+       a Čapek-style robot, programmed to help other passengers fulfill their
+       jobs and duties on board. He is also programmed to do other tasks like
+       protect anything with high value to the company that made him. For example,
+       a specimen of the first alien organism – the monster. Unknown to his crew
+       mates, their lives, sadly, have less value than his secret mission.
+       This is the plot of a 1979 movie Alien. Nowadays, while extraterrestrials
+       are still science fiction, universal machines and evil tech corporations
+       are not.
+      </p>
+      <p>
+       So how can you know if your computer or Hyperdyne Systems 120-A/2 series
+       robot isn't plotting some evil schemes against you? <i>Simply</i>, look into
+       its source code. Everything a machine can, and will do, is written there. 
+       Problem is that overwhelming majority of software has inaccessible source
+       code. This is clever trick programmers use to avoid reading and copying 
+       theirs software. (I will not comment on copying the software as
+       it might lead to talks about so called "piracy"[<a href="#notes">*</a>], which isn't
+       topic I want to explore here.) But when the source code is hidden it also
+       creates situation where you, as a user, might not benefit from the software
+       as much as the author does. Like when <i>same versions</i> of your favorite
+       spreadsheet editor are distributed differently with
+       <a href="https://answers.microsoft.com/en-us/msoffice/forum/all/my-excel-2016-missing-the-ifs-function/535af21d-456e-4305-a72b-7986211aeab1">
+         functionality locked</a>
+       behind a paywall. Or when a manufacturer decides what
+       <a href="https://archive.nytimes.com/pogue.blogs.nytimes.com/2009/07/17/some-e-books-are-more-equal-than-others/">files</a>
+       you can have on <i>your own</i> device. 
+      </p>
+      <!--
+      <p>
+       (Dis)honorable mention include software called SoftRAM, which during
+       Win3.1 and 9X era claimed that can double your memory without physical
+       upgrade.
+      </p>
+      -->
+      <p>
+       Luckily, there are programs with open source code, so
+       the author has less possibilities how to make your life miserable.
+       Open Source programs have their code published publically to be read and
+       edited as you see fit, so you are always able to see what is going on
+       inside the program and change it when you don't like the outcome. Even
+       though there are
+       <a href="https://vscodium.com/#why-does-this-exist">
+         some traps in open source</a>
+       too, it is great step forward. The problem raises again when advantage
+       is taken of this superior development model by (legally) copying
+       open source program and then closing the source code and
+       <a href="https://lukesmith.xyz/articles/why-i-use-the-gpl-and-not-cuck-licenses/">
+         circle of unfairness</a>
+       as well. This way, it is likely that next robot which will try to
+       sacrifice you to an alien monster will be based on open source software,
+       with secret directives added after closing the code. 
+      </p>
+      <p>
+       There is a solution, however, it has its own <i>catch 22</i>. Free software
+       - not to be confused with freeware - is basically open source software
+       with license that prevents close-sourcing the program, so once you release
+       your <i>ultimate-japh.pl</i> under
+       <a href="https://www.gnu.org/licenses/gpl-3.0.en.html">
+         free software license</a>, it stays free and every derivative work of
+       it as well. This viral
+       property of free software license is one of the best life hacks world has
+       seen. Most notable
+       free software include, of course, Linux kernel and GNU - the operating system
+       built on it. When you use it, you can be sure that every file on your
+       OS can be used, read, edited and redistribued freely. Now to the catch.
+      </p>
+      <p>
+       Running exclusively free software is not easy and open source too for
+       that matter. Let's start from the top of the pyramid - with operating
+       system. Not all GNU distribution are created equal. Every distro follows
+       its own ethical vision of what is best for their users and what exactly
+       the "free" part of free software means. You enter the world of
+       firmware, codecs, binary blobs and endless
+       discussions about if they are considered to be free or not. Some claims
+       that these few bytes of code might cause threat to your security.
+       Codecs for example, fall victim to software patents which are incompatible
+       with some free enterprise OS philosophies.
+      </p>
+      <p>
+       When you go to one level deeper, you hit the non-free Bios wall. With
+       closed source Bios, can you
+       be sure that there are no backdoors built into your main board?
+       You can't, because probably
+       <a href="https://en.wikipedia.org/wiki/Intel_Management_Engine">there are</a>.
+       Sure, there is
+       <a href="https://libreboot.org/">free boot software</a> available,
+       but not for every main board. To be more specific, the number of
+       <a href="https://libreboot.org/docs/hardware/#supported-hardware">main boards compatible</a>
+       is lower than number of all
+       of your digits. So in order to be fully in control of your machine, you
+       need to get hardware compatible with this level of user control. This is
+       can be often difficult financially (as with Talos2 mainboadrs) or
+       practically as most of the compatible hardware is often old.
+      </p>      
+      <p>
+       And even if you would run the
+       <a href="https://tails.net/">Tails OS</a>
+       on your 120-A/2 series robot,
+       completely bypassing any hardware catches, you still haven't read the 
+       15 million+ lines of code in your free kernel alone. So as with everything in
+       life, even free software boils down into putting some level of trust to
+       the author. You will have to find the correct ratio of free and every other
+       kind of software to use. It is only natural that this ratio
+       will be different for every individual, but as the line between safety
+       and security gets ever more thinner, I would recommend going through the
+       hassle of learning few new habbits and sticking with free/open tools as
+       much as possible. <i>And in the end, I guess the Ash would too.</i>
+      </p>     
+      <p><img src="./pics/free3.png" alt="Happy ash"></p>  
+      <br>
+      <hr>
+      <div id="notes"></div> 
+      <i>
+      <p>
+       * In context of illegal copying of programs, it is hard for me to compare
+       copying of fungible software tools to act of violent theft of non-fungible
+       goods (on the sea). However, I see somewhat relevant use of this comparision
+       in cases of illegal copying of creative works like art. To what one considers
+       to be an art is also for a much longer discussion.
+      </p>
+      <p>
+       But in general, I consider talks about legality of copying any digital file
+       pretty much irrelevant since the Web was built on the idea of copying,
+       which is on itself pretty weird as the existence of multiple copies of the
+       same file on a network is not a good design.
+      </p>
+      <p>
+       There were other propositions for how to design "internet-like network"
+       without possibility of copying files on (or through) it, with the most
+       well known example being the Project Xanadu. I wonder why isn't
+       every giant copyright holder investing their endless pits of money into
+       this long abandoned concept when they are so convinced about righteousness
+       of distribution restrictions over the network. (Maybe because it isn't
+       a good idea.)
+      </p>
+      </i>
+      <br>
+    </main>
+
+    <!-- footer  -->
+    <footer class="footer">
+    Copyright 2023 David Polakovic - 
+    This site is javascript and cookie free. The source code is available
+    <a href="https://git.dpolakovic.space/?p=my-website;a=tree">here</a>
+    under
+    <a href="https://www.gnu.org/licenses/gpl-3.0.en.html">GPLv3 license</a>.<br>
+    Content of this web as well as photo of me with box on the head is licensed
+    under
+    <a href="https://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>.  
+    </footer>
+    <br><br>
+    
+  </body>
+  </html>
diff --git a/blogs/pics/free2.jpg b/blogs/pics/free2.jpg
new file mode 100755 (executable)
index 0000000..c07af50
Binary files /dev/null and b/blogs/pics/free2.jpg differ
diff --git a/blogs/pics/free3.png b/blogs/pics/free3.png
new file mode 100755 (executable)
index 0000000..b1af5cb
Binary files /dev/null and b/blogs/pics/free3.png differ
diff --git a/blogs/pics/zork.png b/blogs/pics/zork.png
new file mode 100755 (executable)
index 0000000..0decdcc
Binary files /dev/null and b/blogs/pics/zork.png differ
diff --git a/blogs/zork.html b/blogs/zork.html
new file mode 100755 (executable)
index 0000000..918857b
--- /dev/null
@@ -0,0 +1,442 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Let's play Zork</title>
+    <link rel="icon"         href="../Pictures/dot.png">
+    <link rel="stylesheet"   href="../Styles/styles.css?v=1.1">
+    <link rel="author"       href="mailto:email@dpolakovic.space">
+    <meta name="description" content="personal website and git server"> 
+  </head>
+  <body>
+    
+    <!-- show pictures (banner) on top of the page -->
+    <div class="banner">
+      <p>
+       <img src="../Pictures/dpolakovic.png" alt="simple">
+       <img src="../Pictures/dot.png" alt="website">
+       <img src="../Pictures/space.png" alt="banner">
+      </p>
+    </div>
+    
+    <!-- navigation bar -->
+    <nav class="nav-bar-blog">
+      <ul>
+       <li><a href="https://dpolakovic.space/blog.php">Go back</a></li>
+      </ul>
+    </nav>
+
+    <!-- page content -->
+    <main class="content">
+      <p>
+       <h2> Let's play Zork </h2> 
+       <i>  24 Nov 2023 - A hollow voice says "Fool".</i>
+       <br>
+      <p>
+       <!-- PUT HERE A PICTURE -->
+       <img src="./pics/zork.png" alt="Zork box art">
+      </p>
+      <p>
+       Recently I saw a rerun of The Big Bang Theory on TV. It was quite refreshing
+       since I don't rewatch any series, with the only exception being Black Books.
+       One of the aired episodes that day was the one 
+       where Sheldon mentions playing a buggy beta version of Zork[<a href="#notes">*</a>].
+       Suddenly, I remembered that I wanted to try out this old text adventure since
+       I watched the episode back in 2010 or so. I considered it super weird then
+       to play videogames without the... well, video part. But I played many tabletop
+       RPGs since, so I am now well aware of using imagination as a game mechanic.
+       And I've seen Zork appear many times on online forums and even in Call of Duty
+       Black ops which I played on Xbox360.
+       So I assume this rerun was the last straw and the "call to
+       adventure" I was waiting for. Let's start with preparation for the descent.
+      </p>
+      <p>
+       Firstly, we will need to
+       <a href="https://eblong.com/infocom/#zork1">obtain the game</a>
+       and
+       <a href="http://infodoc.plover.net/manuals/zork1.pdf">the manual</a> might
+       also come handy. (If you already have ZORK I, you can
+       <a href="#play">jump here</a>.)
+       For enjoyers of adavnced LISP, I include source code
+       for the
+       <a href="https://github.com/historicalsource/zork">Infocom version</a>, 
+       <a href="https://github.com/MITDDC/zork">MIT release</a>
+       as well as the
+       <a href="https://github.com/heasm66/mdlzork">mainframe versions</a>.
+       And in order to actually use game files, we will need package <i>frotz</i>. 
+        <div class="code-block">
+         sudo apt install frotz
+        </div>
+       Frotz is licensed as free software under GPLv2+ but you won't find it in
+       the Free software directory. I tried to contact its maintainer David Griffith
+       about this issue, but recieved no answer so far. But the frotz source code
+       is available
+       <a href="https://gitlab.com/DavidGriffith/frotz">here</a>
+       for every Z-machines enthusiasts which favors Graham Nelson's specification
+       standard 1.0.
+      </p>
+      <p>
+       Anyway, we will use frotz interpreter to run the game files.
+       Don't forget to use the full path to the directory where you downloaded or moved
+       the game files. A <i>Games</i> directory at the home might be a good idea.
+       <div class="code-block">
+         frotz ~/Games/zork1-r88-s840726.z3
+       </div>
+       We can also make an alias in your <i>.bashrc</i>&nbsp; file
+       to start the game from everywhere.        
+       Or... we can unleash our inner hacker and create a bash script that will run any
+       version of Zork we downloaded simply by argument. 
+      </p>
+      <p>
+       <div class="code-block">
+         #!/bin/bash<br><br>
+
+         # Define a dictionary of aliases<br>
+         declare -A dictionary=(<br>
+         &nbsp; ["r2"]="zork1-r2-sAS000C.z1"<br>
+         &nbsp; ["r15"]="zork1-r15-sXXXXXX.z2"<br>
+         &nbsp; ["r88"]="zork1-r88-s840726.z3"<br>
+         &nbsp; ["r52"]="zork1-invclues-r52-s871125.z5"<br>
+         
+         &nbsp; # You can add more zork versions here<br>
+         )<br><br>
+         
+         # Check if the correct number of arguments is provided<br>
+         if [ $# -ne 1 ]; then<br>
+         &nbsp; echo "Usage: zork <version>"<br>
+         &nbsp; exit 1<br>
+         &nbsp; # Or we can hard code any version to be default e.g.<br>
+         &nbsp; # cd ~/Games/ && frotz zork1-r88-s840726.z3<br>
+         fi<br><br>
+
+         # Check if alias exists in the dictionary<br>
+         alias="$1"<br>
+         file="${dictionary[$alias]}"<br><br>
+
+         if [ -z "$file" ]; then<br>
+         &nbsp; echo "Zork version '$alias' not found."<br>
+         &nbsp; exit 1<br>
+         fi<br><br>
+
+         # Cd to your directory where you store the game files<br>
+         #<br>
+         # note:<br>
+         # you could use full path to file with frotz command<br>
+         # but your saved game files would be then stored at ~<br>
+         cd ~/Games/<br><br>
+
+         # Profit!<br>
+         frotz "$file"<br>
+       </div>
+       In order to run this script from everywhere in our file system, we will save it under
+       name <i>zork</i> (without ".sh") and move it into our bash PATH.
+       For me it will be <i>~/.local/bin</i> . After that we will need to "chmod-ex"
+       our script to make it executable.
+      </p>
+      <p>
+       <div class="code-block">
+         chmod +x zork
+       </div>  
+       And now we can run any version of Zork we like by using the release number
+       of desired version as argument for our script. 
+      </p>
+      <p>
+       <div class="code-block">
+         zork r52
+       </div>
+      </p>
+      <p>
+       This script can come in handy as different builds have different bugs
+       and command responses. The first two versions (r2 and r5) will teleport player
+       to a random location when a nonsense travel command is given, like GO WALL
+       or GO TREE. In all versions except for <i>solid gold</i> (r52) you can
+       pour water from the bottle even if the bottle isn't open. And every version
+       suffers from EXAMINE OVERBOARD problem. You can check the full list of differences
+       in 
+       <a href="http://graeme.50webs.com/infobugs/zork1.htm">Infobugs</a> and 
+       <a href="https://www.microheaven.com/InfocomBugs/zorki.shtml">Microheavens</a>
+       zork sections. Exploiting those older buggy versions sounds fun and I, as
+       a real adventurer, picked up release r15 the "Hack of 15.UG3AU5" version.
+      </p>
+      <p>      
+       The game itself is pretty straight forward. Our adventure takes place
+       circa 300 years after the fall of the Greatest Underground Empire, and we
+       take the role of nameless adventurer seeking fame and fortune in the ruins
+       of the once unmatched empire. The manual explains that the game is played by
+       typing commands and awaiting the response from the game. It is basically a
+       Read Eval Print Loop with a complex parser and a score system. And just like any
+       REPL, Zork counts your lines - in this case, commands or actions. The goal is
+       to retrieve treasures and <i>put</i>  them into the <i>trophy case</i>
+       with the least actions possible. The more we return, more we score. The manual
+       gives no information on how many treasuers are out there or if we lose
+       when we waste too many turns. However, it mentions five times to draw a map
+       as we play, so I will.  
+      </p>
+      <p>
+       <div id="play"></div>
+       <center><i>Let's play.</i></center>
+      </p>
+      <h3>The House</h3>
+      <p>
+       <div class="terminal-block">
+         <br>
+         ZORK: The Great Underground Empire - Part I<br>
+         Copyright (c) 1980 by Infocom, Inc. All rights reserved.<br>
+         ZORK is a trademark of Infocom, Inc.<br>
+         Release 15 / Serial number ââââââ<br><br>
+         West of House<br>
+         You are standing in an open field west of a white house,
+         with a boarded front door.<br>
+         There is a small mailbox here.<br>
+         ><br>
+       </div>
+       I fire up the zork script and I start by reading a leaflet
+       from the mailbox, leading me nowhere. But after the first
+       one hundred valid actions, I managed to map the surroundings of the house,
+       locate the trophy case, find a sword and get a lamp with a terrific score
+       of 10. The last thing to point out in this location might be the <i>wooden
+         door with strange gothic lettering</i> in the living room of the house,
+       which is worth looking into. I will leave this intentionally blank.
+       It is time to move elsewere.
+      </p>
+      <p>
+       I found a canyon to the east of the house, so I went there.
+       I arrived at the canyon view and continued to the west through
+       the forest. I stopped next to the big tree with suspiciously looking
+       lower branches. This is a hint. After climbing the tree, I found a bird's
+       nest with a jewel-encrusted egg. What a luck! I grab it and run with it to
+       the trophy case before it's <i>rightful owner</i> comes for it. (I have
+       a feeling that it is not the bird.) On my way back I got lost a little in
+       the forest, but somehow I appeared in the clearing behind the house. Jumped
+       through the kitchen window, spent some time (turns) trying to <i>put</i>
+       the egg jewel into the trophy case and... Success! First treasure
+       collected, 10 score earned, totaling on 20 right now. 
+      </p>
+      <p>
+       So far so good. The forest on the east had a few more roads to go, but I am
+       not sure if I got lost because of some glitch or if the forest was too thick.
+       Either way, I exit the house and march to the west this time. 
+       <i>One hundred moves later</i>... Dead end, just like the canyon on the east
+       and forests on the north and south.
+       I am going back to house to regroup and look for more clues. After further
+       examination of the house, I see only a chimney in the kitchen and a rug in the
+       living room. I bet on a rug as it nicely ties the room together.
+       "With the rug moved, the dusty cover of a closed trap-door appears."
+       I hastily open the trap-door and descent into the darkness. The score jumped
+       to 25 points.
+      </p>
+      <p>
+       With someone's help, the trap door closes above my head. I am in a dark cellar and
+       the ancient sword starts to glow a little. Tension rises. As I put my foot in
+       the room to the north, a nasty-looking troll blocking my way out. First enemy
+       encounter. The troll seems to be wielding an axe and my sword glows very brightly now.
+       I charge the troll, but he nimbly jumps away and reaches me with his ax.
+       The game responds with <i>Ouch!</i> so I assume it is just a flesh wound...
+      </p>
+      <div class="terminal-block">
+       >attack troll with sword<br>
+       Your sword misses the troll by an inch.<br>
+       The flat of the troll's axe hits you delicately on the head, knocking you out.<br>
+       The troll hesitates, fingering his axe.<br>
+       Conquering his fears, the troll puts you to death.<br>
+       It appears that that last blow was too much for you. I'm afraid you are dead.<br><br>
+       ****  You have died  ****<br>
+      </div>
+      <center>It wasn't a flesh wound after all.</center>
+      <p>
+       Never mind I restore the game, enter the room again and after a long fight
+       troll dies with another swing of my blade. As soon as he breathes his last
+       breath, his body disappears  in sinister black fog and my sword is no longer glowing.
+       My score is 45 now, but as I try to lift his blody axe, I realize my inventory
+       is full. I'll stick with the sword.
+      </p>
+      <p>
+       As I look around, I see labyrinth to the west and a long passage to the east.
+       I try to circle the cellar I came from, which leads me to the Mirror room. In it, there
+       is only a mirror which seems to be responding to touch but nothing else. Two other
+       exits from the room lead to the same cave, making it the dead end with the only way
+       down into the cave. But as I try to leave the mirror room I realize that this
+       is not the same passage I came in... It took me a lot of reloads (<i>restores</i>) to realize that
+       the mirror is a portal to another mirror room. 
+      </p>
+      <p>
+       I am redrawing my map and teleporting back to the first mirror room,
+       which I mark with a letter "A" now. The map is starting to look very
+       complicated, and it's much bigger than I expected. I have the temptation
+       to draw it in some visual tool on PC but for now I am staying OG with
+       pencil. I haven't found anything of value so far and I am afraid to go on
+       this new mirror branch so soon.
+      </p>
+      <p>
+       I return back to the first room, cellar, and try to focus on going another
+       direction than east as it, too holds many rooms. I go south and
+       enter the gallery. A loot at last. But then, out of nowhere
+       I spot somebody in the room with me. He says nothing, but
+       holds a bag. At this point I have no idea what to do. I am not sure if
+       I can say something (in this game) but I just don't want to attack someone
+       who is not hostile to me. 
+       I am reaching for the manual. There is mention of both <i>say</i> and <i>tell</i> keywords on
+       page 19, but the game doesn't recognize them somehow. This might be a trait of my buggy build.
+       Nevermind, I try waving.
+       Not working. I will wave my glowing sword, showing I am armed and dangerous.
+       Nothing. As a somewhat veteran of D&D I will try one last effort to stay civilized - <i>wait.</i>
+      </p>
+      <div class="terminal-block">
+       >wave hand<br>
+       I can't use the word 'hand' here.<br>
+       >wave sword<br>
+       Waving the sword isn't notably helpful.<br>
+       >wait<br>
+       Shifting in the midst of a thrust, the thief knocks you unconscious with the haft of his<br>
+       stiletto.<br>
+       The thief entertains himself by rifling your pack.<br>
+       The thief, who is essentially a pragmatist, dispatches you as a threat to his livelihood.<br>
+       It appears that that last blow was too much for you. I'm afraid you are dead.<br><br>
+       ****  You have died  ****<br>
+      </div>
+      <center>I guess peace was never an option...</center>
+      <p>
+       I restored from the last save point in the circle room and run straight to the
+       gallery. I enter the room with sword in my hand, but the room is empty(?).
+       I will spare you of my
+       hundreds of reloads but it works like this. The thief shows up whenever
+       you pick up or come to something worth points. He will take it whether it
+       is in a room or on you. You can fight him but I was out of luck.
+       I tried knife, but that was doing no damage at all, sword performed best
+       but he was always quicker than me and troll's ax hit him too, but after
+       first hit he stole my stuff and left. Command <i>follow thief</i> doesn't
+       work - boy I hate him. But I was able to "bug him out" by taking the
+       painting, saving and restoring the just saved game. He didn't come back.
+      </p>
+      <p>
+       But still, my inventory is getting full, and I will have to carry things
+       out to the trophy case. So the new plan is to look for a way out and then try
+       to scavenge for other valuables. And nothing screams more "way out" than
+       a maze. I go back to the cellar (again), this time with painting and enter
+       the maze
+       to the west. I will mark down all of my moves on separate sheet of paper
+       and drop items to be my breadcrumbs. And I will save often, just in case
+       the old friend shows up.
+      </p>
+      <p>
+       I managed to navigate myself to the treasure inside the maze. It is the
+       skeleton key and the bag of coins. Score is 64. I do know my way back,
+       but I need to get out another way, hopefully leading me to the house again.
+       I managed to navigate to the room with evil cyclops. I must say that the whole
+       maze solving took me about 1,5 hours of which I had to deal with thief
+       at least 10 times. I am more than ready to kill the beast standing before me or
+       die trying. I charge the monster and after a tough one-sided battle...
+      </p>
+      <div class="terminal-block">
+       >attack cyclops with sword<br>
+       The cyclops shrugs but otherwise ignores your pitiful attempt.<br>
+       The cyclops, tired of all of your games and trickery, eats you. The cyclops says 'Mmm. Just<br>
+       like Mom used to make 'em.'<br><br>
+       ****  You have died  ****
+      </div>
+      <center>Dead, thanks to nobody's favorite X-men character.</center>
+      <p>
+       Ok. New plan. Don't leave the sandwich in the maze and let's try to bribe the
+       cyclops with it. At this point, I knew how to solve the maze
+       from the top of my head. I face the beast again, this time without the sword,
+       holding only a small sub with peppers. He likes my proposition and takes my
+       bottle with water too. The beast falls asleep after a good lunch. I tried to look
+       around the room and I saw stairs up, but as soon as I enter the treasure
+       room on the upper floor... the thief, again. I am carrying the painting, the bag of coins
+       and just in front of our eyes, there is a beautiful silver chalice.The
+       score is 79 and it is time to play his own game.
+      </p>
+      <p>
+       I gave him  my sword. He is stunned by this gesture and examines the
+       weapon. Then suddenly, out of nowhere,  I sneak behind him and struck him dead with
+       knife from the attic. Well, it was like three attacks but nevertheless RETRIBUTION!
+       With the thief dead, I take
+       my sword back and drop the knife as insturment of a cold murder.
+       Then there is the silver chalice lying on the ground, but I am unable to
+       take it as the inventory is full. I want to drop
+       the garlic, but I am not sure if this underground is vampire-free,
+       so I will stick with the garlic and I drop the rope. I am sure I won't regret
+       it later... The score is just one point short of 100.
+      </p>
+      <p>
+       Sadly, no exit from the treasure room and cyclops room
+       is also a dead end. My patience is slowly fading away and I access the World
+       Wide Web for hints. I found a pretty nice map which told
+       me that there was another way out of the maze. It's the cryptic grating room
+       from clearing next to the house! I close the map and rush to it. But yeah,
+       the grating is locked and I left the skeleton key inside the maze...
+       Went back for the key, emerged on the surface and delivered the
+       treasures back to the living room in 2 rounds because of a small inventory.
+       Score is sitting way up on 115.
+      </p>
+      <p>
+       And right now, I am considering ending this adventure as the score is above 100
+       and my lust for retro gaming has been somewhat satisfied. I typed <i>score</i> to see
+       that I reached the rank of Junior Adventurer, which is
+       <a href="https://ganelson.github.io/inform-website/book/WI_9_3.html">4th rank out of 8</a>.
+       As much as I want to say that it was fun, I feel tricked into playing a
+       puzzle game with very little adventure in it.
+       The lack of usefull information and overall "story" puts this
+       game on the same level as some rogue-likes. It is good but not something
+       I can see falling into. At least not now. If you consider playing it,     
+       here are my key takeaways from this short gameplay:
+       <ul>
+         <li>get lamp</li>
+         <li>drawing a map is neccessity</li>
+         <li>downloading the map when stuck is not a shame</li>
+         <li>drop items in maze to find your way out</li>
+         <li>use <i>up, down, SE, SW, NE, NW</i> directions (in maze) too</li>
+         <li>thief is son of a bitch, play dirty because he will</li>
+       </ul>
+       There are two other text adventures I've heard might be worth looking into,
+       <i>Planetfall</i> and <i>Lurking Horror</i>. But that is a story for next time.
+       Hopefully, a longer and a story...
+      </p>
+      <div class="terminal-block">
+       Living Room<br>
+       Your collection of treasures consists of:<br>
+       A bag of coins<br>
+       A painting<br>
+       A chalice<br>
+       A jewel-encrusted egg<br>
+       >Score<br>
+       Your score would be 115 (total of 350 points), in 352 moves.<br>
+       This score gives you the rank of Junior Adventurer.<br>
+      </div>
+      <br>
+      <hr>
+      <div id="notes"></div> 
+      <i>
+      <p>
+        * Well-spread trivia says that "zork" was a jargon word for unfinished
+        software at MIT back in the 1970s. So we could say that Sheldon played a
+        "zork of the Zork". However, I could not find any source to back this
+        up. ESR's
+        <a href="https://www.catb.org/~esr/jargon/html/go01.html">jargon file</a>
+        knows the keyword "zork" only as the game and the most quoted source,
+        <a href="https://archive.org/stream/infocom-paper-2000-12-15/infocom-paper_djvu.txt">Down From the Top of Its Game: The Story of Infocom, Inc.</a>
+        does not contain this information either. If you happen to know a relevant
+        source that could prove this historical trivia, please reach me via
+        <a href="mailto:email@dpolakovic.space">email</a>.
+      </p>     
+      </i>
+      <br>
+    </main>
+
+    <!-- footer  -->
+    <footer class="footer">
+    Copyright 2023 David Polakovic - 
+    This site is javascript and cookie free. The source code is available
+    <a href="https://git.dpolakovic.space/?p=my-website;a=tree">here</a>
+    under
+    <a href="https://www.gnu.org/licenses/gpl-3.0.en.html">GPLv3 license</a>.<br>
+    Content of this web as well as photo of me with box on the head is licensed
+    under
+    <a href="https://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>.  
+    </footer>
+    <br><br>
+    
+  </body>
+  </html>
diff --git a/clue.php b/clue.php
deleted file mode 100644 (file)
index 6e98d9a..0000000
--- a/clue.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-  <head>
-    <meta charset="UTF-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <title>dpolakovic.space</title>
-    <link rel="icon"         href="./Pictures/dot.png">
-    <link rel="stylesheet"   href="./Styles/styles.css?v=1.1">
-    <link rel="author"       href="mailto:email@dpolakovic.space">
-    <meta name="description" content="personal website and git server">
-    <meta name="author"      content="David Polakovic, 2023">
-  
-  </head>
-  <body>
-    
-    <!-- show pictures (banner) on top of the page -->
-    <div class="banner">
-      <p>
-       <img src="./Pictures/dpolakovic.png" alt="simple">
-       <img src="./Pictures/dot.png" alt="website">
-       <img src="./Pictures/space.png" alt="banner">
-      </p>
-    </div>
-    
-    <!-- navigation bar -->
-    <nav class="nav-bar">
-      <ul>
-       <li><a href="https://dpolakovic.space">About</a></li>
-       <li><a href="https://dpolakovic.space/blog.php">Blog</a></li>
-       <!-- <li><a href="https://dpolakovic.space/dir.html">My web directory</a></li> -->
-       <li><a href="https://dpolakovic.space/lib.php">My library</a></li>
-       <li><a href="https://dpolakovic.space/cypher.html">?</a></li>
-       <li><a class="gitserver" href="https://git.dpolakovic.space">Git server</a>
-       </li>
-      </ul>
-    </nav>
-
-    <!-- page content -->
-    <main class="content">
-      <p>
-       <h2> My library </h2> 
-       <i> Tell me what you read and I will tell you who you are. </i>
-       <br>
-       <br>
-       These are books I own and read. I tend to organize my library by topics
-       of the books, time I bought them, color of the cover, mood and other
-       subjective, chaotic and random rules. All of these are physical copies
-       of which almost half is from used bookstores.
-      </p>
-      <p>
-       Also, only ~5 million people speak my mother tongue, <i>Slovak</i>, so I
-       deeply value every opportunity I get to read a translated book. And since
-       most of my books are in Slovak language the table includes both English
-       title and traslation title as well.
-      </p>
-      <br>
-       <?php
-        // Read the contents of the lib.txt file
-        $fileContents = file_get_contents('lib.txt');
-
-        // Set the "*" as escape char for new table line
-        $rows = explode('*', $fileContents);
-
-        // Create the table
-        echo '<table>';
-
-        // Process each row
-        foreach ($rows as $key => $row) {
-       
-          // Set the "-" as escape char for new column
-          $columns = explode('-', $row);
-    
-          // Determine whether this is the first row
-          $isFirstRow = ($key === 0);
-    
-          // Start a new table row
-           echo '<tr>';
-    
-          // Process each column and create table cells
-          foreach ($columns as $column) {
-
-            // Use <th> for the first row, <td> for the rest
-             $cellTag = $isFirstRow ? 'th' : 'td';
-             echo '<' . $cellTag . '>' . htmlspecialchars($column) . '</' . $cellTag . '>';
-          }
-    
-        // End the table row
-        echo '</tr>';
-        }
-
-        // End the HTML table
-        echo '</table>';
-      ?>
-      <br><br>
-      </main>
-
-    <!-- footer  -->
-    <footer class="footer">      
-      copyright 2023 David Polakovic
-      - content of this web is licensed under
-      <a href="https://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>
-      - <a href="https://git.dpolakovic.space/?p=my-website;a=tree">this site is free software</a>
-    </footer>
-    <br><br>
-    
-  </body>
-  </html>
diff --git a/dir.php b/dir.php
new file mode 100755 (executable)
index 0000000..d5622ae
--- /dev/null
+++ b/dir.php
@@ -0,0 +1,121 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>dpolakovic.space</title>
+    <link rel="icon"         href="./Pictures/dot.png">
+    <link rel="stylesheet"   href="./Styles/styles.css">
+    <?php require_once('./php/config.php'); ?>
+    <link rel="author"       href="mailto:email@dpolakovic.space">
+    <meta name="description" content="personal website and git server">
+    <meta name="author"      content="David Polakovic, 2023">
+  
+  </head>
+  <body>
+    
+    <!-- show pictures (banner) on top of the page -->
+    <div class="banner">
+      <p>
+       <img src="./Pictures/dpolakovic.png" alt="simple">
+       <img src="./Pictures/dot.png" alt="website">
+       <img src="./Pictures/space.png" alt="banner">
+      </p>
+    </div>
+    
+    <!-- navigation bar -->
+    <nav class="nav-bar">
+      <ul>
+       <li><a href="https://dpolakovic.space">About</a></li>
+       <li><a href="https://dpolakovic.space/blog.php">Blog</a></li>
+       <li><a href="https://dpolakovic.space/dir.php">Web directory</a></li>
+       <li><?php  serverStatus() ?></li>
+      </ul>
+    </nav>
+
+    <!-- page content -->
+    <main class="content">
+      <p>
+       <h2> My Web directory </h2> 
+       <i> Let's explore the Web. </i>
+       <br>
+       <br>
+       Since the online space is vast and still expanding, it is good practice for
+       surfers to share links between each other in web directories like this one.
+       So here are links I thought you might find useful. 
+      </p>
+      <p>
+       <div class="dir">
+       <a href="https://directory.fsf.org/wiki/Main_Page">Free software directory</a>
+       - a collaborative catalog of free software<br>
+       <a href="https://cidr.xyz/">Cidr.xyz</a>
+       - when you're setting up network and you don't want to die over subnet
+       tables [3]<br>
+       <a href="https://wiki.eth0.nl/index.php/LackRack">Lack rack</a>
+       - nice hack that I use for my servers<br>       
+       <a href="https://wine.htmlvalidator.com/">Installing Wine on Linux</a>
+       - this is tricky task for many distros, so I use this nice tutorial<br>  
+       <a href="https://tube.cadence.moe/">CloudTube</a>
+       - one of many free (software) instances for youtube.com<br> 
+       <a href="https://www.floppydisk.com">Floppydisk.com</a>
+       - new and refurbished floppies for okay prices [3]<br>
+       <a href="https://whichjdk.com/">Which JDK?</a>
+       - neat website when you want to install alternative Java Dev Kits<br>
+       <a href="https://jar-download.com/">JAR Download</a>
+       - Java libraries packed in .jars so you can manage them by hand<br>
+       <a href="https://perlmonks.org/">Perl monks</a>
+       - best place  to seek help and wisdom in Perl<br>
+       <a href="https://cyber.dabamos.de/88x31/index.html">Web buttons</a>
+       - here is list of 4000+ web buttons from Cyber Vanguards website<br>
+       <a href="https://www.deadnet.se/88x31/">More Web buttons</a>
+       - another set of 4000 web buttons, this time from Deadnet<br>
+       <a href="https://web3isgoinggreat.com/">Web 3 is going great!</a>
+       - website that monitors all failures of this stupid bubble [3]<br>
+       <a href="https://winworldpc.com/home">WinWorld</a>
+       - online museum/library of vintage software<br>
+       <a href="https://en.uesp.net/wiki/Main_Page">UESP Wiki</a>
+       - everything I ever needed for TES III Morrowind I found here [2]<br>
+       </div>
+      </p>
+      <p>
+       And here are some good readings I found on the Web. I am not necessarily
+       <i>a fan</i> of authors, but I consider these specefic blog posts to be
+       worth your time.
+      </p>
+      <div class="dir">
+      <a href="http://catb.org/~esr/writings/hacker-history/hacker-history.html">A brief history of Hackerdom</a>
+      by Eric S. Raymond<br>
+      <a href="https://lukesmith.xyz/articles/the-parable-of-alien-chess/">The Parable of Alien Chess</a>
+      by Luke Smith<br>
+      <a href="https://qntm.org/models">Modelling time travel in fiction</a>
+      by qntm<br>
+      <a href="https://drewdevault.com/2023/08/29/2023-08-29-AI-crap.html">AI crap</a>
+      by Drew DeVault<br>
+      <a href="https://blog.danieljanus.pl/2019/10/07/web-of-documents/">Web of Documents</a>
+      by Daniel Janus<br>
+      </div>
+      <p>
+       Some of these websites contains "allergens"<br>
+       [1] - advertisements,
+       [2] - unnecessary cookies, 
+       [3] - proprietary javascript
+      </p>
+      <br>
+      </main>
+
+    <!-- footer  -->
+    <footer class="footer">
+    Copyright <?php printYear() ?> David Polakovic -
+    This site is javascript and cookie free. The source code is available
+    <a href="https://git.dpolakovic.space/?p=my-website;a=tree">here</a>
+    under
+    <a href="https://www.gnu.org/licenses/gpl-3.0.en.html">GPLv3 license</a>.<br>
+    Content of this web as well as photo of me with box on the head is licensed
+    under
+    <a href="https://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>.  
+    </footer>
+    <br><br>
+    
+  </body>
+  </html>
old mode 100644 (file)
new mode 100755 (executable)
index a2db92f..2a55527
--- a/index.php
+++ b/index.php
@@ -6,12 +6,18 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>dpolakovic.space</title>
     <link rel="icon"         href="./Pictures/dot.png">
-    <link rel="stylesheet"   href="./Styles/styles.css?v=1.1">
+    <link rel="stylesheet"   href="./Styles/styles.css">
+    <?php require_once('./php/config.php'); ?> 
     <link rel="author"       href="mailto:email@dpolakovic.space">
-    <meta name="description" content="personal website and git server"> 
+    <meta name="description" content="personal website and git server">
   </head>
-  <body>
-    
+  <!-- 
+    I would like to thank to my good friends JuryHa and Wendy who helped
+    me with everything I needed for this website. Big thanks also goes to 
+    Peter Střelec who helped me set up the Git server. 
+    Thank you all. 
+  -->
+  <body>    
     <!-- show pictures (banner) on top of the page -->
     <div class="banner">
       <p>
       <ul>
        <li><a href="https://dpolakovic.space">About</a></li>
        <li><a href="https://dpolakovic.space/blog.php">Blog</a></li>
-       <!-- <li><a href="https://dpolakovic.space/dir.html">My web directory</a></li> -->
-       <li><a href="https://dpolakovic.space/lib.html">My library</a></li>
-       <li><a class="gitserver" href="https://git.dpolakovic.space">Git server</a>
-       </li>
+       <li><a href="https://dpolakovic.space/dir.php">Web directory</a></li>
+       <li><?php  serverStatus() ?></li>
       </ul>
     </nav>
 
        <br>
        My name is
        <a href="./Pictures/david.jpg" class="hide-link">David</a>
-       and <?php
-
-        $file = "./rnd.txt";
-        
-        // Read all lines from the file into an array
-        $lines = file($file, FILE_IGNORE_NEW_LINES); 
-
-        if ($lines !== false && !empty($lines)) {
-
-          // Get a random line index
-          $randomIndex = array_rand($lines);
-          
-          // Display the random line
-          echo $lines[$randomIndex];
-
-        } else {
-
-        echo "this is an error message.";
-        }
-
-        ?> This is my personal Web <i>space</i> which serves me as substitution
-       for all social media.
-       Feel free to browse here or check out my mostly
-       abandoned git server. My primary communication channel is email,
-       so if you wish to contact me, you can use:
-      </p>
+       and <?php randomSentence() ?>
+       This is my personal Web <i>space</i> which I don't really need, but it is
+       nice to have one. 
+       You can check out some of my blogs, browse my mostly abandoned git server
+       or you can stay here and watch this alien dance.<br>
+       <center>            
+           <img src="https://community.cloudflare.steamstatic.com/economy/image/i0CoZ81Ui0m-9KwlBY1L_18myuGuq1wfhWSIYhY_9XEDYOMNRBsMoGuuOgceXob50kaxV_PHjMO1MHaEqgckptOivAmoEkqmyZW5qXRauqb6baY4c6XDCDbJmbwiseI9Hn_nwkQl4m7SnNmtcGXXMFGipBGxow/?allow_animated=1" alt="cool dancing alien" class="bee-gifs">
+       </center>
+      </p> 
       <p>
-         <center>
-           <a href="mailto:email@dpolakovic.space">email at dpolakovic dot space</a>
-           &nbsp;
-           <a href="./gpg.html">(my public GPG)</a>
-         </center>
+       I no longer use social media, so if you want to contact me,
+       you are likely to reach me via email. I read my mailbox quite often
+       so my usual response time is one day.
+       Feel free to use my GPG key for encryption of your messages. 
       </p>
       <p>
-       In light of the upcoming actions against the free web (C2PA, Web
-       Environment Integrity) I might be looking into hosting this site via
-       other protocols too. If you, <i>random visitor</i>, happen to know
-       anything about running a gopher or gemini server, please, write
-       me an email. This prompt is valid until deleted.
-       <!-- And of course this website remains without ads, cookies, javascript 
-            and any form of tracking. -->
-      </p>      
+       <center>
+         <a href="mailto:email@dpolakovic.space">email at dpolakovic dot space</a>
+         &nbsp;
+         <a href="./gpg.html">(my public GPG)</a>
+       </center>
+      </p>    
       <p>
-       <!-- show my buttons button -->
-       <a class="gif-buttons" href="https://www.gnu.org/gnu40/">
-         <img src="./Pictures/gnu40.png" alt="GIF button: any browser campign">
+       <a class="gif-buttons" href="https://www.gnu.org/software/emacs/">
+         <img src="./Pictures/emacs3.png" alt="GIF button: made with Emacs">
        </a>
        <a class="gif-buttons" href="https://emailselfdefense.fsf.org/en/">
          <img src="./Pictures/pgp-now.png" alt="GIF button: PGP set up guide">
     </main>
 
     <!-- footer  -->
-    <footer class="footer">      
-      copyright 2023 David Polakovic
-      - content of this web as well as photo of me with box on the head is licensed
-      under
-      <a href="https://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>
-      <br>
-      <a href="https://git.dpolakovic.space/?p=my-website;a=tree">this site is free software</a>
+    <footer class="footer">
+    Copyright <?php printYear() ?> David Polakovic - 
+    This site is javascript and cookie free. The source code is available
+    <a href="https://git.dpolakovic.space/?p=my-website;a=tree">here</a>
+    under
+    <a href="https://www.gnu.org/licenses/gpl-3.0.en.html">GPLv3 license</a>.<br>
+    Content of this web as well as photo of me with box on the head is licensed
+    under
+    <a href="https://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>.  
     </footer>
     <div class="what-is-this">
       <center>
-      ..-. .. -. -.. / - .... . / -... .. --. --. . ... - / -.. --- - / .. -. / .-.. .. -... .-. .- .-. -.-- 
+      -.. .--. --- .-.. .- -.- --- ...- .. -.-. / -.. --- - / ... .--. .- -.-. . / ... .-.. .- ... .... / -.-. -.-- .--. .... . .-. 
       </center>
     </div>
   </body>
diff --git a/lib.php b/lib.php
old mode 100644 (file)
new mode 100755 (executable)
index cca808c..a36095b
--- a/lib.php
+++ b/lib.php
@@ -6,7 +6,8 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>dpolakovic.space</title>
     <link rel="icon"         href="./Pictures/dot.png">
-    <link rel="stylesheet"   href="./Styles/styles.css?v=1.1">
+    <link rel="stylesheet"   href="./Styles/styles.css">
+    <?php require_once('./php/config.php'); ?>
     <link rel="author"       href="mailto:email@dpolakovic.space">
     <meta name="description" content="personal website and git server">
     <meta name="author"      content="David Polakovic, 2023">
@@ -30,9 +31,8 @@
       <ul>
        <li><a href="https://dpolakovic.space">About</a></li>
        <li><a href="https://dpolakovic.space/blog.php">Blog</a></li>
-       <!-- <li><a href="https://dpolakovic.space/dir.html">My web directory</a></li> -->
        <li><a href="https://dpolakovic.space/lib.php">My library</a></li>
-       <li><a class="gitserver" href="https://git.dpolakovic.space">Git server</a>
+       <li><?php  serverStatus() ?></li>
        </li>
       </ul>
     </nav>
        title and traslation title as well.
       </p>
       <br>
-       <?php
-        // Read the contents of the lib.txt file
-        $fileContents = file_get_contents('lib.txt');
-
-        // Set the "*" as escape char for new table line
-        $rows = explode('*', $fileContents);
-
-        // Create the table
-        echo '<table>';
-
-        // Process each row
-        foreach ($rows as $key => $row) {
-       
-          // Set the "-" as escape char for new column
-          $columns = explode('-', $row);
-    
-          // Determine whether this is the first row
-          $isFirstRow = ($key === 0);
-    
-          // Start a new table row
-           echo '<tr>';
-    
-          // Process each column and create table cells
-          foreach ($columns as $column) {
-
-            // Use <th> for the first row, <td> for the rest
-             $cellTag = $isFirstRow ? 'th' : 'td';
-             echo '<' . $cellTag . '>' . htmlspecialchars($column) . '</' . $cellTag . '>';
-          }
-    
-        // End the table row
-        echo '</tr>';
-        }
-
-        // End the HTML table
-        echo '</table>';
-      ?>
+       <?php printLibraryTable() ?>
       <br><br>
       </main>
 
     <!-- footer  -->
-    <footer class="footer">      
-      copyright 2023 David Polakovic
-      - content of this web is licensed under
-      <a href="https://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>
-      - <a href="https://git.dpolakovic.space/?p=my-website;a=tree">this site is free software</a>
+    <footer class="footer">
+    Copyright <?php printYear() ?> David Polakovic - 
+    This site is javascript and cookie free. The source code is available
+    <a href="https://git.dpolakovic.space/?p=my-website;a=tree">here</a>
+    under
+    <a href="https://www.gnu.org/licenses/gpl-3.0.en.html">GPLv3 license</a>.<br>
+    Content of this web as well as photo of me with box on the head is licensed
+    under
+    <a href="https://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>.  
     </footer>
     <br><br>
     
diff --git a/lib.txt b/lib.txt
deleted file mode 100644 (file)
index 6426dc7..0000000
--- a/lib.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Lng - Author -  English title -  Translation title (if different) *
-AA - Jon Doe - A book - Kniha *
diff --git a/php/config.php b/php/config.php
new file mode 100755 (executable)
index 0000000..bb9efcc
--- /dev/null
@@ -0,0 +1,143 @@
+<?php
+
+// Function to check if is certain website reachable
+function isWebsiteOnline($url) {
+   // Set a timeout value in seconds
+   $timeout = 2; 
+
+   $ch = curl_init($url);
+   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+   curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
+   $response = curl_exec($ch);
+   $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+   curl_close($ch);
+             
+   // Check if the HTTP code is in the range 200-299 
+   // to consider it as "online"
+  return ($httpCode >= 200 && $httpCode < 300);
+}
+
+
+// Function displays <li> element on navigation bar
+// either online or offline status of gitserver
+function serverStatus() {
+   $websiteUrl = "https://git.dpolakovic.space";
+
+   if (isWebsiteOnline($websiteUrl)) {
+      echo '<a class="gitserver" href="https://git.dpolakovic.space">'.
+          'Git server | online</a>';
+      }
+   else {
+      echo '<a class="gitserver" href="">Git server | offline</a>';
+   }
+}
+
+// Function for index.php to generate random second sentence
+function randomSentence() {
+   $file = "./php/rnd.txt";
+
+   // Read all lines from the file into an array
+   $lines = file($file, FILE_IGNORE_NEW_LINES); 
+
+   if ($lines !== false && !empty($lines)) {
+
+      // Get a random line index
+      $randomIndex = array_rand($lines);
+          
+      // Display the random line
+      echo $lines[$randomIndex];
+
+   }
+
+   else {  echo "this is an error message."; }
+}
+
+// Function to update year for copyright in footer
+function printYear() {
+   $currentYear = date("Y");
+   if ($currentYear > 2023) {
+      echo "2023-" . $currentYear;
+   }
+   else { echo "2023"; }
+}
+
+
+// Function to convert RSS file into blog page
+function printBlog2($rss_file) {
+
+   // Load the XML file
+   $xml = simplexml_load_file($rss_file);
+
+   // Check if the XML is loaded successfully
+   if ($xml !== false) {
+       // Loop through each <item> tag in the RSS feed
+       foreach ($xml->channel->item as $item) {
+                 $title = (string) $item->title;
+          $link = (string) $item->link; 
+          $description = (string) $item->description; 
+          $pubDate = (string) $item->pubDate;
+         $image_url = (string) $item->image;
+         $pos = (string) $item->pos;
+
+          // Output
+         echo "<div class=\"blog-prev\">" .
+              "<div class=\"blog-prev-img\">" .
+              "<a href=\"$link\">" .
+              "<img src=\"$image_url\" alt=\"Blog picture\"".
+              "style=\"object-position: $pos ;\">" .
+              "</a></div>";    
+          echo "<div class=\"blog-prev-text\">".
+              "<a href=\"$link\">$title</a><br>";
+         echo substr($pubDate, 5, 12) . "<br>";
+          echo "<i>$description</i></div></div><br>";        
+         }
+    
+    } else {
+      // If the XML file fails to load
+      echo "Failed to load the blogs. The rss.xml file is either missing or corrupted.";
+    }   
+}
+
+
+// Function to print my books on the website
+function printLibraryTable() {
+        // Read the contents of the lib.txt file
+        $fileContents = file_get_contents('./php/lib.txt');
+
+        // Set the "*" as escape char for new table line
+        $rows = explode('*', $fileContents);
+
+        // Create the table
+        echo '<table>';
+
+        // Process each row
+        foreach ($rows as $key => $row) {
+       
+          // Set the "-" as escape char for new column
+          $columns = explode('-', $row);
+    
+          // Determine whether this is the first row
+          $isFirstRow = ($key === 0);
+    
+          // Start a new table row
+           echo '<tr>';
+    
+          // Process each column and create table cells
+          foreach ($columns as $column) {
+
+            // Use <th> for the first row, <td> for the rest
+             $cellTag = $isFirstRow ? 'th' : 'td';
+             echo '<' . $cellTag . '>' . htmlspecialchars($column) .
+                 '</' . $cellTag . '>';
+          }
+    
+        // End the table row
+        echo '</tr>';
+        }
+
+        // End the HTML table
+        echo '</table>';
+
+}
+
+?>
\ No newline at end of file
diff --git a/php/lib.txt b/php/lib.txt
new file mode 100755 (executable)
index 0000000..04bad1e
--- /dev/null
@@ -0,0 +1,90 @@
+Lng - Author - English title - Translation title (if different) *
+
+SK - Herman Melville - Moby Dick - Biela veľryba * 
+SK - John Steinbeck - Of Mice and Men - O myšiach a ľuďoch *
+SK - Umberto Eco - The Name of the Rose - Meno ruže *
+SK - Umberto Eco - The Island of the Day Before - Ostrov včerajšieho dňa *
+SK - Edgar Allan Poe - Narrative of Arthur Gordon Pym of Nantucket - Príbehy Arthura Gordona Pyma *
+SK - Mark Twain - Adventures of Tom Sawyer and Huckleberry Finn -  Dobrodružstvá Toma Sawyera... *
+SK - Louisa May Alcott - Little Women - Malé ženy *
+SK - Gustave Flaubert - Madame Bovary - Pani Bovaryová *
+SK - Anthony Burgess - A Clockwork Orange - Mechanický pomaranč *
+SK - Henryk Sienkiewicz - Quo Vadis - *
+SK - J.D. Salinger - The Catcher in the Rye - Kto chytá v žite *
+SK - Erich M. Remarque -  All Quiet on the Western Front - Na západe nič nové *
+SK - Romain Rolland - Pierre et Luce - Peter a Lucia *
+SK - Joseph Heller - Catch 22 - Hlava XXII *
+SK - George Orwell - 1984 - *
+SK - George Orwell - Animal Farm - Zvieracia farma *
+SK - George Orwell - Down and Out in Paris and London - Na dne v Paríži a Londýne *
+ES - Miguel de Cervantes - Don Quixote - Don Quijote de la Mancha *
+SK - Mary Shelley - Frankenstein -  *
+SK - Robert L. Stevenson - Treasure Island - Robert Louis Stevenson *
+SK - Arthur C. Doyle - The Lost World - Stratený svet *
+SK - Ernest Hemingway - The Old Man and the Sea - Starec a more *
+SK - Ernest Hemingway - For Whom the Bell Tolls - Komu zvonia do hrobu *
+SK - Oscar Wilde - The Picture of Dorian Gray - Portrét Doriana Graya *
+SK - Harper Lee - To Kill a Mockingbird - Nezabíjajte vtáčika *
+SK - Philip Roth - Everyman - Ktokoľvek *
+
+CZ - Milan Kundera - A Kidnapped West: The Tragedy of Central Europe- Unesený Západ *
+SK - Thomas More - Utopia - Utópia *
+SK - Charles Darwin - On the Origin of Species - O pôvode druhov *
+SK - Marcus Aurelius - Meditations - Myšlienky k sebe samému *
+SK - Aristotle - On the Heavens  - O nebi, O vzniku a zániku *
+SK - Homer - Iliad - Ílias *
+SK - Homer - Odyssey - Odysseia *
+SK - Sun C' - The Art of war - Umenie vojny *
+SK - various authors - The Jerusalem Bible - Jeruzalemská Biblia *
+
+SK - Jules Verne - From the Earth to the Moon - Cesta na mesiac *
+SK - Jules Verne - The Mysterious Island - Tajomný ostrov *
+SK - Jules Verne - The Lighthouse at the End of the World - Maják na konci sveta *
+SK - Ernest Cline - Ready Player One - *
+SK - Ernest Cline - Ready Player Two - *
+SK - Isaac Asimov - Foundation (1,2,3) - Nadácia (1,2,3) *
+SK - Isaac Asimov - I, Robot - Ja, Robot *
+SK - Isaac Asimov - The Caves of Steel - Oceľové jaskyne *
+SK - Isaac Asimov - The Naked Sun - Pod holým nebom *
+SK - Frank Herbert - Dune (1,2,3) - Duna (1,2,3) *
+SK - Wiliam Gibson - Neuromancer -  Neuromant *
+SK - Ray Bradbury - Fahrenheit 451 - 451 stupňov Fahrenheita * 
+SK - John Wyndham - The Day of the Triffids - Deň Trifidov *
+CZ - Karel Čapek - R.U.R. - *
+CZ - Karel Čapek - War with the Newts - Válka s mloky *
+UKR - Max Kidruk - Colony - колонія (Kolonia) *
+EN - Steve Perry - Star Wars: Shadows of the Empire -  *
+EN - Geoffrey Jenkins - A Grue of Ice - *
+SK - T.Pratchett, N.Gaiman - Good Omens - Dobré znamenia *
+
+EN - H.P. Lovecraft - The Complete Fiction of H.P. Lovecraft - *
+SK - Stephen King - Pet Sematary - Cyntorin zvieratiek *
+SK - Stephen King - The Shining - Žiarenie *
+SK - Agatha Christie - Murder on the Orient Express - Vražda v Orient exprese *
+SK - Agatha Christie - Death on the Nile - Smrť na Níle *
+SK - Agatha Christie - The Murder of Roger Ackroyd - Vražda Rogera Ackroyda *
+SK - Agatha Christie - The A.B.C. Murders - Vraždy podľa abecedy *
+SK - Agatha Christie - And Then There Were None- A neostal ani jeden *
+SK - Agatha Christie - One, Two, Buckle My Shoe - Predávkovanie smrťou *
+SK - Agatha Christie - The Mysterious Affair at Styles - Vraždy na Zámku Styles *
+SK - B. Traven - The Treasure of the Sierra Madre - Poklad v Sierra Madre *
+
+SK - Clemente Fusero - Gándhí - *
+
+
+SK - Jane Goodall - My Life With the Chimpanzees - Desať rokov medzi šimpanzami *
+CZ - Herbert S. Terrace - Nim: A Chimpanzee Who Learned Sign Language - Šimpanz Nim *
+SK - Yuval Noah Harari - Sapiens: A Brief History of Humankind - Sapiens: Stručná história ľudstva *
+EN - Robert D. Putman - Bowling Alone - *
+SK - Keith Gave - Russian Five - Ruská Päťka *
+EN - Steven Levy - Hackers: Heroes of the Computer Revolution - *
+SK - Edward Snowden - Permanent Record - Trvalý záznam *
+EN - Jaron Lanier - Who Owns the Future? -  *
+EN - Eric S. Raymond - The Cathedral & the Bazaar - *
+CZ - Miroslav Virius - Java For Dummies - Java pro zelenáče *
+CZ - Pavel Datrapa - Perl For Dummies - Perl pro zelenáče *
+CZ - L. Wall & collective - Programming Perl - Programování v jazyce Perl *
+CZ - Herbert Schildt - Java 8 - *
+EN - James L. Noyes - Artificial Intelligence with Common LISP - *
+CZ - Evi Nemeth - Linux Administration Handbook - Linux: Kompletní příručka administrátora *
+CZ - J. Kurose, K. Ross - Computer Newtorking (6th ed.) - Počítačové sítě
diff --git a/php/rnd.txt b/php/rnd.txt
new file mode 100755 (executable)
index 0000000..a8fa9dc
--- /dev/null
@@ -0,0 +1,39 @@
+my favorite junk food is fish sticks.
+my favorite dinosaur is pterodactyl.
+I like Perl more than Python.
+my favorite color is yellow.
+I unironically liked The Phantom Menace.
+I enjoy hacking board games.
+I willingly play healers in D&D.
+I prefer Star Trek TNG over the Original Series.
+I <i>bn gbo pg dszquphsbgz</i> ;-) .
+I still use shortcuts on desktop.
+I prefer pencils over pens.
+I still use floppy disks for backups.
+I use everything except bookmarks for bookmarking.
+I think way too much about time travel.
+I am proud owner of ~200g of meteorites.
+I never sit on swivel chairs.
+my favorite ice cream flavor is vanilla.
+I am fascinated by left-handed people.
+I collect Coca-cola glasses.
+LEGO is by far my favorite toy.
+I prefer digital clocks over anolog ones.
+I like to randomly browse Wikipedia.
+my favorite star is the Sun.
+I liked Terminator 1 more than 2.
+I enjoy reading Agatha Christie.
+I am fan of Detroit Red Wings.
+if you breath air, we have one thing in common.
+I still read printed newspaper and magazines.
+my favorite fast food chain is Taco Bell.
+I love pickles. Even fried or with Snickers (those are called Snickles).
+I like peanut M&M's.
+my favorite cocktail is White Russian. And yes, it happend after The Big Lebowski.
+my favorite ninja turtle is Michelangelo.
+my favorite comic book series is The Tick.
+my favorite pizza is Texas Chilli from Merkur Pub. I don't know how they do it, but it's damn good.
+I think that Oreos are way overrated.
+I still use square monitor(s).
+I think that Dennis Nedry deserved raise.
+I miss Pepsi man.
diff --git a/rnd.txt b/rnd.txt
deleted file mode 100644 (file)
index ada6b59..0000000
--- a/rnd.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-example.
-and here is another example.
diff --git a/rss.xml b/rss.xml
new file mode 100644 (file)
index 0000000..77e5cee
--- /dev/null
+++ b/rss.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<rss version="2.0">
+  <channel>
+    <title>dpolakovic.space</title>
+    <link>https://www.dpolakovic.space</link>
+    <description>Some obscure thoughts caught on the Web.</description>
+    <language>en-us</language>
+    <lastBuildDate>Mon, 8 Jan 2024 16:00:00 GMT</lastBuildDate>
+    <pubDate>Mon, 8 Jan 2024 16:00:00 GMT</pubDate>
+    <ttl>60</ttl>
+
+    <item>
+      <title>Let's play Zork</title>
+      <link>https://dpolakovic.space/blogs/zork</link>
+      <description>A hollow voice says "Fool".</description>
+      <pubDate>Fri, 24 Nov 2023 20:00:00 GMT</pubDate>
+      <image>https://dpolakovic.space/blogs/pics/zork.png</image>
+      <pos>100% 1</pos>
+    </item>
+    
+    <item>
+      <title>On the nature of Free software</title>
+      <link>https://dpolakovic.space/blogs/free-software</link>
+      <description>Does your synthetic colleague pose a threat to you?</description>
+      <pubDate>Tue, 25 Jul 2023 20:00:00 GMT</pubDate>
+      <image>https://dpolakovic.space/blogs/pics/free2.jpg</image>
+      <pos>100% 0</pos>
+    </item>
+
+  </channel>
+</rss>
diff --git a/test.html b/test.html
deleted file mode 100755 (executable)
index fad1331..0000000
--- a/test.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-  <head>
-    <meta charset="UTF-8">
-    <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <title>???</title>
-    <link rel="icon"         href="./Pictures/dot.png">
-    <link rel="stylesheet"   href="./Styles/styles.css?v=1.1">
-    <link rel="author"       href="mailto:email@dpolakovic.space">
-    <meta name="description" content="personal website and git server">
-    <meta name="author"      content="David Polakovic, 2023">
-  
-  </head>
-  <body>
-    
-    <!-- show pictures (banner) on top of the page -->
-    <div class="banner">
-      <p>
-       <img src="./Pictures/dpolakovic.png" alt="simple">
-       <img src="./Pictures/dot.png" alt="website">
-       <img src="./Pictures/space.png" alt="banner">
-      </p>
-    </div>
-    
-    <!-- navigation bar -->
-    <nav class="nav-bar">
-      <ul>
-       <li><a href="https://dpolakovic.space">About</a></li>
-       <li><a href="https://dpolakovic.space/blog.php">Blog</a></li>
-       <!-- <li><a href="https://dpolakovic.space/dir.html">My web directory</a></li> -->
-       <li><a href="https://dpolakovic.space/lib.html">My library</a></li> 
-       <li><a href="https://dpolakovic.space/test.html">TEST</a></li>
-       <li><a class="gitserver" href="https://git.dpolakovic.space">Git server</a>
-       </li>
-      </ul>
-    </nav>
-
-    <!-- page content -->
-    <main class="content">
-      <p>
-       <h2> Test </h2> 
-       <i> This is a test. </i>
-       <br>
-       <br>
-       WHOOOPS! Nothing's here. You better check somewhere else...<br><br>
-      </p>
-      </main>
-
-    <!-- footer  -->
-    <footer class="footer">      
-      copyright 2023 David Polakovic
-      - content of this web is licensed under
-      <a href="https://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>
-      - <a href="https://git.dpolakovic.space/?p=my-website;a=tree">this site is free software</a>
-    </footer>
-    
-  </body>
-  </html>
diff --git a/test.php b/test.php
new file mode 100755 (executable)
index 0000000..ef85ced
--- /dev/null
+++ b/test.php
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>???</title>
+    <link rel="icon"         href="./Pictures/dot.png">
+    <link rel="stylesheet"   href="./Styles/styles.css?v=1.1">
+    <link rel="author"       href="mailto:email@dpolakovic.space">
+    <meta name="description" content="personal website and git server">
+    <meta name="author"      content="David Polakovic, 2023">
+  
+  </head>
+  <body>
+    
+    <!-- show pictures (banner) on top of the page -->
+    <div class="banner">
+      <p>
+       <img src="./Pictures/dpolakovic.png" alt="simple">
+       <img src="./Pictures/dot.png" alt="website">
+       <img src="./Pictures/space.png" alt="banner">
+      </p>
+    </div>
+    
+    <!-- navigation bar -->
+    <nav class="nav-bar">
+      <ul>
+       <li><a href="https://dpolakovic.space">About</a></li>
+       <li><a href="https://dpolakovic.space/blog.php">Blog</a></li>
+       <!-- <li><a href="https://dpolakovic.space/dir.html">My web directory</a></li> -->
+       <li><a href="https://dpolakovic.space/lib.html">My library</a></li> 
+       <li><a href="https://dpolakovic.space/test.html">TEST</a></li>
+       <li><a class="gitserver" href="https://git.dpolakovic.space">Git server</a>
+       </li>
+      </ul>
+    </nav>
+
+    <!-- page content -->
+    <main class="content">
+      <p>
+       <h2> Test </h2> 
+       <i> This is a test. </i>
+       <br>
+       <br>
+       WHOOOPS! Nothing's here. You better check somewhere else...<br><br>
+      </p>
+      <p>
+       <?php
+function isWebsiteOnline($url) {
+    $timeout = 2; // Set a timeout value in seconds
+
+    $ch = curl_init($url);
+    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
+
+    $response = curl_exec($ch);
+    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+
+    curl_close($ch);
+
+    // Check if the HTTP code is in the range 200-299 to consider it as "online"
+    return ($httpCode >= 200 && $httpCode < 300);
+}
+
+$websiteUrl = "https://git.dpolakovic.space";
+
+if (isWebsiteOnline($websiteUrl)) {
+    echo "Git server status: Online";
+} else {
+    echo "Git server status: Offline";
+}
+?>
+
+         
+      </p> 
+      </main>
+
+    <!-- footer  -->
+    <footer class="footer">      
+      copyright 2023 David Polakovic
+      - content of this web is licensed under
+      <a href="https://creativecommons.org/licenses/by-nc-nd/3.0/">CC BY-NC-ND 3.0</a>
+      - <a href="https://git.dpolakovic.space/?p=my-website;a=tree">this site is free software</a>
+    </footer>
+    
+  </body>
+  </html>